Use impl LineraNetConfig instead of LocalNetTestingConfig on end to end tests

Motivation
We need to use impl LineraNetConfig everywhere as we'll have more derived types of it that need to pass the end to end tests
Proposal
Changing specific implementations to use impl LineraNetConfig instead. I'm not doing all the implementations on this PR as the code won't be used, so doing it in the next one where I actually attempt to pass the end to end tests
Test Plan
CI

Current dependencies on/for this PR:

main

PR #1231

PR #1255

PR #1270   👈
PR #1265

This stack of pull requests is managed by Graphite.

Current dependencies on/for this PR:

main

PR #1231

PR #1255

PR #1270   👈
PR #1265

This stack of pull requests is managed by Graphite.

Oh ok, I'll skip this for now then


PHP Fatal error:  Call to a member function attachment() on null in BaseService.php on line 160

For about 5 months i'm using ebay sdk , ocassionaly it gives me fatal error during  async request, is it possible to add throw declaration , eg. RuntimeException ?
if (is_null($response)) throw new RuntimeException....
?

I'll look into improving how the SDK handles null responses.

Recently i'm having a similar issue: Fatal error: Call to a member function attachment() on a non-object in BaseService.php on line 160
The sdk version i'm using is 7.0, doing an upgrade will solve this issue?
Thanks

I am seeing this now too, am running v5, updating to 13 breaks my code at the moment - was this fixed?

Any news here?


Adding papers on Domain adaptation and prior knowledge integration

Hi!
Papers on prior knowledge integration belong to the interactive-predictive framework for (N)MT. If you consider them adequate, maybe it is worth adding a new category.
Cheers!

Thanks for the interest!
I would rephrase it saying that interactive NMT refers to a different decoding strategy, that involves partial supervision from users. It can be seen as an alternative framework to translation post-editing (or other MT output correction strategy).
Indeed, this is tightly related with the scenarios you describe. Since we have this partial feedback, we can improve our models as a bandit learning/reinforcement learning setup. In fact, this paper studies this scenario (I missed it in my PR and might be convenient to include it). Another option for learning within the interactive MT framework is to learn from corrected sentences (obtained either via post-editing or interactive MT).
It is somewhat hard to frame the interactive framework into a single category, because it relates several topics and the frontiers are diffuse. Maybe these works can be categorized into a new subsection like Human-centered NMT? What do you think?
Cheers!

Got it. The idea of Human-centered NMT is brilliant!
We can say that interactive NMT, as well as the further improvements via bandit learning/reinforcement learning, integrates user feedback into the current NMT architecture and it's still in an end-to-end manner. Automatic Post-Editing, on the other hand, is a two-stage approach which treats translating and improving by feedback as two separate tasks.
The human-centered idea is what interactive NMT and automatic post-editing share in common. I will merge the pr and re-organize the related papers later.
Thanks again for your great advice!

A small clarification: I don't think automatic post-editing belongs to human-centered MT. The idea of APE is to automatically correct the outputs of a MT system, but (in principle) there's no human intervention in this scenario.
I canalso collect some papers on human-centered SMT, if you think is valuable to add it on the SMT secton :)

Hi!
In my opinion, automatic post-editing separate the step of using human feedback from the (pure) machine translation step. The idea of APE is indeed to automatically correct the outputs of MT, but I would say that the correcting step also involves human intervention -- in the form of the provided data --- as there are golden post-edited sentences paralleled raw translation sentences. Compared with the canonical MT architecture where there are only two types of data provided, I tend to insist on classifying APE into the session of human-centered MT.
By the way, you are welcomed to contribute on human-centered SMT!
Cheers!


stack-trace dependency breaks raygun-angular2 package in new angular-cli@webpack builds

Just wanted to let you know that upcoming changes to the CLI are going to break this package.  Not really an action item yet but when they announce how to add a "var style" dependencies like stack-trace you will just need to update your documentation:
https://github.com/angular/angular-cli/issues/1551#issuecomment-237939457
See here for information on the upcoming WebPack migration:
https://github.com/angular/angular-cli/blob/master/WEBPACK_UPDATE.md

Hey @rbj325 !  I am running into this problem now and am not sure what the resolution is.  I checked the links that you posted, but was not able to find the proper way to reference a library like stack-trace in this project.
Any ideas?  Thanks!


Add a flag to disable the use of the just-built compiler.

What's in this pull request?

Resolved bug number: (SR-)

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

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

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

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

We may need this option for apple-internal builds.

@swift-ci Please test


Invalid get index "keybinds" (on base: "null instance") when opening the engine

Every time I try to play the project the game immediately gives this error. Closing and reopening it has no effect.

The fix should be in the latest build but if it isn't here's a temporary fix before i fix the storing of settings.
In settings_handeler.gd

It worked!
Btw leaving here but if anyone tries to play anything in Story Mode and gets the dialogue error, try this:

Code:
@onready var dialog : Label = $"Dialogue Display"

# Called when the node enters the scene tree for the first time.
func _ready():
	if dialogue.dialogue != null:
		dialog.text = str(dialogue.dialogue)


link prediction

❓ Questions & Help

Is there an example of RGCN doing link prediction?

No, we sadly do not have a link prediction example of RGCN, but it should be relatively easy to implement. The main part would be to add the necessary datasets to the repository. Feel free to work on it if you like :)

hello @Purpleheather
Here is a repo about link prediction in github.
NOTE THAT it is implemented on TensorFlow 1.7.0 and networkx 2.0 (the repo's owner shows that networkx 2.0+ does not work, in this issue)
and its arxiv preprint paper: Link Prediction Based on Graph Neural Networks
I installed it and run it on the environment below:
Ubuntu 16.04 (NO CUDA)
Python 3.7
TensorFlow 1.13.1
I do not know your environment. And I run the repo's gnn_implementation folder, whose main.py uses mutag dataset. (in fact, we have mutag dataset in pyg)
in ./GNN_implement/gnn.py: 118-131 (118-131 lines) shows its gnn network. I think it is a GCN.
hope to help you a little.
yours sincerely
@wmf1997

@WMF1997, interesting to follow this thread. I might give a try to SEAL.
Best,
T.C

Here is the pytorch version: https://github.com/muhanzhang/SEAL

:eyes: https://github.com/rusty1s/pytorch_geometric/blob/master/examples/link_pred.py

👀 👀 ➡ https://github.com/rusty1s/pytorch_geometric/blob/master/examples/link_pred.py 🎉

Hi, I think there are several errors in this Link Prediction example. I opened an issue about it here https://github.com/rusty1s/pytorch_geometric/issues/1121

👀 👀 ➡ /examples/link_pred.py@master  🎉

Hi, I think there are several errors in this Link Prediction example. I opened an issue about it here #1121

It is fixed now 😊 #1124

There is now an example: https://github.com/rusty1s/pytorch_geometric/blob/master/examples/rgcn_link_pred.py


Build a ansible-execution-enviroment to avoid system depencies

dnf install python3-virtualenv.noarch

virtualenv ansible-ee
Using base prefix '/usr'
New python executable in /root/ansible-ee/bin/python3.6
Also creating executable in /root/ansible-ee/bin/python
Installing setuptools, pip, wheel...done.

$ . ansible-ee/bin/activate
$ type pip
pip is /root/ansible-ee/bin/pip
$ pip install ansible-navigator  ansible-builder
...

https://www.jung-christian.de/post/2021/09/whats-new-in-the-ansible-universe/

Fixed in devel branch, will be merge into master with #212


[Feature] Integrate DELETE for flink-1.17

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
subtask of #640
Solution
No response
Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

hi, @FangYongs , I would like to work on this. Would you help assign it to me? thanks.

I have done some works to upgrade and initialize flink 1.17. I'm willing to review works about 1.17 integration. Please ping me when you are ready. @legendtkl


Add LZ-String.js

It's LZ-String, but implemented in TurboWarp. Nothing else to say. It just works.

If your project was broken by me changing the extension ID, send it to me and I will fix it for you


monitoring: use ansible patterns for '&monitored'

Apply this playbook to the cross section of "omero(-web)" hosts and "monitored" hosts.

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1926. See the console output for more details.
Possible conflicts:

PR #79 manics 'Nightshade server and web prometheus exporters'

omero/omero-monitoring-agents.yml

--conflicts

Jumping the queue on gh-79 so we can test on demo before going to nightshade.


Performance issue during scroll / always create new cell instances

Hi,
i have performance issues with the IBPUICollectionViewCompositionalLayout.
During the scroll, the IBPUICollectionViewCompositionalLayout's layoutAttributesForElementsInRect method always ask data source for the cell, if we use estimated item size and item contentInsets.
Even if the collectionView's dequeueReusableCell method are used, it creates a new instance of the cell (and run the layouting)
Issue is on iOS 12, there is no any performance issue on iOS 13

how to reproduce:
add contentInsets for items in the Examples' EstimatedListViewController:
item.contentInsets = .init(top: 0, leading: 10, bottom: 0, trailing: 10)

the documentation / comments says:
contentInsets are ignored for any axis with an .estimated dimension
which is not ignored, makes the performance really bad.
without contentInsets the issue is still exists, it creates way too much instance of the cell, but doesnt use so much resources (performance is acceptable)


Multiclient support

I believe this project may not be necessary any longer:
https://developers.google.com/web/updates/2017/10/devtools-release-notes#multi-client
Give it a whirl and file bugs if there are any inconsistencies.

Yes, I believe that you're right - I've not tried it yet because this project also controls the lifecycle of tabs, which is useful to avoid resource leaks in long running server applications

@johnspackman Thanks for that tool :)


ModuleNotFoundError: No module named 'cpp_wrappers.cpp_neighbors.radius_neighbors'

