RFC: Some improvements and refactoring in NiftyDispatcher

The major refactor is splitting processRequest into two distinct
methods, processRequestAndSendResponse which handles the channel-level
logic and computeResponseForRequest which is a (kinda) pure function
from ThriftMessage request to ListenableFuture<ThriftMessage>.
The smaller refactors are:

some minor code (e.g. constructing the TProtocols was moved around)

slightly simplify the "start the timer" code (merge two if blocks)

change sendTApplicationException into makeTApplicationExceptionResponseInto

Instead of using an AtomicBoolean to make sure the response is sent
only once, delegate that to SettableFuture which can only be set once.

Catch all the exceptions, and document what needs to catch what.

Remove isOrderedResponseRequired from writeResponse, since we have the
ctx

Some minor code (e.g. constructing the TProtocols) was moved around.
This gives us a couple advantages. The primary one is that, wit the
simpler code structure, we can reason far more clearly about the
exception behavior, and we now guarantee that we eventually handle the
request (either send a response or close the socket, but never leave it
dangling.)
Test Plan: not yet tested (at all)
Reviewers: alandau, andrewcox, haijunz

@alandau @andrewcox @haijunz ping


Update versions for dependent crates to align with versions of vendored crates in Android

The following crates versions are picked to align with the versions of the vendored crates in Android:
tokio: 1.25.0 --> 1.32.0
num-derive: 0.4.1 --> 0.3.3
pdl-runtime: 0.2.3 --> 0.2.2

This change is necessary to build pica and netsim with CMake build

I am not really a fan of downgrading the version. I would prefer netsim to adapt to the newest version instead of rolling back

If I  am correct Pica will be used as a library within netsim.
Is Netsim built with soong ? If so then we don't need to change the cargo.toml. Pica has is own soong file to make it build within android and use it as a lib: https://cs.android.com/android/platform/superproject/main/+/main:external/rust/pica/Android.bp

That is correct! We intend to use pica as the uwb library for netsim.
Netsim uses Soong build to support cuttlefish (which builds well already) and uses CMake build to support goldfish (which needs this PR). And the CMake build is necessary to support different OS and the versions must match to satisfy corrosion, and the Cargo.toml is being actively used in this case.

Ok I understand.
A good solution might be to update the Cargo.toml within the Android directory directly to manage the Android's dependency and let this one untouched.
We can maintain the flexibility to update the dependency strategically when a Pica release makes it necessary. If the original Pica's dependencies are locked by the one on Android it could be an issue for its development.

I prefer applying the change to the source repository instead of making untracked changes to the external/rust/pica repository. We do need to pay attention to avoid breaking this again in the future.

I disagree.
We already are in a situation where the dependencies are different and it is untracked with the Android.bp, it would just remain the same.
There are couple of way to track this, one way could be to have a copybara presubmit to check if for any change Pica is well building on the Android side.
And if it is not building and the dependency is really needed, then the dependency shall be update on the Android side.

Perhaps this might be useful to allow multiple versions as Android Rust Team has suggested:
https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#using-patch-with-multiple-versions

If overriding the version with the [patch] directive works then I am down for this solution.

Unfortunately the overwriting of version with [patch] directive wouldn't work as it is unable to refer crate paths in aosp from an isolated environment nor we are not allowed to pull crates from external URL into aosp.
I've attempted multiple different solutions such as using the caret requiremtn pdl-runtime = ^0.2.2 as well as setting feature flags with optional dependencies for num-derive, (older version to be used when android flag is raised and newer version to be used by default), but it failed to satisfy our CMake with corrosion builds.
From what I see, the best solution here seems to be updating the Rust crates in Android direclty for num-derive and pdl-runtime.
I've uploaded a new commit for an upgrade of tokio crate version.

Ok, thanks to have taken the time to test it.
We discussed this offline with Henri and David. Since the majority approves, we're moving forward with this PR to prevent issues with multiple versions of Cargo.toml.
You can proceed by addind older version and we'll update Pica with this PR afterwards

I don't have write access, so feel free to merge this PR at your convenience!
Thank you for approving this PR :)


How to disable highlight in dashboard?

The filetypes_denylist seems the most relavent options, but it doesn't work.

Please use the issue template.

Please use the issue template.

Sorry, there is a templete for reporting bug, but this issue is not about a bug.
It is more like asking whether a feature exists. And if the feature doesn't exist, no need for debugging is required. That's why I leave no information for debugging.
If a template for Q&A exists, I am happy to ask questions following the template.

If filetypes_denylist doesn't work, then that is a bug.

If filetypes_denylist doesn't work, then that is a bug.

The problem has been solved now. I mistook the filetypes_denylist for file name of configuration, then I used dashboard from my dashboard.lua config. Now alpha works in place of dashboard.


Using with torch.jit.trace and C++?

I started a discussion here https://discuss.pytorch.org/t/debugging-runtime-error-module-forward-inputs-libtorch-1-4/82415
I modified u2net_test.py and used torch.jit.trace to save a module
traced_script_module = torch.jit.trace(net, inputs_test)
traced_script_module.save("traced_model.pt")
print(inputs_test.size()) # shows (1, 3, 320, 320)

Then in c++
auto module = torch::jit::load("traced_model.pt");
torchinputs.clear();
torchinputs.push_back(torch::ones({1, 3, 320, 320 }, torch::kCUDA).to(at::kFloat)); // because python was torch.FloatTensor
module.forward(torchinputs); // error

The error:
 Unhandled exception at 0x00007FFFD8FFA799 in TouchDesigner.exe: Microsoft C++ exception: std::runtime_error at memory location 0x000000EA677F1B30. occurred

The error is at https://github.com/pytorch/pytorch/blob/4c0bf93a0e61c32fd0432d8e9b6deb302ca90f1e/torch/csrc/jit/api/module.h#L112 It says inputs has size 0. I don't know if that's the cause of the exception or a result.
Do you have advice about running U-2-Net in C++? Thank you.

Hi!
I use U-2-Net on Android, which internally uses C++ and I managed to make it work.
With trace I couldn't make it work, instead I used the following mode of converting to TorchScript:
`net.load_state_dict(torch.load(model_dir, map_location=torch.device('cpu')))
if torch.cuda.is_available():
    net.cuda()

net.eval()
scripted = torch.jit.script(net)
torch.jit.save(scripted, "fod.p")`

Hope this helps.

@wpmed92 Thanks for your suggestion. I did what you suggested, and torch.cuda.is_available() was still true. However, in C++ the model seems to stall forever on the ->forward call. No error, just taking forever.

Oh, I see.
Not completely related, but we found something really interesting. On Android the jit.script() saved model inference runs in about a sec, on iOS it was 30 sec, so on iOS we use the traced model, which turns out to be running at about the same speed as on Android. Internally both platforms use the same C++ library, so I'm wondering what may cause such difference.

Glad to have finally resolved this. I'm using TouchDesigner as my environment that loads and executes from my DLL. It turns out I needed to paste ALL the libtorch DLLs in a location that TouchDesigner itself would load them C:/Program Files/Derivative/TouchDesigner/bin, not just when my custom DLL is loaded from Documents/Derivative/Plugins


Use GitLab merge request ID as topic name

