Bug: Scroll position jumps when opening slash menu

Problem
create a long document and scroll down so you can see the last line of text. (But do not scroll fully to the bottom). put the cursor on the end of that paragraph
type enter to create a new paragraph
Bug 1: The cursor goes off the screen but we should scroll down to the new line so you can see the empty line before you start typing text into it
now, press slash
Bug 2: the document scrolls up and the slash menu appears in the wrong place.

@ericvicenti couldn't recreate bug 2. Slash menu works as expected both when typing slash and clicking plus button

Oh man now I can't get it to reproduce anymore!
I see a different issue when I have my cursor on a new line and then I scroll up so that the cursor is off the screen, then press slash and scroll back down. I can't see the whole slash menu and it lets me scroll off forever 😅
https://github.com/MintterHypermedia/mintter/assets/1483597/4831ae17-df23-47f0-bf7e-ad389c72f6b2

same, will take a look

For some reason the editor scrolls to the top only when the sidebar is open and locked. I couldn't find any scrolling code in sidebar.tsx or sidebar-context.tsx. @ericvicenti @horacioh  do you know what could be the reason?

Should be fixed in commit #2617d23


Missing ";" in buttons.less line no. 110

For consistency, I suggest putting in the missing ";" at Line No. 110 of "buttons.less"
color: @white

Resolved, thanks.


unit tests needed

To improve efficiency of future code development more unit tests will be needed.

Will close this issue as test coverage has been improved and will keep this in mind when developing future code


bugfix: visibility of headline on smartphone; create minified css versions for faster loading times.

I like the idea with minified css files however how will this work when people edit the css files?

I like the idea with minified css files however how will this work when people edit the css files?

hy thanks for you response. in general this should not be a big issue when editing the readable css files and afterwords compress it to a minified version. this can ether be done be command line tools or e.g. with filewatchers or automation process in different IDEs


What is purpose of var/scale_clusterdefinition.json?

I stumbled over file var/scale_clusterdefinition.json and I am wondering if this is a left over that can be removed.
I successfully installed and configured a single node Spectrum Scale cluster by customizing the files hosts and group_vars/all. The content in var/scale_clusterdefinition.json describes a different cluster configuration that does not have any impact on my installation.
My suggestion would be to either remove this file or to provide proper documentation on purposae and usage.
My hosts (customized by me):
# hosts:
[cluster]
<IP_ADDRESS>  scale_cluster_quorum=true scale_cluster_manager=true scale_cluster_gui=false

My group_vars/all (customized by me):
# group_vars/all:
---
scale_storage:
  - filesystem: gpfs
    automaticMountOption: treu
    disks:
      - device: /dev/sdb
        servers: <IP_ADDRESS>

Content in var/scale_clusterdefinition.json (as in GitHub. Unchanged):
{
  "node_details": [
    {
      "fqdn" : host-vm1,
      "ip_address" : <IP_ADDRESS>,
      "is_nsd_server": True,
      "is_quorum_node" : True,
      "is_manager_node" : True,
      "is_gui_server" : False,
    },
    {
      "fqdn" : host-vm2,
      "ip_address" : <IP_ADDRESS>,
      "is_nsd_server": True,
      "is_quorum_node" : True,
      "is_manager_node" : True,
      "is_gui_server" : False,
    },
  ],
  "scale_storage":[
    {
      "filesystem": "fs1",
      "blockSize": 4M,
      "defaultDataReplicas": 1,
      "defaultMountPoint": "/mnt/fs1",
      "disks": [
       {
        "device": "/dev/sdd",
        "nsd": "nsd1",
        "servers": "host-vm1"
       },
       {
        "device": "/dev/sdf",
        "nsd": "nsd2",
        "servers": "host-vm1,host-vm2"
       }
      ]
    }
  ]
}

@troppens Thanks for your feedback .  currently this JSON i.e scale_clusterdefinition.json is mainly for cloud AWS deployment and this file will  automatically get generated for cloud deployment through  terraform resource provision but  we can use JSON for any scale supported deployment.  so we have just added as a template if someone is planning to use JSON inventory.  we are planning to add complete information for JSON inventory method in the README.
Current playbook supports 2 different methods to define GPFS cluster node inventory and user can use any of the following two supported methods,

JSON inventory method i.e scale_clusterdefinition.json
then we can directly execute playbook through JSON inventory i.e
ansible-playbook  cloud_playbook.yml
host and group_vars inventory method ,
./ansible.sh  or
ansible-playbook -i hosts  playbook.yml

@rajan-mis Thanks. I was also wondering about cloud_playbook. It should be covered in the README, too.

@troppens Yes this will also get updated and we are planning to merge cloud_playbook.yml into playbook.yml . thanks

@rajan-mis sorry I did not understand merge into playbook.yml?
I was under the impression of this structure, "playbooks/cloud_playbook.yml" and someother example playbooks probably could be put in to it.

@troppens We are thinking to keep only one main playbook i.e  playbook.yml  that should work with both JSON or hosts/group_vars inventory method.  but this is not yet implemented and finalized. thanks

Throwing this out there..  What about providing a docs/examples/ directory with various samples files, including a general playbook.yml, then our instructions would be:

cd <repo>
Copy a sample playbook to the repo top directory
cp docs/examples/playbook.yml .
modify playbook.yml to match your environment

What's the difference you may ask?  When users have deployed and cloned this repo, and if they make changes to the tracked file playbook.yml , they may or may not be able to rebase their clone with changes that we merge into master.   (i.e git pull may complain about conflicts)
So what would naturally happen, is they would maintain their own set of copied playbook.yml files anyway (cp playbook.yml myplaybook.yml) so that their changes are untracked by git...

In general files that have to be customized should not be checked in. They should go to a separate directory as @whowutwut suggests, or they should have a suffix, e.g. playbook.yml.smp. With the suffix they could be placed in the right directory. That would make it easier for Ansible newbies to put the respective files in the respective directories.
I would also suggest to have files like that will be customized excluded in .gitignore to prevent accidentally check-in.

Thinking further about my previous comment, I suggest to consider how users consume the Ansible tooling provided by this project. I did a quick test and now suggest to package this project slightly different.
Let's say that I already have a playbook to manage my environment. Then I would like to include the tooling provided by this project into my already existing playbook instead of writing a new playbook.
Example project:
[root@origin mysite]# ls
group_vars  hosts  site.yml

Example inventory file:
[root@origin mysite]# cat hosts
# hosts:
[cluster]
<IP_ADDRESS>  scale_cluster_quorum=true scale_cluster_manager=true scale_cluster_gui=false

Example  variable definition:
[root@origin mysite]# cat group_vars/all
# group_vars/all:
---
scale_storage:
  - filesystem: gpfs
    automaticMountOption: treu
    disks:
      - device: /dev/sdb
        servers: <IP_ADDRESS>

Example playbook:
[root@origin mysite]# cat site.yml
---
- hosts: all
  roles:
    - setup_ssh

- hosts: cluster
  vars:
    - scale_version: <IP_ADDRESS>
    - scale_install_localpkg_path: /software/Spectrum_Scale_Developer-<IP_ADDRESS>-x86_64-Linux-install
  roles:
     - spectrum_scale_core/precheck
     - spectrum_scale_core/node
     - spectrum_scale_core/cluster

The example above illustrates how the tooling could be integrated and combined with other roles.
To get this running I did the following:
[root@origin ~]# cd /etc/ansible/roles/

[root@origin roles]# ls
setup_ssh

[root@origin roles]# git clone https://github.com/IBM/ibm-spectrum-scale-install-infra.git /etc/ansible/roles/spectrum-scale
Cloning into '/etc/ansible/roles/spectrum-scale'...
remote: Enumerating objects: 40, done.
remote: Counting objects: 100% (40/40), done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 458 (delta 15), reused 18 (delta 6), pack-reused 418
Receiving objects: 100% (458/458), 107.64 KiB | 577.00 KiB/s, done.
Resolving deltas: 100% (187/187), done.

[root@origin roles]# ln -s spectrum-scale/roles/core/ spectrum_scale_core

[root@origin roles]# ls
setup_ssh  spectrum-scale  spectrum_scale_core

[root@origin roles]#

The directory /etc/ansbile/roles now includes two roles:

setup_ssh
spectrum_scale_core

I have referenced both roles in the playbook site.yml above.
Now I can run my playbook to configure ssh and Spectrum Scale:
[root@origin roles]# cd ~/mysite/

[root@origin mysite]# ansible-playbook -i hosts site.yml

PLAY [all] *************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [<IP_ADDRESS>]

TASK [setup_ssh : Disable ssh strict host key checking] ****************************************************************
ok: [<IP_ADDRESS>]

PLAY [cluster] *********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [<IP_ADDRESS>]

TASK [common : common | Find available scale version] ******************************************************************
skipping: [<IP_ADDRESS>]

...

Based on that I would suggest to put each role into a different GitHub repo. Then users could clone the roles that they desire to use into a directory that is in the Ansbile role search path.
The separation of roles would also enable the next integration step: Make all roles available via Ansible Galaxy. IBM already has an account and it would be nice to see there roles for Spectrum Scale soon.

There's a lot a valuable information in this thread already. Let me add my comments:

The discussion has somewhat drifted from the original question. I'd suggest to either change the subject of this issue or close it and open a new one instead. To me, the main topic appears to be "How do users consume this project?".

I agree that users should not be instructed to modify files which are under version control. This would e.g. prevent updates through git pull, just to name one example.

While it's nice to provide sample playbook(s) I don't think that this is how majority of users will actually consume this project. The purpose of sample inventory and playbook files is to complement the documentation. I guess that users will fall into one of these two categories:

Users without Ansible skills will rely on the CLI provided by the Installation Toolkit. They might not even care about the inner workings of the Toolkit, as long as it gets the job done...
Users with Ansible skills will most likely have existing inventory / playbooks / roles already to manage their infrastructure. They'll want to integrate the roles provided by this project into their existing setup, which might be really large and complex already. I doubt that users will modify the samples and add (read: duplicate) all their existing logic for adding Spectrum Scale to their automation workflow...

@troppens While creating symbolic links actually works as you describe above, my experience is that users will prefer using the ANSIBLE_ROLES_PATH configuration option for making Ansible search additional directories for roles. I'd think that most users simply add /path/to/ibm-spectrum-scale-install-infra/roles/ to this path and start adding the roles to their existing playbooks.

My experience is that users prefer consuming Ansible content from Galaxy — users prefer ansible-galaxy install over git clone. There's a discussion and some information on Galaxy support in #172.


index home page don't have footer