Hi,
Thank you for sharing your code.
I am trying to use this project but I am getting the above error. I am using windows 10 and I have compiled c++ modules. I would be grateful if you guide me through this problem.
(python version=3.7.11 - numpy=1.21.2-pytorch=1.10.0)
The compile results for build.bat file in cpp_neighbors folder is as follow:
running build_ext No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils building 'radius_neighbors' extension creating build creating build\temp.win-amd64-3.8 creating build\temp.win-amd64-3.8\cpp_utils creating build\temp.win-amd64-3.8\cpp_utils\cloud creating build\temp.win-amd64-3.8\Release creating build\temp.win-amd64-3.8\Release\neighbors C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\ProgramData\Anaconda3\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda3\include -IC:\ProgramData\Anaconda3\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /Tp../cpp_utils/cloud/cloud.cpp /Fobuild\temp.win-amd64-3.8\Release\../cpp_utils/cloud/cloud.obj -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 cl : Command line warning D9002 : ignoring unknown option '-std=c++11' C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\ProgramData\Anaconda3\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda3\include -IC:\ProgramData\Anaconda3\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /Tpneighbors/neighbors.cpp /Fobuild\temp.win-amd64-3.8\Release\neighbors/neighbors.obj -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 cl : Command line warning D9002 : ignoring unknown option '-std=c++11' C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\ProgramData\Anaconda3\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda3\include -IC:\ProgramData\Anaconda3\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /Tpwrapper.cpp /Fobuild\temp.win-amd64-3.8\Release\wrapper.obj -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 cl : Command line warning D9002 : ignoring unknown option '-std=c++11' C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\ProgramData\Anaconda3\libs /LIBPATH:C:\ProgramData\Anaconda3\PCbuild\amd64 /LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64 /EXPORT:PyInit_radius_neighbors build\temp.win-amd64-3.8\Release\../cpp_utils/cloud/cloud.obj build\temp.win-amd64-3.8\Release\neighbors/neighbors.obj build\temp.win-amd64-3.8\Release\wrapper.obj /OUT:C:\Users\hasanabbasi\Desktop\try segmentation\Experiments\KPConv-PyTorch\cpp_wrappers\cpp_neighbors\radius_neighbors.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\../cpp_utils/cloud\radius_neighbors.cp38-win_amd64.lib Press any key to continue . . .
and for build.bat in cpp_subsampling folder is:
 running build_ext No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils building 'grid_subsampling' extension creating build creating build\temp.win-amd64-3.8 creating build\temp.win-amd64-3.8\cpp_utils creating build\temp.win-amd64-3.8\cpp_utils\cloud creating build\temp.win-amd64-3.8\Release creating build\temp.win-amd64-3.8\Release\grid_subsampling C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\ProgramData\Anaconda3\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda3\include -IC:\ProgramData\Anaconda3\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /Tp../cpp_utils/cloud/cloud.cpp /Fobuild\temp.win-amd64-3.8\Release\../cpp_utils/cloud/cloud.obj -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 cl : Command line warning D9002 : ignoring unknown option '-std=c++11' C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\ProgramData\Anaconda3\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda3\include -IC:\ProgramData\Anaconda3\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /Tpgrid_subsampling/grid_subsampling.cpp /Fobuild\temp.win-amd64-3.8\Release\grid_subsampling/grid_subsampling.obj -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 cl : Command line warning D9002 : ignoring unknown option '-std=c++11' C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\ProgramData\Anaconda3\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda3\include -IC:\ProgramData\Anaconda3\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /Tpwrapper.cpp /Fobuild\temp.win-amd64-3.8\Release\wrapper.obj -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 cl : Command line warning D9002 : ignoring unknown option '-std=c++11' C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\ProgramData\Anaconda3\libs /LIBPATH:C:\ProgramData\Anaconda3\PCbuild\amd64 /LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64 /EXPORT:PyInit_grid_subsampling build\temp.win-amd64-3.8\Release\../cpp_utils/cloud/cloud.obj build\temp.win-amd64-3.8\Release\grid_subsampling/grid_subsampling.obj build\temp.win-amd64-3.8\Release\wrapper.obj /OUT:C:\Users\hasanabbasi\Desktop\try segmentation\Experiments\KPConv-PyTorch\cpp_wrappers\cpp_subsampling\grid_subsampling.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\../cpp_utils/cloud\grid_subsampling.cp38-win_amd64.lib Press any key to continue . . .

I am sorry I cannot help you with windows issues. I only run the code on Linux myself.
I advise you to search for this error on google and if eventually, you cannot find a fix, try to use the code on linux

Thank you for your answer. I will use Linux OS instead and I hope it works.

hi, I also get this error, but after i change the folder name(KPConv-PyTorch-master\cpp_wrappers\cpp_neighbors\radius_neighbors), it works!

hi, I also get this error, but after i change the folder name(KPConv-PyTorch-master\cpp_wrappers\cpp_neighbors\radius_neighbors), it works!

it is the answer!

hi, I also get this error, but after i change the folder name(KPConv-PyTorch-master\cpp_wrappers\cpp_neighbors\radius_neighbors), it works!

Plus, compiled c++ modules first, according to https://github.com/HuguesTHOMAS/KPConv-PyTorch/blob/master/INSTALL.md. When I change the folder  neighbors to radius_neighbors, the compile will not work. Because the path is changed.

radius_
Thank you,it worked


How to access GetExtension in c# like c++

syntax = "proto3";
import "google/protobuf/descriptor.proto";
extend google.protobuf.MessageOptions {
int32 field1 = 999;
}
message AnyMessage {
option (field1) = 10987;
}
int value = AnyMessage::descriptor()->options().GetExtension(field1);
how can I do this in c#?

Firstly, this project (protobuf-csharp-port) doesn't support proto3.
The proto3 C# support is in the main protobuf project: https://github.com/google/protobuf
That said, C# there doesn't yet support retrieving options. I raised https://github.com/google/protobuf/issues/2143 a while ago to track the fact that we want to do this, but we haven't done so yet.

Thank you for your reply. Really a bad news. Basically, I need to set a default value for a field in the proto file, which was possible in proto2 but in proto3 it is deprecated . I don't know why google removed this default feature. Is it possible to solve set default value in another way using proto3 and which will work in every platform like c++, c# ?

No, proto3 just doesn't support default values.


Allow user to override default config location using command line options

Currently the script requires the config to be at
~/.seiso-importers/seiso.yml

Need to be able to override that.

Fixed by b85eddce67ec5e4da07d8c2585a4861b9691640b.


Using brew on my Mac reports unrelated issues with Besu