When GitLab webhook is set up, each merge request notification gets its own topic. However, this includes the MR title in the topic name.
It would be nice to have an option to only set the topic name using the merge request ID (e.g. proj / MR #234) so that it is stable and MR messages stay together even if the MR title is modified.

@zulipbot claim


Errors building with TypeScript

When building with TypeScript we get the following errors:
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
node_modules/@openlayers-elements/maps/ol-layer-openstreetmap.d.ts:10:63 - error TS2314: Generic type 'TileLayer<TileSourceType>' requires 1 type argument(s).

10 export default class OlLayerOpenstreetmap extends OlLayerBase<TileLayer> {
                                                                 ~~~~~~~~~

node_modules/@openlayers-elements/maps/ol-layer-openstreetmap.d.ts:11:39 - error TS2314: Generic type 'TileLayer<TileSourceType>' requires 1 type argument(s).

11     protected _createLayer(): Promise<TileLayer>;
                                         ~~~~~~~~~

node_modules/resize-observer-polyfill/src/index.d.ts:19:18 - error TS2717: Subsequent property declarations must have the same type.  Property 'contentRect' must be of type 'DOMRectReadOnly', but here has type 'DOMRectReadOnly'.

19         readonly contentRect: DOMRectReadOnly;
                    ~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:18765:14
    18765     readonly contentRect: DOMRectReadOnly;
                       ~~~~~~~~~~~
    'contentRect' was also declared here.

Could you check if this happens in this fork as well? https://github.com/spwoodcock/openlayers-elements
We are discussing to merge his fork into ours, probably in a new organization.

It should be able to build now without errors :)


Added CSS for printing pages

Adding some CSS rules to enable printing of pages without the side bar getting in the way and without the content stopping after the first page.
The problems with printing/print preview where mentioned in #665.

firstly, thanks a bunch for this! It seems to work fine on my end. As a note: I am wondering if there is a way to create a custom printing script that will allow the printed pages to be formatted a bit nicer and potentially display video content as a series of images (but only in printing mode)
I guess having a printable mode of each page is actually the solution there.


New CodeBlock prop: lineNumber

Describe what feature you'd like. Pseudo-code, mockups, or screenshots of similar solutions are encouraged!
The default would be 0 (hide).
If specified, such as 42, each line in the code block would be numbered sequentially on the left, starting with the specified value.
This is two features in one:

The ability to add line numbers in the code block
The ability to customize the starting line number.

This would be a standout feature, since most implementations of line numbering has no option to adjust the starting number.
What type of pull request would this be?
New Feature
Any links to similar examples or other references we should review?
No response

There's a number of improvements I want for code blocks, including line numbering, row highlighting, etc. But right now
we're limited in some regard to the way Highlight.js syntax highlighting works. It essentially manipulates the markup to add wrapping elements to add color highlighting.
A trivial example would be something like:
Before:

Skeleton

After Highlight.js processing:
<div>Skeleton</div>

So this concept of "lines" doesn't really exist, as everything gets scrambled a bit.
Long story short, some research is needed to see if there's a standardized way to do this. This may, however, involve moving away from Highlight.js in favor of another tool that has this functionality build in.
Just want to set expectations here for what it'll take to implement something like this.

A bit of a shameless plug, but @ucffool you might be interested in my SvHighlight library: https://github.com/bennymi/svhighlight
It was adapted from Skeleton's CodeBlock component and offers highlighting and some other features. There's no prop for starting line numbers yet but it's something that could be added.

Not sure if it's worth looking at but another UI called Mantine for React uses PrismJS for code highlighting, they are able to add the line numbers, though I'm not sure if PrismJS actually supports it out of the box so maybe you can take a peak at how they do it. Here's their page for the Prism component.
That being said I like @bennymi's library, just it doesn't really work for me, the lines are super spaced out for no reason from what I can tell so I'd like to ever so slightly push this to a potential final solution.

@Hi-ImKyle Yep we're aware of Prism. It was in the running alongside Highlight when we created the codeblock component. We just felt Highlight was friendlier since it doesn't require installing various language dependencies. Skeleton is about ease of use, so meshed well with our goals.
Doing a quick scan on the Prism docs, none of the examples use line numbers. So this may echo what I said in my previous comment - line numbers are a custom solution on top of the syntax highlighting from these libraries. If you can find documentation for how to enable this via Prism please do share.
FYI our code block can potentially support multiple syntax libraries, so again, we will consider Prism if they provide a turnkey solution for this.


Logical layout validation

Validates module level instructions for logical layout
conformance
Does not validate:

Function logical layout
Minor cases with OpVariable
Missing MemoryModel instruction in module
Order of function definition and function declaration

782 unit tests for logical layout

Really nice set of tests.  Having all the combinations is really powerful.

Please replace the magic 7 in the check for Function storage class.
Tiny cleanups elsewhere as noted.
A small number of additions to the test case: OpTypeFloat, OpTypeArray certainly.  Certainly a Label, and it would be nice to have load, store and one arithmetic.  The slight concern is that we aren't explicitly testing all the ops.  The risk is low, however.

Ok Great. Have added additional functionality to logical layout since I submitted this. Should I wait to push those changes in a separate PR?

I prefer to get this one polished and merged before looking at the next one.  Thanks.  I expect we should get this turned around today.

Addressed feedback so far.

Used macros instead of overloading the operator. Seems more readable this way.
Additional tests should appear in a separate PR

-1. Sorry, fails build on Android. Please pull in the Android-build fixes I had applied to your previous CL before merging into master.

Ahh. Sorry about that. I updated master but I created the refactoring commit before you made your change. I have updated and pushed the changes.

There was still a stray "using std::to_string" but no uses.  I just removed it.  I kept the two separate commits, and pushed into master.

Please rebase your future work onto current master, so we don't have this bump in the road again.
Closing this MR.


Build and Install Instructions are not clear

Hi,
Is this library usable or just experimental ? The instructions on how to build and install don't even exist.  The commands listed for compiling proto files also don't work as is. Given, the partial information,  here is what I had to do after installing all the dependencies listed on the page:

download the source code (or git clone)
cd   // the directory where code is cloned
cd proto/
protoc -I . --grpc_out=. --plugin=protoc-gen-grpc=which grpc_cpp_plugin ./rpc.proto
protoc -I . --cpp_out=. ./*.proto
cd ..
cmake .

At this step, I encountered this error:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CATCH_INCLUDE_DIR
used as include directory in directory /home/saratk/etcd-cpp-apiv3/tst
-- Configuring incomplete, errors occurred!
See also "/home/saratk/etcd-cpp-apiv3/CMakeFiles/CMakeOutput.log".
To workaround this problem, I opened CMakeCache.txt file in the same directory and changed the following line
CATCH_INCLUDE_DIR:PATH=CATCH_INCLUDE_DIR-NOTFOUND
to
CATCH_INCLUDE_DIR:PATH= and did "cmake ." again

make

This step failed with following error
/etcd-cpp-apiv3/v3/src/Action.cpp: In member function ‘void etcdv3::Action::waitForResponse()’:
/etcd-cpp-apiv3/v3/src/Action.cpp:26:36: error: ‘GPR_ASSERT’ was not declared in this scope
GPR_ASSERT(got_tag == (void*)this);
^
make[2]: *** [src/CMakeFiles/etcd-cpp-api.dir/__/v3/src/Action.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/etcd-cpp-api.dir/all] Error 2
make: *** [all] Error 2
To workaround, I opened the file Action.cpp and replaced GPR_ASSERT() with assert()

make install

At this point header files got installed in /usr/local/include/etcd/ and the library itself got installed as /usr/local/lib/libetcd-cpp-api.so

After this I still had to manually copy the header files generated from steps 4 and 5 to /usr/local/include/etcd/

A decent documentation with step-by-step instructions would be nice to begin with to encourage others to use this lib (assuming it works, I haven't come to that yet).
Thanks,
Sarat

Hello,
This library is useable. However, there are still some features not implemented(e.g. setting of multiple endpoints)
Comments on your compilation issues:
CATCH_INCLUDE_DIR
--> this is the directory where the catch.hpp is located This file is included in this repo. See https://github.com/nokia/etcd-cpp-apiv3/blob/master/catch.hpp
For the GPR_ASSERT error, did you follow the instructions in https://github.com/grpc/grpc/blob/release-0_14/INSTALL.md?
I will add building instructions.

Hi,
Please see inline ...
On Sun, Dec 11, 2016 at 12:59 PM, mauiarches<EMAIL_ADDRESS>wrote:

Hello,
This library is useable. However, there are still some features not
implemented(e.g. setting of multiple endpoints)

Any approximate timeline for this ?

Comments on your compilation issues:
CATCH_INCLUDE_DIR
--> this is the directory where the catch.hpp is located This file is
included in this repo. See https://github.com/nokia/etcd-
cpp-apiv3/blob/master/catch.hpp

I was able to get around this one by pointing to this directory.

For the GPR_ASSERT error, did you follow the instructions in
https://github.com/grpc/grpc/blob/release-0_14/INSTALL.md?

Yes, I did follow the instructions. Here is the "make install" output for
grpc
[eskon@ubuntu:~/grpc]sudo make install
[INSTALL] Installing public C headers
[MAKE]    Generating cache.mk
[STRIP]   Stripping libgpr.a
[STRIP]   Stripping libgrpc.a
[STRIP]   Stripping libgrpc_cronet.a
[STRIP]   Stripping libgrpc_unsecure.a
[INSTALL] Installing C pkg-config files
[INSTALL] Installing libgpr.a
[INSTALL] Installing libgrpc.a
[INSTALL] Installing libgrpc_cronet.a
[INSTALL] Installing libgrpc_unsecure.a
[STRIP]   Stripping libgpr.so.2.0.0-dev
[STRIP]   Stripping libgrpc.so.2.0.0-dev
[STRIP]   Stripping libgrpc_cronet.so.2.0.0-dev
[STRIP]   Stripping libgrpc_unsecure.so.2.0.0-dev
[INSTALL] Installing libgpr.so.2.0.0-dev
[INSTALL] Installing libgrpc.so.2.0.0-dev
[INSTALL] Installing libgrpc_cronet.so.2.0.0-dev
[INSTALL] Installing libgrpc_unsecure.so.2.0.0-dev
[INSTALL] Installing public C++ headers
[STRIP]   Stripping libgrpc++.a
[STRIP]   Stripping libgrpc++_cronet.a
[STRIP]   Stripping libgrpc++_reflection.a
[STRIP]   Stripping libgrpc++_unsecure.a
[INSTALL] Installing C++ pkg-config files
[INSTALL] Installing libgrpc++.a
[INSTALL] Installing libgrpc++_cronet.a
[INSTALL] Installing libgrpc++_reflection.a
[INSTALL] Installing libgrpc++_unsecure.a
[STRIP]   Stripping libgrpc++.so.1.1.0-dev
[STRIP]   Stripping libgrpc++_cronet.so.1.1.0-dev
[STRIP]   Stripping libgrpc++_reflection.so.1.1.0-dev
[STRIP]   Stripping libgrpc++_unsecure.so.1.1.0-dev
[INSTALL] Installing libgrpc++.so.1.1.0-dev
[INSTALL] Installing libgrpc++_cronet.so.1.1.0-dev
[INSTALL] Installing libgrpc++_reflection.so.1.1.0-dev
[INSTALL] Installing libgrpc++_unsecure.so.1.1.0-dev
[INSTALL] Installing grpc protoc plugins
[INSTALL] Installing root certificates
After this I tried to build etcd-cpp-api-v3
[eskon@ubuntu:~/etcd-cpp-apiv3]make
-- Boost version: 1.54.0
-- Found the following Boost libraries:
--   system
--   thread
--   locale
--   random
-- Configuring done
-- Generating done
-- Build files have been written to: /home/eskon/etcd-cpp-apiv3
Scanning dependencies of target etcd-cpp-api
[  3%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir/__/proto/kv.pb.cc.o
[  6%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir/__/proto/auth.pb.cc.o
[ 10%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir/__/proto/rpc.pb.cc.o
[ 13%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir/__/proto/rpc.grpc.pb.cc.o
[ 16%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/AsyncTxnResponse.cpp.o
[ 20%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/AsyncRangeResponse.cpp.o
[ 23%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/Transaction.cpp.o
[ 26%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/action_constants.cpp.o
[ 30%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/AsyncSetAction.cpp.o
[ 33%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/AsyncCompareAndSwapAction.cpp.o
[ 36%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/AsyncUpdateAction.cpp.o
[ 40%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/AsyncGetAction.cpp.o
[ 43%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/AsyncDeleteAction.cpp.o
[ 46%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/AsyncCompareAndDeleteAction.cpp.o
[ 50%] Building CXX object
src/CMakeFiles/etcd-cpp-api.dir//v3/src/Action.cpp.o
/home/eskon/etcd-cpp-apiv3/v3/src/Action.cpp: In member function ‘void
etcdv3::Action::waitForResponse()’:
/home/eskon/etcd-cpp-apiv3/v3/src/Action.cpp:26:36: error: ‘GPR_ASSERT’ was
not declared in this scope
GPR_ASSERT(got_tag == (void*)this);
^
make[2]: *** [src/CMakeFiles/etcd-cpp-api.dir//v3/src/Action.cpp.o] Error
1
make[1]: *** [src/CMakeFiles/etcd-cpp-api.dir/all] Error 2
make: *** [all] Error 2
[eskon@ubuntu:~/etcd-cpp-apiv3]
I changed that statement to assert() and moved on, not knowing where to
look for the definition of GPR_ASSERT. Hope that is good enough. Once build
went thru, I did "sudo make install" and see the lib in the right place
(but had to manually copy bunch of header files including v3/include to
/usr/local/include/etcd/v3 (I think make install is missing all these).
Although now I was able to successfully compile and install the lib, I am
unable to use it in my app. When my app is loading I see this error:
undefined symbol: _ZTVN12etcdserverpb5Watch4StubE
I am not sure what is going on but from the above build log I see that
proto/etcdserver.pb.cc is not compiled at all. Is this expected ? Where is
this supposed to be used ?
The way I am using it is:

There is a 3rd party app that provides some kind of plugin mechanism for
extensions in the form of a shared libraries
I am writing one such extension (which is a shared library as mentioned
above), and for now all it does is connects to etcd server

#2 is what I have control on and I am compiling that code as shared library
and this shared library has dependency on etcd-cpp-api-v3 library. So, the
3rd party app is loading my lib and during that time it fails by throwing
above undefined symbol error. Any idea what could be the issue ?
Thanks

I will add building instructions.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nokia/etcd-cpp-apiv3/issues/2#issuecomment-266307423,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APpcyfmTp5Py1NfvLq-68_rGb9HhUJZGks5rHGQXgaJpZM4LKAqd
.

Hi,
Regarding the GPR_ASSERT, it seems they changed the header file to where is it defined. It is now defined in grpc/support/log.h.
For the meantime, you can add #include <grpc/support/log.h> in v3/src/Action.cpp while fix is not yet committed.
I did "sudo make install" and see the lib in the right place
(but had to manually copy bunch of header files including v3/include to
/usr/local/include/etcd/v3 (I think make install is missing all these).
--> You don't need to add the v3/include files, since only those header files that are indicated in the make file should be used by the client and these are only the header files that will be the interface of the library to the client.
undefined symbol: _ZTVN12etcdserverpb5Watch4StubE
I am not sure what is going on but from the above build log I see that
proto/etcdserver.pb.cc is not compiled at all. Is this expected ? Where is
this supposed to be used ?
--> I'm still checking this. BTW, what boost version did you install?

On Mon, Dec 12, 2016 at 10:19 AM, mauiarches<EMAIL_ADDRESS>wrote:

Hi,
Regarding the GPR_ASSERT, it seems they changed the header file to where
is it defined. It is now defined in grpc/support/log.h.

[SK] Thanks .. will try this and let you know.

For the meantime, you can add #include <grpc/support/log.h> in
v3/src/Action.cpp while fix is not yet committed.
I did "sudo make install" and see the lib in the right place
(but had to manually copy bunch of header files including v3/include to
/usr/local/include/etcd/v3 (I think make install is missing all these).
--> You don't need to add the v3/include files, since only those header
files that are indicated in the make file should be used by the client and
these are only the header files that will be the interface of the library
to the client.

[SK] Without this, I get a compilation error. The top level file I included
in my code is /usr/local/include/etcd/Client.hpp and that file is including
the following:
#include "v3/include/Transaction.hpp"
#include "v3/include/AsyncTxnResponse.hpp"
#include "v3/include/Action.hpp"
and so my code doesn't compile as it is complaining about these missing
files. So I ended up copy v3/include to /usr/local/include/etcd/
undefined symbol: _ZTVN12etcdserverpb5Watch4StubE

I am not sure what is going on but from the above build log I see that
proto/etcdserver.pb.cc is not compiled at all. Is this expected ? Where is
this supposed to be used ?
--> I'm still checking this. BTW, what boost version did you install?

[SK] The boost version I am on is 1.54.0.
I used "nm" on my shared lib to see what other unresolved symbols are there
starting with "etcdserverpb" and see these.
[eskon@ubuntu:~/kea]nm app_hooks.so | grep "etcdserverpb" | grep "U"
U _ZTVN12etcdserverpb2KV4StubE
U _ZTVN12etcdserverpb5Lease4StubE
U _ZTVN12etcdserverpb5Watch4StubE
Thanks,
SK

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nokia/etcd-cpp-apiv3/issues/2#issuecomment-266508237,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APpcyQbd84EE8Vr7ebd4RO58SVqg3myqks5rHZAvgaJpZM4LKAqd
.

Hi,
Regarding the unresolved symbols, did you link your shared library to the etcd-cpp-api shared lib?

Hi,
Yes I did link with this lib. Here is the command I used:
g++ -std=c++11 -std=gnu++11 -Wno-write-strings -I . -I
/usr/local/include/etcd -L /usr/local/lib -letcd-cpp-api -fpic -shared -o
apphooks.so load_unload.cc  apphooks.cc version.cc
The issue seems to be only with few symbols (highlighted below) .. "nm" is
reporting them as U (unresolved)
eskon@ubuntu:~/kea>nm apphooks.so | \grep etcdserverp
0000000000017759 W
ZSt3getILm1EIPN12etcdserverpb5Watch4StubESt14default_deleteIS2_EEENSt9__add_refINSt13tuple_elementIXT_ESt5tupleIIDpT0_EEE4typeEE4typeERSB
000000000001760e W
ZSt3getILm1EJPN12etcdserverpb2KV4StubESt14default_deleteIS2_EEENSt9__add_refINSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeEE4typeERSB
000000000001786d W
ZSt3getILm1EJPN12etcdserverpb5Lease4StubESt14default_deleteIS2_EEENSt9__add_refINSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeEE4typeERSB
0000000000017759 W
ZSt3getILm1EJPN12etcdserverpb5Watch4StubESt14default_deleteIS2_EEENSt9__add_refINSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeEE4typeERSB
000000000021e960 V _ZTIN12etcdserverpb2KV13StubInterfaceE
000000000021e940 V _ZTIN12etcdserverpb5Lease13StubInterfaceE
000000000021e950 V _ZTIN12etcdserverpb5Watch13StubInterfaceE
0000000000019940 V _ZTSN12etcdserverpb2KV13StubInterfaceE
00000000000198c0 V _ZTSN12etcdserverpb5Lease13StubInterfaceE
0000000000019900 V _ZTSN12etcdserverpb5Watch13StubInterfaceE
000000000021e4e0 V _ZTVN12etcdserverpb2KV13StubInterfaceE

            U _ZTVN12etcdserverpb2KV4StubE*

000000000021e440 V _ZTVN12etcdserverpb5Lease13StubInterfaceE

            U _ZTVN12etcdserverpb5Lease4StubE*

000000000021e4a0 V _ZTVN12etcdserverpb5Watch13StubInterfaceE

            U _ZTVN12etcdserverpb5Watch4StubE*

The following are the ones that seem to be problematic:
[eskon@ubuntu:~/kea]nm apphooks.so | \grep etcdserverpb  | \grep " U"
U _ZTVN12etcdserverpb2KV4StubE
U _ZTVN12etcdserverpb5Lease4StubE
U _ZTVN12etcdserverpb5Watch4StubE
Thanks,
SK
On Tue, Dec 13, 2016 at 5:55 AM, mauiarches<EMAIL_ADDRESS>wrote:

Hi,
Regarding the unresolved symbols, did you link your shared library to the
etcd-cpp-api shared lib?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nokia/etcd-cpp-apiv3/issues/2#issuecomment-266744080,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APpcyUl8yHNwbWUP4Pw21BYHc9aDY2roks5rHqO2gaJpZM4LKAqd
.

g++ -std=c++11 -std=gnu++11 -Wno-write-strings -I . -I
/usr/local/include/etcd -L /usr/local/lib -letcd-cpp-api -fpic -shared -o
apphooks.so load_unload.cc  apphooks.cc version.cc

Can you also try to link with grpc++ shared library

Hello,
I ran nm in the etcd-cpp-api library and the following are there:

ZTVN12etcdserverpb2KV4StubE
ZTVN12etcdserverpb5Lease4StubE
ZTVN12etcdserverpb5Watch4StubE

Hi,
I linked to grpc++ but no success. The issue here seems to be that my
shared library (even though compiled with -letcd-cpp-api) is not pulling
this dependency when the final app is running. So, there are two options -
either modify the actual app's makefile to include etcd-cpp-ap.so or use
LD_PRELOAD env variable to launch the app (e.g.,
LD_PRELOAD=/usr/local/lib/libetcd-cpp-ap.so ). I tried the later and
the app was able to start fine. I will try to make few etcd calls and see
if things are working or not.
Thanks for all the help.
Regards,
SK
On Wed, Dec 14, 2016 at 7:41 AM, mauiarches<EMAIL_ADDRESS>wrote:

Hello,
I ran nm in the etcd-cpp-api library and the following are there:
ZTVN12etcdserverpb2KV4StubE
ZTVN12etcdserverpb5Lease4StubE
ZTVN12etcdserverpb5Watch4StubE
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nokia/etcd-cpp-apiv3/issues/2#issuecomment-267067069,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APpcyUp-_QpB1MUPr-4SXypWMDPgXQ1Nks5rIA4bgaJpZM4LKAqd
.

A quick question ... is the cluster support coming anytime soon ? Right now
we seem to be able to connect to only one etcd endpoint.
Thanks,
SK
On Wed, Dec 14, 2016 at 5:21 PM, SK<EMAIL_ADDRESS>wrote:

Hi,
I linked to grpc++ but no success. The issue here seems to be that my
shared library (even though compiled with -letcd-cpp-api) is not pulling
this dependency when the final app is running. So, there are two options -
either modify the actual app's makefile to include etcd-cpp-ap.so or use
LD_PRELOAD env variable to launch the app (e.g., LD_PRELOAD=/usr/local/lib/libetcd-cpp-ap.so
). I tried the later and the app was able to start fine. I will try to
make few etcd calls and see if things are working or not.
Thanks for all the help.
Regards,
SK
On Wed, Dec 14, 2016 at 7:41 AM, mauiarches<EMAIL_ADDRESS>wrote:

Hello,
I ran nm in the etcd-cpp-api library and the following are there:
ZTVN12etcdserverpb2KV4StubE
ZTVN12etcdserverpb5Lease4StubE
ZTVN12etcdserverpb5Watch4StubE
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nokia/etcd-cpp-apiv3/issues/2#issuecomment-267067069,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APpcyUp-_QpB1MUPr-4SXypWMDPgXQ1Nks5rIA4bgaJpZM4LKAqd
.

Hi,
No timeline yet. 😟
On Thu, Dec 15, 2016 at 2:46 AM SK<EMAIL_ADDRESS>wrote:

A quick question ... is the cluster support coming anytime soon ? Right now
we seem to be able to connect to only one etcd endpoint.
Thanks,
SK
On Wed, Dec 14, 2016 at 5:21 PM, SK<EMAIL_ADDRESS>wrote:

Hi,

I linked to grpc++ but no success. The issue here seems to be that my

shared library (even though compiled with -letcd-cpp-api) is not pulling

this dependency when the final app is running. So, there are two options

either modify the actual app's makefile to include etcd-cpp-ap.so or use

LD_PRELOAD env variable to launch the app (e.g.,
LD_PRELOAD=/usr/local/lib/libetcd-cpp-ap.so

). I tried the later and the app was able to start fine. I will try
to

make few etcd calls and see if things are working or not.

Thanks for all the help.

Regards,

SK

On Wed, Dec 14, 2016 at 7:41 AM, mauiarches<EMAIL_ADDRESS>

wrote:

Hello,

I ran nm in the etcd-cpp-api library and the following are there:

ZTVN12etcdserverpb2KV4StubE

ZTVN12etcdserverpb5Lease4StubE

ZTVN12etcdserverpb5Watch4StubE

—

You are receiving this because you authored the thread.

Reply to this email directly, view it on GitHub

<
https://github.com/nokia/etcd-cpp-apiv3/issues/2#issuecomment-267067069>,

or mute the thread

<
https://github.com/notifications/unsubscribe-auth/APpcyUp-_QpB1MUPr-4SXypWMDPgXQ1Nks5rIA4bgaJpZM4LKAqd

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nokia/etcd-cpp-apiv3/issues/2#issuecomment-267213086,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAvNojIrBpWoRCpHCjAd0jbtHaCacDzNks5rIJv4gaJpZM4LKAqd
.

Hi,
I am trying to run this library.
-- Install configuration: ""
-- Installing: /usr/local/lib/libetcd-cpp-api.so
-- Set runtime path of "/usr/local/lib/libetcd-cpp-api.so" to ""
-- Up-to-date: /usr/local/include/etcd/Client.hpp
-- Up-to-date: /usr/local/include/etcd/SyncClient.hpp
-- Up-to-date: /usr/local/include/etcd/Response.hpp
-- Up-to-date: /usr/local/include/etcd/Value.hpp
-- Up-to-date: /usr/local/include/etcd/Watcher.hpp

Now I just tried to initialize etcd client using this code:

#include "etcd/Client.hpp"

int main(){
    etcd::Client etcd("http://<IP_ADDRESS>:4001");
    return 0;
}

My command line command was:

g++ -std=c++11 -std=gnu++11 -I /usr/local/include/etcd/ -I ~/etcd-cpp-apiv3/ -L/usr/local/lib/* -letcd-cpp-api -o testing.o test.cpp
But I am getting an error :
/tmp/ccmvVYqp.o: In function `main':
test.cpp:(.text+0x1c1): undefined reference to `etcd::Client::Client(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/ccmvVYqp.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cpp:(.text+0x27c): undefined reference to `boost::system::generic_category()'
test.cpp:(.text+0x288): undefined reference to `boost::system::generic_category()'
test.cpp:(.text+0x294): undefined reference to `boost::system::system_category()'
/tmp/ccmvVYqp.o: In function `pplx::details::_TaskCollectionImpl::_RunTask(void (*)(void*), void*, pplx::details::_TaskInliningMode)':

Most probably I need to add few more header files in my test.cpp . Can you please give me an example to run etcd client ?
Thanks

maybe you need link boost as well, below is the command i used to build, which works, only FYI
.
g++  -std=c++11 -std=gnu++11 -I ../../cppapiv3/include -I ../etcd-cpp-api -Wl,-Bdynamic  -L ../../cppapiv3/lib -lgrpc++  -lboost_system  -l cpprest  -L ../../cppapiv3/etcd-cpp-api -letcd-cpp-api       -L /lib64 -lssl -lcrypto  EtcdTest.cpp

Hi @danielzhanghl Thanks for your quick reply. As you have said to linked with boost library, I have modified the command into this :
g++ -std=c++11 -std=gnu++11 -I v3/include/ -I ../etcd-cpp-apiv3/ -Wl,-Bdynamic -lgrpc++ -lboost_system -l cpprest -L ../etcd-cpp-apiv3/ -letcd-cpp-api -L /lib64/ -lssl -lcrypto -L ~/boost_1_64_0/ -L ~/boost_1_64_0/stage/lib/ test.cpp
But unfortunately, still I am getting the same error :
/tmp/ccrtD16r.o: In function `main':
test.cpp:(.text+0x1c1): undefined reference to `etcd::Client::Client(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/ccrtD16r.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cpp:(.text+0x27c): undefined reference to `boost::system::generic_category()'
test.cpp:(.text+0x288): undefined reference to `boost::system::generic_category()'
test.cpp:(.text+0x294): undefined reference to `boost::system::system_category()'
/tmp/ccrtD16r.o: In function `pplx::details::_TaskCollectionImpl::_RunTask(void (*)(void*), void*, pplx::details::_TaskInliningMode)':
test.cpp:(.text._ZN4pplx7details19_TaskCollectionImpl8_RunTaskEPFvPvES2_NS0_17_TaskInliningModeE[_ZN4pplx7details19_TaskCollectionImpl8_RunTaskEPFvPvES2_NS0_17_TaskInliningModeE]+0x40): undefined reference to `pplx::get_ambient_scheduler()'
/tmp/ccrtD16r.o: In function `boost::asio::error::get_system_category()':
test.cpp:(.text._ZN5boost4asio5error19get_system_categoryEv[_ZN5boost4asio5error19get_system_categoryEv]+0x5): undefined reference to `boost::system::system_category()'

seems your boost did not install system component, refer to the document, they used below boost component.

You can use:
./bootstrap.sh --with-libraries=system,thread,locale,random,chrono,regex,filesystem
./b2 install

Is this project still being maintained?  I don't see any updates for a year, and I can't get it to build.

when i make this library,i got following error.Anyone met this problem?
/usr/local/include/google/protobuf/port_def.inc:540:1: error: ‘PROTOBUF_EXPORT_TEMPLATE_TEST_MSVC_HACK_DEFAULT’ was not declared in this scope
In file included from /usr/local/include/google/protobuf/stubs/strutil.h:41:0,
from /usr/local/include/google/protobuf/io/coded_stream.h:14,
from /root/etcd-cpp-apiv3/proto/kv.pb.h:23,
from /root/etcd-cpp-apiv3/v3/include/KeyValue.hpp:4,
from /root/etcd-cpp-apiv3/etcd/Value.hpp:7,
from /root/etcd-cpp-apiv3/etcd/Response.hpp:7,
from /root/etcd-cpp-apiv3/etcd/Client.hpp:4,
from /root/etcd-cpp-apiv3/src/Client.cpp:2:

Hi @mbotner,

Is this project still being maintained? I don't see any updates for a year, and I can't get it to build.

The project is now maintained by me.

After installing cpprest sdk (the latest version), just build this library with cmake should enough.
mkdir build && cd build
cmake ..
make -j

I will update the build & install doc, and may consider import cpprest sdk as a submodule to help the building process.

Thanks!  Unfortunately, we had to abandon the use of etcd because the
c++ API was so difficult to build.
Mark
On Tue, Sep 29, 2020 at 12:09 PM Tao He<EMAIL_ADDRESS>wrote:

After installing cpprest sdk (the latest version), just build this library with cmake should enough.
mkdir build && cd build
cmake ..
make -j
I will update the build & install doc, and may consider import cpprest sdk as a submodule to help the building process.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks! Unfortunately, we had to abandon the use of etcd because the c++ API was so difficult to build. Mark
…

Now it shouldn't be a problem, with current etcd-cpp-apiv3. I promise :)

Fixed. In README.md there's a section about how to install dependencies and build & install this library.

Thanks!  If I get back to using etcd, I'm sure I'll make use of that.
Mark
On Wed, Sep 30, 2020 at 12:49 PM Tao He<EMAIL_ADDRESS>wrote:

Fixed. In README.md there's a section about how to install dependencies
and build & install this library.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3/issues/2#issuecomment-701544201,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD4CE5A7H7JGUV3JHLJEOFTSINVRLANCNFSM4CZIBKOQ
.


No Legal Name

The real name field is empty under the profile pic — and no way to enter it.

I mistyped it on registration and now there is no way to edit.

In my case I was able to register without it 🤷🏻♂ Using another 3rd party tool. And now my name field is just empty..

Hello everyone! Updating/changing your name will be possible after PR #90 will be merged.

I confirm that issue is resolved in 1.0.7 release. Thank you.


Outputpolyhedron differs on repeated runs

What steps will reproduce the problem?
1. untar the two OBJ files
2. run "intersect --triangulate" on the objects using A_MINUS_B or B_MINUS_A

What is the expected output? What do you see instead?
Output should always give the same number of faces.  On different runs, the
output has different number of faces.

What version of the product are you using? On what operating system?
Linux Ubuntu 9.09, downloaded tarball on 6-2-2009.

Please provide any additional information below.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 6 Jun 2009 at 2:46

See issue 9.

Original comment by<EMAIL_ADDRESS>on 9 Jun 2009 at 1:12

Changed state: Duplicate

Original comment by<EMAIL_ADDRESS>on 11 Jun 2009 at 4:29


chore: remove unnecessary empty css styling blocks

Description

Removes empty css styling blocks

Related issue(s)
Fixes https://github.com/asyncapi/EDAVisualiser/issues/36

/rtm

@all-contributors please add @AnishKacham for code


Q: is it intentional that images smaller than the requested width/height get scaled up? (iOS)

The doc states the width and height parameter specify the "MAX width and height" of the output image:
    // max width and height to allow the images to be.  Will keep aspect
    // ratio no matter what.  So if both are 800, the returned image
    // will be at most 800 pixels wide and 800 pixels tall.  If the width is
    // 800 and height 0 the image will be 800 pixels wide if the source
    // is at least that wide.
    width: int,
    height: int,

However, the implementation (iOS) actually scales up (upscales) images smaller than the specified width and height.
What is the intention for the width and height parameters? Are they:

the exact width and height, aspect ratio maintained. I.E. Always scale if width or height is specified. Scale such that at least one of output image's width or height exactly matches the requested width or height while the other is <= the requested value such that the input width/height == the output width/height. This is the current (iOS) implementation.
OR are they intended to be the maximum width and height, aspect ratio maintained. I.E. If the source width/height exceeds the requested width/height, then scale as above, otherwise do nothing. This is what I think the current documentation means.

For my purposes, I want the latter. If the image is smaller than the specified width/height, I don't want it to be scaled. If this is the intended semantics, I have a pull-request ready with the fix for iOS.

Scaling up images is not intentional.  Would love that pull request.


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/71338

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/107862


Update port-forward example used

User different ports to make the example more understandable

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Please delete this note before submitting the pull request.
For 1.15 Features: set Milestone to 1.15 and Base Branch to dev-1.15
For Chinese localization, base branch to release-1.14
For Korean Localization: set Base Branch to dev-1.14-ko.<latest team milestone>
Help editing and submitting pull requests:
https://kubernetes.io/docs/contribute/start/#improve-existing-content.
Help choosing which branch to use:
https://kubernetes.io/docs/contribute/start#choose-which-git-branch-to-use.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

@cloudmelon There's a fundamental problem with some of your changes. You can't just change the port that a container listens on. This page refers to a redis container that listens on port 6379. So if you forward to redis-master-xxx, you must forward to port 6379. You have some flexibility in choosing the local port that you forward from. I'd suggest using a local port number that is not in the list of well-known ports and not in the list of registered ports. For example, 50000.
kubectl port-forward redis-master-xxx 50000:6379
Forwarding to a Service has other concerns. I'll comment on that later.

@cloudmelon, Here's the Service used in this topic:
apiVersion: v1
kind: Service
metadata:
...
name: redis-master
...
spec:
clusterIP: <IP_ADDRESS>
ports:

port: 6379
protocol: TCP
targetPort: 6379
...

Notice that both port and targetPort are 6379. The targetPort field must be 6379, because that the port that the redis container listens on. The port field is arbitrary; it just happens toe be 6379 because of the way this Service was created.
So when you forward a local port to this Service, you must forward to the port value, in this case 6379.
kubectl port-forward svc/redis-master 50001:6379

@cloudmelon 👋 Thanks for this PR. Given the feedback, it sounds like it's best to close this and take a different approach.
/close


Prepare release r1.3

What type of PR is this?

subproject management

What this PR does / why we need it:
Prepare patch release r1.3

update the modified OAS files (compared to r1.2)
update change log

Which issue(s) this PR fixes:
Special notes for reviewers:
Changelog input
Additional documentation

Review findings done, the review by https://github.com/orgs/camaraproject/teams/release-management_maintainers was already requested

@camaraproject/release-management_maintainers kindly asking for final review

In addition to the PR comments, I saw some further points:
README.me:

line 10: "API family" --> "APIs"
line 14: "customer" --> "API consumer"
line 15: "has lost connectivity" --> "is not connected"

@bigludo7 now it should be perfect 🙂

Great ! OK from Release Management /LGTM


Finalize javascript_nodejs/01.Console-EchoBot [DO NOT MERGE]

[x] Is numbered and named correctly and following the spec
[x] All files have been spell checked
[x] All style cop/ linting issues have been addressed
[x] Include all DCR changes
[x] Does not use mainDialog unless that file actually extends Dialog/ ComponentDialog
[x] Compiles with latest packages
[x] Runs per instructions in README
[x] README to include

[ ] msbot clone steps
[ ] Tools install/ uninstall
[x] Concise set of steps to run the sample

Not applicable:

[ ] Explicit state save (no state in this sample)
[ ] onTurnError at adapter (console adapter doesn't have this)
[ ] Method name changes begin, end etc (no dialogs)
[ ] Add commented out code to use blob storage (no storage of any kind used)
[ ] Update to look for production/ local (bot configuration)
[ ] Include .env or appsettings.json or web.config with botFilePath and botFileSecret (no config is present)
[ ] C# sample -- Include .bot file in the build output
[ ] All samples include the latest botfile (no "secretKey" field; replaced with "padLock"). Use latest MSBOT off the tools MyGet feed to generate the bot file
[ ] Deployment scripts folder has been cleaned up and only includes msbot export files

I think this is ready - it is the simplest one and so a lot of the checklist items don't apply.

I'm not sure what to do with the msbot clone steps or deployment scripts in this case. is a .bot file appropriate here?


Some changes

Hi,
Some issues notices:

All declarations must be at the start of the method, before any X++ statements - it's not valid for D365 anymore..
X++ and C++ Samples - C++ should be replaced to C#

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

ID: d90f60ed-891b-151d-c963-522a1b0b1c17
Version Independent ID: f9ab9cef-beda-06fb-c5c0-dce07969fbd5
Content: X++ and C# comparison - Finance & Operations | Dynamics 365 | #MSDyn365FO
Content Source: articles/dev-itpro/dev-ref/xpp-cs-comparison.md
Service: dynamics-ax-platform
GitHub Login: @RobinARH
Microsoft Alias: robinr

Thanks for your comments. We have updated the topic and changes will be reflected later today.


Fix ISR, SSG and SSR learn more links

Hi,
I might be wrong, but I think the "Learn More" href on the ISR, SSG and SSR pages are incorrect.
It is currently linked to the "Loading UI" documentation, but I think the "Data Fetching" docs explain it better.
Thank you for this playground. It explains really well the new features of NextJS 13

@relferreira excellent catch! Thank you!


Make config writer use XmlWriter for disk write

... instead of doing XmlWriter -> string -> disk.

This guarantees that the file encoding and the XML declaration are
properly in sync.
Adds a saveNormalizedXml function to Utils to facilitate this.
Adds a test to UtilsSpecs for the new function.
Updates ConfigFile.saveConfigNode to use the new function.
Should fix #2003 more permanently.
Removes the previous fix in commit d1d06b7

cool. thanks!


⚠ Bofrost.es has degraded performance

In 6a279f0, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1473 ms

Resolved: Bofrost.es performance has improved in a2ca914 after 6 minutes.


During migration, remove Index description from Articles

The log can appear the same way as for Sections, ie link along with the original description text.

@ChrisMarsh82 if this is an easy add let's prioritize it, this will save us a lot of time during migrations.

Just for clarification, the is referring to the index page description of articles, which is taken from the article subtitle in V1, correct?
The aim is to not take the subtitle of the V1 article as index page description in V2, and instead issue a warning during the report?


implement signer and verifier that prefixes message

closes: https://github.com/spacemeshos/go-spacemesh/issues/3503

added option to prefix message before signing and verifying
signing.ExtractPublicKey replaced ed25519.ExtractPublicKey, so that we can use prefixed verifier

more efficient version won't allocate new buffer when message is being prefixed, but that requires changes in spacemesh/ed25519 library

bors try

bors try

bors merge

bors merge


Conflict security change

Hello,
This change might sounds stupid, but it prevents an haxe compiler problem when the Main class started with a "create" package.
"Type.getClassFields (::APP_MAIN::))"   was replaced by  "Type.getClassFields (create.Main))"  and so conflicted with create method.
Thomas

Just solved this a different way, give it a try and let me know if it works for you :smile:


fix: Updating the window height on orientation change event.

@AdelRedaa97 @bdtren @raychanks Review this when you can.


Implement Ladder Side-Tuning

Important Code Lines to check:
-How to modify BloomStack
-LST: what is "side_*"?


[koa-shopify-auth] Fixes ITP 2.3 and Safari 13.1 enable cookies loop

Description
Package: koa-shopify-auth
Fixes https://github.com/Shopify/quilt/issues/1387
Intelligent Tracking Prevention (ITP) prevents websites from tracking users and with Safari 13.1 blocking all third-party cookies by default, we're finding that users are experiencing an endless loop of seeing the Enable Cookies screen, clicking the button, and being redirected back to the Enable Cookies screen again. This is due to the fact that we are not currently using the Storage Access API by calling document.requestStorageAccess() which is the way to ensure these cookies can now be saved/accessed.
Type of change
We are using some of the code implemented by shopify_app as this is already working and thoroughly tested there.
We're keeping the Enable Cookies page which is surfaced at the top-level:

Once the user clicks the button they will be redirected to a new page in an iframe which will make the document.requestStorageAccess() call needed to save the cookies.

Older browsers/Chrome will probably not see either of these screens, depending on the version checking done in the StorageAccessHelper. Newer Firefox users will see the Enable Cookies screen. Newer Safari users will see both the Enable Cookies screen and the Browser screen. Once the flow has been completed Older/Chrome/Firefox users shouldn't see any other screens when accessing their apps. However, newer Safari users will always see the Browser screen before they can access the app.
New Safari Flow:

[x]  Patch: Bug/ Documentation fix (non-breaking change which fixes an issue or adds documentation)
[ ]  Minor: New feature (non-breaking change which adds functionality)
[ ]  Major: Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

[x] I have added a changelog entry, prefixed by the type of change noted above

Can you please add a changelog update for this package.

The redirect always goes to "/auth" now on safari, for example.  In our case, we set the prefix property, and the redirect causes a 404.  By prefix, we mean we use the "prefix" in the example provided for koa-shopify-auth...
app.use(
  shopifyAuth({
    // if specified, mounts the routes off of the given path
    // eg. /shopify/auth, /shopify/auth/callback
    // defaults to ''
    prefix: '/shopify',

In the past we could use the referer (sic) to retrieve the path, but now that this redirect happens client side, we no longer receive/have access the referer in order to patch this up.  Any way to preserve or send along the prefix?


How to store to private gitlab

Preflight Checklist

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Describe the bug
I want to privatize the deployment of Drawio with Docker，And configure the GitLab private storage
I have read all the other issues，The following environment variables are configured：
- name: DRAWIO_BASE_URL
value: "https://draw.mydraw.com"
- name: DRAWIO_GITLAB_URL
value: "https://gitlab.mygitlab.com"
- name: DRAWIO_GITLAB_ID
value: "422b89338c77a259fe5e778b852278321a630f338934bc5bd097bf8454237613"
- name: DRAWIO_CSP_HEADER
value: "default-src 'self'; script-src 'self' 'unsafe-inline'; connect-src 'self' https://gitlab.mygitlab.com; img-src * data:; media-src * data:; font-src * about:; style-src 'self' 'unsafe-inline';"
But it will eventually jump to the official Gitlab address:https://gitlab.com
The other problem is how to store to private gitlab

draw.io version 14.4.9

I was desperate for someone to answer my questions

I want someone to communicate with me about this problem

Why delete my question？

I didn't delete your question, your question is still there. However, your inappropriate demands for attention were deleted.

I didn't delete your question, your question is still there. However, your inappropriate demands for attention were deleted.

So please answer my question

No.

awesome


Fix 'edge_ip_connectivity' state persistence

Fixes #1500
This PR fixes the edge_ip_connectivity value from not being stored in the terraform state when being read.
Tested with the resource below and was able to get a No changes after applying and running another plan. As well as after importing the resource.
resource "cloudflare_spectrum_application" "myapp-east-sfe" {
  ip_firewall    = true
  origin_port    = 25
  protocol       = "tcp/25"
  proxy_protocol = "v1"
  tls            = "off"
  traffic_type   = "direct"
  edge_ip_connectivity = "ipv4"
  zone_id        = "redacted"
  dns {
    name = "myapp-test-spectrum.redacted.net"
    type = "CNAME"
  }
  origin_dns {
    name = "myapp-test-spectrum.redacted.net"
  }
}

Ah gotcha! Thought it was the Issue number.
Ill add that test in too :+1:

acceptance tests are passing locally
TF_ACC=1 go test $(go list ./...) -v -run "^TestAccCloudflareSpectrumApplication_" -count 1 -parallel 1 -timeout 120m -parallel 1
?   	github.com/cloudflare/terraform-provider-cloudflare	[no test files]
=== RUN   TestAccCloudflareSpectrumApplication_Import
=== PAUSE TestAccCloudflareSpectrumApplication_Import
=== RUN   TestAccCloudflareSpectrumApplication_Basic
--- PASS: TestAccCloudflareSpectrumApplication_Basic (13.27s)
=== RUN   TestAccCloudflareSpectrumApplication_OriginDNS
--- PASS: TestAccCloudflareSpectrumApplication_OriginDNS (11.70s)
=== RUN   TestAccCloudflareSpectrumApplication_OriginPortRange
--- PASS: TestAccCloudflareSpectrumApplication_OriginPortRange (11.55s)
=== RUN   TestAccCloudflareSpectrumApplication_Update
--- PASS: TestAccCloudflareSpectrumApplication_Update (20.26s)
=== RUN   TestAccCloudflareSpectrumApplication_CreateAfterManualDestroy
--- PASS: TestAccCloudflareSpectrumApplication_CreateAfterManualDestroy (23.64s)
=== RUN   TestAccCloudflareSpectrumApplication_EdgeIPConnectivity
--- PASS: TestAccCloudflareSpectrumApplication_EdgeIPConnectivity (11.32s)
=== CONT  TestAccCloudflareSpectrumApplication_Import
--- PASS: TestAccCloudflareSpectrumApplication_Import (15.29s)
PASS
ok  	github.com/cloudflare/terraform-provider-cloudflare/cloudflare	107.439s
?   	github.com/cloudflare/terraform-provider-cloudflare/tools/cmd/changelog-check	[no test files]
?   	github.com/cloudflare/terraform-provider-cloudflare/tools/cmd/maintainer-only-file-check	[no test files]
?   	github.com/cloudflare/terraform-provider-cloudflare/tools/cmd/tf-log-check	[no test files]
?   	github.com/cloudflare/terraform-provider-cloudflare/version	[no test files]

thank you @kireledan for this one!


Bump version for KubeVirt and Harvester

Related: harvester/harvester#1455
Harvester vm builder now set resources.limits instead of
resources.request to respect project/namespace's resource quota
setting.
TODO

[x] wait for harvester/harvester#1543 to pin the dependency version

Will need to cut a new release and validate it on the Rancher side, if everything works please help to bump the docker-machine-driver version as per https://github.com/rancher/rancher/blob/6ce0462d807105a553d0a5062998fa94f1c588ca/package/Dockerfile#L40


fix: ensure tags are handled by the generated clients

Hey, I just made a Pull Request!
Discord thread: https://discord.com/channels/687207715902193673/1034089724664610938/1309619723729768448
By default, the openAPI generator creates an API file per tag, and then places operations with those tags in the various files - duplicating if necessary. My initial testing didn't use any tags, so I didn't stumble on this behavior. This PR updates our rendering to use SupportingFiles instead of the API templates to directly access apiInfo and render all tags into a single API class instead of separating it.
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

@Rugvip We use the generated server router in createEventBusRouter in the events-backend, so we'd want to keep those files as well

@aramissennyeydd Hey there, quick bug I found with this. If you have tags enabled for everything in your OpenAPI yaml spec, the plugins/plugin-backend/src/schema/openapi/generated/apis/index.ts file will still try to export export * from './DefaultApi.server'; which won't exist since everything will exist in a tagged file.


How to download   pre-trained  model   with  aliyun

Recently,I want  to  compare   mmdetection  with  detection2.  When  I  replace https://s3.ap-northeast-2.amazonaws.com/open-mmlab with https://open-mmlab.oss-cn-beijing.aliyuncs.com ,  it does  not  down  auto  Automatically.

We have not synchronized models from aws to aliyun yet.

Thank you for your reply. I  want  to know  when  can  I download  from  the  aliyuncs?  Where  can  I  download?   Thank  you.


Update sys-query-store-runtime-stats-transact-sql.md

Adding information that the first_execution_time and last_execution_time refers to the end time of the query execution.

@olahallengren : Thanks for your contribution! The author, @stevestein, has been notified to review your proposed change.

@olahallengren - Thanks for making this update!
#sign-off


BackStackEntry extension "path" throws an exception.

Using the path extension function throws: Cannot inline bytecode built with JVM target 11 into bytecode that is being built with JVM target 1.8. Please specify proper '-jvm-target' option.

Which jvm target you're using? PreCompose requires jvm target 11 in order to works

Which jvm target you're using? PreCompose requires jvm target 11 in order to works

Ah that makes a lot of sense. Would be great if we could be notified of that somewhere in the readme, unless I missed it. Nontheless, thanks!


feat(jsonwebtoken): support wasm32-wasi target

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

#798  👈
#797
main

This stack of pull requests is managed by Graphite.

Merge activity

Feb 28, 10:50 PM EST: @Brooooooklyn started a stack merge that includes this pull request via Graphite.


Drop support for Node.js < 14

Fixes #284

Codecov Report
Base: 100.00% // Head: 100.00% // No change to project coverage :thumbsup:

Coverage data is based on head (ba3d480) compared to base (df7a20a).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #285   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           78        78
  Lines          775       775
  Branches       129       129
=========================================
  Hits           775       775

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

I saw peopler use
chore!: and feat!:
https://github.com/search?q=drop+support+node.js&type=commits


contribute c++ code DataIter to support multi-formated-feature and multi-storage and multi-label sample of recommend?

In recommendation, there appear many features:

dense features, for instance, ctr, item exposure, item click, item statis features, etc.
one-hot categorical features, for instance, user's network, user's gender, item_id to score
mulit-hot categorical features, for instance, user profiles which describes interest, and there exists much interests for a user. So the length of the multi-hot categorical features is variable.
The sample can be as followed.

The row is splited by ^A(\001). There are five columns. The first column is label, supporting multi labels. And the second column is dense feature, and the third column is categorical feature, and the the fourth column is multi-hot categorical feature which can be splited by comma , and the fifth column is sparse feature which is support wide input for google wide and deep model.

The sample contains many formated features which are storaged by csv or sparse. So it is complicated. To high performance parse the sample, i implent c++ DataIter. Train at gpu will not be hold back by cpu parsing sample.
May i contribute the code to mxnet?

cc @zhreshold

@moveforever Your contribution is highly appreciated! Do you already have the code available in forms that can be reviewed? Or do you have some design doc that we can view?

i am merging the DataIter to newest mxnet source code, and wait a minute, i will submit pull request later.

@zhreshold i am merging the DataIter to newest mxnet source code, and  i will submit pull request later.

@zhreshold  i am merging the DataIter to newest mxnet source code, and i will submit pull request later.

i am merging the DataIter to newest mxnet source code, and i will submit pull request later.

i add some code from 3rdparty/dmlc-core to mxnet/src/io.

support multi-format features

i add std::vector<UnitData > extra(a data struct to support multi-format features in a row) as followed. UnitData can support fixed length features(dense features or one-categorical features), and also can support variable length features(multi-hot features)

template<typename IndexType, typename DType = real_t>
class UnitData {
 public:
  /*! \brief length of the sparse vector */
  size_t length;
  /*!
   * \brief index of each instance
   */
  const IndexType *index;
  /*!
   * \brief array value of each instance, this can be NULL
   *  indicating every value is set to be 1
   */
  const DType *value;
};

