Skip withdrawn validators in withdrawal sweep

Motivation
Since, when the validator index grows large, it's slow to withdraw the deposit, we tried to make it faster by reusing the indices in https://github.com/ethereum/EIPs/pull/6914 (consensus-specs at https://github.com/ethereum/consensus-specs/pull/3307).
However, reusing the indices brings complexity to the protocol and the spec. This PR skips the withdrawn validators in the withdrawal sweeping process to make the withdrawal faster while not reusing the validator indices.
The good thing about not reusing the validator indices is that we have a one-to-one correspondence between the validator indices and the validator public keys.
This improvement is intended to be an alternative to EIP-6914. So this improvement can be applied only if we don't want to do EIP-6914.
Implementation detail
In the current spec, we know that get_expected_withdrawals will not run more than MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP iterations. This improvement changes that function and makes it able to run more iterations than before.
Clients can optimize that by having a cache of unskippable validators and sweeping through the cache instead of the set of all validators. The running time will be still in the order of MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP.

This PR does not address the main goals of EIP-6914. The key constraint on the beacon-chain is that the full state must be loaded in memory and offer fast iteration over all indices. I would recommend to read this WIP draft on the engineering details of EIP-6914 https://hackmd.io/@dapplion/eip6914 but the main goals are:

limit the max memory cost a single state, and related data-structures
bound the computational complexity of epoch transitions

Addressing the specific implementation of this PR it defeats the original goal of the withdrawal bounded sweep. The worst case of this PR is consensus clients having to iterate the majority of the validators registry every block.

bound the computational complexity of epoch transitions

The worst case of this PR is consensus clients having to iterate the majority of the validators registry every block.