I get this message when I run `brew install ":
Warning: Calling depends_on :java is deprecated! Use "depends_on "openjdk@11", "depends_on "openjdk@8" or "depends_on "openjdk" instead.
Please report this issue to the hyperledger/besu tap (not Homebrew/brew or Homebrew/core), or even better, submit a PR to fix it:
  /usr/local/Homebrew/Library/Taps/hyperledger/homebrew-besu/besu.rb:8

Since I was instructed to report this issue, I am reporting this issue.
Any idea why this happens?
Cheerio.

This issue has reemerged since the 20.10.3 release.

Confirmed.  The fix got rolled back.  Fixing again.


fix(GlobalHeader): BAM profile menu changes Revert

Overview

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: [ABC-123]
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change
[ ] This PR includes testing instructions tests for the code change
[ ] The alpha package of this PR is passing end-to-end tests in all relevant Codecademy repositories

Testing Instructions

Don't make me tap the sign.
PR Links and Envs

Repository
PR Link
PR Env

Monolith
Monolith PR
Monolith Env

Portal
Portal Link
Portal Env

Another Repo
Another Link
Another Env

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.198-alpha.b00d89.0@codecademy/gamut-labs@33.3.2-alpha.b00d89.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/gamut-kit@0.6.198-alpha.862f44.0@codecademy/gamut-labs@33.3.2-alpha.862f44.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6318c2bd8df4c51b6e685765--gamut-preview.netlify.appDeploy Logs


wiki: Fish

https://nixos.org/wiki/Fish

Dibs.

Heads up, the wiki is wrong. Fish works out of the box like this:
programs.fish.enable = true;
users.defaultUserShell = "/run/current-system/sw/bin/fish";

i guess we can close this then. thx @andrewrk

PATH="$PATH:$HOME/.nix-profile/etc/profile.d/*
^^ This is a bash version. What is the transpiled, correct fish version?

@andrewrk I'm new to Nix can you tell me where those changes need to be made? I use fish as my default shell and cannot get Nix to work. However, I can get it to work in bash perfectly fine.


openshift.io #1439 Deprecating  '/:codebaseID/edit' Adding '/:codebaseID/workspaces' and returning more workspace data (id / links)

Please describe what your change is about.
Deprecating  '/:codebaseID/edit' Adding '/:codebaseID/workspaces' and returning more workspace data (id / links)
What issues does it solve? (Use autoreferencing for this)
https://github.com/openshiftio/openshift.io/issues/1439

Should be merged together with PR to UI: https://github.com/fabric8-ui/fabric8-ui/pull/2521

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-2

@aslakknutsen @xcoulon PR to UI has been merged without back-end update and this results in 404 on prod-preview
{"errors":[{"code":"not_found","detail":"/api/codebases/afaa-a5f5-419f-a58e-c1d9814fc/workspaces","id":"HplClHCw","status":"404","title":"Not Found"}]}
Could you please review & merge this PR in order to fix staging ?

@aslakknutsen ok, what is the correct way of deprecating this API ? Should we have different endpoints with the same logic for some time ?

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@ff9e102). Click here to learn what that means.
The diff coverage is 0%.

@@            Coverage Diff            @@
##             master    #1893   +/-   ##
=========================================
  Coverage          ?   60.79%
=========================================
  Files             ?      139
  Lines             ?    13579
  Branches          ?        0
=========================================
  Hits              ?     8256
  Misses            ?     4597
  Partials          ?      726

Impacted Files
Coverage Δ

codebase/che/client.go
12.68% <0%> (ø)

controller/codebase.go
30.4% <0%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ff9e102...4ad3fc5. Read the comment docs.

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-3

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-4

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-5

@aslakknutsen @xcoulon PR has been updated:

tests for workspace link
deprecation instead of removing /edit endpoint

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-6

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-7

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-8

@aslakknutsen PR has been updated

[testPR]

[test]

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-10

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-11

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-12

@ibuziuk snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1893-13


udisks2 - 2.8.4 -> 2.9.4

Motivation for this change
Update to a version that supports the ntfs3 kernel module.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
Result of nixpkgs-review pr 147606 run on x86_64-linux 1

2 packages marked as broken and skipped:

gnome.gnome-documents
xmonad_log_applet

1 package failed to build and are new build failure:

gnome.gnome-music: log was empty

114 packages built:

CuboCore.coreaction
CuboCore.corearchiver
CuboCore.corefm
CuboCore.coregarage
CuboCore.corehunt
CuboCore.coreimage
CuboCore.coreinfo
CuboCore.corekeyboard
CuboCore.corepad
CuboCore.corepaint
CuboCore.corepdf
CuboCore.corepins
CuboCore.corerenamer
CuboCore.coreshot
CuboCore.corestats
CuboCore.corestuff
CuboCore.coreterminal
CuboCore.coretime
CuboCore.coretoppings
CuboCore.coreuniverse
CuboCore.libcsys
adapta-gtk-theme
almanah
bubblemail
calls
cantata
chatty
chrome-gnome-shell
cinnamon.cinnamon-common
cinnamon.cinnamon-control-center
cinnamon.cinnamon-gsettings-overrides
cinnamon.cinnamon-screensaver
clementine
clementineUnfree
dropbox-cli
elementary-planner
empathy
enlightenment.enlightenment
evolution
evolution-data-server
evolution-ews
evolutionWithPlugins
exaile
far2l
feedreader
folks
gfbgraph
gnome-multi-writer
gnome-online-accounts
gnome-photos
gnome-recipes
gnome.cheese
gnome.file-roller
gnome.geary
gnome.gnome-applets
gnome.gnome-books
gnome.gnome-boxes
gnome.gnome-calendar
gnome.gnome-contacts
gnome.gnome-control-center
gnome.gnome-disk-utility
gnome.gnome-flashback
gnome.gnome-initial-setup
gnome.gnome-maps
gnome.gnome-notes
gnome.gnome-online-miners
gnome.gnome-panel
gnome.gnome-session
gnome.gnome-shell
gnome.gnome-terminal
gnome.gnome-todo
gnome.gnome-tweaks
gnome.gnome-user-share
gnome.gvfs
gnome.nautilus
gnome.nautilus-python
gnome.totem
gnomeExtensions.easyScreenCast
gnomeExtensions.gsconnect
gnomeExtensions.night-theme-switcher
grilo-plugins
gvfs
kgx
libgdata
libzapojit
mailnagWithPlugins
mate.mate-utils
monitor
pantheon.elementary-calendar
pantheon.elementary-greeter
pantheon.elementary-mail
pantheon.elementary-session-settings
pantheon.elementary-tasks
pantheon.file-roller
pantheon.file-roller-contract
pantheon.switchboard-plug-onlineaccounts
pantheon.switchboard-with-plugs
pantheon.wingpanel-applications-menu
pantheon.wingpanel-indicator-datetime
pantheon.wingpanel-with-indicators
phosh
psensor
rabbitvcs
rapid-photo-downloader
shotwell
spaceFM
synology-drive
tracker-miners
udiskie
udisks
usermount
vifm-full
vimix-gtk-themes
whitesur-gtk-theme

I opened https://github.com/NixOS/nixpkgs/pull/163926 fixing that.


Single quotes being very strange (close quotes x 2?)

See below. Both are entirely identical in encoding. Maybe the "smart quotes" are getting too "smart".
Example 1.

Example 2.

P.S. This is from the 8601-1 document, all pushed.

This is a problem with the sterile gem: it thinks '12 is the year 1912, which should be ’12. That is actually true, but not when there is a closing quote.
I'm going to request a fix, but the gem has not been updated in 2 years; just in case, I'm going to fork it to us.

Pull request created. I'm somewhat inexpert in creating local gem instances for use in the stack: I've been able to get Gemfile to pull local instances of gems, but have not had success with inheritance. We will need to use our instance of sterile, and the current instance on github of asciimath, until there is a release.

Keep this ticket open until either sterile is released, or we take it over if it is inactive.

Pull Gemfile for 8601-1 and 8601-2 to obtain correct behaviour for quotes.

Whoh. Hope this gets merged soon. Maintaining a custom forked fix isn't making the toolchain easy to use 😉

Until the fix gets merged, can you include this file inside StanDoc? e.g. in a directory called lib/hacks/sterile.rb?
https://github.com/pbhogan/sterile/blob/b70c0f0aac15eee5f6667c98915d4ab075042869/lib/sterile/data/smart_format_rules.rb
You will need to require "lib/hacks/sterile after require "sterile" in lib/metanorma/standoc.rb so that your hack overrides the original one.
Then we don't need the end-user to use our fork.
(similarly, with Asciimath)

Oh! I didn't realise you could do that! OK.

Workaround in place, keeping ticket open until we know status of sterile.

Sterile has been updated.


Enhancement: Allow file instead of string for --override flag

What are you trying to achieve?
I want to be able to store codecept config overrides in a separate json file.
codeceptjs run --override codecept-custom.json

codecept-custom.json
{
    "helpers": {
        "Protractor": {
            "url": "http://build.example.com"
        }
    }
}

What do you get instead?
JSON parse error
Details

CodeceptJS version: 1.0.0
NodeJS Version: v8.1.4
Operating System: Mac
Protractor
Configuration file:

{
  "output": "./output",
  "helpers": {
    "Protractor": {
      "url": "http://build04.example.com:8009",
      // "url": "http://localhost",
      "driver": "hosted",
      "browser": "chrome",
      "rootElement": "body"
    }
  },
  "mocha": {},
  "bootstrap": false,
  "teardown": null,
  "hooks": [],
  "tests": "./test/*/*.js",
  "timeout": 10000,
  "name": "CodeceptTests"
}

Right now you can use different config file, with --config option
You can have different codecept.conf.js files and use them depending on a situation.
Also you can use their parts by moving common logic to shared file and requiring it as a module.
Anyway, JS-based configs are so flexible that you may not need --override option:
See http://codecept.io/configuration/#dynamic-configuration

Excellent suggestion. We can create an "override file" and import that to codecept.conf.js. Then we can use extend to overwrite those values.
This essentially gives us the same effect. I'll close this ticket because that workaround is good enough for me.
If anyone needs a pattern to follow, here's my codecept.conf.js
var extend = require('extend');

var defaultConfig = {
  // Default config
};

var configOverrides = require('./custom-config') || {};

exports.config = extend(defaultConfig, configOverrides);


Turn off exceptions on non-200/300 codes

The library makes an assumption that a non-200/300 code is something that should be handled using exceptions. Better to return the reponse map and let the developer's application decide whether or not an exception is needed. The current behavior forces a developer to use try/catch blocks defensively wherease the proposed behavior would allow the application to make simpler calls with clj-http.

Added.


A form component  is embedded in my custom modal component, how to open the modal every time the embedded component's data is the latest

A form component  is embedded in my custom modal component, how to open the modal every time the embedded component's data is the latest
`

open