support multi-label

we only  add label_width

my c++ code is in https://github.com/moveforever/mxnet/commits/recomm_data_iter.
i also mend part of dmlc-code where is in https://github.com/moveforever/dmlc-core-recomm_data_iter/commit/7aa77953799d0ac152ddc5d3d32bf36988bbac36.
@zhreshold

The RMFIter unitest is in https://github.com/moveforever/dmlc-core-recomm_data_iter/tree/master/unitest

@moveforever Do you mind open a PR to track the discussion? BTW, the changes seems to be incompatible with the existing API in MXDataIter and c_api

i only add new
ok, i open a pr. i have a confused question:

Part code of dmlc-core are mended, so in the pr it can't pass build.


question: apt-proxy equivalent for NixOS?

Issue description
When building docker images from scratch repeatedly, I am hitting cache.nixos.org quite hard (because the store in inside the docker image as opposed to on the host). Is there a way to setup a proxy on NixOS such that I don't do this repeatedly? I.e., I just want to have a 100GB cache or so.

A caching proxy would probably do the trick.  IIRC someone implemented one specifically for Nix (at least experimentally).
Nix 2 has a flag for binary-stores to use a local path for caching nars-- undocumented AFAIK, and perhaps intentionally undocumented.  But might help: https://github.com/NixOS/nix/blob/47ad88099b1cd2b19bdf3eef35c21baf35cc7e82/src/libstore/binary-cache-store.hh#L21
Using that as a parameter to the binary cache store of cache.nixos.org, pointed at a shared volume mounted from host? Something like that might do the trick.  YMMV, good luck!

