Refactor Image block: make it schema extensible

The idea is to refactor all the Volto stock blocks to be schema drive, so they allow enhancing and extending with variations and the future style wrapper.

@nileshgulia1 I took a look at your latest commits, some questions:

We cannot change the field names... otherwise we are forcing people to make a migration of their blocks, and that's bad. Why did you do that? I saw the bbb code but still... Imagine the people that shadow the Image component.
The Edit block does have the inline chooser everywhere in Pastanaga and in Quanta... and the Volto users are used to that. We can hide it in the sidebar then so there is only one place to set it.

We also had the click in the first place, but it was nasty and people clicked on it by mistake (opening the upload selector all the time) so we removed it.

We cannot change the field names... otherwise we are forcing people to make a migration of their blocks, and that's bad. Why did you do that? I saw the bbb code but still... Imagine the people that shadow the Image component.

@sneridagh I was aware of that in the first place. I stumbled upon a few "deserialization" issues when using URLs from objectBrowser and manual. In restapi it expects URL in the form of string thus it stucks when supplied scattered URLs (list).
I saw your hack proposed as convert URL as "string" before onChangeBlock, but then we have to re-convert it to objectBrowser data structure in Edit like here
Although, we are doing that successfully on the listing block https://github.com/plone/volto/blob/master/src/components/manage/Blocks/Listing/DefaultTemplate.jsx#L10
I propose we can have that check in the restapi itself, or else use TextWidget with custom actions instead of objectBrowserWidget in the sidebar(This is what we currently have). I will have to re-inspect the implementation though.

We also had the click in the first place, but it was nasty and people clicked on it by mistake (opening the upload selector all the time) so we removed it.

Agree. If we have to stick with inline input( and remove objectBrowserWidget ), then it make sense to leave the "upload" button intact.
Thanks for feedback!

@nileshgulia1 also, we can't rename the field, since the transforms in the backend for the resolveuid expect them to be in url. :( If you could revert that, it would be great. We can find a way to deal with that, Rob created a prop for it in the ObjectBrowser, that do not return an array.

@sneridagh Done. I kept the url field in the schema, so that it isn't breaking now. I just noticed we can use urlWidget instead of objectBrowser in the sidebar field and allow users to add a new image using inline input( with objectBrowser ).
In addition to this, I also added a storybook for the new image_sizes widget.

It already looks good, two cents:

The upper part of the image sidebar always had a miniature of the image itself. We could bring it back, since even Quanta has it.
 Can't we make the objectBrowser support the image same as the multiple mode variant has? (the one with the tokenised item) /cc @giuliaghisini