I am a hugo  newbie.I use your anubis2 exampleSiteMultilingual. I want to add icp and police message .But in the home page don't have footer. I saw your website https://www.junyi.dev/ have it.So,can you tell me how to fix or provide a simple configraution method in the config.yaml ?

Hi Chenyin,
There is neither support for the customized footer nor the icp.
However, it's a great suggestion to add these two support for Anubis2.

Now anubis supports ICP beian, please update to the latest version.
git submodule update --remote

The configuration is simple, just add icp inside [params] section.
https://github.com/Junyi-99/hugo-theme-anubis2/blob/3310c840fda576342e850b6fa6e24208e89a63d8/exampleSiteMultilingual/hugo.toml#L20

hello,junyi,thank you for your code.I have  updated my code,and running in my windows computer.But it still have bug in the footer.
You can run your exampleSiteMultilingual.In the home page,doesn't have a footer
There are some pictures to show the bug.

but in other pages you can see the footer.

I don't know how to fix it,and in your website it is fine.Please help me.

I see, it's not a bug of Anubis but a bug of hugo. https://github.com/gohugoio/hugo/issues/12426#issue-2261951079
You should try to remove all demo-summary-rendering-*.md files, and it will back to normal.

I remove that files.It is work.Thank you.

ur welcome


[Bug] Prerendering build error

This is the same issue as #28.
Clonned the project, ran npm install --verbose and then tested the ssr script, which works fine. However, the prerendering one throws an error on the build step (npm run build:prerender):
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'call' of undefined
TypeError: Cannot read property 'call' of undefined
    at __webpack_require__ (D:\Programming\ts_projects\universal-nest\dist\prerender.js:145231:30)
    at Function.requireEnsure [as e] (D:\Programming\ts_projects\universal-nest\dist\prerender.js:145250:25)
    at ɵ0 (D:\Programming\ts_projects\universal-nest\dist\prerender.js:145445:38)
    at RouterConfigLoader.loadModuleFactory (D:\Programming\ts_projects\universal-nest\dist\prerender.js:149622:39)
    at RouterConfigLoader.load (D:\Programming\ts_projects\universal-nest\dist\prerender.js:149607:35)
    at MergeMapSubscriber.project (D:\Programming\ts_projects\universal-nest\dist\prerender.js:148610:47)
    at MergeMapSubscriber._tryNext (D:\Programming\ts_projects\universal-nest\dist\prerender.js:88799:27)
    at MergeMapSubscriber._next (D:\Programming\ts_projects\universal-nest\dist\prerender.js:88789:18)
    at MergeMapSubscriber.Subscriber.next (D:\Programming\ts_projects\universal-nest\dist\prerender.js:85348:18)
    at Observable._subscribe (D:\Programming\ts_projects\universal-nest\dist\prerender.js:87360:24)

It is way longer so I am not pasting the entire log error.
Also, the prerendering stop working when navigating to the provided urls, nothing is loaded.
The issue seems to be related to route lazy loading. If I find a solution, I will make a PR for this repo.
EXTRA INFORMATION

ANGULAR

Your global Angular CLI version (8.3.21) is greater than your local
version (8.1.1). The local Angular CLI version is used.

UPDATE Updated all dependencies (by using ncu) to latest version and the error still shows up but the prerendering is working now.

Found the issue after checking the related migration guide at Angular/Universal repo and checking similar issues at that repo: Angular/Universal#1169 and Angular/Universal#31092.
Change the module option at tsconfig.json file to commonjs (was esnext).
After that, the error is gone and the npm run build:prerender step throws the following message:
intercepting the url /api/speakers
ERROR [NetworkError]

Prerendering is now shipped by Angular team as part of the official Universal package.   If you face any issue, please, report this in the official repository https://github.com/angular/universal


[admin] Publish

Adding PrintOrder, PictureFormat, and GroupOption samples

Adding sample for CalculationType and running GenerateDocs

Udpate grammar

Learn Build status updates of commit ea881bd:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/docs-ref-autogen/excel/excelscript/excelscript.application.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/docs-ref-autogen/excel/excelscript/excelscript.calculationtype.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/docs-ref-autogen/excel/excelscript/excelscript.groupoption.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/docs-ref-autogen/excel/excelscript/excelscript.pagelayout.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/docs-ref-autogen/excel/excelscript/excelscript.pictureformat.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/docs-ref-autogen/excel/excelscript/excelscript.printorder.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/docs-ref-autogen/excel/excelscript/excelscript.range.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/docs-ref-autogen/excel/excelscript/excelscript.shape.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/docs-ref-autogen/excel/excelscript/excelscript.shapeautosize.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/docs-ref-autogen/excel/excelscript/excelscript.textframe.yml
:white_check_mark:Succeeded
View (office-scripts)

docs/sample-scripts/excel-scripts.yaml
:white_check_mark:Succeeded

generate-docs/tools/API Coverage Report.csv
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


fix: paged result handling in PHP8

This uses the in php 7.2 introduced LDAP_CONTROL_PAGEDRESULTS.

ldaptools broke when I upgraded from PHP 7.3 to PHP 8.1. I applied the changes in this commit directly and it fixed it for me. Thanks!

For anyone sweating bullets when trying to update last decade projects to PHP 8.x in 2024
You can use the cweagans/composer-patches plugin to apply a patch from a pull request automatically when you install or update your dependencies.
Install the composer-patches plugin:
composer require cweagans/composer-patches

To avoid any inconsistencies with this PR against your installed version, change your target in composer.json to master:
"ldaptools/ldaptools": "dev-master",

Run
composer update

Your lockfile should update to the preferred commit hash that matches the PR changes.
            "name": "ldaptools/ldaptools",
            "version": "dev-master",
            "source": {
                "type": "git",
                "url": "https://github.com/ldaptools/ldaptools.git",
                "reference": "b7a4f6df96ef83e82c7ed6238e4d0346c0f666f7"
            },

Create a patch file from the pull request:
You can directly download the patch from GitHub by appending .patch to the pull request URL and save it to a file (patches/ldaptools-php8-fix.patch).
https://patch-diff.githubusercontent.com/raw/ldaptools/ldaptools/pull/68.patch

(Alternatively, you can target the latest stable version and create the patch file yourself.)
Add the patch configuration to your composer.json:
    "extra": {
        "patches": {
            "ldaptools/ldaptools": {
                "Php 8 paged result changes fix": "patches/ldaptools-php8-fix.patch"
            }
        }
    }

Apply the patch by running:
You can see the detailed patch log using -v for verbosity.
composer -v install


macOS desktop shell needs devicelab testing

This should cover the same suite of smoke tests we currently run on iOS/Android. For starters this should at least include:

Compilation succeeds from the template without errors
hot reload/restart works
platform channels work
basic driver interaction
Some amount of performance testing.

And much, much more

@jonahwilliams are these new tests or some of the current devicelab tests running on a different environment?

I would recommend taking the existing tests and benchmarks are running them on a macOS shell.

@jonahwilliams can we close this bug now that tests are running?

No, we need much more test coverage and benchmarks. This test won't catch regressions like https://github.com/flutter/flutter/issues/45258 for example

@stuartmorgan @gspencergoog should we close this bug?

@cbracken would know the current state, but I believe this is still valid. IIRC only the first two items in that list were covered last I had looked into it.

That is correct; this still needs doing.

Related: https://github.com/flutter/flutter/pull/45264


pre-train model and data

<EMAIL_ADDRESS>

Hello all!
We trained the model but only for 1000 epochs. You can download and find more details here: - https://github.com/111Kaushal/Testing-and-validation-of-TransBTSV2


Does not scan all memory segments, only currently viewed one is searched

Currently the scanner searches the viewed memory segment only, all other ones are ignored.
https://github.com/rikodot/binja_native_sigscan/blob/2b8c6c9527470143681708165916c3a22891d691/sigscan.cpp#L405
view->GetStart() and view-GetEnd() do return the full address range, however view->Read() will not read past a memory segment boundry.
https://github.com/rikodot/binja_native_sigscan/blob/2b8c6c9527470143681708165916c3a22891d691/sigscan.cpp#L417
This can be verified easily by trying to read the entire memory at once and logging the return value from view->Read(). It will stop reading as soon as there is a non-continous memory section between two segments.
binja_coolsigmaker is correctly handling all memory segments individually:
https://github.com/unknowntrojan/binja_coolsigmaker/blob/2ea7594879ad534c0012893444a45417f196b5cd/src/lib.rs#L316

Based on my testing current version scans across all memory segments. I created a signature for a bunch of bytes in .rdata, went to .text, initiated a search for those bytes and it found them successfully. Is this what you are referring to?

Apologies for the delay, it seems like this was caused by some anti-RE segment shifting inside the analysed file, the pattern lies outside of what BN detects as a valid segment. I switched to malcat for this file.


PUT Request clear all fields that is not in content

Hi, I'm new with apigility, and i trying to create some Rest API.
if i've an object with:

id
name
property_1

and i send a PUT request to the entity (like "objects/1" ) with this content:
{"property_1":"test"}
All other fields (id and name in this case) are cleared!
Why? I cannot think that i have to pass ALL fields in every PUT request for update only one field of that.
Is it a bug? should i set something in admin?
This is my composer.json for see what i'm using:
{
"name": "zfcampus/zf-apigility-skeleton",
"description": "Skeleton Application for Apigility",
"type": "library",
"license": "BSD-3-Clause",
"keywords": [
"api",
"apigility",
"framework",
"zf2"
],
"homepage": "http://apigility.org/",
"support": {
"email"<EMAIL_ADDRESS>"irc": "irc://irc.freenode.net/apigility",
"source": "https://github.com/zfcampus/zf-apigility-skeleton",
"issues": "https://github.com/zfcampus/zf-apigility-skeleton/issues"
},
"config": {
"process-timeout": 5000
},
"extra": {
"branch-alias": {
"dev-master": "1.0-dev",
"dev-develop": "1.1-dev"
}
},
"require": {
"php": ">=5.3.23",
"zendframework/zendframework": ">=2.3.2,<3.0.0",
"zfcampus/zf-apigility": "~1.0",
"zfcampus/zf-apigility-documentation": "~1.0",
"zfcampus/zf-development-mode": "~2.0"
},
"require-dev": {
"zendframework/zftool": "dev-master",
"zendframework/zend-developer-tools": "dev-master",
"zfcampus/zf-apigility-admin": "~1.0-dev@dev",
"zfcampus/zf-apigility-welcome": "~1.0",
"zfcampus/zf-deploy": "~1.0"
}
}
Thanks

If you intend to update only one field and only part of your entity properties, you need to use PATCH method instead of PUT.
If you choose PUT, you have to define all the existing properties even if they're not modified + the ones you want to update.
Furthermore, you should rely on PATCH for updating resources and drop PUT for browser compatibility issues.
Julien.

