mounting filesystem at particular address of flash memory

Hi ,
i want to implement filesystem on external flash memory which is interfaced with STM32L151 controller.
flash is accessed through SPI lines. i have written below code for read and write operation.
int user_provided_block_device_read(const struct lfs_config *c, lfs_block_t block,
	lfs_off_t off, void *buffer, lfs_size_t size)
{
  printf("read\n");
  MEM_Read((block * c->block_size + off), (uint8_t*)buffer, size); //SPI read
  return 0;
}

int user_provided_block_device_prog(const struct lfs_config *c, lfs_block_t block,
	lfs_off_t off, const void *buffer, lfs_size_t size)
{
//  c = (struct lfs_config *)0X700000;
  printf("prog\n");
  MEM_Write((block * c->block_size + off), (uint8_t*)buffer, size); //SPI write
  return 0;
}

const struct lfs_config cfg = {
    // block device operations
    .read  = &user_provided_block_device_read,
    .prog  = &user_provided_block_device_prog,
    .erase = &user_provided_block_device_erase,
    .sync  = &user_provided_block_device_sync,

    // block device configuration
    .read_size = 256,
    .prog_size = 256,
    .block_size = 32768,
    .block_count = 256,
    .cache_size = 256,
    .lookahead_size = 256,

    .read_buffer = lfs_read_buf,
    .prog_buffer = lfs_prog_buf,
    .lookahead_buffer = lfs_lookahead_buf
};

when i tried to debug filesystem takes const struct lfs_config *c = 0x00000000 as address. is there any way to change this address. because 0x00000000 is protected area which cannot be accessed by user.
Please suggest...

Hi @KRekha3, that shouldn't happen. I'm not sure what would cause that.
How are you calling lfs_mount?

Thanks.
Issue is resolved ..problem was with the other code where we were trying to
integrate LFS. We identified correct location to insert the code. And also
with the configuration of filesystem. corrected the code to match the
requirement.
Now it is working.
On Mon, Jun 10, 2019, 10:15 PM Christopher Haster<EMAIL_ADDRESS>wrote:

Hi @KRekha3 https://github.com/KRekha3, that shouldn't happen. I'm not
sure what would cause that.
How are you calling lfs_mount?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ARMmbed/littlefs/issues/199?email_source=notifications&email_token=AMDC2CBTEQPSMT3PEWNYSN3PZ2ALHA5CNFSM4HSZOLGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXKN2JA#issuecomment-500489508,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMDC2CGH6XIK7CZSHXXWHXLPZ2ALHANCNFSM4HSZOLGA
.

And also we erased flash memory completely and started with mount..it works
now.
thanks
On Mon, Jun 10, 2019, 10:21 PM Rekha kanti<EMAIL_ADDRESS>wrote:

Thanks.
Issue is resolved ..problem was with the other code where we were trying
to integrate LFS. We identified correct location to insert the code. And
also with the configuration of filesystem. corrected the code to match the
requirement.
Now it is working.
On Mon, Jun 10, 2019, 10:15 PM Christopher Haster <
<EMAIL_ADDRESS>wrote:

Hi @KRekha3 https://github.com/KRekha3, that shouldn't happen. I'm not
sure what would cause that.
How are you calling lfs_mount?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ARMmbed/littlefs/issues/199?email_source=notifications&email_token=AMDC2CBTEQPSMT3PEWNYSN3PZ2ALHA5CNFSM4HSZOLGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXKN2JA#issuecomment-500489508,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMDC2CGH6XIK7CZSHXXWHXLPZ2ALHANCNFSM4HSZOLGA
.

Ah glad to hear!


Accept hashes argument to find_transaction_objects

Sometimes, the user may already have a list of hashes, in which case we can bypass find_transactions.

Hey @eukaryote31 thanks for proposing this change!  Unfortunately we can't accept this PR, but #99 may be right up your alley (:


[StdlibUnittest] Allow Interpreter to Expect Crashes

What's in this pull request?
Teach StdlibUnittest to run a sub-interpreter when run using the interpreter.
This allows interpreter-led tests to expect crashes and safely handle them.