I guess what you mean is that, if the majority of the validators are withdrawn long ago, the clients have to iterate through them every block.
If the clients are implemented as it is done in the spec, yes it's true. But the main idea of this PR is to encourage the clients to have the cache of unskippable validators and iterate through that cache instead of the set of all validators. By doing this the number of iterations is not more than MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP.
So the computational complexity is not different from Capella, except that this PR iterate through more potential validators than Capella.
The code in the spec is implemented in a slower way just for simplicity purpose.
I understand that the clients have to a different algorithm than specified in the spec, but, as far as I understand, we are okay with it. (for example, the full-sweep strategy in https://github.com/ethereum/consensus-specs/pull/3307)

The key constraint on the beacon-chain is that the full state must be loaded in memory

limit the max memory cost a single state, and related data-structures

Do we have a requirement that the beacon state must fit in the memory? If so and the state grows rapidly, yeah reusing the validator indices makes sense and is better.
If not and we are allowed to have some parts of the beacon state to be in the memory and some parts to be in the storage, the state size may not be the issue.
However, I think the state size requirement is counter-intuitive to me because the EL state is already large (smart contract state, etc.). So having the beacon state large may not be an issue.

However, I think the state size requirement is counter-intuitive to me because the EL state is already large (smart contract state, etc.). So having the beacon state large may not be an issue, including that the beacon state may not grow as fast as the EL state.

The nature of EL vs CL state is very different, see below a summary comparison (from https://hackmd.io/@dapplion/eip6914#Why-is-this-a-problem)

Execution state
Consensus state

lookups
by hash
by index

reads per block
very sparse
all state is read at least once per epoch

total serialized size
many GBs
many MBs

The fact the CL state lookups are done by index, and the need to do complete iterations "frequently" (once per epoch) restricts the design space. Note that none of those things happen in EL clients.

If I recall, part of the appeal of the partial sweep is that it allows clients to not add any cache at all. Caches have been a good source of consensus failures, so not needing one is a positive. Of course clients make extensive use of caches today, just pointing out the positives of cache reduction.

I'm not sure what the partial sweep means, but I guess it's the current Capella sweep.
The full-sweep approach in EIP-6914 requires a cache as well, right? Otherwise, get_index_for_new_validator will be very slow, as shown in https://github.com/ethereum/consensus-specs/pull/3307.
So I think the "not having a cache" stuff is not the advantage EIP-6914 has over this PR.

Although @dapplion already mentioned both these points I'd like to stress them again:

We are forced to keep the full beacon state in memory, not one, but several in fact. There are techniques to keep one full state plus a bunch of differences to others, but even with those techniques the amount of memory consumed is still several beacon states worth (with the advantage that many more can be recovered quickly).
Caches are pretty bad and have caused most of the consensus problems we see on devnets/testnets. Most of our day is currently spent reviewing edge cases around caches. The code complexity of having to deal with an extra cache, specially for this loop that is very cheap,  does not make it worth it.

I would suggest we hold on to any approach of dealing with this until this becomes a real UX problem (or at least is closed to becoming one). Blocks are going to be packed with 16 withdrawals for the foreseeable future. When they are not, we can always increase substantially the sweep size, but realistically, when we get there we will have to have implemented index reuse or other means to bound the state in memory which is the real problem


Port update badges and new README.md

Port https://github.com/MinaProtocol/mina/pull/15889 to compatible

!ci-build-me

!ci-build-me

!ci-build-me


Add a BibTeX citation text or link

What would you like to be added:
Add a BibTeX citation text or link for reference
Why is this needed:
for research work citation
Without this feature, how does current nni work：
hands on write, not clear write which year?
Components that may involve changes:
document
Brief description of your proposal if any:
You could refer autokeras
https://github.com/keras-team/autokeras#cite-this-work

Thank you, we have added BibTeX citation text in PR #3150, and I will close the issue.


Multiple API keys

Hi! This is a really cool project, but for us to get even close to the 250b token mark, we'd need a LOT of participants. I'm sure there are many willing to contribute idle cycles for these few API calls, but I'm quite doubtful this free Gemini spree will last long. So rather than adding many people, I'd suggest quickly implementing API key rotation into the script. @TanvirOnGH wrote a refactor that I would built off of.
Are there any potential issues/workarounds here (such as the difficulty of registering multiple accounts to a single phone number on google) that I should be aware of?

It seems I'm having networking issues. ETA on making a pr is tomorrow.

This is an awesome suggestion, thanks @dronesflier! Let me know what you think of #7.
Interestingly enough, it seems that the 60 requests/min limitation is applied per API key, not per Google account. Thus, you can perform as many requests per second as you have API keys. I'm at 5it/s with no issues currently.

I ran into issues using multiple accounts. Got temporarily suspended. Can't regen and use again. I was on 3it/s. https://github.com/thooton/muse/issues/6#issuecomment-1870899673

This is an awesome suggestion, thanks @dronesflier! Let me know what you think of #7.
Interestingly enough, it seems that the 60 requests/min limitation is applied per API key, not per Google account. Thus, you can perform as many requests per second as you have API keys. I'm at 5it/s with no issues currently.

This looks great! Thanks for implementing!

Dang, you're right @TanvirOnGH - I'm running into the same issue.
I've worked around it at least temporarily by rotating my IP every 3 minutes, but it would be good to have a more permanent solution.


Update readme to warn against issue #17

Updated the order of the example code and added an explicit warning against calling get_local_address prior to adding a route on Linux machines. In response to #17.

Coverage remained the same at 64.758% when pulling 7be070a2ba993f457353ed4e7b2cca04560bcfc2 on dabrowne:master into 473f5773015e49ed0e63e1a2c706f1454335df5a on MrLeeh:master.


Update publish_subscribe.md

I think this makes the pubsub pattern more fleshed out and easier to use.

@tmrts what you think?


Added floordivision '//' on integer variables

I put a syntax warning on using / in stead of a deprecation warning, because this prints the warning message.

I suppose this prints a warning every time you use "/"? Maybe it would be good to just print it once and check if we have printed it already?

It only prints once in my IDE, I guess python warnings do that automatically

excellently executed, including the choice of using the warnings library. I think there will be future modeling cases where we might want to warn the user about undesirable options


filter with orderBy lists

Hi.
I need to filter posts based on multiple sorting criteria, so I do the following:
ctx.photon.posts.findMany({
     where: filters,
      orderBy:{
          createdAt:"desc",
          title:"asc",
          content: "asc"
      }
})

I want it to be sorted first according to the creation time, then sorted by title and content.
But I got an error:
Argument orderBy of type PostOrderByInput needs exactly one argument, but you provided `createdAt` and `title` and `content`.

I seem to be able to choose only one, but not multiple.
So I want to know if photon implements multiple conditional sorting. I saw its usage in the specs.

You are right. This is yet to be implemented.
Marking this as a feature request.


Invoke-RscQuerySla has incomplete Help

When running
Get-Help Invoke-RscQuerySla -full it is missing help text. There is no SYNOPSIS, DESCRIPTION, or EXAMPLES.

Scrubbing old issues ... I believe this is resolved, please re-open if not.


jsx_to_term:parse_config/2: Honor return_maps option value

Previously, no matter what the caller specified in options, return_maps was always set to true. The only solution was to not specify return_maps at all.
Unfortunately, if the caller is using a wrapper which sets default options, including return_maps, it's impossible to override it. This prevented the caller from requesting this mode if he was interested in preserving the order of keys.
While here, add a testcase for this.

@talentdeficit sorry, any chance you can take a look at this PR? It would help the RabbitMQ team out as we wouldn't have to depend on a fork.

hey sorry, i misread this pr the first time i looked at it. merged now and i'll increment the version right now

fix is available in 2.8.3


[Tabs] No pagination when the list of tab labels exceeds the width of the header

Bug, feature request, or proposal:
Bug
What is the expected behavior?
The documentation says the following:

When the list of tab labels exceeds the width of the header,
pagination controls appear to let the user scroll left and right across the labels.

What is the current behavior?
If use tab-like UI for navigating between routes <nav mat-tab-nav-bar>, no pagination, when the list of tab labels exceeds the width of the header:

What are the steps to reproduce?
https://stackblitz.com/github/MyTempGitForCommunity/Angular6NavTabsNoPagination?file=src%2Fapp%2Fapp.component.html
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular: 6.0.3
Material: 6.2.1
macOS: 10.13.5
TypeScript: ~2.7.2
Tested in: Chrome, Firefox, Safari

Duplicate of https://github.com/angular/material2/issues/2177


SEO/Twitter Optimisation

Check the Open Graph tab in Vercel and act on it accordingly, adding missing fields in index.html. Most (if not all) metadata should be static so this should be a very simple ticket to complete.
After deployment, check the same tab on Vercel again, and try sharing links on social media and watch for the thumbnail.

Add a proper image. Maybe a static snapshot?

To test again following the next deployment

FB thumbnail does not work either but has been fixed. As for Twitter, we can ignore it and just close this ticket. We have more import things to focus on.
Lets move the Instagram icon to the main screen for this small update (0.6.1) and release it.

It might actually be crawlable by Twitter, just not loading the preview. It also works on Microsoft Teams. I might need to force Facebook to scrape it again


koord-descheduler: fix migration controller max unavailable computing algorigthm

Ⅰ. Describe what this PR does

Ⅱ. Does this pull request fix one issue?
fixes #2195

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

/hold

/unhold

/lgtm
/approve


How to use the generated onnx model to output the corresponding mask for each input check box？

When I enter multiple checkboxes in the format specified by the onnx model, I always return the mask of one checkbox. What should I do to get the mask corresponding to each check box?

Hi @starytosky , did you resolve this issue? I face the same problem.


download  pretrain model issue

Hi, Zhongdao,
   I can not  download pretrain model from model zoo links,:https://github.com/Zhongdao/UniTrack/blob/54347ba1bdba0903b241e00de2b5d0dc3c1a3d14/docs/MODELZOO.md

(ImageNet classification Imagenet 50 & SimCLR v2 )

Hi @CarlHuangNuc,
For the ImageNet pre-trained weights, please just use the default torchvision version. It will be automatically downloaded when you use it.
For the SimCLR weights, sorry for missing them. I just uploaded SimCLR v1 and v2, please have a look.


How do you disable the View on GitHub button?

How do you disable the view on github button for your github page. Putting github:
is_project_page: false in _config.yml doesn't work. Please help!!

This is my code in _config.yml:
github:
is_project_page: false
theme: jekyll-theme-cayman
The button is still there.

Nvm, i just had to update some minor things.

How do I remove View on GitHub button? And how do I remove in footer miakurt is maintained by miakurt.
This page was generated by GitHub Pages.
And how do I publish my page? Thank you.

Nvm, i just had to update some minor things.

What did you have to update @BOLTZZ ??

@KraigWastlund This was a year and a half ago, I don't remember what I did. Try searching the online forums or github forums?

Also, I'm not sure if what I did works anymore, as I was viewed my Github Pages site and it still has the mark.


Create a table of protein sequence features and coordinates

Create a table of protein sequence features and coordinates that can be toggled on and off.
Longer term we might make this table  exportable, but at least this way people can copy paste

I started implementing this but it looks a bit naff so for now it's only available on dev.pombase.org.
There's now a "Show as table" toggle button here:
https://dev.pombase.org/gene_protein_features/SPAC23C4.18c

@Antonialock suggestion
2. when clicking on a "category" (row) in the graphic I'd expect to be presented with a table listing all features of that type for the gene of interest, showing e.g. residues, and source of the information


Version issues with PyInstaller

I'm experimenting with using PyInstaller with Sanic, and I'm getting this strange error.
pkg_resources.DistributionNotFound: The 'html5tagger>=1.2.1' distribution was not found and is required by tracerite
[22687] Failed to execute script 'main' due to unhandled exception!

It's strange because I've installed html5tagger==1.3.0
% pip freeze | grep html5tagger
html5tagger==1.3.0

It's also strange because html5tagger is being picked up by pyinstaller
1123 INFO: Packages required by sanic:
['sanic_routing', 'httptools', 'aiofiles', 'websockets', 'multidict', 'html5tagger', 'tracerite', 'uvloop']
1224 INFO: Packages required by tracerite:
['html5tagger']

I noticed that the __version__ appears to be hard coded in this project (despite the PyPI version being 1.3.0):
__version__ = "1.2.0"

Ref: https://github.com/sanic-org/html5tagger/blob/main/html5tagger/init.py#L4
and that differs from something like, tracerite, where it's using pkg_resources:
import pkg_resources

__version__ = pkg_resources.require(__name__)[0].version

Ref: https://github.com/sanic-org/tracerite/blob/main/tracerite/init.py#L8
I don't know enough about packaging to say that for sure, but perhaps that's an issue in this situation?

I did ultimately figure this out with PyInstaller by including a collect_all call for html5tagger (amongst other Sanic packages)
The final Pyinstaller config for my sample was this:
The project has a fairly standard setup of sanic sqlalchemy / alembic and click
# -*- mode: python ; coding: utf-8 -*-
from PyInstaller.utils.hooks import collect_all

name = 'sanic_playground'

datas = [
    ('log_config.json', '.'),
    ('alembic.ini', '.'),
    ('migrations', 'migrations')
]

binaries = []
hiddenimports = [
    'asyncpg'
]

# Ensure that all sanic dependencies are collected
for pkg_name in ['asyncpg', 'html5tagger', 'sanic', 'sanic_ext', 'sqlalchemy', 'tracerite']:
    pkg_collect = collect_all(pkg_name)
    datas += pkg_collect[0]
    binaries += pkg_collect[1]
    hiddenimports += pkg_collect[2]

# -------------------------------
# DEFAULT GENERATED CONTENT BELOW
# -------------------------------

block_cipher = None

a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=binaries,
    datas=datas,
    hiddenimports=hiddenimports,
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name=name,
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)

Good to know. Let us know if you find out it needs any changes to Sanic packages to make it more fluent.


Criteria for versioning

On the MIXS-RDF call today, questions about versioning came up.
If we adopt semantic versioning (i.e. Major.Minor.Patch), we need to have clear criteria on when each number is updated.
So, starting this issue for a place to discuss this.
cc @lschriml @ramonawalls @only1chunts @turbomam @cmungall

Some notes from the 2021-11-22 regarding major/minor versions:
What is a major and minor version
Major: breaks backward compatibility (i.e., MIxS 5 and 6 were major)

Breaking compatibility:
Changes in definitions?
Removal of terms?
Merging of terms?

Minor release:

Addition a new package or checklist
New terms
Not only INSDC want annual releases - others align with INSDC
We should separate the semantic versioning from the annual release.

I think there are advantages to a simple system where the major number increments every year or so
I would like to see formal versioning of pre-release aretfacts, e.g we should be working on 7.0.0-alpha now

@only1chunts You raise good points. I suppose the answer comes down to what we want out of having a versioning system.

When incrementing the version number, do we care to communicate the new version is not compatible with the previous version?
Do new versions necessary contain new terms/packages? Suppose that a version only contains a bunch of typo fixes found version 7. Do you want to release this as version 8?
If we adopt incremental releases as packages are released (e.g. 6.1, 6.2, etc.), when do we decide to increment the major number and what does that major number mean? For example, suppose for version 6 that we add 5 packages during the year, resulting in version 6.5 by year's end. Do we make a release 7.0 that is the same as 6.5? If so, how do we communicate to the community that 6.5 is that same as 7.0?

I think changes to wording that don't affect meaning would be appropriate for incrementing the patch number (e.g., 7.0.0 -> fix some minor typo -> 7.0.1).
Anyway, sorry to only raise questions here. We can, of course, stick with current practice of just making new releases after some threshold of changes have been made during the year. The benefit of creating rules/criteria for versioning may not be worth the effort. But, perhaps, we should at least pause and think about it for a moment?

I think a major release involves changes to the core, and that we should stick with the practice of making major releases approximately once a year. I like Bill's suggestion that changes like fixing a typo would be a patch number (e.g., 6.0.1).
Throughout the year, we can allow the addition of new packages and checklists, and those would be minor release. If the new package/checklist requires a change to core or a change to a term that is shared across many packages, that change will have to wait until the next major release, but new package/checklist specific terms could be added to a minor release.
Following Bill's example, if we have add five new packages between version 6 and 7, to end the year with 6.5, we would then release 7.0, but it would not be the same as 6.5, because their would be changes to the core terms and to any terms that are shared across multiple packages. Based on past experience, it is very unlikely that we would get through a year without changing the core. If, perchance, we did, then our annual release would just be 6.5.
Another complication is that people want to be able to mint new terms throughout the year, which may be part of core.  I suggest we can give those terms identifiers and publish them in the editor's (non-stable) version of MIxS, but that they would not be officially released until the major release. With github, we could keep our (as yet non-existant) validators up to date in the repo if someone wants to use them provisionally, but the "official" validator would be part of the tagged release that comes out each year. For this to work, we probably need to validate packages/checklists separately from core, which makes sense to me anyway.

This sounds reasonable to me.

We need to resolve what we mean by "core" (issue #77) before we can define this exactly.
Regardless, adding a new term is a minor release. Changing a term is considered breaking and has to happen in a major release. Typos and similar will be a patch.

This issue is being covered in this document: https://github.com/GenomicsStandardsConsortium/mixs/blob/606-mixs-editing-workflow-and-policy/src/docs/policy.md and issue #606 . Closing.


stop the player on app exit, fixes #56

Just a quick one-liner.
@alexa-pi/coreteam Please have a look, there should be no issues here. Thank you.

Good fix!
I can break it during "News Flash" without the fix, and can't with it.
Ready to merge.

I can break it during "News Flash" without the fix, and can't with it.

Just to be sure, by break it you mean break the app, right? So this fixes it.

Haha yeah sorry.
A little ambiguous there.
I could break AlexaPi before by typing "Ctrl-C" when the News Briefing was playing.  Got stuck, wouldn't exit.
I changed this line, and now "Ctrl-C" exits the app cleanly instead.
So this fixes it.

Great, thanks :-) Merging then.


stops for RSPs not changing colors

L, MTA: r-dr5r-l

This is occurring where there are two stops at each location (one for each direction). This could be fixed by using a station instead. If this isn't possible, move the stop layer for an 'active' stop to the top.


update tests on master for review; will expand if :+1:

@jmccann ... for review and conversation. I'll go into slave.rb too if this makes sense.
chef -v
Chef Development Kit Version: 0.14.25
chef-client version: 12.10.24
berks version: 4.3.3
kitchen version: 1.8.0

rspec
[2016-06-03T18:04:32+00:00] WARN: Chef::Provider::AptRepository already exists!  Cannot create deprecation class for LWRP provider apt_repository from cookbook apt
[2016-06-03T18:04:32+00:00] WARN: AptRepository already exists!  Deprecation class overwrites Custom resource apt_repository from cookbook apt
...................

Finished in 8.54 seconds (files took 2.43 seconds to load)
19 examples, 0 failures

ChefSpec Coverage report generated...

  Total Resources:   8
  Touched Resources: 8
  Touch Coverage:    100.0%

You are awesome and so is your test coverage! Have a fantastic day!

This is stale (my fault) and has conflicts now.  Going to just close it.


Exception while using Testcontainers to run tests in a container

Running tests using Testcontainers from within a container results in exceptions being thrown. The same tests pass when run locally (i.e. not in a container).
The following is a typical stack trace of the exceptions thrown:
System.TypeInitializationException : The type initializer for 'DotNet.Testcontainers.Configurations.TestcontainersSettings' threw an exception.
---- System.InvalidOperationException : Sequence contains no elements
  Stack Trace:
     at DotNet.Testcontainers.Configurations.TestcontainersSettings.get_OS()
...

Is additional config required to run Testcontainers within a container? Or is this a bug?
To Reproduce
Steps to reproduce the behavior:

Set up an xUnit project containing a single test class, using the PostgreSqlTest test class shown on the main README for testcontainers-dotnet, using the following nuget packages:

Testcontainers 2.1.0
Npgsql 6.0,.6
xUnit 2.4.2

Add a Dockerfile to build and run the tests (using mcr.microsoft.com/dotnet/sdk:6.0).
Build & run the test project in a container.

Screenshots
[xUnit.net 00:00:00.71]     Tests.PostgreSqlTest.ExecuteCommand [FAIL]
  Failed Tests.PostgreSqlTest.ExecuteCommand [1 ms]
  Error Message:
   System.TypeInitializationException : The type initializer for 'DotNet.Testcontainers.Configurations.TestcontainersSettings' threw an exception.
---- System.InvalidOperationException : Sequence contains no elements
  Stack Trace:
     at DotNet.Testcontainers.Configurations.TestcontainersSettings.get_OS()
   at Tests.PostgreSqlTest..ctor() in /Tests/PostgreSqlTest.cs:line 15
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean wrapExceptions)
----- Inner Stack Trace -----
   at System.Linq.ParallelEnumerable.GetOneWithPossibleDefault[TSource](QueryOperator`1 queryOp, Boolean throwIfTwo, Boolean defaultIfEmpty)
   at System.Linq.ParallelEnumerable.First[TSource](ParallelQuery`1 source)
   at DotNet.Testcontainers.Configurations.TestcontainersSettings..cctor()