`
Modal second time to open the addform data should be changed but it not
because the addform component only be create at first
so,
How to open modal each time to build the addform component to call it‘s ready/create method to get the latest data

Hello, please make sure to ask the question on the forums or the gitter chat. We use the issues to keep track of bugs and feature requests 😉


feat(build-plan): output invocations after running build scripts

Without any feedback on the original issue https://github.com/rust-lang/cargo/issues/7068 I'm going ahead and submitting this PR to flesh out the details with the actual code, but feel free to close it if this wasn't an acceptable change in the first place.
The main change in the current architecture (and whose rationale should be reviewed in more depth than the rest of the code) is the inclusion of the new to_be_compiled attribute directly in UnitInner (and not in one of its subcomponents like CompileMode or Profile).

feat(build-plan): output invocations after running build scripts

Extend the `--build-plan` option with named value `STAGE` that indicates at
which point in the build process to output the (remaining) invocations. The (up
to now) only behavior is labeled as the `init` stage (compile nothing, add all
invocations to the build plan) and a new stage is added, `post-build-scripts`,
to compile and run custom build scripts (along with their dependencies) and
generate the build plan with the invocations of the remaining units (that were
actually going to be compiled and linked in the final binary/library).

Add a new attribute to `Unit` (actually `UnitInner`), `to_be_compiled`, to
signal (depending on the build plan selected, if any) which unit will be
compiled and which added to the build plan (see its documentation for the full
rationale of its inclusion in `Unit`). Replace the binary logic of local
`build_plan: bool` variables, signaling if the `--build-plan` option is used,
with the `to_be_compiled` attribute that contains a more fine-grained logic to
decide which unit will be compiled (based on the build plan selected). This
change is seen in the diff as (roughly) the replacement of `build_plan` (now
deprecated) with the negated value (but same meaning) in `!to_be_compiled`.

Add two tests for the new stage, and modify the basic test
(`cargo_build_plan_simple`) to explicitly include the stage name `init` to test
the new label (the rest of the build plan tests remain the same, to check
backwards compatibility with the previous `--build-plan`-only use).

Closes https://github.com/rust-lang/cargo/issues/7068.

r? @alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override)

:umbrella: The latest upstream changes (presumably #7069) made this pull request unmergeable. Please resolve the merge conflicts.

Sorry for the delay and lack of messaging here @schomatis. Unfortunately though the build-plan mechanism is pretty lackluster in Cargo and is full of a lot of bugs and doesn't have a great plan for moving forward.
I'm going to close this because I don't think we're going to take major changes to the build-plan infrastructure because it needs to sort of start from scratch at this point. We're hopeful that we can find some time to set the direction for build plan in the future, but unfortunately it will require a relatively large investment on the team's part to lay out the current pros/cons and how we imagine them getting fixed.


try-runtime follow-chain seems broken

Is there an existing issue?

[X] I have searched the existing issues

Experiencing problems? Have you tried our Stack Exchange first?

[X] This is not a support question.

Description of bug
As reported in this SO post follow-chain logs a curious error when used seemingly according to instructions.
Waiting for @kianenigma to double check that this is not user error. If confirmed a bug and time permits I'm interested in taking the issue.
Steps to reproduce

git clone https://github.com/substrate-developer-hub/substrate-node-template.git
cargo build -r
cp ./target/release/node-template .
cargo build -r --features=try-runtime
cp ./target/release/node-template ./node-template-try-runtime
cp ./target/release/wbuild/node-template-runtime/node_template_runtime.wasm ./runtime-try-runtime.wasm
./node-template --dev
(in a different terminal)

./node-template-try-runtime \
    try-runtime \
    --runtime runtime-try-runtime.wasm \
    -lruntime=debug \
    follow-chain \
    --uri ws://localhost:9944

Output:
$ ./node-template-try-runtime try-runtime -lruntime=debug --runtime runtime-try-runtime.wasm follow-chain --uri ws://localhost:9944

2023-03-23 18:57:16.935  INFO main try-runtime::cli: subscribing to "chain_subscribeFinalizedHeads" / "chain_unsubscribeFinalizedHeads"
2023-03-23 18:57:16.938  INFO main remote-ext: since no prefix is filtered, the data for all pallets will be downloaded
2023-03-23 18:57:16.939  INFO main remote-ext: scraping key-pairs from remote at block height 0x983dd9c8956066e16614931e2ced38ce00545663426bfc60ccdc41256447323c
2023-03-23 18:57:16.939  INFO main remote-ext: adding data for hashed prefix: 3a6368696c645f73746f726167653a64656661756c743a, took 0s
2023-03-23 18:57:16.939  INFO main remote-ext: Querying a total of 36 keys from prefix , splitting among 8 threads, 5 keys per thread
2023-03-23 18:57:16.944  INFO main remote-ext: adding data for hashed prefix: , took 0s
2023-03-23 18:57:16.944  INFO main remote-ext: adding data for hashed key: 3a636f6465
2023-03-23 18:57:16.947  INFO main remote-ext: adding data for hashed key: 26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8
2023-03-23 18:57:16.947  INFO main remote-ext: adding data for hashed key: 26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac
2023-03-23 18:57:16.947  INFO main remote-ext: initialized state externalities with storage root 0x46b1c5672777f6ade7e0642446079ff3a170e0723b36cdf7bc5e0279f9396620 and state_version V1
2023-03-23 18:57:16.958  INFO main try-runtime::cli: original spec: RuntimeString::Owned("node-template")-100, code hash: 8958348fee00241d329b5ae60038f81327919277c9689a99efb391c1bde2939d
2023-03-23 18:57:16.964  INFO main try-runtime::cli: new spec: RuntimeString::Owned("node-template")-100, code hash: 2ba5db522fe028e0c2733c7d1a173383371bb514cf3c34475c7510b874aabc7c
2023-03-23 18:57:16.984 ERROR main runtime: panicked at 'Bad input data provided to execute_block: Codec error', /Users/liamaharon/grimoire/substrate-node-template/runtime/src/lib.rs:352:1
2023-03-23 18:57:16.985 ERROR main try-runtime::cli: failed to execute block 3 due to Input("failed to execute TryRuntime_execute_block: Execution aborted due to trap: unreachable")
2023-03-23 18:57:19.093 ERROR main runtime: panicked at 'Bad input data provided to execute_block: Codec error', /Users/liamaharon/grimoire/substrate-node-template/runtime/src/lib.rs:352:1
2023-03-23 18:57:19.093 ERROR main try-runtime::cli: failed to execute block 4 due to Input("failed to execute TryRuntime_execute_block: Execution aborted due to trap: unreachable")

Traced the error to being returned here: https://github.com/paritytech/substrate/blob/4bf67fb3dc0f095e4210b5ebc5f1f2ea24bf36c0/primitives/state-machine/src/lib.rs#L408
Error emitted:
Err(
    AbortedDueToTrap(
        MessageWithBacktrace {
            message: "unreachable",
            backtrace: None,
        },
    ),
)

Going to traverse the commit history to see where the bug was introduced.

Panics with a different error on v0.9.35:
Thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseError(Error("unknown field `block`, expected `header` or `extrinsics`", line: 0, column: 0))', /Users/liamaharon/.cargo/git/checkouts/substrate-7e08433d4c370a21/2a0eeff/utils/frame/try-runtime/cli/src/commands/follow_chain.rs:110

Panics with a different error starting polkadot-v0.9.35:
Thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseError(Error("unknown field `block`, expected `header` or `extrinsics`", line: 0, column: 0))', /Users/liamaharon/grimoire/substrate/utils/frame/try-runtime/cli/src/commands/follow_chain.rs:110

Latest version I can get this working is polkadot-v0.9.30

I've made a little progress debugging (on polkadot-v0.9.40).
The error is emitted at the injected decode_params step that is injected immediately before the execute_block runtime api is executed.
Error:
2023-03-23 18:57:16.984 ERROR main runtime: panicked at 'Bad input data provided to execute_block: Codec error', /Users/liamaharon/grimoire/substrate-node-template/runtime/src/lib.rs:352:1

Code:
https://github.com/paritytech/substrate/blob/4bf67fb3dc0f095e4210b5ebc5f1f2ea24bf36c0/primitives/api/proc-macro/src/impl_runtime_apis.rs#L101-L110
So, what's the bad input data being provided? I modified the panic! to log the input:
Err(e) => {
	panic!("Bad input data provided to {}: {}. MAX_EXTRINSIC_DEPTH: {}, input: {:?}", #fn_name_str, e, #c::MAX_EXTRINSIC_DEPTH, #input);
},

and it turns out that the input provided is empty:
main runtime: panicked at 'Bad input data provided to execute_block: Codec error. MAX_EXTRINSIC_DEPTH: 256, input: []', /Users/liamaharon/grimoire/substrate-node-template/runtime/src/lib.rs:338:1

Investigating this lead, execute_block should obviously require some input.

@kianenigma spotted the issue: a true for signature_check is missing here https://github.com/paritytech/substrate/blob/75dee3c6fc72f6399a43f498e0e42f94fb82a7bd/utils/frame/try-runtime/cli/src/commands/follow_chain.rs#L151


Improve the shape of the code

Add whitespace
Reduce the number of names for related things to A/B
from production/alternate and A/B and 1/2
Reorder all the A/B from various mixes to A/B
Remove most lint (using gometalinter), mostly unchecked for errors.
Order flags more closely to how they are displayed
Shorten the user help message and use parallel construction

BREAKING CHANGE

-key.file/-cert.file to -tls.cer/-tls.key for parallel construction

This offered ahead of another refactor to reduce cyclomatic complexity of ServeHTTP.
And, perhaps, some tests to make refactoring, modification, and other additions less stressful.

Gonna pull this. I have a few thoughts about improvement. Particularly after reading the deprecation notice.
godoc cmd/net/http/httputil NewServerConn


Create workflow for sql-managed-instance

Pull request trigger is disabled for now for this module as I don't have the full history and I'm not quite sure we want to enabled it just yet.


Bump dependencies

PR Summary

Bump dependencies and add dependabot updates.

PR Checklist

[x] PR has a meaningful title
[x] Summarized changes
[x] Change is not breaking
[x] This PR is ready to merge and is not Work in Progress
Code changes

[ ] Link to a filed issue
[ ] Change log has been updated with change under unreleased section

Approved.


fix: uORB topics lost messages when generation wrap-around

When uORB::DeviceNode::generation_ exceeds UINT_MAX, data will be lost after wrap-around.
But when _queue_size is a power of 2, no data will be lost, and generation %  _queue_size can always get a correct value.
For example, _queue_size is 10, index is 0~10, when _generation is about to overflow:
Assuming _generation is UINT32_MAX, UINT32_MAX(4294967295) % 10 => 5, write data at position 5, then _generation++.
Now _generation is 0, 0 % 10 => 0, write data at position 0.
The data is not continuous, and the subscriber cannot obtain continuous and correct data.
If _queue_size is power of 2, such as 8, index is 0~7, when _generation is about to overflow:
UINT32_MAX(4294967295) % 8 => 7, write data at position 7, then _generation++.
0 % 8 => 0, write data at position 0.
The data is continuous.
In fact, when _queue_size is a power of 2, we can also replace generation % _queue_size with generation & (_queue_size - 1).
Because _queue_size is of uint8_t type, I limit it to a maximum of 128.

In addition, when judging whether the subscriber's generation is in the range, one more judgment needs to be considered when it overflows.
if (current_generation > generation + _queue_size)
=>
if ((current_generation > generation + _queue_size) || (current_generation - _queue_size > generation))

I also modified the size of queue_size in uORB_unittests to make it pass the test. However, some tests failed. Such modification may not be appropriate. Can you help?

One more thing needs to be done:
We need to change this
			if (current_generation == generation && current_generation > 0) {
				/* The subscriber already read the latest message, but nothing new was published yet.
				* Return the previous message
				*/
				--generation;
			}

We judge that current_generation>0 is because we want to make sure that the first data is published, but if there is no data published, we should not allow copy to be executed.
So can we make _data a sign that data has been published?
The current construction _data and _generation.fetch_add(1) are not completed by the same atomic operation. Can we change it?
Otherwise, we need to add a variable to indicate that data has already been published and if `_generation is 0, it is because of rounding, not because there is no data.

Can anyone take a look at this? I think this is necessary and has no effect on the current code behavior.

Nearly all publications with queue depth > 1 are using the uORB::Publication template where the queue size is being set statically in the message. How about a static assert there to force us to update the messages to conform and improve awareness of the queue depth? https://github.com/PX4/Firmware/blob/master/src/modules/uORB/Publication.hpp#L82
Example
https://github.com/PX4/Firmware/blob/8579b5dd26a536a1aa763faa25a0dea0885a2df1/msg/vehicle_command.msg#L136

current_generation can be wrap-round, so current_generation > 0 can no longer be used to judge. So can we make _data a sign that data has been published?

I thought that we already had a published flag, but now I recall it was changed to _advertised. Yes adding a published flag is fine, but be mindful of the class packing. We want each publication to be as cheap (small) as possible for these constrained embedded systems that still might have hundreds of publications.

The current construction _data and _generation.fetch_add(1) are not completed by the same atomic operation. Can we change it?

I'm not sure I follow exactly what you mean here. If it's a small change push it here to discuss?

Nearly all publications with queue depth > 1 are using the uORB::Publication template where the queue size is being set statically in the message. How about a static assert there to force us to update the messages to conform and improve awareness of the queue depth? https://github.com/PX4/Firmware/blob/master/src/modules/uORB/Publication.hpp#L82

Maybe we should treat this as the minimum queue_size set by the topic broadcaster, and the real queue_size will only be larger than this.
We may need to change the _queue_size in DeviceNode to the size of uint16_t to ensure that _queue_size can be 256.Currently, it is limited to a power of 2, and uint8 can only take 128.

Nearly all publications with queue depth > 1 are using the uORB::Publication template where the queue size is being set statically in the message. How about a static assert there to force us to update the messages to conform and improve awareness of the queue depth? https://github.com/PX4/Firmware/blob/master/src/modules/uORB/Publication.hpp#L82

Just like the situation where multiple publishers publish topics of the same instance, even though each instance will set queue_size, there is only one value for queue_size.
Therefore, we should get the real queue_size from DeviceNode, and we cannot think that the size is consistent with the set value.

