Goldpage does not work on windows

When running goldpage build (or goldpage dev) on windows, an internal error occurs (unfortunately I don't have a windows box to try on now, but the error is very terse anyway). It seems related to the assumption that paths are separated by forward slashes, which is not the case on windows.

That's possible. I don't have a windows box right now but I'll have a look at it later.

Goldpage doesn't support Windows for now. Comment this ticket if you want windows support.

I'm doing a bit of research and discovered Goldpage, love its focus on do-one-thing-do-it-well! Knowing my team works primarily on Windows (I'm on MacOS), we might give Goldpage a spin with WSL but this could be a non-starter for us.
Assuming this issue may one day be closed as "Won't Fix", it'd be great if there was a note in the README with platform support.

It seems related to the assumption that paths are separated by forward slashes, which is not the case on windows.

This tickles my curiosity but I'm not on Windows. I wonder if path.join() or cross-env (now in maintenance, alternatives include env-cmd or @naholyr/cross-env) could help.

I'm doing a bit of research and discovered Goldpage, love its focus on do-one-thing-do-it-well! Knowing my team works primarily on Windows (I'm on MacOS), we might give Goldpage a spin with WSL but this could be a non-starter for us.
Assuming this issue may one day be closed as "Won't Fix", it'd be great if there was a note in the README with platform support.

It seems related to the assumption that paths are separated by forward slashes, which is not the case on windows.

This tickles my curiosity but I'm not on Windows. I wonder if path.join() or cross-env (now in maintenance, alternatives include env-cmd or @naholyr/cross-env) could help.

Hi @littleninja !
I will have another look and tentatively write a patch.

Hi @littleninja !
I will have another look and tentatively write a patch.

I'll write a patch tentivally next week. In the meantime, WSL should work.

I'll write a patch tentivally next week. In the meantime, WSL should work.

@littleninja Still interested? I've capacity today to write the patch.

@littleninja Still interested? I've capacity today to write the patch.

Sorry for the delay, I hope my comment didn't come across in a way that shifted priorities. There's no urgency on my part. 😔

Sorry for the delay, I hope my comment didn't come across in a way that shifted priorities. There's no urgency on my part. 😔

No worries.

There's no urgency

You may wanna wait on https://github.com/reframejs/goldpage/issues/24 then. It's going to be lovely.
If you don't mind me asking; what exactly are your plans with Goldpage? We can discuss in depth about whether Goldpage is/will be a good fit for you, and it's insightful for me to talk about my users' use cases.

No worries.

There's no urgency

You may wanna wait on https://github.com/reframejs/goldpage/issues/24 then. It's going to be lovely.
If you don't mind me asking; what exactly are your plans with Goldpage? We can discuss in depth about whether Goldpage is/will be a good fit for you, and it's insightful for me to talk about my users' use cases.

@littleninja FYI https://github.com/brillout/vite-plugin-ssr

@littleninja https://github.com/brillout/vite-plugin-ssr is pretty much done and I published a beta. I'd be curious to know what you think.


Convert ITN keys to Haskell stake keys

Relevant issue - #1070

Tried this out, but it requires a itn-signing-key-file. I won't have access to the secret keys when I do the MIR certificate.
When I do give it a signing key (tried both ed25519 and ed25519extended generated keys), I get:

@Jimbo4350 good to go once the conflicts are fixed. Ask QA or @disassembler to check this works for them.

bors r+


Support arrays for dynamic rendering and component reuse

Is your feature request related to a problem? Please describe.
Given a component Section that is rendering 2 paragraphs:
const Section = () => (
  <>

{t("title")}

    {t("p1") !== "" &&
{t("p1")}
}
    {t("p2") !== "" &&
{t("p2")}
}
  </>
)

that could be used on multiple pages and layouts, one must check for endless paragraphs if they exist in the locale and render them. So if "contact" page has 2 paragraphs, this is fine. But what if "imprint" had 3 or more?
Describe the solution you'd like
"title": "imprint",
"paragraphs": [
  "p1...",
  "p2...",
  "p3..."
]

and in the component:
const Section = () => (
  <>

{t("title")}

    {t("paragraphs").map(text => (

{text}

    ))}
  </>
)

Describe alternatives you've considered
The only alternative I see now is the one in the problem description.
Additional context
The code snippets above show all relevant parts.

Hi @fabifrank and thank you for your question.
In your case I'd suggest to use rich text formatting to get a flexible amount of tags that can be defined in the messages. By doing that you can also potentially use other tags in your content.
Does that help?

Thanks @amannn for your answer. I was out of that project for some days, sorry for the delay.
I tried your method with rich text, but it states t.rich is not a function. Currently using const t =  useTranslations(namespace).  Is there something I am missing?

Are you maybe on an old version? t.rich was added in 2.0.0.


[SPARK-47163][BUILD] Fix make-distribution.sh to check jackson-core-asl-1.9.13.jar existence first

What changes were proposed in this pull request?
This PR aims to fix make-distribution.sh script to check jackson-*-asl-*.jar existence first before copying.
Why are the changes needed?
Currently, make-distribution.sh script fails if it builds without hive-thriftserver.
Does this PR introduce any user-facing change?
No, this bug is introduced by unreleased feature.
How was this patch tested?
Pass the CIs and manually build without Hive like the following.
$ dev/make-distribution.sh
$ ls dist/
LICENSE    NOTICE     README.md  RELEASE    bin        conf       data       examples   jars       kubernetes licenses   python     sbin

$ dev/make-distribution.sh -Phive-thriftserver
$ ls dist
LICENSE      NOTICE       README.md    RELEASE      bin          conf         data         examples     hive-jackson jars         licenses     python       sbin

Was this patch authored or co-authored using generative AI tooling?
No

Thank you, @HyukjinKwon . Merged to master.


Add top menu messages

Probleme
Menu labels should be conveniently localizable, but currently they are manually created by LinguaLibre administrators.
Solution
I copied all the translations I could in the MediaWiki namespace on lingualibre.org, with credits, into BlueLL's translatable jsons.
After deploiement

[MediaWiki:Sidebar] must be edited since prefix have been added
Local translations must be deleted."

Superseded by : https://github.com/lingua-libre/RecordWizard/pull/16


Thumbnail shows in VLC, but not Windows Media Player?

Running the following creates an mp3 file and the corresponding thumbnail:

youtube-dl --write-thumbnail --embed-thumbnail -x --audio-format mp3 https://www.youtube.com/watch?v=v2AC41dglnM

If I open the mp3 with VLC, the thumbnail shows, but if I open it with Windows Media Player it doesn't. What am I doing wrong? How can I make it show in Windows Media Player as well?

For MP3 files, Windows Media Player reads the thumbnail from ID3 tags, which is not supported yet.

If you have eyeD3 installed, try the following command:
eyeD3 --to-v2.3 --add-image "AC_DC - Thunderstruck-v2AC41dglnM.jpg:FRONT_COVER" "AC_DC - Thunderstruck-v2AC41dglnM.mp3"

i see --to-v2.3 in the options passed to eyeD3
may be changing the version(-id3v2_version 3) in ffmpeg can fix the problem.
http://ffmpeg.org/ffmpeg-formats.html#mp3


nextcloud-client: 3.13.3 -> 3.13.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/nextcloud-releases/desktop/releases.
meta.description for nextcloud-client is: Nextcloud themed desktop client
meta.homepage for nextcloud-client is: https://nextcloud.com
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.13.4 with grep in /nix/store/wdyn3z1wp3frzzmzjraagdi2c762pvid-nextcloud-client-3.13.4
found 3.13.4 in filename of file in /nix/store/wdyn3z1wp3frzzmzjraagdi2c762pvid-nextcloud-client-3.13.4

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

nextcloud-client

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/wdyn3z1wp3frzzmzjraagdi2c762pvid-nextcloud-client-3.13.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/6aaf2095948078acfce4a72045a03dae315f7f7f#nextcloud-client

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/wdyn3z1wp3frzzmzjraagdi2c762pvid-nextcloud-client-3.13.4
ls -la /nix/store/wdyn3z1wp3frzzmzjraagdi2c762pvid-nextcloud-client-3.13.4/bin

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

2 packages built:

nextcloud-client
nextcloud-client.dev

Maintainer pings
cc @Kranzes @SuperSandro2000 for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

This fixes https://github.com/advisories/GHSA-gcwq-2mx4-wmcp: https://github.com/nextcloud/desktop/issues/6863


Ktrain seems stuck after 1st epoch and doesn't seems to be using GPU

Hello,
I am using Intel and NVIDIA GPU Linux on NER custom dataset with bilstm-transofmer.
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID";
os.environ["CUDA_VISIBLE_DEVICES"]="0,1,";
model = txt.sequence_tagger('bilstm-transformer', preproc, wv_path_or_url=WV_URL)
learner = ktrain.get_learner(model, train_data=trn, val_data=val, batch_size=128)
learner.fit(0.01, 2, cycle_len=1)

Its just after last step at:
4/4 [==============================] - ETA: 0s - loss: 0.2873
Also, during the training there is no memory/GPU consumption as reported by nvidia-smi.
What am I missing? Where can see the logs or enable logs?

Ignore, I was not using tf-gpu. After that I was able to train the model, where I saw one GPU being utilized, trying with distribution to see if it can be trained on multi-gpus.

However please let me know how to enable verbose or logs.


Sonar lint integration guidance

@MadhushaPrasad this is for you.
Follow Sonar lint steps :
Step 1 - Visit https://sonarcloud.io/
Step 2 - Create sonar lint account with GitHub.
Step 3 - Add public repositories (like Diagon-Alley repo) to sonar lint projects section (Analyze new project).
Step 4 - Now go back to GitHub account and create a new PR for your repo.
Step 5 - Now you can see sonar lint integrations results.
It is very easy to check our coding standard.
Any doubts contact me.

@MadhushaPrasad this is for you.
Follow Sonar lint steps :
Step 1 - Visit https://sonarcloud.io/ Step 2 - Create sonar lint account with GitHub. Step 3 - Add public repositories (like Diagon-Alley repo) to sonar lint projects section (Analyze new project). Step 4 - Now go back to GitHub account and create a new PR for your repo. Step 5 - Now you can see sonar lint integrations results.
It is very easy to check our coding standard.
Any doubts contact me.

sure I will


Handle invalid locale in the Accept-Language request header

Description
If you send an invalid locale value such as en_AE instead of en-AE in the Accept-Language header, we should ensure we handle this correctly.
MDN suggests returning a 406, or to just ignore the value.

The server possibly can send back a 406 (Not Acceptable) error code when unable to serve content in a matching language. However, such a behavior is rarely implemented for a better user experience, and servers often ignore the Accept-Language header in such cases.

Related

https://github.com/FusionAuth/fusionauth-issues/issues/1958

Additional details

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language
https://httpwg.org/specs/rfc9110.html#language.tags

Fixed in 0.1.10.


Filter Chip Component