Expected behavior
The test should pass.
Desktop (please complete the following information):

Running on Windows 10 (Build 19044.1865).
Docker Desktop For Windows 4.11.0 (83626). Using linux containers & WSL2.
.Net SDK 6.0.302

Testcontainers cannot find the Docker endpoint, see: #528, #529, https://github.com/testcontainers/testcontainers-dotnet/discussions/543#discussioncomment-3299997.

What should DOCKER_HOST be set to for Docker running locally? host.docker.internal doesn't resolve the problem.

Is additional config required to run Testcontainers within a container? Or is this a bug?

That is not a bug. Docker is not running inside your container. Either use a different Docker host or use something like Docker in Docker (DinD).

Thanks for taking the time to help. I'm afraid it's just not working with DinD. I'll have to find something else.

I'm afraid it's just not working with DinD.

It is working. I am using it too. Here are some more information: https://github.com/testcontainers/testcontainers-dotnet/issues/492#issuecomment-1171283803.

@AndrewPearson did the comment help? Do you need any further help or can we close this issue?

@HofmeisterAn Sorry for the slow reply, I've been offline for a couple of weeks. I'm afraid the previous comment was interesting didn't help. There are lots of suggestions in the various links, but they're all fragments of a working solution and there's nothing I have seen that I can really use to learn how this is done.

No worries. The linked comment contains everything to setup an example with Docker.

I worked it out finally. Thanks for your help.

I worked it out finally. Thanks for your help.

@AndrewPearson how did you end up resolving this? getting the same error after updating the lib for my local tests

@pdevito3 My initial requirement was to get this working in a container running locally on Docker Desktop for Windows. In the end all that was required was to map my local /var/run/docker.sock  as a volume in the container.
On Windows, docker.sock is available as //var/run/docker.sock. This differs slightly from the path available on other OS's.
If you're using docker-compose then add a volume entry like the following to your service declaration:
    volumes:
      - //var/run/docker.sock:/var/run/docker.sock

If you're using docker run then map the same volumes with the -v option.
For me that was all that was required to get things working.


Tidy up training

This PR is a housecleaning chore. It resolves many errors and warnings, except for the following issues.

The lack of meta information in the abandoned trainings is annoying and obscures checking for new trainings.
The LESS, JSX, and SCSS lexers have issues, with LESS being the worst. Do we still use LESS in Volto or anywhere else? Let's burn it with 🔥!

I am also looking into how to suppress the foregoing errors and warnings, so authors don't get nagged by trainings that are not theirs.

📚 Documentation preview 📚: https://plone6--871.org.readthedocs.build/

Project created on RTD. Pull request previews should build, starting with the next new PR. Invites to be maintainers sent to:
@polyester
@sneridagh
@pbauer
@ksuess
I'll create a new PR to test.


Replacing a detect: by a detect:ifFound: to allow empty projects

(since empty projects have no branchs)

Thanks Martin :)


Peer to peer code review

you have done a great job following best practices and the instructions, however there are certain things you need to review:

The entry point should named as index.js and index.css instead of main.js and style.css
Perhaps a different approach of re-structuring your whole codebase: for example place methods to the class and use that within your code. Making your code more efficient.

if you implemented the changes, you can close the issue

Thanks Vangelis, the suggestions asked by you has been implemented, so closing this issue
https://github.com/zunairkhan811/Awesome-Books-ES6


Fixes for Python 3.12

Overwrite BYTE for older Python versions to the correct type
Adjust datatypes to ensure proper usage of BYTE.
Add check for localized font name for GDIPlus Font renderer.
Add debug message if font falls back to default font name.
Should resolve: https://github.com/pyglet/pyglet/issues/964

I think this patch is too big, and besides includes things unrelated to fixing the BYTE issue.
Restricting my comments to the BYTE issue

the change in pyglet/font/win32.py

-        self._data = (ctypes.c_byte * (4 * width * height))()
+        self._data = (BYTE * (4 * width * height))()

by itself fixes issue #954  ;  why not to do a separate commit with only this and appropriate comments closing that issue?
With this change old pythons will see the same semantic as in older pyglet, so I will wait to see if something else breaks in 3.12 with this change before doing anything else.

changes in pyglet/image/codecs/bmp.py . I would left the file as it was, except by a comment above the definition of BYTE telling that for python < 3.12 this BYTE is not the same as the one comming from ctypes, and to see issue in cpython tracker.
Rationale: The code is correct for any python version, this code is in use in any platform, not only Windows, and less change is always better.

changes in pyglet/libs/win32/types.py . I would not change this file, it pulls the rug under user code the same as ctypes change pulled the rug under pyglet, and is unclear if pyglet code would behave under this change.

pyglet/input/win32/xinput.py . The old code is correct in all python versions, why change?

pyglet/image/codecs/wic.py . I'm too tired to review this. A goal should be to not depend on a monkeypatched BYTE. Anyway, it should be a separate commit?

by itself fixes issue #954 ; why not to do a separate commit with only this and appropriate comments closing that issue?

I have separated the commit into a separate one for you.

changes in pyglet/image/codecs/bmp.py . I would left the file as it was, except by a comment above the definition of BYTE telling that for python < 3.12 this BYTE is not the same as the one comming from ctypes, and to see issue in cpython tracker.
Rationale: The code is correct for any python version, this code is in use in any platform, not only Windows, and less change is always better.

Although BMP is a Window specific format, this is true. If someone wants to decode BMP on another OS, it should be fine. I have removed this.

changes in pyglet/libs/win32/types.py . I would not change this file, it pulls the rug under user code the same as ctypes change pulled the rug under pyglet, and is unclear if pyglet code would behave under this change.

Defining BYTE in this file does not change ctypes.wintypes.BYTE.

pyglet/input/win32/xinput.py . The old code is correct in all python versions, why change?
UBYTE is not an actual type, the correct type is BYTE.

pyglet/image/codecs/wic.py . I'm too tired to review this. A goal should be to not depend on a monkeypatched BYTE. Anyway, it should be a separate commit?
WritePixels is the same issue disparity between c_byte and the required BYTES from WritePixels. I made my adjustments in a separate commit.

This PR is to accommodate 3.12 changes and changes to BYTE, not just your issue with the GDI font bitmap datatype.

changes in pyglet/libs/win32/types.py . I would not change this file, it pulls the rug under user code the same as ctypes change pulled the rug under pyglet, and is unclear if pyglet code would behave under this change.

Defining BYTE in this file does not change ctypes.wintypes.BYTE.

