Add test for np-prompt using pexpect

What current issue(s) does this address, or what feature is it adding?
Addresses issue #490
Adds test_prompt.py for testing np-prompt with pexpect
How did you solve this problem?
Learned about pexpect, trial and error
How did you make sure your solution works?
Using unittest
Are there any special changes in the code that we should be aware of?
Yes, requires installation of pexpect
Please check the following, if applicable:

[x] Did you add any tests?
[x] Did you run make lint?
[x] Did you run make test?
[x] Are you making a PR to a feature branch or development rather than master?
[x] Did you add an entry to CHANGELOG.rst? (if not, please do)

This test meets the original requirements of @metachris 's idea. I would be happy to add more if there is a need. Please review and let me know what you think.

Hey, cool start! Quick question -- why so many additions to the CHANGELOG?

I could not figure out how to upload a new file to the development branch when trying to create this PR. (If you look at #490, you can see I already closed on PR). So, this changelog is coming from an older version. I copied it from the newest version and then edited it. It should merge nicely with the current changelog in cityofzion/neo-python/development

The test seem to be failing for me
(venv) Eriks-Air:neo-python erik$ python -m unittest neo.bin.test_prompt.PromptTest
Enp-prompt running as expected
.
======================================================================
ERROR: test_prompt_open_wallet (neo.bin.test_prompt.PromptTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/erik/Documents/code/neo-python/venv/lib/python3.6/site-packages/pexpect/expect.py", line 108, in expect_loop
    incoming = spawn.read_nonblocking(spawn.maxread, timeout)
  File "/Users/erik/Documents/code/neo-python/venv/lib/python3.6/site-packages/pexpect/pty_spawn.py", line 468, in read_nonblocking
    return super(spawn, self).read_nonblocking(size)
  File "/Users/erik/Documents/code/neo-python/venv/lib/python3.6/site-packages/pexpect/spawnbase.py", line 176, in read_nonblocking
    raise EOF('End Of File (EOF). Empty string style platform.')
pexpect.exceptions.EOF: End Of File (EOF). Empty string style platform.

@ixje Can you run this using ..."unittest -v"? I am just trying to see as much as I can. I just ran the test again and get this:
j```
seagrave21@DESKTOP-F7E94IM:~$ cd /mnt/c/users/jseag/neo/neo-python-expect
jseagrave21@DESKTOP-F7E94IM:/mnt/c/users/jseag/neo/neo-python-expect$ source venv/bin/activate
(venv) jseagrave21@DESKTOP-F7E94IM:/mnt/c/users/jseag/neo/neo-python-expect$ alias python=python3.6
(venv) jseagrave21@DESKTOP-F7E94IM:/mnt/c/users/jseag/neo/neo-python-expect$ python -m unittest -v neo/bin/test_prompt.py
test_prompt_open_wallet (neo.bin.test_prompt.PromptTest) ... Opened testwallet.db3 successfully
ok
test_prompt_run (neo.bin.test_prompt.PromptTest) ... np-prompt running as expected
ok

Ran 2 tests in 21.636s
OK
(venv) jseagrave21@DESKTOP-F7E94IM:/mnt/c/users/jseag/neo/neo-python-expect$

Fails for me too :(
$ python -m unittest -v neo/bin/test_prompt.py
test_prompt_open_wallet (neo.bin.test_prompt.PromptTest) ... ERROR
test_prompt_run (neo.bin.test_prompt.PromptTest) ... np-prompt running as expected
ok

======================================================================
ERROR: test_prompt_open_wallet (neo.bin.test_prompt.PromptTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/chris/Projects/chris/neo/neo-python/venv/lib/python3.6/site-packages/pexpect/expect.py", line 99, in expect_loop
    incoming = spawn.read_nonblocking(spawn.maxread, timeout)
File "/Users/chris/Projects/chris/neo/neo-python/venv/lib/python3.6/site-packages/pexpect/pty_spawn.py", line 462, in read_nonblocking
    raise TIMEOUT('Timeout exceeded.')
pexpect.exceptions.TIMEOUT: Timeout exceeded.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/chris/Projects/chris/neo/neo-python/neo/bin/test_prompt.py", line 27, in test_prompt_open_wallet
    index = child.expect(['Opened wallet at fixtures/testwallet.db3'])
File "/Users/chris/Projects/chris/neo/neo-python/venv/lib/python3.6/site-packages/pexpect/spawnbase.py", line 321, in expect
    timeout, searchwindowsize, async)
File "/Users/chris/Projects/chris/neo/neo-python/venv/lib/python3.6/site-packages/pexpect/spawnbase.py", line 345, in expect_list
    return exp.expect_loop(timeout)
File "/Users/chris/Projects/chris/neo/neo-python/venv/lib/python3.6/site-packages/pexpect/expect.py", line 107, in expect_loop
    return self.timeout(e)
File "/Users/chris/Projects/chris/neo/neo-python/venv/lib/python3.6/site-packages/pexpect/expect.py", line 70, in timeout
    raise TIMEOUT(msg)
pexpect.exceptions.TIMEOUT: Timeout exceeded.
<pexpect.pty_spawn.spawn object at 0x105164898>
command: /Users/chris/Projects/chris/neo/neo-python/venv/bin/np-prompt
args: ['/Users/chris/Projects/chris/neo/neo-python/venv/bin/np-prompt']
buffer (last 100 chars): b'                                                     \r\x1b[79C \r\x1b[0m\r\r\n\x1b[J\x1b[?7h\x1b[0m\x1b[?12l\x1b[?25h\x1b[?2004l'
before (last 100 chars): b'                                                     \r\x1b[79C \r\x1b[0m\r\r\n\x1b[J\x1b[?7h\x1b[0m\x1b[?12l\x1b[?25h\x1b[?2004l'
after: <class 'pexpect.exceptions.TIMEOUT'>
match: None
match_index: None
exitstatus: None
flag_eof: False
pid: 7790
child_fd: 5
closed: False
timeout: 30
delimiter: <class 'pexpect.exceptions.EOF'>
logfile: None
logfile_read: None
logfile_send: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1
searcher: searcher_re:
    0: re.compile("b'Opened wallet at fixtures/testwallet.db3'")

----------------------------------------------------------------------
Ran 2 tests in 31.328s

FAILED (errors=1)

@jseagrave21 correct you cannot approve the changes. The reviewer requests changes, you update and the reviewer again can approve, reject or request more changes.

It looks like pexpect isn't seeing the expected text. If you run np-prompt normally and try to open testwallet.db3 like my test shows, do you get the response "Opened wallet at fixtures/testwallet.db3"?
In the meantime, I am uploading an older version my test that was more comprehensive (but I thought might also be redundant). Could you tell me if it works for you?

In the meantime, I uploaded an older version of my test that was more comprehensive (but I thought might also be redundant). Could you tell me if it works for you?

The new changes make no difference for me. What platform do you use? Me and @metachris both use OSX, so I'm wondering if there's anything going on there.

@ixje that may be the source of the problem. I am using Ubuntu 18 on Windows 10.

ok, I actually have an update. Changing the expect command to:
child = pexpect.spawn('python neo/bin/prompt.py -p')

makes it work for me. Now the question is whats different between this and np-prompt in terms of execution. I"ll have to investigate tomorrow or friday

Okay awesome! I will see if that also works on my end.
It does seem odd to me because spawn is supposed to send a command and search for the command if it isn't immediately found. Do you interact with np-prompt in the same way as described above? https://github.com/CityOfZion/neo-python/pull/536#issuecomment-411500175

I am wondering if the problem is that the child application (neo-python) is staying alive after the test is completed. The reason I am wondering this is because the the first test passes for both of you.
Also, the "-p" should mean that it is running on the privatenet right? So the difference is accessing a privatenet vs the testnet?

The updated version terminates the child application at the end of each test, and I included a try/except variation, which should allow both tests to pass.

Not sure this is still in active development. If it is, could you please clean up the changes to CHANGELOG, so it only has the changes that you actually want? Currently it adds a lot of stuff to the changelog.
Also, another option might be using the normal expect tool rather than the python-based pexpect, and to run it outside our normal test suite, as part of the travis ci.
I think for running np-prompt we should not use -p but connect to a normal testnet or mainnet, because that should always work and travis-ci does not run the privnet container anyway.

@metachris I have updated the Changelog so it most closely matched the current version in development along with making the edit directed by @ixje

@metachris I agree that we should not use the privatenet. The issue we are trying to figure out is why the open_wallet test passes for me running Ubuntu on Windows but does not pass with you and @ixje running OSX.

@metachris Is there any reason you think that using expect instead of pexpect will work better in your testing environment?

After my success using subprocess for np-utils in neo-python-core, I thought I'd try and see if it would work for this purpose but I get this unhandled error:
Unhandled Error
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/twisted/_threads/_threadworker.py", line 46, in work
    task()
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/twisted/_threads/_team.py", line 190, in doWork
    task()
--- <exception caught here> ---
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/twisted/python/threadpool.py", line 250, in inContext
    result = inContext.theWork()
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/twisted/python/threadpool.py", line 266, in <lambda>
    inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/twisted/python/context.py", line 122, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/twisted/python/context.py", line 85, in callWithContext
    return func(*args,**kw)
  File "/mnt/c/users/jseag/Neo/neo-python-expect/neo/bin/prompt.py", line 937, in run
    print_formatted_text(FormattedText(tokens), style=self.token_style)
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/prompt_toolkit/shortcuts/utils.py", line 91, in print_formatted_text
    output = get_default_output()
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/prompt_toolkit/output/defaults.py", line 61, in get_default_output
    return create_output()
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/prompt_toolkit/output/defaults.py", line 39, in create_output
    stdout, term=get_term_environment_variable())
  File "/mnt/c/users/jseag/Neo/neo-python-expect/venv/lib/python3.6/site-packages/prompt_toolkit/output/vt100.py", line 409, in from_pty
    assert stdout.isatty()
builtins.AssertionError:

I am continuing to try to figure out how to make the pexpect test working with OSX and why it may be failing.

Okay, I figured out what was happening. I needed to send the enter command by using \n. @metachris @ixje Please review the updated test.

Looks good. Can you please pull the latest development branch, and fix the changes to CHANGELOG (it still shows loads of additions to it that should probably not be part of this PR)?

Okay creating a new PR with fresh pull of the development branch.


Problem: Signer trait does not support async signing

Solution: Changed sign function of Signer trait to async. Fixes #25.

@jimmyyip-crypto is this ok?

LGTM
No concerns as long as @devashishdxt can use it to implement the flow we discussed :joy:


Update Standard Library Module Dependency Versions Automatically

Description:
Currently the dependent module versions are updated manually. We have to automate this to remove the SNAPSHOT part and build with the correct dependencies when we release.

This is now fixed


[Bug] Latest Dock.Avalonia 11.2.0 does not work with latest SukiUI.Dock

Check the following items

[X] I have looked up relevant Issue

Description of the issue
When trying to use Dock.Avalonia 11.2.0 with SukiUI.Dock 6.0.0-beta7 I ran into issues where an exception would be thrown importing the styles  <StyleInclude Source="avares://SukiUI.Dock/Index.axaml" />
commenting out this line caused no docked tools or document sections to show in my UI.
I tried Updating Dock.Model and Dock.Model.Avalonia in the actual  SukiUI.Dock project to 11.2.0 and referencing that dll in my project and the issues were fixed.
I would raise a PR to update these myself but I'm fairly new to avalonia and this project so I'm not really clear on any breaking changes that could be caused by upgrading these packages.
Package Version
SukiUI.Dock 6.0.0-beta7
Environment
Windows 11
Expected Behavior
Able to use Dock.Avalonia 11.2.0 with the latest SukiUI.Dock
Reproduction

Create a project using Dock.Avalonia 11.2.0 and the latest SukiUI.Dock (6.0.0-beta7)
Import the styles <StyleInclude Source="avares://SukiUI.Dock/Index.axaml" /> in App.axaml
Run the application and an exception will be thrown on startup
Method not found: 'System.Collections.Generic.IReadOnlyList1<System.Object> Avalonia.Markup.Xaml.XamlIl.Runtime.IAvaloniaXamlIlEagerParentStackProvider.get_DirectParents()'

Additional Information
No response

SukiUI.Dock is not something I've worked on personally, but I'll take a look at where everything is in terms of versioning later on. The idea is that all of SukiUI should be targeting the latest stable version of Avalonia for 6.0.0's release, I'll make sure that's the case.
It might be that SukiUI.Dock has actually had it's version properly changed, it just hasn't had a new build published in a while, either way I'll make sure everything is squared away for 6.0.0.


unable to get local issuer certificate

after Logging in  I tried to run
npx dotenv-vault push development  .env.development
Code: PUSH_ERROR
Error: unable to get local issuer certificate
Code: UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npx dotenv-vault push production    .env.production
Code: PUSH_ERROR
Error: unable to get local issuer certificate
Code: UNABLE_TO_GET_ISSUER_CERT_LOCALLY
Any suggestions on this error?
Thank you

Is this still occurring for you? We had a couple minutes downtime around this time that you might have experienced.

Yes.   it could be zscaler causing the issue.

Why do you think it might be zscaler?

I am going to have to try this outside of the corporate firewall and get back to you


Better API Data

Hey there,
this API could be so much better.  Do not get me wrong. It's great, it's true ;)
But the API would be more useable if the available data were atomic and have data types.
For example:
{"edge":"Yes"}

{"edge": true}

or...
{"resolution":"750 x 1334 pixels (~326 ppi pixel density)"}

{"resulution":{"width": "750","height": "1334", "ppi": "326"}}

or...
{"technology":"GSM \/ CDMA \/ HSPA \/ EVDO \/ LTE"}

{"technology":["GSM","CDMA","HSPA","EVDO","LTE"]}

Maybe you can realize that.
Niki ;)

Thank you for your feedback. much appreciated. there is a newer version coming up ill try to put things together.

Hi @shakee93,
first of all: Thanks for the hard work. I know how painful it can be to build a datasource like that.
Nevertheless, as I'm trying to analyse smartphone data, a consistent structure of atomar data would be absolutely brilliant.
Do you have concrete plans on when the new version will be ready to go?

@KarimGeiger Thank you. i am planning to start working on this on 20th Monday this month. hope i can complete it as soon as possible

Hi @shakee93, thanks for creating this API, it's very useful. If I may ask, what is the source for all this data and how do you keep the database up to date? Thanks.

@elienoune check out this issue #11

I would be so, so, so grateful if I could get number of cores instead of: {"cpu": "Quad-core 2.7 GHz Krait 450"

I wrote small parser functions in my project to parse certain attributes to numeric values. Maybe they'll help someone else too, for example @gurupras 's use case for CPU cores is covered: https://github.com/vaaralav/data-mining-phones/blob/master/src/fonoapi-utils.js

Thank you @vaaralav that will help @gurupras and others who might need it.
Sorry guyz i have already started working on it and i stuck in the middle because of i am lacking time for this. i hope i can give you guyz the better version soon.
Thank you..

any update here?

@nicklog sorry bud yet no update on that. would you like to give a hand on this ?

Yes, i would.
Perhaps my company would too because we have a customer who has a huge interest in an api like this.

Thanks for your work @shakee93. I can not share ideas in trello board, seems I need to be added to it. These are my takeaways:

Order and filter for getDevice. For filtering, my reference is Gsm Arena: https://www.gsmarena.com/search.php3?nYearMin=2016&nPriceMin=100&nPriceMax=400&nRamMin=3000&nRamMax=6000&fDisplayInchesMin=4&fDisplayInchesMax=5.5&sMakers=9&sAvailabilities=1
A method to retrieve similar devices by features. It could use euclidean distance and main features for a first version: size, cpu, ram, camera resolution, price.

Hope you can give me feedback on this features

@alvarormoya sorry for the trello not working. i think it would be apt discuss it in this issue.. or i might create another issue regarding this.
and we can add this feature to the newer version with those filters

Can you arrange the data of laptops also....if it is possible then please collect..bcoz i haven't find any api for laptops on the whole internet.

Hi @shakee93 Can you add Images to the API then this will be a most popular API for mobile phone search system developers

Hi @shakee93 can you add price of the devices too


Remove Python wheel workflow running on every pull request

This contains changes to the GH workflows, specifically related to Python wheels plus minor fixes:

Wheel workflow set to be run nightly, on tags named v2.* and on pull request only when specifics files are updated, mainly the wheel_workflow.yml (this is why wheels check will run for this pull request),
Adding early support for Python 3.10, this triggered some issues that were fixed related to collections Python module updates and the use of raw ssize_t failing on MSVC. macOS is not supported currently due to an issue building numpy (it could be bypassed by not using it but this will probably solve itself when 3.10 is released and numpy ships wheel for it),
Adding wheels for Linux ARM 64bits, this takes up to 2hrs per wheel to build instead of the usual 10-20min so it could be removed if we feel it's not needed,
Avoid duplicated CI workflow checks when a pull_request is opened from a local branch (however, these will still shows as 3 skipped checks in the pull request, one per OS matrix).

I'm planning to look at Analysis nightly build in a subsequent pull request.

Why are the Linux ARM 64bit builds so much slower than others?

@michdolan I followed instructions from cibuildwheel to build those Linux ARM wheels, I believe the architecture emulation through QEMU is probably introducing the slowdown. I don't really know whether it would be used that much but looking at numpy for comparison, they provide it.
One related thing I would be curious is whether we can extract some download statistics out of PyPI but it looks like my account doesn't have Manager rights so I can't check (though I didn't found anything on the dev PyPI IIRC).

@remia I approved and merged this pull request but I would like you to care of the back port to RB-2.1 in case there is some changes. Let me know if that's fine.

Thanks @hodoulp, I'll look at this tomorrow (I don't expect changes).


Centered Color Elements + Added More Colors

I changed some CSS to center coloring elements and also changed index.html to add some more. Turns out the #color-controls ul{} and #color-controls ul li{} were the culprit in non-centering your elements (they are in drawing-table.css)

Thank you for this Ayana!


Implement terragrunt_output

The implementation has now been completely changed. get_output is no longer a function and instead is a new block called terragrunt_output. The benefits of this approach are:

Predictable execution paths: it is now very clear when outputs are pulled into the config. See https://github.com/gruntwork-io/terragrunt/blob/38aca82ff0890af3a4584870b4bd5eed8f788311/README.md#configuration-parsing-order for more info.
Automatic dependency graph injection: since the parsing order is now predictable, we can seed the dependency graph with the configs specified by terragrunt_output blocks. See https://github.com/gruntwork-io/terragrunt/blob/38aca82ff0890af3a4584870b4bd5eed8f788311/README.md#passing-outputs-between-modules for more info.
Reuse results of a single terragrunt output call: with get_output, terragrunt output had to be called each time the function was executed to keep the implementation sane. Since get_output couldn't be parsed before locals, this made it difficult to reuse the output results of a single call if you needed multiple variables from the output. Now only one call needs to be made per block and it can be referenced multiple times.

~This provides an implementation of get_output, an interpolation function that can be used to extract the output of another terraform module wrapped with terragrunt config. See the README changes for more details.`~
Note that as part of the implementation, it was required to refactor the configuration parsing during a xyz-all command to only do a partial decoding. Otherwise, apply-all will fail even if you specify dependencies because it will interpolate the get_output call in the initial pass to read the dependencies from the config. This is handled in a new, PartialParseConfigFile function which will only parse the sections specified. ~Note that because locals, include, dependencies, terraform blocks are evaluated in this section, apply-all in the initial setup will still fail if get_output. This is covered in the README.~

Ok the main sticking point is finding a good way to cache the get_output calls. Unfortunately, I am not sure what is the best way. I am not a fan of memoizing in the global space, and using locals has some issues as mentioned above.
I expect that the real solution is in https://github.com/gruntwork-io/terragrunt/pull/828#discussion_r312653692, where we won't need to parse the dependencies block anymore. Although... we still need the locals block parsing since I expect you will want to use it for the terraform block parsing...

Ok new idea. This got me thinking of a potential way to solve this: what if we introduce a new block? After navigating HCL2, I think I am beginning to understand that it is significantly easier to implement partial parsing decoding of individual blocks as opposed to when it appears in the middle of an AST.
Given that, it seems like the best way to achieve all of the goals is to introduce a new block construct like terraform_remote_state, but at the terragrunt.hcl level. Here is an example, since I think it will be clear once I show it:
terragrunt_output "vpc" {
  config = "../vpc"
}

inputs = {
  vpc_id = terragrunt_output.vpc.vpc_id
}

In this model, the caching problem goes away because we can resolve all the terragrunt_outputs in the initial parsing and stored somewhere as a reference which can then be reused.
Parsing order problems go away as well, since it can be parsed independently of the rest of the config (except maybe locals and includes?).
Implementing partial parsing just for dependency building is easy as well, since all we need to do is parse the blocks into a list of structs to get the config: no need to walk an AST!
Another benefit is that we have full control over when the output pulling happens, since now it is a first class task in the decoding pipeline, happening before we pass the HCL struct to the decoder. So the parsing logic will now be:

parse locals
parse include
parse terragrunt_output (replaces dependencies)
Get outputs from each terragrunt_output
parse the rest of config

That seems like an elegant solution!

Ok @brikis98 this is ready for a rereview. I have implemented terragrunt_output blocks as described in https://github.com/gruntwork-io/terragrunt/pull/828#issuecomment-520655414. I believe this addresses almost all of your concerns from the initial PR:

Predictable execution paths: it is now very clear when outputs are pulled into the config. See https://github.com/gruntwork-io/terragrunt/blob/38aca82ff0890af3a4584870b4bd5eed8f788311/README.md#configuration-parsing-order for more info.
Automatic dependency graph injection: since the parsing order is now predictable, we can seed the dependency graph with the configs specified by terragrunt_output blocks. See https://github.com/gruntwork-io/terragrunt/blob/38aca82ff0890af3a4584870b4bd5eed8f788311/README.md#passing-outputs-between-modules for more info.
Reuse results of a single terragrunt output call: with get_output, terragrunt output had to be called each time the function was executed to keep the implementation sane. Since get_output couldn't be parsed before locals, this made it difficult to reuse the output results of a single call if you needed multiple variables from the output. Now only one call needs to be made per block and it can be referenced multiple times.

Ok merging and releasing this! Thanks for the review!


FAQs page

Related Issue

Info about Issue or bug

Fixes: #43

@kumarishalini6 do u want to work on calculators?

@kumarishalini6 do u want to work on calculators?

I want but I know only simple calculator code

@kumarishalini6 these are simple calculators only. If u want try out the force calculator. And if u want to work on it then dm me on slack for how to go about it.

@kumarishalini6 these are simple calculators only. If u want try out the force calculator. And if u want to work on it then dm me on slack for how to go about it.

can i start after 2 days i have final sem exams


Support Alfred Workflows in PowerToys Run

Summary of the new feature/enhancement
Add support .alfredworkflow files to be included within the PowerToys Run feature.
Supporting the Alfred Workflows format for PowerToys would allow a large corpus of user-built automation intended for macOS to be used within Windows.
The only potential concern is that Alfred Workflows are a part of the paid set of functionality that Alfred offers. I'm not sure if reading them is permissible given Alfred's license or not.
Proposed technical implementation details (optional)
My understanding is that .alfredworkflow files are an info.plist XML file and an image for the icon that are zipped. More complex workflows may be more... complex than that. However, it is potentially reasonable to map that functionality.

Closing this in favor of the more generic custom commands suggestion https://github.com/microsoft/PowerToys/issues/3600

Closing this in favor of the more generic custom commands suggestion https://github.com/microsoft/PowerToys/issues/3600

@enricogior I disagree that this is the same as #3600. This issue is asking for supporting an existing format, whereas that issue is asking for a generic set of features. Some of the features in the existing format are similar, but the requests are fundamentally different.

@enricogior I disagree that this is the same as #3600. This issue is asking for supporting an existing format, whereas that issue is asking for a generic set of features. Some of the features in the existing format are similar, but the requests are fundamentally different.

@bnb
add a comment to #3600 since we are not going to keep multiple issues open for variations of the same feature.

@bnb
add a comment to #3600 since we are not going to keep multiple issues open for variations of the same feature.

@enricogior this is not a feature request for a variation of a feature, this is a request to support a format. I'm not asking for a feature. This issue is categorically different than that issue.


✨ Synctarget: Have URLs for both syncer and upsyncer

Summary
To prepare for the Upsyncing support, on the Synctarget we should have distinct URLs for the both syncer and upsyncer
virtual workspaces.
Related issue(s)
Pre-requisite to PR https://github.com/kcp-dev/kcp/pull/2452

/lgtm
/approve


Tappx shows ads but there aren't any impression

Hi,
I have the following code in my app:
function onDeviceReady() {
    document.removeEventListener('deviceready', onDeviceReady, false);
      // Set AdMobAds options:
    admob.setOptions({
        publisherId:          "NONE",
        tappxIdAndroid:       "**Código Android Tappx**",
        autoShowBanner:       true,
        autoShowInterstitial: true,
        isTesting:            false,
        tappxShare:           1
      });
      // Start showing banners (atomatic when autoShowBanner is set to true)
    admob.createBannerView();
      // Request interstitial (will present automatically when autoShowInterstitial is set to true)
    admob.requestInterstitialAd();
}

document.addEventListener("deviceready", onDeviceReady, false);

Ads are shown but there are not neither impressions nor clicks in the Tappx Dashboard.

Please, could you send me your tappx id via emai? I will forward to Tappx in order to see what's going on. miqmago at gmail.


Shift +Spacebar causes stack overflow exception

Describe the bug
Shift + Spacebar results in a stack overflow exception.
To Reproduce
Press SHIFT + SPACE anytime in the terminal application.
looks like it comes from FindAndOpenMenuByShortcut calling itself recursively.
Expected behavior
No behavior is expected.
This is just the result of accidentally causing the bug while typing.
Additional context
I am using Windows 10, 22H2
Terminal.Gui version 1.12.1
Here is the call stack (image)

I can't reproduce this with none of the drivers. Perhaps is caused by some implementation in your app. Can you provide a sample which throw the exception using the behavior you've described, please. Thanks.

Ok, I found the Issue. I use a menubar as a button bar to interface with a ListView like so:

While debugging I found the only reason I would get a stack overflow is because none of these MenuBarItems have children. This causes FindAndOpenMenuByShortcut to overflow. Here is a sample that throws the exception when any key is pressed in the application.
            MenuBarItem MenuTitle = new MenuBarItem("[Conditions]", "", null);
            MenuBarItem NewComparison = new MenuBarItem("New...", "", null);
            MenuBarItem EditComparison = new MenuBarItem("Edit..", "", null);
            MenuBarItem RemoveComparison = new MenuBarItem("Remove", "", null);

            MenuBar ConditionControls = new MenuBar(new MenuBarItem[]{
                MenuTitle,
                NewComparison,
                EditComparison,
                RemoveComparison
            })
            {
                X = 0,
                Y = 0,
                ColorScheme = new ColorScheme
                {
                    Normal = Terminal.Gui.Attribute.Make(Color.White, Color.DarkGray),
                    Focus = Terminal.Gui.Attribute.Make(Color.White, Color.DarkGray)
                }
            };

I understand this is not the proper use for this object, but it does look cool.


Please rebuild native gems then release new gem version

Please release a new version of sassc-ruby which includes the latest binaries for all platforms. This will require updating your rake-compiler-dock version.
In particular, the x64-mingw-ucrt architecture needs to be built for Windows on Ruby 3.1.
This will fix many of the issues users are reporting recently.

@bolandrm need your help on this one.

https://github.com/sass/sassc-ruby/pull/238 fixes this.

@bolandrm or anyone, can you please help on this? Is this gem still maintained?

@chadlwilson thank you for the reply. Would you be willing to let me/my company take over on extended life maintenance, as there are quite a few people out there still using it and and wanting to upgrade to latest Ruby etc releases?

@johnnyshields I'm not a maintainer - just another community user sharing my experience. 😉 Happened to be subscribed to this issue as I was also struggling trying to build libsass on Windows as well earlier.
I subsequently discovered the sassc-ruby shim to delegate to sass-embedded which completely avoids such compile or gem platform problems as it downloads pre-built binaries for the relevant platform on the fly during gem install.
Of course it's OSS, so you are free to fork; but given the underlying libsass has been deprecated for two years and doesn't seem to have seen much development in the last 18 months, you might have to fork that too... and personally I think you might be better to put the effort in to migrate to something based on dart-sass rather than taking on the maintenance burden of possibly not just this, but also its relationship with libsass. Just my 2c - obviously you can evaluate what's best for your situation.

if we could do a major release here and integrate the work from https://github.com/ntkme/sassc-embedded-shim-ruby that would be ideal as we don't have to update all gems that depend on this one... but if that is not the path here, https://github.com/ntkme/sassc-embedded-shim-ruby/issues/25 should decouple from sassc-ruby all together and we can move further.
having newer sass available through ruby API again could help update projects like sprockets which is still a dependency in many others.

IIRC @ntkme enquired about possibility of that somewhere in sprockets-land I believe. IMHO it's reasonably well decoupled in that most of the work happens in https://github.com/ntkme/sass-embedded-host-ruby and the repo you linked to is purely just a shim that redirects away from libsass.
And then there's dartsass-rails. The shim allows continued use of sprockets in the lightest touch way possible.

The problem with the approach is that you need to override sassc with a git repository. This makes deployment a bit harder and slower. Ideally we would either solve here or do a real fork that can be used moving further.
This doesn't dismiss the benefit of existing solution which can act as a bridge and help people migrate from one solution to the other.
But consider that anyone building something that should rely on sassc would be better served with a version/fork that works without requiring extra hacks


Problems launching the last build

Hi @esvit.
I met some issues integrating your last build with require.js infrastructure.
What I do:
require.config
  paths:
    angular: "lib/angular/angular"
    jquery: "lib/jquery/jquery"
    "ng-ckeditor": "lib/ng-ckeditor/ng-ckeditor"
    ckeditor: "lib/ckeditor/ckeditor"
  shim:
    jquery:
      exports: "$"
    angular:
      deps: ["jquery"]
      exports: "angular"
    "ng-ckeditor":
      deps: ["angular"]
    ckeditor:
      exports: "CKEDITOR"

define [
  "jquery"
  "angular"
  "ckeditor"
  "ng-ckeditor"
], ->

  deps = [
    'ngCkeditor'
  ]
  app = angular.module "app", deps

What I expect:
everything should just work, like it was before.
What happens:

"cannot call method module on undefined" https://github.com/esvit/ng-ckeditor/blob/master/src/scripts/01-intro.js#L4 -- angular is undefined there
if I resolve it somehow with a bit of hardcode, I get "cannot call method on on undefined" https://github.com/esvit/ng-ckeditor/blob/master/src/scripts/02-directive.js#L11 there.

Could you please provide some example on how do you use ng-ckeditor with require.js? Some installation snippet.
Thank you!

I got it to work by using this:

paths   : {
    'angular'     : 'bower_components/angular/angular',
    'jquery'      : 'bower_components/jquery/jquery',
    'ckeditor' : 'bower_components/ng-ckeditor/libs/ckeditor/ckeditor'
  },
shim    : {
    'angular' : {
      'deps'   : ['jquery'],
      'exports': 'angular'
    },
    'lib/ng-ckeditor/ng-ckeditor'  : ['angular', 'ckeditor'],
    'ckeditor': {
      'exports': 'CKEDITOR'
    },
  },


MongoDB 3.4.1 authentication

Hi,
I've tried everything I could remember but I can't get pass

[conn51] Unauthorized: not authorized on dev_db to execute command { delete: "chairs", deletes: [ { limit: 0, q: {} } ] }

Inserts also don't work. I've tried with roles root and readWrite.

use admin
db.createUser( {
user: "dev",
pwd: "dev_pass",
roles: [ "root" ]
});

or this (even root role):

use dev_db
db.createUser( {
user: "dev",
pwd: "dev_pass",
roles: [ "readWrite" }]
});

Using the driver as a Pool where a pool is established via:
:mongoc.connect({type, replica_set_name, hosts}, topology_options, worker_options)
where worker_options is:
[password: "dev_pass", username: "dev", database: "dev_db"]
The topology is a replica set of three nodes. Tag 3.0.1.

Hi,
If you connect via mongo cli are this credentials work?

Is the driver authenticating against the database specified in the workers_option?
I connect to the Primary node and add a user like so:
mongo -u admin -p admin_pass --authenticationDatabase admin --host localhost --port 27093
I then add a user to a specific database:
use dev_db db.createUser( {      user: "dev",      pwd: "dev_pass",      roles: [ { role: "readWrite", db: "dev_db" }             ]    });
I exit the shell, and try to connect again with the newly created user:
mongo -u dev -p dev_pass --authenticationDatabase dev_db --host localhost --port 27093 et:PRIMARY> use dev_db switched to db dev_db set:PRIMARY> db.movie.insert({"name":"tutorials point"}) WriteResult({ "nInserted" : 1 })

It's a replica set. The driver works correctly if authentication is disabled.
topology: :rs
We use more then one MongoDB database. Hence we have as many pools as number of databases How can I provide more debug info?

I'll check the ability to connect to rs and authentificate. I thought there should be no problem.
Also it should work fine with different pools, if you use proper pool for accessing proper db.

Tied with https://github.com/comtihon/mongodb-erlang/issues/159
I think problem is in auth with 3.4+

The problem was that:
[password: "dev_pass", username: "dev", database: "dev_db"]
It's not username but login


Writer converts everything to str

The Writer class converts all strings to str. This causes Problems with unicode strings.
64     def __call__(self, s, newline=True, stream=STDOUT):
65
66         if newline:
67             s = tsplit(s, NEWLINES)
68             s = map(str, s)
69             indent = ''.join(self.shared['indent_strings'])
70
71             s = (str('\n' + indent)).join(s)
72
73         _str = ''.join((
74             ''.join(self.shared['indent_strings']),
75             str(s),
76             '\n' if newline else ''
77         ))
78         stream(_str)

While I can print a unicode string
>>> print u'äöü'
äöü

...I cannot do that when using puts.
>>> puts(u'äöü')
Traceback (most recent call last):
  File "test.py", line 7, in <module>
    puts(u'äöü')
  File "/home/danilo/Projects/clint/clint/textui/core.py", line 83, in puts
    Writer()(s, newline, stream=stream)
  File "/home/danilo/Projects/clint/clint/textui/core.py", line 68, in __call__
    s = map(str, s)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

This breaks puts-ing any non-ascii characters, which is a big problem for me.
This is probably the reason for #47.

Running the unicode through colored works just fine (if that's an okay work around for anyone right now): puts(colored.red(u'äöü'))

Yes, gazpachoking I agree that all strings should internally stored as unicode strings, and decoding should occur only when they are being output to a stream. It is a very annoying thing. Why is there no progress on this issue? Is there some workaround other than coloring the text?

+1, this is a pretty shitty bug, ran into this while porting an app from Py2 to Py3. Blahh..
puts() should have safe unicode handling, and I suggest that there should also be a colored.default() that uses the default terminal font.

@philadams puts(colored.red(u'äöü')) is still not working on python2 windows with non-unicode encoding :-(.

@pevik - it seems like clint is abandoned, I switched to using the 'click' project instead, which has this issue fixed.


netconf cache file shouldn't be deleted if delegate cni call failed in cmdDel

What happend:
I'm using multus 3.1 as k8s cni, calico as the underlying delegate cni.  Sometimes after the node reboot, some pod ip wouldn't be released in calico, causing ip leakage.
After doing some investagtion, I found the root cause is that multus 3.1 delete the netconf cache (the files in /var/lib/cni/multus/) even if the first invocation of calico cmdDel failed (because of some calico problem), then the next time multus got called, it would wrongly return successs to kubelet without invoke calico cmdDel, beause it thinks that no cache file means the container network has already torn down.
code snippet of multus 3.1
		netconfBytes, err := consumeScratchNetConf(args.ContainerID, in.CNIDir)
		if err != nil {
			if os.IsNotExist(err) {
				// Per spec should ignore error if resources are missing / already removed
				return nil
What you expected to happen:
In cmdDel func, the netconf cache file should only be deleted if the invocation of the delegate cni succeed.
How to reproduce it (as minimally and precisely as possible):

use calco as the only delgate in multus net conf.

rename /opt/cni/bin/calico to /opt/cni/bin/calico_wrong to simulate the calico invocation failure.

delete a pod, the pod can be deleted, but its calico resource leaks.

Anything else we need to know?:
In the latest master branch code , it seems that multus would trying to  reassemble the delegate by combining the current config and pod annotation when the netconf cache file isn't present, the cmdDel would continue to execute.
https://github.com/intel/multus-cni/blob/master/multus/multus.go#L452
But cache file still go deleted if every time multus cmdDel got called.
https://github.com/intel/multus-cni/blob/master/multus/multus.go#L478
IMHO, this also has potential problems, if the pod is already deleted and the invocation of delegate cni failed, then the next time  multus got called, it can't got the delegate from pod annotation, causing delegate cni resource leakage.
Environment:

Multus version
3.1
image path and image ID (from 'docker images')
Kubernetes version (use kubectl version):
Primary CNI for Kubernetes cluster:
OS (e.g. from /etc/os-release):
File of '/etc/cni/net.d/'
File of '/etc/cni/multus/net.d'
NetworkAttachment info (use kubectl get net-attach-def -o yaml)
Target pod yaml info (with annotation, use kubectl get pod <podname> -o yaml)
Other log outputs (if you use multus logging)

Hi,
This is not an issue because of following reasons:

Without multus cache, latest multus can create required information
In case of cluster network plugin (i.e master plugin), required information is in /etc/cni/net.d/multus.conf and latest multus can create required information at cmdDel().

Without multus, calico will leak resource.
Install k8s with calico (without multus), the leak is happen. (verified in my environment).
This is not multus issue, kubernetes issue as following:
https://github.com/kubernetes/kubernetes/issues/65943

Hi,
This is not an issue because of following reasons:

Without multus cache, latest multus can create required information
In case of cluster network plugin (i.e master plugin), required information is in /etc/cni/net.d/multus.conf and latest multus can create required information at cmdDel().

I might be wrong, but here is my concern:
/etc/cni/net.d/multus.conf is just one half of the required information. Another half is in the pod network-attchment annotation, if the pod is deleted before kubelet tearing down sandbox network (in this case kubelet container GC is responsible for calling multus to tear down the network), it's impossible for multus to get the delegates in pod annotation (because the pod is already gone).


WASM plugin support for builtin:swc-loader

What problem does this feature solve?
Support customized wasm plugin for swc-loader
What does the proposed API of configuration look like?
Follow the original swc-loader: https://swc.rs/docs/configuration/compilation#jscexperimentalplugins

I guess we need a way to tell users the swc_core version Rspack used.
https://swc.rs/docs/plugin/selecting-swc-core

bump

SWC Wasm support has been released, so I will close this issue


which model card is used?

Hi @TEXTurePaper ,
thx for sharing this great work. However, I was wondering which model card selected from sd-concepts-library is used in your work? Or which images you use to train your own cocept embedding?

HI @Crane-YU There seems to be a bit of a misunderstanding. I guess you are mentioning people in the list of Contributors, but I'm not an author of the paper, but just a contributor who opened a PR to this repo to add a link to a demo on HF Hub. My understanding is that the authors of the paper have to stay anonymous due to the submission policy and they are using this @TEXTurePaper account for it. So, I think the one who you'd like to mention is actually @TEXTurePaper .

just modified. Thank you for mentioning.

Thanks for your interest! We trained our own models using either the standard sets of images used in other papers or dedicated sets of images we captured / rendered. Is there any specific set you are interested in?

Hi @eladrich can you share the concept tokens you learn from textures from both the images and mesh models?

Hi, we won't share them all as they are rather big, we do TI  +dreambooth so all model parameters are changed. If there are specific ones you find interesting we might upload them somewhere


HL-819 | Style fixes to application form

Description :sparkles:
Fixes when creating new application:

container no longer flows horizontally over content area on tablet size devices
stepper is now on own row when there's no room for having it on the right side
permission file upload no longer overlaps with print button

API branch is deployed to platta: https://helsinkilisa-pr2174.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

APPLICANT branch is deployed to platta: https://helsinkilisa-ui-pr2174.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://helsinkilisa-ui-pr2174.dev.hel.ninja :laughing::tada::tada::tada:

Codecov Report

Merging #2174 (c40e30f) into develop (16204b4) will decrease coverage by 11.91%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##           develop    #2174       +/-   ##
============================================
- Coverage    29.85%   17.95%   -11.91%
============================================
  Files          820      122      -698
  Lines        16906     2918    -13988
  Branches      3693      734     -2959
============================================
- Hits          5048      524     -4524
+ Misses       11240     2281     -8959
+ Partials       618      113      -505

Files Changed
Coverage Δ

...ant/src/components/applications/Applications.sc.ts
0.00% <0.00%> (ø)

...s/forms/application/step4/ApplicationFormStep4.tsx
0.00% <ø> (ø)

...omponents/applications/pageContent/PageContent.tsx
0.00% <ø> (ø)

... and 698 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

API branch is deployed to platta: https://kesaseteli-pr2174.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

YOUTH branch is deployed to platta: https://youth-pr2174.dev.hel.ninja :rocket::rocket::rocket:

HANDLER branch is deployed to platta: https://handler-pr2174.dev.hel.ninja :rocket::rocket::rocket:

API branch is deployed to platta: https://helsinkilisa-pr2174.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

TestCafe result is success for https://handler-pr2174.dev.hel.ninja :laughing::tada::tada::tada:

APPLICANT branch is deployed to platta: https://helsinkilisa-ui-pr2174.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://kesaseteli-pr2174.dev.hel.ninja :laughing::tada::tada::tada:

HANDLER branch is deployed to platta: https://helsinkilisa-ui-handler-pr2174.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://helsinkilisa-ui-pr2174.dev.hel.ninja :laughing::tada::tada::tada:

TestCafe result is success for https://youth-pr2174.dev.hel.ninja :laughing::tada::tada::tada:

API branch is deployed to platta: https://kesaseteli-pr2174.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

HANDLER branch is deployed to platta: https://handler-pr2174.dev.hel.ninja :rocket::rocket::rocket:

EMPLOYER branch is deployed to platta: https://kesaseteli-pr2174.dev.hel.ninja :rocket::rocket::rocket:

YOUTH branch is deployed to platta: https://youth-pr2174.dev.hel.ninja :rocket::rocket::rocket:

API branch is deployed to platta: https://helsinkilisa-pr2174.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

APPLICANT branch is deployed to platta: https://helsinkilisa-ui-pr2174.dev.hel.ninja :rocket::rocket::rocket:

HANDLER branch is deployed to platta: https://helsinkilisa-ui-handler-pr2174.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://kesaseteli-pr2174.dev.hel.ninja :laughing::tada::tada::tada:

TestCafe result is success for https://youth-pr2174.dev.hel.ninja :laughing::tada::tada::tada:


DataSource is too hard to use without context

While trying to upgrade async-graphql, I found that you removed the context from the DataSource.
When trying to move something like a database pool into the struct implementing DataSource, it requires lifetimes be added. This makes the datasource unnecessarily complicated to use.

Nevermind, I discovered the async_graphql::connection::query method that removes the need for DataSource completely.
Are you planning to remove DataSource?

Nevermind, I discovered the async_graphql::connection::query method that removes the need for DataSource completely.
Are you planning to remove DataSource?

I think the DataSource is useful because it makes it easier to reuse code. 😁

@sunli829 how is it easier than using the query function directly? I will push up my usage soon and show how it is good to use for implementing on Enum and other data structures.

This is what I think is the correct use of DataSource.
Schema::build(...).data(UserDataSource{db: ...}).finish()

@sunli829 in your example, you could end up with many database pools for an entire application, which would not work well

No, the same connection pool should be shared.

I tried implementing the same as you showed, but sharing a database pool required a lifetime, which is more complex than my solution.

For example, the same r2d2::Pool should be shared.

No, no, the connection pool should be shared with Arc.

You still can't implement DataSource on an Enum, so my solution is better for me. I will link shortly.

Yes, implement your own DataSource, or just use connection::query, whichever is more convenient for you.

This is the way I used connection::query to implement a "data source" on a GraphQL Union (rust Enum): https://github.com/phated/twentyfive-stars/blob/f4a704f2ee2d93b2c50e7abc0e7c57b818cff030/server/src/data/card.rs

Let me think about it. 😂

I think connection::query is the best option in your case. 😁

You can change Cards::query  to  connection::query so that you can at least check for invalid values.

After careful consideration, connection::query is more flexible than the DataSource, so I decided to delete the DataSource.

Looks great! Thanks @sunli829!


Support destination pseudo-scopes

The problem
Consider the following code
const aaa = 0;

In this case, there is no type. However, we want the following to work:

"change type" from within the statement should insert a :  after the aaa and leave your cursor after the :
"bring bat to type air" should insert a :  after the aaa, followed by "bat"

The solution
Query language update

In our query language, support @myScopeType.destination

Could be used as follows:
(
  (lexical_declaration
     (variable_declarator
        name: (_) @type.destination.endOf
        !type
     )
  )
  (#leading-insertion-delimiter! @type.destination ": ")
)

How to handle these queries
The naive approach is to create a stub target that only has a getDestination method and throws on everything else.  Unfortunately the problem is that this would break the following:
function aaa(): void {
    const bbb = 0;
}

If you say "copy type bat", you'll get an error, because it will get trapped in the pseudo-scope.  Maybe that's fine because it could be confusing to have "copy type bat" and "change type bat" refer to different scopes (the latter is legitimately a destination pseudo-scope that allows adding a type to bbb)

update from meet-up:

"drink", "pour", and "change" all do the same thing when you have no type
"drink" and "pour" don't work when you have a type
If you say "take type" from within something that has no type but could (ie has a destination pseudo-scope), it is an error.  This is useful when combined with https://github.com/cursorless-dev/cursorless/issues/1015
for something that can have more than one (eg "name" in scm)
Add (#prefix-insertion-delimiter! ": ") predicate
Add (#postfix-insertion-delimiter! ": ") predicate
Rename (#insertion-delimiter!) to #infix-insertion-delimiter?
if no infix, then we don't support "pour" when there is already 1

Note that the interaction with #1015 is a bit nontrivial because for eg "pour soft type" or "bring air to soft type", we actually want "soft" to apply to the conversion to a destination rather than to the modifier after it. Not sure how to distinguish that from wanting it to apply to the modifier after it 🤔

There's also an interesting interaction with the pattern we're proposing in https://github.com/cursorless-dev/cursorless/issues/1742.  For the case of "name" in the .scm language, which we're using to refer to @foo captures, then we get the captures as multiple targets when you're not directly in one of them.  For example:
(aaa) @bbb @ccc

In this case, if you say "name air", you'll get bbb and ccc.  The problem is that if you now have something like the following:
(aaa) @bbb @ccc
(ddd) @eee

If you say "bring name drum to air", you'll get
(aaa) @eee @eee
(ddd)

Which is obviously not desirable. In this case, it seems like the destination "to name air" should possibly be the range bbb @ccc, rather than as separate targets. Or we could just have that be the target "name air" as well.


Convert build scripts to Kotlin DSL

Seems that Gradle is going to make the Kotlin DSL default in the next year:
https://github.com/gradle/build-tool-roadmap/issues/39
So try to convert our builds script from Groovy to Kotlin.

Hey folks! Have you used an automated tool(s) for the code conversion, or you did it manually?

@yalishevant I did this conversion manually


fixes issue #744, and example application WindowsIcons bug

The following changes have been made.

fix: example application was showing 2 WindowsIcons on changing transparency and maximizing. See image below

Fixes issue #744, One could not add and remove items dynamically from NavigationPane due to the PaneItemKeys issue, which has been fixed and tested. Special thanks to @ACking-you for the amazing suggestion.

Pre-launch Checklist

[x] I have updated CHANGELOG.md with my changes
[x] I have run "dart format ." on the project
[x] I have added/updated relevant documentation

Thanks to you for amazing project.


Only try to deregister from EventLoop when the native Channel was reg…

…istered before.
Motivation:
We only can call eventLoop() if we are registered on an EventLoop yet. As we just did this without checking we spammed the log with an error that was harmless.
Modifications:
Check if registered on eventLoop before try to deregister on close.
Result:
Fixes [#6770]

@trustin FYI

Thanks a lot, @normanmaurer !

Cherry-picked into 4.1 (2f8fe2af01c1bd5f6e02a3a10ea949318705a325) and 4.0 (a45f63aea02d82bcccf0455a9e95f0b3d5dabeba)


nixpkgs.pwsafe fails to build (but possibly merely a dependency problem)

Checklist

[x] Checked the nixpkgs master branch

[x] Checked the nixpkgs pull requests: when I search the pulls for pwsafe, I see pull 73145.  It's not obvious to me why this is relevant, but see below

Project name
nix search name: nixpkgs.pwsafe

current version: 3.53.0
desired version:
Notify maintainers

maintainers: @c0bw3b @pjones
This fails to build for me, crashing out on the build of wxwidgets (which is presumably where the link to pull 73145 comes from).  Given this is apparently a failure in a dependency, it may be that pwsafe will automatically start building again once this is resolved.  If that's so, then this report is redundant; in which case, apologies.  But I'll add it nonetheless in case the fix is not that automatic (I'm a bit vague about how fixes propagate around the wonderful wonderland of Nix).
clang++ -mmacosx-version-min=10.7 -c -o htmldll_helpdata.o  -D__WXOSX_COCOA__      -DWXBUILDING      -I./src/regex  -DWXUSINGDLL -DWXMAKINGDLL_HTML -dynamic -fPIC -DPIC -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -Wno-deprecated-declarations -D_FILE_OFFSET_BITS=64 -I/private/tmp/nix-build-wxwidgets-3.0.4.drv-0/source/lib/wx/include/osx_cocoa-unicode-3.0 -I./include -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1 -O2 -fno-strict-aliasing -fno-common -fvisibility=hidden -fvisibility-inlines-hidden ./src/html/helpdata.cpp
./src/osx/cocoa/mediactrl.mm:470:9: fatal error: 'AVFoundation/AVFoundation.h' file not found
#import <AVFoundation/AVFoundation.h>
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [Makefile:39594: mediadll_osx_cocoa_mediactrl.o] Error 1
make: *** Waiting for unfinished jobs....
builder for '/nix/store/wm81bmbkzk2ziyk5v3spdz4647n1v5vn-wxwidgets-3.0.4.drv' failed with exit code 2
cannot build derivation '/nix/store/y5b7m6vlp8l5046sf7g41bz88w2dv9gn-pwsafe-3.53.0.drv': 1 dependencies couldn't be built
error: build of '/nix/store/y5b7m6vlp8l5046sf7g41bz88w2dv9gn-pwsafe-3.53.0.drv' failed

This is with the unstable channel fully updated:
$ nix-env -qa --drv-path --out-path pwsafe
pwsafe-3.53.0  /nix/store/y5b7m6vlp8l5046sf7g41bz88w2dv9gn-pwsafe-3.53.0.drv  /nix/store/lvikq70mprd98ny90glpsh04llzs77nz-pwsafe-3.53.0

Platform: macOS 10.15.7 (Catalina).
Note for maintainers
Please tag this issue in your PR.

I just tested it on Linux, there it works just fine. Thank you for your report, and sorry that I cannot be of further assistance!

I just tested it on Linux, there it works just fine. Thank you for your report, and sorry that I cannot be of further assistance!


Non repeatable group

Is your feature request related to a problem? Please describe.
I'm working on implementing an NPC generator based on UNE (from Conjecture games). In there, there's a table from which we can't pull twice from the same column ("NPC Motivation", contains 5 columns of 20 elements). Three pulls are recommended.
I was planning on having a group for each column ("Motivation1to20", "Motivation21to40", etc...), and a non repeating group "Motivation" to pull from at the root of my script. Unfortunately, it seems that I can't get the '!' group tag to work in this module. Is it implemented? Or is it planned?
In the Functions list of your module (here: https://github.com/klaas1979/tablesmith-like/blob/v1.12.1/FUNCTIONS.md#loop), I can see this function under "Not implemented"
"Used (Used already)"
Is this the technical term for the '!' group tag?
Describe the solution you'd like
To keep consistent with the description, here's what would be required:
:Start
1,{Loop~3,[MotivationNouns]}{Reset~MotivationNouns}

;!MotivationNouns
1,[MotivationNouns1to20]
1,[MotivationNouns21to40]
1,[MotivationNouns41to60]
1,[MotivationNouns61to80]
1,[MotivationNouns81to100]

;MotivationNouns1to20
1,wealth
2,hardship

;MotivationNouns21to40
1,the wealthy
2,the populous

;MotivationNouns41to60
1,dreams
2,discretion

;MotivationNouns61to80
1,gluttony
2,lust

;MotivationNouns81to100
1,advice
2,propaganda

Describe alternatives you've considered
Not sure if there are alternatives to this. Maybe a ton of scripting to handle lockouts, and that assumes that a variable can be a sequence compatible with a Lockout call; quite a longshot.
Additional context
Sources I've found when searching if this feature exists:

https://randomdm.wordpress.com/2011/05/31/tablesmith-tuesday-introduction-part-5-useful-functions/ (under "GROUP Functions")
groups.io message quoting Tablesmith's manual: https://groups.io/g/tablesmith/message/8887
groups.io message including a sample table: https://groups.io/g/tablesmith/message/9435

Back from holiday will lock into it in the next days/weeks

Thank you :)

There was an error in handling non repeating groups from group calls. It should be fixed now and work as expected.


OAuth2 does not work in mobile apps

Similar issue than https://github.com/kalisio/kdk/issues/86 + security limitation by some providers on mobile web agents like Google (eg https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html).

OAuth2 has been removed for now.


Consider renaming hana::demux and hana::lockstep

I have never been really fond of those, but I could never think of something better. If someone can come up with something that's better, I'll be happy to change it. To understand what those guys do, see here for demux and here for lockstep. Basically, they are two different ways to compose functions, along with compose.

The names are not great, but at the same time there's no compelling reason to change them. I will wait for someone to either complain about the names or to suggest something better before sweating over this. Hence, closing.


deployment does not respect vhost template

Hi,
Not sure if this is the right place to post this issue.
If I define the DocumentRoot in my vhost template as follows:
    DocumentRoot "${docroot}/../myotherdocroot/"
Then I can create this vhost correctly using the API
Next if I deploy a zpk (with the docroot set in the deployment.xml) the complete value between double quotes gets replaced with the docroot setting from my deployment.xml ignoring how I defined this in my vhost template.
So in short, after deploy I end up with:
    DocumentRoot "/usr/local/zend/var/apps/<scheme>/<vhost>/<port>/<app>/<docroot_from_deployment.xml>/"
But in my understanding of a template I should have ended up with:
    DocumentRoot "/usr/local/zend/var/apps/<scheme>/<vhost>/<port>/<app>/<docroot_from_deployment.xml>/../myotherdocroot/"
same thing happens with
<Directory "${docroot}/../myotherdocroot/">

You may be wondering why I want to do this. I'm using this documnted workaround https://support.zend.com/hc/en-us/articles/203959473 to deploy two vhosts within one template where each vhost should have its own document root within the deployed app. If I were to deploy one single vhost then it would be fixable by setting the correct docroot in deployment.xml. Since I want both vhosts to have a different docroot this fix is not helpfull

As I've learned from Zend Support this issue is due to Deployment Daemon behavior and has been filed as a bug.


KmerCountScalar

Currently reworking the types, and realized that it might make sense to have a KmerCountScalar type, which is just a zero-dimensional k-mer count. Implementation may look like this:
struct KmerCountScalar{S, k, T, A} <: AbstractKmerCount{0, S, k, T, A}
    kmer::Integer
    counts::A

    function KmerCountScalar{S, k}(kmer::Integer, counts::A) where {S, k, T, A <: AbstractArray{T, 0}}
        new{S, k, T, A}(kmer, counts)
    end

    function KmerCountScalar{S, k, T, A}(kmer::Integer, count::T) where {S, k, T, A}
        new{S, k, T, A}(kmer, fill(count))
    end
end

@inline Base.size(::KmerCountScalar) = ()
@inline Base.length(::KmerCountScalar) = 1
@inline Base.getindex(kcs::KmerCountScalar) = kcs.counts[1]
@inline Base.getindex(kcs::KmerCountScalar, i) = kcs.counts[i]

# without these, it's gonna get shown as `fill(<count>)`
@inline Base.repr(kcs::KmerCountScalar) = kcs[]
@inline Base.show(io::IO, kcs::KmerCountScalar) = print(io, repr(kcs))

Directly indexing vectors and matrix could return this type. The only real benefit that I can see is that we can have the kmer field, which means that we can remember which k-mer it was that was accessed.
Kinda weird though, and printing matrices was super slow...

#19


[DesignSpace 5] Setting family name for

https://fonttools.readthedocs.io/en/latest/designspaceLib/python.html#variablefontdescriptor

duplicate of #2916


allowing hidden fields with highlighted snippets to show up in hit highlight results

Change Summary
I've added a code snippet showing one way to add highlight results to the search hits, when the field that is being highlighted is excluded from the document.
This is something we need, and I've added something to the test data to simulate for it. The response adapter tests work, but couldn't get the entire test suit to run (probably windows related).
I hope you guys can add something similar to the main repo, but I can use this for now.
PR Checklist

[x] I have read and signed the Contributor License Agreement.

Even though it seems to work in the tests, it still doesn't show up in the _highlightResults or _snippetResults. I will use _rawTypesenseHit to create the highlight instead.


release notes/version number/documentation for release milestone v<IP_ADDRESS>

manifest and general documentation updates in relation to issue #34.
In addition to this pull request please also pull the wiki from the master of https://github.com/netspiri/vs-boost-unit-test-adapter.wiki.git to the master of https://github.com/etas/vs-boost-unit-test-adapter.wiki.git

:thumbsup:

Hello @guwirth. fyi, we merged the wikis ourselves coz in case of conflicts it would have been easier for us to resolve them.

@netspiri makes sense :+1:


Remove superfluous types property in constraints

David Chadwick raised the issue that we only need fields, not types, so his proposal is to remove types and add 0-index iteration language to fields, simplifying the spec. Folks in DIF were previously a fan of this before types was put into spec text, so there would be agreement if the OIDC crowd was of the same mind as David. CCing @tlodderstedt for visibility.

Thanks for the notification.
Does it mean type requirements are expressed as field constraint over whatever field holds type information in a certain credential format?
Is there a text proposal on the table?

@tlodderstedt Yes this is the intention. Also that RPs would make type searching the first fields constraint in their request, so that it is evaluated first by the wallet.

That's a reasonable change given that the rest of the input descriptor refers to the actual credential's structure as a JSON object (with different paths for JWT and LD Proofs, for example). Since we have the format now in the input descriptor, the verifier can also clearly state the expected format and type.

@OR13 @JaceHensley @brentzundel any thinking here? Frag types in favor of using the single area for value interrogation? (I think we had wanted it this way before, so I am supportive of this simplification)

I'm fine with this. There were some people who wanted the separate types property for semantic purposes, I forget exactly who wanted that tho

Done in latest PR: https://github.com/decentralized-identity/presentation-exchange/commit/901937b12d80832f283b0f4d5bdae8df24bceb60

Note, spec language was also changed by a loose commit that was probably intended for the PR above.


Prediction for Qasper test data fails

Hello,
I'm trying to replicate the fine-tuning results for the Qasper dataset baseline and the 256-bart model.
I see two issues when I try to generate predictions:

When generating predictions on the Qasper validation data, there are only 984 samples loaded, instead of the 1,726 stated in the paper and found in the dataset itself. This is the command I'm running:

python scripts/execute.py scripts/commands/generate.py qasper_256-bart_validation --checkpoint_path /home/ubuntu/baselines/outputs/facebook-bart-base_256_1_5e-05_16384_scrolls_qasper_site-wash-14

When generating prediction for the test data, the script errors out, however there should be 1,399 examples:

  File "/home/ubuntu/baselines/src/run.py", line 689, in main
    id_to_prediction[instance["id"]] = predict_results.predictions[i]
IndexError: index 984 is out of bounds for axis 0 with size 984

This is the command I'm using:
python scripts/execute.py scripts/commands/generate.py qasper_256-bart_test --checkpoint_path /home/ubuntu/baselines/outputs/facebook-bart-base_256_1_5e-05_16384_scrolls_qasper_site-wash-14

Could you please advise?
Thanks!

Hi Daniele, can you please share the output of pip freeze?

I realized some answers to my two original questions:

there are 984 samples in the Qasper validation after duplicates are dropped here.
The validation dataset is processed by the preprocess_function here, and while the resulting eval_dataset contains 984 samples (correctly), I see the following warning, which I'm not able to understand:

2023-10-17 04:45:09 | WARNING | datasets.fingerprint | Parameter 'function'=<function preprocess_function at 0x7fa38167d790> of the transform datasets.arrow_dataset.Dataset._map_single couldn't be hashed properly, a random hash was used instead. Make sure your transforms and parameters are serializable with pickle or dill for the dataset fingerprinting and caching to work. If you reuse this transform, the caching mechanism will consider it to be different from the previous calls and recompute everything. This warning is only showed once. Subsequent hashing failures won't be showed.
2023-10-17 04:45:09 | WARNING | datasets.arrow_dataset | Loading cached processed dataset at /home/ubuntu/.cache/huggingface/datasets/tau___scrolls/qasper/1.0.0/672021d5d8e1edff998a6ea7a5bff35fdfd0ae243e7cf6a8c88a57a04afb46ac/cache-1c80317fa3b1799d.arrow

For the test data, the deduplication function does not drop any data (I'm still seeing 1399 samples right after deduplication). However, the pre-processing function for the test data seems to do something wrong, because the size of the test data afterwards is 984 (suspiciously the same as the validation data). I also see a similar warning again:

2023-10-17 04:45:36 | WARNING | datasets.fingerprint | Parameter 'function'=<function preprocess_function at 0x7f4917b06ca0> of the transform datasets.arrow_dataset.Dataset._map_single couldn't be hashed properly, a random hash was used instead. Make sure your transforms and parameters are serializable with pickle or dill for the dataset fingerprinting and caching to work. If you reuse this transform, the caching mechanism will consider it to be different from the previous calls and recompute everything. This warning is only showed once. Subsequent hashing failures won't be showed.
2023-10-17 04:45:36 | WARNING | datasets.arrow_dataset | Loading cached processed dataset at /home/ubuntu/.cache/huggingface/datasets/tau___scrolls/qasper/1.0.0/672021d5d8e1edff998a6ea7a5bff35fdfd0ae243e7cf6a8c88a57a04afb46ac/cache-1c80317fa3b1799d.arrow

As you can see, the two warning messages are loading the same cashed dataset.
By changing load_from_cache_file=False here, I now see 1399 predict samples.

This leaves question 1 answered, and question 2 temporarily fixed, but needing further inspection to understand why the preprocess_function does not load the proper cached predict dataset.

Hi Daniele, Sorry for the delay in the response!
You understood correctly the removal of duplicate inputs.
Regarding the warning+error you got, I found the issue:
Version 1.17.0 of datasets did some modifications for dill that worked for version 0.3.4 but failed with newer versions, which made the cache fingerprinting to fail and as a result caused issues with the cache.
The fix would be to explicitly install the following dependencies:
dill==0.3.4
multiprocess==<IP_ADDRESS>  # (newer versions require dill>0.3.4)

I've also updated the repository accordingly.
Thank you for brining this to our attention!

Thanks for the help!


Feature Request: Add support for treesitter's offset! directive

Hello! Just to be clear upfront, this issue isn't for adding support for a new language but for an existing feature of treesitter. The context behind the request is for a new language but the parser is still WIP so I don't want to request it here yet.
Anyways ...
I'm writing a WIP treesitter parser for a language called USD. A typical file may look like this
def "foo"
{
    def "child_001"
    {
        # ... lots of stuff
    }

    def "child_002"
    {
        # ... lots of stuff
    }

    def "child_003"
    {
        # ... lots of stuff

        def "grand_child_001"
        {
            # ... lots of stuff
        }

        def "grand_child_002"
        {
            # ... lots of stuff
        }

        def "grand_child_003"
        {
            # ... lots of stuff
        }
    }
}

USD files can get very big with nested "def-s within def-s within def-s" with lots of data. Aerial.nvim has been a huge improvement for navigating those big files. That said, my parser matches the whole string name, "foo", which Aerial picks up on, like this
"foo"
  "child_001"
  "child_002"
  "child_003"
    "grand_child_001"
    "grand_child_002"
    "grand_child_003"

I'd like to remove the prefix and suffix "s within aerial, without needing to modify the my original USD parser. I checked around neovim's :help and found :help offset!. The docs for that are as follows:
    `offset!`                                      *treesitter-directive-offset!*
        Takes the range of the captured node and applies an offset. This will
        generate a new range object for the captured node as
        `metadata[capture_id].range`.

It seemed like the perfect thing - I thought I should strip the start and end column so that the name becomes foo, rather than "foo".
In a aerial.nvim fork ...
queries/usd/aerial.scm
(prim_definition
  (string) @name
  (#offset! @name 0 1 0 -1)
  (#set! "kind" "Class")
) @type

But I think the #offset! directive might not be known / supported by aerial because it doesn't seem to have any effect on the display tree that aerial creates. I'm getting around this for now, by adding the following to my own fork of aerial.nvim
aerial.nvim/lua/aerial/backends/treesitter/extensions.lua
M.usd = {
  postprocess = function(bufnr, item, match)
    item.name = item.name:gsub("^\"", "")
    item.name = item.name:gsub("\"$", "")
  end
}

Doing that renders the tree as I'd hoped
foo
  child_001
  child_002
  child_003
    grand_child_001
    grand_child_002
    grand_child_003

If there's a simpler way to query just the text within the string using treesitter query syntax I'd like to know (I'm a treesitter novice so I could've missed it in the docs). But if there's no alternative, adding the treesitter offset! directive seems like it'd be a good way to solve this sort of thing. What do you think?

Querying the contents inside the string quotes is dependent on the parser. Some parsers assign a separate node to the inside of the quotes, some don't. If it's all a single node, then that's as far as you can go.
I've added support for offset ranges specifically for the name node. It would be a larger refactor to do this for the positioning nodes, or to do this for languages that already have special logic in the extensions.lua file. I mention this so that if you or someone else comes across examples where offset appears to not be working, this is why (and you can open a new issue for that situation).
Give the fix a try and see if it handles your use case.

I pulled the latest master commit but there's still ""s after attempting to modify the column range. I'm new to tree-sitter query syntax so I may not be doing it 100% right.
(prim_definition
  (string) @name
  (#offset! @name 0 1 0 -1)
  (#set! "kind" "Class")
) @type

That's the same block as my previous post. Since the offset is applying to @name, does that mean I should see a difference in the output?
My impression of the #offset! was that it can be used to modify the row/column range of a node without needing a separate inner node as you've said. That functionality doesn't come for free of course, which is why I appreciate you taking to time to try to add support for it. If my tree-sitter query can be improved to get this working, please let me know.

I tested this by adding (#offset! @name 0 1 0 -1) after this line: https://github.com/stevearc/aerial.nvim/blob/3721075a6903859c4936bdc7e5a4c345f93d3aac/queries/lua/aerial.scm#L2
and running the tests for the lua parser with ./run_tests.sh tests/treesitter/lua_spec.lua. The tests fail (as expected) because it trims out the function name.
That's about as far as I can help you without a repro. If you can get me an example or a test that I can run on my own computer then I can try to figure out what's going on.

In the process of reproing I think I solved whatever in my config that was preventing your commit from working. I'll report back if it breaks later but it looks like we're all set! I'll close this issue. Thank you for your timely replies and this plug-in. I'm really enjoying using it :)


Add keychain option

electron-builder now uses electron-osx-sign to sign app and MAS build.
Currently, I use my fork. Want to integrate my changes.

use execFile instead of exec — no need to escape args.
add  keychain option.
remove code duplication — base args to codesign (so, the only place where add new keychain arg).

Also, I added TS definition file according to http://www.typescriptlang.org/docs/handbook/typings-for-npm-packages.html
Why  keychain is required? Because electron-builder is a complete solution and supports code signing on a CI servers.

Hi @develar, thanks for integrating those features! 👍 I've just reviewed the files changed and made some adjustments on https://github.com/sethlu/electron-osx-sign/tree/keychain; would you mind having a look and probably cherry-pick some of the changes before merging?
Also, I've ported the keychain option to the part of identity discovery so conflicts in identity mismatching should be resolved, with .exec updated to .execFile following a same fashion.
What do you think?

Sorry, forgot to mention #32. The opts.verbose flag shall no longer be available. I'll push a few changes to my fork now.

One other thing that probably needs deciding is whether we should have opts.keychain explicitly specified to login.keychain if the user does not have it input... I need to check if login.keychain is always by default, just to be clear.

we should have opts.keychain explicitly specified to login.keychain if the user does not have it input.

No, we must not. Any user keychain (excluding System and ICloud) can be default — Keychain Access app -> select keychain -> File -> Make Keychain "name" Default.
Why electron-builder doesn't use it on CI server to make new keychain default as Travis suggests https://docs.travis-ci.com/user/common-build-problems/#Mac%3A-Code-Signing-Errors
security default-keychain -s $KEY_CHAIN

? Because tool must not change system default — it should not change system environment during run. And it very critical if you run it on a development machine — to not change your current default keychain.

and made some adjustments on https://github.com/sethlu/electron-osx-sign/tree/keychain

I applied your changes, thanks. I changed
Default to `login.keychain`

to
 Default to system default keychain (`login.keychain`).

@develar I've just done some modifications on index.d.ts. There is a couple of items probably missing that is added: https://github.com/sethlu/electron-osx-sign/commit/0db0b3f5b02311650e00624653b027eb95102f21

It seems that GitHub in some ways acknowledges the semicolon

Ok, for now semicolons are ok. May be in the future we will remove it, but we will leave it.

@develar merged. Thanks for supporting 😄 I'll have the next release probably posted very soon.


Adding PR ettiquette for Contributions.

Checklist

[ ] New Extension
[ ] New Test
[ ] Changed more than one extension, but all changes are related
[x] Trivial change (doesn't require changelog)

          3 Messages

:book:
Executed 202 tests, with 0 failures (0 unexpected) in 6.190 (6.655) seconds

:book:
Executed 187 tests, with 0 failures (0 unexpected) in 4.419 (4.615) seconds

:book:
Executed 124 tests, with 0 failures (0 unexpected) in 4.295 (4.387) seconds

  Generated by :no_entry_sign: Danger


Problems with .addLeaf()

Bug description
When trying to add fractions into the mathtextfield they end up giving a parser error after trying to edit
To Reproduce
Steps to reproduce the behavior:
_mathController.addLeaf(r"\frac{1");
_mathController.addLeaf("2");
_mathController.addLeaf("}{3");
_mathController.addLeaf("4");
_mathController.addLeaf("}");
_mathController.addLeaf("");
try editing the fraction using the math keyboard.
Expected behavior
It would be great if you could add fractions into the mathfield by using addLeaf(). Maybe I'm just not looking in the right places for this functionality.
"Parser Error: Expected '}', got 'EOF' makes sense since I'm deleting the bracket, but how do I make the fraction editable in the mathtextfield?

Hi @AlgebraicFloat, please have a look at addFunction() for everything that takes arguments (e.g. like fractions do)🙂


invokeTelephonyIntegrationApi.executeOmniflow fails after 10.0 update

This change in 10.0 in
https://github.com/service-cloud-voice/ServiceCloudVoiceLambdas/blob/2017940e0b859c8dd01e6b13aa13bdfe449ec265/invokeTelephonyIntegrationApi/handler.js#L115-L116
is causing the call to be made to the SF API with /voiceCall/undefined/omniFlow.
The === check is too restrictive as if no parameter is sent, the variable would be undefined, not null.
Best choice is to check for a falsy value instead.
like so:
const contactIdParam = contactId || event.Details.ContactData.ContactId;

Fixed in the 10.1 version, We will release 11.0 version which should have this fix.


[Bug] Source Freshness executing on unused tables

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the issue
https://github.com/fivetran/dbt_iterable_source/blob/847b282848a98f7ea8947df4f0aa5639649845dc/models/src_iterable.yml#L11-L13
While implementing the iterable package, I am running into an error on my slim ci dbt job.
during the execution of dbt source freshness
I am encountering the error
19:57:17 13 of 13 ERROR freshness of iterable.user_unsubscribed_channel_history ......... [ERROR in 0.23s]
19:57:17
19:57:17
19:57:17  Finished running 13 sources in 0 hours 0 minutes and 3.66 seconds (3.66s).
19:57:18
19:57:18
19:57:18    Database Error in source user_unsubscribed_channel_history (models/src_iterable.yml)
  002003 (42S02): SQL compilation error:
  Object 'db_name.SRC_ITERABLE.USER_UNSUBSCRIBED_CHANNEL_HISTORY' does not exist or not authorized.

Which is correct because I do not have the table USER_UNSUBSCRIBED_CHANNEL_HISTORY
I would expect source freshness to skip this table if it is not explicitly being used.
Relevant error log or model output
19:57:18    Database Error in source user_unsubscribed_channel_history (models/src_iterable.yml)
  002003 (42S02): SQL compilation error:
  Object 'BLUEPRINTS_PROD.SRC_ITERABLE.USER_UNSUBSCRIBED_CHANNEL_HISTORY' does not exist or not authorized.

### Expected behavior

I would expect source freshness to skip tables that are not being used.

### Possible solution

_No response_

### dbt Project configurations

iterable:
+tags:
ft_iterable
+schema: fivetran  # this schema name is prefixed to iterable
intermediate:
+schema: fivetran  # this schema name is prefixed to int_iterable
+tags:
ft_iterable
iterable_source:
+schema: fivetran  # this schema name is prefixed to stg_iterable
+tags:
ft_iterable_src
vars:
iterable_database: blueprints_prod
iterable_schema: src_iterable
iterable__using_campaign_label_history: false
iterable__using_user_unsubscribed_message_type: false

### Package versions

package: fivetran/iterable
version: 0.12.0

### What database are you using dbt with?

snowflake

### How are you running this dbt package?

dbt Cloud™

### dbt Version

versionless

### Additional Context

_No response_

### Are you willing to open a PR to help address this issue?

- [ ] Yes.
- [X] Yes, but I will need assistance.
- [ ] No.

Hi @justin-fundrise ,
try setting this config in your dbt_project.yml. That should exclude a source from freshness calculations.
freshness: null

I think it would be okay to remove the freshness checks. This is something that is more specific to a business’s needs depending on their use case of the data.

Thanks for the input here @justin-fundrise ! I will go ahead and update this ticket to make a note that we should remove these source freshness checks, as they will cause errors for other customers like the ones you experienced.

Thanks for opening this @justin-fundrise ! This has been addressed in the latest release. Let us know if you need anything else.


Illegal instruction on windows

I'm trying to run the hello world karma project but it gives me a error saying
/c/Users/myname/AppData/Roaming/npm/karma: line 14:  2808 Illegal instruction     node "$basedir/node_modules/karma-cli/bin/karma" "$@"

Tried reinstalling every module one bye one. same thing occurs.
I installed
npm i karma-cli -g
npm i karma --save-dev

Using a Windows 7 (64bit)
Nodejs V4.4.5 (x64)

@warapitiya is this still an issue? If not, I'm closing it in a couple of days.


intel_adsp_cavs15: signing not correct thus download firmware failed

Describe the bug
When run testcases we use west script(sign.py) to signing with image (no error and show completed) then invoke download script to load firmware, it has some error log at firmware loaded step. By debug, found signing not correct in fact(even if show completed without error), if we use command to signing by ourselves without west script(sign.py) it will download successful.
To Reproduce
Steps to reproduce the behavior:

west build -b intel_adsp_cavs15 tests/kernel/thread/thread_apis/

west sign -t rimage -p ../modules/audio/sof/zephyr/ext/rimage/build/rimage -D ../modules/audio/sof/zephyr/ext/rimage/config/ -- -k ../modules/audio/sof/keys/otc_private_key.pem

boards/xtensa/intel_adsp_cavs15/tools/fw_loader.py -f /home/ztest/work/zephyrproject/zephyr/build/zephyr/zephyr.ri

See error

west build -b intel_adsp_cavs15 tests/kernel/thread/thread_apis/

../modules/audio/sof/zephyr/ext/rimage/build/rimage -k ../modules/audio/sof/keys/otc_private_key.pem -o /home/ztest/work/zephyrproject/zephyr/build/zephyr/zephyr.ri -c ../modules/audio/sof/zephyr/ext/rimage/config/apl.toml -i 3 -e /home/ztest/work/zephyrproject/zephyr/build/zephyr/bootloader.elf.mod /home/ztest/work/zephyrproject/zephyr/build/zephyr/zephyr.elf.mod

boards/xtensa/intel_adsp_cavs15/tools/fw_loader.py -f /home/ztest/work/zephyrproject/zephyr/build/zephyr/zephyr.ri

load firmware successful

Environment (please complete the following information):
OS: Fedora28
Toolchain: Zephyr-sdk-0.12.1
Commit ID: 3f1d1f5773ddaf

@lyakh  can you check what is going on?

@lyakh can you check what is going on?

@nashif Signing using west sign didn't work whereas signing calling rimage manually worked, so, looks like scripts have to be fixed. I see @KangJianX has assigned this to himself, so I think he is of the same opinion.

@lyakh the root cause is the xman will be wrote in zephyr.ri, as my understanding, we run kernel testing not use SOF's way to load image by kernel DSP driver, so it do not need the xman in zephyr.ri and it cause check the image failed from SOF. I will add a option in sign.py to control if we need xman or not, what do you think of?

@lyakh the root cause is the xman will be wrote in zephyr.ri, as my understanding, we run kernel testing not use SOF's way to load image by kernel DSP driver, so it do not need the xman in zephyr.ri and it cause check the image failed from SOF. I will add a option in sign.py to control if we need xman or not, what do you think of?

@KangJianX but you did use the "-e" option when you ran rimage manually, so you did force it to generate the extended manifest. Can you see what exactly the rimage command line is when run from the west sign command?

@KangJianX but you did use the "-e" option when you ran rimage manually, so you did force it to generate the extended manifest. Can you see what exactly the rimage command line is when run from the west sign command?

Yes, use 'west sign' will show a command, it is same with run by manually. The difference is script will has a additional process like this:
filenames = [out_xman, out_bin] with open(out_tmp, 'wb') as outfile: ... ...
Those code will write xman to zephyr.ri.

@KangJianX ok, so you want to add a parameter to west sign to avoid that? Got it, thanks!

@lyakh Yes, I want add a option to avoid this after signing with rimage. Do you think it is make sense?

@lyakh Yes, I want add a option to avoid this after signing with rimage. Do you think it is make sense?

@KangJianX sure, if it fixes your problem and doesn't change the default behaviour I don't see a problem with that.


Support Interface Staging for 6 GHz Frequencies for Passive Mode

While we haven't figured out injection on 6 GHz yet, we can passively listen for association requests from clients to APs in the 6 GHz mid-band spectrum.

Note this requires 1) interface staging and scanning, 2) correct hardware/firmware/software and 3) --noAP and --noprep options to be passed in, all prior to profiler being launched.

With that said, 6 GHz raises some questions and a need to do some investigation on behavior and testing of the profiler in 6 GHz.

Is it time to switch the channel configuration from channel # to frequency? Instead of channel 1 in 2.4 GHz, using 2412. Instead of channel 36 in 5 GHz, using 5180. For channel 5 in 6 GHz, 5975.

When we get an association frame, print better debugs. For example in 5 GHz, it's not clear where we get the ch and freq from.
2021-11-08 14:17:44,201 [DEBUG] fakeap.py: adding assoc req from 6e:1d:8a:28:32:51 to queue
2021-11-08 14:17:44,232 [DEBUG] fakeap.py: adding assoc req from 6e:1d:8a:28:32:51 to queue
2021-11-08 14:17:44,247 [DEBUG] profiler.py: freq is 5180
2021-11-08 14:17:44,247 [DEBUG] profiler.py: ch is 36

When we generate a "profile", the listed channel and frequency are from the association frame.

When we get an association frame, print better debugs. For example in 5 GHz, it's not clear where we get the ch and freq from.
2021-11-08 14:17:44,201 [DEBUG] fakeap.py: adding assoc req from 6e:1d:8a:28:32:51 to queue
2021-11-08 14:17:44,232 [DEBUG] fakeap.py: adding assoc req from 6e:1d:8a:28:32:51 to queue
2021-11-08 14:17:44,247 [DEBUG] profiler.py: freq is 5180
2021-11-08 14:17:44,247 [DEBUG] profiler.py: ch is 36

When we generate a "profile", the listed channel and frequency are from the association frame.

This has been addressed in #87

Tightening the scope of this issue to only deal with the input and staging of 6 GHz frequencies on iwlwifi ax210 cards.


Consolidate project name

While the main class is AkkaDiscoveryServiceLocator the project name in GitHub is service-locator-akka-discovery. We should consolidate to akka-discovery-service-locator since akka-discovery is an implementation detail and service-locator the exposed API.

On the other hand, if we want it to have the features that is now provided by reactive-lib, we should instead have another name for it.
This will not only be about service locator, but also the Cluster Bootstrap. Or, we need yet another project just for the bootstrap.
I think personally that another project is overkill. We want an integration library that we can drop in any Lagom app and make it ready for production using Akka Cluster Bootstrap, Akka Discovery and Cluster Health Check. Basically, we want to rely on akka-management.

I think it's not clear what this repo is for.
If we want a drop-in thingy to take any lagom project into production then I think it should be split into several one-class artifacts. The reason is that [as a user I may only want the AkkaDiscoveryServiceLocator and not the Bootstrap](a custom case class).
lagom-javadsl-akka-discovery-service-locator // only the locator, no Module
lagom-javadsl-cluster-bootstrap // the bootstrap, the healthchecks and a Module

The reason why one has a Module and the other doesn't is that no ServiceLocator should be automatically bound (IMHO).

I haven't put too much thought on the proposal above, but splitting into modules and renaming the repo to lagom-management could keep things tidy.
Also, the above would also need lagom-scaladsl-... of course.

Yeah one repo, multiple modules.

Superseded by #9

The project is renamed to akka-discovery-service-locator as suggested here.


⚠ Bofrost.de has degraded performance

In 72fc3fe, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1870 ms

Resolved: Bofrost.de performance has improved in 964e2ae after 6 minutes.


Write a tool to ease with embedded allocator debugging

The stateful allocator model introduced by EmbeddedAllocator (in short words "place all allocator metadata in the arena itself") makes easy to manage stateful allocators, but the allocator state is no longer visible with a debugger.
For windows there's a good solution: Visual Studio provides an API for extending debugging visualizers: https://msdn.microsoft.com/en-us/library/jj620914.aspx
Pinging @foonathan just for the case... :P

I have no experience with debuggers, I rarely ever use them.
You could pack the metadata in a struct and view the struct in the debugger but otherwise... Write correct code? :D

I also try to write correct code so I don't have to leave my vim-zen-cave, but there are situations where this is not possible xD. Sooo you wrote a high quality allocator library with no debugging at all???? LOL

I have debugged some parts of my freelists implementation but since the most difficult one is an XOR linked list, I had a similar issue.
I mostly do printf-debugging, though, I find it much easier.

Just for documentation sake, this is what I mean by "ease to debug embedded allocator": This is a capture of the reflection example, specifically member function invocation:

Yeah, it's the same shot from twitter....
The reflection engine has one freelist-based pool per object type so allocations are "optimized". The highlighted lines in the memory viewer are the beginning of the int object pool. The structure of the EmbeddedAllocator storage is as follows:
+-------------------------------+ <--- arena begin
|    pointer to end of arena    |
+-------------------------------+
|   4/8 bytes (sizeof(void*))   |
+-------------------------------+ <--- metadata begin
|      pointer to head node     |
+-------------------------------+ <--- storage begin
|                               | ^
|             ...               | | data
|                               | v
+-------------------------------+ <--- storage/arena end

In the screenshot, the int object arena (At least the first block, there's really a chain of fixed-size freelists) goes from addresses 0x01175260 to 0x01176260, with the result object from function invocation at address 0x01175270, and the head (@0x01175268) pointing to node at 0x0117526C (Node used previously by the function argument object).

Put that layout into a struct instead of working with offsets and casts. Then place the struct in the memory.
Look at the chunk handling here: https://github.com/foonathan/memory/blob/master/src/detail/small_free_list.cpp

I wanted to avoid padding, but maybe you are right. Placement new is our friend...

Here's a tutorial about writing debug visualizers for GDB: http://plohrmann.blogspot.com.es/2013/10/writing-debug-visualizers-for-gdb.html
I don't do python since biicode closed, let's see if haven't lost my pythonic spirit...

GDB Python API for custom pretty printers: http://sourceware.org/gdb/onlinedocs/gdb/Pretty-Printing-API.html#Pretty-Printing-API
Also in the same webpage, a mini-tutorial: http://sourceware.org/gdb/onlinedocs/gdb/Writing-a-Pretty_002dPrinter.html#Writing-a-Pretty_002dPrinter

Whenever I get time to solve all the other ugly stuff (no tests, no docs, etc), opening a new issue about migrating to foonathan/memory would be a great idea.


mv contact to own page

de-clutters "get involved" a bit
fixes broken links to "contact us"

Merging so that I can continue fixing many broken links.


Fix hashing of Device Certificate Chain in Ownership Voucher

The specification states that “OVDevCertChainHash is the Hash of the concatenation of the contents of each byte string in OwnershipVoucher.OVDevCertChain, in the presented order."
The current behavior is to serialize the X5CHAIN to CBOR (i.e. [ bstr[cert1] ... bstr[certN] ] instead of cert1 || ... || certN).
See https://fidoalliance.org/specs/FDO/FIDO-Device-Onboard-PS-v1.1-20220419/FIDO-Device-Onboard-PS-v1.1-20220419.html#OwnershipVoucher
BREAKING CHANGE: The device certificate chain hash in ownership voucher is now calculated from the concatenation of certificate ASN.1 DER contents rather than the CBOR serialization of an array of byte strings.

Two additional points:

I couldn't find any code that performed device certificate chain hash verification for the ownership voucher. If I missed it, it may need updating. (And if it doesn't exist, maybe it should?)
This still doesn't properly cover the fact that a null certificate chain should be encoded as CBOR null. I don't think this missing case matters, though, because a null certificate chain is only for Intel EPID and similar device identities, which this library does not support.