You might be interested:
https://discourse.nixos.org/t/ann-eris-a-simple-binary-cache-server/1265


Multiple Nagios servers

Great project!
Question: How do you add multiple Nagios servers?

It's not possible at the moment to add more than one nagios server, but it is something I've been meaning to look at.
Do you have any ideas on how you would like it presented graphically?

Oh right, check_mk is a really good web front that aggregates a number of nagios servers, we use it with 4 servers. Critical alerts are always considered the most important thus at the top. You can also split alerts up per site (nagios host) but I don't know anyone that gets value from that. I think the best starting place would just be to aggregate the alerts from multiple nagios hosts.


Glob patterns not finding documents when using it as an argument to DirectoryLoader

System Info
I'm using langchain 0.0.218 in python 3.10.0 and when I use glob patterns as a direct argument to initialize the class this does not load anything. e.g. DirectoryLoader(path = root_dir + 'data', glob = "**/*.xml")
But when I use it in loader_kwargs it works perfect.
e.g. DirectoryLoader(path = path, loader_kwargs={"glob":"/*.xml"}
May this be a bug that when class is initialized in the line?https://github.com/hwchase17/langchain/blob/master/langchain/document_loaders/directory.py#L33
It seems to always be set as "/[!.]*" when using it as an arg but not when using it inside loader_kwargs
Who can help?
@eyurtsev
Information

[ ] The official example notebooks/scripts
[X] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[X] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction

Make a directory called data
Inside that directory store all kind of supported documents  (docx, text, etc) excepting -for example- xml files and also a folder that only contains all the xml files
Use loader = Directoryloader = (path = root_dir + 'data', glob = "**/*.xml")
execute loader.load() will not load any documents

Then use loader = DirectoryLoader(path = path, loader_kwargs={"glob": "**/*.xml"}
loader.load() and will work perfectly
Expected behavior
Must work using it like loader = Directoryloader(path = root_dir + 'data', glob = "**/*.xml")
NOTE This happens with all kind of glob patterns passed through glob argument. It does not has to do with the file extension or something.
Let me know if you need more info :)

Not sure if this is the expected behaviour

Very sure it isnt. The documentation itself instructs to use it directly.

I'll be contributing in this issue then...


Bazel genproto Java: supply 'files' to give genproto a FileProvider [phab:D193]

Created by schroederc at 2015-04-16 20:49:33:
The FileProvider allows java_library/java_binary targets to properly
gather transitive genproto jars into their classpath.  This is mostly a
workaround since Skylark doesn't seem to allow rules to properly declare
their own JavaCompilationArgsProvider instead.

zarko accepted this revision at 2015-04-16 20:53:30

schroederc closed via commit 514870d706e91afae10716ad9bb387e1eb2b3953 at 2015-04-16 20:54:03


Go to v0.10.0

We should release a new version of CTBase.jl. Before doing that, we can finalise some issues:

[ ] https://github.com/control-toolbox/CTBase.jl/issues/155. No more Index type for the constraints.
[x] https://github.com/control-toolbox/CTBase.jl/issues/152. I think that this issue is ok. Do we close it?
[ ] https://github.com/control-toolbox/CTBase.jl/issues/151. We have to make a decision. Note that in State, one day there will be also the Matrix type. I like to keep these aliases since we need unions of types.
[ ] https://github.com/control-toolbox/CTBase.jl/issues/144. The new version can be done before this one is closed I guess.
[ ] https://github.com/control-toolbox/CTBase.jl/issues/142. The new version can be done before this one is closed I guess.
[ ] https://github.com/control-toolbox/CTBase.jl/issues/137. Maybe we can add getters for CTDirect.
[ ] https://github.com/control-toolbox/CTBase.jl/issues/128. We have to make a decision.
[ ] https://github.com/control-toolbox/CTBase.jl/issues/124. Add some documentation.
[ ] https://github.com/control-toolbox/CTBase.jl/issues/122. Can we close?
[ ] https://github.com/control-toolbox/CTBase.jl/issues/114. We may check if it is better to use pre-allocation.
[x] https://github.com/control-toolbox/CTBase.jl/issues/101. @ocots should take a look.
[ ] https://github.com/control-toolbox/CTBase.jl/issues/71. There is some documentation to add and take a look at this one.
[ ] https://github.com/control-toolbox/CTBase.jl/issues/25. Do we close the issue?

@jbcaillau Pin.

Before doing the new release:

fix bug: https://github.com/control-toolbox/CTBase.jl/issues/122

Ok, I think I'm done with updating CTDirect for CTBase 0.10. Release 0.7 should follow shortly :)


[analyzer] completion.getSuggestions2 does not show local variables if called right before variable assignment

Issue reproduced with:
Dart SDK version: 2.17.5 (stable) (Tue Jun 21 11:05:10 2022 +0200) on "windows_x64"
Dart SDK version: 2.18.0-238.0.dev (dev) (Wed Jun 29 13:41:53 2022 -0700) on "windows_x64"

With IntelliJ IDEA 2022.1.3 (Community Edition) using Dart plugin version 221.5921.27.
Problem
When doing the following code:
void main() {
  String someVariable = 'A';
  String anotherVariable = 'B';

  someVariable = 'C';
}

The auto completion seems to ignore locale variables if trying to get suggestions about someVariable and anotherVariable before someVariable = 'C';:

While it works fine if doing it after the variable assignment:

I have also tested with global variables and that also works fine. So it seems to be specific for local variables and it does not matter what variable the assignment are about:

For verifying this issue is not about IntelliJ, I have tried using --instrumentation-log-file against the Analyzer Server spawned though IntelliJ Dart plugin, and I can see it gets suggestions using completion.getSuggestions2 and does indeed miss the local variables when doing the call at a position before the variable declaration.
I did also test with VS Code with Dart v3.44.0 but it seems it uses Language Server Protocol with the method textDocument/completion which does not seem to have the problem when I enable the --instrumentation-log-file logging and tries to reproduce the issue. It might also be for different reasons but in the end, I could not reproduce the issue in VS Code.

I can no longer reproduce the issue in 2.19.0-146.0.dev (2.18.0 does have the issue), so I close this issue.

Most probably it was fixed by 92cdc0b380d4af017dbbd3d9d15cbefcd54a6d68.


Splite cpu/memory info in OSUtils#isOverload

Purpose of the pull request
Split the message in isOverroad, help us easy to check the CPU or Memory overroad.
Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Codecov Report

Merging #12663 (a189d70) into dev (213bf43) will decrease coverage by 0.05%.
The diff coverage is 18.45%.

:exclamation: Current head a189d70 differs from pull request most recent head f3f66c1. Consider uploading reports for the commit f3f66c1 to get more accurate results

@@             Coverage Diff              @@
##                dev   #12663      +/-   ##
============================================
- Coverage     39.10%   39.04%   -0.06%
+ Complexity     4191     4186       -5
============================================
  Files          1044     1043       -1
  Lines         39447    39514      +67
  Branches       4530     4541      +11
============================================
+ Hits          15425    15429       +4
- Misses        22270    22327      +57
- Partials       1752     1758       +6

Impacted Files
Coverage Δ

...permission/ResourcePermissionCheckServiceImpl.java
66.92% <ø> (ø)

...e/dolphinscheduler/common/constants/Constants.java
62.50% <ø> (ø)

...duler/common/lifecycle/ServerLifeCycleManager.java
0.00% <0.00%> (ø)

...pache/dolphinscheduler/common/utils/FileUtils.java
54.28% <0.00%> (-0.79%)
:arrow_down:

.../apache/dolphinscheduler/common/utils/OSUtils.java
33.72% <0.00%> (-0.61%)
:arrow_down:

...che/dolphinscheduler/common/utils/OkHttpUtils.java
0.00% <0.00%> (ø)

...er/master/builder/TaskExecutionContextBuilder.java
66.07% <ø> (ø)

...inscheduler/server/master/config/MasterConfig.java
0.00% <0.00%> (ø)

.../server/master/registry/MasterWaitingStrategy.java
0.00% <ø> (ø)

...uler/server/master/registry/ServerNodeManager.java
0.00% <0.00%> (-1.20%)
:arrow_down:

... and 26 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Bump go version to 1.22, rook version to 1.15 and csi-addon to 0.9.0

@ShyamsundarR this is the CSI issue https://github.com/csi-addons/kubernetes-csi-addons/issues/649


Fix phpstan analyse error failing builds

Currently the builds are failing due to a phpstan error.

@raphaelstolt Just update the level of analyse to 2. I will take a look in detail about phpstan detected errors before a public release. Thanks!


Cache expiration

I've used this awesome library in a couple of projects now and I think it is a great tool. One thing I'm wondering about is a way to set a cache expiration policy. The policy would dictate when cache keys become stale and should expire and perhaps be erased. Have you considered any additional features to this library, or perhaps strategies to employ regarding this topic?
Thanks!

Happy to hear it! Cache expiration solves the problem of data that changes behind the caching layer, without the caching layer knowing about it. But with diskv, the only way to change the data is with a Write, which will always bust the cache. Are you looking to solve a particular use case?

Right now I have two very different scenarios. The first is a service application that acts as a data provider for a CMS application, combining data from two different data sources. This one I'm thinking I want to "expire" certain cache keys based on a schedule of when an administrative user is most likely to made changes to content.
The second is an internal tool for a team I work on that allows us to manage certain aspects of our local development environments. I have a situation where a tool I wrote searches thousands of files, and I am caching the directories to be searched. The problem here is that at some point a directory may no longer exist, so here I'm thinking on expiring these cache keys on a daily basis.

In both cases, it seems like you're setting up a diskv instance on top of a directory tree that's being mutated by other actors/processes. Is that right?

In the first case I am using diskv to cache REST requests from a 3rd party provider that I in turn feed to my CMS system. My users can change information in this 3rd party system. At some point the data I'm caching needs to be refreshed.
In the second case the cache value is an array of directories. The actual directories can change, and at that point my cache is invalid because it references directories that no longer exist.

Okay, thanks for the explanations. Let me think about this for a little bit.

I don't think I'm going to do this :) Sorry!