I know that the image block was the first objectBrowser implementation and that it evolved (at some point we would like to refactor it, since right now it's a mess due to all the incarnations that it had over the years).  Can't we make the objectBrowser support the image same as the multiple mode variant has? (the one with the tokenised item) Retaining backwards compatibility, of course. /cc @giuliaghisini

Object browser already handles images when 'mode' is 'image':
https://github.com/plone/volto/blob/866b160032329175f6b571f36daf69e1bc0c2765/src/components/manage/Sidebar/ObjectBrowserBody.jsx#L265
https://github.com/plone/volto/blob/866b160032329175f6b571f36daf69e1bc0c2765/src/components/manage/Widgets/ObjectBrowserWidget.jsx#L66

@giuliaghisini  What difference does objectBrowserWidget have in respect of its data when in mode image vs in mode multiple?
(In the context of Image block ) we don't have proper deserializer in restapi to account for object or array url fields. It should be handled in either frontend(image mode) or backend.
Also we can show preview of the image when in mode image just like what @tiberiuichim  suggested.

LGTM to me!! (I can't approve a PR that I created :) )


write cif fails on certain valid MOFs

Sometimes I can create a MOF and there is nothing wrong with it. By this I mean that the building blocks have the correct number of connections points, and the correct geometry, for the topology. Building the MOF works and I can view it, it all looks good. But when I try and write it to a cif I get the following error:

CIF writing fails with error: Traceback (most recent call last):

File ".../framework.py]", line 57, in write_cif
self._write_cif(path)
File ".../framework.py)", line 161, in _write_cif
image = image_dict[(i, j)]
~~~~~~~~~~^^^^^^^^
KeyError: (26, 315)

Remove invalid CIF: ...

Code to reproduce this:
`
import pormake as pm
test_nodes=['N238', 'N307', 'N662']
database=pm.Database()
topology_object=database.get_topology('jsa')
builder=pm.Builder()
node_bbs=[]
for node in test_nodes:
node_bbs.append(database.get_bb(node))
mof=builder.build_by_type(topology=topology_object,node_bbs=node_bbs)
mof.write_cif('test.cif')
`
Thanks

I was able to easily reproduce the error you mentioned. However, when visualizing the generated MOF, I noticed that a specific bond appears to be very long. This error can occur when creating the CIF file because it only checks for minimum image distances up to 6 Angstroms when examining bond lengths. Therefore, if there are bonds longer than that, it can lead to the error you encountered.

As it is a bad signal for MOF generation, you can simply ignore the MOF structures with this error by using a try-except block. If you still want to save the MOF structures, I can add distance check options.

OK thanks a lot for looking at this. So this MOF is not realistic and could not be synthesised in reality?

The synthesizability of MOFs is a highly complex problem, and it is difficult to provide a simple "yes" or "no" answer. However, structurally unstable MOFs tend to have high internal energy, which can make their synthesis challenging. So I would likely exclude such MOFs from the analysis.


Add Somelist.tk to Lists

👋 BotBlock does not support lists that are making use of free domains. If you're interested on being listed on BotBlock, please make sure you've got your own domain that'll be sticking around. See https://botblock.org/lists/best-practices for more info.

👋 BotBlock does not support lists that are making use of free domains. If you're interested on being listed on BotBlock, please make sure you've got your own domain that'll be sticking around. See https://botblock.org/lists/best-practices for more info.

could I know why I need a paid domain ;/
I do have one, but i'm locked out of it. You're judging on value before quality (correct me if i'm wrong)
don't start an argument here, and don't reply either, I most likely won't see it

could I know why I need a paid domain

We've seen many up-and-coming bot lists in the past that make use of free domains, only to disappear and cease operations in a very short time period, wasting our time as a team to process adding them to the site etc.
We have a requirement for a paid domain as it is a straightforward indicator that you're invested enough in your list to at least pay for a domain for it and that it is likely to stick around for a while.


Powerlevel10k

How did you get the powerlevel10k colors to match?

Hi @tillkruss
Simply using some Apps to find the exact color value, e.g., Digital Color Meter.


Item UI not closed after deleting item

Description

Apparently this situation just hasn't been encountered before in the game. But I'm making an item with an interface that disappears after use.
Reproduction

Pickup Uplink
Open UI
Delete Uplink (admin panel)
You have unfunctional Uplink UI and errors in client console

a lot of uis do that like wire panel

BUIs also don't close in lobby so might've been recent PR, seems like engine issue.


Image updater with Kustomize doesn't work when openapi is used in kustomize

Describe the bug
We are hitting a bug in Kustomize (open PR https://github.com/kubernetes-sigs/kustomize/pull/4294#issuecomment-1004784588) which is all together removing openapi specs from Kustomize for argo rollout. This is triggered when argo image updater emulates kustomize edit set image command.
To Reproduce

Use openapi in Kustomization.yaml
Use argocd-image-updater to automatically update the image
🐛  kustomization.yaml's openapi section will be removed which is then applied by argocd.

Expected behavior
kustomization.yaml openapi section is not removed
Additional context
Following annotations are used:
    argocd-image-updater.argoproj.io/image-list: beecash-api=gcr.io/xxxxx-prod/xxxxx-api
    argocd-image-updater.argoproj.io/xxxxx-api.update-strategy: latest
    argocd-image-updater.argoproj.io/xxxxx-api.allow-tags: regexp:^develop-[0-9a-z]*$
    argocd-image-updater.argoproj.io/write-back-method: git:secret:argocd/git-creds

Version
  argocd-image-updater version
  argocd-image-updater: v99.9.9+d714b98
  BuildDate: 2022-01-05T05:36:51Z
  GitCommit: d714b989e46c635d1dd492beab379f61f55e19cd
  GoVersion: go1.14.13
  GoCompiler: gc
  Platform: linux/amd64

Logs
Rollout object doesn't have image spec section or corrupted yaml is generated.

I understand it is not an argocd-image-updater bug but directly impacted by kustomize bug. I would like to know if there is a way to avoid the current behavior where we avoid kustomize edit set image and still update the image?

I believe this also affects Argo CD, because Image Updater does not run kustomize set ... on its own.
Have you tried writing to the kustomization.yaml directly, i.e. https://argocd-image-updater.readthedocs.io/en/stable/configuration/applications/#git-write-back-target?

@jannfis sorry for the delay, I have tried with below but still it tries to simulate kubectl edit set image command and created a malformed Rollout manifest.
My annotation is like below:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: blue-green-demo
  namespace: argocd
  annotations:
    argocd-image-updater.argoproj.io/image-list: demo=gcr.io/heptio-images/ks-guestbook-demo
    argocd-image-updater.argoproj.io/demo.update-strategy: latest
    # argocd-image-updater.argoproj.io/demo.allow-tags: regexp:^[0-9]*[0-9z]*$
    argocd-image-updater.argoproj.io/write-back-method: git:secret:argocd/git-repo-manyfests
    argocd-image-updater.argoproj.io/write-back-target: kustomization

@anjuls Once you switch to write-back-target: kustomization, you would have to remove the .argocd-app-source-<appname>.yaml file from your repository, if that has been written out before by Image Updater. If that file is present, Argo CD (and not Image Updater) will evaluate this file and possibly run a kustomize edit set image ... command before rendering the Kustomizations.
With write-back-target: kustomization, the kustomization.yaml will be modified directly and there will be no need for Argo CD to run kustomize edit set image ....
I'm afraid there's nothing we easily can do from the Image Updater side to fix this issue. Best bet would probably to use a Kustomize version without that bug in Argo CD.

I have updated the latest kustomize and put on the argo image, it works now. The bug was fixed in Kustomize.


Unable to load MediaInfo library

I add MediaInfo folder to PATH, but program rise error.

Assuming you are targeting .net standard / core.
Can you give more detail?
Are you running x86 or x64?
What's the exception?

When using this on Linux, I also doubt if this works.
I installed mediainfo using apt-get. And this gets installed in
/usr/bin/mediainfo

However when I clone this git project in Linux (bash on windows 10) and do a dotnet run: I get the same error.

I must have broken something. I'll check it out ASAP.

I did a fresh clone in win x64, MacOs 10.13 and Ubuntu 16.04 and all three environments work for me.
You do need to use the official MediaInfo release in linux distros. Please uninstall apt-get version of media info and do the following
# Download libzen
wget https://mediaarea.net/download/binary/libzen0/0.4.37/libzen0v5_0.4.37-1_amd64.Debian_9.0.deb
# Install libzen package
dpkg -i libzen0v5_0.4.37-1_amd64.Debian_9.0.deb
# Force install missing packages
apt-get upgrade -f
# Download libmediainfo
wget https://mediaarea.net/download/binary/libmediainfo0/17.12/libmediainfo0v5_17.12-1_amd64.Debian_9.0.deb
# Install libmediainfo package
dpkg -i libmediainfo0v5_17.12-1_amd64.Debian_9.0.deb
# Force install missing packages
apt-get upgrade -f
# Create symbolic link for libmediainfo.so. For whatever reason the official package does not create it
ln -s /usr/lib/x86_64-linux-gnu/libmediainfo.so.0.0.0 /usr/lib/x86_64-linux-gnu/libmediainfo.so

git clone https://github.com/StefH/MediaInfo.DotNetWrapper.git
cd MediaInfo.DotNetWrapper/test/MediaInfo.DotNetWrapper.ConsoleTest.NetCore20/
dotnet run

Running the first step gives me error:

stef@stef: /mediainfo/MediaInfo.DotNetWrapper/test/MediaInfo.DotNetWrapper.ConsoleTest.NetCore20$ sudo dpkg -i libzen0v5_0.4.37-1_amd64.Debian_9.0.deb
dpkg: considering removing libzen0:amd64 in favour of libzen0v5:amd64 ...
dpkg: yes, will remove libzen0:amd64 in favour of libzen0v5:amd64
(Reading database ... 29563 files and directories currently installed.)
Preparing to unpack libzen0v5_0.4.37-1_amd64.Debian_9.0.deb ...
Unpacking libzen0v5:amd64 (0.4.37-1) ...
dpkg: dependency problems prevent configuration of libzen0v5:amd64:
libzen0v5:amd64 depends on libstdc++6 (>= 5.2); however:
Version of libstdc++6:amd64 on system is 4.8.4-2ubuntu1~14.04.4.
dpkg: error processing package libzen0v5:amd64 (--install):
dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.19-0ubuntu6.14) ...
Errors were encountered while processing:
libzen0v5:amd64

You are trying to install ubuntu 16.04 version on ubuntu 14.04. The MediaInfo ubuntu site has the links for each version of ubuntu.
Here are instructions for 14.04
# So you dont have to run sudo command for the following
sudo -s
apt-get -qq update
apt-get install -y git wget curl apt-transport-https libunwind8 liblttng-ust0 libcurl3 libssl1.0.0 libuuid1 libkrb5-3 zlib1g libicu52
# Start install dotnet sdk - only do the following if you dont have dotnet sdk installed
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
apt-get update
apt-get install -y dotnet-sdk-2.1.4
# End install dotnet sdk

# Download libzen & libmediainfo for ubuntu trusty 14.04
wget https://mediaarea.net/download/binary/libzen0/0.4.37/libzen0_0.4.37-1_amd64.xUbuntu_14.04.deb
wget https://mediaarea.net/download/binary/libmediainfo0/17.12/libmediainfo0_17.12-1_amd64.xUbuntu_14.04.deb
# Install packages
dpkg -i libzen0_0.4.37-1_amd64.xUbuntu_14.04.deb
dpkg -i libmediainfo0_17.12-1_amd64.xUbuntu_14.04.deb
# Fix pacakge dependencies
apt-get install -f
# Create symbolic link
ln -s /usr/lib/x86_64-linux-gnu/libmediainfo.so.0.0.0 /usr/lib/x86_64-linux-gnu/libmediainfo.so
# Exit sudo
exit
# Clone and run mediainfo wrapper
git clone https://github.com/StefH/MediaInfo.DotNetWrapper.git
cd MediaInfo.DotNetWrapper/test/MediaInfo.DotNetWrapper.ConsoleTest.NetCore20/
dotnet run

Still some error Unhandled Exception: System.Exception: Unable to load MediaInfo library.
(I did not install dotnet again.)

It was also successful using aptitude version of libmediainfo. Be happy to do some sort of screen sharing if this doesn't work.
Please try the following
# Uninstall official / downloaded versions
sudo apt remove --purge libmediainfo0v5 libzen0v5
sudo apt autoremove
sudo apt install libmediainfo-dev
# Clone and run mediainfo wrapper
git clone https://github.com/StefH/MediaInfo.DotNetWrapper.git
cd MediaInfo.DotNetWrapper/test/MediaInfo.DotNetWrapper.ConsoleTest.NetCore20/
dotnet run

All works fine, except for E: Invalid operation autoremove.


Clean up config file for Travis.

remove obsolete "sudo" keyword
remove old dev versions
remove matrix

modified:   .travis.yml
P.S.: As I never used the "allow_failures" directive before, I am not sure whether I used the correct syntax (outside matrix). If not, I'll update the pr.

Hm... the PR triggered no build on Travis.
@tylerwince Could you please activate Travis builds for PRs? Thank you!

@jugmac00 thanks for this PR! The travis builds are supposed to be running for PRs... let me take a look and see if I can force run it.

Thx @tylerwince for getting back to me!
I fixed the Travis config file. Apparently, you have to put the allow_failures directive within a matrix block. Neat, I learned something new :-)

Thanks @jugmac00


[EVENT] June 11th - Members talk evening @ Babbel

Head organizer:
Support organizer:
Slides/Moderation:
Speaker support:
Location:
Speaker:
Talk:
MONTH BEFORE

[ ] Define Speakers
[ ] Send Speakers guidelines email
[ ] Announce event with speakers, location, gender policy, photo policy on meetup page
[ ] Define hosts & collect host information
[ ] Send Host guidelines email
[ ] Organise Food/ drinks
[ ] Tweet event when announced
[ ] Check with speaker if coaches are needed and search for coaches

TWO WEEKS BEFORE

[ ] Retweet event
[ ] Check with speaker about installation instructions/reading material and update announcement
[ ] Update meetup announcement with agenda, networking breaks, if snacks or drinks will be available
[ ] Check-in with hosts and ask if support is needed for reception

WEEK BEFORE

[ ] Remind attendees to install requirements with comment and/or message on meetup
[ ] Send coaches the workshop/relevant material
[ ] Dry run with speaker

WEEK OF THE EVENT

[ ] Tweet after event
[ ] Ask host if attendees list is needed and/or special location directions
[ ] Double check with host: microphone (if needed), soft drinks, power plugs, internet
[ ] Send to host to print PyLadies arrow signs
[ ] Print [feedback forms](feedback forms)
[ ] Prepare introduction slides past example

DAY OF THE EVENT
(arrive 30-60 minute before event starts)

[ ] Check projector, microphone, table setup, power extensions, recording if available
[ ] Support speaker(s) to test equipment
[ ] Stick PyLadies signs to guide attendees the location
[ ] Hang up or put out print outs with the WIFI (or find a similar solution)
[ ] Manage reception, give name tags if available
[ ] During the COVID 19 pandemic (and perhaps later) there might be additional health checks such as vaccination status or proof of a recent test to allow entry

DURING THE EVENT

[ ] Do introduction and Community announcements
[ ] Take photos of all the speakers and audience
[ ] Tweet about it (or after the event with photos)

AFTER THE EVENT

[ ] Tweet after event (if not done during the event)
[ ] Upload photos to google drive (you need to be part of the google group to access this)
[ ] Open PR with resources to this repository
[ ] Email sponsors & host to thank them
[ ] Copy feedback forms to feedback spreadsheet
[ ] Adjust guides if valuable feedback came up

moving to closed. event was at spiced academy and organised here https://pyladies.slack.com/archives/C07350JG354


Applying L7 filters after TCP tunneling

I am upgrading a TCP stream to HTTP/2 using the TCP tunneling feature. Is there any way to support applying a L7 filter to the output of the tunneling, without creating another listener?
Currently it seems like the only way to do this, is routing the output of the first listener (that has the tcp_proxy filter) to a second listener where there's the HTTP connection manager filter.

there is no way to do that today. I remember there is another issue about nest filter chain https://github.com/envoyproxy/envoy/issues/18035, I thought that can do the thing you asked. cc @kyessenov may know the background.

I think upstream HTTP filters would work better here? This is a new feature, but seems like the right fit to avoid another listener.

@kyessenov I tried adding an upstream HTTP filter, for some reason it doesn't hit any of the callbacks. I saw that this feature is in alpha. Does it need to be enabled with some runtime flag?

cc @alyssawilk
The feature should be enabled via xDS config. L7 filter needs to be registered as an upstream HTTP filter internally in the code, and not every HTTP filter has been registered. Do you have some trace log to share?

@kyessenov I tried using the buffer filter which is also registered as an upstream filter (modified it by printing some stuff in the filter callbacks and none of them were printed). The trace log does not show anything about the buffer filter. What do you mean enabling it by the xDS config? Can you give me an example? This is possibly what makes it not work..

By xDS config I mean the config file that you use to run Envoy, the sample here.

I tried it exactly as in the example you sent. I added prints in the "buffer" filter constructor and in "decodeHeaders". None of them were printed. It might have something to do with me using the TCP proxy filter? Looking at its code, seems like it has a custom upstream.

@kyessenov pinging again about this. Would appreciate your advice on how to proceed here, I am trying to understand whether I have configured something incorrectly or can you confirm that this should work even if using the TCP tunneling feature?

yeah I think it's not yet implemented yet for tunneled sessions.

@alyssawilk would it be possible to support it for tunneled sessions? I can try implementing this myself, but would appreciate hints on where should I start. What bothers me is that it seems like the tcp_proxy uses a custom upstream to manage tunneled sessions

If you're game to write the code I'm game to review but it's going to be a pretty complicated project.
Largely I think we'd want the HttpUpstream class in source/common/tcp_proxy/upstream.* to move towards code sharing or code reuse of UpstreamRequest in source/common/router/upstream_request.*
If I were doing it I'd probably start by prototyping having HttpUpstream implement RouterFilterInterface and own a HttpUpstream (with no filters - just trying to get the data flow working), then possibly split that into a few PRs of cleaning up interfaces and existing code, and the submitting the new functionality as flag guarded feature.  Once that's all hanging together, you could add in the complexity of filters and all the e2e tests to make sure resets and buffering work as expected.

This seems like a major change. I don't have enough capacity for this at the moment, but I'll keep this in mind. Thanks :)

@alyssawilk can you please mark this as help-wanted?

@alyssawilk @kyessenov as I see it there are two options to support this feature for tunneled session, either supporting upstream filters as per alyssa suggested, or adding http_filters: [] field to tunneling_config, so it would be part of the upstream implementation itself. Is there a preferred way to support this from your perapective?

Sorry I don't understand how adding filters to the tunneling config would help.  something still has to instantiate the filters and run the filter chain.

I meant, adding filters to the tunneling config and supporting this by code, meaning that tcp_proxy could also support L7 filters in the filter config, same as HCM is defined as a L4 filter, but has a config for the L7 filters. I guess this would require a lot more coding to support, but I'm asking which method should be more user-approaching?

I think I confused with my answer, let me rephrase.
Putting tcp_proxy aside, for HTTP case there are two places where you could use HTTP filters: 1. In the downstream filter chain (attached to the HCM filter), 2. In the upstream filters.
For tcp_proxy with tunneling, currently there's no support for HTTP filters, even though on the downstream filters, we have upgraded the stream to HTTP. Therefore, what I tried to suggest is:

Supporting HTTP filters in the tunneling config for tcp_proxy - this way, we can apply L7 filters for tunneled traffic, similar to how HCM is applying L7 filters for HTTP traffic.
Supporting upstream filters for tcp_proxy that was upgraded using tunneling config, by the approach you suggested in one of your previous comments here, quoting it here:

If you're game to write the code I'm game to review but it's going to be a pretty complicated project.
Largely I think we'd want the HttpUpstream class in source/common/tcp_proxy/upstream.* to move towards code sharing or code reuse of UpstreamRequest in source/common/router/upstream_request.* If I were doing it I'd probably start by prototyping having HttpUpstream implement RouterFilterInterface and own a HttpUpstream (with no filters - just trying to get the data flow working), then possibly split that into a few PRs of cleaning up interfaces and existing code, and the submitting the new functionality as flag guarded feature. Once that's all hanging together, you could add in the complexity of filters and all the e2e tests to make sure resets and buffering work as expected.

WDYT?

"For tcp_proxy with tunneling, currently there's no support for HTTP filters, even though on the downstream filters, we have upgraded the stream to HTTP. Therefore, what I tried to suggest is:"
For TCP proxy with tunneling, the main processing engine is TCP.  We only do L7 upstream.  So there's no way to do the moral equivalent of downstream filters, we can only do upstream filters.
We can configure the filter chain based on downstream, or upstream, but they're always going to be upstream filters.


Cancel in async* is delayed

The VM and dart2js both delay the cancellation of async* functions. (Both use scheduleMicrotask.)
This is different from a stream-controller which runs cancel-code immediately:
import 'dart:async';

get asyncStarStream async* {
  try {
    await new Completer().future;
  } finally {
    print("async* canceled");
  }
}

Future testStream(stream) {
  var sub = stream.listen(print);
  return new Future(() {
    print("canceling - ");
    sub.cancel();
    print("canceled * ");
  });
}

main() {
  testStream(new StreamController(
        onListen: () { },
        onCancel: () { print("controller canceled"); })
      .stream);
  testStream(asyncStarStream);
}

prints:
canceling -
controller canceled
canceled *
canceling -
canceled *
async* canceled

Should we change the behavior and make cancel immediate? From what I can see it consists of simply removing the scheduleMicrotask in both implementations. Here is a proposed patch (I ran it through some tests and didn't see any problems): https://gist.github.com/floitschG/7ab51c27908d61065490
/cc @lrhn @mhausner @gbracha

I don't think it's a good idea.
The stream controller's onCancel callback is run immediately, but it might be async and return a future, so we can't say that the actual cancel code is run immediately. In the case of an async* function, the actual cancel code is indeed asynchronous (it may contain await expressions or any other feature), so starting it one microtask earlier is not worth it maybe being run interleaved with other code.
var a = 0;
foo() async* {
  try {
    for (int i = 0; i < 10; i++) yield a = i;
  } finally {
    a = -1;
  }
}

main() {
  var stream = foo();
  var sub;
  sub = foo().listen((i) {
     print("$i = $a");
     if (i == 3) sub.cancel();
     print("$i = $a");
  });
}

The problem is that calling cancel may now have side-effects. It's not so surprising to the one calling cancel, but it's surprising to the person writing the async* function that they have to worry about it - all other parts of the async function are run as individual async events, not interleaved with other direct-style code.


Translated into GERMAN

Im in the process of Translating as much as i can into German

Almost finished

should be complete now


homepage-dashboard: cache dir is not cleared upon version upgrade

Describe the bug
Looks like homepage-dashboard has incompatible cache between it's own patch versions.
But the cache dir /var/cache/private/homepage-dashboard is not cleared upon version upgrade with nix.
Steps To Reproduce

Setup and use homepage-dashboard version 0.9.6
Update flake input: homepage-dashboard is upgraded to 0.9.10
Open homepage-dashboard in browser and press Ctrl-Shift-R
JS scripts are now broken for your installation, persisting even through restarts and rebuilds

Expected behavior

It just works

Screenshots

Workaround

Manually remove old cache in /var/cache/private/homepage-dashboard

Notify maintainers
@jnsgruk
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
❯ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.9.3-zen1, NixOS, 24.05 (Uakari), 24.05.20240606.9b5328b`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - nixpkgs: `/nix/store/x887lkxvgnrrcfgrzz351qhfvvrkm80x-source`

Add a :+1: reaction to issues you find important.

To be honest, I'm not really sure if this should be resolved on nix end or not, but looks like it still deserves some attention.

This is a bit of a problematic situation. On one end this kind of breaking behaviour should have been covered by system.stateVersion, and on the other there's no reasonable way for us to introduce "cache wiping" logic that would be safe and not a maintenance burden.

Hmm, I've not experienced this. One thing we could consider is a wrapper script that tries to grok what version the cache was generated for, and clear it before starting the app if that version doesn't match the current version - but I'd like to try and understand more about what caused this.
Could you post your config?

Is the cache expensive to populate? Why not wipe it every time the service is about to start, with ExecStartPre=?

Is the cache expensive to populate? Why not wipe it every time the service is about to start, with ExecStartPre=?

Yep, that'd probably do it.

To be honest, I'm not really sure if this should be resolved on nix end or not, but looks like it still deserves some attention.

I think an upstream issue should be made. (But we can work around it while we wait for upstream fix.)

Honestly I argue that if upstream doesn't fix it we should not support the package (unless there is really, really high demand). nixpkgs already has to do a lot of extra work to make things work, in some cases having to compensate for bad upstream code. I'm just personally against nixpkgs having to always take that burden and maintain it

My starting point was to overlay the package of homepage-dashboard from nixos-unstable with a single purpose of fixing cache generation issues, which were present earlier. nixos-unstable was pinned somewhere around fixes done by @jnsgruk. homepage-dashboard was v0.9.6 at this point.
A little bit later, I've updated the nixos-unstable input to include fixes for other apps, which also updated homepage-dashboard to v0.9.10. This is when I've encountered the issue mentioned in this thread.
My OS is on 24.05 channel and this is how I implemented fixes for homepage-dashboard from unstable:
  services.homepage-dashboard = {
    enable = true;
    package = pkgs.unstable.homepage-dashboard;
    ...
  };

  systemd.services.homepage-dashboard = {
    environment = {
      HOMEPAGE_CACHE_DIR = "/var/cache/homepage-dashboard";
      # LOG_LEVEL = "debug";
    };
    serviceConfig = { CacheDirectory = "homepage-dashboard"; };
  };

Thank you all for replies, I'll try to reproduce this on non-nixos system and fill an issue to upstream when I have spare time to do so.

Hey @atimofeev - did you get anywhere with this? I ran into this issue on another box and the only way I could sort it was by overriding the cache directory manually like so:
systemd.services.homepage-dashboard.environment.HOMEPAGE_CACHE_DIR = lib.mkForce "/tmp/homepage-dashboard";

Did you get the above config working?


pipenv shell is not working

~/***/infrastructure master*
❯ pipenv shell
Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.

~/***/infrastructure master*
❯ which python
/Users/jeyraof/.pyenv/shims/python

~/***/infrastructure master*
❯

Like above, pipenv shell did not activate virtualenv.
So, i tried to this:
~/***/infrastructure master*
❯ pipenv --venv
/Users/jeyraof/.local/share/virtualenvs/infrastructure

~/***/infrastructure master*
❯ source /Users/jeyraof/.local/share/virtualenvs/infrastructure/bin/activate

~/***/infrastructure master*
(infrastructure) ❯ which python
/Users/jeyraof/.local/share/virtualenvs/infrastructure/bin/python

~/***/infrastructure master*
(infrastructure) ❯

it works well!
What can i do fix it?

 Type 'exit' or 'Ctrl+D' to return.

~/***/infrastructure master*
❯ which python
/Users/jeyraof/.pyenv/shims/python

~/***/infrastructure master*
❯

that's it.

Ok, this appears to be a duplicate of #184 and how pyenv interacts with pew. You'll need to either use pipenv shell --compat or set the PIPENV_SHELL_COMPAT environment variable in your shell.

I got it. thank you @nateprewitt

No problem, glad it worked :)


update pb file

I thank you for the great code. Can you share the export to pb file, or where can I find it?

you can convert ckpt to pb  by yourself.

Do you have instructions for file convert


STORM-2423 - Join Bolt should use explicit instead of default window anchoring for emitted tuples

Default anchoring will anchor each emitted tuple to every tuple in current window. This requires a very large numbers of ACKs from any downstream bolt. If topology.debug is enabled, it also worsens the load on the system significantly.
Letting the topo run in this mode (in particular with max.spout.pending disabled), could lead to the worker running out of memory and crashing.
Fix Join Bolt should avoid using default window anchoring, and explicitly anchor each emitted tuple with the exact matching tuples form each inputs streams. This reduces the complexity of the tuple trees and consequently the reduces burden on the ACKing & messaging subsystems.
Also added additional documentation.

+1, LGTM.
@roshannaik You may want to address those minor nits.

Thanks @satishd for the quick turnaround. Updated the PR with the fixes.

@roshannaik TestJoinBolt is filed with errors in travis runs. Can you take a look into those failures?

+1 for the concept, would like to understand the test failures though.

@satishd
I have fixed the UTs. The MockCollector.emit used in the UT needed to be updated to correspond with  the emit method used by the JoinBolt.  Have squashed the commits.


multi-sessions

This would make stash more like a real deal. It will be a long-term goal. It does seems possible from the first look at it.

Pythonista 1.6 comes with builtin support for multiple tab UI applications. This feature is no longer necessary.


Replace big macro with Objective-C method for easier debugging.

When something goes wrong, C macros are hard to debug. So I replaced the main macro with an Objective-C method.
The XCT asserts are still in the macro. So if they fail, Xcode will highlight them in the actual test class, not in FBSnapshotTestCase.

oh nice, that's a good addition. I'll review it in detail this week.

This would be great to see merged, especially since we could get rid of the Swift file and use the Objective-C public API instead or am I missing something?


Check if we have the SERVER_MEMBERS intent before fetching server members

Summary
Fixes #51.
The gateway doesn't respond if we try to ask for server members without first declaring the intent. Originally, Server#members would just wait for a response that isn't coming, causing it to never return. This change checks the intents we sent with the gateway first before requesting members.

Added

Exposed Gateway#intents, the final calculated intents parameter sent to the gateway
Server#members now raises a RuntimeError if the gateway was not initialized with the SERVER_MEMBERS intent

Thanks!


Update to Kotlin 1.8.20

No new release is currently needed

I've released 0.21.0-1.8.20-Beta with the changes in this PR up to this point. New release ended up being needed because of a signature change (missed it because it was a source-compatible change).

Waiting for KSP now


Missing

The documentation of Offline Files CSP seems to miss entirely the various elements defined in the ADMX.
For example, Pol_PurgeAtLogoff requires the element "Lbl_PurgeOnlyAutoCachedFiles" with a boolean value of true or false.
I have not checked all the other ADMX CPS's. If it is normal that the documentation does not include elements, then it would be useful to give a reference to the ADMX itself.

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

ID: 623ec73f-d591-1e43-08cf-e5aff51df10e
Version Independent ID: 0407ef30-2ede-00a2-4677-c36c4a66433b
Content: ADMX_OfflineFiles Policy CSP - Windows Client Management
Content Source: windows/client-management/mdm/policy-csp-admx-offlinefiles.md
Product: windows-client
Technology: itpro-manage
GitHub Login: @vinaypamnani-msft
Microsoft Alias: vinpa

@Air-Git Not all ADMX elements are exposed in the CSPs, but wherever applicable the ADMX reference is listed in a table under the policy node description. We recently automated the CSP articles, so any previously missing ADMX references should now be listed in the articles. I'll go ahead and close this issue as there's nothing actionable at the moment.


WebGL animation framerate parameter not working

all our animations were limited to 15 fps yet they all run 60 ignoring parameter it sems

How are you setting framerate? What is your timingMode?
If you are using RAF, it is not limited by a framerate. Try RAF_SYNCHED, which uses RAF but simulates another framerate. You also have to ensure you pass the TIcker event through to the stage.
createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED;
createjs.Ticker.framerate = 15;
createjs.Ticker.on("tick", function(e) {
    stage.update(e); // Pass event to the update
});

Hi lanny.  Thx a lot. Unfortunately bug was on my side sorry for that ;(.
I was hooking Sprite.tick and I forgot to pass event param to original tick. My bad.
Anyway
We are hooking Sprite.tick to collect bounds rectangles just once for fast rectangle based hit testing that is so needed for gui in createjs.
I plan to add this and fast rectangle-based hit testing as a pull requests when ready to give back to this wonderful community.


Add fuzzer for the compact custom codec implementation from PR #6720

This commit adds a fuzzing harness for the custom compact encoding/decoding
introduced in PR #6720.

 :) Then everything is fine!

@viniul could you also change the indentation to tabs? :) Then everything is fine!

Should be done now. Thanks for reviewing!

bot merge


clang-format

does this support clang-format? i couldn't find a way to add additional formatters

Hi,
Yeah, it should support it.
Regarding "additional formatters", the whole point of this plugin was to allow adding whatever formatters you want via configuration. I added a few formatters just as examples (if anyone wants to send a PR to add existing formatters I'm happy to merge them).
Look at the "Configuration" section of the README file, it explains how to add whichever formatter you want.

i got it working. sorry about posting issue. I have never used null-ls or anything. very new to this.

All's good, no worries 😄
Thanks for the interest in my plugin and feel free to post again if you run into any issues 👍

I got this working on my dotfiles with:
return formatters.shell({
  cmd = { "clang-format", "--assume-filename", "%" },
})

@elentok I am happy to PR support for this if you would like? Not sure on how you want to approach built in support for formatters. Thanks!

I got this working on my dotfiles with:
return formatters.shell({
  cmd = { "clang-format", "--assume-filename", "%" },
})

@elentok I am happy to PR support for this if you would like? Not sure on how you want to approach built in support for formatters. Thanks!

Hi Jack,
Sure, go ahead, thanks! 👍
I was afraid at first that including formatter configuration might be difficult to maintain but I'm not worried anymore. I do think that I might have to split the formatters.lua file at some point, right now it's 67 lines but at some point it might get too big to easily maintain.

Hi,
I'm closing this issue for now, if anyone wants to send a PR to add clang-format to the built-in formatters, feel free 😄


proposal: add golang.org/x/internal repository

Some of the code in the golang.org/x repositories is shared between multiple repositories: for example, the program to generate the lookup tables in golang.org/x/net/idna needs access to a number of utility packages that are shared with (and currently internal to) golang.org/x/text, including Unicode tables containing large constant strings and arrays.
I suspect that there may be similar opportunities for factoring out internal packages from x/build and x/tools.
Ideally, we should be able to share that data through some common module dependency, rather than by copying code from one module to another. And we have a mechanism for that: the internal path component works in module mode, too, so we could add a golang.org/x/internal component and move any shared dependencies there.
I propose that we add a new repository, golang.org/x/internal, to contain these sorts of project-internal cross-repo dependencies.
Note that the packages within x/internal may need to import from a large number of the other golang.org/x modules, so we would need to be careful to minimize its dependencies. This may be a reasonable use-case for a multi-module repository, since packages within x/internal may be only very loosely coupled to each other.
CC @bradfitz @mpvl @dmitshur @jayconrod @matloob @hyangah @ianthehat @rsc

Speaking for myself, I think the behavior that golang.org/x/internal would create packages internal to the "golang.org/x/" "namespace" is surprising. I'm worried that our users and contributors will get confused by this too.

@matloob, why would that be surprising? It's the same way the /internal path component works everywhere...

@bcmills My personal intuitive model is that internal/ is used within a repo or module, so it's surprising to me according to that model. I wonder if there are others who think with that model.

I'm fine with this as long as it's multi-module.
If this is going to be a single module 'util' dumping ground then I'm firmly opposed.

At least in the x/text case it seems to solve only half the problem. Most of the cross-repo generation is from x/text to core, which this would not solve.  This could be mitigated with "vendoring", but not for everything (e.g. core unicode).  Also, most of these packages, like unicode/norm, would ideally live as a stripped down version in core that x/text can depend on (this can reduce table size significantly.) The same perhaps for net/idna. This would diminish the benefit of x/internal greatly from x/text's perspective.

Per discussion with @golang/proposal-review
What are the initial set of packages in this repo and how would they help? Would they each have their own module?

I think a "golang.org/x/internal" repo is a type error. I understand why others would think not and have done exactly this, but if you have to put version numbers on it and manage references to it from other repos, it's not particularly internal anymore. I also worry about the tendency to think "oh we'll just put this in internal for now instead of thinking about an API we are willing to commit to", which would lead to the internal repo being a bit of a dumping ground. It would also end up with bits of lots of different subject domains and cut useful git history out of the more specific repos. All of this cautions against an internal repo. I'd rather address case-by-case specific examples as they come up.

The specific example I had in mind was x/text, but Marcel notes that it would not actually help for that. On that basis, I'll withdraw this proposal until/unless we find a more compelling use-case.

I also worry about the tendency to think "oh we'll just put this in internal for now instead of thinking about an API we are willing to commit to", which would lead to the internal repo being a bit of a dumping ground.

Even worse, an internal repo doesn't actually let us avoid committing to an API: the internal repo would have to have a stable API to maintain forward-compatibility, and at that point I guess we may as well make the packages public rather than internal.


How do I use an older version of apollo (5.5)?

Hello, looking to use apollo 5.5. However, can't seem to figure out a way to use the older version. How can I use apollo 5.5 or any other version besides 6.0? Do I need to rebuilld with a different docker image? Thank you.

You do not need to do any additional processing, because "dev_start.sh" will automatically handle these differences.
You only need to checkout 5.5 code and start "dev_start.sh".

You do not need to do any additional processing, because "dev_start.sh" will automatically handle these differences.
You only need to checkout 5.5 code and start "dev_start.sh".

Hi, thank you for the response. Can you tell me what the checkout 5.5 code is? What CMD should I type to switch versions? Thank you.

You should learn some operations of git so that you can better manage the code.
 git checkout r5.5.0

You should learn some operations of gitso that you can better manage the code.
 git checkout r5.5.0

Ok, I'm relatively familiar with git. Thank you for the help. Closing the issue.


Add support for embedded-hal-async

Now that the embedded-hal-async crate has released version 1.0, it would be nice to be able to use the async versions of embedded-hal's traits for writing drivers for Sensirion I2C devices. This commit adds a new i2c_async module which provides versions of the APIs in the i2c module that use embedded-hal-async's async I2c trait rather than embedded-hal's blocking I2c trait.
The new module is feature-flagged, so that users who don't need embedded-hal-async support can avoid the additional dependency, and it's off by default. Ideally, it would be nice if the blocking embedded-hal APIs could also be feature-flagged, so that async-only users don't have to pull them in, but that would be a breaking change. I've also taken the liberty of adding support for the doc_cfg and doc_auto_cfg RustDoc features when building on docs.rs, so that the documentation displays that the new module is feature-flagged.
Closes #24

Thank you very much for your contribution

Hey @psachs, thanks for maintaining this crate! I noticed that this PR was merged, but no release was pushed to crates.io so far. Would you mind doing such a release? That would allow async support for the SGP30 to get merged: https://github.com/dbrgn/sgp30-rs/pull/19

@dbrgn I just release v0.4.0 with the async support. You should now be able to merge the sgp30 async support as well

@psachs great, thanks!


Revert "Use random strategy for Swarms"

I find it very confusing that machine doesn't have the same default as swarm.

ping @ehazlett @bfirsh

This makes sense to me.  I think we should match whatever the Swarm default is.  Eventually we will make this configurable so it won't be an issue.
@bfirsh ?

Hmm, I suppose. The reason I added this in the first place is I think it's a bit surprising that when you first try out Swarm, all of your processes end up on a single node.
I understand that random scheduling also has issues, in that you won't be able to schedule large jobs.
I guess it's better to be consistent... all the better for improving our Swarm support. :)

LGTM


replace wrench with fs-extra

Expected behavior:
npm install with no warning
Actual behavior:
npm WARN deprecated<EMAIL_ADDRESS>wrench.js is deprecated! You should check out fs-extra (https://github.com/jprichardson/node-fs-extra) for any operations you were using wrench for. Thanks for all the usage over the years.
Steps to reproduce:
checkout the project
navigate to the frontend directory
npm install
Screenshots (if applicable):
N/A
OS and Browser:

I checked fs-extra and got this: http://jprichardson.github.io/node-fs-extra/
Then I use npm install --save fs-extra
So I got this:

Before that I only use npm install and got this result:

I think problem is solve if we use npm install --save fs-extra

According to yarn.lock wrench is required by<EMAIL_ADDRESS>which is required by<EMAIL_ADDRESS>which is required by<EMAIL_ADDRESS>which is required by<EMAIL_ADDRESS>which is in our package.json file. So probably needs to be resolved upstream, looks like they have not done so yet... https://github.com/felixrieseberg/electron-windows-store/blob/master/package.json


add xpu device support for rms_norm

Summary
I was running a trl unit test with liger support (link) and found that cuda device is hard-coded in rms_norm_backward.
This PR adds support for Intel GPU. After the fix, the test passes:
====================================================== short test summary info ======================================================
PASSED tests/slow/test_sft_slow.py::SFTTrainerSlowTester::test_sft_trainer_with_liger_0_trl_internal_testing_tiny_random_LlamaForCausalLM
================================================== 1 passed, 8 warnings in 14.47s ===================================================

Testing Done
A lot of tests fail because it only support CUDA devices.

cool! what it takes to fix all kernels and make all tests pass?

cool! what it takes to fix all kernels and make all tests pass?

then we will need to make all tests device-agnostic. Currently, I see that the device is hard-coded in the test itself, e.g. https://github.com/linkedin/Liger-Kernel/blob/main/test/transformers/test_swiglu.py#L55.
How about that I only modify the tests related to rms_norm, e,g. https://github.com/linkedin/Liger-Kernel/blob/main/test/transformers/test_rms_norm.py ?

feel free to modify all tests and kernels to make all of them work on xpu as long as the original test still passes on cuda device. We do want to support xpu but i don't have a device handy. How about we tackle rms_norm first, then we do others in the following PR? By the way, do you have wechat? Mine is wxid_nn8pbmlh9ae712. Eager to collaborate on xpu support!

feel free to modify all tests and kernels to make all of them work on xpu as long as the original test still passes on cuda device.
We do want to support xpu but i don't have a device handy. How about we tackle rms_norm first, then we do others in the following PR? By the way, do you have wechat? Mine is wxid_nn8pbmlh9ae712. Eager to collaborate on xpu support!

Sure, we will do this. BTW, seems cannot find you w/ the wechat id you shared, maybe could you find us. Mine is: yaoweifeng813986, and @faaany can share hers. Thx.

Hi @ByronHsu , coach_up is mine. And thanks for the proposal! I will update the rms_norm tests in this PR.

I have added both of you on wechat. Please check!

Hi @ByronHsu, I enabled the rms_norm UT on XPU. Pls see the below UT results:
=============================================== short test summary info ===============================================
PASSED test/transformers/test_rms_norm.py::test_correctness[True-LlamaRMSNorm-0.0-llama-dtype0-0.0001-1e-06-2-128-512]
PASSED test/transformers/test_rms_norm.py::test_correctness[True-LlamaRMSNorm-0.0-llama-dtype0-0.0001-1e-06-5-123-123]
PASSED test/transformers/test_rms_norm.py::test_correctness[True-LlamaRMSNorm-0.0-llama-dtype1-0.2-0.02-2-128-512]
PASSED test/transformers/test_rms_norm.py::test_correctness[True-LlamaRMSNorm-0.0-llama-dtype1-0.2-0.02-5-123-123]
PASSED test/transformers/test_rms_norm.py::test_correctness[True-GemmaRMSNorm-1.0-gemma-dtype0-0.0001-1e-06-2-128-512]
PASSED test/transformers/test_rms_norm.py::test_correctness[True-GemmaRMSNorm-1.0-gemma-dtype0-0.0001-1e-06-5-123-123]
PASSED test/transformers/test_rms_norm.py::test_correctness[True-GemmaRMSNorm-1.0-gemma-dtype1-0.2-0.02-2-128-512]
PASSED test/transformers/test_rms_norm.py::test_correctness[True-GemmaRMSNorm-1.0-gemma-dtype1-0.2-0.02-5-123-123]
PASSED test/transformers/test_rms_norm.py::test_correctness[False-LlamaRMSNorm-0.0-llama-dtype0-0.0001-1e-06-2-128-512]
PASSED test/transformers/test_rms_norm.py::test_correctness[False-LlamaRMSNorm-0.0-llama-dtype0-0.0001-1e-06-5-123-123]
PASSED test/transformers/test_rms_norm.py::test_correctness[False-LlamaRMSNorm-0.0-llama-dtype1-0.2-0.02-2-128-512]
PASSED test/transformers/test_rms_norm.py::test_correctness[False-LlamaRMSNorm-0.0-llama-dtype1-0.2-0.02-5-123-123]
PASSED test/transformers/test_rms_norm.py::test_correctness[False-GemmaRMSNorm-1.0-gemma-dtype0-0.0001-1e-06-2-128-512]
PASSED test/transformers/test_rms_norm.py::test_correctness[False-GemmaRMSNorm-1.0-gemma-dtype0-0.0001-1e-06-5-123-123]
PASSED test/transformers/test_rms_norm.py::test_correctness[False-GemmaRMSNorm-1.0-gemma-dtype1-0.2-0.02-2-128-512]
PASSED test/transformers/test_rms_norm.py::test_correctness[False-GemmaRMSNorm-1.0-gemma-dtype1-0.2-0.02-5-123-123]
PASSED test/transformers/test_rms_norm.py::test_correctness_functional[LlamaRMSNorm-0.0-llama-dtype0-0.0001-1e-06-2-2-8]
PASSED test/transformers/test_rms_norm.py::test_correctness_functional[LlamaRMSNorm-0.0-llama-dtype0-0.0001-1e-06-9-7-41]
PASSED test/transformers/test_rms_norm.py::test_correctness_functional[LlamaRMSNorm-0.0-llama-dtype1-0.2-0.02-2-2-8]
PASSED test/transformers/test_rms_norm.py::test_correctness_functional[LlamaRMSNorm-0.0-llama-dtype1-0.2-0.02-9-7-41]
PASSED test/transformers/test_rms_norm.py::test_correctness_functional[GemmaRMSNorm-1.0-gemma-dtype0-0.0001-1e-06-2-2-8]
PASSED test/transformers/test_rms_norm.py::test_correctness_functional[GemmaRMSNorm-1.0-gemma-dtype0-0.0001-1e-06-9-7-41]
PASSED test/transformers/test_rms_norm.py::test_correctness_functional[GemmaRMSNorm-1.0-gemma-dtype1-0.2-0.02-2-2-8]
PASSED test/transformers/test_rms_norm.py::test_correctness_functional[GemmaRMSNorm-1.0-gemma-dtype1-0.2-0.02-9-7-41]
=========================================== 24 passed, 2 warnings in 3.03s ============================================


memory management cleanups

quite a few small and large long-awaited improvements, largely addresses #26

current status of env MallocStackLogging=1 MallocGuardEdges=1 MallocScribble=1 ./test/bin/test_net_bulk:
leaks Report Version:  2.0
Process 51514: 467 nodes malloced for 57 KB
Process 51514: 104 leaks for 24928 total leaked bytes.

Process 55734: 361 nodes malloced for 32 KB
Process 55734: 0 leaks for 0 total leaked bytes.```


cargo-release: update README version

As per #26, this PR makes cargo release replace (or cargo release) replace the version number in the README.
❯ cargo release replace
   Replacing in README.md
--- README.md   original
+++ README.md   replaced
@@ -49 +49 @@
-catppuccin-egui = "4.0"
+catppuccin-egui = "^4.0.0"

warning: aborting release due to dry run; re-run with `--execute`

I didn't check how this fits in with your existing release workflow. cargo-release is capable of pretty much everything a normal crate needs, so I'm not sure where you want to take this idea.

Thanks!


feat: avoid port collision on Socket creation of the TcpForwarder

When creating a ServerSocket we can pass the argument 0 to allow the ServerSocket itself to allocate a free local port. Doing this we reliably avoid port collision errors, as there will be no concurrency errors derived by receiving the host port in the first place.
This PR makes hostPort of the TcpForwarder optional and returns what was the actual allocated port to the client. This was done through a new API on dadb also called tcpForward but without the hostPort argument.

Both overloads should return the same type. In that case, you can create a wrapper type that implements autocloseable and exposes the hostport in order to make this a non-breaking change for the original method. I also think the wrapper type is a better API - Pair doesn't seem like something we should expose in a public API in most cases


Issue with css output with referenced images in stylesheet

Just fyi,
I was struggling with an issue whereby an image referenced by relative path ( with or without alias ) in my stylesheet ( I tried both .scss and .css ) would not be properly output. ( I'm working on refactoring an old app, so I'm not using the tailwind utilities here, just a plain css file where I added a few `@apply -- but this isn't the issue )
This is the old css, with an @apply added in it. In this example, the main stylesheet and the gif image are in the same folder under /src/assets/... :
.rw-Rune {
  @apply flex;

  width: 34px;
  height: 34px;

  background: url("./rune2.gif") no-repeat 50% -34px;

With just vite it works. But with vite build I get the following in the output css :
.rw-Rune {
  width: 34px;
  height: 34px;
  background: url("data:image/gif;       <---- truncated here
  color: #666;

Without any idea where to look, I tried disabling plugins. Turns out after disabling the windicss()  in plugins in vite.config.js,  the image is correctly output in resulting css ( but then of course the @apply isn;'t parsed) :
.rw-Rune {
  @apply flex;
  width: 34px;
  height: 34px;
  background: url("data:image/gif;base64,R0lGODlhHABFAPcAAEJFQCIkIUxOSEhOSkxMRBgZFyAiIC8yKyIjICIiHxocGB0fGlBRSU9RSgAAAEdHQj9CPSosKTc3MiwtKistKx4fHCgpJklKRCcoJAICAgQEA0hKQygpJTY2MR4eG0dJQkZIQiQmIyorJw4PDRobFwoLCBITDzs8N1JUTUJFP2tsYy0uKy    (etc)

To be sure, I tried main stylesheet both as .scss and .css . The .css file has the same issue, the base64 encoded image referenced in the background property also gets truncated.
Is it possible that the windicss parser somehow doesn't match something properly in those base64 url?

I just tested it, it seems the problem is not here.
.rw-Rune {
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    width: 34px;
    height: 34px;
    background: url("data:image/gif;base64,R0lGODlhHABFAPcAAEJFQCIkIUxOSEhOSkxMRBgZFyAiIC8yKyIjICIiHxocGB0fGlBRSU9RSgAAAEdHQj9CPSosKTc3MiwtKistKx4fHCgpJklKRCcoJAICAgQEA0hKQygpJTY2MR4eG0dJQkZIQiQmIyorJw4PDRobFwoLCBITDzs8N1JUTUJFP2tsYy0uKy");
  }

and make sure you are using the latest version of windicss. I will transfer this issue to vite-plugin.


Execution name for the OntCatOWL-Tester

I was not able to execute the software using the command line.
A similar issue (#11) is reported for OntCatOWL.

Please solve this issue only after the re-generation of the dataset.

To run from the command line:

navigate to the folder scior-tester;
run python -m src.scior_tester with the required parameters.
Could be that python should be changed to python3 (depending on the system and user settings).


[bug] "swappable:swapped" Event cancel() doesn't stop from swapping actually.

Using chrome 64.
Look at my codePen https://codepen.io/anon/pen/ZrbVVG
In the JS code, I'm listening to swappable:swapped event, and cancelling it via e.cancel(). According to the docs, the event is fired before actually swapping, and if cancelled, the swap won't take place. In the codePen you'll see that cancel() won't prevent images from swapping.
If I'm missing something I apologize in advance. Thank you.

@leftdevel thanks for reporting!
This is actually a documentation mistake 😬 We introduced a swappable:swap event that gets triggered before the actual swap (swappable:swapped) in beta.4, so you can cancel it in time. Changing swappable:swapped to swappable:swap should make it work
Correct docs: https://github.com/Shopify/draggable/tree/v1.0.0-beta.5/src/Swappable
Hope this helps

Thanks a lot!


AWS Exfil

AWS Exfil via snapshots

This PR was created by Automated Detection Testing Service :robot:
Tested detections:
Detect shared ec2 snapshot :white_check_mark:

diskUsage: 155648
runDuration: 0.932s
scanCount: 7


avoid adding nonexistent paths to environment variables

Without sourcing the setup file for a package contributes its nonexistent paths to all environment variables: CPATH, LD_LIBRARY_PATH, PATH, PKG_CONFIG_PATH and PYTHONPATH.

This will address the problems manifesting in failing roswtf tests: http://build.ros.org/job/Idev__ros_comm__ubuntu_trusty_amd64/7/testReport/main/TestRostopicOnline/test_offline/

looks good. you should probably add one more test case which checks the non-existent path gets stripped

Good point, now covered in https://github.com/ros/catkin/pull/777/files#diff-ad1f6ee5eed3025b89ceed022166eab8R70

+1


Next meeting: Thursday, June-20, 2024

Next meeting: Thursday, June-20, 2024

Type of change

Bug fix
New feature
Improvement (improvement to code, performance, etc)
Test update
Documentation update

Description

Additional details

Related issues

Thank you!


Support array element accessing expression

defined as IDENTIFIER '[' LONG ']' which means identifier part must be quoted to access array element, for example, "x"[0]. Be sure to know the difference between x[0] and "x"[0].

You cannot use expression in [~~].

Done


Add "Does Not Work in Safari" to "Use HTML5 to Require a Field" Description

We've gotten a ton of bugs on Use HTML5 to Require a Field from Safari users lately.  Safari does not support the required field (or it doesn't work the way you'd expect).
We need a Note: This field does not work in Safari added to the end of the description so we can stop getting bugs.

i'd like to get my feet wet with this one.

@chriscampbell32 It's all yours.

This should be closed as PR https://github.com/FreeCodeCamp/FreeCodeCamp/pull/4785 fixes this.

Thanks for pointing this out @erictleung!


add a control bar to each embedded query with various actions

add a control bar to each embedded query with various actions such as: collapse all, show context, sort, hide title, hide results, render markdown, and copy results.
There used to be a great Query Control Plugin，https://github.com/nothingislost/obsidian-query-control
unfortunately, Obsidian 1.2.x+ seems to have broken Query Control in the Search tab and embedded search queries. it has been unable to work normally for several months.
I think you can learn from the idea of this plugin, I believe your plugin has great potential

Hello, @calmwaves111,
Thank you for the input! I'm well aware of the plugin you mentioned 😅
The query control buttons are not what I intended to implement, and they seem to be outside of the scope of this plugin, which has a simple goal of adding context around matches. I might consider it when I have some spare time and if I see more people showing interest in this.
That said, if somebody creates a PR with the change, I'll gladly add this. My guess is that copying the feature from obsidian-query-control is going to be relatively straightforward.

Hello, @calmwaves111,
Good news! NothingIsLost is back, and he fixed the control bar for embedded queries in obsidian-query-control.

Hello, @calmwaves111,
Good news! NothingIsLost is back, and he fixed the control bar for embedded queries in obsidian-query-control.

yes, I have got it, This is exciting good news.
And I believe your plugin is also very useful. You two are working in different directions. Thank you for your hard work


ci: compatible ruff latest version

our ci fail with latest version of ruff in step lint
https://github.com/apache/dolphinscheduler-sdk-python/actions/runs/8841147449/job/24277780100

Brief Summary of The Change

Pull Request checklist
I confirm that the following checklist has been completed.

[x] Add/Change test cases for the changes.
[x] Add/Change the related documentation, should also change docs/source/config.rst when you change file default_config.yaml.
[x] (Optional) Add your change to UPDATING.md when it is an incompatible change.

Codecov Report
Attention: Patch coverage is 54.54545% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 90.88%. Comparing base (2f1f2c4) to head (7818d2e).

Files
Patch %
Lines

src/pydolphinscheduler/core/yaml_workflow.py
66.66%
3 Missing :warning:

src/pydolphinscheduler/resources_plugin/github.py
0.00%
1 Missing :warning:

src/pydolphinscheduler/resources_plugin/gitlab.py
0.00%
1 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #144   +/-   ##
=======================================
  Coverage   90.88%   90.88%
=======================================
  Files          64       64
  Lines        2371     2371
=======================================
  Hits         2155     2155
  Misses        216      216

Flag
Coverage Δ

unittests
90.88% <54.54%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Enable full-screen mode on iOS

Would you consider enabling the full-screen mode for vscode on iOS Safari? This can be done by adding the meta tag <meta name="apple-mobile-web-app-capable" content="yes">. It gets rid of the browser's user interface so more screen space is available for users.
Moreover, adding the shrink-to-fit=no viewport attribute prevents the default scaling down behavior when content overflows.
https://github.com/microsoft/vscode/blob/427f48b8d17ff1e987918f04eec7f6e03a3f23d5/src/vs/code/browser/workbench/workbench.html#L11
Github Codespaces looks pretty good by having them on.

@tianzerun thanks for the suggestion. This makes sense and I plan to try it out.

Did not have time unfortunetly, pushing out to August, since in July I am on vacation.

@tianzerun I apologise for the slow response, I was on summer vacation.
First of all, we definitely want to enable full screen. Similar discussion https://github.com/microsoft/vscode/issues/106972
However I just tried the changes you propose and I could not see any change in behaviour.
I also tried Codespaces with what they have and I could not get into full-screen mode on my iPad. Is this something only for mobile?
If yes what are the exact changes that you see?
@bpasero I am not sure if we are open to these changes that might potentially only improve the phone experience. I am in general ok with this, since users might use the phone for some simple browsing.
fyi @alefragnani

Once more info is provided I would open this issue. Thanks!

I test this meta view port on iPad that works:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, minimal-ui"/>
<meta name="apple-mobile-web-app-capable" content="yes" />

It since that minimal-ui makes this feature work.

i get it 😄

os： ipados 15
device：ipad pro 2021
step：
1、 pin icon to desktop
2、open & reload

@LeuisKen I just tried your suggestion and it still does not work for me.


Fix setup.sh to edit the NGINX config prior to Docker builds

The setup.sh script needs to be revised (vytools repo) to sed -i the values in nginx.conf in this repo so that one command can prepare the codebase for local or production releases.

I fixed the setup script and re-built the local image for app:0.2.5 and pushed to Docker hub. This is closed.


Add hotkey to start/stop Kap recording, not just trigger Kap

macOS version: 10.14.3
Kap version: 3.0.0-beta.5
Steps to reproduce

Activate Kap with hotkey or without. Kap shows up with area I want to select.
Select area I want.
Wish there was a hotkey to start a recording.
Press hotkey to stop recording (hotkey to trigger Kap works here 🎊)

Current behaviour
Step 3. can't be done currently.
Expected behaviour
There is a hotkey to actually start a Kap recording without having to manually press the big red button.
I think it would be nice to use the the Trigger Kap hotkey to actually start Kap recording when in context of choosing an area to select for recording.
Workaround

None.

Related: #625


Do we still need TripleSink and QuadSink?

In #37 @MattesWhite points out that sinks are not very idiomatic.
I introduced them to be able to consume sources, and I introduced sources because iterators had limitation (see the stream module documentation).
But we could reuse the notion of streaming mode, introduced in the Graph and Dataset traits, to make sources consumable in a more idiomatic way, e.g. with a for_each_triple method (resp. for_each_quad)...
Let's investigate that...

Sorry but I don't see the use case you describe. It don't makes sense to me to have short lived buffer contents.
Here are the use cases (for parsers) I can imagine and roughly how I would implement them:
Parse from String
The parser is implemented in a zero-copy way and gives out RefTerms (TD = &'source str). In this case RefTerms can be stored within the parser without a problem as the lifetime is tight to the source so the references 'content' will outlive the parsing anyway. Note that instead of &'source str you can always return &'static str as it is guaranteed to outlive 'source. This can become handy when some shorthand like a or implicit datatypes are parsed in Turtle. So no need for internal, owning buffers here.
Parse from big document
Lets assume that the RDF-document we parse is to big for our machine's memory. Indeed, this is an interessting case where it could be desireable to only parse one triple (NTriples) or one block (Turtle) at a time and give out references of this temporary read. Here I could think of an architecture of iterator-of-iterators. The outer-iterator reads from the document ('doc) units of interesst ('doc :  'part this means the lifetime 'part is ensured to be shorter than 'doc see here). Those parts then are parsed individually by parsers that hand out RefTerm<'part>. I think this could work.
Read from persistent data structure
Here I think no parsing is needed but Graphs are directly constructed (e.g. HDT format). For this case you found already a very elegant solution.

As you can see in my opinion I can't figure out the problem you are facing.
BTW It is not clear to me what the function for_each_triple() is supposed to do... something like Iterator::for_each()?
And the most important question: What has this to do with sinks?

Parse Strings

Things are not that simple... Consider the following turtle
@base <http://example.org/foo/bar/>
<../BAZ> <http://schema.org/label> "\u2693";
    <http://example.org/other-prop> "\u2744".

The subject of the first triple, can not reference to the inner data of the string (it must contain http://example.org/foo/BAZ), and neither can the object (it must contain ☃). So you need internal buffers. And once the first triple has been yielded, it makes sense for the parser to reuse the internal object buffer to store the new literal.

Parse big files

What you are suggesting is to have different APIs for parsing strings and files... This is not really convenient for the user.

What does it have to do with sinks

As I put it in the intro of that issue:  I introduced sinks to be able to consume sources, and I introduced sources because iterators had limitation. By improving the design of sources (with the for_each_triple method), we could make it possible to consume a source without a dedicated sink object.
And yes, the for_each_triple methods is supposed to work the same way as Iterator::for_each. Again, sources are just iterators with weaker assumptions on their items.

Okay, I see now that there are non trivial cases parsing RDF. So when I understand you correctly in your example you want to return a literal "☃" instead of "\u2744" which means you store the ☃ inside the parser give a reference to it out in this iteration and reuse this buffer in the next iteration, correct? Hm... difficult thing if we don't want to copy each term...

[...] because iterators had limitation.

You mentioned this before but you didn't give any examples. Could you please explain this further and how sinks are able to better consume a source?
In fact, I had real trouble implementing my serializer for TripleSource. For current API, it is not possible to consume a TripleSource that not implements Iterator as there is nothing that points out what elements are to expect. Therefore, I had to write my trait bound for Iterator<Item=Result<Tri, E>> instead of TripleSource

By "iterator had limitations", I meant "Iterator makes too strong assumptions on the lifetime of their items", which you can rephrase "Iterators do not support short-lived items (i.e. items living not longer than a single iteration)".
I just pushed a branch (still WIP) where I improved the TripeSource trait as suggested above (plus filter, map and map_filter as a bonus). Also, a TripleSource now indicates the kind of triples it yields (reusing the trick we used for Graph's iterators to avoid the lifetime issues).
It makes it possible to consume a TripleSource using for_each_triple or try_for_each_triple, without requiring to implement TripleSink, which can be simply removed.

This looks awesome now I understand what you are talking about. However, it could be hard but a next_triple() method would be nice.

This looks awesome now I understand what you are talking about.

Thanks :-)

However, it could be hard but a next_triple() method would be nice.

Yeah, I though about it... It could look like that:
    fn next_triple<'s>(&'s mut self) -> StreamedTriple<'s, Self::Triple>;

and the bound on lifetime 's would prevent to call next_triple again while the returned streamed triple is alive (as this would cause two mutable borrows on self).
But... I can not implement this method for Rio parsers, so I ruled it out -- with regrets :cry:
On the one hand, it is a shame do make an API design decision based on one particular implementation. But on the other hand, the UnsafeTriple / StreamedTriple pattern (which is required to make the next_triple method possible) is a quite complex one (you know how hard it was to make it right... you were there :wink:), so we can't expect all implementatiosn to have a similar mechanism.  Hence my decision.
Of course, when Rust finally supports GAT, things will be much easier :smile:

I guess you're still trying hard to implement the new TripleSource? Writing a Turtle serializer and a Notation 3 parser, I got a lot of improvements / features pending for sophia. However, I don't want to commit PRs while you change an integral part of the crate. So a short update per week or so would be nice to have :wink: .
BTW I don't depend on a new release. My crate will not be ready for release for a long time. In fact, it is more a playground for my PhD than a serious project. Therefore, I wouldn't mind if your not spending to much effort on releasing a new version.

I guess you're still trying hard to implement the new TripleSource?
No, I'm just buried in other stuff, much less fun... :-( Sorry to keep you waiting. I'll try to keep things moving, though. I'm very interested in your N3 parser :-)

Solved by 1e0836ace5cf


Terminal UI component

Fixes #188, Fixes #187, and Fixes #165
Preview link
changes:

Disabled spell check and autocomplete for the terminal input area
paste now works in safari (iPhone)
Added command history option (use up and down arrow keys to cycle through previous commands)

A few changes that can be added:

disabling input when the challenge is completed (not sure if we should implement this change)
#145 - the figma mockup however has a normal terminal caret

Current known bugs:

terminal interface height not spanning over the entire div
Smooth Scroll behavior when the div expands

tACK on Firefox mobile
I implemented the input simply losing focus on a completed challenge so that the keyboard disappears. At the moment once you complete a challenge it's hard to tell what to do next. Especially at this early stage.

Hey Ben. Good catch. The success text is currently being revamped in https://github.com/saving-satoshi/saving-satoshi/pull/194. We can probably add another line that says "Click next to continue" which should make the user at least want to look for a "next" button. But let me tag Christoph on this issue.
Vinayak, I tested paste functionality and it works great. I'm going to ask @afterburn to review the fix for command history. Lastly as I was testing spell check, I found a weird bug where the letters "fi" get smashed together if they're typed next to each other. I tried other letter combos but couldn't replicate. It's possible it could affect other letter combinations.
I'll create another issue so we can track it properly but could you take a look to see if you can also include that in this PR?

the fi bug seems to be really weird. I tested it out on the live website  and the same behavior occurs. I think it might be due to the font style. Found this on the internet about it.

Based on that convo, it sounds like there are two fixes:

disable ligatures-> font-feature-settings: "liga" 0;
add slight letter spacing

I'm feeling like the first option might be best. WDYT?

Based on that convo, it sounds like there are two fixes:

disable ligatures-> font-feature-settings: "liga" 0;
add slight letter spacing

I'm feeling like the first option might be best. WDYT?

yes, the first option seems to be the best one. I have implemented it.

Sick. Thanks for taking on https://github.com/saving-satoshi/saving-satoshi/issues/202 as well.

Actually there is another issue where if you lose focus, and then click on the input again you can end up in the following situation when pressing up/down arrow keys.

If react-terminal-ui package is not being used, you can remove it from the project.

If react-terminal-ui package is not being used, you can remove it from the project.

I think there are a couple other packages we can also remove, feel free to address those in this PR as well @vinayaksh42

@vinayaksh42 I think the plan for the caret is to just use the normal one so maybe you can also tackle that in this PR.

I have removed react-terminal-ui, date-fns, and react-individual-character-input-boxes as they are not being used anymore. I have also added the TerminalOutput and TerminalInterface to the Terminal Component.

I have fixed the following issues:

Lose focus upon challenge completion.
the state of the challenge remains as completed upon getting the correct answer.

Actually there is another issue where if you lose focus, and then click on the input again you can end up in the following situation when pressing up/down arrow keys.

@afterburn I am unable to reproduce this bug, can you tell me about the browser you are using?

Amazing.

Confirmed that losing focus resolves https://github.com/saving-satoshi/saving-satoshi/issues/207.
Confirmed that the state of the challenge remains as completed upon getting the correct answer resolves https://github.com/saving-satoshi/saving-satoshi/issues/205
Confirmed link works and points to correct article.

@vinayaksh42 I can confirm kevin's bug. If I click anywhere inside the console outside of the line where the carrot rests and start typing, nothing is entered. This occurs in chrome, firefox, and safari.
Also the carrot disappears on safari and firefox but is preserved in Chrome when I click outside the line.
In Safari, the screen even scrolls when I press up or down.
This is pretty difficult to screen capture. If you can't reproduce I can hop on a call to show you.

Okay the bug I found is different. Vinayak is going to address it in this PR.
@afterburn I am also unable to reproduce the error. Vinayak and I hopped on the call to go through it together in Safari/firefox/chrome.

Okay I installed another version of Chrome and the bug would not occur so it might be some weird setting or even an extension that causing the bug I reported. Feel free to ignore it.

@afterburn looks like vinayak addressed your requests. Would you mind doing a review then we can merge?
Thanks Ben for the tACK.


Website certificate expired

The SSL certificate for the tio.run website expired today, August 19. According to my browser (Firefox on Arch Linux), the server won't connect if it isn't secure due to HTTP Strict Transport Security, so the entire website will refuse to exist until the certificate is renewed.

Fixed. Sorry about that.


Tick count per Simulation via settings

(As discussed today,) we need a option for the simulation scripts to set the tick count based upon their needs. (Either in something like an "init" function which starts the timer afterwards or the possibility to update the tick count on-the-fly with a settings function.

Due to seperated working branches, this setting can be achieved manually.


Add OCR support to measure script to support manual power meters

Have been able to do a first successful measurement session using this method.

Todo, percentage difference calculation is not working correctly yet.


fix for install monitor agent

这个 PR 实现什么功能/修复什么问题:

[x] 功能、bugfix描述

[x] 冒烟测试

fix(devtool): correct output error

fix(devtool): add scope=system query when list proxy endpoints

fix(devtool): extend the waiting time when checking remote forward

fix(devtool): wait for the remote forward to run normally

fix: update version of file-repo

是否需要 backport 到之前的 release 分支:

release/3.7

/cc @zexi
/area devtool

Codecov Report

Merging #10990 (13768a0) into master (62f3818) will increase coverage by 5.36%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master   #10990       +/-   ##
===========================================
+ Coverage    5.82%   11.18%    +5.36%
===========================================
  Files         899      147      -752
  Lines      138823    16932   -121891
===========================================
- Hits         8080     1894     -6186
+ Misses     130036    14845   -115191
+ Partials      707      193      -514

Flag
Coverage Δ

aFlag
11.18% <ø> (+5.36%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/mcclient/options/k8s/fed_namespace.go

pkg/keystone/models/identityquota.go

pkg/keystone/models/projects.go

pkg/keystone/models/roleresource.go

pkg/compute/models/reservedips.go

pkg/compute/models/loadbalancerawscachedlbbg.go

pkg/keystone/models/initdb.go

pkg/util/iproute2/errors.go

pkg/cloudprovider/retry.go

pkg/multicloud/aws/storagecache.go

... and 742 more

Continue to review full report at Codecov.

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


Forgot password page problem when the email address is not recognized

When the user enters a password that Eureka! Clinical does not know about, it correctly displays "We did not recognize your email address", but on a separate page with no way to return to the email address page. We should just display the error above the form.

The forgot password functionality is now in cas-server, so closing.


Update linker scripts to avoid overwriting ROM function data

The ESP32 specifically is a big problem here as it has its ROM function data in near the middle of the memory address space, meaning its quite easy to overwrite ROM function data on there.

Maybe we already honor it on some chips - not sure. Definitely not on ESP32
Do you have any reference how esp-idf handles it?

Actually on a second look, maybe we do? I think this section stops us allocating .bss or .data in that ROM data region.
I think the issue me & @georgik were seeing was because of allocating a larger buffer on the stack, and the stack was overwriting the ROM function data. The question is how do we stop this? It's quite hard imo because of the dynamic nature of the size of the stack at any given point in the program.

Oh yes - I also thought about such problems before. On some chips we have Debug Assist which apparently can monitor SP but not on ESP32
Also, the Xtensa Debug Option doesn't seem to offer something for that

On Xtensa chips, we can use one debug watchpoint to set a guard region at the end of the stack, covering e.g. 64 bytes. It's not perfect, but it has some probability of catching stack overflow.
On RISC-V chips, we can use the stack pointer monitor feature of debug assist, as @bjoernQ has suggested. (No IDF support to refer to, yet, but I can give some tips as I have tested this feature on FPGAs.)


MBL-1213: Stop sending token as query param for V1, send the token as basic auth header

📲 What

Removed token as query paramenter for V1 endpoints
Added token as header for V1
Old V1 endpoint /xauth/access_token returned user and token as response, reason why CurrentUser login method required both parameters, with the new endpoint /v1/oauth/authorizations/exchange we first obtain the token and later on request for /v1/users/self.
Refactor CurrentUser , CurrentUserV2 and LoginUserCase to handle separately token and user

🤔 Why

Token as query param is a huge security risk

👀 See
| Before 🐛 |

|After 🦋 |

|  |  |
📋 QA
No user facing changes for this one, you should be able to navigate/ login out with ffon and ffoff as usual.
But you can take a look at the network inspector, check for V1 calls and see how there is no token as query param :)
Story 📖
MBL-1213

LGTM


missing menu path in Enter the asset retirement oblgiation amounts

[Enter feedback here]
The step described is as follows. no menu path specified and thus no idea how to do this. Please add exact menu path to do this action.
1.Click Create to open the drop dialog.
2.In the Transaction date field, enter the date on which to recognize the asset retirement obligation
3.In the Estimated retirement cost adjustment field, enter the cash flow amount
4.Click OK.

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

ID: 9b885986-9b2b-e4f5-c8d0-2aaaa988d80b
Version Independent ID: bb3c912b-717e-dc6a-4bd5-8ee27433bc8f
Content: Set up asset retirement obligation documents and enter ARO amount on a fixed asset - Finance | Dynamics 365
Content Source: articles/finance/localizations/tasks/set-up-asset-retirement-obligation.md
Service: dynamics-ax-applications
Product: ****
Technology: ****
GitHub Login: @ShylaThompson
Microsoft Alias: roschlom

Thanks for the feedback. @roschlom can you please review this?

BUG 521994 created to track the issue.

We've updated the topic to provide the navigation that was needed. Thank you for the spot-on feedback. We appreciate it! Have a great day!


[Bug] MetaPlexData is missing animation_url

Describe the bug
When loading NFT meta data the animation url is not parsed because its not a field in the json data
Expected behavior
Animation url is parsed when it is set in the NFT meta data
I will create a pr for this

Thanks @Woody4618! Closing as #29 as been merged in main


Added style control for dialogs via the DialogProvider annotation.  (#1993)

This also adds a couple new components for RTE (!) and Autocomplete

@davidjgonzalez Can we consider pulling this in before cutting a new build?

Pull Request Test Coverage Report for Build 4848

90 of 252 (35.71%)  changed or added relevant lines in 10 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 53.599%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bundle/src/main/java/com/adobe/acs/commons/mcp/form/GeneratedDialog.java
10
15
66.67%

bundle/src/main/java/com/adobe/acs/commons/mcp/impl/DialogResourceProviderImpl.java
10
15
66.67%

bundle/src/main/java/com/adobe/acs/commons/mcp/util/SyntheticResourceBuilder.java
20
31
64.52%

bundle/src/main/java/com/adobe/acs/commons/mcp/form/AutocompleteComponent.java
0
60
0.0%

bundle/src/main/java/com/adobe/acs/commons/mcp/form/RichTextEditorComponent.java
0
81
0.0%

Totals

Change from base Build 4832:
-0.2%

Covered Lines:
14035

Relevant Lines:
26185

💛  - Coveralls

@davidjgonzalez Did you want me to address the code coverage or can we open an issue for that and move forward with the PR?


Installation of specific rustc (nightly-2016-05-27 // applies to all installations of this form) fails on OSX 10.12

When running rustup install nightly-2016-05-26 on macOS 10.12 with all updates applied, the command never exits.
It prints:
adrianbrink@ab-mbp:~|⇒  rustup install nightly-2016-05-26
info: syncing channel updates for 'nightly-2016-05-26-x86_64-apple-darwin'
info: downloading component 'rustc'
 42.1 MiB /  42.1 MiB (100 %)   1.8 MiB/s ETA:   0 s
info: downloading component 'rust-std'
 55.1 MiB /  55.1 MiB (100 %) 768.0 KiB/s ETA:   0 s
info: downloading component 'rust-docs'
  6.5 MiB /   6.5 MiB (100 %)   1.0 MiB/s ETA:   0 s
info: downloading component 'cargo'
  2.7 MiB /   2.7 MiB (100 %)   1.2 MiB/s ETA:   0 s
info: installing component 'rustc'
info: installing component 'rust-std'
info: installing component 'rust-docs'
info: installing component 'cargo'

And just hangs there forever. The same problem exists for nightly-2016-05-27, which I guess means that it fails for this installation method.
Need more info, let me know :-)

I've seen this as well.

This should be fixed with the latest release.

Sweet


Update README.md to include example for encoding from local file

I just spent a bunch of time figuring out how to use this with a local file.  Want to save others the trouble so added to the README.  Looks like it used to be in there but was lost.
@riyadhalnur Please look into this :smiley:

Thank you! Merged 🚀


Add weekly build

This will build and deploy the website on a weekly basis every Tuesday at 07:00 UTC. It is temporarily set to allow this branch so that we can confirm it works before merging.

Note: once merged, this will fix #205

And we're getting circleci errors:
Either git or ssh (required by git to clone through SSH) is not installed in the image. Falling back to CircleCI's native git client but the behavior may be different from official git. If this is an issue, please use an image that has official git and ssh installed.
ssh: no key found

Either git or ssh (required by git to clone through SSH) is not installed in the image. Falling back to CircleCI's native git client but the behavior may be different from official git. If this is an issue, please use an image that has official git and ssh installed.

I think we can ignore this. At least I have.

ssh: no key found

Hmm. Do you need to re-authorize CircleCI for your account, or add an ssh key of your own?
Perhaps what really needs to be done is to create a machine user as per recommendations, and then have the deployment (git push to gh-pages branch) use that machine user.

Apparently this has been failing for nearly a year with (strangely, because other builds still went past that) an SSH key missing error.
Also, I didn't seem to have received notifications about the failures.
I think I fixed both now. For notifications, I suppose one needs to change notify only for branches I've pushed to to notify about all builds for this repo.


feat: add rspack plugin

add html-inline-css-rspack-plugin

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: chenjiahan:x: cbbfcdYou have signed the CLA already but the status is still pending? Let us recheck it.

👍


Ingesting/exporting CSV?

How coupled is the timing code from the reporting code?
I'm interested in using Criterion to import/export CSVs of benchmark timings. Benchmark in Python/C/Bash/Ruby then have Criterion import the timing CSV for processing.  Alternatively, benchmark with Criterion then export the timings to CSV for consumption with PANDAS.

Alternatively, benchmark with Criterion then export the timings to CSV for consumption with PANDAS.

criterion can already report benchmark results in CSV format if you use the --csv flag.

@sjakobi Nice! I was unaware of CSV output. I will take a crack at implementing in CSV input of external timings.


Create Documentation / Web Presence for OCM

Description
In order to promote the OCM, its technical concepts, value-add and use cases to the open source community, we need to establish a very good web presence, somehow similar to https://fluxcd.io/ or https://kpt.dev/.
This web presence needs to include technical documentation (i.e. how to work with OCM, how to create corresponding component descriptors within pipelines / via scripting), the whole specification of OCM, as well as examples and end2end scenarios.
The official naming request for "Open-Component-Model" and "OCM" is in progress already.
For the Web presence itself, what could already be started with is work on a mock-up, demoing the look and feel, as well as the intended structure of the website. Also, the technical setup can already be worked on (like how do we generate the site, based on which content, how is content to be maintained ...).
This item here acts as the Epic for the website, individual smaller issues will be on the backlog.
Sub-tasks

open-component-model/ocm-spec#16
open-component-model/ocm-spec#17
open-component-model/ocm-website#10
gardener/ocm-website#2
https://github.com/open-component-model/ocm-website/issues/27
https://github.com/open-component-model/ocm/issues/183
https://github.com/open-component-model/ocm-website/issues/26
https://github.com/open-component-model/ocm-website/issues/28
https://github.com/open-component-model/ocm/issues/109
https://github.com/open-component-model/ocm-website/issues/39
https://github.com/open-component-model/ocm-website/issues/52
Later:
https://github.com/open-component-model/ocm/issues/186
https://github.com/open-component-model/ocm/issues/125

Done Criteria

[ ] A website, including the above mentioned sections, has been designed and is accessible under a suitable top-level domain

I would say that this Epic is done. All the remaining / ongoing work in terms of new guides and documentations can be worked on within individual tasks.


Add delete dev core tip

The Issue
Fixes #28.
How This PR Solves The Issue
Manual Testing Instructions
Automated Testing Overview

Related Issue Link(s)
Release/Deployment Notes

Perfect, thanks!


Precompute LD sets for all possible variants

As a developer of the Genetics ETL pipeline I want to generate a dataset with the LD set for every variant included in the LD matrix to streamline the LD annotation in every possible step downstream.
Background
We use LD matrices from gnomad 2 to annotate the signals identified in GWAS with their variants in high LD.
Because of the complexity of the task and the size of the data, so far the approach has been to access the LD matrix and make queries only for our subset of variants of interest. Overall the process is like:

Generation of the LD indices: a look up table between a variantId (build 38) and its coordinate in the LD Matrix.
Accession of the LD Matrix and look up of the variants in high LD: by providing the indices obtained in Step 1.

Because of its complexity, so far we have aimed at minimising the number of variants of interest. However, accessing the LD information is likely to play a bigger role in our downstream pipelines, for example, when clumping summary statistics signals to find independent associations.
Since optimising the accession to the LD information seems capital, we want to change the scope by essentially precomputing a dump of the LD matrix, in a format that we can later easily integrate with other components of the pipeline.
Tasks

[x] Approach the task by looking at the compute time of dumping the whole LD matrix of non Finnish europeans.

We generated a dataset of all variant to variant combinations when the r2 was higher than 0.5 in 18 minutes (we didn't transpose the matrix in this case).

Create a new module in the project that:

[x]  Transposes the block matrix to get a dataframe that contains r's for variantA with variantB, and for variantB with variantA. We'd need to deduplicate the diagonal of the matrix.
[x] Resolves the variantIds for each entry of the matrix. By default, entries() returns i and j.
[x] Dumps LD Matrices for all populations
[x] Generates an unique and aggregated dataset that substitutes the current LDIndex and that is optimised for operability further down the pipelines.

I have a working script that ticks all the boxes above.
New data model
This is the schema that we have agreed on for the new LD index:
root
 |-- variantId: string (nullable = false)
 |-- ldSet: array (nullable = false)
 |    |-- element: struct (containsNull = false)
 |    |    |-- tagVariantId: string (nullable = false)
 |    |    |-- rValues: array (nullable = false)
 |    |    |    |-- element: struct (containsNull = false)
 |    |    |    |    |-- population: string (nullable = false)
 |    |    |    |    |-- r: double (nullable = false)

Data
Partial dataset (European LD matrix)
I have prepared a version of the dataset where only one ancestry matrix is processed (europeans). This is useful for inspection to see if we are happy with the new structure and to identify bugs.
Some stats:

14,192,022 unique variants
Mean LD set size: 64
2,372,125 variants without any tag SNP

I've compared my LD set for 1_154434943_A_C with the same one in production to make sure the variant mapping was correct and I think it makes sense. The examples I checked with very high r2 are in production, while other variants with a more modest relationship can be missing from production.
-------------------+------------------+
|        tagVariantId|   POWER(r.r, 2.0)|
+--------------------+------------------+
|     1_154445353_C_T| 0.977017592243222|
|     1_154446273_C_T|0.8663914034274087|
|     1_154454494_A_C|0.8950914147371707|
|    1_154435509_C_CA|0.6213165467389992|
|     1_154447416_G_A|0.5152602632652837|
|     1_154452980_G_A|0.9049521521924578|
|     1_154447611_G_A|0.8715257882573817|
|     1_154441820_C_T|0.9766432525733204|
|     1_154443301_A_G|0.9352004846163459|
|   1_154447547_T_TAC|0.6240262336020064|
|1_154447555_C_CAT...|0.6582401513977938|
|    1_154437418_A_AT|0.8612230457987975|
|    1_154442789_CT_C|0.7513507856044945|
|     1_154444493_C_T|0.9800400749733147|
|     1_154437254_G_A| 0.981858170286397|
|     1_154446403_C_T|0.8633949865274938|
|    1_154437881_AT_A|0.7737998772902371|
|     1_154438943_A_C| 0.986084978947803|
|     1_154455807_A_G|0.8780691500250938|
|     1_154449054_T_C|0.6800625247976498|
+--------------------+------------------+

Link to the dataset: gs://genetics_etl_python_playground/output/python_etl/parquet/XX.XX/ld_index_eur_aggregated
Computation time: 43' (job)
Full dataset
The full dataset with the LD sets across all ancestries has been processed for ~5h.
The location will be: gs://genetics_etl_python_playground/output/python_etl/parquet/XX.XX/ld_index
Computation time: TBC (job)

Update: I've added chromosome as a field, to write the dataset partitioning on this column to perform more optimal joins when annotating variants.

Success!! @d0choa suggested to throw more disk to the job and it ran in 5h (job) with a 5TB hard drive.
@mbdebian Could you still have a look at the changes I've made to make sure nothing is blatantly stinky? Changes are summarised in the PR and in the comment above.