Yes that's correct, I think the difference here is that I want to get to a point where they're all set statically and centrally, but maybe these lazy partial solutions like setting it in the .msg isn't a good incremental way to go about it.

Maybe we should treat this as the minimum queue_size set by the topic broadcaster, and the real queue_size will only be larger than this.
We may need to change the _queue_size in DeviceNode to the size of uint16_t to ensure that _queue_size can be 256. Currently, it is limited to a power of 2, and uint8 can only take 128.

Currently the largest real usage is 8 for sensor_accel/sensor_gyro. https://github.com/PX4/Firmware/blob/60252dde08ac33a97bda3b8497035483b250097b/msg/sensor_gyro.msg#L14

Thanks for the review, is there anything that needs to be revised now?

https://github.com/PX4/Firmware/blob/master/src/modules/uORB/SubscriptionCallback.hpp#L163 needs to be updated as well.

https://github.com/PX4/Firmware/blob/1dbd7df83b0f6d759dfa3ca070faa5fe361aea62/src/modules/uORB/uORBDeviceNode.hpp#L191

https://github.com/PX4/Firmware/blob/master/src/modules/uORB/SubscriptionCallback.hpp#L163 needs to be updated as well.

Yes, I feel we still have some work to do...
https://github.com/PX4/Firmware/blob/1dbd7df83b0f6d759dfa3ca070faa5fe361aea62/src/modules/uORB/uORBDeviceNode.hpp#L191
We should delete the published_message_count() interface and use an interface such as unsigned check_updates().
For example:
// Returns the number of updated data relative to the parameter 'generation'
unsigned check_updates(const unsigned &generation) const {
    // We can get the correct value regardless of wrap-around or not.
    // For example 0-UINT_MAX => 1
    return _generation.load() - generation;
}

Although it seems simple, we can ensure the correct use by internal processing.
What do you think?

That's likely fine, just be aware that on typical configurations this is called thousands of times per second in aggregate.
If you aren't already I would strongly recommend sanity checking all of these changes on a NuttX board in addition to POSIX/SITL as you go along.

Would be good go have some unit tests covering the wrap-around and ensuring all cases trigger/not trigger correct updates

Yes that would be great.

Now, only testing is left.

Since we want to modify this, I want to make it perfect.
We may need to give Subscription::_last_generation an initial value (obtained from DeviceNode), but we cannot think that 0 is the first value, and we cannot be sure whether wrap-around has occurred, unless we place another variable in DeviceNode to indicate The index of the oldest data or indicates whether a wrap-around occurred.
But placing a variable may be redundant, because every time we publish data, we need to check and update it when necessary, which is not worth the loss.
If we want the subscriber to behave consistently every time it subscribes, then either we set the initial data index to the oldest data index (as it is now) and need a variable to indicate the occurrence of wrap-around, or we The initial data index is set to the latest, so we don't need to worry about wrap-around. We can guarantee that the initial value is always valid, but it is an index of the latest data.
Yes, the proportion of this situation is small, but in order to maintain consistent behavior, I still feel it needs to be considered.
So my question is, can we modify the behavior of subscribers, and set the subscription index (_last_generation) to the latest position every time we subscribe, so that the cost is minimal and the changes are not big. Right?
In this case, we can also modify the initial value of _generation in DeviceNode at will to facilitate our wrap-around test. We even need to modify its initial value to UINT_MAX-1, let it pass the current unit test and we can verify its effectiveness.

In this case, we can also modify the initial value of _generation in DeviceNode at will to facilitate our wrap-around test. We even need to modify its initial value to UINT_MAX-1, let it pass the current unit test, and we can verify its effectiveness.

I passed the uorb unit test, but some other tests failed because the subscription could not get the old data.
For example this:
https://github.com/PX4/Firmware/blob/6a08e163518bf3ec8ff05acaa57cf532d4506c9f/src/lib/parameters/ParameterTest.cpp#L91
// AND: a subscriber
uORB::SubscriptionData<obstacle_distance_s> sub_obstacle_distance{ORB_ID(obstacle_distance)};

// WHEN we send the message
orb_advert_t obstacle_distance_pub = orb_advertise(ORB_ID(obstacle_distance), &message);
ASSERT_TRUE(obstacle_distance_pub != nullptr);

// THEN: the subscriber should receive the message
sub_obstacle_distance.update();
const obstacle_distance_s &obstacle_distance = sub_obstacle_distance.get();

When the Subscription is constructed, no data is published.
Then a publisher released the data.
Then the subscriber will subscribe first when it is updated. After the subscription is successful, the index will point to the latest, and then it will be judged whether there is an update. Obviously, there is not now, because we just subscribed.
So the test failed, and there are others that are similar.
There are two solutions:

Subscribe in the constructor
Before the data is released, manually perform a subscription

What do you guys think?

I added a variable to DeviceNode to indicate that we have at least one data generated. This logic is complete, but the design of that variable is not good enough.
Unless we use DeviceNode::_data != nullptr to indicate, and merge the two operations of construction _data and _generation.fetch_add(1) into one atomic operation in DeviceNode::write.
But due to:

That's a tempting clean solution, but actually I think we need to go a bit in the opposite direction and allocate _data alongside the uORB::DeviceNode. From a safety perspective the general rule is to not allocate anything in flight, and there are still a number of things that won't publish until operating (eg entering mission).

I still haven't used _data to determine whether there is data released.
Another method is to use DeviceMaster to construct a fake DeviceNode in the constructor of Subscription when the topic is not broadcast.
But I guess, is it inappropriate to new data in the constructor? And it may not succeed? This is not the best logic.
I did all the best solutions I could think of.

About the test: Now you can arbitrarily change the initial value of DeviceNode::_generation in this line without affecting the system behavior.
https://github.com/PX4/Firmware/blob/6a08e163518bf3ec8ff05acaa57cf532d4506c9f/src/modules/uORB/uORBDeviceNode.hpp#L231
Such as:
px4::atomic<unsigned> _generation{unsigned(-3)}; /**< object generation count */

Nice work.

https://github.com/PX4/Firmware/blob/master/src/modules/uORB/SubscriptionCallback.hpp#L163 needs to be updated as well.
Would be good go have some unit tests covering the wrap-around and ensuring all cases trigger/not trigger correct updates
A neat trick to ensure everything handles the warp properly is to initialize the first generation with a very high value, so the warp happens relatively early at runtime.

Test cases for wrap-around have now been added. @bkueng @dagar

Can I change the test cases of uORB to use gtest later?

Can I change the test cases of uORB to use gtest later?

Not directly, the current uorb_test is structured so that it can within PX4 on all platforms (including embedded). Standalone unit testing with gtest would also be great.

Not directly, the current uorb_test is structured so that it can within PX4 on all platforms (including embedded). Standalone unit testing with gtest would also be great.

Ok.
Then this work is completed, please review again when you have time, I am looking forward to the first merger.

@dagar @bkueng  Can it be merged?

The modification is complete. Do I still need to rebase to the master branch?

Completed the rebase and cleaned up the commit.

Can it be merged? Those failed tests were not caused by my modification.


Update auto control

Pull Request
What type of PR is this? (check all applicable)

[x] Refactor
[ ] Feature
[ ] Bug Fix
[ ] Optimization
[ ] Documentation Update

Description
Updates to match picture in discord.
Related Tickets & Documents

Related Issue #
#95

Can you merge this with auto transplanting instead?


After login does not redirect to Admin page

Hi Mr. @skoruba,
I don't know if this is a bug. It was working fine yesterday and did not change any in the settings or configuration. Then suddenly today upon logging in it doesn't redirect to the admin page. Do you have any idea regarding this issue?
Thank You!

Hi @luvssti
do you get any errors?

Hi Mr. @skoruba ,
It is working with Microsoft Edge but not in chrome and I also try it on other computer it is working on both browser.. Maybe my google chrome got some problem. I will try to re-install it.
Thank You for the immediate response.

Could you please switch to dev branch and test it latest RC2? Thanks.

Hi Mr. @skoruba,
Yes I will try it. Thanks!

Seems that there was an update on Chrome which blocks cross-site cookies to be set. The error message from the Developer console: "Mark cross-site cookies as Secure to allow setting them in cross-site contexts".

Has anyone had any luck with this so far? Also keen for a solution

Could you please switch to dev branch and test it latest RC2? Thanks.
https://github.com/skoruba/IdentityServer4.Admin/tree/dev
Please, try it in dev branch. 😊

The master branch works with Https. So using the dev branch which provides local Https via nginx should be OK!

Could you please switch to dev branch and test it latest RC2? Thanks.
https://github.com/skoruba/IdentityServer4.Admin/tree/dev
Please, try it in dev branch. 😊

Dev branch is fine, thanks!

Thanks guys for feedback

Fixed in master, thanks 👍🏼


Connection error with url as rediss://

Hello,
I try to connect to a remote redis database with an URL as :
$bdd_redis = new Predis\Client('rediss://id:pwd@redis.xxxx.xxxx:port');
I obtains this error :
Got error 'PHP message: PHP Fatal error: Uncaught Predis\Connection\ConnectionException: Error while switching to encrypted communication [rediss://xxxxxxx:nnnn] in /home/vcap/app/htdocs/include/predis/src/Connection/AbstractConnection.php:155
What would be the origin of this error ?
I tried to find this error message but could not find an answer ...

You need to use tls://.

@tillkruss actually both redis:// (for plain connections) and rediss:// (for encrypted connections) are accepted schemes and they basically do the same of tcp:// and tls://, albeit with slightly different rules for interpreting the URI as defined by their respective IANA provisional documents.
That said, I guess there's no real way to know why stream_socket_enable_crypto() fails as reported by @dlorenzomop (this is the portion of code where that exception is raised), it could be related to this maybe but objectively it's hard to tell without knowing which version of PHP was being used and how the SSL tunnel was configured.
crypto_type can be specified through connection parameters using the ssl dictionary, so it would be easy to try that out just in case we have a way to reproduce the issue.

I was getting the same Error while switching to encrypted communication until I used the following configuration.
$redis = new \Predis\Client([
                'scheme'   => 'tls',
                'host'     => $container->get('redisHost'),
                'port'     => $container->get('redisPort'),
                'password' => $container->get('redisPassword'),
                'ssl'      => [
                    'verify_peer'       => false,
                    'verify_peer_name'  => false,
                    'allow_self_signed' => true,
                    'crypto_type' => STREAM_CRYPTO_METHOD_ANY_CLIENT,
                ],
            ]);