Le 14 mars 2015 à 11:57, Luca<EMAIL_ADDRESS>a écrit :
Hi, I'm new with apigility, and i trying to create some Rest API.
if i've an object with:
id
name
property_1
and i send a PUT request to the entity (like "objects/1" ) with this content:
{"property_1":"test"}
All other fields (id and name in this case) are cleared!
Why? I cannot think that i have to pass ALL fields in every PUT request for update only one field of that.
Is it a bug? should i set something in admin?
This is my composer.json for see what i'm using:
{
"name": "zfcampus/zf-apigility-skeleton",
"description": "Skeleton Application for Apigility",
"type": "library",
"license": "BSD-3-Clause",
"keywords": [
"api",
"apigility",
"framework",
"zf2"
],
"homepage": "http://apigility.org/",
"support": {
"email"<EMAIL_ADDRESS>"irc": "irc://irc.freenode.net/apigility",
"source": "https://github.com/zfcampus/zf-apigility-skeleton",
"issues": "https://github.com/zfcampus/zf-apigility-skeleton/issues"
},
"config": {
"process-timeout": 5000
},
"extra": {
"branch-alias": {
"dev-master": "1.0-dev",
"dev-develop": "1.1-dev"
}
},
"require": {
"php": ">=5.3.23",
"zendframework/zendframework": ">=2.3.2,<3.0.0",
"zfcampus/zf-apigility": "~1.0",
"zfcampus/zf-apigility-documentation": "~1.0",
"zfcampus/zf-development-mode": "~2.0"
},
"require-dev": {
"zendframework/zftool": "dev-master",
"zendframework/zend-developer-tools": "dev-master",
"zfcampus/zf-apigility-admin": "~1.0-dev@dev",
"zfcampus/zf-apigility-welcome": "~1.0",
"zfcampus/zf-deploy": "~1.0"
}
}
Thanks
—
Reply to this email directly or view it on GitHub.

So there is no possibility for add a retrocompatibility on PUT method since lots of client doesn't yet support it for default? (like windows store apps, windows phone, android etc)

What do you mean by retrocompatibility for PUT ? Again, if you want to update a resource with PUT, you need to provide unchanged properties + the one(s) you want to update.
Let's take an example. Entity is :
{
id: 2
foo: "bar"
baz: "fee"
}
You want to update with baz=woo.
With PATCH method you would send:
{
baz: "woo"
}
With PUT method, you would send:
{
id: 2
foo: "bar"
baz: "woo"
}
It's not an Apigility implementation, it's just the way HTTP protocol works.
To use PUT, you need to send the whole resource set of properties, not just the ones you want to update.
Julien.

Le 14 mars 2015 à 12:50, Luca<EMAIL_ADDRESS>a écrit :
So there is no possibility for add a retrocompatibility on PUT method since lots of client doesn't yet support it for default? (like windows store apps, windows phone, android etc)
—
Reply to this email directly or view it on GitHub.

Ok, thanks for explanation!


Added "Foundations" Group to Storybook

The Foundations group allows us to visualize, at a deeper level, the underlying values that are set on each theme.

Palette Visualizer:

Shadows Visualizer:

Shape Visualizer:

Spacing Visualizer:

Typography Visualizer:

@joncursi , I'm not sure disabling reactDocGen is a good tradeoff.  This is what enables very rich docs with all of the properties, types and comments as discriptions.  That seems like a very big loss for the documentation.  I'm assuming some incompatibility with foundation?

I'm assuming some incompatibility with foundation?

Hmm, I couldn't get the storybook to run on the main branch after a fresh rm -rf node_modules package-lock.json && npm install. Turning this off was the only thing that worked for me.
Are you able to reproduce the issue on your side on main?

Got approval from Justin and Vicky (offline), so merging!


convert to war file

Modify the sample project gs-spring-boot to generate war file.

Those changes are only for war-based-deployment branch. Master is still original one for Jar package.

Then you should create a branch on this repo and merge change into that one instead of merging into spring-guides:master.

Sorry, my mistake. Close this pull request.


Add tutorials for SAP Web IDE SDK

helloworld 1-5

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

Daniel will be adding links and resubmitting


Add support for CIDR based networks #10

Adds the ability to perform broadcasting to broadcast ip addresses within CIDR based networks.
Issue
https://github.com/diegonz/PHPWakeOnLan/issues/10

Thanks. I appreciate this PR. Changes looks solid and also backwards compatible.

Thanks for open-sourcing this project! 😃


Blood Casting does not work

Modloader
Fabric
Minecraft version
1.20.1
Hex Casting version
hexcasting-common-1.20.1-0.11.1-7-pre-645
Modloader version
Laoder 0.15.11 API 0.92.2+1.20.1
Modpack info
https://drive.proton.me/urls/8ZG3P79HQM#hYiLH5jwJceS
The latest.log file
No response
Issue description
Overcasting/Bloodcasting does damage but does not perform the spell effects
things such as raycasts DO resolve properly and put the appropriate data on the stack but stuff like explosion fails to resolve
Steps to reproduce
No response
Other information
No response

Can you confirm that you're definitely using build 645? This was a known bug, but it should have been fixed in build 643.

Some context from discord: this is a separate bug from the armor one fixed in 643, but I wasn't able to reproduce it in a minimal pack with just hex+deps. It's likely a mod conflict, although figuring out what mod is causing the problem is probably still important.

Can you confirm that you're definitely using build 645? This was a known bug, but it should have been fixed in build 643.

this modpack has had issues with bloodcasting from day 1, it was not fixed when we updated our hexcasting version the other day

confirmed. they (assuming they are _katte on discord) are using sam's branch with inline support
which was branched off before armor bloodcasting was fixed

upon checking _katte's connections on discord @TacocaTYT is infact _katte. and has been provided with the proper tags to fix this in earlier versions

okay so that's not build 645 then. please give the actual mod version in the future.


PostgREST: 0.3.2 -> HEAD

Motivation for this change
Update postgrest to latest version and workaround latest Sierra OSX issues (https://github.com/haskell/haddock/issues/508 and https://ghc.haskell.org/trac/ghc/ticket/12479)
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[x] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[?] Fits CONTRIBUTING.md.

Updates src to latest, adds dependencies.
I included enableSharedExecutables to prevent this error
dyld: malformed mach-o: load commands size (33944) > 32768

Plan to remove the cruft for the next version of PostgREST (<IP_ADDRESS>). Talking with author to improve Nix integration: https://github.com/begriffs/postgrest/issues/756

This works for me.
Lets get it merged

This works for me.
Lets get it merged

@tomberek Could you post a quick status on this ?

new <IP_ADDRESS> needs a bit of help for Darwin: #22407


nvgUpdateImage corrupts images on OpenGL 3

to demonstrate, I modified demo.c to update every images on the 1000th frame to upload example/images/image8.jpg on every single one of them
https://github.com/memononen/nanovg/compare/master...mchiasson:nvgUpdateImage_corruption_demo
Run the example_gl3.c and wait for the 1000th frame.  It will look like this:

I have not tested the other OpenGL versions yet.

OH! you are absolutely correct! I thought they were all the same size! you are right! sorry about that.


Xcloud doesn't launch game with Better xcloud script

Device
Laptop
Operating System
Windows
Browser
Chrome/Edge/Chromium
Browser Version
124.0.6367.61
Better xCloud Version
3.5.2
Reproduction Steps
The game won't launch with better xcloud script. It is happening from today. It is fine in microsoft edge but the problem is on chrome. The same problem on microsoft edge beta. When I disable better xcloud script and refresh the page it will launch. It was fine 3-4 hours ago. I'm also using better xcloud no vpn script.

Thanks it worked


fix(Headers): don't forward secure headers to 3th party

Purpose
Avoid forwarding secure headers such as authorization, www-authenticate, cookie & cookie2 when redirecting to a untrusted site. (so it follows browses origin policy)
(matches Go behavior)
Changes
When the location headers redirects to an other hostname, strip away secure request headers meant for the original destination
Additional
Should patch v2 also (not many can update to esm)

[ ] I updated ./docs/CHANGELOG.md with a link to this PR or Issue
[ ] I updated ./docs/v3-UPGRADE-GUIDE
[ ] I updated readme
[x] I added unit test(s)

Fixes #1443

Should patch v2 also (not many can update to esm)

Will you do that yourself or shall we do a follow up issue so we don't forget?

Thx for everyone to get to this, this issue can finally be closed :)
But do note the drawback:
https://github.com/node-fetch/node-fetch/issues/274

I can fix V2 also

This change may match Go behavior but it differs from browser behavior and deviates from the fetch API spec.
In Chrome, if I do:
fetch(url, {headers: {"Authorization": "foo"}})

and this results in a redirect to a third party, Chrome will forward the Authorization header to the third party, assuming that the third party's CORS policy allows it. Note that the CORS policy of the original URL is irrelevant -- the third party controls the policy here. So, in an attack scenario, the attacker controls the policy, so CORS is not a defense.
AFAICT, Chrome's behavior conforms to the Fetch spec. The Fetch spec only says these headers should be removed on a redirect if they were implicitly added by the user-agent in the first place -- i.e. not when they were explicitly passed to fetch() in the request.headers attribute. Since node-fetch presumably never adds these headers implicitly, it seems like this doesn't apply.
I am concerned that this change could actually break legitimate use cases. Imagine api.example.com is a REST API that requires authorization via an Authorization header. Now imagine example.com decides to rebrand as example.org, using 3xx redirects to redirect all requests to the new domain. API clients coded against the old domain will break.

That may be legit cases...
I have also wonder about the usage of Request.credentials if we somehow could use this in any way. The option same-origin could technically match what we have made in this change and use that as the default. and if credentials is include, then we could allow insecure headers to be forwarded?
Xhr have withCredentials
that has similar options

Request.credentials seems to instruct the browser on whether or not it should automatically add cookies and HTTP basic auth credentials to the request. If the application explicitly specifies an Authorization header, though, I don't think Requset.credentials is meant to have any effect on that. In Chrome, at least, an explicitly-specified Authorization header seems to be redirected even when Request.credentials is same-origin (the default).

@kentonv (Hi!) Just to check, your concern is specifically about Authorization, right? It does seem reasonable to me that cookies should not be sent to a different origin.