Resolved bug number: (rdar://18080980)

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    OS X platform               | @swift-ci Please test OS X platform
    Linux platform              | @swift-ci Please test Linux platform

Note: Only members of the Apple organization can trigger swift-ci.

LGTM modulo the comment.

@swift-ci Please test

Actually I hadn't run the test suite normally when I pushed this so it crashes on every test. Can we cancel the build?

I haven't pushed the fix; I'm running tests before I push it

@swift-ci please test

@gribozavr I'm not sure what to make of the test failure...

The many-inputs failure is an unrelated problem elsewhere. You can ignore it.

It also exists on the master branch: https://ci.swift.org/job/oss-swift_tools-RA_stdlib-DA_test-simulator/935/console


[NTR] buffer volume

New term name
buffer volume
Definition
Volume of the buffer in which the sample is diluted
Parent term(s)
No response
Child term(s)
No response
Synonyms
No response
Xrefs
No response
Your ORCID
0000-0003-1945-6342

buffer volume was added to DPBO (DPBO:0000117)


Provide DDNS hostname to tracker?

Not sure if this is possible but is there anyway to provide a DDNS hostname to a tracker as opposed to an IP or are all tracker entries IP based?

Hey Apt.  In the Hotline protocol the server doesn't sent either the IP or a hostname to the tracker, just a port number.  The tracker uses the source IP of the registration request as the server address.  So in that sense it's already dynamic, although in Mobius there's a 5 minute interval between tracker updates so there is a window where it is out of date.  Same is true for DNS though.

Interesting, thanks for providing that information, I assumed it did provide an address as when you manually choose to connect to a server you provide an IP.
The use case I was thinking of is if you wanted to hide the ip from casual view (you can always find the information from a host and obvs) if you say provided server details as a link in a message or if it was indeed provided to the tracker.


Having weird stutters and lags on my qnap NAS

Hey, so I've been looking to set up a TTT Server for a few friends and me and with your Dockerfiles we're all getting some weird lags ingame. After each round the server loses connection for a few seconds and we can't move, shots sometimes connect after a second or two and overall it's pretty laggy. The Container could use up to 8Gb of RAM, it should have enough power to run the GMod Server without any problems. I wanted to choose your docker image because it's documentation is pretty nice and it has a lot of options. I'm now using a diffrent image and I don't have any problems with that. I'm missing that I can't mount the volumes though. ATM I'm using hackebein/garrysmod.

Hmm, strange. It seems like the only significant difference is the inclusion of the tickrate commandline flag. I will try investigating a little bit further over the following days, but as a temporary fix, can you try including -e CUSTOMPARAMETERS="-tickrate 66" in docker run command and see if that changes anything.


Is this project abandoned?

There are no updates for years and many pull requests that are ignored.
Should we use this instead?
https://www.npmjs.com/package/react-material-ui-carousel

We have not really needed this component since it was originally implemented. This project could use some maintenance for sure...


🐞invalid free

Double free.
Input was:
cd src
cd ..
I'm not even sure why cd should free something, but I'll look into it, probably the dictionary hasn't been integrated.

This will probably be fixed in #30


Find all references to symbol

@mkaput commented on 2.07.2024, 13:03:37:

Implement the following feature in CairoLS: https://code.visualstudio.com/api/language-extensions/programmatic-language-features#find-all-references-to-a-symbol

@kkawula commented on 5.12.2024, 13:35:13:

It would be really cool, to have it in LS 👍


Calling Functions with objection

does objection support calling to functions:
https://www.postgresql.org/docs/9.6/static/sql-syntax-calling-funcs.html
it will be nice if we had something like.
Model.call('functionName', args)
that call the function and return the result as js object.

As you noticed this has been discussed in knex lately https://github.com/tgriesser/knex/issues/2021
Making up syntax for calling stored procedures/functions in platforms independent way, that supports e.g. casting parameters (or some other strange things people might like to do when calling) and using function calls as part of other queries / calls is not very trivial task.
For now I would suggest doing that by writing small helper function which provides nice interface for your use case to do a  call and it returns a knex.raw, you can do that for example in your own model base class, where you have reference to knex available.

@elhigu can you consider adding it in a roadmap?
its not trival but I think its feasible.
I think using functions are good, performance wise, and this feature will encourage using functions.

I think that feature should be implemented at knex level if there will be good syntax proposal which is significantly cleaner to use than raw.
For example it is common to use functions as a part of select/where like this (dummy code, couldn't think of real query at the moment):
.query()
  .select('id', raw('parsedate(??)::text', ['created_at']))
  .where('name', raw('lower(??)',  [nameToFindSubquery]));

AFAIK just calling some function and getting the results is pretty uncommon use case.

@elhigu I also think it should be implemented at knex level.
Why calling function and getting results is uncommon? If I want to do some complex actions on multiple tables it is much more efficient calling a function(/store procedure) with the relevant parameters that will do all the work and return the relevant result instead of passing the whole query from the server as string (and definitely better than calling the db multiple times).

@roytz uncommon compared to the case where people call them as part of select / where to do conversions etc. I believe that you are using them all the time.
About the performance some times it is a lot more performant, some times it is marginally more performant. From my career I can remember only one case years ago where we had to write stored procedure to make query enough performant (IIRC it was some statistics generation thing).
Anyways the performance discussion is is not really relevant to this discussion how flexible function call syntax should be.

This is definitely something that needs to be implemented on the knex side.


Adding uncompiled typescript library

I have a "common library" written in Typescript and I want to use it in a couple more projects. I don't want to create a npm package from it, I just want to import it as "uncompiled package" but I'm having trouble setting this up.
I tried adding ts-loader and excluding the module like this:
webpackConfig.module.rules.push({
  test: /\.tsx?$/,
  use: 'ts-loader',
  exclude: /node_modules\/((?!common-library).)*$/,
});

However, this results in Error: TypeScript emitted no output for /path/to/index,tsx.
Can I please get some guidance on this?
Thank you

@stefansandulescu can you give more information if you fixed the issue?

Hello,
I haven't fixed this. I ended up compiling the library.

Is there any way to do it without compiling the library?


error TS6133   ...  "is declared but its value is never read."

I am using D3 and all callback functions should receiving 3 parameters.
"ValueFn<GElement, Datum, void>"
I defined my event listeners as
on("mouseover", (d: any, index: number, elems: SVGGElement[]): void => {
   d3.select(elems[index]);
})

When I compiling to JS file and running via LINT/JSHINT no errors, however by enabling in tsconfig.json
"noUnusedParameters": true
I am getting errors: "error TS6133: 'd' is declared but its value is never read."
"d" is first argument you cannot avoid it. So, why TS compiler so crazy and cannot recognize it?

Prefix the parameter with an underscore, as in _d.

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-0.html#flag-unused-declarations-with---nounusedparameters-and---nounusedlocals

Why do we need that?

@dgofman-equinix You enable a feature that will error on unused parameters, then complain that it errors about unused parameters?

It's --noUnusedParameters, not --noUnusedNonleadingParameters. Lots of options available to you and it's not a bug that we literally do the thing the flag is called.

Prior discussion at #9458


DialogueUI: Changes made in the MarkLineComplete function aren't available to the rest of the class

I have a continue button with an OnClick event which calls the MarkLineComplete function from the DialogueUI class. Immediately after the function ends, the userRequestedNextLine bool that is set to true in it immediately reverts back to false even though it is not set anywhere in the class to false and the MarkLineComplete function was indeed called. Further more, I've added an extra random bool that is not used anywhere in the code and the same happens to it as well.
Using Yarn version 1.1.0
Using Unity version 2019.4.0f1

This behaviour no longer exists as of version 2.0. As such, I'll close this issue here; thanks for filing the report!


add public_content

Can you add public_content to the available scope parameter?

Allowed public_content and follower_list, see ba6926c.
Also, v3.3.0 tagged.

thank you!


DO MATH FOR FUN! - Sprites Flicking

The "Earth" and "Cat" Sprites Flicker
https://scratch.mit.edu/projects/160113227/
https://phosphorus.github.io/#160113227
Mozilla/5.0 (X11; CrOS x86_64 9202.64.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.146 Safari/537.36

Prob just a bug that happens sometimes


[>+VIRAL]]** Video De Juliana Duque filtrado Leaked Video Original Full Video Short Clip

47 seconds ago
Watch 🟢 ➤ ➤ ➤ 🌐 Click Here To link (Full Viral Video Link)
🔴 ➤►DOWNLOAD👉👉 (Full Viral Video Link)
Watch 🟢 ➤ ➤ ➤ 🌐 Click Here To link (Full Viral Video Link)
🔴 ➤►DOWNLOAD👉👉 (Full Viral Video Link)
L𝚎aked Video Juliana Duque Original Video Viral Video L𝚎aked on X Twitter Telegram
Juliana Duque Private MMS Video Leak
..
[-wATCH-]— Juliana Duque Video Original Video Link Juliana Duque Video Viral On Social Media X Trending Now
[-wATCH-]— Juliana Duque ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Juliana Duque ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Juliana Duque Video Original Video Link Juliana Duque Video Viral On Social Media X Trending Now
Juliana Duque Original Video video took the internet by storm and amazed viewers on various social media platforms. Juliana Duque , a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked Video Juliana Duque Original Video Viral Video L𝚎aked on X Twitter
Juliana Duque Original Video video oficial twitter
L𝚎aked Video Juliana Duque Original Video Viral Video L𝚎aked on X Twitter..
.
.
..
.
.
.
.
.
.
.
47 seconds ago
Watch 🟢 ➤ ➤ ➤ 🌐 Click Here To link (Full Viral Video Link)
🔴 ➤►DOWNLOAD👉👉 (Full Viral Video Link)
Watch 🟢 ➤ ➤ ➤ 🌐 Click Here To link (Full Viral Video Link)
🔴 ➤►DOWNLOAD👉👉 (Full Viral Video Link)
L𝚎aked Video Juliana Duque Original Video Viral Video L𝚎aked on X Twitter Telegram
Juliana Duque Private MMS Video Leak
..
[-wATCH-]— Juliana Duque Video Original Video Link Juliana Duque Video Viral On Social Media X Trending Now
[-wATCH-]— Juliana Duque ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Juliana Duque ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Juliana Duque Video Original Video Link Juliana Duque Video Viral On Social Media X Trending Now
Juliana Duque Original Video video took the internet by storm and amazed viewers on various social media platforms. Juliana Duque , a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked Video Juliana Duque Original Video Viral Video L𝚎aked on X Twitter
Juliana Duque Original Video video oficial twitter
L𝚎aked Video Juliana Duque Original Video Viral Video L𝚎aked on X Twitter..

1


Cannot signup without admin credentials

I don't think that we need basicAuth policy on signup. I get forbidden due to that.
Also, is there a way to grant access to controllers defined in the package like this case? I think it will be helpful.

I fixed this by removing all policies from user/create action by:
  'UserController': {
    'create': []
  },


Enable Remote Neovim Process Connection

It would be cool to be able to connect to a remote neovim process such as one in wsl or over the network.

Blocked on https://github.com/Kethku/neovide/issues/97

The trivial approach of hardcoding wsl as the command and nvim as the first argument doesn't seem to work for me. I've printed the debug representation of cmd just as a sanity-check:
     Running `target\debug\neovide.exe`
Command { std: "wsl" "nvim" "--embed", kill_on_drop: false }

A window appears briefly, but then disappears, and the app exits without showing any error output. The exit code is 0.

wsl seems to work now.

What is the command-line argument for it? Do I need to have neovim installed on the non-WSL side?

Reopening to remind myself to respond when I get back to the computer

Is there a command line argument in the 0.6.0 release for this?

I believe it is.
https://github.com/Kethku/neovide/blob/master/src/bridge/mod.rs#L37
I haven't tested it myself though as I don't have a wsl install on my home machine. Looks like you can just add --wsl? Also possible that there is a bug given https://github.com/Kethku/neovide/issues/281

Thank you! I am probably running into that bug, because running with any command line arguments does indeed cause the process to exit prematurely, sometimes without even opening a window first. I don't see any error output, though; is there some way to turn on log output?

I am having a similar problem. Whenever I type neovide followed by any command line argument on cmd neovide opens with a blank screen and closes.
Has anyone been able to run neovide on windows and connect to vim on wsl?

I naively just ran the command mentioned above and nothing happened.
Would it be possible to list step-by-step WSL-based instructions to the main Readme, alongside the current environments?
Am I correct in understanding that this would basically give the same power as the somewhat popular "remote VSCode" solution?

When using Node Version Manager (NVM) on WSL side Neovide seems to default to the system Node version rather then the version that has been selected by nvm to use. I believe the same issue exisits when using pyenv for Python.

When using Node Version Manager (NVM) on WSL side Neovide seems to default to the system Node version rather then the version that has been selected by nvm to use. I believe the same issue exisits when using pyenv for Python.


add --prepend option as altenative to prepend-token

Hi, me again 👋
Thanks again for answering my issue https://github.com/CookPete/auto-changelog/issues/165 so quickly, and with implementation no less 😱
I noticed you implemented this idea of a "prepend token" which would make it quite challenging to automate the way that I'm hoping to 🤔  it means that after we make a release with a prepend token, we would need to move the prepend token to the top of the file again. Also if anyone forgets to do this while I'm not managing the project then they run the risk of deleting other people's changelogs.
I added a --prepend option that effectively acts like there is a prepend-token at the start of the file at all times. Let me know if you have any questions or if you need me to do anything else to get this merged

I'm curious as to how this works, assuming your changelog has a header or title? Would this not just be adding more and more headers every time you generate?
I feel like instead of --prepend you're better off using --stdout, then you can just pipe the output wherever you like?

actually that is a good point... I can see now why you implemented the prepend-token, I didn't understand it before.
Every changelog that I have does not have a dedicated header or paragraph at the top of the changelog. Here is an example of the one I've been testing auto-changelog on: https://github.com/ember-learn/ember-styleguide/blob/master/CHANGELOG.md
Is it common to have titles or descriptions on changelogs? Most of the time I see changelogs as just a list like the one I linked 🤔
Yea I guess you're right about --stdout although trying to prepend to a file with piping can be a bit of a pain and is potentially error prone

Could be awesome to add this feature :+1:

Released in 2.2.0.


优化系统变量读取方式

Summary

Solution Description

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

Thanks for you contribution


Python calls AssetsTools.NET uncompressible issue

When using python to call the pack compression method of the AssetsTools.NET, the file size of the final output is 0KB, here is my python code, looking forward to your reply
import clr
import os
clr.AddReference(r'C:\Users\Vasen\Desktop\PYTEXT\AssetsTools.NET.dll')
from AssetsTools.NET.Extra import AssetsManager
from AssetsTools.NET import AssetBundleCompressionType, AssetsFileWriter, AssetsFileReader
def compress_bundle(bundle_file_path):
if not os.path.exists(bundle_file_path):
print("指定的文件不存在.")
return
folder_path = os.path.dirname(bundle_file_path)
original_file_name = os.path.splitext(os.path.basename(bundle_file_path))[0]
file_extension = os.path.splitext(bundle_file_path)[1]

# 创建压缩文件的目标路径
compressed_file_path = os.path.join(folder_path, f'已压缩-{original_file_name}{file_extension}')

# 防止目标文件已存在，生成唯一文件名
if os.path.exists(compressed_file_path):
    counter = 1
    while os.path.exists(compressed_file_path):
        compressed_file_path = os.path.join(folder_path, f'已压缩-{original_file_name}({counter}){file_extension}')
        counter += 1

# 加载 AssetsManager 和 BundleFileInstance
am = AssetsManager()
bun = am.LoadBundleFile(bundle_file_path, False)

if bun is None or bun.file is None:
    print("加载包文件失败，未能找到文件内容.")
    return

try:
    # 使用 AssetsFileWriter 创建输出流
    writer = AssetsFileWriter(compressed_file_path)

    # 创建 AssetsFileReader 读取原始文件
    reader = AssetsFileReader(bundle_file_path)

    # 调试信息：检查 reader 的状态
    print("读取器的状态:", reader)

    # 检查输入文件的大小
    input_file_size = os.path.getsize(bundle_file_path)
    print("输入文件大小:", input_file_size, "字节")

    # 调用 Pack 方法进行压缩
    print("开始压缩资产包...")
    bun.file.Pack(reader, writer, AssetBundleCompressionType.LZMA)
    print("压缩完成，文件写入流...")

    # 检查输出流状态
    writer.Close()
    print("输出流已关闭。")

except Exception as e:
    print("压缩过程中发生错误:", str(e))

finally:
    # 关闭 writer 和 reader
    if 'writer' in locals():
        writer.Close()
    if 'reader' in locals():
        reader.Close()
    # 释放资源
    am.UnloadAll()  # 卸载所有资源
    print("所有资源已释放。")

compress_bundle(r'C:\Users\Vasen\Desktop\PYTEXT\sprite_character_fighter_equipment_avatar_skin.npk')

Pack will always write some bytes unless an exception is thrown. One of the common reasons pack throws is because the original bundle is compressed and pack only works on uncompressed bundles (although I'm guessing you are probably working off of a modified bundle, so I don't think this is it.)

I am certain that the asset package is in an uncompressed state, and UABEA can be compressed to a very small size. I can pack and compress it normally using the same C # syntax, but not using Python.


remove array notice from pg_dump

https://www.cockroachlabs.com/docs/stable/import-data.html#import-from-postgresql-dump Step 4 under Reformat SQL File discusses removing arrays, but we support those now.

@mjibson, this is as of 1.2, correct?

Oh yes. The link is wrong.

https://www.cockroachlabs.com/docs/stable/array.html looks like we support arrays in 1.1?


Migrate from 1.0.6 to 2.0.x

What is the process of migrating from 1.x to 2.x? Are there any minor and major API changes from 1.x to 2.x?

that is a big headache. Few of the gestures are deprecated and if you upgrade to v2.x, you gonna break your existing code for sure!

Can anyone name what are the gestures deprecated?

its completely re written. so you can able to seen the new gestures in v2.0.x

Thanks Vinayak

I'm going to close this since its more of a question then a bug so i'm going to close it as we are now back moving again and focusing on future development!
@VinayakHegde not dead back and hopefully better then ever this will be a community project now!


Update to latest version to solve "Buildtime Error: Expected a type in "DFNetworkManager.h"

It is said Expected a type in  DFNetworkManager.h:

(NSURLSessionDataTask *)requestForJSONWithURL:(NSURL *)URL
param:(id)param
callback:(DFNetworkJSONCallback)callback;

Just update to the latest code with "git pull"

Solved.


iOS 11/12 drag not working

Couldn't get it to drag, scrolled the page instead. I checked Storybook and some of the examples are working, most weren't.
eg. Multiple Containers & the Basic Setup Draggable options worked, Droppable Basic Setup doesn't work.
Saw this commit 1fe9b5c9d34237aae6ab22d54478c419d44a079a and may be linked.
(In MultipleContainers.tsx PointerSensor is removed, with Touch and Mouse used instead.)
Setting these sensors seems to have fixed the problem for us:
const sensors = useSensors(
        useSensor(MouseSensor),
        useSensor(TouchSensor),
        useSensor(KeyboardSensor)
)

<DndContext sensors={sensors}>
...
</DndContext>

Refer to the documentation for PointerSensor and TouchSensor:
https://docs.dndkit.com/api-documentation/sensors/pointer#touch-action
https://docs.dndkit.com/api-documentation/sensors/touch#touch-action


Start logging in asyncio ApplicationRunner

Fixes #589

Current coverage is 58.56%

Merging #590 into master will decrease coverage by -0.01% as of f477e92

@@            master    #590   diff @@
======================================
  Files           61      61
  Stmts        10297   10300     +3
  Branches      1733    1734     +1
  Methods          0       0
======================================
+ Hit           6031    6032     +1
- Partial        583     584     +1
- Missed        3683    3684     +1

Review entire Coverage Diff as of f477e92

Powered by Codecov. Updated on successful CI builds.


How can I add default values ?

For example, I want to add the username, I tried this and it did not work
$user()$ This is a Test

At the moment there is no support for default values or place holders


Use BulkUpdate like EFCore Attach method

I'm wondering how the BulkUpdate method works, since I'd like to use it like the Attach method of EF Core.
The Attach method allows you to mark as Changed each field of the entity individually, and so then it generates accordingly a more compact UPDATE SQL command.
I need to update a List<Entity> where just a subset of fields for each entity have to be updated. That's because I get only the IDs of the entities that needs to be updated and then those are mapped to new Entity objects with values set for just the ID and the 2-3 fields which value has to be changed, others are null. Then I mark as Changed just those 2-3 fields and the Attach method makes its work.
I suppose that if I cannot use an approach like the Attach method, I will end with all the fields updated and so also others that should not be, will be set to null.
Is it possible by using BulkUpdate?

You can specify which columns to update with PropertiesToInclude from BulkConfig.
There is more info in the ReadMe (BulkConfig arguments)
You can find examples in EFCoreBulkTest/RunUpdate.

@borisdj Thanks!
I should have read the README more calmly... I gave it just a quick read.
Finally, this is my implementation:
await ResilientTransaction.New(Context).ExecuteAsync(async () =>
{
    metas = await Context.Anomalies
        .Where(a => request.Ids.Contains(a.Id) && a.Closed == null)
        .Select(a => new AnomalyMeta
        {
            Id = a.Id,
            Machine = a.Machine,
            SelectedAction = a.SelectedAction,
            Closed = a.Closed,
        })
        .AsNoTracking()
        .ToArrayAsync(cancellationToken);

    DateTime now = DateTime.Now;

    var anomalies = metas.Select(m => new dom.Anomaly { Id = m.Id, SelectedAction = request.Action, Closed = now }).ToList();

    await Context.BulkUpdateAsync(anomalies, new BulkConfig
    {
        PropertiesToInclude = new List<string>
        {
            nameof(dom.Anomaly.SelectedAction),
            nameof(dom.Anomaly.Closed),
        }
    });
});

But BulkUpdate seems to ignore the ConcurrencyToken set on the 2 fields in the Entity Configuration of EF Configure method.
public void Configure(EntityTypeBuilder<Entities.Anomaly> builder)
{
    builder.Property(e => e.Id)
        .ValueGeneratedOnAdd();

    builder.HasOne(e => e.Machine);

    builder.Property(e => e.ItemCode)
        .HasMaxLength(50);

    builder.Property(e => e.ItemType)
        .HasMaxLength(50);

    builder.Property(e => e.Domain)
        .HasMaxLength(50)
        .IsRequired();

    builder.Property(e => e.Code)
        .HasMaxLength(50)
        .IsRequired();

    builder.Property(e => e.Data)
        .HasColumnType("text");

    builder.Property(e => e.SelectedAction)
        .IsConcurrencyToken();

    builder.Property(e => e.Closed)
        .IsConcurrencyToken();
}

While debugging, if I make a manual update in SQL to on one of the previously selected entities, just before calling await Context.BulkUpdateAsync(), the execution continues without any Exception, instead of failing with a DbConcurrencyException, since the values of one of the involved entites are changed.


Copilot integration with terminal in WSL (SSH remote) cause keystrokes to stutter and pastes to fail.

Github copilot terminal completions is causing my key strokes to stutter (it projects the suggestion and deletes it as I keep typing) because it is not fast enough to adapt what I type and ends up deleting what I just typed.
I need to keep pushing the same keystroke many times until it comes out.
It makes the integrated terminal unusable. There is no setting to disable copilot in the integrated terminal so I have to disable it completely.

Copilot Chat Extension Version: v0.17.1
VS Code Version:

Version: 1.91.1 (user setup)
Commit: f1e16e1e6214d7c44d078b1f0607b2388f29d729
Date: 2024-07-09T22:06:49.809Z
Electron: 29.4.0
ElectronBuildId: 9728852
Chromium: 122.0.6261.156
Node.js: 20.9.0
V8: 12.2.281.27-electron.0
OS: Windows_NT x64 10.0.22631

OS Version:
Host:

OS Name	Microsoft Windows 11 Pro
Version	10.0.22631 Build 22631

Distro
Distributor ID: Kali
Description:    Kali GNU/Linux Rolling
Release:        2024.2
Codename:       kali-rolling

WSL
WSL version: <IP_ADDRESS>
Kernel version: <IP_ADDRESS>-2
WSLg version: 1.0.61
MSRDC version: 1.2.5326
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26091.1-240325-1447.ge-release
Windows version: 10.0.22631.3880

Logs:

2024-07-25 11:42:37.542 [info] [FetcherService] Using the Helix fetcher.
2024-07-25 11:42:37.542 [info] [gitExtensionService] Initializing Git extension service.
2024-07-25 11:42:37.542 [info] [gitExtensionService] Successfully activated the vscode.git extension.
2024-07-25 11:42:37.542 [info] [gitExtensionService] Enablement state of the vscode.git extension: true.
2024-07-25 11:42:37.542 [info] [gitExtensionService] Successfully registered Git commit message provider.
2024-07-25 11:42:37.773 [info] [auth] Logged in as <redacted>
2024-07-25 11:42:37.773 [info] [auth] Logged in as <redacted>
2024-07-25 11:42:39.034 [info] [chat] copilot token chat_enabled: true
2024-07-25 11:42:39.034 [info] [githubTitleAndDescriptionProvider] GitHub.vscode-pull-request-github extension is not yet activated.
2024-07-25 11:42:39.073 [info] [auth] Got Copilot token for <redacted>
2024-07-25 11:42:39.144 [info] [chat] copilot token chat_enabled: true
2024-07-25 11:42:39.144 [info] [auth] Got Copilot token for <redacted>
2024-07-25 11:42:39.460 [info] [auth] Logged in as <redacted>
2024-07-25 11:42:39.475 [info] [chat] copilot token chat_enabled: true
2024-07-25 11:42:39.476 [info] [auth] Got Copilot token for <redacted>
2024-07-25 12:08:31.240 [info] [auth] Logged in as <redacted>
2024-07-25 12:08:31.642 [info] [chat] copilot token chat_enabled: true
2024-07-25 12:08:31.642 [info] [auth] Got Copilot token for <redacted>
2024-07-25 12:35:11.962 [info] [auth] Logged in as <redacted>
2024-07-25 12:35:12.393 [info] [chat] copilot token chat_enabled: true
2024-07-25 12:35:12.393 [info] [auth] Got Copilot token for <redacted>
2024-07-25 12:37:11.856 [info] [auth] Logged in as <redacted>
2024-07-25 12:37:12.325 [info] [chat] copilot token chat_enabled: true
2024-07-25 12:37:12.325 [info] [auth] Got Copilot token for <redacted>
2024-07-25 13:02:13.155 [info] [auth] Logged in as <redacted>
2024-07-25 13:02:13.771 [info] [chat] copilot token chat_enabled: true
2024-07-25 13:02:13.771 [info] [auth] Got Copilot token for <redacted>
2024-07-25 13:29:11.961 [info] [auth] Logged in as <redacted>
2024-07-25 13:29:12.402 [info] [chat] copilot token chat_enabled: true
2024-07-25 13:29:12.402 [info] [auth] Got Copilot token for <redacted>
2024-07-25 13:31:11.857 [info] [auth] Logged in as <redacted>
2024-07-25 13:31:12.287 [info] [chat] copilot token chat_enabled: true
2024-07-25 13:31:12.287 [info] [auth] Got Copilot token for <redacted>
2024-07-25 13:56:11.989 [info] [auth] Logged in as <redacted>
2024-07-25 13:56:12.438 [info] [chat] copilot token chat_enabled: true
2024-07-25 13:56:12.438 [info] [auth] Got Copilot token for <redacted>
2024-07-25 14:10:23.376 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 1752 ms
2024-07-25 14:10:23.884 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 14:10:23.885 [info] [streamChoices] request done: requestId: [2486c11e-f23e-4c94-8abe-7127c37b5f8d] model deployment ID: []
2024-07-25 14:10:24.431 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 389 ms
2024-07-25 14:10:24.439 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 14:10:24.440 [info] [streamChoices] request done: requestId: [7f5d5e82-d111-47f7-9d26-1688aa6a01d5] model deployment ID: []
2024-07-25 14:21:12.613 [info] [auth] Logged in as <redacted>
2024-07-25 14:21:13.010 [info] [chat] copilot token chat_enabled: true
2024-07-25 14:21:13.010 [info] [auth] Got Copilot token for <redacted>
2024-07-25 14:46:13.062 [info] [auth] Logged in as <redacted>
2024-07-25 14:46:13.496 [info] [chat] copilot token chat_enabled: true
2024-07-25 14:46:13.496 [info] [auth] Got Copilot token for <redacted>
2024-07-25 15:11:13.572 [info] [auth] Logged in as <redacted>
2024-07-25 15:11:14.036 [info] [chat] copilot token chat_enabled: true
2024-07-25 15:11:14.036 [info] [auth] Got Copilot token for <redacted>
2024-07-25 15:36:14.091 [info] [auth] Logged in as <redacted>
2024-07-25 15:36:14.686 [info] [chat] copilot token chat_enabled: true
2024-07-25 15:36:14.686 [info] [auth] Got Copilot token for <redacted>
2024-07-25 15:36:38.540 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 1533 ms
2024-07-25 15:36:48.825 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:36:48.828 [info] [streamChoices] request done: requestId: [94f5bc01-e5ca-4a08-aa20-715758941c61] model deployment ID: []
2024-07-25 15:36:49.505 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 434 ms
2024-07-25 15:36:49.550 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:36:49.551 [info] [streamChoices] request done: requestId: [0aa42d5d-b1f7-42b6-a674-1787bb8a88fa] model deployment ID: []
2024-07-25 15:39:03.862 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 1470 ms
2024-07-25 15:39:22.688 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:39:22.689 [info] [streamChoices] request done: requestId: [e7d62f58-0956-4c0f-8009-5703cc8d2c5d] model deployment ID: []
2024-07-25 15:39:23.335 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 405 ms
2024-07-25 15:39:23.420 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:39:23.421 [info] [streamChoices] request done: requestId: [94d78c79-2c0a-4dc8-bbcc-304010b74274] model deployment ID: []
2024-07-25 15:42:17.682 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 1563 ms
2024-07-25 15:42:28.345 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:42:28.346 [info] [streamChoices] request done: requestId: [506e686e-8f4b-41a4-853a-7192312db796] model deployment ID: []
2024-07-25 15:42:29.038 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 465 ms
2024-07-25 15:42:29.621 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:42:29.622 [info] [streamChoices] request done: requestId: [8000f707-064a-47a7-be86-7621f9ac97d9] model deployment ID: []
2024-07-25 15:43:17.752 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 1290 ms
2024-07-25 15:43:20.536 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:43:20.538 [info] [streamChoices] request done: requestId: [ea8f406a-1227-4791-864f-5905222eb30f] model deployment ID: []
2024-07-25 15:43:21.168 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 462 ms
2024-07-25 15:43:21.189 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:43:21.190 [info] [streamChoices] request done: requestId: [d916961d-74c3-4aa7-9f57-15b00b5e6be3] model deployment ID: []
2024-07-25 15:48:50.555 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 1709 ms
2024-07-25 15:49:11.195 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:49:11.197 [info] [streamChoices] request done: requestId: [2c0421de-53ff-4cd6-9e83-d6ff618a9b25] model deployment ID: []
2024-07-25 15:49:11.888 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 462 ms
2024-07-25 15:49:12.057 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 15:49:12.058 [info] [streamChoices] request done: requestId: [5a665849-6e8d-41f3-a7b0-47cc82e7c7ee] model deployment ID: []
2024-07-25 16:01:14.742 [info] [auth] Logged in as <redacted>
2024-07-25 16:01:15.533 [info] [chat] copilot token chat_enabled: true
2024-07-25 16:01:15.533 [info] [auth] Got Copilot token for <redacted>
2024-07-25 16:22:18.251 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 1632 ms
2024-07-25 16:22:35.209 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 16:22:35.211 [info] [streamChoices] request done: requestId: [4913dd13-429e-4053-acc7-5a9e456b67aa] model deployment ID: []
2024-07-25 16:22:36.143 [info] [chat fetch] request.response: [https://api.githubcopilot.com/chat/completions], took 655 ms
2024-07-25 16:22:36.239 [info] [streamMessages] message 0 returned. finish reason: [stop]
2024-07-25 16:22:36.240 [info] [streamChoices] request done: requestId: [6a9f4441-5050-4f33-ada7-d90ec2617017] model deployment ID: []
2024-07-25 16:26:15.583 [info] [auth] Logged in as <redacted>
2024-07-25 16:26:16.081 [info] [chat] copilot token chat_enabled: true
2024-07-25 16:26:16.081 [info] [auth] Got Copilot token for <redacted>
2024-07-25 16:51:16.131 [info] [auth] Logged in as <redacted>
2024-07-25 16:51:16.761 [info] [chat] copilot token chat_enabled: true
2024-07-25 16:51:16.762 [info] [auth] Got Copilot token for <redacted>

Steps to Reproduce:
There is not much to say on how to repro this, except maybe using a VPN proxy to make the requests take longer. Also having WSL Perhaps having the same setup (including WSL), could be enough.

Copilot doesn't have suggestions like this. It sounds like you're hitting https://github.com/microsoft/vscode/issues/126209 and could disable local echo in settings to workaround this.


[KYUUBI #304]  Add kyuubi-ctl shell script

Why are the changes needed?

Add shell script kyuubi-ctl to launch kyuubi service control client.
How was this patch tested?
Run test locally.

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

list:

get

create:

The script LGTM. One question, I saw you run sh bin/kyuubi-ctl in screenshot, have you set x permission on bin/kyuubi-ctl? The git will track the unix permissions of file.
I have a look on build/dist, we don't run chmod +x bin/* when make dist, and suppose the dist only running on UNIX-like OS, so the permission is retained.

delete:

Its permission is same with bin/kyuubi
-rwxr-xr-x  1 fwang12  110525255   1.6K Apr 12 14:15 bin/kyuubi-ctl

Other question,
For the embedded zookeeper use case,
I have to set below two parameters.
kyuubi.zookeeper.embedded.data.dir /kyuubi
kyuubi.ha.zookeeper.namespace /kyuubi

Will follow it and try to combine these two parameters.

I don't get it, what do you mean about combine?

Can you omit sh and test locally too?

Will follow it and try to combine these two parameters.

I don't get it, what do you mean about combine?

At first, I started kyuubi server with kyuubi.zookeeper.embedded.data.dir=/kyuubi and did not define the value of kyuubi.ha.zookeeper.namespace.
For create action, the namespace transferred is toNamespace, and the fromNamepace is loaded by the key of kyuubi.ha.zookeeper.namespace, which was not defined in kyuubi-defaults.conf.
So, we need some fallback for the default namespace.

This command usage hint looks confusing, we may improve it later. @pan3793 do you think we should use common-cli or something as simple as it to do the command parse?

It works well without sh.

Will follow it and try to combine these two parameters.

I don't get it, what do you mean about combine?

At first, I started kyuubi server with kyuubi.zookeeper.embedded.data.dir=/kyuubi and did not define the value of kyuubi.ha.zookeeper.namespace.
For create action, the namespace transferred is toNamespace, and the fromNamepace is loaded by the key of kyuubi.ha.zookeeper.namespace, which was not defined in kyuubi-defaults.conf.
So, we need some fallback for the default namespace.

the get/list looks exactly the same.
For followups,

I think the get should return the znode.toString, as something like serverUrl......version=...seq...
the result wrapping seems to make the command pipeline a bit hard? list foreach delete for delete-all?
I am not sure these commands are working well when ACL or SSL enabled,
Shall we also setACL/getACL actions?

This command usage hint looks confusing, we may improve it later. @pan3793 do you think we should use common-cli or something as simple as it to do the command parse?

+1 for leveraging library to build cli parser.


add label when keywords are used

Would be nice if it adds a label to the PR that indicates that the PR is dependent/blocked

That's dependent upon a label already existing.  Github does add the blocked label by default, but it can be removed if the repo owner has modified them.
I'd recommend adding the labeler action to your workflow file to run when the dependency check fails.

Sorry wasnt clear enough on this one. Yes i meant set a label that u created in your repo for this purpose and use it in the workflow
like its done here https://github.com/Levi-Lesches/blocking-issues#blocking-issues


UI Changes in Landing page and send notification to Slack

To make some custom changes to the Landing page.
Send notification to Slack channel


Realm/Legion: Add support for structured (~affine) indirect copies

With unstructured scatter/gather just about done, we still need to handle the structured cases for things like stencils, GMG, etc.

After thinking further on this, we realized cuNumeric actually requires up to 3 transformations on each direction, affine -> explicit -> affine. Consider this example:
x = np.arange(20) + 100   # [100, 101, ..., 119]
xx = x[10:]               # [110, 111, ..., 119]
y = np.arange(9, -1, -1)  # [9, 8, ..., 0]
yy = y[2:7]               # [7, 6, 5, 4, 3]
z = xx[yy]                # [117, 116, 115, 114, 113]

To implement this with a single indirect copy, we would need to proceed as follows:
start: copy index space                       = 0   1   2   3   4
src_indirect_1: apply yy transformation (+2)  = 2   3   4   5   6
src_indirect_2: dereference region backing y  = 7   6   5   4   3
src_indirect_3: apply xx transformation (+10) = 17  16  15  14  13
dereference src, i.e. region backing x        = 117 116 115 114 113

Alternatively, we could attach affine transformations to each field on the copy (source, target, source indirection, target indirection), to mirror how we attach affine transformations to Stores passed to tasks (in that case we do it by defining custom accessors).

Right so we effectively need the ability to have an affine transform applied to any of the region requirements to a copy operation in Legion. The place where this gets interesting is that this now will require there to effectively be an "abstract" iteration space for any kind of copy because the source/destination indirection region requirements no longer implicitly represents the iteration space for the copy. We'll need a way to specify that in the new interface, although I suppose that was going to be true anyway just to deal with having affine transforms for the source/indirect parts anyway.

now will require there to effectively be an "abstract" iteration space for any kind of copy

The iteration space of the copy has always been explicit (copy is a method of the IndexSpace class) at the Realm API level.  However, the chaining of indirections is not something the current API can handle, and I think will also create some challenges for the Legion analysis (e.g. in a affine->explicit case, the subregions of the indirection field that are read during the copy won't necessarily have names in the region tree).

I think will also create some challenges for the Legion analysis (e.g. in a affine->explicit case, the subregions of the indirection field that are read during the copy won't necessarily have names in the region tree).

We're just going to do what we do with the other indirection fields in that case and have the application provide region requirements that can optionally over-approximate the needed data for that field, just like we would do on the indirection for a current gather/scatter copy. The application can provide as tight of bounds as it wants, but over-approximate is fine, especially since the indirection fields are read-only.

Here is a working merge request for an interface for this issue:
https://gitlab.com/StanfordLegion/legion/-/merge_requests/467
Also, @manopapad did a small worked example to understand how to map NumPy copies down to the interface:
  a = np.arange(10) * 2
  c = np.arange(9, -1, -1)
  x = a[2:7][ c[5:10] ]

which would translate to the interface as:
  copy index space = Rect(lo=0, hi=4)
  src = a.regionfield, src_transform = \x -> x + 2
    => src index space = Rect(lo=2, hi=6)
    => src values = [4, 6, 8, 10, 12]
  dst = x.regionfield, dst_transform = None
  src_indirect = c.regionfield, src_indirect_transform = \x -> x + 5
    => src_indirect index space = Rect(lo=5, hi=9)
    => src_indirect values = [4, 3, 2, 1, 0]
  dst_indirect = None

Translated: for each point in the copy index space, you do the source indirect transform on the point, using the result you read the value out of the source indirect array, then you apply the source transform to the read value, then you use that value to read out of the source array and write into the destination array.
@streichler and @apryakhin to verify that conforms with their expectations of what Realm will eventually be able to support.

Correcting my example, after some clarifications from @lightsighter:
a = np.arange(10) * 2
c = np.arange(9, -1, -1)
x = a[2:7][ c[5:10] ]

becomes the following copy operation:
copy index space = Rect(lo=0, hi=4)
dst = x.regionfield, dst_transform = None
dst_indirect = None
src = a.regionfield, src_transform = \x -> x + 2
src_indirect = c.regionfield, src_indirect_transform = \x -> x + 5

which works as follows:
starting index space = Rect(lo=0, hi=4)
=> indices = [0, 1, 2, 3, 4]
apply src_indirect_transform = \x -> x + 5
=> indices = [5, 6, 7, 8, 9]
dereference src_indirect
=> indices = [4, 3, 2, 1, 0]
apply src_transform = \x -> x + 2
=> indices = [6, 5, 4, 3, 2]

@manopapad Can you extent you example above by writing down what the arguments to the index copy launcher in Legion would be for this case from cuNumeric's perspective? Let's assume we do a index copy launch with two point copy operations. I'm betting that Legion's current semantics won't quite do what we want here, but I'd like to see how you want it to work. Feel free to describe any partitions you want on the data, no need to write down explicit projection functions, just give names to subregions for the arrays and say which subregions each point copy operation is going to use.

Here is a possible execution:
We have all the required information at the cunumeric level to partition the indirection fields such that each point copy operation will find all its indirection information locally (even if there are transformations on the indirection fields).
Whether or not the partitions of the src and dst fields will match up with the partition of the copy operation itself depends on the contents of the indirection fields. In this example our partitioning happens to be quite off.
Copy index space partitions:
Icopy = Rect(lo=0, hi=4)
p_Icopy[0] = Rect(lo=0, hi=1) # 2 indices
p_Icopy[1] = Rect(lo=2, hi=4) # 3 indices

Partitions of a's index space:
Ia = Rect(lo=0, hi=9)
p_Ia[0] = Rect(lo=0, hi=3)
p_Ia[1] = Rect(lo=4, hi=9)

Partitions of c's index space:
Ic = Rect(lo=0, hi=9)
p_Ic[0] = Rect(lo=0, hi=6) # covers at least the first 2 copy indices, after transformation
p_Ic[1] = Rect(lo=7, hi=9) # covers at least the last 3 copy indices, after transformation

Partitions of c's contents:
Rc = [0->9, 1->8, 2->7, 3->6, 4->5, 5->4, 6->3, 7->2, 8->1, 9->0]
p_Rc[0] = [0->9, 1->8, 2->7, 3->6, 4->5, 5->4, 6->3]
p_Rc[1] = [7->2, 8->1, 9->0]

Point copy 0:
starting index space = Rect(lo=0, hi=1)
=> src_indices = [0, 1]
apply src_indirect_transform = \x -> x + 5
=> src_indices = [5, 6]
dereference p_Rsrc_indirect[0] = p_Rc[0] -- all indices are within bounds
=> src_indices = [4, 3]
apply src_transform = \x -> x + 2
=> src_indices = [6, 5]

The way the source array a was partitioned, these indices are not in p_Isrc[0] = p_Ra[0] = Rect(lo=0, hi=3).
Point copy 1:
starting index space = Rect(lo=2, hi=4)
=> indices = [2, 3, 4]
apply src_indirect_transform = \x -> x + 5
=> indices = [7, 8, 9]
dereference p_Rsrc_indirect[1] = p_Rc[1] -- all indices are within bounds
=> indices = [2, 1, 0]
apply src_transform = \x -> x + 2
=> indices = [4, 3, 2]

The way the source array a was partitioned, some of these indices are not in p_Isrc[1] = p_Ia[1] = Rect(lo=4, hi=9).

Whether or not the partitions of the src and dst fields will match up with the partition of the copy operation itself depends on the contents of the indirection fields. In this example our partitioning happens to be quite off.

Right this is kind of what I was expecting to happen. I suspect that we'll need some extra support in legion to support "collective" behavior of the point copy operations in the case when there is a transform on the indirection fields. It will require more preimages, but that'll be the price we'll pay for supporting the additional functionality.

Thanks for the discussion!
I think we need to reach a consensus on what functionality needs to be supported by Realm as the end state. We are getting close to merging this PR which adds a native support for structured indirect copies in Realm. The set of use cases can be found here:

https://gitlab.com/StanfordLegion/legion/-/merge_requests/448/diffs#4723f133b387601128deaf79fd616439bfdf71e5

When PR is merged, Realm will be able to apply any kind of affine transform on both src and dst index spaces, with a single level of indirection. It will be taking the fast path since a transform is not applied on a set of points individually but directly on lo/hi points of an index space bounds.
The example below is effectively a structured copy with an affine transform on array c "S(ATc)" and an unstructured copy with an affine transform on a set of points through the source indirect field (U(ATa))…so S(ATc)U(ATa). The existing API and the data path (when PR is applied) at this point do not support combining structured and unstructured copies together.
  a = np.arange(10) * 2
  c = np.arange(9, -1, -1)
  x = a[2:7][c[5:10]]

An even simpler version which is also not supported:
  a = np.arange(10) * 2
  c = np.arange(9, -1, -1)
  x = a[c[5:10]]

A structured copy with an affine transform followed by an unstructured copy using the set of transformed points.
After giving it some thoughts, I think it can be done but have several questions:

How critical is it for us to support the "mixed" copies natively in Realm?

I understand that Legate is able to emulate this by splitting the operation on parts and materializing the intermediate results? If yes, why it is not sufficient?

What percentage of operations required for advanced indexing in CuNumeric are mixed? (not sure if that's easy to estimate)
Are there other operation types which needs to be discussed?

Perhaps we can list more examples here.

Assuming we need this going forwards, we can certainly design an API (Realm) which enables us to incrementally add functionality without the need to update the call sites...e.g. Legion -> Legate -> CuNumeric.

@apryakhin can you

When PR is merged, Realm will be able to apply any kind of affine transform on both src and dst index spaces, with a single level of indirection.

Could you walk us through an example with some small arrays, showing what we can do with the new interface?

How critical is it for us to support the "mixed" copies natively in Realm? I understand that Legate is able to emulate this by splitting the operation on parts and materializing the intermediate results? If yes, why it is not sufficient?

I have updated https://github.com/nv-legate/cunumeric/issues/41 with the logic followed in the current implementation. As you suggest, we can handle such cases by making intermediate copies, but we could avoid some copies if Realm could handle affine transformations directly (which AFAIU is also useful for other usecases). We certainly don't need Realm to support the full range of cases.

What percentage of operations required for advanced indexing in CuNumeric are mixed? (not sure if that's easy to estimate)

So far we haven't seen any "real-world" instances of mixed indexing (but haven't really seen many workloads that use advanced indexing in general).

Are there other operation types which needs to be discussed?

The cases listed on https://github.com/nv-legate/cunumeric/issues/41 are the only ones that should arise in cuNumeric, assuming we are not fusing operations.

Could you walk us through an example with some small arrays, showing what we can do with the new interface?

Yes, certainly but please note that there is no new API (yet). The PR is based on the existing Ream API for affine indirect copies.

So far we haven't seen any "real-world" instances of mixed indexing (but haven't really seen many workloads that use advanced indexing in general).

Thanks! Effectively we don't have any data points yet. Will it be possible for us estimate nevertheless what set of operations are going to be the most critical? By critical I mean things such as: provide good performance, low memory footprint and the frequency of their use in applications.
I believe the description below would be a gather and the step#2 materializes to a new intermediate array?
For __get_item__:
1. use newly created result array as dst
2. if the index array is a view, make a copy to remove its transform
3. use (copy of) index array as src_indirect
4. if the base array is a view, make a copy to remove its transform
5. use (copy of) base array as src

For example:
starting index space = Rect(lo=0, hi=4)
=> indices = [0, 1, 2, 3, 4]
apply src_indirect_transform = \x -> x + 5
=> indices = [5, 6, 7, 8, 9]
dereference src_indirect
=> indices = [4, 3, 2, 1, 0]

I looked at the tests provided by tests/integration/test_advanced_indexing.py.
I think most of the cases come down to the following patterns?
S = structured, SA = structured + affine transform
U = unstructured, UA = unstructured + affine transform
indices = [1, 3, 5, 8]
x = [...]

- transform on src (SA)
  - y = x[1:]
- transform on src (SA + U)
  - y = x[1:][indices]
- transform on src_indirect (S + UA)
  - y = x[indices[1:]]
- transform on src and src_indirect (SA + UA)
  - y = x[1:][indices[1:]]
  ...
- transform on dst (SA)
  - y[1:] = x
- transform on dst (SA + U)
  - y[1:][indices] = x
- transform on dst_indirect (S + UA)
  - y[indices[1:]]=
- transform on dst and dst_indirect (SA + UA)
  - y[1:][indices[1:]] = x

Is there anything else that I am missing here? @manopapad @lightsighter
I don't quite understand in detail how we are going to ensure that dimensionality matches up between different transforms (single copy operation)? Is that something Legion/CuNumeric should/can handle? In addition, for cases where we deal with the distributed data I assume that it's a pre-condition that a copy is split on independent operations on local data only before it's fed to the Realm API?

@apryakhin :

I believe the https://github.com/nv-legate/cunumeric/issues/41#issuecomment-1119169132 below would be a gather and the step#2 materializes to a new intermediate array?

Yes it will do gather operation at 3) and copy of the index_array at step 2 materializes transformed array to a new intermediate array.

I think most of the cases come down to the following patterns?

This is correct, but keep in mind that indirect can have multiple transforms.
For the  example below indices will have 2 transforms (slice and transpose):
index = [1,2,3]
indices = [index, : , index, 2:]

Will it be possible for us estimate nevertheless what set of operations are going to be the most critical?

I don't think we can make a meaningful estimate with the information that we have.

I don't quite understand in detail how we are going to ensure that dimensionality matches up between different transforms (single copy operation)? Is that something Legion/CuNumeric should/can handle?

You can assume that the dimensionality of arrays and transforms will be checked before the operation makes it to Legion/Realm (e.g. Legate will never emit a copy where src is a 2d array with a 3d->3d affine transformation).

In addition, for cases where we deal with the distributed data I assume that it's a pre-condition that a copy is split on independent operations on local data only before it's fed to the Realm API?

As analyzed on https://github.com/StanfordLegion/legion/issues/705#issuecomment-1115770011, I think we can guarantee at the Legate level that each point copy operation will find all the relevant indirection information locally. However, the src/dst_indirect field can contain arbitrary data, which can point outside each point's local portion of src/dst.
AFAIK we are not planning to inspect the indirection data at the Legate level, so Legion and/or Realm will have to handle out-of-partition accesses.

For the example below indices will have 2 transforms (slice and transpose):

I think we are operating under the assumption that all transformations can be collapsed into a single affine transformation.

This is correct, but keep in mind that indirect can have multiple transforms.
For the example below indices will have 2 transforms (slice and transpose):

Yes, I believe that multiple affine transforms can be folded into a single one.

Could you walk us through an example with some small arrays, showing what we can do with the new interface?

This API we provide today by Realm (C++):
template <int N2, typename T2 = int>
    class Affine : public CopyIndirection<N,T>::Base {
    public:
      virtual ~Affine(void) {}

      Matrix<N,N2,T2> transform;
      Point<N2,T2> offset_lo, offset_hi;
      Point<N2,T2> divisor;
      Rect<N2,T2> wrap;
      std::vector<IndexSpace<N2,T2> > spaces;
      std::vector<RegionInstance> insts;

      REALM_INTERNAL_API_EXTERNAL_LINKAGE
      virtual IndirectionInfo *create_info(const IndexSpace<N,T>& is) const;
    };

    template <int N2, typename T2 = int>
    class Unstructured : public CopyIndirection<N,T>::Base {
    public:
      virtual ~Unstructured(void) {}

      FieldID field_id;
      RegionInstance inst;
      bool is_ranges;
      bool oor_possible;  // can any pointers fall outside all the target spaces?
      bool aliasing_possible;  // can multiple pointers go to the same element?
      size_t subfield_offset;
      std::vector<IndexSpace<N2,T2> > spaces;
      std::vector<RegionInstance> insts;

      REALM_INTERNAL_API_EXTERNAL_LINKAGE
      virtual IndirectionInfo *create_info(const IndexSpace<N,T>& is) const;
    };
  };

It enables us to handle the following cases (common patterns for structured copy with an affine transform).
x = [0, 1, 2, 3, 4, 5, 6, 7]
y = x[2:7] # translation
y = x[::2]  # scaling
y = x[:, None] # transpose
...

Essentially we can express any transform as a function of A * p + b where:

A (N2, N) - transform matrix
p (N) - point inside a copy index space
b (N2) - offset_lo, offset_hi
N - copy domain
N2 - destination domain

In addition, the API allows us to express an unstructured indirect copy (however without an affine transform). For example:
indices = [0, 2, 4, 6]
x = [0, 1, 2, 3, 4, 5, 6, 7]
y = x[indices]
...

Besides the mixed indirect copies could you think of an example that are required for advanced indexing but will not be handled by the current API? @ipdemes @lightsighter @manopapad Thanks!

It enables us to handle the following cases (common patterns for structured copy with an affine transform).

Note that simply declaring a variable like y = x[2:7] in cuNumeric will not trigger a copy operation, because NumPy semantics dictate that such operations create writable views. Instead we create a lightweight object that carries the transformation info. If y is used in an operation that is implemented using a task (e.g. an arithmetic operation, like z = 2 * y), then we will still not create a new copy of y. Instead we will pass the transformation information over to the C++ task implementation, so it can read at an offset from its assigned chunk.
I can think of a couple of cases where having direct support for one affine indirection on each direction of a copy (but not mixed unstructured + affine) would help us:

"Basic" copies on arrays with transformations, e.g. a[1:6] = b[2:7]: These could now be implemented using a copy, instead of a custom copy task.
__set_item__ with advanced indexing, e.g. a[2:7][ c[5:10] ] = b[3:8]: We don't have to make a copy to remove the transformation from the value array b[3:8], instead we can pass its transformation as an affine src_indirect field.

Just wanted to summarize what we have discussed today:

We can start implementing advanced indexing using Legion API (@lightsighter ). It can at least start using an existing Realm support for unstructured copies and will enable us to check for existing bugs in the "plumbing".
We need to evaluate the GPU shallow-water solver to come up with a list of use cases for advanced indexing.
We need to find and evaluate other applications..to get more data points.

Please find more links below:

The proposed version of a new Realm API here
The google doc we used for the technical discussion here

@apryakhin :
I have looked through the TorchSW code and these are the advanced indexing APIs that are used here (in the order of # of calls):
y[:, a:b, c:d] = x
y[indices]=x
y[:,a,b:c]=x
x=y[indices]

Thanks Irina, there are effectively:

Structured copy, scatter with an affine transform on y and z coordinates
Unstructured copy, scatter
Structured copy, scatter with an affine transform on y and z coordinates
Unstructured copy, gather

We should be able to handle all 4 cases when we merge an "affine" branch into the master.

@ipdemes: based on what @magnatelee showed in the meeting yesterday, there are cases in the TorchSWE codebase where we have basic indexing mixed with advanced indexing, e.g. something like:
y[:, 0, indices] = x

AFAIU the way we handle this internally results in a scatter-gather copy with a transform on the dst array. First we get rid of the constant 0 by creating a view:
z = y[:, 0]

and then we emit the scatter-gather copy for:
z[:, indices] = x

Currently, because Legion copies cannot handle transformations, the array z is materialized before being passed to a copy. This is one of those cases where we would benefit from having some support for "mixed indexing" at the Legion/Realm level.
Is it possible to collect information on how often this sort of pattern occurs?
Also, in an expression like this x=y[indices], is it possible to tell how often (if at all) x and y are views?
It may not be possible to extract this level of detail by analyzing the text of the code. Assuming we were able to run TorchSWE on one rank, it might be feasible to add some instrumentation to get_item and set_item in deferred.py, and record information on whether self/rhs contains transformations, and what kind of key we're dealing with (basic indexing only, only a boolean array and :, only integer/boolean arrays and :, both basic and advanced indexing) (and whether any integer/boolean index arrays used in the key are themselves views).

@magnatelee for visibility I am going to be resurrecting this github issue

The work is done on the Realm side, however we still need Legion plumbing and testing

@apryakhin Can you provide a pointer to the branch where the Realm code is ready?


Better function for creating valid URL

Also, create a ui:toUrlValue full tag.

We can't save a page URL containing a property, eg.: property/ce:url.

All URLs are now saved as lower case.


Prepare for new release of Jira

Workflow links: https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/7824819112, https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/7824821924, https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/7824824286.

Re-run workflow links: https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/8706811570/job/23880295380, https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/8706814142/job/23880302968, https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/8706816699/job/23880311826
Integration tests pass, so the current version of Jira Server for Slack is marked compatible with Jira 9.13.1


INSTALLING FONTS

What feature or improvement do you think would benefit Files?
Would be great if we could install fonts from this app. Actual option is not working.
Requirements

This proposal will accomplish X
This proposal will accomplish Y
This proposal will accomplish Z

Files Version
3.6
Windows Version
latest
Comments
thanks!

Thanks for the feedback, Files can install fonts by opening them or selecting the option from the toolbar. If this isn't working for you please open a bug report. If you do please put the actual Windows version you are on, you can do it by going to Files settings > About > Feedback > Bug report


Screen Corruption Windows 11

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.63.2 (user setup)
VS Code Insider Version: 1.64.0-insider (user setup)
OS Version: Windows_NT x64 10.0.22000

Steps to Reproduce:
Just turning on VSCode/VSCode Insiders leads to visible screen corruption making usage impossible
Problem persisted on fresh install, even when I had manually erased the entire extensions folder.

https://github.com/microsoft/vscode/issues/139827#issuecomment-1001943302 suggests steps that may help you investigate the problem.

#139827 (comment) suggests steps that may help you investigate the problem.

The steps detailed in this link fixed my problems.
Should I close this issue?

Good. Yes I suggest you close this one and subscribe to the other one.

Good. Yes I suggest you close this one and subscribe to the other one.

Thank you.


integrated POST api call for goals form. v1

Task: https://github.com/Real-Dev-Squad/mobile-app/issues/170
Description:
Integrated the POST method in goals form, which sends the user input data using the POST api method.
NOTE: There are still necessary changes to be made and will make those changes too.

lint checks are failing please resolve and add a video of the UI in which you get a response ok!


JSON validate

Could there be a function to ensure JSON passed to the processor is valid? Currently incorrect JSON flows through the system to the output sink. It would be ideal to be able to catch it upfront. I do see there is a JSON schema function which could do something similar, but a simple check would be idea.
A alternate approach to this would be to request a field from the JSON object and if the field is null directly set the processor_failed meta field. Is this possible?

perhaps the text condition and the is operator of it could be extended to adopt such functionality.
https://www.benthos.dev/docs/components/conditions/text#is

Hey @gregorskii,
There's a json condition that allows you to check the existence of the root:
pipeline:
  processors:
  - filter_parts:
      json:
        operator: exists
        path: .

Alternatively, if you're doing some processing on the JSON documents then they should error if the document isn't json, so you can just catch the error and remove the docs:
pipeline:
  processors:
    - jmespath:
        query: ...
    - filter_parts:
        type: processor_failed

Also, because the json condition defaults to operator: equals with a path pointing to the root you can actually just write:
pipeline:
  processors:
  - filter_parts:
      json: {}

Demo here: https://lab.benthos.dev/l/-xeOgY-l0N5

What is the process for filtering and grouping the errors?:
pipeline:
  processors:
    - filter_parts:
        json: {}
    - filter_parts:
        type: processor_failed

output:
  broker:
    pattern: greedy
    copies: 25
    outputs:
      - type: gcp_pubsub # Dead letter queue
        gcp_pubsub:
          project: "{{GCP_PROJECT}}"
          topic: "{{GCP_DEADLETTER_TOPIC}}"
        processors:
          - filter_parts:
              type: processor_failed
      - type: gcp_pubsub # Success
        gcp_pubsub:
          project: "{{GCP_PROJECT}}"
          topic: "{{GCP_TOPIC}}"
        processors:
          - filter_parts:
              not:
                type: processor_failed

Thanks!

Hey @gregorskii,
If you want to route non-JSON docs to their own topic then it's easiest to set a metadata field and interpolate the topic of a single GCP output:
pipeline:
  processors:
    - switch:
        - condition:
            json: {}
          processors:
            - metadata:
                operator: set
                key: dest_topic
                value: "{{GCP_TOPIC}}"
        - processors:
            - metadata:
                operator: set
                key: dest_topic
                value: "{{GCP_DEADLETTER_TOPIC}}"

output:
  gcp_pubsub:
    project: "{{GCP_PROJECT}}"
    topic: "${!metadata:dest_topic}"
    max_in_flight: 25

Also another thing to note is that since v3.8.0 instead of using a greedy broker you can just set a field max_in_flight.

If you're just looking for a more generic pattern for catching all errors then you can also do something similar with try and catch:
pipeline:
  processors:
    - metadata:
        operator: set
        key: dest_topic
        value: "{{GCP_TOPIC}}"

    - try:
        - jmespath:
            query: "TODO"
        - ... more processors that might fail ...

    - catch:
        - metadata:
            operator: set
            key: dest_topic
            value: "{{GCP_DEADLETTER_TOPIC}}"

output:
  gcp_pubsub:
    project: "{{GCP_PROJECT}}"
    topic: "${!metadata:dest_topic}"
    max_in_flight: 25

Awesome thank you again for the excellent examples! I will try to get this working tomorrow. Appreciate it once again!

Putting it all together I came up with this:
http:
  address: <IP_ADDRESS>:1337
  read_timeout: 5s
  root_path: /benthos
  debug_endpoints: false

input:
  type: broker
  broker:
    copies: 25
    inputs:
    - type: http_server
      http_server:
        address: ""
        cert_file: ""
        key_file: ""
        path: /track
        timeout: 5s
        ws_path: /track/ws

buffer:
  type: memory
  memory:
    limit: 1_000_000_000

pipeline:
  processors:
    - switch:
        - condition:
            json: {}
          processors:
            - metadata:
                operator: set
                key: dest_topic
                value: "{{GCP_DEADLETTER_TOPIC}}"

        - processors:
            - conditional:
                condition:
                  jmespath:
                    query: "type(@) == 'array'"
                processors:
                  - unarchive:
                      format: json_array

            # Optionally remove all existing metadata added by your input
            - metadata:
                operator: delete_all

            - metadata:
                operator: set
                key: dest_topic
                value: "{{GCP_TOPIC}}"

            # Add a new metadata field from the contents of your message
            - for_each:
                - metadata:
                    operator: set
                    key: timestamp
                    value: ${!json_field:timestamp}
                - metadata:
                    operator: set
                    key: schema_id
                    value: ${!json_field:metadata.schema_id}
                - metadata:
                    operator: set
                    key: event_id
                    value: ${!json_field:event_id}
                - metadata:
                    operator: set
                    key: event_type
                    value: ${!json_field:event_type}

output:
  gcp_pubsub:
    project: "{{GCP_PROJECT}}"
    topic: ${!metadata:dest_topic}
    max_in_flight: 25

logger:
  prefix: benthos
  level: INFO
  add_timestamp: true
  json_format: true
  static_fields:
    '@service': benthos

shutdown_timeout: 20s

But this results in the topic not being interpolated:
benthos_1  | {"@timestamp":"2020-03-12T22:09:46Z","@service":"benthos","level":"ERROR","component":"benthos.output","message":"Failed to connect to gcp_pubsub: rpc error: code = InvalidArgument desc = Invalid resource name given (name=projects/PROJECT/topics/${!metadata:dest_topic}). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information."}

Sorry @gregorskii, turns out interpolation functions on that field haven't been implemented. Fortunately it was quick to implement (https://github.com/Jeffail/benthos/commit/47b6d780b54accb422ea4498b3be7527f3a3d018), which gives you three options:

Temporarily work around this with a broker, I'll add an example at the bottom, and then use interpolations once I put a release out (probably in a week or so)
If you're comfortable building Benthos yourself then use the latest from master branch
I can put a release candidate out which would provide a release and docker images to pull from

This is currently the only feature added since the last release so ideally I want to avoid putting one out yet, but it's also not a bother if this is blocking you.
Example broker based work around:
output:
  broker:
    pattern: fan_out
    outputs:
      - gcp_pubsub: # DLQ
          project: "{{GCP_PROJECT}}"
          topic: "{{GCP_DEADLETTER_TOPIC}}"
        processors:
          - filter_parts:
              metadata:
                operator: equals
                key: output_topic
                arg: "{{GCP_DEADLETTER_TOPIC}}"

      - gcp_pubsub: # Success
          project: "{{GCP_PROJECT}}"
          topic: "{{GCP_TOPIC}}"
        processors:
          - filter_parts:
              metadata:
                operator: equals
                key: output_topic
                arg: "{{GCP_TOPIC}}"

^ This would result in only one message in flight at a time (a current limitation of the fan_out broker), if needed you can make it even more gross with a greedy broker:
output:
  broker:
    pattern: greedy
    copies: 25
    outputs:
    - broker:
        pattern: fan_out
        outputs:
          - gcp_pubsub: # DLQ
              project: "{{GCP_PROJECT}}"
              topic: "{{GCP_DEADLETTER_TOPIC}}"
            processors:
              - filter_parts:
                  metadata:
                    operator: equals
                    key: output_topic
                    arg: "{{GCP_DEADLETTER_TOPIC}}"

          - gcp_pubsub: # Success
              project: "{{GCP_PROJECT}}"
              topic: "{{GCP_TOPIC}}"
            processors:
              - filter_parts:
                  metadata:
                    operator: equals
                    key: output_topic
                    arg: "{{GCP_TOPIC}}"

^ This would get you 25 max in flight messages but at the cost of opening 50 connections in total.

I can swap it to a greedy broker to test it and wait for the release.
The project we are working on will not be released for a couple more weeks.
Thank you! 🙏

This was the combo of configs that worked for me:
pipeline:
  processors:
    - switch:
        - condition:
            json: {}
          processors:
            - metadata:
                operator: set
                key: dest_topic
                value: "{{GCP_TOPIC}}"

            - conditional:
                condition:
                  jmespath:
                    query: "type(@) == 'array'"
                processors:
                  - unarchive:
                      format: json_array

            # Optionally remove all existing metadata added by your input
            - metadata:
                operator: delete_all

            - metadata:
                operator: set
                key: dest_topic
                value: "{{GCP_TOPIC}}"

            # Add a new metadata field from the contents of your message
            - for_each:
                - metadata:
                    operator: set
                    key: timestamp
                    value: ${!json_field:timestamp}
                - metadata:
                    operator: set
                    key: schema_id
                    value: ${!json_field:metadata.schema_id}
                - metadata:
                    operator: set
                    key: event_id
                    value: ${!json_field:event_id}
                - metadata:
                    operator: set
                    key: event_type
                    value: ${!json_field:event_type}

        - processors:
            - metadata:
                operator: set
                key: dest_topic
                value: "{{GCP_DEADLETTER_TOPIC}}"

output:
  broker:
    pattern: greedy
    copies: 25
    outputs:
      - broker:
          pattern: fan_out
          outputs:
            - gcp_pubsub: # DLQ
                project: "{{GCP_PROJECT}}"
                topic: "{{GCP_DEADLETTER_TOPIC}}"
              processors:
                - filter_parts:
                    metadata:
                      operator: equals
                      key: dest_topic
                      arg: "{{GCP_DEADLETTER_TOPIC}}"

            - gcp_pubsub: # Success
                project: "{{GCP_PROJECT}}"
                topic: "{{GCP_TOPIC}}"
              processors:
                - filter_parts:
                    metadata:
                      operator: equals
                      key: dest_topic
                      arg: "{{GCP_TOPIC}}"


add deploy button state with connect and change network

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

Current dependencies on/for this PR:

main

PR #2290

PR #2291

PR #2292

PR #2293   👈

This comment was auto-generated by Graphite.

Graphite Merge Job
Current status: ⏳ Queued to merge
This pull request is currently queued to be merged as part of a stack.
This comment was auto-generated by Graphite.

Job Reference: 7zq2l7t7DgYPmkkTX6LI


Add post: Showing submitted claims in Support

Post: Showing submitted claims in Support

 Showing claims in Support

@olioldfield and @Nitemaeric, it would be good to get your thoughts on this post because:

it sets out, for the first time, how the school and accredited provider filters work
it might need more details on the search interaction
it probably needs more screenshots to cover the two bullet points above


Pasting color code and press v keyboard shortcut causes game crashes in rust.sm64js.com

Here is the video. I pasted my backup color code in console mode. I pressed for v (Gilden/Kart) Mode causes a level to disappear and the game to crash.
https://user-images.githubusercontent.com/80534869/112720147-9f58f780-8f22-11eb-92f6-fa5f09f088cb.mp4

It seems you havent adjusted the code for the parachute color options. Heres a template example (you sent this yourself a while ago)
window.myMario.skinData = {"overalls":[28,75,192,57,151,255],"hat":[38,98,61,76,197,123],"shirt":[0,64,28,0,129,57],"gloves":[101,79,255,203,255,255],"boots":[74,19,38,148,38,76],"skin":[127,90,59,254,175,118],"hair":[35,3,0,71,6,0],"parachute":[0,104,45,0,208,90],"customCapState":0}
Simply add the parachute parameter.

one week, and this worked when i reproduced the issue. closing


the device back button won't work if navigating to another page from popover elements

Ionic version:  (check one with "x")
[ ] 1.x
[ ] 2.x
[x] 3.x
I'm submitting a ...  (check one with "x")
[x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
navigating to a page by clicking on a popover element makes the device back button useless.
the device back button won't get me back to the previous page but the navbar back button will do.
Expected behavior:
the device back button must get me back to the previous page
Steps to reproduce:

the back button device does not work only if the popover is not dismissed before navigating to new page.
Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
Cordova CLI: 6.5.0
Ionic Framework Version: 3.0.1
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
Ionic App Scripts Version: 1.3.4
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.10
Node Version: v6.10.2
Xcode version: Not installed

I am having the same problem.
I fixed it be re-using the NavController instance of the page that created the Popover, instead of the one supplied in the Popover constructor. For example:
private navCtrl: NavController;

constructor(private navParam: NavParams) {
    this.navCtrl = navParam.data.navCtrl;
}

... and when you create the Popover do it like this:
this.popoverCtrl.create(MenuPage, {navCtrl: this.navCtrl});

it works. but it is just a workaround we need a fix for this.does the way you solved the problem have no effects on the navigation ?

No effects at all. My case was actually a bit worse, as it wasn't even displaying the automatic back button in the ion-navbar. I think the problem here is that, for some reason, the new page doesn't get a history when navigation comes from the popover. Without history Ionic doesn't enable the back behaviour.

Thanks I am going to use the solution you gave me until there is a fix for this, and because I can use it with the NavPush and NavParams. :+1:
I used to fix it by dismissing the popover before navigating:
this.popoverCtrl.dismiss().then(()=>{     //navigate to other page })


Allow app to serve multiple registers

This introduces a new configuration item otherRegisters, which
allows you to specify a map from register names to database
configurations for other registers that this app can serve.
The app decides which register to use on a per-request basis, by
inspecting the X-Forwarded-Host or Host headers, and pulling out the
bit before the first dot.  If it matches a named register in
otherRegisters, it serves from that register; otherwise, it serves
from itself.
To do this, there is a new class AllTheRegisters, which allows you to
pick out a register using its getRegisterByName() method.  This
returns a RegisterContext instance.
RegisterContext has all the things you need for an individual
register instance - MemoizationStore, DBI, RegisterMetadata, etc.
I also removed RegisterNameConfiguration, as that is no longer a
globally unique thing.  You now need to inject
RegisterReadOnly or RegisterData and get the name from that.
I've deliberately taken an approach such that existing configuration files continue to work, and those existing config files will maintain the current behaviour.  We can then gradually migrate registers into a single pool of instances per environment.

Feedback discussed IRL. Further steps for a future PR and documented here https://trello.com/c/nUEQ1gdH.


[DataComp] Add image resolution filtering component

This PR adds an image resolution filtering component to the DataComp pipeline.
I had to use a symlink in order to build a Docker image and use the local runner.

FYI, instead of using a symlink, you can also just add a path to the top components directory directly.

@RobbeSneyders working now, had to update the requirements.txt to the latest commit as otherwise the Docker image wasn't updated. Feel free to approve


[FEATURE] use registry.localhost by default to automatically resolve locally.

https://tools.ietf.org/html/rfc2606 says we should reserve .localhost TLD to always resolve to <IP_ADDRESS>, which would avoid having to touch /etc/hosts.
I'm not exactly sure who is resolving it on my machine (archlinux) but I just created a cluster using
k3d create --enable-registry --registry-name=registry.localhost and it works flawlessly.
EDIT: it's NSS-myhostname who does that: https://www.freedesktop.org/software/systemd/man/nss-myhostname.html

Hi there, thanks for opening this feature request :+1:
This makes total sense for me and I guess it's the same on MacOS (and Win)?
@inercia , the registry is your project, what do you think?

Even tough that makes sense in the host, I'm concerned about the DNS resolution in the containers. Would this mean that a k3d container would resolve that name to <IP_ADDRESS>? I mean that the registry DNS name must be resolved by the Docker's DNS server...

@inercia I was afraid that the DNS resolution in the container would be impacted as well, but fortunately it doesn't seem to be the case. My theory is that the DNS resolver is the builtin docker one and it does not interpret the *.localhost pattern, which makes it work.

Can't get this to work on MacOS
macOS Mojave 10.14.6
k3d version v1.6.0
k3s version v1.0.1
> k3d create --enable-registry --registry-name=registry.localhost
INFO[0000] Created cluster network with ID 9d18c020424ba2d9d3a308a9ebe9e944952c08616a1e306ad4662a90ee9c60fa
INFO[0000] Created docker volume  k3d-k3s-default-images
INFO[0000] Creating cluster [k3s-default]
INFO[0000] Creating Registry as registry.localhost:5000...
INFO[0000] Creating server using docker.io/rancher/k3s:v1.0.1...
INFO[0001] SUCCESS: created cluster [k3s-default]
INFO[0001] A local registry has been started as registry.localhost:5000
INFO[0001] Make sure you have an alias in your /etc/hosts file like '<IP_ADDRESS> registry.localhost'
INFO[0001] You can now use the cluster with:

export KUBECONFIG="$(k3d get-kubeconfig --name='k3s-default')"
kubectl cluster-info

> docker tag hello-world registry.localhost:5000/hello-world-sven:latest
> docker push registry.localhost:5000/hello-world-sven:latest

The push refers to repository [registry.localhost:5000/hello-world-sven]
Get https://registry.localhost:5000/v2/: Service Unavailable

> nc -z registry.localhost 5000
nc: getaddrinfo: nodename nor servname provided, or not known

> curl -v registry.localhost:5000
* Rebuilt URL to: registry.localhost:5000/
* Could not resolve host: registry.localhost
* Closing connection 0
curl: (6) Could not resolve host: registry.localhost

@svenhofstede , it does not seem to work out of the box on every system.
E.g. on Linux it requries libnss-myhostname to be installed.

In that case, I would advise to fallback to the /etc/hosts solution, as you needed to before this pr anyway.

@docteurklein @iwilltry42
Thanks. Sure, the /etc/hosts solution is fine for me.
Just wanted to pitch in that this behaviour is not default for everyone.


chore(deps): update terraform-module

This PR contains the following updates:

Package
Type
Update
Change

github.com/terraform-ibm-modules/terraform-ibm-landing-zone
module
patch
v6.4.0 -> v6.4.3

terraform-ibm-modules/base-ocp-vpc/ibm (source)
module
patch
3.35.5 -> 3.35.7

Release Notes

terraform-ibm-modules/terraform-ibm-landing-zone (github.com/terraform-ibm-modules/terraform-ibm-landing-zone)
v6.4.3
Compare Source
Bug Fixes

updated the DA to claim controls from the IBM Cloud Framework for Financial Services version 1.7.0 profile (#926) (85fd586)

v6.4.2
Compare Source
Bug Fixes

revert "dependency_version_2": true until full migration path supported (#925) (f416462)

v6.4.1
Compare Source
Bug Fixes

update the VSI extension DA to opt into "dependency_version_2" features in catalog (#924) (ce86a21)

terraform-ibm-modules/terraform-ibm-base-ocp-vpc (terraform-ibm-modules/base-ocp-vpc/ibm)
v3.35.7
Compare Source
Bug Fixes

deps: update terraform terraform-ibm-modules/cos/ibm to v8.15.10 (#567) (dbd45f5)

v3.35.6
Compare Source
Bug Fixes

deps: update terraform-module (#564) (4426c49)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

/run pipeline

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

GitHub release
v1.4.44

Your semantic-release bot :package::rocket:


binary_operator <> is not consistent with other operators

in effort to build indentation using tree-sitter i ran into the following issue
with the following code outputs the desired structure
    1 +
      2 +
      3 +
      4

with output ( value in [] )
(binary_operator
    left:
     (binary_operator
      left: (binary_operator left: (integer [1] ) operator: + right: (integer [2] ))
      operator: + right: (integer [3]))
    operator: + right: (integer [4]))

but with the following structure
   "1" <>
     "2" <>
       "3" <>
         "4"

with output ( value in [] )
(binary_operator
   left: (string quoted_end: " (quoted_content ["1"]) ")
   operator: <>
   right:
    (binary_operator
     left: (string quoted_end: " (quoted_content ["2"]) ")
     operator: <>
     right:
      (binary_operator
       left: (string quoted_end: " (quoted_conten ["3"]t) ")
       operator: <>
       right: (string quoted_end: " (quoted_content ["4"]) "))))

The left and right operators are swapped when using <> which make it hard to consistently parse and indent the two examples the same way.

This is expected: some operators are left-associative while others are right-associative. You can see which is which in the binary_operator rule in the source - prec.left is left-associative and prec.right is right-associative: https://github.com/elixir-lang/tree-sitter-elixir/blob/b20eaa75565243c50be5e35e253d8beb58f45d56/grammar.js#L454-L503
These mirror the associativities declared in the Elixir parser: https://github.com/elixir-lang/elixir/blob/1f452aafb0534d8453378060edcc4871f4f3fd75/lib/elixir/src/elixir_parser.yrl#L70-L88
I'm not sure how the queries work in the Emacs tree-sitter indentation mechanism but it should be possible to tell nested left- and right-associative structures apart using queries. You could match on each case for the nesting to tell them apart:
; for example: 1 * 2 + 3 * 4
(binary_operator
  left: (binary_operator)
  right: (binary_operator))

; nested left-associative
(binary_operator
  left: (binary_operator))

; nested right-associative
(binary_operator
  right: (binary_operator))

; not nested
(binary_operator)

@the-mikedavis thanks for the response. I did not click that the associativity is different, but makes sense. You are right, it is possible to query the difference.


TODO: check that the following version bumps can all be done compatibly currently

python: 3.10
discord.py: 2.0a git+c2391cf6
apsw: 3.38.1 (with sqlite 3.38.1)
python-hyperscan: 0.3.0 (with hyperscan 5.4)
numpy: 1.21.6

resolved 🎉


add rtsp simulator chart

Signed-off-by: Luis Liu<EMAIL_ADDRESS>

I made a few changes to this PR. Please see the last commit.


EPIC: Anchor Platform Documentation

Swagger API, Installation and Deployment,  Developers Integration Guide
GanttStart: 2022-03-28
GanttDue: 2022-04-08

[ ] API Docs
[ ] Installation Docs
[ ] Demo Wallet Docs
[ ] Validation Tool Docs
[ ] Integration Testing Docs
[ ] Operations and Support Documentation


fix(ci): Run lightwalletd full sync in multi-job mode

Motivation
The lightwalletd full sync job is failing on the main branch due to a 6 hour job timeout.
Our last release was tagged and released while this test was still failing.
Analysis
The last successful main branch merge was 3 weeks ago:
https://github.com/ZcashFoundation/zebra/actions/runs/3975488890
The first failure was:
https://github.com/ZcashFoundation/zebra/actions/runs/4020563302
The commit for the first failure 6f6b13300ef35120952717bbaab3b0e18b69ea1f doesn't seem to be performance-related, and the previous time was 5h54m anyway.
There are no PRs before the failure that seem performance-related:
https://github.com/ZcashFoundation/zebra/commits/main?after=41ee0da79cf5e6531ec7452433cd310b1bcf6c77+69&branch=main&qualified_name=refs%2Fheads%2Fmain
But it's tricky to tell, because CI was failing for other reasons at the same time.
Solution
Activate multi-job mode for that job:
https://github.com/ZcashFoundation/zebra/blob/41ee0da79cf5e6531ec7452433cd310b1bcf6c77/.github/workflows/deploy-gcp-tests.yml#L30-L34
Review
This PR is ready for review, but it needs a manual test (see the comments).
Reviewer Checklist

[ ] Will the PR name make sense to users?

[ ] Does it need extra CHANGELOG info? (new features, breaking changes, large changes)

[ ] Are the PR labels correct?
[ ] Does the code do what the ticket and PR says?

[ ] Does it change concurrent code, unsafe code, or consensus rules?

[ ] How do you know it works? Does it have tests?

It's 6h20m, which is consistent with linear growth as the chain grows, plus a bit of overhead for separate jobs.


Unexpected behavior in fast-JIT mode and interpreter mode

Subject of the issue
The WAMR on fast interpreter mode / classic interpreter mode  / fast JIT mode has a wrong execution result on the test case.
Test case
tt4.zip
Your environment

Host OS: Ubuntu 20.04
Commit Id: c0e33f08b04a5e03220ef74c2a9dbea8f1f35996

Steps to reproduce

build WAMR on fast interpreter mode / classic interpreter mode  / fast JIT mode
execute the command

iwasm --heap-size=0 -f "to_test" <test_case>

or
iwasm --heap-size=0  --fast-jit -f "to_test"

Expected behavior
No exception
Actual behavior
An exception " HashMap find elem failed: map or key is NULL."

Close the issue since it was fixed.


Add AMI distribution

Is your feature request related to a problem? Please describe
OpenDistro released Amazon Machine Images (AMIs). Since OpenSearch, AMIs don't seem to be published.
Describe the solution you'd like
Publish AMIs for x86-64 and arm64 for each new release in all regions.
Describe alternatives you've considered

Use the tarball distribution on a fresh EC2 instance
Build my own AMI for OpenSearch

Additional context
No response

[Triage] Hi @bbarani can you update this issue with the plan?
Thanks!

I have added AMI to upcoming distributions. Please track the status using the distributions dashboard

With new RPM and YUM setup, its just few lines to start the cluster, please check the following link https://opensearch.org/docs/latest/opensearch/install/rpm/.
having an AMI requires an periodic update with new release, instead its easy to start the cluster on an latest AL2 AMI, with commands from the above link, Please check and add your thoughts @sharp-pixel.
Thank you


is there a plan to support english language?

hi, is there a plan to support english language for this platform.
i'm interested to learn about it and how it works. but the interface is hard to translate. and the documentation also.
thank you.

sorry，we dont have such a plan right now , but you can use chromes tanslation for not to read our document, again ,sorry for the inconvenience.