I had 'verify_peer_name'  => false, but was missing 'verify_peer'       => false,. Thank you :)

'crypto_type' => STREAM_CRYPTO_METHOD_ANY_CLIENT,
thanks

I was getting the same Error while switching to encrypted communication until I used the following configuration.
$redis = new \Predis\Client([
                'scheme'   => 'tls',
                'host'     => $container->get('redisHost'),
                'port'     => $container->get('redisPort'),
                'password' => $container->get('redisPassword'),
                'ssl'      => [
                    'verify_peer'       => false,
                    'verify_peer_name'  => false,
                    'allow_self_signed' => true,
                    'crypto_type' => STREAM_CRYPTO_METHOD_ANY_CLIENT,
                ],
            ]);

See: https://www.php.net/manual/en/function.stream-socket-enable-crypto.php

You shouldn't ever do this (disable host verification by setting verify_peer and/or verify_peer_name to false), as it undermines the whole point of TLS - you aren't verifying what you're connecting to.
The solution is to establish why the host verification is failing, which will most likely be one or more of the following:

The server certificate's CN does not match the hostname of the connection
The server cert is not trusted, i.e. signed by a cert in the chain to the trusted root
The server cert has expired


[a11y tool] inform users that the tool is available

Since some combinations of AT+browsers do not announce role=math, can the a11y tool add a label to inform users of the tool's presence? Perhaps role=application is better supported (if that's suitable)?

See https://github.com/mathjax/MathJax-RespEq/pull/48


Issue with sass rules, like @import ecc..

Hi everyone!
I have this scss
.magic-class {
display:block;
grid-template-columns: 1rem 1rem 1rem;
@include box(2rem);
@include transition();
@include box;
overflow:hidden;
touch-action: none;
}
And when I run css comb it will be like
.magic-class {
@include box(2rem);
@include transition();
@include box;
touch-action: none;
display: block;
overflow: hidden;
grid-template-columns: 1rem 1rem 1rem;
}
How can I prevent to add this extra lines after every @import rule?
Help me pls, thank you

Anyone?

Change the EOL sequence to LF seems to fix it for me.

@dnwhte How do you have do It? I would to try your suggestion, and see by myself if It work

Looks like a lot of bugs exist.. So i skip for now :X

I suggest for all to use another tool for sort scss properties, csscomb is no longer maintained and it has some bugs.
In particular:
Postcss tool: https://github.com/Siilwyn/css-declaration-sorter/
Postcss tool: https://github.com/hudochenkov/postcss-sorting/


Avoid asset requests going via static

Requests to assets-origin for assets served by asset-manager are routed via static to asset-manager. This seems unnecessary and is different to how we're responding to requests to the draft-assets hosts (which go directly to asset-manager).

I opened https://github.com/alphagov/govuk-puppet/pull/7224 to route asset-manager requests from assets-origin to asset-manager directly.

I requests an asset-manager hosted asset in production so that I can compare the HTTP response headers before/after deploying this change:
$ curl -v "https://assets.publishing.service.gov.uk/media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR$RANDOM" > /dev/null

> GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR13313 HTTP/1.1
> Host: assets.publishing.service.gov.uk
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx
< Content-Type: image/jpeg
< Content-Disposition: inline; filename="large-goods-vehicle-markings.jpg"
< Cache-Control: max-age=86400, public
< ETag: "560a71ce-10064"
< Last-Modified: Tue, 29 Sep 2015 11:11:10 GMT
< X-Frame-Options: DENY
< Strict-Transport-Security: max-age=31536000
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET, OPTIONS
< Access-Control-Allow-Headers: origin, authorization
< Fastly-Backend-Name: origin
< Content-Length: 65636
< Accept-Ranges: bytes
< Date: Mon, 19 Feb 2018 11:40:23 GMT
< Via: 1.1 varnish
< Age: 0
< Connection: keep-alive
< X-Served-By: cache-lcy19235-LCY
< X-Cache: MISS
< X-Cache-Hits: 0
< X-Timer: S1519040423.038097,VS0,VE250

Searching Kibana for CJR13313 reveals that the request went through assets-origin (nginx), static (nginx), asset-manager (nginx) and asset-manager (Rails):
Time 	request  	status  	application
February 19th 2018, 11:40:23.125	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR13313 HTTP/1.0	200	asset-manager
February 19th 2018, 11:40:23.000	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR13313 HTTP/1.1	200	asset-manager.publishing.service.gov.uk-json.event.access
February 19th 2018, 11:40:23.000	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR13313 HTTP/1.0	200	asset-manager.publishing.service.gov.uk-json.event.access
February 19th 2018, 11:40:23.000	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR13313 HTTP/1.1	200	static.publishing.service.gov.uk-json.event.access
February 19th 2018, 11:40:23.000	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR13313 HTTP/1.0	200	static.publishing.service.gov.uk-json.event.access
February 19th 2018, 11:40:23.000	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR13313 HTTP/1.1	200	assets-origin.publishing.service.gov.uk-json.event.access

The changes in https://github.com/alphagov/govuk-puppet/pull/7224 have now been deployed to production.
I requested the same asset as in the comment above and confirmed that it's no longer being routed via static and that the response headers haven't changed.
$ curl -v "https://assets.publishing.service.gov.uk/media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR$RANDOM" > /dev/null

> GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR4451 HTTP/1.1
> Host: assets.publishing.service.gov.uk
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx
< Content-Type: image/jpeg
< Content-Disposition: inline; filename="large-goods-vehicle-markings.jpg"
< Cache-Control: max-age=86400, public
< ETag: "560a71ce-10064"
< Last-Modified: Tue, 29 Sep 2015 11:11:10 GMT
< X-Frame-Options: DENY
< Strict-Transport-Security: max-age=31536000
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET, OPTIONS
< Access-Control-Allow-Headers: origin, authorization
< Fastly-Backend-Name: origin
< Content-Length: 65636
< Accept-Ranges: bytes
< Date: Wed, 21 Feb 2018 10:20:07 GMT
< Via: 1.1 varnish
< Age: 0
< Connection: keep-alive
< X-Served-By: cache-lcy19230-LCY
< X-Cache: MISS
< X-Cache-Hits: 0
< X-Timer: S1519208407.195903,VS0,VE236

Searching Kibana for CJR4451 shows that the request went via assets-origin (nginx), asset-manager (nginx) to asset-manager (Rails) so this is all working as expected.
Time 	request  	status  	application
February 21st 2018, 10:20:07.240	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR4451 HTTP/1.0	200	asset-manager
February 21st 2018, 10:20:07.000	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR4451 HTTP/1.1	200	asset-manager.publishing.service.gov.uk-json.event.access
February 21st 2018, 10:20:07.000	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR4451 HTTP/1.1	200	assets-origin.publishing.service.gov.uk-json.event.access
February 21st 2018, 10:20:07.000	GET /media/55bb8be1ed915d1565000016/large-goods-vehicle-markings.jpg?CJR4451 HTTP/1.0	200	asset-manager.publishing.service.gov.uk-json.event.access

I'm happy that this is working as expected so I'm closing this issue.


BCM4330/BCM4329 support on cubox-i

@floion @telphan

Would this have a high impact on size? I know we are already constrained by rootfs for resinhup.

Good point @floion . It should be fine as the firmware is around 236K and the nvram config is 20K. And this is only included for cubox-i.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

ok to test

test

Typo in the first commit log: "requred" instead of "required"

@floion fixed typo.

Sorry for not spotting it earlier, there is another typo in the same git log: vram instead of nvram

LGTM


Implement 3 features. Enable default location for file, swap label and detail, delete caret from label.

This is how extension look regularly

When swap label and detail enable

When default location enable

When delete caret enable

I can write documentation for this feature, if you okay to implement it
@jtanx


libinput: refactor & add optional dependencies

CC @wkennington (I know little about libinput).

Just out of curiosity: would there be some demand to have ``xf86-input-libinput``` soon? We don't have it yet, but it should be easy for me to add.

I suppose it would be fine to add, I am looking into cleaning up X11 a bit in the future since we are missing other libraries (don't know if what is missing is of use to us) since we no longer generate the expression, partially due to X11 mirror layout changes.

We do generate the xorg expression (or at least I do re-generate it), only the tarball list is updated by hand, as they no longer make whole-xorg releases (named X11R7.x). I just follow their release announcement list...

Ok, I wasn't sure if updated it was by hand completely or not.
I was originally looking in to rewriting the scripts since xorg changed their mirror's directory layout, (everything now being in /individual//) breaking the functionality of the tarball script.  I am looking at combining the tarball and expression generation into a single script and add a way to easily white list or black list packages (and versions) so that it doesn't unintentionally add unneeded/old/random packages like compiz that still exist on the xorg mirrors.  I also want to have it store things such as the hash of the file, filename, version, etc... in a json file (or something similar)  so that updating the expression doesn't require re-downloading tarballs that are up-to-date.  The intent is to hopefully make updating xorg much simpler and prevent out of date packages since I was finding some random packages here and there that haven't been updated in a while, and unfortunately due to the amount of packages in xorg it is a lot of work to keep track of.  When I do get around to this I'll let you know to get feedback or help.
If you have any thoughts or ideas let me know.

There's no script for generating the tarball list, but generating from that list seems fine (except that it's rather slow due to re-downloading and re-generating everything).

Sorry, I wasn't looking at it at the time, I meant the one liner in the comments at the top of the expression script.  I forgot it wasn't actually a separate script.


[improve][broker] PIP-215 Added TopicCompactionStrategy for StrategicTwoPhaseCompactor and TableView.

Master Issue: https://github.com/apache/pulsar/issues/18099
Motivation

This PR supports TopicCompactionStrategy in StrategicTwoPhaseCompactor and TableView for the internal system topics, as proposed in PIP-215.
This PR does not expose StrategicTwoPhaseCompactor for customer topics yet. We want to expose this feature to users after proven to be stable on the new system topic in the new broker load balancer(in PIP-192) first.
Modifications
This PR adds the following classes to implement `StrategicTwoPhaseCompactor.