User code that imported BYTE by way of from pyglet.libs.win32.types import * will see a potentially breaking change in py < 3.12 (think user code writen similar to the one broken in #964 ), essentially backporting the problematic change in ctypes 3.12 to earlier pythons.
Actually, I would prefer monkeypatching ctypes.wintypes.BYTE on pyglet start-up: theres no risk of user code mixing ctypes.wintypes.BYTE and pyglet.libs.win32.types.BYTE
Okay, I have changed my mind: let the pyglet bindings using BYTE and POINTER(BYTE) be correct in all pythons, but do it by monkeypatching ctypes.wintypes.BYTE at pyglet start-up, because it ensures user code could not choose a 'wrong' BYTE
What you think of that @caffeinepills ?

changes in pyglet/libs/win32/types.py . I would not change this file, it pulls the rug under user code the same as ctypes change pulled the rug under pyglet, and is unclear if pyglet code would behave under this change.

Defining BYTE in this file does not change ctypes.wintypes.BYTE.

User code that imported BYTE by way of from pyglet.libs.win32.types import * will see a potentially breaking change in py < 3.12 (think user code writen similar to the one broken in #964 ), essentially backporting the problematic change in ctypes 3.12 to earlier pythons.

Personally, I think this is fine. If they were using it incorrectly in their own personal ctypes code (in the theoretical scenario they were using our pyglet.libs.win32.types definitions instead of ctypes.wintypes), they should probably be made aware BYTE is unsigned, not signed. We can make sure we include some disclaimer in the release notes.

Actually, I would prefer monkeypatching ctypes.wintypes.BYTE on pyglet start-up: theres no risk of user code mixing ctypes.wintypes.BYTE and pyglet.libs.win32.types.BYTE

If we monkeypatch it, then we may also affect any other library being used with pyglet. Not sure that would be appropriate.
@benmoran56 What is your opinion on this matter?

I agree with caffeinepills here.  End users shouldn't be relying on pyglet.libs.win32.types. It's undocumented, and only meant for use by pyglet internals. This would potentially affect other libraries that utilize pyglet, rather than end-user projects. A mention in the release notes should be enough I think. Something like:

libs.win32.types.BYTE is now ALWAYS a c_ubyte, as per bug fixed in Python 3.12`

I also considered patching ctypes.wintypes directly. However, we do know that many people are mixing pyglet with other libraries, so that would potentially cause more issues for end users.

Okay.
Please don't forget to backport to 1.5-maintenance, and do a release.
Thanks!


Laravel 11.x Compatibility

This is an automated pull request from Shift to update your package code and dependencies to be compatible with Laravel 11.x.
Before merging, you need to:

Checkout the l11-compatibility branch
Review all comments for additional changes
Thoroughly test your package

If you do find an issue, please report it by commenting on this PR to help improve future automation.

:warning: Shift detected GitHub Actions which run jobs using a version matrix. Shift attempted to update your configuration for Laravel 11. However, you should review these changes to ensure the desired combination of versions are built for your package.

:alembic: Using this package? If you would like to help test these changes or believe them to be compatible, you may update your project to reference this branch.
To do so, temporarily add Shift's fork to the repositories property of your composer.json:
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/laravel-shift/laravel-mail-preview.git"
        }
    ]
}

Then update your dependency constraint to reference this branch:
{
    "require": {
        "spatie/laravel-mail-preview": "dev-l11-compatibility",
    }
}

Finally, run: composer update


Add Body::set_beacon method

Body::set_beacon attaches the beacon value to the body. The value will be drop when the whole body is successfully written to the socket (but before flush the socket) or when the body ends
with an error.
It useful for collecting metrics or logs for the request/response cycle. Currently, if some instrumentation wants to know the exact time when a response body writing is finished it needs to wrap existing Payload into another Payload. But it loses the __hyper_full_data optimization and hard to implement for high-level libraries such as https://github.com/seanmonstar/warp.

Oh woops, I missed the initial opening, sorry!
I think this can be largely accomplished by either a) implementing Payload for a custom type, or b) use a custom Stream and Body::wrap_stream.

@seanmonstar
I've created RFC with the more generic solution
https://github.com/hyperium/http/issues/241


correct metrics with scheme

Can one of the admins verify this patch?

"ok to test" to accept this pull request for testing
"test this please" for a one time test run
"add to whitelist" to add the author to the whitelist

This PR depends on https://github.com/blueboxgroup/ursula-monitoring/pull/123

for ceph metrics:

already add prefix as  {{ monitoring.graphite.host_prefix }}.ceph
it's a cluster metrics, but it's existed on all 3 cpm nodes, and all active. should we let it run only on cpm1 and use cluster prefix? or still let it run on 3 cpm nodes with host prefix?

ok to test

retest

retest


[UUX] Improve BPN-EDC configuration screen

Hints / Details

R24.05 UUX feedback:
-- blocking --
Admin View – BPN-EDC Konfiguration
Search option unclear. Search is on the top but actually searching in the section on the bottom. It would be much better to take out the "Add function" from the screen. Go via an "Add Connector" button and work with overlays or half screens .

Either make the search functionality clear or rework the screen with overlays/half screens.
Second option needs a concept.
--> move search bar to bottom above the configuration and hide it if no configs are available

-- blocking --
Admin View – BPN-EDC Konfiguration
In the View “New Entries” can edit URL and click on save changes – but there original entry is shown and will be acknowledged
proposal : make fields in “new entries” read only, then user has to click remove and retype in the configuration fields

Fix "Save changes" functionality or make table read-only.
--> make fields in new entries read-only

-- blocking --
Admin View – BPN-EDC Konfiguration
Window shows “deleted” , “added” and “changed” prior to “save changes” OPTION
However there is no option to edit / change – is there? If not, please remove.

--> There is, and the indicators do work:

Acceptance Criteria

[ ] Fix search
[ ] Fix "Save changes" process
[ ] Remove unused "Deleted", "Added", "Changed" indicators
[ ] (alternatively) Create concept for new BPN-EDC configuration process as a whole.

Tested on E2E: LGTM
Ready for review

Feedback from Julia: Remove indicators completely.

Tested on E2E: LGTM - indicators removed
Ready for review

LGFM PO acceptance in behalf of @jzbmw.

@jjeroch according to the feedback in https://github.com/eclipse-tractusx/sig-release/issues/611#issuecomment-2134488182:

ITEM 9 – blocking - no change for user. Still there is no option to edit/change and hence the Icon and Counter do not make sense to the user.

we have removed the indicators for the BPN-EDC configuration. It looks like this now:


Multiple OptionSet with the name contains value ";" cannot select in the UI

If the OptionSet name contain value ; then you cannot select this value in the UI

@phuocle Is there something in the documentation that you need clarification on, or some information added? If so, please provide us the doc link.
If you are calling out a bug in the product, please contact Support.

@phuocle No response. Closing this issue.


contribution for TwillioQuest

Checklist

[ ] I ran npm test locally and it passed without errors.

[x] I only edited the _data/pixels.json file.

[x] I entered the username in the pixels.json that I'm also using to create this pull request.
[x] I acknowledge that all my contributions will be made under the project's license.

noob here trying to play through twillioquest


Replace Jest with uvu

For testing, this project uses Jest now. But it is slow and heavy, so it would be the best to remove jest completely and use Uvu

Replaced with vitest in #30


archive this project

Is this project active? Can we archive this project? By archiving, previously release assets will be untouched, but support will cease for this project going forward. If anyone has any reasons this project should not be archived, please comment by March 1st.

As discussed in email. Will archive this public project, and can be forked and continued to be maintained internally as desired.


MOB-17628/Variant-acp-tab-removal [REVIEW]

Description
Variant ACP tab removal
Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Hey @hbhandal80! We also need to remove the tabs from within the  blocks themselves. Could you do that as well? Then we can go forth with merging this in. If you need help with that, let me know!
Thanks!

Oh! Sorry, didn't realize you did them as two different PRs. I'll review the content of the other one first and double check.


Permission Management for Role

Added Enabled  parameter to PermissionDto
Added an optional parameter to GetPermissionsAsync to retrieve all permissions, or only from the role

After the https://github.com/fullstackhero/dotnet-webapi-boilerplate/pull/376 PR being accepted, change the way to get the permissions

@iammukeshm @fretje Make new commit with the changes, can you review them please?

Ow and can you also check/clean out the roleclaimsservice... there's probably some methods there now that are nowhere used anymore...

@fretje  Probably delete the roleClaimService , no?

Well, I think there's still the "HasPermissionAsync" with userid and permission... but that sounds like it should be a part of userservice...

Ow and can you also check/clean out the roleclaimsservice... there's probably some methods there now that are nowhere used anymore...

As RoleClaimsService still has a couple of methods, maybe is better create an issue only for that.
Check #385

RoleManagerExtensions can then be deleted I suppose...


[Hub Generated] Review request for Microsoft.SaaS to add version preview/2018-03-01-beta

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
ARM API Information (Control Plane)
Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo.  If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.
Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[x] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.

Contribution checklist (MS Employees Only):

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.

[ ] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Additional details on the process and office hours are on the Breaking Change Wiki.
NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)
Please follow the link to find more details on PR review process.

patch response on path "/providers/Microsoft.SaaS/saasresources/{resourceId} not returning 204 on published code. this  change not break api and reflects real behaviour

put response on path /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SaaS/resources/{resourceName} not returning 204 on published code. this  change not break api and reflects real behaviour

patch response on path /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SaaS/resources/{resourceName}
not returning 204 on published code. this  change not break api and reflects real behaviour

/azp run

@JeffreyRichter Would you mind if you could review this breaking change? Thanks.

First, Azure never uses a -beta suffix for api-version. The ONLY suffix we ever use is -preview.
Second, why are the 204 response codes being removed from 3 operations?
If you want us to approve a breaking change, you must justify the break. Not just ask us to review it as we can't magically know why the break is being introduced.

@JeffreyRichter
No customers affected by this change, this change reflects real service behaviour

patch response on path "/providers/Microsoft.SaaS/saasresources/{resourceId} not returning 204 on published code. this
change not break api and reflects real behaviour

put response on path /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SaaS/resources/{resourceName} not returning 204 on published code. this change not break api and reflects real behaviour

patch response on path /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SaaS/resources/{resourceName}
not returning 204 on published code. this change not break api and reflects real behaviour


Multiple EXPLODEs

Allow multiple explosions in a single EXPLODE statement.
Some possible syntaxes:

EXPLODE json->i_am_an_array[]->i_am_an_object->i_am_another_array[]
EXPLODE json->i_am_an_array, json->i_am_an_array->i_am_an_object->i_am_another_array

The 2nd is easier to parse and allows for explosions in different braches, but it is more verbose.
The 2nd is also explicit about the order of explosions.

Consider using JMESPath


BUG: pthread_mutex_lock on destroy

https://github.com/Feh/nocache/blob/2b6ea1f6b46dabd08db6c6b8be78874b90ecfd22/nocache.c#L207
May be unlock ? ))

No… you have to lock the mutexes so that you can guarantee no-one else is depending on them and the protected data being there, before freeing them…?

In general, the entire destroy() function is useless, except for two free()

destroy() and its attempt to clean up would be “useless” if the following conditions were true:

Any FD that gets opened gets closed before program exit
Any FD handling that the binary does go through libc syscall wrappers that nocache intercepts

For most even slightly more complicated programs, these conditions don’t generally hold.
You can see the reasoning in the original commit that introduced it: https://github.com/Feh/nocache/commit/d355dafdae2d382bf4af60252e53174718d73698
If you are worried about the constant overhead the destroy() function introduces, feel free to add some getenv() type call in there to optionally skip cleanup steps.


Integer Tag Update 2

Part 2/2. Unsure about what group the tag or_else fits into.

Eh, I'll pull this and fix the flaws meself. Thanks!


Search fails

I've set up the workflow with a kp database, which is protected by a master password.
Unfortunately the debug output shows the following for any search.
KeepassXC Alfred[Script Filter] Queuing argument 'test'
KeepassXC Alfred[Script Filter] Script with argv 'test' finished
KeepassXC Alfred[Script Filter] {"items": [{"valid": false, "title": "There aren't matches or something went wrong."}]}

I've attached a test database, which is protected by the master password test
test.kdbx.zip

Uh, I should have made a more detailed report about some errors to Alfred's debug console.
@IOIO72 Thank you for the database. I've opened it with no problem and I could search with the workflow.
The message "There aren't matches or something went wrong." tells us there is some problem with the command /usr/local/bin/keepassxc-cli locate -q <PATH TO KEEPASSXC DATABASE> test. The example:  /usr/local/bin/keepassxc-cli locate -q Downloads/test.kdbx test. After this command you will be asked to enter the master password and if it is valid then the result will be displayed. In your case it's the /Test entry.
Please try to run this command on your system. If there are no problems, perform the following steps:

remove the workflow from Alfred;
download and install the new one - keepassxc.alfredworkflow.zip. I've added the more detailed output;
complete the workflow's initialization;
try to search something in your database again and show a new output from Alfred's debug console.

Thank you for the fast response, @lxbrvr  ,
The command line works without any problem.
I still have issues with the Alfred workflow.
Here's the debug output:
[21:29:37.855] KeepassXC Alfred[Script Filter] Queuing argument 'Google'
[21:29:38.132] KeepassXC Alfred[Script Filter] Script with argv 'Google' finished
[21:29:38.152] STDERR: KeepassXC Alfred[Script Filter] Traceback (most recent call last):
  File "cli.py", line 45, in main
    parsed_args.handler(parsed_args)
  File "/Users/tamio/Dropbox/Einstellungen/Alfred/Alfred.alfredpreferences/workflows/user.workflow.3AE8EACA-78CE-46E6-BD17-BFCEC045376E/handlers.py", line 44, in wrapper
    return func(*args, **kw)
  File "/Users/tamio/Dropbox/Einstellungen/Alfred/Alfred.alfredpreferences/workflows/user.workflow.3AE8EACA-78CE-46E6-BD17-BFCEC045376E/handlers.py", line 23, in wrapper
    return func(*args, **kw)
  File "/Users/tamio/Dropbox/Einstellungen/Alfred/Alfred.alfredpreferences/workflows/user.workflow.3AE8EACA-78CE-46E6-BD17-BFCEC045376E/handlers.py", line 77, in search_handler
    kp_entries = kp_client.locate(parsed_args.query)
  File "/Users/tamio/Dropbox/Einstellungen/Alfred/Alfred.alfredpreferences/workflows/user.workflow.3AE8EACA-78CE-46E6-BD17-BFCEC045376E/services.py", line 120, in locate
    output = self._run_command(command)
  File "/Users/tamio/Dropbox/Einstellungen/Alfred/Alfred.alfredpreferences/workflows/user.workflow.3AE8EACA-78CE-46E6-BD17-BFCEC045376E/services.py", line 89, in _run_command
    process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
[21:29:38.155] KeepassXC Alfred[Script Filter] {"items": [{"valid": false, "title": "There aren't matches or something went wrong."}]}

This is my KeepassXC version:
KeePassXC - Version 2.6.6
Revision: 386b79a

Qt 5.15.2
Diagnosemodus ist deaktiviert.

Betriebssystem: macOS 12.0
CPU-Architektur: x86_64
Kernel: darwin 21.1.0

Aktivierte Erweiterungen:
- Auto-Type
- Browser-Integration
- SSH-Agent
- KeeShare (bestätigtes und unbestätigtes Teilen)
- YubiKey
- TouchID

Kryptographische Bibliotheken:
- libgcrypt 1.9.3

My keepass-cli path is the following:
/Applications/KeePassXC.app/Contents/MacOS/keepassxc-cli

@lxbrvr I've changed the path in the workflow settings to /Applications/KeePassXC.app/Contents/MacOS/keepassxc-cli and now it works.
Maybe the initialisation script should be aware of this location?

BTW. Your workflow is fantastic. 🎉  Thanks a lot for your investment! 🥇

I've changed the path in the workflow settings to /Applications/KeePassXC.app/Contents/MacOS/keepassxc-cli and now it works.

I'm glad you were able to make it work!

Maybe the initialisation script should be aware of this location?

Great idea! Yes, it can be implemented in different ways. I will definitely think about it.

BTW. Your workflow is fantastic. 🎉 Thanks a lot for your investment!

Thanks a lot for your feedback!


Two letters removed that are not in Slovene alpahbet

I have removed letters ć and đ from layout because they are not part of Slovene alphabet and they take up a lot of horizontal space. These letters are from Croatian/Bosnian/Serbian(cyrilic) alphabets.

Hi @mihapiha  and thank you for your contribution!
Sadly I can only review, merge and release as soon as in two to three weeks, I hope it is OK for you to wait until then. Sorry for that!

No problem 😃

Sorry for the long wait. Thank you very much for your contribution! I merge this now here and release as soon as possible!


Fix DateTimePickerPanelType enum backward compatibility

What does the pull request do?

The value (int) change of DateTimePickerPanelType.TimePeriod breaks backward compatibility. This PR brings it back.
What is the current behavior?

What is the updated/expected behavior with this PR?

How was the solution implemented (if it's not obvious)?

Checklist

[ ] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/avalonia-docs with user documentation

Breaking changes

Well it breaks the breaking change.
Obsoletions / Deprecations

Fixed issues

@MrJul please help to review~

For context: added in #17398
Didn't get caught by the API validation diff.


Added new Parser.DateTimeFormat, HMSno0

I added a new date/time format to deal with the fact that the Cradlepoint protocol provides time with no leading zeros.  I didn't like having the special case in the protocol decoder.
Even though there is only one case that does this, no doubt another protocol may do the same thing in the future and it is best to have all the date/time logic in one place so the protocol decoders can look similar.

I don't think we need this. It's basically a workaround for poorly designed protocol.


Bring config module idea from f/dMRIPrep

And have a config section for IQMs, so that we can implement #178 more easily.

Related to #300

Related to #377


Github revision count

Pretty silly, but what about something like...

...and a license badge that pulls the license from GitHub?
Edit: as per @waldyrious comment, let's make this just the revision count request then.

At this point, we have badges for latest release number and commits since latest release. It's not completely clear to me what's being asked for here, and whether it's the same as one of those things or not.
I'd ask that, if anyone who participated here would like to revive this request, please do so by opening a new issue. 😄


Add search support on backend

Supports case-insensitive search by keywords (extracted by splitting by spaces).
Approach considered by not viable:

Store "title words" in database and search using query = query.Where("title", "array-contains", titleParam)
Firestore/Firebase does not support this as it is essential array-contains-all keywords in array titleParam
Cannot chain query array-contains each keyword, since Firebase also does not allow this
Similar to self-implementation of array-contains-all when filtering by "categories"
Since we still need to self-implement, it defeats the purpose of storing title words in firebase
Can just parse and get the keywords whenever we search for title

Approach adopted:

Self-implement "title words" array-contains-all "search keywords"

TODO:

implement trie for faster title search

I tested locally and realised that the function works well for example lowercase words "reverse" or "a" or "string" is typed. Perhaps can look into this sample code and improve on it? It's a bit slow but more towards prefix search where like for example "rev" typed or "str" typed then "Reverse a String" would appear:

 // Split the title into words and store them in a slice.
 titleWords := strings.Fields(strings.ToLower(strings.TrimSpace(title)))

 // Iterate through each keyword.
 for _, keyword := range keywords {
  keyword = strings.ToLower(strings.TrimSpace(keyword)) // Normalize the keyword.
  matched := false
  // Check if the keyword is a prefix of any word in the title.
  for _, titleWord := range titleWords {
   if strings.HasPrefix(titleWord, keyword) {
    matched = true
    break
   }
  }
  // If the keyword is not a prefix of any title word, return false.
  if !matched {
   return false
  }
 }
 return true
}

Also, I think with the new implementation, it breaks the pagination's totalCount function/value. Previously on launch of the page we get totalCount: 20 but running it locally without any search params it returns 10. Double-check this on your end?

I tested locally and realised that the function works well for example lowercase words "reverse" or "a" or "string" is typed. Perhaps can look into this sample code and improve on it? It's a bit slow but more towards prefix search where like for example "rev" typed or "str" typed then "Reverse a String" would appear:

 // Split the title into words and store them in a slice.
 titleWords := strings.Fields(strings.ToLower(strings.TrimSpace(title)))

 // Iterate through each keyword.
 for _, keyword := range keywords {
  keyword = strings.ToLower(strings.TrimSpace(keyword)) // Normalize the keyword.
  matched := false
  // Check if the keyword is a prefix of any word in the title.
  for _, titleWord := range titleWords {
   if strings.HasPrefix(titleWord, keyword) {
    matched = true
    break
   }
  }
  // If the keyword is not a prefix of any title word, return false.
  if !matched {
   return false
  }
 }
 return true
}

Also, I think with the new implementation, it breaks the pagination's totalCount function/value. Previously on launch of the page we get totalCount: 20 but running it locally without any search params it returns 10. Double-check this on your end?

I think implementing a Trie will make the title search faster, but I'll leave it as a TODO for now.


Added support for multiple codes executed in a row

Description:
Apparently, a certain switch I wanted to use with the raspberry pi rf switch component turned out to need not only one, but four individual codes transmitted in sequence for the switch to turn on or off. Since I noticed there is no support for that yet in the current rpi_rf.py implementation, I decided to add it. I also made changes in the docs to explain how to use multiple codes being sequentially executed.
Unfortunately, for performance reasons I had to remove the logger entry for the check if the codes could be transmitted, but since when logging the rpi_rf in debug shows codes that are being transmitted anyways, I don't think this would really be necessary, since it is still easily possible to see if the codes have been transmitted or not.
An additional benefit to this is that there is now the option of turning on / off multiple devices at once, since individual codes of devices can be chained.
Commits:
now codes can be specified either by simply providing a single code, which will then be sent like usual, or multiple codes can be executed in a row, specified in a comma delimited format in the configuration.yaml. For example: 111111,222222,333333,444444 would mean 111111 would be sent first, followed by 222222 and 333333 and 444444.
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#2018
Example entry for configuration.yaml (if applicable):
switch:
   platform: rpi_rf
   gpio: 17
   switches:
      living_room_light:
        protocol: 5
        code_on: 654321,565874,233555,149874
        code_off: 654320,565873,233554,149873
        signal_repetitions: 15

Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New dependencies have been added to the REQUIREMENTS variable (example).
[x] New dependencies are only imported inside functions that use them (example).
[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

Hi @martinfrancois,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

@martinfrancois Any updates on this PR?

Actually @n8henrie too :)

For me it looks good as is, I implemented the feedback from @n8henrie. I don't know why the coverage decreased by -0.3% however?

Sorry, busy non-tech career, a 1 year old, and a very rural location with horrible internet.
Did you add any tests? If not, I assume coverage decreased because the total code length increased without any increase in tests. Maybe not, I'm no expert.
Also, sorry I didn't think of this before, but what advantage does this provide over using a group? If there's not a concrete advantage, it may additional complexity without any additional functionality -- I'm currently running a fork based off this PR, comparing a single rpi-rf switch that has 2 device codes (the functionality added in this PR), and a group that has the same 2 individual switches (pre-existing functionality), the two seem to work identically. Well, not identically -- for me there is perhaps a tenth of a second greater lag using a group, which in all likelihood may increase the chances of the codes going through reliably.
Also, I've made a fork of your PR and made some tweaks that preserve the return code and eliminate the unnecessary conditional. I'm not sure why you had problems this way, it's working identically to me. I'll send you a PR so you can check it out.
Anyway, have you tried just using a group? If not, maybe give it a shot -- it may render this PR unnecessary, works fine for me.

Coverage report is bogus - only rpi_rf.py has changed and it is excluded from tests.

@n8henrie using a group would be very uncomfortable, as I would need to click on 3 different switches just to activate one switch. I think you must've forgotten about the main reason for these changes: one of the switch types I own needs 3 consecutive codes just to switch on or off 1 switch.
I'll have a look at your PR, but I think it will most likely not work, as I already tried first to implement it preserving the return type and without the "unnecessary conditional" (see my comments) and it didn't work. I think maybe you don't own a switch which needs multiple codes executed in a sequence then?
@andrey-git thanks for telling me!

@martinfrancois have you tried putting them in a group? It sounds like we're talking about different things -- you only have to toggle one switch to activate every device in the group, that's the point of the group. While I only tried with 2, it seems to toggle the devices one right after the other just like your code did, I would imagine it would do the same with 3 or 4. Although I do see how it would be inconvenient to have to add each code to your configuration as a different switch with this setup.
What kind of switch is this? That's definitely an interesting predicament, I'd like to check these switches out. I wonder why they designed them that way.

Coverage can be ignored as this file is ignored in coveragerc.

@n8henrie Actually I tried yes, but this looks quite bad for one since it seems like there are 4 individual switches but in reality there aren't, and it uses up quite a lot of space. Also, it didn't work. I think the codes are not executed quickly enough.
Regarding the switch, it was a very cheap set of 5 I purchased about 4-5 years ago in a discount store. I was wondering too, especially because it was so cheap I wouldn't have expected it to be that sophisticated.
The switch brand and model number is "Silvercrest 91210" you might do a search on this and notice a lot of users looking for a solution to use them, because of the rolling codes. I think what might be the most interesting resource considering this would be the following implementation of switching these in the pimatic project: https://github.com/pimatic/pimatic/issues/386
Considering the pull request @n8henrie proposed, as I wrote there I tried it with my switch and it didn't switch on or off. I guess it's due to the same issues I've faced and the state of this solution is the only one that has worked so far.

Since this one has been merged - maybe it would make sense to merge this one too?
https://github.com/home-assistant/home-assistant.github.io/pull/2018

Done, thanks again :)


Transform method doesn't exist on useCollectionData on latest

On the documentation it says in the options param for useCollectionData I should be able to provide a transform function. But on the latest version 2.2, TypeScript warns me that it doesn't exist and it doesn't do anything.
Has this definitely been added properly? I really need to use this.
Thanks

@olivertuck this has been as part of https://github.com/CSFrequency/react-firebase-hooks/releases/tag/v3.0.1 which has now been released to NPM


revisit monitoring rbac post alpha

need to more carefully consider the ramifications of these changes: https://github.com/rancher/rancher/pull/16904/files
https://github.com/rancher/rancher/pull/16952/files

this is done


DAW crashes whenever 2 instances of Spectral Comp are open

Describe the bug
Whenever I have 2 instances of Spectral Compressor, my DAW crashes
To Reproduce
Steps to reproduce the behavior:

Open an instance of spectral compressor in an fx chain
Open up another instance while the other instance is still open

Expected behavior
It's not supposed to crash my daw?
Screenshots
https://github.com/robbert-vdh/nih-plug/assets/174401266/d2027729-c50d-4cb5-a390-88059431fb35
Desktop (please complete the following information):

OS: Windows 10
Plugin format VST3
Version 0.4.3

DAW:

Name: FL Studio 21 Producer Edition
Version 21.2.2

Which version of the plugin did you use here? If you download the latest version (remove the current version first and restart your DAW to make sure it's actually gone), does the problem still occur?

This is also happening for me
FL Studio 24.1.1
Spectral Compressor date stamp March 23, 2024 10:59am same as the one available here:
https://nightly.link/robbert-vdh/nih-plug/workflows/build/master/nih-plugs-2024-08-18-190820-windows.zip
FL crash report:
FL Studio (<IP_ADDRESS>34) [64Bit] r37347 has encountered an error and needs to restart.
Crash log saved to C:\Users\Justin\Documents\Image-Line\FL Studio\Support\Logs\Crash\ folder.
Please use Ctrl+C to copy this message and report to support.


Any evaluation result?

Any evaluation result?

The detailed evaluation result can be found in our paper.


409 ETag does not match current item's value

I upload and replace a file for 400 times but get this error during the process.
What does this mean?

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

ID: 350cd850-d19a-ef5c-2761-e342fc3c506c
Version Independent ID: 5bf3ef39-f20a-6c7f-77f6-3bc7e9d246f4
Content: Upload small files - OneDrive API - OneDrive dev center
Content Source: docs/rest-api/api/driveitem_put_content.md
Product: onedrive
GitHub Login: @rgregg
Microsoft Alias: rgregg

Are you providing an If-Match header in your request?

Are you making the update calls in parallel, or sequentially?

Are you making the update calls in parallel, or sequentially?
sequentially.

for($i=0;$i<400;$i++)
print_r($od->saveContent(new Uri('path','','abc/hi.txt'), 'hello world!!!'.date('Y-m-d H:i:s')));
just like this. and the saveContent function call POST /xxx/xx/content.

Just run a test round. failed at the 20th loop.
{
"error": {
"code": "resourceModified",
"message": "ETag does not match current item's value",
"innerError": {
"request-id": "0566a99e-d2a1-4e41-b030-7358250a5d7d",
"date": "2019-09-20T09:57:26"
}
}
}

It looks like even though you're making the calls one at a time, one of the updates is racing with another change and that's causing the system to detect a conflict and fail the request. It's hard to say what is causing the other change though, but ideally your code should be resilient to conflict responses and execute appropriate resolution logic.
Such logic could look like:

Fetch the current state of the object
Merge it with the state that you want to apply
Write it back again

It looks like even though you're making the calls one at a time, one of the updates is racing with another change and that's causing the system to detect a conflict and fail the request. It's hard to say what is causing the other change though, but ideally your code should be resilient to conflict responses and execute appropriate resolution logic.
Such logic could look like:

Fetch the current state of the object
Merge it with the state that you want to apply
Write it back again

I think I can treat the upload action as an asynchronous action with a little delay after the api call.
I am writing a php framework to handle ms-graph call so I want it can handle every unexpected reply.


"editor.fontFamily" does not change pop-up window font

I use fire code, and the font of  code  is changed, while the parameter hints are not.

VSCode Version: 1.33.1
OS Version: linux x64

Steps to Reproduce:

Input a function, and then its definition will pop up.
The font of its definition is different from the code.

(Well, In fact, the first line uses fira code.)
I also use the develop tools.

The code uses fira code, while docs not.

Does this issue occur when all extensions are disabled?:
No...If all extensions were disalbed, there would  be not function definition window.

It is expected that doc is not code and hence it does not uses editor font.

@sandy081 Thanks.
Then is there a easy way to change font of doc?
Or can you tell me what font does it use? The system font?

it uses the same font that workbench uses. I assume its the system font but can't confirm. @bpasero will know it.

Thanks for your reply.
Changing workbench font works. I have no more problem.
Ref:
#519
#26128


Added current loaded GLTF filename to exceptions and logs

Especially when Unity is importing a lot of gltf files, it can be hard to find out which files exactly has thrown or logged an error.

This PR breaks the provided logger:

The Debug. calls go to the provided ILogging instance (by default Unity's console logging but can be overriden), now they are directly on Unity's logging again.


changes across two branches of https://github.com/PATOOWORLD-ELEVATION/node-gyp

Checklist

[ ] npm install && npm run lint && npm test passes
[ ] tests are included
[ ] documentation is changed or added
[ ] commit message follows commit guidelines

Description of change

Closing as a dup of #2998


error - windows server

%%%%%% console loading %%%%%%
12:35:34 [INFO] (cssharp:PluginContext) Unloading plugin WeaponRestrict
12:35:34 [INFO] (cssharp:PluginContext) Finished unloading plugin WeaponRestrict
12:35:34 [INFO] (cssharp:PluginContext) Loading plugin WeaponRestrict
12:35:34 [INFO] (plugin:WeaponRestrict) WeaponRestrict: Loaded default config for de_mirage (Limits: [weapon_awp, 2]
[weapon_g3sg1, 0]
[weapon_xm1014, 0]
[weapon_scar20, 0], Quotas: )
12:35:34 [INFO] (cssharp:PluginContext) Finished loading plugin WeaponRestrict
12:35:34 [INFO] (plugin:WeaponRestrict) WeaponRestrict: Loaded default config for de_mirage (Limits: [weapon_awp, 2]
[weapon_g3sg1, 0]
[weapon_xm1014, 0]
[weapon_scar20, 0], Quotas: )

%%%%%% console Error  %%%%%%
12:35:34 [EROR] (cssharp:Core) Error invoking callback
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> CounterStrikeSharp.API.Core.NativeException: Invalid function pointer
at CounterStrikeSharp.API.Core.NativeAPI.ExecuteVirtualFunction[T](IntPtr function, Object[] arguments) in /home/runner/work/
CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/API.cs:line 1090
at WeaponRestrict.WeaponRestrictPlugin.OnWeaponCanAcquire(DynamicHook hook) in X:\Main.cs:line 357
at InvokeStub_Func2.Invoke(Object, Span1)
at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] paramete
rs, CultureInfo culture)
--- End of inner exception stack trace ---
at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] paramete
rs, CultureInfo culture)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at CounterStrikeSharp.API.Core.FunctionReference.b__18_0(fxScriptContext* context) in /home/runner/wor
k/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/FunctionReference.cs:line 100

%%%%%% my config %%%%%%
// This configuration was automatically generated by CounterStrikeSharp for plugin 'WeaponRestrict', at 2024/08/07 06:00:10
{
"MessagePrefix": "{Color.Orange}[WeaponRestrict] ",
"RestrictMessage": "{Color.LightPurple}{0}{Color.Default} is currently restricted to {Color.LightRed}{1}{Color.Default} per team.",
"DisabledMessage": "{Color.LightPurple}{0}{Color.Default} is currently {Color.LightRed}disabled{Color.Default}.",
"WeaponQuotas": {},
"WeaponLimits": {
"weapon_awp": 2,
"weapon_g3sg1": 0,
"weapon_xm1014": 0,
"weapon_scar20": 0
},
"DoTeamCheck": true,
"AllowPickup": false,
"VIPFlag": "@css/vip",
"MapConfigs": {
"awp_lego_2": {
"WeaponQuotas": {
"weapon_awp": 1
},
"WeaponLimits": {
"weapon_deagle": 0
},
"awp.": {}
},
"awp_snowks2023_gm_cs2": {
"WeaponQuotas": {
"weapon_awp": 1
},
"WeaponLimits": {},
"awp.": {}
}
},
"ConfigVersion": 2
}

linux works great

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/6mkbh6xhau31g
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

The windows signature is wrong and I currently have no way of getting the correct signature for it. The Linux one works fine however. If anyone is able to update the signature feel free to let me know.

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

Issue should be resolved with latest version


Add support for openstack

This is a first pass and should be treated as such.  Please review the Things to Know section in the README to understand what should be expected from this first pass.
#28

Any chance this PR gets merged anytime soon?

There's some new Terraform modules and an example of getting DC/OS deployed on OpenStack via Universal Installer here: https://github.com/dcos-terraform/examples/tree/master/openstack
It's experimental and unsupported at this stage but I'd welcome any feedback or help.

@yankcrime thanks a lot for the link!


Not all unit tests work correctly on OSX

Specifically:
[ RUN      ] MultiRuntimeTests.test1
tests/multi_runtime_tests.cpp:60: Failure
Expected: { rs::jsapi::Runtime rt; } throws an exception of type rs::jsapi::RuntimeThreadInstanceException.
  Actual: it throws nothing.
[  FAILED  ] MultiRuntimeTests.test1 (9 ms)

and:
[ RUN      ] GCTests.test6
tests/gc_tests.cpp:179: Failure
Value of: deleted_
  Actual: 0
Expected: 1
[  FAILED  ] GCTests.test6 (2 ms)

Tests also exit with:
libc++abi.dylib: terminating with uncaught exception of type std::__1::system_error: mutex lock failed: Invalid argument

This may be a gtest issue.

Resolved in 0fabaacfd589e5c9664d7ef021f2fd87a9f09930


Add Favicon

This PR is in response to issue #190.

Thanks @GLADI8R. Unfortunately we can't accept this PR, please see this comment.


/parents API returns 200 instead of 404 when the document to update does not exist

Example curl below
curl -X POST 'http://localhost:3000/api/v1/w/nX1GBNVVMN/data_sources/managed-microsoft/documents/FAKE_DOC_OOOH/parents' \
-H 'Authorization: Bearer ***' \
-H 'Content-Type: application/json' \
-d '{
"parents": [ "p1" ]
}'

API should return 404

@philipperolet
After digging, it seems that it comes down to this method in core api that returns OK regardless if the qdrant query modified anything or not.
It seems coherent with the other methods in the file so I'm reluctant to touch it until I get @spolu's feedback.

not important enough, closing


Updated dependencies and runtime to Node 16

Hi Daniel,
Thank you for your pull request!
It seems that the tests are failing. If you have any idea why, please feel free to commit a fix, otherwise I will look into it during the week.
Best regards
/Michael

Thanks for getting back @themichaelhall. I'll have a look at some point this week, I think it will be because of the major version change of Node.

Seems to have been because I didn't update the test workflow to Node 16.

Great, thank you!
Since the auto-generated files are quite large, I will re-generate them locally myself, rather than review the changes. After that I will probably release v2 before the week is over.


[bug] LevelZero dispatcher seems to have an issue when operating with TornadoVM profiler

Describe the bug
I try to run an example with the TornadoVM profiler enabled when I build with SPIR-V and run with LevelZero on my Integrated Graphics, and I get a segfault in the Java runtime environment.
When I run with the profiler disabled, it runs.
How To Reproduce
The commit point I am is in the develop branch: cba529c
git checkout develop
source setvars.sh
make BACKEND=spirv

The devices I have are the following:
tornado --devices
WARNING: Using incubator modules: jdk.incubator.vector

Number of Tornado drivers: 2
Driver: SPIR-V
  Total number of SPIR-V devices  : 2
  Tornado device=0:0  (DEFAULT)
	SPIRV -- SPIRV OCL - Intel(R) Iris(R) Xe Graphics
		Global Memory Size: 28.7 GB
		Local Memory Size: 64.0 KB
		Workgroup Dimensions: 3
		Total Number of Block Threads: [512]
		Max WorkGroup Configuration: [512, 512, 512]
		Device OpenCL C version: OpenCL C 1.2

  Tornado device=0:1
	SPIRV -- SPIRV LevelZero - Intel(R) Iris(R) Xe Graphics
		Global Memory Size: 28.7 GB
		Local Memory Size: 64.0 KB
		Workgroup Dimensions: 3
		Total Number of Block Threads: [512]
		Max WorkGroup Configuration: [512, 512, 512]
		Device OpenCL C version:  (LEVEL ZERO) 1.3

Driver: OpenCL
  Total number of OpenCL devices  : 4
  Tornado device=1:0
	OPENCL --  [NVIDIA CUDA] -- NVIDIA RTX A2000 8GB Laptop GPU
		Global Memory Size: 7.8 GB
		Local Memory Size: 48.0 KB
		Workgroup Dimensions: 3
		Total Number of Block Threads: [1024]
		Max WorkGroup Configuration: [1024, 1024, 64]
		Device OpenCL C version: OpenCL C 1.2

  Tornado device=1:1
	OPENCL --  [Intel(R) OpenCL Graphics] -- Intel(R) Iris(R) Xe Graphics
		Global Memory Size: 28.7 GB
		Local Memory Size: 64.0 KB
		Workgroup Dimensions: 3
		Total Number of Block Threads: [512]
		Max WorkGroup Configuration: [512, 512, 512]
		Device OpenCL C version: OpenCL C 1.2

  Tornado device=1:2
	OPENCL --  [ComputeAorta] -- ComputeAorta x86_64
		Global Memory Size: 7.8 GB
		Local Memory Size: 32.0 KB
		Workgroup Dimensions: 3
		Total Number of Block Threads: [1024]
		Max WorkGroup Configuration: [1024, 1024, 1024]
		Device OpenCL C version: OpenCL C 1.2 Clang 18.1.8

  Tornado device=1:3
	OPENCL --  [ComputeAorta] -- RefSi G1 RV64
		Global Memory Size: 2.0 GB
		Local Memory Size: 256.0 KB
		Workgroup Dimensions: 3
		Total Number of Block Threads: [1024]
		Max WorkGroup Configuration: [1024, 1024, 1024]
		Device OpenCL C version: OpenCL C 1.2 Clang 18.1.8

Running the breaking example with profiler enabled:
tornado --jvm="-Ds0.t0.device=0:1 -Dtornado.profiler=True" -m tornado.examples/uk.ac.manchester.tornado.examples.VectorAddInt --params="100000"

The output:
WARNING: Using incubator modules: jdk.incubator.vector
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x000074d595530673, pid=30151, tid=30152
#
# JRE version: Java(TM) SE Runtime Environment (21.0.4+8) (build 21.0.4+8-LTS-274)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (21.0.4+8-LTS-274, mixed mode, tiered, jvmci, parallel gc, linux-amd64)
# Problematic frame:
# C  [libze_intel_gpu.so.1+0x130673]
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/thanos/repositories/TornadoVM-stratika/core.30151)
#
# An error report file with more information is saved as:
# /home/thanos/repositories/TornadoVM-stratika/hs_err_pid30151.log
[2.422s][warning][os] Loading hsdis library failed
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Aborted (core dumped)

When I run the SPIR-V kernel of that example with the profiler on the first device (with the OpenCL dispatcher) it works:
tornado --jvm="-Ds0.t0.device=0:0 -Dtornado.profiler=True" -m tornado.examples/uk.ac.manchester.tornado.examples.VectorAddInt --params="100000"
WARNING: Using incubator modules: jdk.incubator.vector
{
    "s0": {
        "TOTAL_TASK_GRAPH_TIME": "205781128",
        "COPY_IN_TIME": "18645",
        "TOTAL_DRIVER_COMPILE_TIME": "51799681",
        "TOTAL_KERNEL_TIME": "47500",
        "TOTAL_CODE_GENERATION_TIME": "10949890",
        "TOTAL_DISPATCH_KERNEL_TIME": "432550",
        "COPY_OUT_TIME": "47500",
        "TOTAL_GRAAL_COMPILE_TIME": "65585886",
        "TOTAL_BYTE_CODE_GENERATION": "6477702",
        "TOTAL_DISPATCH_DATA_TRANSFERS_TIME": "2774883",
        "ALLOCATION_BYTES": "1200072",
        "TOTAL_COPY_OUT_SIZE_BYTES": "400024",
        "TOTAL_COPY_IN_SIZE_BYTES": "800048",
        "s0.t0": {
            "BACKEND": "SPIRV",
            "METHOD": "VectorAddInt.vectorAdd",
            "DEVICE_ID": "0:0",
            "DEVICE": "Intel(R) Iris(R) Xe Graphics",
            "POWER_USAGE_mW": "n/a",
            "TASK_CODE_GENERATION_TIME": "10949890",
            "TASK_COMPILE_GRAAL_TIME": "65585886",
            "TASK_COMPILE_DRIVER_TIME": "51799681",
            "TASK_KERNEL_TIME": "47500"
        }
    }
}

Expected behavior
The expected behavior is to run with the LevelZero dispatcher and get an output similar to running with the OpenCL dispatcher.
Computing system setup (please complete the following information):
- OS: Ubuntu 23.10
- OpenCL and Driver versions: 24.22.29735.27
- If applicable, Level Zero & SPIR-V Versions:  Level Zero branch is master, and commit point is abdafea & levelzero-jni commit point is 585f534
- TornadoVM commit id: cba529c

My understanding is that there is an issue with the LevelZero dispatching at the TornadoVM runtime, or it may be an issue of the driver. I plan to have a look at that and test it also on an Intel ARC GPU.

I can reproduce the issue. I don't get why stop working. Which level zero commit are you using?

I need to revisit the profiler functions in the LevelZero-JNI project
https://github.com/beehive-lab/levelzero-jni

a, quite fast reply from my side. I noted that I missed to use a TornadoVM for the dispatcher. -Dtornado.spirv.dispatcher=levelzero.
Now it works. It was a misconception I thought that if a device is selected via the command line, the dispatcher automatically switches to use the relevant dispatcher. However, it seems that it takes the default dispatcher which is the OpenCL dispatcher.
Here is the behavior with the flag:
tornado --jvm="-Ds0.t0.device=0:1 -Dtornado.spirv.dispatcher=levelzero -Dtornado.profiler=True" -m tornado.examples/uk.ac.manchester.tornado.examples.VectorAddInt --params="100000"
WARNING: Using incubator modules: jdk.incubator.vector
{
    "s0": {
        "TOTAL_TASK_GRAPH_TIME": "146460733",
        "COPY_IN_TIME": "18697",
        "TOTAL_DRIVER_COMPILE_TIME": "3333424",
        "TOTAL_KERNEL_TIME": "39843",
        "TOTAL_CODE_GENERATION_TIME": "10427944",
        "TOTAL_DISPATCH_KERNEL_TIME": "401993",
        "COPY_OUT_TIME": "39843",
        "TOTAL_GRAAL_COMPILE_TIME": "62738463",
        "TOTAL_BYTE_CODE_GENERATION": "6183556",
        "TOTAL_DISPATCH_DATA_TRANSFERS_TIME": "2108010",
        "ALLOCATION_BYTES": "1200072",
        "TOTAL_COPY_OUT_SIZE_BYTES": "400024",
        "TOTAL_COPY_IN_SIZE_BYTES": "800048",
        "s0.t0": {
            "BACKEND": "SPIRV",
            "METHOD": "VectorAddInt.vectorAdd",
            "DEVICE_ID": "0:1",
            "DEVICE": "Intel(R) Iris(R) Xe Graphics",
            "POWER_USAGE_mW": "n/a",
            "TASK_CODE_GENERATION_TIME": "10427944",
            "TASK_COMPILE_GRAAL_TIME": "62738463",
            "TASK_COMPILE_DRIVER_TIME": "3333424",
            "TASK_KERNEL_TIME": "39843"
        }
    }
}

Maybe, we should deprecate the explicit definition of the dispatcher and adapt the runtime to figure out which one to use, based on the target device.
Any thoughts?
In this case, I can switch this from a bug to a feature.

But this forces to use the OpenCL runtime as SPIR-V dispatcher. What it fails is the call to get the profiler info for the Level Zero runtime.

First of all, the usage of the -Dtornado.spirv.dispatcher=levelzero just reordered the devices and made the Level Zero to be first. So, when I ran with -Ds0.t0.device=0:1 -Dtornado.spirv.dispatcher=levelzero, I ended up running again on the OpenCL device.
Besides that, I found the issue and it is in the levelzero-jni library. The problem is that based on the LevelZero specification there are some type descriptors (in this case the ze_event_pool_desc_t descriptor) that have a type called pNext that points to an extension-specific structure or is null.
In our case, in the native function of the zeEventPoolCreate we were passing the initialized value from Java which was -1, and this caused the driver to fail with segfault. I will open a PR from this branch, once I have tested the fix also in Windows OS.

We just merged the fix and I got the expected output with TornadoVM. Note you need to remote the level-zero and levelzero-jni folders before testing in order to clone the latest branch.
rm -rf level*
tornado --jvm="-Ds0.t0.device=0:0 -Dtornado.spirv.dispatcher=levelzero -Dtornado.profiler=True" -m tornado.examples/uk.ac.manchester.tornado.examples.VectorAddInt --params="100000"
Task info: s0.t0
	Backend           : SPIRV
	Device            : SPIRV LevelZero - Intel(R) Arc(TM) A770 Graphics GPU
	Dims              : 1
	Global work offset: [0]
	Global work size  : [100000]
	Local  work size  : [32, 1, 1]
	Number of workgroups  : [3125]

{
    "s0": {
        "TOTAL_DISPATCH_DATA_TRANSFERS_TIME": "0",
        "TOTAL_TASK_GRAPH_TIME": "2296236",
        "COPY_OUT_TIME": "27248",
        "COPY_IN_TIME": "49140",
        "TOTAL_KERNEL_TIME": "7072",
        "TOTAL_COPY_IN_SIZE_BYTES": "800048",
        "TOTAL_COPY_OUT_SIZE_BYTES": "400024",
        "ALLOCATION_BYTES": "1200072",
        "s0.t0": {
            "BACKEND": "SPIRV",
            "METHOD": "VectorAddInt.vectorAdd",
            "DEVICE_ID": "0:0",
            "DEVICE": "Intel(R) Arc(TM) A770 Graphics",
            "TASK_KERNEL_TIME": "7072"
        }
    }
}

I will close this PR.


Image Export fails with 'Private' maps [EDITOR]

STR
Remember: EDITOR

Create a new map by dragging a dataset to the Maps dashboard (it will make the new map Private)
Enter the new map and try to Export an image from it. You will get

Change the maps privacy to public/with link
Retry the export. It should work this time

guess

An auth_token is added to the map template when privacy is set to 'Private'
The Image Export map instantiation seems to fail due to not including this auth_token in the instantiation call
making the map public removes the token from the template, allowing the Image Export to instantiate the map

Closing since image export is gonna be implemented in Builder.