This PR closes #177 and #748
The Filter Chip component will be used in multi-selects and filters.
The filter chips on the toolbar are just part of the WIP and demonstration and should be removed before the PR is merged.

Should grouped filter chips wrap like the other ones? Also, is the wrapping in general going to cause any problems when this is contained in something like a toolbar?

@srambach that's a good point. I think once we design for toolbar for mobile etc. this may have to get updated.
@mcarrano thanks for checking that in firefox, I will make updates

Thanks for making some changes @christiemolloy . Just a few more comments/questions-

The label "4 More" should be changed to "4 more" per the new capitalization standard we are trying to enforce.
In the first example, I'm wondering why we are repeating the overflow chip 3 times.
Can we change the naming of this component from Filter Chip to just Chip? I think we all agreed that a generic name made more sense.

Can you rename the component dir to "Chip" so it aligns with .pf-c-chip?

I included some comments inline, but wanted to follow up on the comment related to using lists.
In the case where we have a sequence of grouped chips with labels, what are your thoughts on using a nested list structure like this:

United States

Texas

Mexico

Baja California

Also, when I resize the Grouped Chips example to the smallest responsive preview, there is no vertical spacing between the chips or grouped chips. If we are handling the horizontal space between chips, should we also consider the vertical space on wrapping?

@jgiardino thanks for the review. I really like the idea of using the nested list structure thanks for that advice!

@jgiardino @mcoker @matthewcarleton made changes if you want to do a final review :)

@christiemolloy this looks solid, left a few comments. Can we break up the docs for each example like we've done for tabs and tables?
Also if the description paragraph stays that long at the bottom could we break it up into bullets to make it more scannable?

@matthewcarleton made those changes!

This is super picky, but everything else is listed in the singular, so chip instead of chips? I don't think this is too disruptive, just renaming the containing folder and some headings in the index.js?

@srambach good catch. the dir should match the component name. the links for Components and Layouts used also generate links based on the component/layout class, so currently those links go to /components/chip/, which breaks. Although the links for the chip group are broken because the chip group doesn't have it's own component directory.

amazing!
thank you @christiemolloy


impact-mapping-first-edit

There are two edits required to images:
The Impact Map-World Health Organization board goal is not clear or correct. I'd suggest
"A global, unified platform for learning, with rich user experiences that support integration and data analytics, enabling a state-of-the-art training institution"
The first impact sticky is a fragment and needs to be edited. I'd suggest:
Increase Collaboration to bring together supporting technologies"

LGTM @nmuller66! I fixed the typo on the sticky.


Transfer

User can transfer their token to other users

Transfer looks not solid enough. Need to test

Closed by #50


Any Guide to move from opentelemetry-cpp-contrib to this

Is your feature request related to a problem? Please describe
We are currently using the Open Telemetry Web Module for NGINX and its kind of a pain to deploy, not super maintained etc.  In our testing, this is much easier to use/deploy, but it doesn't work with out currently app set.
Describe the solution you'd like
Something to document the main differences/gotchas when migrating.
Describe alternatives you've considered
N/A
Additional context
Basic Example, we have NGINX running in docker, acting as a proxy to a Python Fast API App with uvicorn.
So for the Open Telemetry Web Module you just do something like
load_module /opt/opentelemetry-webserver-sdk/WebServerModule/Nginx/1.24.0/ngx_http_opentelemetry_module.so;