Added StrategicTwoPhaseCompactor that extends TwoPhaseCompactor.
Added TopicCompactionStrategy interface.
Added TopicCompactionStrategy logic in StrategicTwoPhaseCompactor and TableViewImpl.
Added CompactionReaderImpl to scan topic messages in StrategicTwoPhaseCompactor. It cumulatively acknowledges the read messages at the end of StrategicTwoPhaseCompactor.
Added SubscriptionMode and SubscriptionInitialPosition parameters in  ReaderConfigurationData since the CompactionReaderImpl reader's subscription needs to be durable and needs to read from the earliest position.
Added RawBatchMessageContainerImpl to batch and serialize messages in StrategicTwoPhaseCompactor.

This PR updates the TableViewImpl to use TopicCompactionStrategy in its data K,V map update logic.

Added the topicCompactionStrategy member variable in TableViewConfigurationData
Added the listen() interface in TableView to provide an option to call the listener actions only for the tail messages.
Updated TableViewImpl and its handleMessage() function to consider TopicCompactionStrategy when updating the data K,V map.

This PR updated the compaction test classes to reuse the test cases.
This PR updated the modifiers of the parent classes of the added classes to access the member variables and member functions.

Verifying this change

[x] Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:

Extended the compaction tests to cover the same logic passes with the StrategicTwoPhaseCompactor.
Added other unit tests for the added classes.

Does this pull request potentially affect one of the following parts:
If the box was checked, please highlight the changes

[] Dependencies (add or upgrade a dependency)
[x] The public API (table-view.listen() addition and reader and table-view configuration update)
[ ] The schema
[ ] The default values of configurations
[ ] The threading model
[ ] The binary protocol
[ ] The REST endpoints
[ ] The admin CLI options
[ ] Anything that affects deployment

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

This PR does not enable strategic compaction for the customer topics. We will update the doc when enabling this compaction for the customer topics.
Matching PR in forked repository
PR in forked repository: https://github.com/heesung-sn/pulsar/pull/12

Codecov Report

Merging #18195 (b27bdfb) into master (6c65ca0) will decrease coverage by 25.59%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master   #18195       +/-   ##
=============================================
- Coverage     34.91%    9.32%   -25.60%
+ Complexity     5707     1938     -3769
=============================================
  Files           607      590       -17
  Lines         53396    56469     +3073
  Branches       5712     5870      +158
=============================================
- Hits          18644     5264    -13380
- Misses        32119    50616    +18497
+ Partials       2633      589     -2044

Flag
Coverage Δ