Use of unresolved identifier 'DownsamplingImageProcessor' using KingfisherSwiftUI

Check List
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.

[x ] I have read the wiki page and cheat sheet, but there is no information I need.
[x ] I have searched in existing issues, but did not find a same one.
[x ] I want to report a problem instead of asking a question. It'd better to use kingfisher tag in Stack Overflow to ask a question.

Issue Description
Unable to use DownsamplingImageProcessor in KingfisherSwiftUI
What
Following the SwiftUI cheatsheet I tried to add the option to process the image. When I add the code, the compiler complains "Use of unresolved identifier 'DownsamplingImageProcessor'".
Code works fine without the call to DownsamplingImageProcessor.
Reproduce
Add Kingfisher via Swift Package Manager
Create new SwiftUI source file
add "import KingfisherSwiftUI"
add the following code in a body
KFImage(URL(string: "https://abs.twimg.com/sticky/default_profile_images/default_profile.png"), options: [
                    .processor(
                        DownsamplingImageProcessor(size: CGSize(width: 150, height: 150))
                    ),
                    .transition(.fade(0.2)),
                    .cacheOriginalImage
                ])

Other Comment
Seems to affect all image processors.
Attached image shows the error in my project.

The DownsamplingImageProcessor is defined in module "Kingfisher" instead of "KingfisherSwiftUI", so you also need to import Kingfisher.
However, "Kingfisher" module also defined some general-purpose types like Image, View or Button, which not working well with SwiftUI. So if you only use the DownsamplingImageProcessor type, you can import it as a struct instead of importing all the Kingfisher module:
import struct Kingfisher.DownsamplingImageProcessor

to make things simpler.

At which version was the DownsamplingImageProcessor introduced?

It is from 5.0.0.

That does not work with SwiftUI


Consider removing optimization for huge patches

@alshakero suggested to remove it at https://github.com/Palindrom/palindrom-client/pull/79#discussion_r218492059, as

We agreed that it's too hacky and didn't help Palma.

Closing as done in https://github.com/Palindrom/palindrom-client/commit/2408b985564e9bbb5d1ef5ebf1b4cce16269c083

The reason the threshold was added in PR https://github.com/Palindrom/palindrom-client/pull/73 is that I thought that it was a clever hack to address a performance problem caused by massive mutations.
The reason why the said feature was removed in this PR (https://github.com/Palindrom/palindrom-client/pull/80) is that I quickly came to conclusion that not only it did not fully fix the original problem, but it also affected the UX in a negative way. Replacing the whole state object causes the whole DOM tree to be re-rendered, losing any focus in input fields, showing flash of unstyled content, etc). To add injury to the insult, the threshold feature would ultimately cover any underlying problem instead of fixing it. Arguably, the best way to fix a problem with too many notifications is to change the architecture or patch collection mechanism to reduce the number of notifications.