http {
  ...
  include /etc/nginx/conf.d/opentelemetry_module.conf;

  server {
      ...
      proxy_pass http://${APP_HOST}:${APP_PORT};

Where the opentelemetry_module.conf file just sets up where you are tracing too, and service names.
NginxModuleEnabled ON;
NginxModuleOtelSpanExporter otlp;
NginxModuleOtelExporterEndpoint ${COLLECTOR_HOST}:4317;
NginxModuleServiceName ${SERVICE_NAME};
NginxModuleServiceNamespace ${TREX_ENV};
NginxModuleServiceInstanceId ${DEPLOYMENT_ID};
NginxModuleResolveBackends ON;
NginxModuleTraceAsError ${TRACE_ERRORS};

The equivalent setup with nginx-otel is something like
load_module modules/ngx_otel_module.so;
http {
  otel_exporter {
      endpoint ${COLLECTOR_HOST}:4317;
  }

  otel_service_name ${SERVICE_NAME};
  otel_trace on;

  server {
    ...
    location / {
      proxy_pass http://${APP_HOST}:${APP_PORT};

This does work in the sense that I get nginx traces. The problem is they are no longer associated between nginx and the fronting application.
Trace id's
FastAPI - d6547050b9ce70d614328b6e47ea283c
NGINX   -<PHONE_NUMBER>46b4a141b0436be8c1bee5

Im sure the problem is on my side, but I cant really find documentation on how to tie this together, or move from OTLP Web Module to the nginx-otel module.

Most likely, you are missing otel_trace_context inject; (or otel_trace_context propagate;) in your config. It seems that "webserver module" just doesn't provide toggle to control this. There is some documentation here.


Supervisord does not restart correctly

Sometimes stopping and starting supervisor (with the fcmstop and fcmstart commands) gives the following message.
Error: Another program is already listening on a port that one of our HTTP servers is configured to use.
For help, use /usr/local/bin/supervisord -h

Work around is to kill the supervisord process.
ps -aux | grep supervisor

then kill the supervisord process.
kill -9 xxxxx

where xxxxx is the process id for supervisord

Fixes are in os/linux directory

Full Cycle will start up when pi boots
rabbitmq-server is a dependency so it will run after rabbit (mind your runlevel)
fcmstart and fcmstop command will only start/stop the fullcycle program group so it wont interfere with the supervisord web site
clone the repository and run setup command to reinstall changes.

bash ~/fullcycle/os/linux/setup_fullcycle.sh


Project can't be used with cocoapods 1.1.1

With the release of cocoapods 1.1.1, pod update fails, with the following error:
[!] Unable to integrate the following embedded targets with their respective host targets (a host target is a "parent" target which embeds a "child" target like a framework or extension):

- CDTDatastoreEncryptedReplicationAcceptanceTests (iOS 9.2) and CDTDatastore (iOS 7.0) do not use the same platform.
- CDTDatastoreReplicationAcceptanceTests (iOS 9.2) and CDTDatastore (iOS 7.0) do not use the same platform.

[!] The Podfile contains framework targets, for which the Podfile does not contain host targets (targets which embed the framework).
If this project is for doing framework development, you can ignore this message. Otherwise, add a target to the Podfile that embeds these frameworks to make this message go away (e.g. a test target).

Fixing the target platforms is straight forward, however there is another failure which causes the pod update command to fail,
``bash
[!] The 'Pods-CDTDatastoreEncryptedReplicationAcceptanceTests' target has frameworks with conflicting names: fmdb.

There is an issue (https://github.com/CocoaPods/CocoaPods/issues/5643)  open on Github for it, but it doesn't look like it will be resolved so we can successfully integrate. Since the reporters mention app extensions and our project is Framework based.

It looks like we need to have app targets in order to test our different configurations. I've managed to get the tests running on travis but they don't work on our jenkins install. I find it rather odd. If anyone has any ideas that would helpful, there is a branch to look at, its prefixed with the ticket number.

since the merge of #345, the project is compatible with CocoaPods 1.1.1.


Rework development docs

Description
This addresses several content and structure issues discussed in #832. The structure of the docs follows this logical order:

First of all, recommend a minikube start --mount, since it helps with hot reloading. Even if it's optional, I believe it's better to say it up front. This also makes potential contributors clearly distinguish their development cluster vs their "production" Orchest instance. To make this recommendation more clear, I modified the installation instructions slightly, to avoid confusion.
The "contribution journey" requires some steps, in order:

Installing Orchest for development, otherwise the rest of the stuff doesn't work
Running the tests even before making changes, to verify that things are working
Making such changes, with recommendations for Python dependencies, IDE configs, and database migrations
Building the docs, which is not always needed but often useful and encourages folks to document their changes
Making a pull request, the very last step in the process

I am no longer a "minikube first timer" as I was one week ago, but still I believe this should be easier to grasp for folks like me. Suggestions and comments are more than welcome.
Checklist

[x] The documentation reflects the changes.
[x] The PR branch is set up to merge into dev instead of master.
[x] In case I changed one of the services’ models.py I have performed the appropriate database
migrations (refer to scripts/migration_manager.sh).
[x] In case I changed code in the orchest-sdk I followed its release
checklist

Rendered docs: https://orchest--860.org.readthedocs.build/en/860/development/development_workflow.html


*BSD support (VM)

Description
There is an issue to support building and running Lima in FreeBSD host but no a suggestion to support running FreeBSD, OpenBSD, NetBSD inside the VM.
Main use case - is the same ease of integration with filesystem for running *BSD systems from macOS hosts.

Can you detail what is needed in order to start a BSD guest using QEMU ?
And what changes to cloud-init are needed, for a different operating system


TBranch split level

I have trouble with one specific data stream in our ROOT files, which is the KM3NET_TIMESLICE format. This particular data has a specific structure and is written in different branches (where the data is filtered differently, but the structure is the same) with differing "TBranch split levels".
I can read the data which has split level 4 with uproot easily, but two other branches have split level 2 and 0, which I could not parse yet.
The biggest (and probably the only) problem is the buffer field, which has it's own "subdtype".
To be specific, the KM3NET_TIMESLICE_L0 has split level 2 and the other one KM3NET_TIMESLICE_L2 split level 4:

In case of the split level 4 branch (KM3NET_TIMESLICE_L2) I can parse the buffer (which is a list of hits).
Here is the output of show()
>>> f['KM3NET_TIMESLICE_L2']['vector<KM3NETDAQ::JDAQSuperFrame>'].show()
vector<KM3NETDAQ::JDAQSuperFrame>
                           TStreamerSTL               asdtype('>i4')
vector<KM3NETDAQ::JDAQSuperFrame>.length
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.type
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.fUniqueID
                           TStreamerBasicType         asjagged(asdtype('>u4'))
vector<KM3NETDAQ::JDAQSuperFrame>.fBits
                           TStreamerBasicType         asjagged(asdtype('>u4'))
vector<KM3NETDAQ::JDAQSuperFrame>.detector_id
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.run
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.frame_index
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.timeslice_start.UTC_seconds
                           TStreamerBasicType         asjagged(asdtype('>u4'))
vector<KM3NETDAQ::JDAQSuperFrame>.timeslice_start.UTC_16nanosecondcycles
                           TStreamerBasicType         asjagged(asdtype('>u4'))
vector<KM3NETDAQ::JDAQSuperFrame>.id
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.daq
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.status
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.fifo
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.status_3
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.status_4
                           TStreamerBasicType         asjagged(asdtype('>i4'))
vector<KM3NETDAQ::JDAQSuperFrame>.numberOfHits
                           TStreamerBasicType         asjagged(asdtype('>u4'))
vector<KM3NETDAQ::JDAQSuperFrame>.buffer
                           TStreamerLoop              None

f = uproot.open("file.root")
tree = f[b'KM3NET_TIMESLICE_L2'][b'KM3NETDAQ::JDAQTimeslice']
superframes = tree[b'vector<KM3NETDAQ::JDAQSuperFrame>']
hits_buffer = superframes[
b'vector<KM3NETDAQ::JDAQSuperFrame>.buffer'].lazyarray(
    uproot.asjagged(uproot.astable(
        uproot.asdtype([("pmt", "u1"), ("tdc", "u4"),
              ("tot", "u1")])),
           skipbytes=6),
        basketcache=uproot.cache.ThreadSafeArrayCache(23*1024**2))

This works fine because I have direct access to the buffer via superframes[b'vector<KM3NETDAQ::JDAQSuperFrame>.buffer'].
For lower split levels however, I cannot access it, but the whole blob in one go. Here, the output of show() is:
>>> f['KM3NET_TIMESLICE_L0']['vector<KM3NETDAQ::JDAQSuperFrame>'].show()
vector<KM3NETDAQ::JDAQSuperFrame>
                           TStreamerSTL               asjagged(astable(asdtype("[('length', '>i4'), ('type', '>i4'), (' fBits', '>u8'), (' fUniqueID', '>u8'), ('detector_id', '>i4'), ('run', '>i4'), ('frame_index', '>i4'), ('UTC_seconds', '>u4'), ('UTC_16nanosecondcycles', '>u4'), ('id', '>i4'), ('daq', '>i4'), ('status', '>i4'), ('fifo', '>i4'), ('status_3', '>i4'), ('status_4', '>i4'), ('numberOfHits', '>u4')]", "[('length', '<i4'), ('type', '<i4'), ('detector_id', '<i4'), ('run', '<i4'), ('frame_index', '<i4'), ('UTC_seconds', '<u4'), ('UTC_16nanosecondcycles', '<u4'), ('id', '<i4'), ('daq', '<i4'), ('status', '<i4'), ('fifo', '<i4'), ('status_3', '<i4'), ('status_4', '<i4'), ('numberOfHits', '<u4')]")), 10)

I tried to parse it, but I need to define a nested dtype, which is as far as I understood not possible yet. This is just an example how the dtype could look like, notice that I am clueless about the buffer part, although I know it's an array of [("pmt", "u1"), ("tdc", "u4"), ("tot", "u1")] structs.
dtype = uproot.asjagged(
    uproot.astable(
        uproot.asdtype(
            [('length', '>i4'),
             ('type', '>i4'),
             ('fBits', '>u8'),
             ('fUniqueID', '>u8'),
             ('detector_id', '>i4'),
             ('run', '>i4'),
             ('frame_index', '>i4'),
             ('UTC_seconds', '>u4'),
             ('UTC_16nanosecondcycles', '>u4'),
             ('id', '>i4'), ('daq', '>i4'),
             ('status', '>i4'),
             ('fifo', '>i4'),
             ('status_3', '>i4'),
             ('status_4', '>i4'),
             ('numberOfHits', '>u4'),
             ('buffer', '...')   # ???
            ])
    ),
    skipbytes=10)

Here are two files, one which contains an L0 timeslice branch with split level 2 and one with L1 timeslice and split level 4:
files.zip
Many thanks for any input in advance!

This is just an example how the dtype could look like, notice that I am clueless about the buffer part, although I know it's an array of [("pmt", "u1"), ("tdc", "u4"), ("tot", "u1")] structs.

If it's a variable-length list of some structure, then you can't use uproot.asdtype or uproot.astable. It has to be an uproot.asgenobj, filling Python classes on demand. The Python class has a _readinto method that sets all the internal variables by walking through the fields, deserializing them one at a time. uproot.interp.objects.STLVector and friends are examples of that.
In principle, all non-numerical, not-simply-jagged data could be (and once were) interpreted as uproot.asgenobj, meaning that the user got back Python objects and had to wait for the Python interpreter. Some objects, however, consist only of fixed-width fields (no matter how nested, as long as everything's a fixed number of bytes). An important example of that is TLorenzVector, which consists of fE and a nested TVector3, which is fX, fY, fZ. By instead interpreting these with uproot.asdtype, we can avoid the slow Python, casting the arrays en masse, without having to walk over them.
However, if your case really has a variable number of [("pmt", "u1"), ("tdc", "u4"), ("tot", "u1")] items per object, there is no choice: it must be walked over. This is why high splitting levels ("columnar data structures") are so valuable.

Thanks for the quick reply. I already had the fear that it’s the only way to go. :(
I started to parse the whole binary blob but it seemed very awkward and hard to understand the way ROOT stores them. So do I understand correctly that I need to parse the complete branch blob by myself or is there a way to get uproot do part of the job? Reverse engineering the raw structure is a nightmare but whom am I telling this 😅

That's correct. That's what "not splitting" means: the entire object's data are serialized sequentially and they have to be deserialized field by field. "Splitting" gives us a nice simplification—usually only the numbers we want (though occasionally with a byte or two extra!)—but "not splitting" is the long haul.
It's made somewhat easier by the fact that ROOT follows certain patterns, and these patterns have been encapsulated in the Cursor object. The Source is just a bucket of bytes, queried with a data(start, stop) method, but Cursor queries it with a number of patterns predefined. For instance, cursor.string(source) reads a byte for the string size, reads another 4 bytes if that was 255, then reads the number of bytes into a string. cursor.fields(struct.Struct(...)) uses Python's struct module to read some fields. (Hint: they're all big-endian.)
Also, the uproot.interp.auto.interpret function is supposed to figure out what that sequence of Cursor calls is supposed to be, based on the branch's streamer. Is that not working? If so, where does it fail?

Yeah I see thanks so far?
Well to be honest, I have not used the Cursor nor the auto.interpret yet. I just tried to parse the .tostring() binary blob manually to find a way to read it with awkward and lazyarrays using the dtype structure I find.
I’ll read about the Cursor and interpret function, if I understood correctly that’s the way to get uproot at my side for this task 😉

auto.interpret is what gets called to fill in the default interpretation of each branch. If the interpretation is None, then it failed at some point. It might be failing just before having solved most of the problem for you.
This function is a growing list of rules learned from examples, so there will always be cases it doesn't handle.

I see, I will debut that by hand and see what happens. Pretty sure it has choked on buffer which has variable length...

Is this a resolved thing? Should it be something I look into during the Uproot4 development? Thanks!

I'll continue investigating this with the uproot4 tools, for now the problem is solved with re-splitting the files ;)


Setting up webdriver manager is a hectic process

Hey setting up the webdriver manager is a very hectic process, You have to download the webdriver file, then place it somewhere safe and then also link it to the code. Why do all of that when we have a python module for that? You can use (pip install webdriver_manager and then just read the documentation ) to skip all the above steps. It is not only reliable its easier to use too. 😊

Hi! @RohanDas28 thank you for your suggestion. I agree with you, I'm thinking to implement your idea :smile:

Yes Brother You can close this issue now 😉


Feature: Alert statistics via Cloudwatch

Per suggestion by scott.piper:

You want stats on your alerts.  How often did they fire? When? To whom?  You could probably fiddle with JIRA/PagerDuty to do this, but it'd be nice for something to automatically aggregate these into a report for you daily or weekly.

Goal:

Use Cloudwatch metrics to capture this information

This will most likely be achieved via QuickSight instead of CloudWatch.
Athena tables will already have the data, which can be loaded and analyzed with QuickSight.  If we used CloudWatch we would potentially be duplicating stats.

Closing as a result of #282


Requires SQLite 3.8.3 or higher

Dear there,
I am using:

Django==3.2.8,
Python==3.8.5
Pip==21.3.1

After deployment, when I try to connect with admin account I get this error :

What should I do ?

Hi @MedNabilEssefaihi Can you please share more info , with repro steps.

Unless there is more specific information, we are unable to continue looking into this issue. If you choose to reopen it, please provide more information. From what I can tell, this appears to be an issue with the web site you deployed, not explicitly with the eb cli.

Hello @jsheld @NihalM99
First, I would like to thank you for response,
This issue had submit about 2 years ago. Which makes no sense to your question, now.
Thank you.


"Microsoft Edge"

The graphic at the top of the page includes a box that reads "Microsoft Edge".  My initial thought was that this was referring to the browser.  It took me a minute to figure out that this wasn't referring to the browser but rather Microsoft's 'side' of the network.

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

ID: fe411166-7001-5d28-c286-def540fa690d
Version Independent ID: 224e81f0-7093-2f50-cf57-92470f77055a
Content: Azure ExpressRoute: circuits and peering
Content Source: articles/expressroute/expressroute-circuit-peerings.md
Service: expressroute
GitHub Login: @duongau
Microsoft Alias: duau

@mark-a-thompson , thank you for your suggestion. We have assigned this to the content owner/author for review.
@duongau , could you change "Microsoft Edge" in the picture to "Microsoft Edge Router/Network" for more clarity?

@mark-a-thompson , thank you for your suggestion. We have assigned this to the content owner/author for review.
@duongau , could you change "Microsoft Edge" in the picture to "Microsoft Edge Router/Network" for more clarity?

@mark-a-thompson a note has been added below the diagram to provide further clarification on this. Thank for you suggestion.
#please-close


Document Development Environment

Please document how a checkout of home-manager can be used instead of channels.
It is not easy to start hacking on home-manager if you can't get it running without channels.

Did you check the contribution guidelines? If so, could you describe a bit what was unclear about it and we'll see about improving it for the future.

I humble myself to you positive enrgy and talk to me


add previous and current crosslinks

Addresses the issues raised in #855 but through a simplified mechanism. Previous and current crosslinks are kept in state to ensure can always check attestation.previous_crosslink validity for attestations from previous and current epoch.
Changes:

remove latest_crosslinks
add current_crosslinks and previous_crosslinks -- this ensures that if an attestation is from previous or current epoch, the requisite previous_crosslink data is available in state to validate
add previous_crosslink_root to Crosslink and strictly enforce that crosslinks must form a chain to prevent cases in which data is crosslinked and then overwritten.
ensure that crosslink rewards are only given to attestations that did or could have formed a crosslink
remove filter condition in process_crosslinks that checks for validity of previous_crosslink. This is unnecessary due to it already being checked in process_crosslink during block processing.
add some tests for process_crosslinks

cc: @mkalinin

There is one edge case that worries me. What if, during epoch N+1, a crosslink created from attestations during epoch N is confirmed (during epoch N itself, not enough of the attestations were included, but during epoch N+1 some extra attestations get included bringing it above 2/3) and a crosslink created from attestations during epoch N+1 is confirmed? It seems like both would trigger and so the latest crosslink record would be overwritten twice? Are we sure there aren't weird edge cases here where some part of a shard chain somehow slips through without being part of a crosslink?
Also, do we have a hard invariant that for a crosslink to be overwritten, the latest crosslink record of the attestations making the new crosslink need to have the existing crosslink as the previous crosslink specified in the attestation?

Are we sure there aren't weird edge cases here where some part of a shard chain somehow slips through without being part of a crosslink?

There is an invariant in a block processing part. Attestations created in previous epoch must have a crosslink pointing to previous_crosslinks[shard], the same is for current epoch attestations and current_crosslinks list.
If any of current_crosslinks was overwritten twice during epoch transition this invariant wouldn't be broken, as attestations created in the next epoch would use current_crosslinks as a source for their previous crosslink argument, whatever value current_crosslinks[shard] would held.

Also, do we have a hard invariant that for a crosslink to be overwritten, the latest crosslink record of the attestations making the new crosslink need to have the existing crosslink as the previous crosslink specified in the attestation?

This PR removes previous crosslink verification from epoch transition. This verification happens only when attestation is being added to the state (during block processing).

It seems like both would trigger and so the latest crosslink record would be overwritten twice?

Yes, this can happen. It seems that this being able to happen is fundamental if we let both the prev and current epoch get crosslinked rather only attempting to crosslink from the previous epoch.
If this does happen, then it would be the case (before the epoch transition) that previous_crosslinks[shard] == current_crosslinks[shard]. In this case, both the previous and current epoch attestations for a shard have the same source crosslink so they would either have been (1) attempting to crosslink the same range of data on the shard or (2) the current attestations would be crosslinking from the same source but potentially a bit more data than the previous attestations. The second write of the crosslink in this scenario would strictly be crosslinking the same or more amount of data from the shard chain so not gaps.
If it were the case that the crosslinked data from the previous attestations is different than the crosslinked data from the current attestations, then the data vote from "current epoch attestations" would win within the context of the single state transition and externally nothing would be conflicting.

OK, I guess I'm ok with double-overwriting...
But the other weird edge case is that in epoch N, a crosslink A -> B is included, then in epoch N+1 the previous latest crosslink is still A, so A -> C could get included. This would require 1/3 slashing within the committee, but it potentially could happen. So then the invariant that the latest crosslink never gets "reverted", only "updated", gets violated.
I would recommend we consider just adding a "latest crosslink hash" as part of the crosslink object, and add a check that the crosslink is updated only if its latest crosslink hash matches. It would make analysis cleaner and resolve all of these weird edge cases.

Added the enforcement and prevents the corner case you described.
In the case that A->C attestation exists, I am still giving crosslink rewards atm. Most likely in this scenario, the A->C attestation was not malicious but just got messed up due to latency in processing. A bit torn on whether "best root" should be rewarded in this case. I think so.
This also does remove some optionality. In the case that A->B and A->C both come in during the same epoch, only A->B would be updated and A->C would be dropped. If we process the slots in reverse order A->C would be updated and A->B would be dropped. This is a bit indirect and strange so didn't add it in without first discussing
TODO: update validator guide once we are happy with this functionality.

Suggested naming:

crosslink_data_root => current_crosslink_root
source_crosslink_root => previous_crosslink_root

New suggestion:

crosslink_data_root => shard_data_root (to avoid conflict with crosslink_root which is the root of a Crosslink)

This is ready for review

A couple questions:

Now that get_winning_root considers the pending attestations in a single epoch (as opposed to both the previous and current epochs_, can we replace range(get_epoch_start_slot(previous_epoch), get_epoch_start_slot(next_epoch)) by range(get_epoch_start_slot(current_epoch), get_epoch_start_slot(next_epoch))?
Especially if the answer to the above is "yes", can process_crosslinks and get_crosslink_deltas be merged?

process_crosslinks attempts to build crosslinks from attestations from both the previous and current epoch. It builds from the current "eagerly"
get_crosslink_deltas only ranges across previous epoch because we only reward for things once they have been given an entire epoch to be included.

A follow up, I think it is cleaner to keep the rewards section separate within epoch processing.

I'd like to get this merged asap.
looking for a review @JustinDrake @hwwhww

Refactor idea:

Replace current_crosslinks and previous_crosslinks with current_crosslink_roots and previous_crosslink_roots.
Add shard to Crosslink
Replace AttestationData.shard, AttestationData. previous_crosslink , AttestationData. crosslink_data_root  by a Crosslink.

@JustinDrake I added next_epoch back to process_crosslinks to avoiding mysterious + 1 in code. 😃


PAM upgrade (?) broke empty password logins

Describe the bug
If the configuration defines a user with a passwordless login (password = "") then new nix will not let that user log in with no password.
Steps To Reproduce
Build an image using a recent rev of nixpkgs.
Ex some minimal OS:
{ pkgs
, lib ? pkgs.lib
, ...
}:

{
  isoImage.isoName = "small.iso";

  boot = {
    kernelPackages = pkgs.linuxPackages_latest;
    growPartition = true;
    kernelParams = [ "copytoram" "serial" "rd.shell=0" "rd.emergency=reboot" ];
    loader = {
      timeout = lib.mkForce 0;
      grub = {
        device = "/dev/sda";
        fsIdentifier = "provided";
      };
    };
  };

  users = {
    users = {
      simon = {
        isNormalUser = true;
        description = "Some fellow";
        password = "";
        extraGroups = [ ];
        uid = 1003;
      };
    };
  };

  powerManagement = {
    enable = true;
  };

  security.pam.services = {
    login.u2fAuth = false;
    sudo.u2fAuth = false;
  };

  environment = {
    etc."machine-id".text = "22222222222222222222222222222222";

    systemPackages = [
    ];
  };

  system = {
    stateVersion = "22.11";
  };
}

Ex: Build it
$ mkdir -p /tmp/minnix
$ cd /tmp/minnix
$ git clone https://github.com/nixos/nixpkgs
$ NIX_PATH="nixpkgs=/tmp/minnix/nixpkgs" nix-shell -p nixos-generators --run "nixos-generate -f iso -c ./min.nix -o result"

Run the image:
$ qemu-x86-64 ... your options of preference ... result/iso/*.iso
ex
$ qemu-system-x86_64  -nographic -cdrom result/iso/small.iso -m 8G -display curses
# consider selecting the 4th boot option, curses, when presented

Now log in. In the above I have a user "simon" with no password. You can not log in with no password with simon.
Bad commits include:
bad 00877cb59afcc3088a28e3280f6930b89cc62382
bad 9b6dcd65b36b55a4865de0a82f7979d4698d48d1

Good (functional nixpkgs with which 'simon' can log in) include:
cf57af7f537266c6e86f51cf1716aeb801a2d1cb
ea54b7d80a77d7b60392985acc8b2bbba79779e6

Possibly this is due to commit j
Expected behavior
"simon" can login by just hitting 'enter' at the password prompt.
Notify maintainers
@szlend maybe? @trofi ? This maintainer not-quite-lookup system is really not efficient.

Confirmed locally as well on a VM without a bootlaoder. Trying to bisect nixpkgs.

I confirm issue

yeah, my bisect also arrived at https://github.com/NixOS/nixpkgs/pull/282136/commits/bc73401bf642f80465900c38090dae5618cd5be1 pam: 1.5.3 -> 1.6.0. I'll bisect pam itself to get the idea when the regression was introduced and will update the upstream bug.

Bisected linux-pam down to https://github.com/linux-pam/linux-pam/commit/b3020da7da384d769f27a8713257fbe1001878be pam_unix/passverify: always run the helper to obtain shadow password file entries.
Proposed a patch revert for nixpkgs as https://github.com/NixOS/nixpkgs/pull/298994

The upstream merged empty password handling fix as https://github.com/linux-pam/linux-pam/pull/784
Updated https://github.com/NixOS/nixpkgs/pull/298994 to include upstream fix instead.

#298994 was merged; should this be closed?


J2010 date wrong?

Hi,
In Data.Astro.Time.Epoch, j2010 is defined as follows:
j2010 :: JulianDate
j2010 = JD 2455196.5

I might be completely wrong, I'm very new to astronomy, but is this not off by one? Because 2455196.5 is 31 December 2009 00:00 UTC. Should it not be 2455197.5?

If we take J2000 (12h on 1 January 2000) as reference point which is 2451545.0.
2451545.0 - 0.5 (for 12h) + 365 * 10 + 3 (three leap days - 2000, 2004, 2008) = 2455197.5
Looks like you are correct.

Given that all the {Sun,Planet,Moon}Details are given with respect to J2010, are they wrong too then? I don't know where you got them from — did you calculate them yourself with reference to your "J2010", or were they given in a book somewhere for reference with the real J2010? If the former, then you would have to recalculate them if you fixed j2010, if the latter then fixing j2010 will make things more accurate.

Actually, J2010 is 2455196.5.
Because J2010 is 2010 January 0.0. 0th January and J2000 is 2000 1.5th January. So the difference between them is
2451545.0 - 1.5 (for 1.5 days) + 365 * 10 + 3 (three leap days - 2000, 2004, 2008) = 2455196.5.
I have checked with the Practical astronomy by Peter Duffett-Smith book.
Technically speaking 0 January 2010 is 31 December 2009 for we count days from 1, not 0.

Given that all the {Sun,Planet,Moon}Details are given with respect to J2010, are they wrong too then? I don't know where you got them from — did you calculate them yourself with reference to your "J2010", or were they given in a book somewhere for reference with the real J2010?

I referenced all these data from Practical astronomy by Peter Duffett-Smith. The same source that states J2010 is 2455196.5.
So all the params should be fine.

Okay, great, thanks for clearing that up, sorry for the noise!

No worries, thank you for the report.


Upgrade Pillow

With #463 we've bumped a number of packages but we can't upgrade Pillow yet due to at least one breaking change with /profile:
app-1  | Traceback (most recent call last):
app-1  | 2024-01-04 15:39:24,898 - None
app-1  |   File "/home/bot/.local/lib/python3.10/site-packages/discord/commands/core.py", line 131, in wrapped
app-1  |     ret = await coro(arg)
app-1  |   File "/home/bot/.local/lib/python3.10/site-packages/discord/commands/core.py", line 1002, in _invoke
app-1  |     await self.callback(self.cog, ctx, **kwargs)
app-1  |   File "/bot/cogs/profile.py", line 355, in display
app-1  |     photo_content.thumbnail((263, 200), Image.ANTIALIAS)
app-1  | AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'

Need to look into our implementation and see what other dragons be lurking if we want to get the latest version.

I’m not seeing that.  At least not with Pillow 8.4.  What version are you on?

Sorry, should have been more clear, this was very bad phrasing on my part. This does not block #463, the version bumped there is 100% fine.
This was bumping it all the way to their latest release, 10.2.0. Apologies.


input to KTS

Hi,
For change point detection. What should i input to KTS? Flatten image as HxW dimension input or using some feature extraction methods so that the image become some N dimension input? What is being used in this paper to preprocess the image/frame?

Have you knew the input to KTS ?If you have,can you told it to me ?

You need to process the frame from (h,w) to (d) where d is the number of feature. Basically your video will be from (time,h,w) to (time,d). For that the original KTS use Fisher vector. I used Googlenet instead.

Yes, that's right, use the GoogLeNet features as the KTS input.


merge package from arlac77/npm-package-template

package.json

chore(package<EMAIL_ADDRESS>

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


howto update bitcoin-qt for the last version?

thanks

just see

update no 0.14.1 ??

Just follow steps and end in error on compiling

please post your error, and which of the tutorials you followed to provide a proper answer. thx.

Problem solved . Thanks

OK, Solved and closed.


Changes to Whitelist username creation

Hi Brady,
I work for Philips Hue Developer Support.  In case you were not aware, in a few months time we will be changing the way usernames are created on the bridge (for security reasons).  Custom whitelist usernames will no longer be allowed and the bridge randomly generated username must be used instead.  Please see below link for more information:
http://www.developers.meethue.com/documentation/important-whitelist-changes
Looking at your readme and your code (e.g.  lights.rb register_username method), it looks like this change will affect you. After February 2016, the setting of the username will not work so it should be removed, and the randomly generated username should be taken from the bridge success response (as shown in above link).  Apologies for the inconvenience caused.
Thanks
Steve

Thank you @SteveyO! I will fix it right up. This is a good change, client generated usernames were unnecessary in my opinion.

Thanks great news.  Yes I agree,  it is a good change,  of course a little bit of an inconvenience for guys who have written Hue SDKs and Libraries but thanks for the understanding.
Steve

Addressed in PR #73


In the config, allow specifying an existing album to upload a folder to

along these lines I would like it if it synced the folders to existing albums not always create new ones each run of the app.


VAST 402 after moving player DOM element

Hello videojs-ima team!
I have been using this plugin with great success for many years now. Recently, I have been tasked with making my organization's video player capable of floating and sticking to the bottom of the page. Once the video player goes out of the viewport, it should be moved to a container that follows user scrolling, allowing video playback to remain visible even after scrolling down.
However, when attempting to move around the DOM an already initialized video player I noticed that ads would not play. A video player that was initialized but not moved would play ads correctly, but after any DOM manipulation to move it around, including moving it back to its original position, ad playback would always fail with the following error:
Ad error: AdError 402: VAST media file loading reached a timeout of 8 seconds.

This are the dependencies used and their versions:
"dependencies": {
    "video.js": "7.21.4",
    "videojs-contrib-ads": "6.9.0",
    "videojs-ima": "2.1.0"
}

And here is a StackBlitz project where the issue can be easily reproduced:
https://stackblitz.com/edit/vitejs-vite-a2x1ph?file=index.html
Looking at past issues I found this old one that looked similar. But since it was opened so long ago, I decided to open a new issue to verify if this was still the case: https://github.com/googleads/videojs-ima/issues/956. In short, can a video player be moved around the DOM? If not, is there any SDK method that can be called to restore ad playback capabilities?

Hello @bsato212 ,
Since this is a limitation of the IMA SDK, I am going to close this issue. If you would like to request support for this behavior, please feel free to add onto the forum post you mentioned, or create a new one requesting support.
Thank you,
Jackson
IMA SDK team


Dealing with partial occupancies

This applies to analyses that require sites/user structure. If a user provides a disordered structure, the code should return an error indicating that the analysis doesn't work with partial occupancies. The user may then either manually adjust the structure or, if they prefer an automatic solution, set flag = True. If flag = True is enabled, the code should issue a warning that the structure will be modified: all partial occupancies will be reset to 1, and any issues with duplicate sites will be addressed.
Forcing all occupancies to 1 may introduce problems if the structure contains elements other than the floating species.
In such cases, we have two options:

remove all sites containing other species
if available, use a function to remove duplicated species.

I'm not sure that pymatgen has a function to remove duplicated species, therefore, for my structures, I used custom_structure.remove_species(['S','Sb','W']) to delete other species and the following to change the occupancy to 1:
for idx,site in enumerate(custom_structure.sites):
    custom_structure.replace(idx=idx, species=site.species.elements[0], label=site.label)

Let me know if you want me to provide a .cif file with disorder and containing elements other than the floating species.


Extension viewlet does not reflect runtime state of extensions

testing #11023:

VSCode Version: Version 1.5.0-insider

OS Version: macOS

launch VS Code from command line with --disable-extensions
Observe: extension viewlet still shows all extension with an uninstall button. There is no indication that extensions are not active.

Yeah, the extensions runtime state isn't connected to their management state.

我靠，不要再推送消息了，兼职就是spam mails!!!
At 2016-08-30 20:37:53, "João Moreno"<EMAIL_ADDRESS>wrote:
Yeah, the extensions runtime state isn't connected to their management state.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@joaomoreno And while you people are at it, is there some way you could add support for deactivating extensions on the fly. Is it as simple as calling extension.deactivate() and extension.activate()?

@hashhar ping @alexandrudima

@hashhar Great question! On a first look, yes, it should be as easy as that.
However, not all extensions do everything 100% correctly, e.g.:

perhaps it registers a command and forgets to .dispose() the registration
perhaps it registers a language support and forgets to .dispose()
perhaps it registers a file watcher, a document change listener and forgets to .dispose()
etc.

I don't think we should have a "deactivate" action in the UI until we are certain we have deactivated an extension. One way we could guarantee this is if we'd return a special instance of the vscode module for each extension that requires vscode. In this case, we could identify which extension calls which API methods, keep track of all of that, and in a swift way remove all the registrations on our side. That could guarantee deactivation from the API point of view.
Now, there is an even more nasty class of issues, ones which involve third party resources. Imagine an extension does any of the following:

spawns a process
opens a file
listens on a port
connects to a server
(other OS resources)
provisions a server in the cloud
makes an ftp connection

And it forgets to clean up all of that. Some of those resources get cleaned up by node on shutdown (releases file handles, on Windows kills child processes, stops listening to ports), so to really be certain on our side an extension has deactivated we'd need to hack node's require to the point where we return special instances of fs, child_process, net, which can safely clean after an extension.
TL;DR: We can call deactivate(), but that does not mean the extension is in any way really deactivated.

@alexandrudima Thanks for the insight. I guess this is the difference between seasoned developers and freshly out of school. :stuck_out_tongue:
It means that there needs to be a policy to ensure all these things don't happen before this work can be done.

Now, we indicate an extension being running or not.
Closing this.


Readme: change example emacs configuration to work with both opam and npm

Re-opening #30 closed by accident.

remove npm or opam specific indications
Add a reason-cmd-where command to catch error if refmt and
ocamlmerlin installed from opam.

This makes sense, thanks!


Cmd.exe traps short cut keys with dwMode=ENABLE_VIRTUAL_TERMINAL_INPUT for input

Windows Terminal version
1.15.2875.0
Windows build number
10.0.22000.1219
Other Software
No response
Steps to reproduce
Set ConsoleMode on input handle to ENABLE_VIRTUAL_TERMINAL_INPUT and try to ReadConsoleInput on CTRL-C or CTRL-V. The console doesn't react as a VT100 terminal.
Expected Behavior
I set the terminal input mode to  dwMode=ENABLE_VIRTUAL_TERMINAL_INPUT.
I expect that with ReadConsoleInput transforms all keyboard input to VT100 terminal output. For example CTRL-C should return ETC and CTRL-V should return SYN. However the console (cmd.exe) overrides these actions. The same for a lot of other keyboard shortcuts. This is not standard VT100 behavior and should not occur.
How can this non VT100 behavior be disabled ?
Actual Behavior
Termina in VT100 input mode behaves like Windows short cut keys, for example CTRL-C and CTRL-V are copy/paste.

Do you have a minimal program that repros what you're seeing/? Are you using the Windows Terminal, or the vintage Console Host? If you're using the Terminal, could you share your settings.json file?

#include <stdlib.h>
#include <stdio.h>
void f(char** p) {
*p = "test2";
}
int main() {
//system("wsl sort msft_10-K_20200630_20200730.csv > sorted2.csv");

char* s = malloc(sizeof(char) * 100000);

free(s);
/*
int r = 10, c = 3;
char** ptrs = (char**)calloc(r * c, sizeof(char*));
if (ptrs == NULL)
	return;
f(ptrs + 2 * c);
*(ptrs+2*c+1) = "test";
*/

}

Terminal Preview:  Sent from Mail for Windows From: Mike GrieseSent: Monday, 28 November 2022 13:48To: microsoft/terminalCc: JacqKrol; AuthorSubject: Re: [microsoft/terminal] Cmd.exe traps short cut keys with dwMode=ENABLE_VIRTUAL_TERMINAL_INPUT for input (Issue #14451) Do you have a minimal program that repros what you're seeing/? Are you using the Windows Terminal, or the vintage Console Host? If you're using the Terminal, could you share your settings.json file?—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
unsigned int keyboard(HANDLE  hIn) {
INPUT_RECORD input[25];
int n = 25, out;
while (1) {
    // Wait for the events, read at least
    ReadConsoleInput(hIn, input, n, &out);

    unsigned char c;
    // Dispatch the events to the appropriate handler.
    for (int i = 0; i < out; i++)
    {
        switch (input[i].EventType)
        {
        case KEY_EVENT: // keyboard input
            c = input[i].Event.KeyEvent.uChar.AsciiChar;
            if (c && input[i].Event.KeyEvent.bKeyDown == 1)
                return c;
            break;
        case MOUSE_EVENT: // mouse input
            break;
        case WINDOW_BUFFER_SIZE_EVENT: // scrn buf. resizing
            //ResizeEventProc(input[i].Event.WindowBufferSizeEvent);
            break;
        case FOCUS_EVENT:  // disregard focus events
        case MENU_EVENT:   // disregard menu events
            break;
        default:
            break;
        }
    }
}

}
int main() {
HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);
HANDLE hOut= GetStdHandle(STD_OUTPUT_HANDLE);
DWORD dwMode;
GetConsoleMode(hOut, &dwMode);
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(hOut, dwMode);

dwMode = ENABLE_VIRTUAL_TERMINAL_INPUT;
SetConsoleMode(hIn, dwMode);

unsigned char c;
while (c = keyboard(hIn)) {
    printf("%x,", c);
    if (c == 'q') break;
}

}

Hi,
I use the windows terminal, launched by VS2022 and have attached the json file.
settings.json.txt

#include <stdlib.h>
#include <stdio.h>
#include <windows.h>

unsigned int keyboard(HANDLE  hIn) {
    INPUT_RECORD input[25];
    int n = 25, out;

    while (1) {
        // Wait for the events, read at least
        ReadConsoleInput(hIn, input, n, &out);

        unsigned char c;
        // Dispatch the events to the appropriate handler.
        for (int i = 0; i < out; i++)
        {
            switch (input[i].EventType)
            {
            case KEY_EVENT: // keyboard input
                c = input[i].Event.KeyEvent.uChar.AsciiChar;
                if (c && input[i].Event.KeyEvent.bKeyDown == 1)
                    return c;
                break;
            case MOUSE_EVENT: // mouse input
                break;
            case WINDOW_BUFFER_SIZE_EVENT: // scrn buf. resizing
                //ResizeEventProc(input[i].Event.WindowBufferSizeEvent);
                break;
            case FOCUS_EVENT:  // disregard focus events
            case MENU_EVENT:   // disregard menu events
                break;
            default:
                break;
            }
        }
    }
}

int main() {
    HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);
    HANDLE hOut= GetStdHandle(STD_OUTPUT_HANDLE);

    DWORD dwMode;
    GetConsoleMode(hOut, &dwMode);
    dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
    SetConsoleMode(hOut, dwMode);

    dwMode = ENABLE_VIRTUAL_TERMINAL_INPUT;
    SetConsoleMode(hIn, dwMode);

    unsigned char c;
    while (c = keyboard(hIn)) {
        printf("%x,", c);
        if (c == 'q') break;
    }
}

(codeformatted from email)
Without more digging in, I'm betting there's something to do with SetConsoleCtrlHandler that's missing.

Thanks for providing the info! Someone from our team will try and repro this to figure out what's going on


🐞 Bug – Changes in Shared module are not detected and not recompiled by Vite

Changes in Shared module are not detected and not recompiled by Vite

Hey @0-gravity – thank you for the bug report!
I've noticed this bug too, and it should definitely be fixed! 🔧

( Also, if you could edit your description to use the Elm Land GitHub Issue template, that would mean a lot! )
Here it is again, to make it easy to copy the format: 👇
Problem

What problem did you run into when using Elm Land?

Your setup

What operating system (Mac/Window/Linux) are you using? Please provide a version!
Please share the output of the following commands:

node -v
elm-land -v

This has been fixed in #54 , and will be released with v0.18.0 🚀


Fan original INI file have extra ON command, so how to convert it into JSON file?

Home Assistant version
0.89.1
SmartIR version
Master Branch (Latest version as of 25th March 2019)
SmartIR configuration

smartir:

switch:
  - platform: broadlink
    host: 192.168.1.XXX
    mac: 'b4:43:XX:XX:XX:XX'

fan:
  - platform: smartir
    name: Living Room Fan
    unique_id: living_room_fan
    device_code: 9000
    controller_send_service: switch.broadlink_send_packet_192_168_1_XXX

Describe the bug
No bug, just would like to confirm whether the conversion is correct or not.
Debug log
Original INI file:
[off]
off_command = 1ww0AA0kDSQkDSQNDSQNJCQJA0kDSQNDSQNJAwAAW8AAAAA

[on]
on_command = 1ww0AA0kDSQkDQ0kDSQkDQNDSQNJCQNJA0kDQwAAW8AAAAA

[left]
25 = 1ww0ACQNDSQkA0kJA0kDQ0kDSQNJCQNDSQkDQwAAW8AAAAA
50 = 1ww0AA0kDSQNJCQNDSkDQ0kDSQNJCQNDSQkDQwAAW8AAAAA
75 = 1ww0AA0kDSQNJA0k0kDSkDSQNJA0kDSQNJA0kDQwAAW8AAAAA
100 = 1ww0ACQNDSQNJA0kJA0NJC0kJA0kDSQNDSQNJAwAAW8AAAAA

After converted, JSON file saved in 9000.json:
{
  "manufacturer": "Unknown",
  "supportedModels": [
    "Unknown"
  ],
  "supportedController": "Broadlink",
  "commandsEncoding": "Base64",
  "speed": [
    "25",
    "50",
    "75",
    "100"
  ],
  "commands": {
    "off": "1ww0AA0kDSQkDSQNDSQNJCQJA0kDSQNDSQNJAwAAW8AAAAA",
    "on": "1ww0AA0kDSQkDQ0kDSQkDQNDSQNJCQNJA0kDQwAAW8AAAAA",
    "left": {
      "25": "1ww0ACQNDSQkA0kJA0kDQ0kDSQNJCQNDSQkDQwAAW8AAAAA",
      "50": "1ww0AA0kDSQNJCQNDSkDQ0kDSQNJCQNDSQkDQwAAW8AAAAA",
      "75": "1ww0AA0kDSQNJA0k0kDSkDSQNJA0kDSQNJA0kDQwAAW8AAAAA",
      "100": "1ww0ACQNDSQNJA0kJA0NJC0kJA0kDSQNDSQNJAwAAW8AAAAA"
    }
  }
}

Additional context
My question is the on command INI to JSON conversion above (9000.json) correct?
As I refer to other JSON example available in this project, but it dont have this on command.
Thanks.

The old component never used the on command.

The old component never used the on command.

So this means that SmartIR new component not using this ON command too?

yes

yes

Thanks for the clarification :)


pin geos to 3.6.2

Update some pinnings.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@danclewley @petebunting are you guys aware of this error when building against the latest geos?

Hi Sam / @gillins https://github.com/gillins,
No, I wasn’t aware of that… Looks like there has been some redacting of GEOS maybe. I’ll try and take a look at it this week.
Cheers, Pete

On 7 Nov 2017, at 22:18, Sam Gillingham<EMAIL_ADDRESS>wrote:
@danclewley https://github.com/danclewley @petebunting https://github.com/petebunting are you guys aware of this error https://travis-ci.org/conda-forge/rsgislib-feedstock/jobs/298500095#L972 when building against the latest geos?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/conda-forge/rsgislib-feedstock/pull/6#issuecomment-342642041, or mute the thread https://github.com/notifications/unsubscribe-auth/AF5T25Uu1PcARtSNsBjaDTnDWvEKcMs_ks5s0NcfgaJpZM4QUqWd.

Hi @gillins https://github.com/gillins and @danclewley https://github.com/danclewley,
Just to confirm I have fixed this issue in the development branch. @danclewley https://github.com/danclewley I guess we should decide whether it is worth creating a new release soon with this fix…
Cheers, Pete

On 7 Nov 2017, at 22:21, Pete Bunting<EMAIL_ADDRESS>wrote:
Hi Sam / @gillins https://github.com/gillins,
No, I wasn’t aware of that… Looks like there has been some redacting of GEOS maybe. I’ll try and take a look at it this week.
Cheers, Pete

On 7 Nov 2017, at 22:18, Sam Gillingham<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
@danclewley https://github.com/danclewley @petebunting https://github.com/petebunting are you guys aware of this error https://travis-ci.org/conda-forge/rsgislib-feedstock/jobs/298500095#L972 when building against the latest geos?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/conda-forge/rsgislib-feedstock/pull/6#issuecomment-342642041, or mute the thread https://github.com/notifications/unsubscribe-auth/AF5T25Uu1PcARtSNsBjaDTnDWvEKcMs_ks5s0NcfgaJpZM4QUqWd.

I add one extra commit to make this ready for merging when the geos issue is sorted out.

@danclewley @petebunting any luck doing a new release?

We've now created a new release. Is it easier to just add to this PR?:
Version is: 3.4.9
Checksum is: a271aee61395166542f3283fe899eff317ffb782f59ca90da0f008a203ebe5f3

We've now created a new release. Is it easier to just add to this PR?

Sure, but we got some new failures now I guess :smile:

@petebunting, any idea why this isn't building? Looks like it is getting to about 4 % then failing.

Sorry, only just got to this. @ocefpaf any ideas why this is pulling in libgdal from defaults? Also, seems to be compiling in C++11 mode, not sure this is relevant, but I thought we weren't doing this yet... Seems the errors may well be related to ABI mismatch.

Is it pulling in libgdal from defaults because hdf5 is pinned to 1.8.18|1.8.18.* I think it needs to change to hdf5 1.10.1|1.10.1.*.

@gillins, any idea why the travis build is still going or how to restart?

See https://github.com/conda-forge/libgdal-feedstock/issues/30#issuecomment-351384852. Hopefully it will finish soon, I'll keep an eye on it. BTW closing then opening a PR will cause the CIs to restart.

Yay!

:tada:


Flow cancellation does not delete Dask Scheduler & Worker pods (kubernetes deployment)

Issue
When a flow (running on kubernetes and using the DaskTaskRunner) is cancelled via the Cloud UI cancel button, the flow pod is deleted immediately, and no shutdown command / instruction is sent to the Dask Scheduler / worker pods that it had created. As such, the dask pods are left orphaned, still running (not actually doing anything, just hanging).
Further details
Basic flow config
# prefect==2.7.7
# dask==2022.12.1
# prefect-dask==0.2.2
# dask-kubernetes==2022.12.0

from prefect import flow, task, get_run_logger
from dask_kubernetes import make_pod_spec, KubeCluster
from prefect_dask.task_runners import DaskTaskRunner
import time

@task()
def sql_task(task_name: str):
    logger = get_run_logger()
    logger.info(f"RUNNING: {task_name}")
    time.sleep(30)

@flow(name="dask_cancel_issue",
      task_runner=DaskTaskRunner(
        cluster_class=KubeCluster,
        cluster_kwargs={"pod_template": make_pod_spec(
                                            image="some_docker_image_here",
                                            memory_limit="4Gi",
                                            cpu_limit=4,
                                            threads_per_worker=16,
                                        )
                        },
        adapt_kwargs={"minimum": 1, "maximum": 1},
    ))
def dask_cancel_issue():
    logger = get_run_logger()
    logger.info(f"Flow now starting")
    task_1 = sql_task.with_options(name='task_1').submit(task_name='task_1', wait_for=[])
    task_2 = sql_task.with_options(name='task_2').submit(task_name='task_2', wait_for=[task_1])
    task_3 = sql_task.with_options(name='task_3').submit(task_name='task_3', wait_for=[task_2])

if __name__ == "__main__":
    dask_cancel_issue()

Behaviour Observed

Trigger flow run from cloud UI
Agent creates a job to run the flow (spawns the flow pod)
Flow pod creates ephemeral Dask Scheduler pod
Dask scheduler pod creates ephemeral dask worker pod
Worker pod executes tasks
Hit the cancel button on cloud UI
Agent actions cancellation action - deletes the flow pod
Flow pod terminates immediately - it does not send any closure/termination signal to the dask scheduler pod
dask scheduler pod and dask worker pods are left orhpaned

Expected behaviour

Agent gives cancel signal to flow pod
flow pod sends termination command to dask scheduler (which in turn shuts down the dask worker pod)
flow pod is deleted and flow run terminates

Observed logs

Thanks for the thorough report! I believe this will be resolved by https://github.com/PrefectHQ/prefect/pull/8126 — specifically https://github.com/PrefectHQ/prefect/pull/7887.
It turns out the Python interpreter does not tear down resources when a SIGTERM is received so we needed to add explicit signal handling.

Ah fab, I'll keep an eye out for that - thanks!

This is still present on "prefect==2.7.10"

Can you share flow run logs for 2.7.10? Do you have tasks running when cancellation occurs? I'm not sure Dask will let us cancel tasks and it may be waiting for them to finish, so we may need to add special handling to tear down the cluster anyway.

Hi @madkinsz
Yes, I had tasks running while the cancellation occurred. Dask would turn down the scheduler if it received SIGTERM however I think it didn't have the required time to do so before prefect agent deleted the job pod
Job Pod:
<frozen runpy>:128: RuntimeWarning: 'prefect.engine' found in sys.modules after import of package 'prefect', but prior to execution of 'prefect.engine'; this may result in unpredictable behaviour
11:30:43.539 | INFO    | Flow run 'pretty-wasp' - Downloading flow code from storage at 'flows/workflow-6b8f1db0b6b52de0bf55d88899de91ee'
2023-02-01 - 11:30:46 AM | INFO  | prefect.task_runner.daskrunner@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Creating a new Dask cluster with `dask.core.engine.task_runner.daskrunner.get_cluster_class`
Creating scheduler pod on cluster. This may take some time.
2023-02-01 11:30:52,430 - distributed.deploy.adaptive - INFO - Adaptive scaling started: minimum=1 maximum=1
2023-02-01 - 11:30:52 AM | INFO  | distributed.deploy.adaptive@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Adaptive scaling started: minimum=1 maximum=1
2023-02-01 - 11:30:52 AM | INFO  | prefect.task_runner.daskrunner@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: The Dask dashboard is available at http://dask-worker-115150ee.default:8787/status
2023-02-01 - 11:30:55 AM | INFO  | prefect.flow_runs@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Created task run 'test-2a6f9ce6-2' for task 'test'
2023-02-01 - 11:30:55 AM | INFO  | prefect.flow_runs@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Submitted task run 'test-2a6f9ce6-2' for execution.
2023-02-01 - 11:30:55 AM | INFO  | prefect.flow_runs@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Created task run 'test-2a6f9ce6-1' for task 'test'
2023-02-01 - 11:30:55 AM | INFO  | prefect.flow_runs@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Submitted task run 'test-2a6f9ce6-1' for execution.
2023-02-01 - 11:30:55 AM | INFO  | prefect.flow_runs@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Created task run 'test-2a6f9ce6-3' for task 'test'
2023-02-01 - 11:30:55 AM | INFO  | prefect.flow_runs@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Submitted task run 'test-2a6f9ce6-3' for execution.
2023-02-01 - 11:30:55 AM | INFO  | prefect.flow_runs@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Created task run 'test-2a6f9ce6-0' for task 'test'
2023-02-01 - 11:30:55 AM | INFO  | prefect.flow_runs@pretty-wasp-xrsr7-g9q9x[44 - MainThread]: Submitted task run 'test-2a6f9ce6-0' for execution.
 Looking for work from queue(s): default...
11:30:15.201 | INFO    | prefect.agent - Submitting flow run 'cac769a5-20a2-43e2-a07d-7e8cf1ea70d7'
11:30:16.335 | INFO    | prefect.infrastructure.kubernetes-job - Job 'pretty-wasp-xrsr7': Pod has status 'Pending'.
11:30:16.439 | INFO    | prefect.agent - Completed submission of flow run 'cac769a5-20a2-43e2-a07d-7e8cf1ea70d7'
11:30:28.032 | INFO    | prefect.infrastructure.kubernetes-job - Job 'pretty-wasp-xrsr7': Pod has status 'Running'.
11:31:10.852 | INFO    | prefect.agent - Found 1 flow runs awaiting cancellation.
11:31:11.843 | INFO    | prefect.agent - Killing kubernetes-job a297dbdb-5af8-484d-93c8-951e687bef16:default:pretty-wasp-xrsr7 for flow run 'cac769a5-20a2-43e2-a07d-7e8cf1ea70d7'...
11:31:12.090 | INFO    | prefect.agent - Cancelled flow run 'cac769a5-20a2-43e2-a07d-7e8cf1ea70d7'!

Dask scheduler:
/usr/local/lib/python3.11/dist-packages/distributed/cli/dask_scheduler.py:140: FutureWarning: dask-scheduler is deprecated and will be removed in a future release; use `dask scheduler` instead
  warnings.warn(
2023-02-01 11:30:50,470 - distributed.scheduler - INFO - -----------------------------------------------
2023-02-01 11:30:52,038 - distributed.scheduler - INFO - State start
2023-02-01 11:30:52,045 - distributed.scheduler - INFO - -----------------------------------------------
2023-02-01 11:30:52,047 - distributed.scheduler - INFO -   Scheduler at:    tcp://<IP_ADDRESS>:8786
2023-02-01 11:30:52,047 - distributed.scheduler - INFO -   dashboard at:                     :8787
2023-02-01 11:30:52,462 - distributed.scheduler - INFO - Receive client connection: Client-e2670f3b-a223-11ed-802c-d681f44c33b7
2023-02-01 11:30:52,467 - distributed.core - INFO - Starting established connection to tcp://<IP_ADDRESS>:59778
2023-02-01 11:31:11,938 - distributed.core - INFO - Connection to tcp://<IP_ADDRESS>:59778 has been closed.
2023-02-01 11:31:11,938 - distributed.scheduler - INFO - Remove client Client-e2670f3b-a223-11ed-802c-d681f44c33b7
2023-02-01 11:31:11,939 - distributed.scheduler - INFO - Close client connection: Client-e2670f3b-a223-11ed-802c-d681f44c33b7

Hi, this issue seems to still be present. We launch a K8s Dask cluster when the Prefect Task Runner starts, and expect it to be cleaned up on cancellation from the UI. The cleanup does occur when all tasks succeed, or if I launch the Flow locally and then CTRL-C to cancel, but does not cleanup when I run a deployed Flow and cancel it via the Prefect UI. IIUC the mechanism for cleanup is via the AsyncContextManager calling close() when the Task Runner exits successfully.
We execute deployed Flows with K8s as well, so whatever signal is sent to the Flow Run pod on UI cancellations, doesn't execute the close() methods.
Additionally the Dask libraries have atexit registers [dask_kubernetes] [dask_distributed] for cleaning up resources from the client-side, and those don't get triggered either.
Maybe we need to add aclose() or send SIGINT instead of SIGTERM?


update vue-router dependency?

Great plugin,
error<EMAIL_ADDRESS>doesn't satisfy found match of<EMAIL_ADDRESS>Is there any reason vue-router 3 isnt allowed?

@bjensen thanks for pointed out a problem and kind words)
No reason at all, my bad. Will try to remove this limitation soon.


Alternative approaches to prop_flat_map due to shrinking behavior?

I'm using proptest to generate random matrices (dense and sparse). I do so as follows:

Use a strategy of (rows, cols).
prop_flat_map on this strategy and generate a vector of rows * cols number of items.

Here's a concrete example:
pub fn dense_matrix_strategy<T, S>(
    rows: impl Strategy<Value = usize>,
    cols: impl Strategy<Value = usize>,
    strategy: S,
) -> impl Strategy<Value = MockDenseMatrix<T>>
where
    T: Debug,
    S: Clone + Strategy<Value = T>,
{
    (rows, cols).prop_flat_map(move |(r, c)| {
        proptest::collection::vec(strategy.clone(), r * c)
            .prop_map(move |data| MockDenseMatrix::from_row_major(r, c, data))
    })
}

This is simple and works very well. However, if I understand correctly, the shrinking procedure for flat_map prefers to try to shrink the "inner" strategy (the set of elements) before it tries to shrink the "outer" strategy (rows/cols). This is problematic, because often proptest never tries to reduce the dimension of the matrices, instead favoring trying to reduce the size of the individual elements. If I increase PROPTEST_MAX_SHRINK_ITERS, it will typically manage to reduce the size as well, but this obviously takes longer to run and I guess there are no guarantees.
I have so far been able to think of a good way around this. I suppose in principle, one could generate a large number of elements first, flat map on this and take only rows * cols items from this set, but this seems highly inefficient and you'd need to set a maximum number of elements and it would require some additional care in choosing the rows and cols properly. Does anyone have an idea for how I can approach this problem differently? Any help would be greatly appreciated!

Upon further reflection, it seems to me that these kind of data structures warrant custom ValueTree implementations. In particular, we probably want to try to shrink by selecting submatrices (subject to provided constraints, perhaps), which is something that we'll probably have to code ourselves rather than rely on combinators. Am I right in thinking so?

Alternatively, you could try to generate from a triple (strategy, row, cols) at the same time, where strategy is within a range of min/max number of elements that would be satisfactory, and then you apportion out the number of elements you got to row * cols. When the number of elements are too many or too few as compared to row * cols, you can either: a) adjust row * cols to fit the number of elements, b) throw away the sample using filtering -- I would suggest attempting a) first.

Upon further reflection, it seems to me that these kind of data structures warrant custom ValueTree implementations. In particular, we probably want to try to shrink by selecting submatrices (subject to provided constraints, perhaps), which is something that we'll probably have to code ourselves rather than rely on combinators. Am I right in thinking so?

This might give you the best results, but it would seem likely that there is some new combinator that you could derive for this that works for matrices in general. One could then e.g. build up an extended set of combinator for more advanced data structures as a library (though proptest is fairly large already, so it's probably best to have this as separate crate).

@Centril: Thank you very much for your input!  I suppose your first option is immediately the most pragmatic, I can maybe try that out. Though it does have some issues: If for examples rows and cols are e.g. 5and5, I would somehow need to make sure I have enough elements to begin with. And I'd prefer having to separately specify min/max dimensions, and rather take a strategy. Actually, it should probably rather take a (row, col)` tuple strategy instead of separate strategies. I'll think about it.

This might give you the best results, but it would seem likely that there is some new combinator that you could derive for this that works for matrices in general. One could then e.g. build up an extended set of combinator for more advanced data structures as a library (though proptest is fairly large already, so it's probably best to have this as separate crate).

Do you already have an inkling on how such a combinator might look like? Basically like flat map, but one that prefers to shrink its "outer" layer first? I am not sure how the current flat map shrinker works, but how does one obtain the shrunk values for the inner layer if one shrinks the outer layer first? I suppose I'll find the answer if I dive into the code.
Thinking more about it, it does however seem like some kind of generalization of the vec shrinker might be the best fit. Although I haven't looked into the exact details of how the vec shrinker works, I would expect it to perform something like a binary search, taking various subselections of the original vec in a binary-search-like fashion. I suppose one could generalize this to a quadtree/octree/hyper-octree-like approach for multi-dimensional arrays, in which one would take multi-dimensional subarrays while moving through a tree of such possible selections. It does seem rather complicated to accomplish in the general case though, and it quickly suffers from the curse of dimensionality (i.e. combinatorial explosion in the number of dimensions). I guess at that point, writing a custom one for matrices might be a more pragmatic option...

I don't have the code for the flat map shrinker in my mental cache right now so I would recommend looking at the code. :) Studying the code for vectors and flat mapping does seem sensible though.


Trav

Improves upon #2 and fixes #3

Seems that travis is not enabled.

@phadej we need to review all revdeps of Only that reexport Only for their upper bounds;
A quick query tells me that

heterogeneous-list-literals
indexed-list-literals
optparse-generic

reexport the Only type but don't have Only < 0.1.1 upper bound in place.

@hvr one option is to have major bump and mention why it so in the changelog; for me it's fine, i'd need to bump bounds either way.

@phadej well, that kind of oversignalling would be in vain if the respective maintainers aren't aware of the issue and then merely start depending on Only >= 0.1 && < 0.3 ending up with unsound API versioning. I'll try to reach out to the respective maintainers.

ping?

Have the maintainers of Only reverse dependencies responded anything?

I guess this is not going to happen.

A quick query tells me that
* heterogeneous-list-literals

* indexed-list-literals

* optparse-generic

reexport the Only type but don't have Only < 0.1.1 upper bound in place.

They could simply be revised.


Community Member dashboard: suggested projects card

Dashboard section "Projects you might be interested in" - https://www.figma.com/file/AXufBnFAVHvGdsxnQMVhNF/The-Accessibility-Exchange-Wireframes?node-id=1125%3A3780

@greatislander I'm happy to cut this from scope. I don't think it's necessary.


joint_state_publisher

Caught exception in launch (see debug for traceback): "package 'joint_state_publisher' not found, searching:
This error is appearing when  I launch world, but I cant see any package by this name in launch file
ros2 launch turtlebot3_gazebo multi_robot_launch.py

Hi,
the joint state publisher is a ROS2 package. To install it, run the command:
sudo apt install ros-humble-joint_state_publisher


Update test for paused VM

Signed-off-by: Bartosz Rybacki<EMAIL_ADDRESS>
What this PR does / why we need it:
Correct Paused VM test to exlude pod (as described) and add a new negative test for backup up a paused VM.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

/approve


MWPW-115134 Marquee updates

Added updates to the marquee block to match consonant spec
Added a 'split' marquee variant

Related to: MWPW-115134
Test URLs:

Before: https://main--milo--adobecom.hlx.page/drafts/rparrish/marquee

After: https://marquee--milo--adobecom.hlx.page/drafts/rparrish/marquee

BACOM Before: https://main--bacom--adobecom.hlx.page/customer-success-stories/

BACOM After: https://main--bacom--adobecom.hlx.page/customer-success-stories/?milolibs=marquee

@auniverseaway  - I haven't accounted for image per viewport options. Should that be included in this version?


Need Help Related Checkout-Ui-Extension With Select List

Hello,
I have created the select list successfully using the checkout extension.
But when I change the option it is not changing on the front.  please check:- https://d.pr/v/cUTzWM
It is happing because I use the applyCartLinesChange method inside the on-change method.
`onChange: (value) => {
const attributes = [
{
key: DELIVERY_ATTRIBUTE,
value: value
}
];
applyCartLinesChange({
type: 'updateCartLine',
id: target.current.lines[0].id,
attributes: attributes
}).then()
},`
Can anyone tell me what I am doing wrong.

Hi! I wanted to check if you are still having this issue? From discussions with support this was related to metafield configuration in the admin?
Hopefully it is resolved now, otherwise let us know and we can take a further look.

as discussed sending here full file code:-
`import {extend, Select, Grid, View, GridItem, Text, Heading, Divider, BlockSpacer} from "@shopify/checkout-ui-extensions";
extend("Checkout::CartLineDetails::RenderAfter", (root, {target, applyCartLinesChange, appMetafields}) => {
const select = root.createComponent(Select, {
  label: 'Country',
  value: '1',
  onChange: (value) => {
    console.log(value);
    const attributes = [
        {
        key: 'Store',
        value: 'pramod test'
        }
    ];
    applyCartLinesChange({
        type: 'updateCartLine',
        id: target.current.lines[0].id,
        attributes: attributes
    }).then(console.log)
},

  options: [
    {
      value: '1',
      label: 'Pickup',
    },
    {
      value: '2',
      label: 'Ship',
    },
  ],

});

root.appendChild(select);

});
`

Yeah, it seems like fixed now. Thanks @Steve-D-Powell

To be safe, you probably want to update the props of the select component in its onChange callback:
import {extend, Select, Grid, View, GridItem, Text, Heading, Divider, BlockSpacer} from "@shopify/checkout-ui-extensions";

extend("Checkout::CartLineDetails::RenderAfter", (root, {target, applyCartLinesChange, appMetafields}) => {

    const select = root.createComponent(Select, {
      label: 'DeliveryType',
      value: '1',
      onChange: (value) => {
        console.log(value);
        const attributes = [
            {
            key: 'Store',
            value: 'pramod test'
            }
        ];
        applyCartLinesChange({
            type: 'updateCartLine',
            id: target.current.lines[0].id,
            attributes: attributes
        }).then(console.log)
    },

      options: [
        {
          value: '1',
          label: 'Pickup',
        },
        {
          value: '2',
          label: 'Ship',
        },
      ],

    });

    root.appendChild(select);
  });

select.updateProps({value});

Thanks @lemonmade
I will try it.


GlyphLayout: Removed redundant lastGlyph (also fixes overlapping GlyphRuns)

Hey guys,
While trying to fix overlapping GlyphRuns I found out that "Glpyh lastGlyph" is not necessary. Can you guys please confirm? Am I missing any edgecases?
I already tried a lot of fonts and I cannot see any problems.
PS: I cannot commit FreeTypeFontGenerator.java without Github thinking it's all new... the only change actually is the removal of "Glyph lastGlyph" from the method getGlyphs(GlyphRun, CharSequence, int, int) within... I tried everything already... Can somebody help or change my PR? Also reverting FreeTypeFontGenerator and committing it again won't help.
Worst case: Please somebody else recreate this PR and merge. Thanks!

lastGlyph is necessary for BitmapFont getGlyphs to know the last glyph from the previous run. This allows kerning to be applied.
Without lastGlyph:

With lastGlyph (note the kerning for Va, another paid that often has kerning is Te or To):

I believe we want to keep the lastGlyph parameter, but note BitmapFont getGlyphs is public API, so changing it could break existing code. The idea is that someone could extend BitmapFont to do glyph layout differently.
I've just made a PR for improving the glyph bounds: #6581

BTW, I was also thinking the runs shouldn't overlap, but after getting back into the code I think it can't be avoided, like in the image above. The bounds were pretty poor before PR #6581 but even after runs can still overlap.

@NathanSweet Thanks for clarification about lastGlyph!


Add bay-services

Updated gremlin reference. Note https://github.com/containscafeine/data-model/pulls needs to be merged and the image needs to be built with the "latest" tag.

I've created a PR for the container index to speed things up: https://github.com/CentOS/container-index/pull/148


Missing test coverage for T5X against SeqIO

The PR #847
should not have been able to pass tests, as it is broken when testing against current seqio-nightly==0.0.11.dev20221020 with an error like:
Traceback (most recent call last):
  File "/t5x_home/t5x/train.py", line 763, in <module>
    gin_utils.run(main)
  File "/t5x_home/t5x/gin_utils.py", line 107, in run
    app.run(
  File "/usr/local/lib/python3.8/dist-packages/absl/app.py", line 312, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.8/dist-packages/absl/app.py", line 258, in _run_main
    sys.exit(main(argv))
  File "/t5x_home/t5x/train.py", line 727, in main
    _main(argv)
  File "/t5x_home/t5x/train.py", line 757, in _main
    train_using_gin()
  File "/usr/local/lib/python3.8/dist-packages/gin/config.py", line 1605, in gin_wrapper
    utils.augment_exception_message_and_reraise(e, err_str)
  File "/usr/local/lib/python3.8/dist-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
    raise proxy.with_traceback(exception.__traceback__) from None
  File "/usr/local/lib/python3.8/dist-packages/gin/config.py", line 1582, in gin_wrapper
    return fn(*new_args, **new_kwargs)
  File "/t5x_home/t5x/train.py", line 259, in train
    train_iter = get_dataset_fn(train_dataset_cfg, ds_shard_id, num_ds_shards,
  File "/t5x_home/t5x/utils.py", line 1411, in get_dataset
    return get_dataset_inner(cfg, shard_info, feature_converter_cls, seed,
  File "/t5x_home/t5x/utils.py", line 1433, in get_dataset_inner
    return seqio.get_dataset(
TypeError: get_dataset() got an unexpected keyword argument 'batch_size'
  In call to configurable 'train' (<function train at 0x7f0ac9d769d0>)

We've temporarily pinned t5x setup.py to install seqio at HEAD, but this indicates some missing test coverage - ideally the default install of t5x works with the seqio version it installs, whatever that is.

Installing SeqIO from head in #850


OLS-506: Remove standalone script

Description
Remove standalone script

Update default test tags to not run cluster tests locally.

TODO

[x] https://github.com/openshift/release/pull/51503

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.57%. Comparing base (5ea99d8) to head (8c91ff5).
Report is 7 commits behind head on main.

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #846   +/-   ##
=======================================
  Coverage   94.57%   94.57%
=======================================
  Files          55       55
  Lines        2009     2009
=======================================
  Hits         1900     1900
  Misses        109      109

/retest

/lgtm
/approve


Create offchain_ipfs.md

Grant Application
This application is (select one):

[x] Speculative (use this by default)
[ ] an RFP response

This application is (select one):

[ ] Public (fully)
[x] Public with private finances

Abstract
Based on community feedback we received after announcing the Rust IPFS initiative, we would like to enable the Substrate off-chain worker to make IPFS calls via a relay on the Substrate host. While this was at best cumbersome and at worst infeasible for Substrate users before, the availability of a Rust-native IPFS implementation not only makes this possible without external HTTP servers, but also optimizes network usage and performance significantly.
Once embedded, offchain::ipfs would enable common IPFS operations such as

Storing data within IPFS via ipfs.add, ipfs.dag.put, and ipfs.block.put
Retrieving data from IPFS via ipfs.get, ipfs.dag.get and ipfs.block.get
Exchanging data with peers via ipfs.bitswap
*“Swarming” with the global IPFS network via libp2p

This would benefit the ecosystem by bringing together two mission-critical pieces of Web3 technology, allowing content and data to be marshaled to and from Polkadot parachains, and improving availability in both networks. We believe that this would be a valuable addition to Substrate and as such, we’d like to propose this to be available within the official Substrate repository. Of course, we are willing to take Parity’s guidance on that.
While there are other implementations of IPFS (Go and JavaScript) we would prefer to natively embed IPFS in Rust to keep the codebase consistent and leverage the performance and resource utilization benefits that Rust provides.
Checklist

[x] The grants document has been read and understood.
[ ] The Google Form will be completed accurately. Note that the Google Form requires the pull request URL.
[x] Abstract (above) is succinct and complete.
[x] The application is being included into the correct directory: either 'targeted' or 'speculative'.
[x] The application includes a project description.
[x] The application includes all names of team members.
[x] The application includes a description of the team's experience.
[x] The application includes all necessary links (e.g. GitHub and LinkedIn)
[x] The "Development Roadmap" section in the application has a timeline of development ("milestones").
[x] The "Development Roadmap" section in the application has an estimate of funds required.
[x] The "Development Roadmap" section gives an indication of the team's long term plans.
[x] The "Development Roadmap" section includes documentation as a deliverable for at least one milestone.

Suggest a later pass at making offchain::ipfs and other code names to use backticks. I'll add any other names here if I find them.

@koivunej backticks are done :+1