unittests
9.32% <0.00%> (-25.60%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...in/java/org/apache/pulsar/PulsarBrokerStarter.java
0.00% <ø> (ø)

.../org/apache/pulsar/PulsarClusterMetadataSetup.java
0.00% <ø> (ø)

...g/apache/pulsar/PulsarClusterMetadataTeardown.java
0.00% <ø> (ø)

...org/apache/pulsar/PulsarInitialNamespaceSetup.java
0.00% <ø> (ø)

.../main/java/org/apache/pulsar/PulsarStandalone.java
0.00% <0.00%> (ø)

...ava/org/apache/pulsar/PulsarStandaloneBuilder.java
0.00% <ø> (ø)

...ava/org/apache/pulsar/broker/admin/v2/Brokers.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/org/apache/pulsar/broker/admin/v2/Tenants.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...va/org/apache/pulsar/broker/admin/v2/Clusters.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ache/pulsar/broker/service/PublishRateLimiter.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 679 more

Rebased this pip-215 branch on top of the master.


[Bug Report]: yml This kind of module is not supported

Steps to reproduce
Clone https://github.com/Cap-go/capgo/tree/farm
run bun i
then npm run serve
And you should get the error:

Reproduce link
https://github.com/Cap-go/capgo/tree/farm
What is actually happening?
It seems the YML cannot be parsed. i don't see any need of plugin in vite, so i think something is missing in farm.
Maybe my config is off, but it mostly follow the one from Vitesse:
https://github.com/antfu-collective/vitesse
System Info
System:
    OS: macOS 14.5
    CPU: (10) arm64 Apple M1 Max
    Memory: 140.92 MB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.14.0 - /usr/local/bin/node
    npm: 10.8.1 - /usr/local/bin/npm
    pnpm: 9.1.4 - /usr/local/bin/pnpm
    bun: 1.1.13 - ~/.bun/bin/bun
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 124.0.6367.62
    Safari: 17.5
  npmPackages:
    @farmfe/core: ^1.2.0 => 1.2.0

currently you need plugin to support yml in farm, you can search vite plugin yaml and add it to vitePlugins of farm.config.ts

@wre232114 can you suggest any plugin ?

i tried:
https://github.com/Modyfi/vite-plugin-yaml
https://docs.astro.build/en/recipes/add-yaml-support/
and didn't worked

https://github.com/Modyfi/vite-plugin-yaml should work, Are you configured the plugin in vitePlugins of farm.config.ts. It may not work if you configure vite plugins in plugins of farm.config.ts

And we tested that this i18n plugin works for yaml too. https://github.com/farm-fe/farm-vue-pure-admin/blob/main/build/plugins.ts#L26

you can see my last attempt here: https://github.com/Cap-go/capgo/blob/farm/farm.config.mts

I'll try this repo

farm.config.mts is not supported for now. You should use farm.config.ts instead

@riderx    https://farm-fe.github.io/docs/plugins/official-plugins/yaml  try it

There are still other issues. @shulandmimi is working on the vite plugin compatibility


[github-actions] Cert_5_1_01_RouterAttach.py fails intermittently

Cert_5_1_01_RouterAttach fails on GA for an irrelavant https://github.com/openthread/openthread/pull/7076
cli-ftd-thread-cert.zip

unable to reproduce it in 50runs locally, close it now.


collection query populate depth is off by 1

tl;dr: change here:
if (is_numeric($maxlevel) && $maxlevel > -1 && $level > ($maxlevel+1)) {
// to
if (is_numeric($maxlevel) && ($maxlevel == 0 || $maxlevel > -1 && $level > $maxlevel)) {

What is this about?
This is in reference to the populate=1 query argument that is available when querying collection items that contain a CollectionLink field.
When looking into the source code, I noticed that the value of populate=1 also doubles as a max depth parameter, meaning that you can pass populate=2 which will populate 1 depth deeper (populate=3 etc.).
Here's the function signature that shows that max depth is used:
https://github.com/agentejo/cockpit/blob/568b0124352f6d27df359e8c19a70d2dd1961e87/modules/Collections/bootstrap.php#L628
And where it is called and gets passed the populate parameter.:
https://github.com/agentejo/cockpit/blob/568b0124352f6d27df359e8c19a70d2dd1961e87/modules/Collections/bootstrap.php#L269
So what's the issue?
The problem is that the code is currently structured so that the max depth parameter uses 0 to signify a depth of 1 and 1 to signify a depth of 2 and on top of being a bit confusing, it's problematic when you're also using it as a boolean.
used as a boolean to determine if we should populate here:
https://github.com/agentejo/cockpit/blob/568b0124352f6d27df359e8c19a70d2dd1961e87/modules/Collections/bootstrap.php#L268
So what that means is that if you pass populate=0, nothing gets populated, and if you pass populate=1, two depths get populated (populate=2 is 3 depths).
Here's an example of the response format where I have a cyclical relationship between two collections:
# populate=0
{'A': {'_id': '60d0888d5e5e99226a588871', 'link': 'A'}}

# populate=1  <<< this is annoying and is the reason I started digging into this
{'A': {'B': {'A': {'_id': '60d0888d5e5e99226a588871', 'link': 'A'}}}}

# populate=2
{'A': {'B': {'A': {'B': {'_id': '6006307242da5d4b7f5e35c1', 'link': 'B'}}}}}

# populate=3
{'A': {'B': {'A': {'B': {'A': {'_id': '60d0888d5e5e99226a588871', 'link': 'A'}}}}}}

What's the solution
Well the most intuitive thing I can think of would be to make $maxlevel=0 mean don't populate, $maxdepth=1 be depth of 1, etc., and keep $maxlevel=-1 to mean populate everything.
Here's a draft solution
function cockpit_populate_collection(&$items, $maxlevel = -1, $level = 0, $fieldsFilter = []) {
    if (!is_array($items)) {
        return $items;
    }

    if (is_numeric($maxlevel) && ($maxlevel == 0 || $maxlevel > -1 && $level > $maxlevel)) { // this
        return $items;
    }
    ...
}

Compared to the original:
https://github.com/agentejo/cockpit/blob/568b0124352f6d27df359e8c19a70d2dd1961e87/modules/Collections/bootstrap.php#L628-L636
So in the updated version that means:

$items (array of associative arrays): maxlevel=1, level=0, level > maxlevel == false, keys = [0, 1, 2...]

no links are resolved because level > 0 == false

$item (single associative array): maxlevel=1, level=1, level > maxlevel == false, keys = [val1, linked, ...]

the key linked is resolved because it is a collectionlink field

$item[linked] (single associative array): maxlevel=1, level=2, level > maxlevel == true, exit early because of maxlevel

And actually, I was playing around with things and ended up in infinite recursion when populate == true (which equates to maxlevel == -1)
So maybe something like this as well could help prevent recursion.
function cockpit_populate_collection(&$items, $maxlevel = -1, $level = 0, $fieldsFilter = [], &$stack = []) {
    if (!is_array($items)) {
        return $items;
    }

    if (is_numeric($maxlevel) && ($maxlevel == 0 || $maxlevel > -1 && $level > $maxlevel)) {
        return $items;
    }

    foreach ($items as $k => &$v) {
        if ($level > 0 && is_array($v) && isset($v['_id'], $v['link'])) {
            $id = $v['_id'];
            $link = $v['link'];
            if (in_array([$id, $link], $stack)) {  // if _id is globally unique, then we can drop $link
                continue
            }
            $items[$k] = cockpit('collections')->_resolveLinkedItem($v['link'], (string)$v['_id'], $fieldsFilter);
            $items[$k]['_link'] = $link;
            $stack[] = [$id, $link];
        }
        $items[$k] = cockpit_populate_collection($items[$k], $maxlevel, ($level + 1), $fieldsFilter, $stack);
    }
    return $items;
}

Thanks for your effort! Could you please create a PR?

I can try maybe late this week or next, but I'll need to find an extended window for testing and whatnot.
Quick question - is '_id' unique across all collections? Just cuz I'd prefer in_array($id, $stack) rather than in_array([$id, $link], $stack) because the former is probs faster

@aheinze K all set. So this issue can be resolved with #1459 which is pretty simple and doesn't touch much of the codebase (basically a single function and its single invocation place). I know how overburdened you are so I understand if this takes a little time to get pushed through.


Rustify PackedFunc & Friends

cc @ehsanmok for review

@nhynes @tqchen LGTM

You could eliminate the call_packed! allocation on the rust side doing something like:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=8d4048c7235d7e7bf8074f1514a07350
This would require a rework of Builder, though.

@kazimuth can you also https://docs.tvm.ai/contribute/code_review.html#approve-and-request-changes-explicitly

@tqchen will do in the future, although on further inspection I think my suggestion won't actually work in this case because of the way function::Builder works.

I replaced into_tvm_value with to_tvm_value which takes &self. It copies the primitives and pointers, but this is actually correct since something needs to retain ownership of the strings and bytearrays.

@nhynes if I remember correctly, into_tvm_value was necessary but not sure it's relation to your changes now.

It's no longer into because ffi::TVMValue doesn't own its contents. If, for instance, the frontend did into_tvm_value, there would be no guarantee that the pointed-to data wasn't dropped.

@tqchen This PR is ready to be merged.

@tqchen Could you merge this sooner please? I'm working on a feature which requires these changes.

awaiting approval from @kazimuth

Done @tqchen

THanks, @nhynes , @kazimuth @ehsanmok , this is now merged


Remove rebornix.ruby warning

We've had the Rebornix warning for a long time. I think we should remove it at this point.

We received feedback from some folks that they don't read the dialogue and always just click Clean up, unaware that it'll only modify configurations and not uninstall the extension for them.
I think for the extension pack, we can remove this code and avoid showing this all the time. After the Ruby LSP supports the last remaining bits (autocomplete, and indexing methods) then we will be more strict for Shopify developers and just deny usage of Rebornix internally.

they don't read the dialogue and always just click Clean up, unaware that it'll only modify configurations and not uninstall the extension for them

Could we uninstall the extension for them then? Not sure if this is possible from the API but we could call code --uninstall-extension <extension-id>.

It is possible, but not super straight forward. Rebornix has a dependency on another extension. So we need to

Uninstall Rebornix
The next time VS Code is reloaded, then we can uninstall the dependency (it's not possible to uninstall both in one go as far as I know)


Add Geolocation button component

This PR adds a Geolocation button component as provided in #143.
Due to some conflicts in the history the original PR is screwed up and this provides the original work of @juergenhah with some little optimizations by me in a cleaned history. So most of the work done by @juergenhah (and all kudos).
Adding the original description of #143 here for completeness:
Component that uses HTML5 Geolocation API to show device location on the map Features:

use Html5 geolocation functionality to receive geolocation
show a marker on the map of actual geolocation
zoom the map to the actual geolocation
adds a new layer to the layer tree to show/hide the geolocation marker
adds a button in the toolbar with the locating symbol
added the functionality to the 'app-starter' kit

Optimizations:

make zoom animation configurable
Get rid of setTimeout
consequent use of ES6 notations (const/let, arrow funcs ...)
Some naming / typos

Some follow-up work should be done as stated in #149.

Very useful addition! Two main comments:

Could the Geolocator Button be made an on/off toggle? See e.g. this example: https://app.map5.nl/nltopo
Support Projections (now EPSG:4326 is assumed). e.g. running the app with appCtx=projected does not show proper location. The solution is similar as in Geocoder, using proj.js see e.g. these lines in Geocoder.vue.

Minor comments:

Several used-once functions like createAndRemoveExistingLayer() and the Style are defined outside the Vue template. They could be under methods.
Style is fixed to blue and person_pin_circle. Can this be made configurable in props, with those values as defaults?
"Keep Map Centered on Location" is often dependent on type of application: when the user moves should the map remain centered? Often, when a user pans the map centering is stopped. These are typically configurable options (props) with defaults.

Thanks for your review @justb4. I addressed the following things:

Support projections
Props for marker icon color and text are now configurable by props
Moved the external functions into the Vue component

For your point Could the Geolocator Button be made an on/off toggle? a separate issue (#149) exists, so this will be tackled in a follow-up.
Is this good to go?

Some major comments:

the component uses navigator.geolocation.getCurrentPosition(). Don't know if this is the intention but this fetches location only once. Usually one would want to use tracking, in that case navigator.geolocation.watchPosition() (and clearWatch()) should be used. See [1] and an OpenLayers example [2]
for each location the entire geolocation Vector Layer is removed and added. Only the source Feature needs to be refreshed, or could even only be moved.

Suggestion: OL provides a GeoLocation helper class [3]. Isn't that class handier to use? Also for event-based for later other components in a Wegue app.
Other:

it is usually an option to keep position in the middle, follow/tracking mode. Only if the user pans the map is this disabled. We can make these two a config option: autoCenter (center when location found) and lockCenter (always keep position centered). There is usually a whole range of config options, with sensible defaults for a GeoLocation widget. See for example this Leaflet Location control. [4]

[1] https://www.w3.org/TR/geolocation-API/
[2] https://openlayers.org/workshop/en/mobile/geolocation.html
[3] https://openlayers.org/en/latest/apidoc/module-ol_Geolocation-Geolocation.html
[4] https://github.com/domoritz/leaflet-locatecontrol
Minor:

the created() function can be simplified. (outer this is always available in JS arrow functions, the let me = this pattern is never needed.)

  created () {
    WguEventBus.$on('ol-map-mounted', olMap => {
      this.map = olMap;
    });
    this.isGeolocationAPIAvailable = navigator.geolocation;
  },

Thanks again for your valuable feedback @justb4. Most of your points are already listed in  #149, which should be addressed quite directly after merging this as follow-up. Therefore I'd pledge to merge this as is.

You were just ahead, but approach fine with me!


Installation failure on macOS

As documentation, I executed:
go get -u github.com/d2r2/go-dht
# github.com/d2r2/go-dht
In file included from ../../go/src/github.com/d2r2/go-dht/dht.go:3:
../../go/src/github.com/d2r2/go-dht/dht.go.h:304:15: warning: implicit declaration of function 'sched_setscheduler' is invalid in C99 [-Wimplicit-function-declaration]
# github.com/d2r2/go-dht
ld: library not found for -lrt
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Hi @Limoli! Could you clarify what hardware and OS you use to download and compile package? Just it seems you have CLANG compiler installed only, but I test it with GCC compiler on Linux OS.
Additional assumption you need to install ld tool (GNU linker from "binutils" installation distributive). I will try to test compiling without GCC in virtual environment a little later.
Sorry for late response.

same issue on mac os mojave

Could you clarify, why you are trying to compile this library directly on MacOS?
This library is intended to compile and use on embedded Linux devices, like Raspberry PI, Orange PI, Banana PI and so on.

Using go cross compilation for arm-6, linux. Idea was to deploy already executable item to raspberry pi.

Hi @darkowl91! Could you try again to get latest d2r2/go-dht and cross compile it? Just recently I have added a fix for macOS.
P.S. I'm not sure that cross compilation will work from macOS, but lets try...

@d2r2 THe latest fix for macOS is not working . Just informing.

@pradyuz3rocool, thank you for reporting that issue still present! Main problem is that unfortunately I have no macOS system in my hands. I do all my development on Arch Linux system either directly on Raspberry PI linux. So, in both cases everything works great, but I have no chance to build DHT library on macOS. I will try to get in my hand macOS, I don’t promise to do it quickly :(
Until this problem is fixed, my advice is to compile directly on Raspberry PI deveice, or any corresponding clones.

Thanks @d2r2  I myself work on Arch, but i was trying the same implementation on macOS, i was facing this issue. But Would love to make it generic. I will also look into the fix in the mean while.

Sure 👍
will look into it

@pradyuz3rocool  any luck with this ?

Was able to build on mac  with the following settings
#export GOARM=6 GOARCH=arm GOOS=linux CGO_ENABLED=1
#env CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ \
#    CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=6 \

@darkowl91, in this case compile line for mac OS will looks like:
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=6 go build ...

Is it correct?

yes


Use new leaflet version 1.3.3

Version 1.3.3 is the latest leaflet available right now.
Upgrading this plugin to the new version is not possible due to:
https://github.com/Leaflet/Leaflet/issues/6245

Leaflet 1.3.4 fixes this issue -> closing it


Number of performance optimizations to subcription_map and retained_topic_map

CI error reported.
https://github.com/redboltz/mqtt_cpp/pull/691/checks?check_run_id=1269138667#step:6:32
Getting value function of MQTT_NS::optional is value() not get().
MQTT_NS::optional could be std::optional or boost::optional. Both have value() function.
boost::optional used to only have get(), but now (at least mqtt_cpp requirement version of boost), it also have value() to meet std::optional.
On the contrary std::optional doesn't have get(). So value() is good choice.

I will fix it during merge process.

See added commits https://github.com/redboltz/mqtt_cpp/commits/master


serializeUint creates invalid JSON

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (63fff35 2024-04-22T00:18:27.941506275Z)
What command(s) is the bug in?
forge script
Operating System
Linux
Describe the bug
When using serializeUint to serialize out deployment parameters (wallet address + private key) for end to end testing I noticed when serializing uint256's (from makeAddrAndKey) that the JSON output would be invalid and hard to parse with standard tools because serializeUint emits normal JSON integers instead of string-ifed integers in hex or integer representation. Because javascript's (and thus lots of JSON parsers) max int is 2^53 full uint256's can't be held within a normal integer type.
Example output from serializeUint to json:
  "test_key":<PHONE_NUMBER>9197333440670927965046399095550357839745059449004494585891422388798,

It would be nice if this was in hex form in a string (like how serializeAddress emits things).

I see,
we still want a way to serialize numbers,
perhaps we should add serializeQuantity/Hex that serializes them as hex?
and consider renaming serializeUint into serializeNumber

Yeah that would make more sense in my mind, the easy work around is something like:
        vm.serializeBytes32(obj, "test_key", bytes32(test_key));

So might not be as much of a pain, but still worth considering.

wdyt @mds1 @DaniPopes ?
imo large uint should be serialized as quantity (hex: 0x..) because even stringified numbers are not ideal

wdyt @mds1 @DaniPopes ?
imo large uint should be serialized as quantity (hex: 0x..) because even stringified numbers are not ideal

+1 on serializing large uints as hex.

wdyt @mds1 @DaniPopes ?
imo large uint should be serialized as quantity (hex: 0x..) because even stringified numbers are not ideal

I can take this, if everyone is on board.

assigned