Hi @glasser! Long time no see.
TBH, I'm not really sure what this should mean for Cookie. Technically, the fetch() spec does not allow the application to specify this header at all, so for a "conformant" implementation the question is moot. But, of course, that part of the fetch spec really only makes sense for browsers.
What makes sense on the server side? I don't really know because I don't know under what circumstances a server would ever send a Cookie header. I'd expect Node apps are mainly using fetch() to call APIs, and APIs rarely if ever use Cookie.
For Cloudflare Workers (of which I'm the lead engineer), our fetch() implementation does have to allow the Cookie header for the proxying use case: many workers receive a request from a client, rewrite it in some way, and then pass it on to an origin server using fetch(). The Cookie header must come along for that ride -- and it's important that it do so even if the hostname changed in the process. But, in CF Workers, proxied requests always have redirect = "manual", because a redirect response should always be returned back to the original client rather than handled within the worker. So, what happens to Cookie on a redirect is moot for the common case.
A Worker can also make a stand-alone fetch() that is not proxying any existing request, and in that case the default redirect = "follow" applies. But this is again typically used for calling APIs, and I don't know why Cookie would be used at all, so it's hard to say what the right behavior is when redirecting.
FWIW, at present Cloudflare Workers has no special logic whatsoever for Cookie or Authorization -- these are just plain old headers to us.
Of course, for the API use case, it's very common for other headers to contain sensitive information, too. Some APIs use non-standard headers like X-Auth-Key for their secrets. But also if the API uses any special headers at all, who knows what is in them? So it feels weird to me to even try to protect this use case from leaking secrets on a redirect... it seems like it's really the application's responsibility to use manual redirect logic if they don't want the whole request to be forwarded.
So in the absence of more information about real-world use cases, my inclination is to say that there's no reason to treat Cookie specially here. But I can definitely see where it is debatable.

Interestingly, here's a Stack Overflow question from a real user who legitimately tried to redirect an API, and was frustrated that the Authorization header was dropped:
https://stackoverflow.com/questions/71441897/cloudflare-worker-redirect-stripping-auth-headers/

yea, indeed interesting... a real problem.
if this api request would have happen in the browser then the Authorization would never be forwarded anyway. we only follow what what the browsers spec say and do...
i really do think it should be up to the developer to say to the http client that it should explicitly forward insecure headers in case of a redirect. I'm not sure if I could trust the api to keep my credentials safe and sound if some malicious user finds a way to redirect some endpoint to a 3th party domain.
i think every http client, http, https, http2, curl, wget go, ruby and everything else should have something some kind of option to choose from when making the request in case of a redirect
fetch(url, {
  forward_headers_and_body_when_redirect_to_untrusted_domain: true  // false by default
})

maybe Alt-Svc could be a solution?

if this api request would have happen in the browser then the Authorization would never be forwarded anyway. we only follow what what the browsers spec say and do...

No no, to reiterate: Browsers do forward the Authorization header (assuming it was explicitly passed to fetch()). The spec does not say to remove this header. So this PR actually goes against spec. See my earlier comments in this thread...
However, given that so many other HTTP client libraries have implemented this behavior, I guess realistically it just isn't possible to redirect an API across domains today, so maybe that use case is moot.

to you know what alt-sve will do with cookies and other headers if it decided to try another url the next time?

What is the recommended way of reproducing the old behavior now?

@jroitgrund I suppose the only way is to set redirect: "manual" and then manually follow the redirects with another fetch() call.
It's a bummer that this issue even exists. I will see if it's easy to patch locally and will post it.

@jroitgrund here's the patch changes the behavior to the old one.
https://gist.github.com/pkit/a65456cd29505c1d12346f8d57a45c2e


Module parse failed: The keyword 'package' is reserved

Hello, sorry if I ask here, but I'm hitting a strange error in a single file component. I have a Laravel 5 application with some Vue client-side code that works fine locally, but fails when I move it to the server.
When I run
$ npm run dev

I get this error
Module parse failed: /var/www/app/www/releases/20170813084617/node_modules/vue-loader/lib/template-compiler/index.js?{"id":"data-v-5624f8a6","hasScoped":false}!/var/www/app/www/releases/20170813084617/node_modules/vue-loader/lib/selector.js?type=template&index=0!/var/www/app/www/releases/20170813084617/resources/assets/js/components/clients/Packages.vue The keyword 'package' is reserved (14:74)
You may need an appropriate loader to handle this file type.

This is the (very simple) Packages.vue file that is not working
<template>

Your packages

                                #
                                Name
                                Description
                                Price

                                {{ package.id }}
                                {{ package.name }}
                                {{ package.description }}
                                {{ package.price }}

</template>

Unfortunately I cannot reproduce this error on my dev machine (Mac) where I have these software versions (node and npm are installed with macports):

nodejs: v6.11.2
npm: 3.10.10

My server is a Debian 8 VPS with the same node and npm versions.
One problem I already had to solve is that it is a 512 Mb machine (a basic one, just for testing purposes) and running npm install brings to a killed process due to high memory consumption.

FYI https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Future_reserved_keywords

Yes it is clear. Indeed I changed package to pkg and everything works fine, but what I don't understand is why I don't get any error in dev machine. From the link you shared, package is only reserved in strict mode code, so that could be the reason. However, I'm not very confident to js and node, so I don't know how to check if there is some difference.

What do you mean by "don't get any error in dev machine"? You said you got this error when running npm run dev.
Webpack build automatically inserts 'use strict'.

I get the error when I run npm run dev on the staging machine, a Debian 8 VPS. When I run it on my dev machine, a Mac with nodejs and npm installed with macports, it works. Same version for both nodejs and npm on the two machines.

Im sorry to close rid but there doesn't seem to be anything we can do...


mol_adjust_query_properties() + bogus input causes engine crash

Describe the bug
Similar to #3687 and #3688, engine crash when calling mol_adjust_query_properties() with bogus input
To Reproduce
SELECT mol_adjust_query_properties(nullif(NULL::mol, NULL::mol)::mol, 'a'::cstring) @> qmol_from_smiles('a'::cstring);
Screenshots / SQL Output
postgres=> SELECT mol_adjust_query_properties(nullif(NULL::mol, NULL::mol)::mol, 'a'::cstring) @> qmol_from_smiles('a'::cstring);
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!?> \q

Error Log Excerpt
2021-01-04 08:06:48 UTC::@:[20623]:LOG: server process (PID 20539) was terminated by signal 11: Segmentation fault
2021-01-04 08:06:48 UTC::@:[20623]:DETAIL: Failed process was running: SELECT mol_adjust_query_properties(nullif(NULL::mol, NULL::mol)::mol, 'a'::cstring) @> qmol_from_smiles('a'::cstring);
2021-01-04 08:06:48 UTC::@:[20623]:LOG: terminating any other active server processes

I think the problem here is actually with qmol_from_smiles.
Breaking your reproducible into two pieces shows this:
egression=# SELECT mol_adjust_query_properties(nullif(NULL::mol, NULL::mol)::mol, 'a'::cstring);
 mol_adjust_query_properties
-----------------------------

(1 row)

regression=# SELECT qmol_from_smiles('a'::cstring);
server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!>

If you can confirm I will rename the issue.

I think the problem here is actually with qmol_from_smiles.
Breaking your reproducible into two pieces shows this:
egression=# SELECT mol_adjust_query_properties(nullif(NULL::mol, NULL::mol)::mol, 'a'::cstring);
 mol_adjust_query_properties
-----------------------------

(1 row)

regression=# SELECT qmol_from_smiles('a'::cstring);
server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!>

If you can confirm I will rename the issue.

Thanks for looking into this promptly.
I didn't know the relation but Correct, SELECT qmol_from_smiles('a'::cstring); crashes too.
postgres=> SELECT qmol_from_smiles('a'::cstring);
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!?> \q

Thanks for looking into this promptly.
I didn't know the relation but Correct, SELECT qmol_from_smiles('a'::cstring); crashes too.
postgres=> SELECT qmol_from_smiles('a'::cstring);
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!?> \q

! A little more coffee and now I see what I missed earlier. Updated the Issue title.

! A little more coffee and now I see what I missed earlier. Updated the Issue title.


fix graph feature bug

Hi, Shengyu.
Thanks for your nice work and open source code. But there may be a  small bug in function get_graph_feature() in models/gcn.py in which i update all_feats = feats.unsqueeze(-1).repeat(1, 1, 1, N) to all_feats = feats.unsqueeze(2).repeat(1,1,N,1).
I implemented the following code to verify  that the code all_feats = feats.unsqueeze(2).repeat(1,1,N,1) is right.
import numpy as np
import torch

def setup_seed(seed):
    torch.backends.cudnn.deterministic = True
    torch.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    np.random.seed(seed)

def square_distance(src, dst, normalised = False):
    """
    Calculate Euclid distance between each two points.
    Args:
        src: source points, [B, N, C]
        dst: target points, [B, M, C]
    Returns:
        dist: per-point square distance, [B, N, M]
    """
    B, N, _ = src.shape
    _, M, _ = dst.shape
    dist = -2 * torch.matmul(src, dst.permute(0, 2, 1))
    if(normalised):
        dist += 2
    else:
        dist += torch.sum(src ** 2, dim=-1)[:, :, None]
        dist += torch.sum(dst ** 2, dim=-1)[:, None, :]

    dist = torch.clamp(dist, min=1e-12, max=None)
    return dist

def get_graph_feature(coords, feats, k=10):
    """
    Apply KNN search based on coordinates, then concatenate the features to the centroid features
    Input:
        X:          [B, 3, N]
        feats:      [B, C, N]
    Return:
        feats_cat:  [B, 2C, N, k]
    """
    # apply KNN search to build neighborhood
    B, C, N = feats.size()
    dist = square_distance(coords.transpose(1,2), coords.transpose(1,2))

    idx = dist.topk(k=k+1, dim=-1, largest=False, sorted=True)[1]  #[B, N, K+1], here we ignore the smallest element as it's the query itself
    idx = idx[:,:,1:]  #[B, N, K]
    print(features)
    print(idx)
    idx = idx.unsqueeze(1).repeat(1,C,1,1) #[B, C, N, K]
    all_feats = feats.unsqueeze(2).repeat(1,1,N,1)  #[B, C, N, N]
    # all_feats = feats.unsqueeze(-1).repeat(1, 1, 1, N)
    neighbor_feats = torch.gather(all_feats, dim=-1,index=idx) #[B, C, N, K]
    print(neighbor_feats)

    # concatenate the features with centroid
    feats = feats.unsqueeze(-1).repeat(1,1,1,k)
    feats_cat = torch.cat((feats, neighbor_feats-feats),dim=1)

    return feats_cat

if __name__ == '__main__':
    setup_seed(1234)
    coords = torch.randn(1, 3, 5)
    features = torch.randn(1, 4, 5)
    feats_cat = get_graph_feature(coords, features, k=2)

hi,
Thanks for the catch. Did you retrain the model afterwards?
It seems I do have the bug and is confirmed with the provided sanity check. I will retrain the model and come back with new results hopefully before CVPR conference.
Best,
Shengyu

Hi Shengyu,
Thanks for your reply. I am training the model on the 3DMatch and KITTI dataset with the updated get_graph_feature(). Hope for a better result.
Best,
Lifa


I want make h1 is biggest,and h6 is smallest.not only defferent in colors.thank you .

H1 # first issues   The heading 1 is the biggest.
H2 ## heading2   The heading 2 is smaller than heading 1
H3 ### heading3   The heading 3 is smaller than heading 2
H3 #### heading4   The heading 4 is smaller than heading 3
H5 ##### heading5   The heading 5 is smaller than heading 4
H6 ###### headingy   The heading 6 is smallest.
not only diferent in colors.  thank you

Please use Style Settings for this


Remove irrelevant rc aliases (inherited from prebuild)?

These:
https://github.com/prebuild/prebuild-install/blob/c2697038726fac585f6c4858a84ab2ac9901ae99/rc.js#L50-L51
https://github.com/prebuild/prebuild-install/blob/c2697038726fac585f6c4858a84ab2ac9901ae99/rc.js#L53
Because it doesn't make sense to have:
{
  "name": "example",
  "scripts": {
    "install": "prebuild-install -r electron -t 1.4.0 -a x64"
  }
}

AFAIK these flags are for consumers of example, to specify through npm args or env when installing.

Never mind, going through history I saw #19 and https://github.com/prebuild/prebuild/pull/153 (which allows these same options to be specified through pkg.config). There is a use case.


cache backed up firefox databases

once the number of firefox dbs begins to grow, putting it behind cachew does offer a speedup
See https://github.com/seanbreckenridge/ffexport/issues/6 for previous thoughs

added in https://github.com/seanbreckenridge/HPI/commit/572ba72ad8ac1acd9fdf0b039836d0d454961678


Wildcard certificates not working via annotations

Is this a BUG REPORT or FEATURE REQUEST?:
/kind bug
What happened:
Using v0.3.0-alpha.1, I created an wildcard DNS ingress with cert-manager annotations, but the certificate failed to be issued by CloudDNS, with the following error:

solver configuration for domain "example.com" not found. Ensure you have configured a challenge mechanism using the certificate.spec.acme.config field.

What you expected to happen:
A wildcard certificate to be issued.
How to reproduce it (as minimally and precisely as possible):
Create an ingress with a wildcard TLS hostname:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    certmanager.k8s.io/acme-challenge-type: dns01
    certmanager.k8s.io/acme-dns01-provider: clouddns
    certmanager.k8s.io/cluster-issuer: letsencrypt-staging
  name: my-ingress
spec:
  rules:
  - host: '*.example.com'
    http:
      paths:
      - backend:
          serviceName: my-service
          servicePort: http
        path: /
  tls:
  - hosts:
    - '*.example'
    secretName: my-secret

This results in cert-manager creating the following certificate:
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: my-ingress-tls
spec:
  acme:
    config:
    - dns01:
        provider: clouddns
      domains:
      - '*.example.com'
  commonName: ""
  dnsNames:
  - '*.example.com'
  issuerRef:
    kind: ClusterIssuer
    name: letsencrypt-staging
  secretName: my-ingress-tls
status:
  acme:
    order:
      url: https://acme-staging-v02.api.letsencrypt.org/acme/order/xxxxxxx/xxxxxx
  conditions:
  - lastTransitionTime: 2018-04-23T10:24:37Z
    message: solver configuration for domain "example.com" not found.
      Ensure you have configured a challenge mechanism using the certificate.spec.acme.config
      field
    reason: InvalidConfig
    status: "False"
    type: Ready

Anything else we need to know?:
The problem appears to be that spec.acme.config.dns01[0].domains should not contain wildcard domains. I'm guessing a DNS entry cannot be created at _acme-challenge.*.example.com, and that _acme-challenge.example.com should be used instead.
:star: WORKAROUND: I used kubectl edit to amend this entry in the certificate YAML (from *.example.com to example.com) and the certificate was then successfully issued.
I think this bit of sync.go needs to be updated so that Domains gets set to the "de-wildcarded" and de-duplicated list of hosts, instead of using tls.Hosts verbatim:
		domainCfg := v1alpha1.ACMECertificateDomainConfig{
			Domains: tls.Hosts,
		}

Environment:

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.6", GitCommit:"6260bb08c46c31eea6cb538b34a9ceb3e406689c", GitTreeState:"clean", BuildDate:"2017-12-21T06:34:11Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.8-gke.0", GitCommit:"6e5b33a290a99c067003632e0fd6be0ead48b233", GitTreeState:"clean", BuildDate:"2018-02-16T18:26:58Z", GoVersion:"go1.8.3b4", Compiler:"gc", Platform:"linux/amd64"}

Cloud provider or hardware configuration:

GCE

Install tools:
Others:

For reference I also have this issue with the route53 provider using the same cert-manager version on GKE k8s v1.8.8. @frasern Your proposed workaround fixes the issue for me, thanks!


How to receive an optional data on contract when send Eth to it ?

I found out a field "hex data optional";
I want to receive the data on contract, is it msg.data ?
I will try.

Hi @liwei00wade! Depending on what you want to do with the data, sometimes msg.data will be enough and other times you will want to define a function. Feel free to browse through this repository to see examples of Solidity code.
For this sort of question, please join our Slack community and ask in the #beginners channel.


fix(lib-dynamodb): use more readable keynode format

Issue
modifies https://github.com/aws/aws-sdk-js-v3/pull/5306
Description
generates the keyNodes instructional structure with a different, more readable format
before:
  protected readonly inputKeyNodes = [
    {
      key: "Item",
      children: {}, // map with AttributeValue
    },
    {
      key: "Expected",
      children: {
        children: [
          { key: "Value" },
          {
            key: "AttributeValueList",
            children: {}, // set/list of AttributeValue
          },
        ],
      },
    },
    {
      key: "ExpressionAttributeValues",
      children: {}, // map with AttributeValue
    },
  ];
  protected readonly outputKeyNodes = [
    {
      key: "Attributes",
      children: {}, // map with AttributeValue
    },
    {
      key: "ItemCollectionMetrics",
      children: [
        {
          key: "ItemCollectionKey",
          children: {}, // map with AttributeValue
        },
      ],
    },
  ];

after:
  protected readonly inputKeyNodes = {
    Item: ALL_VALUES, // map with AttributeValue
    Expected: {
      "*": {
        Value: SELF,
        AttributeValueList: ALL_MEMBERS, // set/list of AttributeValue
      },
    },
    ExpressionAttributeValues: ALL_VALUES, // map with AttributeValue
  };
  protected readonly outputKeyNodes = {
    Attributes: ALL_VALUES, // map with AttributeValue
    ItemCollectionMetrics: {
      ItemCollectionKey: ALL_VALUES, // map with AttributeValue
    },
  };

[x] dynamodb e2e still passing
[x] unit tests updated

Running: yarn test:e2e
Location: /local/home/georgfu/workspace/aws/aws-sdk-js-v3/lib/lib-dynamodb
yarn run v1.22.19
$ jest --config jest.config.e2e.js
 PASS  src/test/lib-dynamodb.e2e.spec.ts (9.266 s)
  DynamoDBDocument
    ✓ initializes using the static constructor (1 ms)
    ✓ describes the test table tables (1 ms)
    ✓ creates the test table if it does not exist
    ✓ can batch write (1 ms)
    ✓ can batch read (1 ms)
    ✓ can transact write (1 ms)
    ✓ can transact read (1 ms)
    ✓ can execute transactions
    ✓ can batch execute statements (1 ms)
    ✓ can query (1 ms)
    ✓ can scan (1 ms)
    ✓ can write data of type null (1 ms)
    ✓ can execute statement inserting type null
    ✓ can read back data inserted via ExecuteStatement of type null (1 ms)
    ✓ can read back data inserted via ExecuteTransaction of type null
    ✓ can read data of type null (1 ms)
    ✓ can update data of type null
    ✓ can delete data of type null (1 ms)
    ✓ can write data of type string
    ✓ can execute statement inserting type string
    ✓ can read back data inserted via ExecuteStatement of type string (1 ms)
    ✓ can read back data inserted via ExecuteTransaction of type string
    ✓ can read data of type string
    ✓ can update data of type string (1 ms)
    ✓ can delete data of type string
    ✓ can write data of type number
    ✓ can execute statement inserting type number
    ✓ can read back data inserted via ExecuteStatement of type number
    ✓ can read back data inserted via ExecuteTransaction of type number
    ✓ can read data of type number
    ✓ can update data of type number
    ✓ can delete data of type number
    ✓ can write data of type boolean
    ✓ can execute statement inserting type boolean (1 ms)
    ✓ can read back data inserted via ExecuteStatement of type boolean
    ✓ can read back data inserted via ExecuteTransaction of type boolean
    ✓ can read data of type boolean (1 ms)
    ✓ can update data of type boolean
    ✓ can delete data of type boolean
    ✓ can write data of type sSet
    ✓ can execute statement inserting type sSet
    ✓ can read back data inserted via ExecuteStatement of type sSet
    ✓ can read back data inserted via ExecuteTransaction of type sSet
    ✓ can read data of type sSet
    ✓ can update data of type sSet
    ✓ can delete data of type sSet
    ✓ can write data of type nSet (1 ms)
    ✓ can execute statement inserting type nSet
    ✓ can read back data inserted via ExecuteStatement of type nSet
    ✓ can read back data inserted via ExecuteTransaction of type nSet (1 ms)
    ✓ can read data of type nSet
    ✓ can update data of type nSet
    ✓ can delete data of type nSet
    ✓ can write data of type list
    ✓ can execute statement inserting type list
    ✓ can read back data inserted via ExecuteStatement of type list
    ✓ can read back data inserted via ExecuteTransaction of type list
    ✓ can read data of type list
    ✓ can update data of type list (1 ms)
    ✓ can delete data of type list
    ✓ can write data of type map
    ✓ can execute statement inserting type map
    ✓ can read back data inserted via ExecuteStatement of type map
    ✓ can read back data inserted via ExecuteTransaction of type map
    ✓ can read data of type map (1 ms)
    ✓ can update data of type map
    ✓ can delete data of type map
    updateTransformFunction
      ✓ modifies all fields of an object (3 ms)

Test Suites: 1 passed, 1 total
Tests:       68 passed, 68 total
Snapshots:   0 total
Time:        9.323 s, estimated 10 s
Ran all test suites.
Done in 10.03s.


Document MasterSlave connection behavior on partial node failures

Bug Report

Current Behavior
Connecting to master/slave setups using autodiscovery can half-fail and leave the list of nodes empty, with no chance to recover. The problem is that creating the StatefulRedisMasterSlaveConnection will succeed, but every attempt to use it will fail. The error produced is at io.lettuce.core.masterslave.MasterSlaveConnectionProvider#getMaster.
I believe the happens because of the initial topology refresh can fail. The first connection to the master may be fine -- this causes us to not get an exception. But the refresh seems to happen out-of-band and appears to ping each discovered Redis node at io.lettuce.core.masterslave.MasterSlaveTopologyRefresh#getNodes and more specifically io.lettuce.core.masterslave.Connections#requestPing.
To reproduce this you can set a breakpoint (or a pause of your choice) at the call to requestPing and send a DEBUG SLEEP [some interval] to Redis - preferably the master node. After this you can see the knownNodes list refresh, and if you're in a single master environment it will set itself to an empty list. If you're in a master/slave environment, any node that fails to ping at this exact point in time will be removed from the node list and not contacted again. I think this is probably by design, but it unfortunately produces at best unexpected results and at worst connections that can't ever work.
From here I don't think it can recover. The instance of the StatefulRedisMasterSlaveConnection stays alive, but it will throw every time you try to use it because there are no nodes in the list and the topology will never refresh. This makes it hard to detect.
Input Code

Java; this is just a basic connection - you must interrupt it as described above and introduce some manual chaos.

RedisURI redisUri = buildRedisUri(host, port, useSsl, password);
ClientResources redisClientResources = DefaultClientResources.builder()
        .dnsResolver(new DirContextDnsResolver(true, false, new Properties()))
        .build();

RedisClient redisClient = RedisClient.create(redisClientResources, redisUri);

StatefulRedisMasterSlaveConnection<String, String> conn = MasterSlave.connect(redisClient, new Utf8StringCodec(), redisUri);
conn.setReadFrom(ReadFrom.MASTER_PREFERRED);

// !!! Throws at `io.lettuce.core.masterslave.MasterSlaveConnectionProvider.getMaster`
//               `throw new RedisException(String.format("Master is currently unknown: %s", knownNodes));`
String result = conn.sync().get("MyKey");

Expected behavior/code
I expected that if the connections were unreachable they would either:

Fail to connect and throw an exception (we can catch this on our end and retry) or...
Attempt to heal itself in the future, via a mechanism like periodic refresh (such as clustered mode does)

Environment

Lettuce version(s): 5.1.1.RELEASE
Redis version: 4.0.10

Possible Solution
I would suggest that the list of nodes initially discovered be cached somewhere, and retries be attempted later. Clustered clients do this with periodic and adaptive refreshes. I think this should be possible using the initial discovery in non-clustered setups to produce more reliable long-term results and a chance to recover from this particular failure state.
Another solution would be to simply throw an error if no nodes are discovered so we may catch it before the StatefulRedisMasterSlaveConnection instance is kept (just like a normal connection failure would produce). It may be worthwhile to expose the present list of nodes from the connection so they may be inspected for issues (e.g. if we only get slave nodes that may not be suitable for all cases)
Additional context
I hope this helps! Please let me know if I have left out any important details or if there is a workaround or expected behavior I'm clearly missing. I may be able to take suggestions and make them into a PR.

Thanks for this extensive bug report. Static configuration (without Sentinel) is meant to remain static so we won't provide any means of an automated refresh. For Redis Cluster and Sentinel, we have at least a notion of topology source that we can query regularly. Sentinel and Cluster give us some sort of reliability where to find a topology source.
For Master/Replica, that's different as changes to the static setup are not tied to any rules.

Attempt to heal itself in the future, via a mechanism like periodic refresh (such as clustered mode does)

The assumption here is that StatefulRedisMasterSlaveConnection requires a master node to be functional. What MasterSlave currently guarantees is that it's able to discover at least one working node. Changing this guarantee would require to have a running master node. This can be a good thing or cannot be a good thing. It pretty much depends on what you're trying to do.
We face quite often the requirement to allow connections to a partially-down Redis setup. Changing our behavior would raise the bar in terms of Redis availability.

I would suggest that the list of nodes initially discovered be cached somewhere, and retries be attempted later.

This approach could work for a few users, but not for all. Some users might not want this behavior.

A couple extra details - in case they help 🙂

We're using Elasticache, which only provides one endpoint URL for the entire replication set regardless of how many masters or replicas.
We would need a way to fail if a master node wasn't fetched. We really need a master node, so a sole replica won't work (it would be better to fail until the replica was promoted). But I'm not sure how to do this since the list of discovered nodes is private as far as I can tell.

What MasterSlave currently guarantees is that it's able to discover at least one working node. << Part of the issue I think we're having is that this guarantee is failing. If timeouts happen as the exact right time this is not the case. Just wanted to make sure that was clear 😄

Thanks for the update. ElastiCache has indeed no publicly discoverable endpoints. INFO REPLICATION returns the internal addresses which are typically not reachable. There is also no reconfiguration signal that we could consume from Redis or a topology source.
IIRC there is a possibility to listen to changes via AWS SNS but I'm not so much involved into AWS.

For now, I'm going to test the connection state before marking it as active. I'm not sure if this is exactly the right strategy, but essentially it's this:

Make the StatefulRedisMasterSlaveConnection instance
Set the connection to ReadFrom.MASTER
Call ECHO to ensure that we can reach a master node
If that works we go back to ReadFrom.MASTER_PREFERRED and mark the connection instance as valid

The second thing I am attempting is creating another StatefulRedisMasterSlaveConnection instance at a regular interval and swapping them out (paying close attention to thread safety and all that) so that we get a topology refresh from time to time like the clustered connections do.
Again, I'm not sure if that's the right way to approach this, but that is the best way I can see to do it on our end 😄

Closing this ticket as there's nothing left to do here.

Just to be clear, did you start the DEBUG SLEEP before attempting the first call to the connection? To trigger the error properly you must stall the connections in the middle of the connection creation process. That is to say:

Set a breakpoint, thread sleep, or something right before requestPing(...)
When the pause is hit, run DEBUG SLEEP on Redis so the nodes will fail to respond during the ping cycle only
Continue execution - allow the requestPing to fail, leaving the persisted list of nodes completely empty.
Attempt to use the master/slave connection instance -- it should always fail from this point forward

I really just want to make sure we're testing this the same way. I can possibly stitch a sample case together if it is too difficult to reproduce by hand.

Yes, I tried it with various scenarios (timeout 1 second):

DEBUG SLEEP 100 before connect
Breakpoint in requestPing, then DEBUG SLEEP 100, then continue (both, trying to connect the master and the slave node)


Add Routing link to top nav

Ready for (quick!) review, @justinvdm.
I was thinking about removing the Campaign Routing button from .row.actions, but I'm worried that might be confusing: "Where's routing gone?".

:+1:
I think redundancy in UI is often a good thing, maybe not terribly effective in this case, but don't think it'll hurt keeping the current routing button around.


[SPARK-27277][INFRA] Recover from setting fix version failure in merge script

What changes were proposed in this pull request?
I happened to meet this case few times before:
Enter comma-separated fix version(s) [3.0.0]: 3.0,0
Restoring head pointer to master
git checkout master
Already on 'master'
git branch
Traceback (most recent call last):
  File "./dev/merge_spark_pr_jira.py", line 537, in <module>
    main()
  File "./dev/merge_spark_pr_jira.py", line 523, in main
    resolve_jira_issues(title, merged_refs, jira_comment)
  File "./dev/merge_spark_pr_jira.py", line 359, in resolve_jira_issues
    resolve_jira_issue(merge_branches, comment, jira_id)
  File "./dev/merge_spark_pr_jira.py", line 302, in resolve_jira_issue
    jira_fix_versions = map(lambda v: get_version_json(v), fix_versions)
  File "./dev/merge_spark_pr_jira.py", line 302, in <lambda>
    jira_fix_versions = map(lambda v: get_version_json(v), fix_versions)
  File "./dev/merge_spark_pr_jira.py", line 300, in get_version_json
    return filter(lambda v: v.name == version_str, versions)[0].raw
IndexError: list index out of range

I typed the fix version wrongly (there's comma in 3.0,0) and it ended the loop in the merge script. Not a big deal but it bugged me few times. Finally I met this today again, and decided to fix.
This PR proposes to recover from wrongly set fix versions.
How was this patch tested?
I manually copied and pasted the specific codes and tested separately in both Python 2 and Python 3.
Positive cases:
Enter comma-separated fix version(s) [3.0.0]:  # blank test (to use default)
['3.0.0']

Enter comma-separated fix version(s) [3.0.0,2.4.2]:  # multiple default versions
['3.0.0', '2.4.2']

Enter comma-separated fix version(s) [3.0.0]: 2.4.1  # valid version
['2.4.1']

Enter comma-separated fix version(s) [3.0.0]: 3.0.0,2.4.2  # multiple valid versions
['3.0.0', '2.4.2']

Keyboard interrupt(Ctrl + c):
Enter comma-separated fix version(s) [3.0.0]: ^CTraceback (most recent call last):  # keyboard interrupt
  File "test_merge_script.py", line 45, in <module>
    test()
  File "test_merge_script.py", line 26, in test
    fix_versions = input("Enter comma-separated fix version(s) [%s]: " % default_fix_versions)
KeyboardInterrupt

Wrongly typed versions (recovered):
Enter comma-separated fix version(s) [3.0.0]: 3.1
Specified version(s) [3.1] not found in the available versions, try again (or leave blank and fix manually).
Enter comma-separated fix version(s) [3.0.0]: 123
Specified version(s) [123] not found in the available versions, try again (or leave blank and fix manually).
Enter comma-separated fix version(s) [3.0.0]: 3.0,0
Specified version(s) [3.0, 0] not found in the available versions, try again (or leave blank and fix manually).
Enter comma-separated fix version(s) [3.0.0]: damn
Specified version(s) [damn] not found in the available versions, try again (or leave blank and fix manually).
Enter comma-separated fix version(s) [3.0.0]: 3.0.0,2.5.2  # one invalid versions in multiple versions
Specified version(s) [3.0.0, 2.5.2] not found in the available versions, try again (or leave blank and fix manually).

Arbitrary exceptions in fix version parsing (recovered)
Enter comma-separated fix version(s) [3.0.0]:
Traceback (most recent call last):
  File "tmp.py", line 11, in <module>
    raise Exception("arbitrary exception")
Exception: arbitrary exception
Error setting fix version(s), try again (or leave blank and fix manually)
Enter comma-separated fix version(s) [3.0.0]:
Traceback (most recent call last):
  File "tmp.py", line 10, in <module>
    raise Exception("arbitrary exception")
Exception: arbitrary exception
Error setting fix version(s), try again (or leave blank and fix manually)
Enter comma-separated fix version(s) [3.0.0]:

cc @srowen, @squito, @felixcheung

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9298/
Test PASSed.

Test build #103940 has started for PR 24213 at commit 9204990.

Test build #103940 has finished for PR 24213 at commit 9204990.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103940/
Test FAILed.

Merged build finished. Test FAILed.

Jenkins, retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9312/
Test PASSed.

Test build #103954 has started for PR 24213 at commit 9204990.

Test build #103954 has finished for PR 24213 at commit 9204990.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103954/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9315/
Test PASSed.

Test build #103957 has started for PR 24213 at commit 9204990.

Test build #103957 has finished for PR 24213 at commit 9204990.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103957/
Test PASSed.

I'm going to do the last test against this PR :).

Merged to master.

Yup, looks working fine:
Enter comma-separated fix version(s) [3.0.0]: 3.0,1
Specified version(s) [3.0, 1] not found in the available versions, try again (or leave blank and fix manually).
Enter comma-separated fix version(s) [3.0.0]: 3.0.0,2.4.4
Specified version(s) [3.0.0, 2.4.4] not found in the available versions, try again (or leave blank and fix manually).
Enter comma-separated fix version(s) [3.0.0]: amn
Specified version(s) [amn] not found in the available versions, try again (or leave blank and fix manually).
Enter comma-separated fix version(s) [3.0.0]:
Successfully resolved SPARK-27277 with fixVersions=[u'3.0.0']!


fix(wmg): Fix Filter Panel clear selections after closing side panel

Reviewers
Functional:
Readability:

Changes

Definition of Done (from ticket)
QA steps (optional)
Known Issues

Thanks for the quick review, @seve !!


RetrieveUpcomingInvoice.subscription_items must be a Vec<>

https://github.com/arlyon/async-stripe/blob/ca5269ebcf9cbd7005f3fecedc63cc31718680a6/src/resources/invoice_ext.rs#L35
This as is does not work when the request is submitted.

Thanks for the report. I am open to PRs fixing this.


Create Traffic_Influence_Test.feature

Even if the folder structure for Test is not agreed yet:
https://github.com/camaraproject/EdgeCloud/issues/138 https://github.com/camaraproject/Template_Lead_Repository/pull/1 https://github.com/camaraproject/Commonalities/issues/59
we can anyway discuss about the .feature file for the TI API.

before merging this PR we should first close https://github.com/camaraproject/EdgeCloud/issues/138


Task status update duplicates

Bug explanation
Whenever event.set() is called, a recently updated process status gets duplicated in the task list. Only when menu(session) is called, the task list statuses update normally.
Operating System
Windows
Ikabot installation
I built Ikabot from sources
Ikabot version
Latest
Python version
Python 3.11.3

You can comment this lines meanwhile it's fixed
Process.py
#if len([p for p in runningIkabotProcessList if 'status' not in p]) == len(runningIkabotProcessList) and len(runningIkabotProcessList):
#runningIkabotProcessList[0]['status'] = 'running'
Session.py
#[p.update({'status': message}) for p in fileList if p['pid'] == os.getpid()]
#sessionData['processList'] = fileList

You can comment this lines meanwhile it's fixed
Process.py #if len([p for p in runningIkabotProcessList if 'status' not in p]) == len(runningIkabotProcessList) and len(runningIkabotProcessList): #runningIkabotProcessList[0]['status'] = 'running'
Session.py #[p.update({'status': message}) for p in fileList if p['pid'] == os.getpid()] #sessionData['processList'] = fileList

But wouldn't this pretty much disable the whole feature? I'll try this out later


NIFI-11679 Refactor EncryptedRepoContentAccessIT Configuration

Summary
NIFI-11679 Refactors the EncryptedRepoContentAccessIT system test using a generated secret key for repository encryption and using the recommended KeyStore-backed encryption properties.
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[X] Apache NiFi Jira issue created

Pull Request Tracking

[X] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[X] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[X] Pull Request based on current revision of the main branch
[X] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[ ] Build completed using mvn clean install -P contrib-check

[ ] JDK 11
[ ] JDK 17

Licensing

[ ] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[ ] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[ ] Documentation formatting appears as expected in rendered files

Thanks @exceptionfactory this is definitely a better approach for the system test. +1 will merge.


Can't get messages in OnApplicationMessageInterceptor on sending data over WebSocket

I'm trying to configure my broker to work over MQTT and WebSocket. When I'm sending data over MQTT(tcp) I can get data in OnApplicationMessageInterceptor and work on it. But when I send data over WebSocket, I can get it by another client that subscribed, but I can't get message in OnApplicationMessageInterceptor. Here is my code:
//Startup
 public void ConfigureServices(IServiceCollection services)
        {
            services
                .AddHostedMqttServer(new MqttServerOptionsBuilder().Build())
                .AddMqttConnectionHandler()
                .AddMqttWebSocketServerAdapter()
                .AddConnections();

            services.AddSingleton<MyMqttServer>();
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            app.UseConnections(c => c.MapConnectionHandler<MqttConnectionHandler>("/mqtt", options =>
            {
                options.WebSockets.SubProtocolSelector = MQTTnet.AspNetCore.ApplicationBuilderExtensions.SelectSubProtocol;
            }));
            //app.UseStaticFiles();
            app.UseMqttServer<MyMqttServer>();
        }

// Extension method
public static IApplicationBuilder UseMqttServer<TMqttServer>(this IApplicationBuilder app) where TMqttServer : MyMqttServer
        {
            var instance = app.ApplicationServices.GetService<TMqttServer>();
            instance.Start();
            return app;
        }

// my MQTT server
public class MyMqttServer
    {
        private readonly IMqttServer _mqttServer;
        public MyMqttServer()
        {
            _mqttServer = new MqttFactory().CreateMqttServer();
        }
        public void Start()
        {
            var mqttServerOptions = new MqttServerOptionsBuilder()
                    .WithApplicationMessageInterceptor(ctx => { OnApplicationMessageInterceptor(ctx); })
                    .WithSubscriptionInterceptor(ctx => { OnSubscriptionInterceptor(ctx); })
                    .WithConnectionValidator(async (validator) => { await OnConnectionValidator(validator); })
                    .WithoutDefaultEndpoint();

            _mqttServer.StartAsync(mqttServerOptions.Build()).Wait();
        }

        private void OnApplicationMessageInterceptor(MqttApplicationMessageInterceptorContext context)
        {
            context.AcceptPublish = true;
            context.CloseConnection = false;
        }
        private void OnSubscriptionInterceptor(MqttSubscriptionInterceptorContext context)
        {
            context.AcceptSubscription = true;
            context.CloseConnection = false;
        }
        private async Task OnConnectionValidator(MqttConnectionValidatorContext validator)
        {
            validator.ReasonCode = MqttConnectReasonCode.Success;
        }
    }

I tried to use your sample code in https://github.com/chkr1011/MQTTnet/tree/master/Tests/MQTTnet.TestApp.AspNetCore2
When I route to /mqtt, it shows this message Connection ID required.
What did I do wrong and how can I validate client connection and intercept messages in WS?

In general this should work as expected. I usually get also messages from WebSockets handled in the interceptor. Are there maybe some errors in the MQTTnet trace?

Thank you, you are right. I ran 2 different servers that made the problem.


unable to get traffic to WAN

set firewall name GUEST_IN default-action drop
set firewall name GUEST_IN description 'GUEST in'
set firewall name GUEST_IN rule 1 action accept
set firewall name GUEST_IN rule 1 description 'Allow established/related'
set firewall name GUEST_IN rule 1 state established enable
set firewall name GUEST_IN rule 1 state related enable
set firewall name GUEST_IN rule 2 action drop
set firewall name GUEST_IN rule 2 description 'Drop invalid state'
set firewall name GUEST_IN rule 2 state invalid enable
set firewall name GUEST_IN rule 3 action accept
set firewall name GUEST_IN rule 3 description 'GUEST new to WAN'
set firewall name GUEST_IN rule 3 state new enable
set firewall name GUEST_IN rule 3 destination group address-group ADDRv4_eth0

thats an adaptation of your script. im unable to ping from GUEST network to WAN. i was hoping to use your version as its cleaner but i had to settle for this:
default accept
accept est/rel
drop invalid
drop rfc1918 lan subnets
i dont quite like this.. so i hope you can tell me how to make your version work. i have also tried using interface-network instead of address-group

@biax, I am not sure how to address your issue. There is just too much context needed to properly address the problem you are experiencing and I will not be able to provide the effort needed.
This  writeup is not intended to be a working script, but rather an illustration on a way of thinking. I am not a security expert so it would be very inappropriate for me to give any specific advise for a firewall configuration.
I am sorry I can not be of more help.


Feature Request: More flexibility for auto-tunneling settings

First off, fantastic app. I have been using it for a while on multiple devices and it works great. With the new "battery saver" option enabled it barely uses any battery while being more reliable than other solutions I have tried (such as my Tasker based solution, which was great but did not work reliably when the screen was off on the device).
For my use case it would be great if there was more flexibility regarding setting which tunnels are enabled for different SSIDs / mobile data connections. I have three "levels" of networks: (1) local network; (2) trusted networks; and (3) everything else. For the "local network", this would be a "trusted SSID" in your app where no VPN tunnel is enabled because the resources I need to access are local. For the "trusted networks", I enable a split tunnel so I can access the resources I need (including a DNS server) but the remainder of the traffic flows outside of the tunnel because the network is trusted (and I happen to use this tunnel for mobile data as well). For "everything else", I enable a full tunnel so all traffic is protected (for example, when connected to public wifi or any other SSID that I have not tagged as being "trusted").
In my experience the type of setup that I have is fairly common, and it would be fantastic if your app could handle such a setup. There are a number of ways that I believe you could enable this feature from an interface perspective, and I wonder if some inspiration could be taken from the iOS version of the WireGuard app where it looks like to can specify certain tunnels that are enabled for "only these SSIDs" or "except these SSIDs". In Tasker I have achieved this setup by creating Variables for "No VPN SSIDs", "Trusted SSIDs" (which includes mobile data) and set up Profiles that turn on the tunnels as appropriate, including defaulting to the full tunnel if the SSID does not match any of the Variables). However, I believe you could achieve something more flexible for all users with an approach similar to the iOS WireGuard app if there was also the concept of a "default" tunnel (the full tunnel in my case).
I hope I have described the feature request in a way that makes sense, but please let me know if you have any questions. I realize that it would add complexity to your app, but I also believe it would open up many new use cases that could be beneficial for a lot of users.

Hello! Thank you so much for the feedback and for using the app! I'm glad you are enjoying the (long overdue) battery saver feature. I am always looking for feedback on that feature.
This is all a great idea. I really should have built the app with this flexibility from the start, but I was too busy hacking away. 😁 I'll take a look at the iOS implementation of wireguard official as suggested. This would be a super valuable feature that I don't think would be too hard to add. The app already has the "default tunnel" concept with the "primary tunnel" feature.

Thank you for being so receptive to ideas; I know what it is like to deal with the sometimes unrealistic expectations of an open source userbase. I think the iOS implementation may have some good ideas to draw from, but I have not used it myself so I am not clear how much flexibility it has (I only looked at screenshots of the app). Your app is already fantastic and much more reliable for me than other solutions. I just think implementing more flexibility could really take it to the next level and allow for some new and unique use cases. Thanks again, and I am happy to help out with testing if you do end up trying to implement this feature suggestion.

It's nice to see this as I was getting ready to request this feature myself.
Currently, I have two tunnels. The first, is a full tunnel that forwards all traffic and is used on untrusted / public wifi networks when away from home. The second, is a "split" tunnel that only forwards dns and LAN traffic. This is used when on mobile data and is great for battery life.
The auto tunneling feature currently works great and enables/disables my split tunnel that I have set as primary when switching from trusted wifi to mobile and vice versa. It's quick and reliable and I prefer using this app compared to Tasker. However, when I connect to untrusted wifi the app wants to use my split tunnel instead of the full tunnel.
I've been using this app for a couple weeks now and I thank you for your work and I appreciate your openness to ideas / features suggested by the community.

Same here, fantastic app. Before I also used Tasker but this is much better. Hoping this feature gets added soon. Thx

I'm sorry it took me so long to get to this one. I hope the new changes are beneficial and I am open to any additional feedback/requests for additional auto-tunneling flexibility.

@zaneschepke
No problem at all, glad someone is making this excellent app.
Should I download latest version from F-Droid or Play Store?

@zaneschepke
No problem at all, glad someone is making this excellent app. Should I download latest version from F-Droid or Play Store?

Thank you for using it! I will always recommend F-Droid. Anything you download from the Play Store adds tracking to the app.


data: Younus-Saberi

Creating my first LinkFree page

added tags
added socials icon
added link to my social

Fixes Issue

Changes proposed

Check List (Check all the applicable boxes)

[ ] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[ ] This PR does not contain plagiarized content.
[ ] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

Hey,
Remove the , comma. Otherwise Looks good

Thanks, Pradumnasaraf
Before making a PR, I was validating the json on the playground but was getting an error message
I was not sure where I was making a mistake.

Was it coming due to my invalid json format?


TD DSC0005

This is to implement the change for TD DSC0005

Verified the change. It's good to merge.

Verified the change. It's good to merge.


IndexError: lark.parsers.earley_forest in visit_token_node

Hi!
I'm using earley parser in uwsgi app. And everything is fine, but periodically have the exceptions:
IndexError: deque index out of range
  File "app/helpers/predicates.py", line 16, in check_predicate
    return evaluate_predicate(predicate, attributes=attributes)
  File "predicates/evaluator.py", line 13, in evaluate_predicate
    ast = parser.parse(predicate)
  File "lark/lark.py", line 306, in parse
    return self.parser.parse(text, start=start)
  File "lark/parser_frontends.py", line 185, in parse
    return self._parse(text, start)
  File "lark/parser_frontends.py", line 54, in _parse
    return self.parser.parse(input, start, *args)
  File "lark/parsers/earley.py", line 319, in parse
    return self.forest_tree_visitor.visit(solutions[0])
  File "lark/parsers/earley_forest.py", line 281, in visit
    return super(ForestToTreeVisitor, self).visit(root)
  File "lark/parsers/earley_forest.py", line 204, in visit
    vtn(current)
  File "lark/parsers/earley_forest.py", line 284, in visit_token_node
    self.output_stack[-1].append(node)

I cannot reproduce the error manually.
My grammar:
predicate: _statement

_expr: attribute
    | bool_constant
    | attribute_comparison
    | version_attribute_comparison
    | time_comparison
    | functions
    | _composed_statement
    | not_statement

attribute.1: ATTRIBUTE_NAME

bool_constant.2: BOOLEAN

attribute_comparison.3: ATTRIBUTE_NAME (EQ|N_EQ) BOOLEAN                                      -> bools_comparison
                      | ATTRIBUTE_NAME (EQ|N_EQ) SIGNED_INT                                   -> nums_eq_neq_comparison
                      | ATTRIBUTE_NAME (GE|LE) SIGNED_INT                                     -> nums_ge_le_comparison
                      | ATTRIBUTE_NAME (EQ|N_EQ) _QUOTATION TEXT_WITHOUT_QUOTATION _QUOTATION -> strings_comparison

version_attribute_comparison.4: VERSION_ATTRIBUTE_NAME (EQ|N_EQ|GE|LE) VERSION -> versions_comparison

time_comparison.5: DATE_ATTRIBUTE_NAME (EQ|N_EQ|GE|LE) DATE         -> dates_comparison
                 | DATETIME_ATTRIBUTE_NAME (EQ|N_EQ|GE|LE) DATETIME -> datetimes_comparison

functions.6: _DEFINED _BRACE_OPEN ATTRIBUTE_NAME _BRACE_CLOSE   -> defined
           | _UNDEFINED _BRACE_OPEN ATTRIBUTE_NAME _BRACE_CLOSE -> undefined

_composed_statement.7: _BRACE_OPEN _statement _BRACE_CLOSE

not_statement.8: _NOT _composed_statement

?and_statement.9: _expr [_AND and_statement]

?or_statement.10: and_statement [_OR or_statement]

_statement: or_statement

ATTRIBUTE_NAME: /(?!NOT\_)(\w(\w|[-.])*)([a-zA-Z]\d*)/
VERSION_ATTRIBUTE_NAME: "source_client_version"
DATE_ATTRIBUTE_NAME: /[a-zA-Z0-9_.]+_date/
DATETIME_ATTRIBUTE_NAME: /[a-zA-Z0-9_.]+_time/

_DEFINED: "defined"
_UNDEFINED: "undefined"

BOOLEAN: "true"|"false"
TEXT_WITHOUT_QUOTATION: /[^']+/
_QUOTATION: "'"
VERSION: INT "." INT ("." INT)~0..1
DATE: INT ("-" INT)~2
DATETIME: INT ("-" INT)~2 "T" INT (":" INT)~2

EQ: "="
N_EQ: "!="
GE: ">="
LE: "<="

_BRACE_OPEN: "("
_BRACE_CLOSE: ")"

_NOT: "NOT"

_OR: /\s+OR\s+/
_AND: /\s+AND\s+/

SIGNED_INT: ["+"|"-"] INT

%import common.INT

Parser initialized with the next params:
parser = Lark(grammar, start="predicate", parser="earley")

Are you running the parser from two different threads, possibly at the same time?

Yes, the application is running in a multi-threaded mode.

That might be why. I'll take a look.
Also @night199uk  might want to be in the loop.

Pushed a fix to branch threadsafe_earley. Let me know if it solves your problem!

Hi! First of all, thank you for your response.
The fix works perfectly for me!
Are you going to make a new version of the package?

I have released it (with other changes) as 0.7.7


issues about extension cauchy

The Outstanding work on time series imputation really attracts me. But there's some bugs when i use python setup.py (entensions cauchy) ,

Hello @eruisyan, Unfortunately, we find the code runnable, however, we are aware of different problems that one might encounter with the Cauchy kernel installation, some of which are hardware related, we encourage you to search for current installation methods and/or hardware specification within the structured kernels official repository at https://github.com/HazyResearch/state-spaces#structured-kernels.
Best

I hope this email finds you well. I apologize for the significant delay in responding to your previous message. Due to a recent transition to a new research institution, I have been away from my email for the past few months.
I want to extend my heartfelt gratitude for your prompt response and understanding. I deeply appreciate your kind words and encouragement. Your work has been a tremendous source of inspiration for me, particularly in the realm of generating power temporal scenes. It is truly gratifying to witness your accomplishments, including the acceptance of your article by TMLR. Congratulations on this remarkable achievement!
I look forward to staying connected and learning from your continued contributions to the field. Thank you once again for your support.
Warm regards,
EruisYan
在 2023-04-03 18:15:18，juanlopezcode @.***> 写道：
Hello @eruisyan, Unfortunately, we find the code runnable, however, we are aware of different problems that one might encounter with the Cauchy kernel installation, some of which are hardware related, we encourage you to search for current installation methods and/or hardware specification within the structured kernels official repository at https://github.com/HazyResearch/state-spaces#structured-kernels.
Best
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>


Bro, Can you please tell me that how I will open and run your project on android studio for reference in creating my app please.

Bro, Can you please tell me that how I will open and run your project on android studio for reference in creating my app please.


Stability fixes and test coverage improvements

@caadam Can a brother get a code review?

Happy with changes. See inline comment for only recommendation.

Thanks cam, feedback has been addressed - merging this in to dev


darwin: serf build fails on darwin (sandbox)

Build passes with sandbox false.
clang-3.7: warning: argument unused during compilation: '-L/usr/lib'
ar rc libserf-1.a context.o incoming.o outgoing.o ssltunnel.o buckets/aggregate_buckets.o buckets/allocator.o buckets/barrier_buckets.o buckets/buckets.o buckets/bwtp_buckets.o buckets/chunk_buckets.o buckets/dechunk_buckets.o buckets/deflate_buckets.o buckets/file_buckets.o buckets/headers_buckets.o buckets/iovec_buckets.o buckets/limit_buckets.o buckets/mmap_buckets.o buckets/request_buckets.o buckets/response_body_buckets.o buckets/response_buckets.o buckets/simple_buckets.o buckets/socket_buckets.o buckets/ssl_buckets.o auth/auth.o auth/auth_basic.o auth/auth_digest.o auth/auth_spnego.o auth/auth_spnego_gss.o auth/auth_spnego_sspi.o
ar: temporary file: Operation not permitted
scons: *** [libserf-1.a] Error 1
scons: building terminated because of errors.
builder for ‘/nix/store/bsh3ss7wpaajazcxlaq717d4jbmk51pp-serf-1.3.7.drv’ failed with exit code 2

(triage) still a problem?

serf is now building in Hydra. This can be closed by anyone able to.


Integrate LLVM at llvm/llvm-project@ae032e271467

Update config and submodule for
ae032e271467

Dependent on #86. This PR is only for the last commit