npm command not working

Hello,
I tried to install vue-i18n-loader this morning with the standard command:
npm i --save @kazupon/vue-i18n-loader
I have the following error:
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "i" "@kazupon/vue-i18n-loader" "--save"
npm ERR! node v6.10.1
npm ERR! npm  v3.10.10
npm ERR! code E404

npm ERR! 404 no such package available : @kazupon/vue-i18n-loader
npm ERR! 404
npm ERR! 404  '@kazupon/vue-i18n-loader' is not in the npm registry.

I also tried to add it manually in the package.json with the same effect:
"@kazupon/vue-i18n-loader": "^0.2.1"
I found a strange workaround removing the @ in the command line:
npm i --save kazupon/vue-i18n-loader
=> it adds the following ugly line in the dependencies:
"@kazupon/vue-i18n-loader": "github:kazupon/vue-i18n-loader"
It works but it's not clean.

close due to cannot reproduce


SSL_ERROR_ZERO_RETURN

When I'm trying to send logs to loggly receiving below error.
[BoringSSL] Function boringssl_session_errorlog: line 2881 [boringssl_session_read] SSL_ERROR_ZERO_RETURN(6): operation failed because the connection was cleanly shut down with a close_notify alert
Response Status
Posted to Loggly, status = {"response" : "ok"}
However, after this receiving the above error and there is no logs captured in Loggly.

I was using API token instead of Customer token.


FR: Different output formats

Search Terms

Output format, docx, pdf, word doc, output different file formats
Problem

Most of us develop for a living, so documentation is key & in enterprise environments an HTML site doesn't cut it.
 There is a plugin, typedoc-plugin-markdown that you could use to generate markdown and throw that through some md -> pdf converter.


[CS2103T-T09-1] Jeeq TracQer

Jeeq TracQer is built for small businesses lacking in tools/resources to keep track of supplier contacts and previous transaction information with them

Codecov Report

Merging #6 (13a33dc) into master (77a32bf) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #6   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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


cargo-espflash refuses to work when using -Zbuild-std instead of cargo.toml unstable.build-std

I normally don't configure my .config/cargo.toml to do -Zbuild-std because I have a project where some targets are built with build-std, and some are not. Cargo's config doesn't provide for enabling unstable.build-std depending on target and/or cfg, so I pass it on the command line (via a helper script or directly).
cargo-espflash checks the .config/cargo.toml and rejects my configuration, blocking the build.
As a workaround, I've switched to either using a modified cargo-espflash with the cargo_config.has_build_std() commented out, or using espflash instead.

Could you explain how you enable cargo features in Cargo.toml? I wasn't aware this was possible.

I'm not able to reproduce this, it seems to be accepting the argument just fine for me.
To test I just commented out the [unstable] section in esp32c3-hal, which I confirmed resulted in build errors. However, subsequently running the following command succeeded and flashed the device:
cargo espflash --release --example=hello_rgb --features=smartled --monitor -Zbuild-std=core

I don't believe there is actually an issue here (you've said you have .config/cargo.toml, when it should be .cargo/config.toml), so I'm going to close this. If you can provide a way to reproduce this issue then please feel free to re-open the issue.

Could you explain how you enable cargo unstable features in Cargo.toml? I wasn't aware this was possible.

I don't believe there is actually an issue here (you've said you have .config/cargo.toml, when it should be .cargo/config.toml), so I'm going to close this. If you can provide a way to reproduce this issue then please feel free to re-open the issue.

That was just a typo, and was only included to describe the "normal" state of things. I've edited the description to use the right files.
This doesn't affect esp32c3, because the check in espflash singles out the xtensa architecture. So this won't show up on the riscv based chips.
Here's the diff I locally apply to espflash:
diff --git a/cargo-espflash/src/main.rs b/cargo-espflash/src/main.rs
index e57296b..55b5ee7 100644
--- a/cargo-espflash/src/main.rs
+++ b/cargo-espflash/src/main.rs
@@ -271,9 +271,9 @@ fn build(
     // cross-compilation for xtensa targets.
     // If it has not been set then we cannot build the
     // application.
-    if !cargo_config.has_build_std() && target.starts_with("xtensa-") {
-        return Err(Error::NoBuildStd.into());
-    };

     // Build the list of arguments to pass to 'cargo build'. We will always
     // explicitly state the target, as it must be provided as either a command-line

Reproduction steps:

cargo generate https://github.com/esp-rs/esp-template -n espflash-broken-buildstd
pick esp32s3
cd espflash-broken-buildstd
sed -i -e 's/build-std.*//' .cargo/config.toml
cargo espflash  --monitor --release /dev/cu.usbserial-1413101 -Zbuild-std=core,alloc

Output:
Serial port: /dev/cu.usbserial-1413101
Connecting...

Error: cargo_espflash::build_std

  × Failed to build project
  ╰─▶ 'build-std' not configured
  help: cargo currently requires the unstable 'build-std' feature, ensure that .cargo/config{.toml} has the appropriate options.
          	See: https://doc.rust-lang.org/cargo/reference/unstable.html#build-std


Linking issue in xcode

Hey,
it seems there is a problem in building native dependencies on iOS on newest version:
Undefined symbols for architecture x86_64:
  "SkFontMgr_New_Custom_Data(sk_sp<SkData>*, int)", referenced from:
      RNSkia::JsiSkFontMgrFactory::FromData(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) in libreact-native-skia.a(RNSkManager.o)

Xcode: 13.1
react-native: 0.66.4
react-native-skia 0.1.69

We are working on this one now! Thanks for reporting it, @michalsek! And thanks for the input, @roshangm1


@redis/client Isolated blocking command with AbortSignal bug (yallist)

Description
Bug
I'm getting an error (line numbers may be affected because of me modifying the package while trying to investigate the source of an error)
TypeError: Cannot read properties of undefined (reading 'reject')
    at Function._RedisCommandsQueue_flushQueue (/Users/mishase/Projects/wp/node_modules/@redis/client/dist/lib/client/commands-queue.js:204:11)
    at RedisCommandsQueue.flushAll (/Users/mishase/Projects/wp/node_modules/@redis/client/dist/lib/client/commands-queue.js:195:93)
    at RedisClient.disconnect (/Users/mishase/Projects/wp/node_modules/@redis/client/dist/lib/client/index.js:336:63)
    at <anonymous> (/Users/mishase/Projects/wp/packages/redis/dist/lib/events/EventsClient.js:86:24)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EventsClient.blockingReadMany (/Users/mishase/Projects/wp/packages/redis/dist/lib/events/EventsClient.js:55:22)
    at Object.handler (/Users/mishase/Projects/wp/apps/screen-api/src/routes/screenshot/status.ts:23:15)

Error happens in flushQueue function
// RedisCommandsQueue.#flushQueue function
while (queue.length) {
    queue.shift()!.reject(err); // This line
}

Because of queue.length equals -1. It goes bellow zero due to bug in yallist package, developers of which seems to be dead in mid-2019, so submitting issue there will never be resolved
Detailed description of yallist bug
Let's look at the shift() function
Yallist.prototype.shift = function () {
    if (!this.head) {
        return undefined;
    }

    var res = this.head.value;
    this.head = this.head.next;
    if (this.head) {
        this.head.prev = null;
    } else {
        this.tail = null;
    }
    this.length--;
    return res;
};

It removes item from the list and returns Node of it
Now let's examine the removeNode(node) function
Yallist.prototype.removeNode = function (node) {
    if (node.list !== this) {
        throw new Error("removing node which does not belong to this list");
    }

    var next = node.next;
    var prev = node.prev;

    if (next) {
        next.prev = prev;
    }

    if (prev) {
        prev.next = next;
    }

    if (node === this.head) {
        this.head = next;
    }
    if (node === this.tail) {
        this.tail = prev;
    }

    node.list.length--;
    node.next = null;
    node.prev = null;
    node.list = null;

    return next;
};

As you can see, there is a node.list !== this check in the beginning of the function and node.list = null in the end of this function which prevents it from being called twice, but mentioned earlier function shift() does not have list = null line. So we can call shift and then removeNode which will break node.list.length value. In our case, we're calling shift() while there is one item and then removeNode call results list.length to be -1
Code to reproduce this bug
import LinkedList from "yallist";

const ll = new LinkedList();

ll.push({ name: "a" });

const node = ll.head;

ll.shift();
console.log(ll.length); // 0

ll.removeNode(node);
console.log(ll.length); // -1

What happens at the event of AbortSignal triggered in redis command when passing it to the command options
In mentioned earlier flushQueue function it calls queue.shift function which removes node from the waitingToBeSent list
In addCommand function there is a call this.#waitingToBeSent.removeNode to removeNode function which I described earlier. This causes waitingToBeSent.length to be -1
return new Promise((resolve, reject) => {
    const node = new LinkedList.Node<CommandWaitingToBeSent>({
        args,
        chainId: options?.chainId,
        returnBuffers: options?.returnBuffers,
        resolve,
        reject,
    });

    if (options?.signal) {
        const listener = () => {
            // Remove already removed from list node and cause length decrement
            this.#waitingToBeSent.removeNode(node);
            node.value.reject(new AbortError());
        };
        node.value.abort = {
            signal: options.signal,
            listener,
        };
        // AbortSignal type is incorrent
        (options.signal as any).addEventListener("abort", listener, {
            once: true,
        });
    }

    if (options?.asap) {
        this.#waitingToBeSent.unshiftNode(node);
    } else {
        this.#waitingToBeSent.pushNode(node);
    }
});

Possible fixes
Check if node exists before calling removeNode function in Redis library
Fork yallist and add node.list = null in all necessary functions or implement different presence checks in the removeNode function
Node.js Version
v18.14.0
Redis Server Version
all versions affected
Node Redis Version
4.6.6
Platform
all platforms affected
Logs
No response

Also affects #1889 (Aborted blocking commands leave dangling sockets)

Great job debugging this, I would have never found it..!
Even though there is no releases since mid-2019, can you please open an issue for yallist? If yallist is not maintained anymore we might probably should switch away from it.. (maybe js-sdsl is a good option?)

Maybe js-sdsl is a good option. I've never used any libraries for LinkedList

@mishase I think that for v5 we'll move to a "custom-made" linked list.. will keep you posted :)

Looks like this issue has been fixed in https://github.com/isaacs/yallist/commit/d240e59f13571b0af1b757711aecadc11d5e759b. So probably custom implementation is no longer necessary

I'm seeing this bug cause the client to get into a state where it can never reconnect. I was investigating this bug:
https://github.com/vercel/next.js/pull/68221
... reproducer is exactly as described in that bug but with the client in cache-handler.js set up as:
      client = createClient({
        url: process.env.REDIS_URL ?? "redis://localhost:6379",
        disableOfflineQueue: true,
      });

      // Redis won't work without error handling.
      client.on("error", (e) => {
        console.error("REDIS ERROR", e);
      });

turning off redis at runtime now results in this error:
node-1         | REDIS ERROR SocketClosedUnexpectedlyError: Socket closed unexpectedly
node-1         |     at Socket.<anonymous> (/home/node/app/node_modules/@redis/client/dist/lib/client/socket.js:194:118)
node-1         |     at Object.onceWrapper (node:events:635:26)
node-1         |     at Socket.emit (node:events:520:28)
node-1         |     at TCP.<anonymous> (node:net:337:12)
node-1         | TypeError: Cannot read properties of undefined (reading 'reject')
node-1         |     at RedisCommandsQueue._RedisCommandsQueue_flushQueue (/home/node/app/node_modules/@redis/client/dist/lib/client/commands-queue.js:176:22)
node-1         |     at RedisCommandsQueue.flushAll (/home/node/app/node_modules/@redis/client/dist/lib/client/commands-queue.js:171:77)
node-1         |     at RedisSocket.<anonymous> (/home/node/app/node_modules/@redis/client/dist/lib/client/index.js:417:67)
node-1         |     at RedisSocket.emit (node:events:520:28)
node-1         |     at RedisSocket._RedisSocket_onSocketError (/home/node/app/node_modules/@redis/client/dist/lib/client/socket.js:218:10)
node-1         |     at Socket.<anonymous> (/home/node/app/node_modules/@redis/client/dist/lib/client/socket.js:194:107)
node-1         |     at Object.onceWrapper (node:events:635:26)
node-1         |     at Socket.emit (node:events:520:28)
node-1         |     at TCP.<anonymous> (node:net:337:12)

... and after re-enabling redis it doesn't connect again.
As well as the yallist bug, what's going on here is that the error handling in #onSocketError is fragile, just as in the next.js bug:
    #onSocketError(err: Error): void {
        const wasReady = this.#isReady;
        this.#isReady = false;
        this.emit('error', err);

        if (!wasReady || !this.#isOpen || typeof this.#shouldReconnect(0, err) !== 'number') return;

        this.emit('reconnecting');
        this.#connect().catch(() => {
            // the error was already emitted, silently ignore it
        });
    }

if an exception gets thrown while handling this.emit('error', err), then #shouldNotReconnect is not called, and #isOpen is never set to false. Because #shouldReconnect is not called the reconnection to redis never happens.
I think at the very least it would help to reorder this a bit:
    #onSocketError(err: Error): void {
        const wasReady = this.#isReady;
        this.#isReady = false;
        const noReconnect = !wasReady || !this.#isOpen || typeof this.#shouldReconnect(0, err) !== 'number';

        this.emit('error', err);

        if (noReconnect) return;

        this.emit('reconnecting');
        this.#connect().catch(() => {
            // the error was already emitted, silently ignore it
        });
    }

... that way the reconnection attempt still runs, and the exceptions from inside the error handler propagate (if that's what was intended)


🐞 Folder opening time

Description
I created a simple empty project, but with a fairly thoughtful node_modules folder, not too much.
As you can see from the video, it takes about 40 seconds to open the second folder.
The same operation was done with Webstorm, the time taken was about 5 seconds.
To Reproduce
CodeEdit:
https://user-images.githubusercontent.com/20476002/161530361-4b7e12a3-ff69-471c-a0c7-735c04af1e66.mov
Webstorm:
https://user-images.githubusercontent.com/20476002/161532423-f740f1b5-4532-46f5-b40b-d1bd266470c8.mov
Expected behavior

Try to reduce opening times.
Give visual feedback that the folder is about to open, like webstorm does, using loading.

Version information
CodeEdit: 1.0 (1)
Commit: ee93d1e16693fd71447a02a5e8cca751bb8c28ea
MacOS: 12.3 (21E230)
Xcode: 13.3 (13E113)
Additional context
Link project: https://codesandbox.io/s/kind-cray-y09kuj?file=/package.json

Related to #20 and #21

Just a thought:
What if we don't use structs with child/parent properties for fast access but instead use a dictionary of some sort (or any other hash table structure) to reach O(1) instead of recursively iterating over the children?

@wdg : Sooner or later you have to face it as a problem.

@wdg : Sooner or later you have to face it as a problem.

No one said we must not face the problem, but the thing is a lot of people already have searched for a solution, but sadly we didn't found a solution yet.

We should find a way to load this in the background, and return it to the main thread to update the UI.
if you open a file, the whole sidebar gets reloaded again (this should be prevented).
https://github.com/CodeEditApp/CodeEdit/blob/b5655093847b4cf99979570d28e1cff6527f2766/CodeEdit/NavigatorSidebar/ProjectNavigator/ProjectNavigatorItem.swift#L69-L93

I think it's because of SwiftUI List's bad performance. It's based on NSTableView.
According to Instruments, the time-consuming operation is calculating the row item's height. While List has no functions like tableView(_:heightOfRow:).

Can you share the project or a similar sized one you were using in your tests?

@RayZhao1998 : Do you have any possible solution in mind?

I think it's because of SwiftUI List's bad performance. It's based on NSTableView.
According to Instruments, the time-consuming operation is calculating the row item's height. While List has no functions like tableView(_:heightOfRow:).

Found an article that mentions the same issue: https://kean.blog/post/not-list
Maybe we need to implement NSTableView ourselves.

@lukepistrol : Find the link above, in Additional context just download the project and install the node_modules.

Using NSOutlineView wrapped in NSViewControllerRepresentable. Still WIP but performance is great!
https://user-images.githubusercontent.com/9460130/161954694-5d7df371-0a26-4eb0-a42a-78ad6d3a8c7c.mov

Added a draft PR #411


ceph-{mon,osd}: move default crush variables

Since ed36a11 we move the crush rules creation code from the ceph-mon to
the ceph-osd role.
To keep the backward compatibility we kept the possibility to set the
crush variables on the mons side but we didn't move the default values.
As a result, when using crush_rule_config set to true and wanted to use
the default values for crush_rules then the crush rule ansible task
creation will fail.
"msg": "'ansible.vars.hostvars.HostVarsVars object' has no attribute 'crush_rules'"

This patch move the default crush variables from ceph-mon to ceph-osd
role but also use those default values when nothing is defined on the
mons side.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1798864
Signed-off-by: Dimitri Savineau<EMAIL_ADDRESS>

jenkins test centos-container-all_daemons

jenkins test centos-container-all_daemons

jenkins test centos-container-all_in_one

jenkins test centos-container-all_in_one

jenkins test centos-container-all_daemons

jenkins test centos-non_container-lvm_batch

jenkins test centos-container-all_in_one

jenkins test centos-container-all_daemons

jenkins test centos-container-all_in_one

jenkins test centos-container-all_daemons


Allow multiple connections for same verkey

MessageReceiver assumes that only one connection would exist for a given recipient verkey which is not necessarily true if the agent is using a public DID.
An alternative would be to use the sender and recipient verkey together to find a connection uniquely?

Could you provide a use case of a situation where you would use the public DID for communication?
In most cases you would use a public DID for the invitation, and will then create a unique pairwise DID for that connection. I don't know of any use case where the public DID is used to create the connection.
As for the usage of a public DID in the invitation, see #84

In most cases you would use a public DID for the invitation, and will then create a unique pairwise DID for that connection. I don't know of any use case where the public DID is used to create the connection.

Interesting, how does one ensure that the pariwise DID that's created is indeed controlled by the same entity that controls the public DID? Are the messages signed by the verkey of the public DID along with the pairwise DID?

As for the usage of a public DID in the invitation, see #84

Am I right to believe the answer to my question above is invitations using public DIDs always require resolution of endpoint from the ledger and never include the endpoint themselves?

Interesting, how does one ensure that the pariwise DID that's created is indeed controlled by the same entity that controls the public DID? Are the messages signed by the verkey of the public DID along with the pairwise DID?

The connection parameter in the connection response message must be signed by the verkey of the invitation (which can be a public DID).
From the connection protocol RFC: "The signature data must be used to verify against the invitation's recipientKeys for continuity."
Also see:
https://github.com/hyperledger/aries-framework-javascript/blob/master/src/lib/protocols/connections/ConnectionService.ts#L222-L228

Am I right to believe the answer to my question above is invitations using public DIDs always require resolution of endpoint from the ledger and never include the endpoint themselves?

I think so? I mean theoretically you could include both in the same invitation, but that's not what it is designed to do I think.

Interesting, how does one ensure that the pariwise DID that's created is indeed controlled by the same entity that controls the public DID? Are the messages signed by the verkey of the public DID along with the pairwise DID?

The connection parameter in the connection response message must be signed by the verkey of the invitation (which can be a public DID).
From the connection protocol RFC: "The signature data must be used to verify against the invitation's recipientKeys for continuity."
Also see:
https://github.com/hyperledger/aries-framework-javascript/blob/master/src/lib/protocols/connections/ConnectionService.ts#L222-L228

Gotcha, I think this point from the RFC and the code above resolves my doubts about an adversary "faking" to be in control of a public DID while sharing a pairwise DID in connection response. Thanks!
The use case I had required associating a connection against a public DID. Wonder if we should have a method that allows us to resolve a connection based on the other party's public DID used for invitation? I see the invitation is persisted in the ConnectionRecord so a Repository.findByQuery might do it but if it's a common enough use case it might help to have a method for it in ConnectionsModule?

That seems like a valid use case.
The invitation verkey is also stored as a tag so you could do the following, but this of course doesn't allow you to query by DID:
const [connection] = await this.connectionRepository.findByQuery({
  invitationKey: 'publicDidInvitationVerkey'
});

I am impartial for adding this method to the ConnectionsModule. Maybe @jakubkoci has a stronger opinion?

For an example of where public DID connections might be handy, consider the scenario below:
Let's say Alice wants to connect with Bob (a well known entity). Now if Alice sends in a Connection Request to Bob with a non public DID, Bob has no way to verify that it is Alice indeed who wants to establish a connection.
A way to solve it would be by exchanging a message later that's signed by the public DID's key to prove control over a public DID but I think it's far easier to just allow creating connections using public DIDs in the first place (provided Bob knows Alice's public DID already)

Closing this, please open a new issue if this is still relevant


chore(storage): disable test epoch in release mode

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

Please fix the CI main-cron.

Please fix the CI main-cron.

It seems that the CI main-cron has failed before this PR. This PR at most affects the build part of CI main-cron, which has passed already. Besides, I just realize that under ci-release, we still enable the debug_assertions, so the CI main-cron will not be affected by the PR.
I have removed the run-main-cron label.


Added config option to be passed to fetch call

Due to a bug in of Microsoft Edge browser I need to add {credentials: 'same-origin'} option (details) to fetch api call for fetching search_index.json file. I think it might be handy to pass options to fetch call, hence I suggest an additional option fetchOptions.

Thanks


ProgressBar new feature and Slider fix

Progress bar can now use variables (field and property) to get max value.

Also I changed string format to"{0:0.##}" otherwise you could just see integers

Added also button changes.
This will allow user to enable or disable button for playmode and editmode. Also if you are in playmode but disabled it for editmode so it will disabled also for assets in the projectfolder.
    [Button("Destroy this ship", activeInEditMode = false)]
    void DestroyShip()
    {
        // destroy it :D
        Destroy(gameObject);
    }

So you cannot use buttons in the playmode accidentally on prefabs in the assetfolder.


Add support for const / read-only fields

Should be trivial.

Implemented on https://github.com/vkottler/ifgen/pull/38.


Kubernetes-UI / Internal Server Error (500) : Get https://<IP_ADDRESS>:443/api/v1/replicationcontrollers: dial tcp <IP_ADDRESS>:443: getsockopt: connection refused

I installed "coreos-kubernetes-cluster-osx" v0.6.2 and when I click on the "Kubernetes-UI" menu option:
Internal Server Error (500)
Get https://<IP_ADDRESS>:443/api/v1/replicationcontrollers: dial tcp <IP_ADDRESS>:443: getsockopt: connection refused

I realised that ui container is trying to access the API Server through its internal service (<IP_ADDRESS>) instead of <IP_ADDRESS> or any other available network.
I tried to add the --bind-address=<IP_ADDRESS> to the API Server using the fleet ui but nothing.
Any idea?
Thanks!

@jantoniucci no idea why it is not working yet
in my other Kube-solo App I have it running at no problems without any changes to dashboard svc/rc

I'm having the same issue, and am theorizing that it is because I don't have any way to route or proxy my browser request from the vbox host-only network (<IP_ADDRESS>/24) to the cluster IP range (<IP_ADDRESS>/16), perhaps via the flannel network (<IP_ADDRESS>/16).
As a comparison, browser access to fleet-ui does work because docker-proxy is doing the mapping of the container's port 3000 to the master host's (<IP_ADDRESS>) port 3000, so that happens because neither kubernetes nor flannel are involved.
An ingress-controller and corresponding ingress pod/container might be a part of the solution, but I'm pretty new to this and could have this wrong.   A method that might work would be to have an haproxy or nginx container running on the master node (like fleet-ui; not managed by k8s) that is auto-configured from etcd (e.g., using confd).  This would match k8s' expectation that IP ingress/load-balancing is an external "cloud provider" service.
Since the master participates in the flannel network (<IP_ADDRESS>/16), it can proxy for browser requests coming from <IP_ADDRESS>/24.  In my current setup, k8s knows the link between the flannel IP address and the k8s cluster IP address, so that looks like the final link in the chain:
$ kubectl describe svc kubernetes-dashboard --namespace=kube-system
Name:			kubernetes-dashboard
Namespace:		kube-system
Labels:			k8s-app=kubernetes-dashboard,kubernetes.io/cluster-service=true
Selector:		k8s-app=kubernetes-dashboard
Type:			ClusterIP
IP:			<IP_ADDRESS>
Port:			<unset>	80/TCP
Endpoints:		<IP_ADDRESS>:9090
Session Affinity:	None
No events.

Whatever the solution is for kubernetes-dashboard, hopefully that same solution can then apply to any web-facing workload the user deploys via kubernetes.

fixed in v0.6.3


TAJO-1419: Tsql session command doesn't work

This has some problems.
1] case sensitive.
-> Tajo Session Vars distinguish session key name.
-> so "\set timezone GMT+1" is not valid command
-> "\set TIMEZONE GMT+1" is valid.
2] client side var
-> currently client side vars are stored in TajoCliContext with set command
-> but ResultSet just using client session information that are stored in Server Session.
-> and "SET TIME ZONE 'GMT+1'" command save TIMEZONE Setting as Server Session.
so If timezone value is stored in client side, it is strange.
so, I changed TIMEZONE from CLISIDE_VAR to SERVER_VAR.

Hi @charsyam, sorry for late review.
In Tajo, there are three different configurations for timezone. One of them is the session configuration which you removed. We should not remove it.
For more detailed explanation, please see http://tajo.apache.org/docs/current/time_zone.html.
In this issue, the problem is that \set command does not work. We should investigate problems from there.

@jihoonson, Thank you for your review :)
There are some problems.
Actually, in Tajo,

Client Side Var is not working with ResultSet now.
Because, getCliSideVar() and getClientSideSessionVars() see different vairable map;

in "SET TIME ZONE 'GMT+1' case
It is parsed and executed in Server Side. but in tajo, There is no ability to set client side var from server.
so, currently, SET TIME ZONE commands just set TIMEZONE into Server Side Variable.

That's why I just change TIMEZONE as Server Side Var.

Thank you for investigating this issue.
IMO, the problems you found are all bugs, so, we need to fix them.
Please refer to https://issues.apache.org/jira/browse/TAJO-1234 and https://issues.apache.org/jira/browse/TAJO-1241.

@jihoonson I changed TIMEZONE's type to DEFAULT :)

Thanks @charsyam. We had a discussion about the session variable system in Tajo, and finally found that the variable type of TIMEZONE should be DEFAULT rather than CLI_SIDE_VAR.
This patch looks good to me, but I think that it would be great if we have a test code for this change.
Would you mind adding a test?

Thanks @charsyam. Newly added tests look great, but it will be perfect if you add a line to verify query results which are changed according to the timezone session value.

@jihoonson I added new testcases for TIMEZONE in CLI :) Thanks.

+1 LGTM!
I'll commit shortly.


Check that conda actually activated during install.

This glues over a rare glitch in conda (#3029, https://github.com/conda/conda/issues/10401).
Reviewers: please run this under the bug we reproduced in #3029 to make sure it handles that well.
We might also check for: pip, or python3? Open to feedback.

 Right now it's a dead end for a user who does happen to run into this. If we had a troubleshooting page we could point them at that would be ideal.

Or maybe we should use your fix of just running conda deactivate unilaterally before loading the new conda?

 Right now it's a dead end for a user who does happen to run into this. If we had a troubleshooting page we could point them at that would be ideal

Hmm... all of the install_sct errors I've seen in the past were trapped by this:
https://github.com/neuropoly/spinalcordtoolbox/blob/11249f7b9eab4791cd1834c537cfafd1379bac02/install_sct#L298-L299
Which leads to this error message:
https://github.com/neuropoly/spinalcordtoolbox/blob/11249f7b9eab4791cd1834c537cfafd1379bac02/install_sct#L100-L102
I was thinking the user would come to us to troubleshoot on the forum, as future errors could be as obscure as this one was. :sweat_smile:

@joshuacwnewton applied your suggestion, good now?
(i..haven't actually tested yet. i'm gonna go catch some sun at the moment)


DTO with @lombok.Value + FeignClient + Native/AOT = Deserialization exception

Problem:
With the below setup:
@FeignClient(name = "play-client", configuration = PlayClientConfiguration.class)
public interface PlayClient {

    @GetMapping("/play-value")
    PlayResponseValue playValue(@RequestParam String item);

    @lombok.Value
    class PlayResponseValue {
        String result;
    }
}

I'm getting the following exception:
Caused by: org.springframework.web.client.RestClientException: Error while extracting response for type [class com.playtika.services.samples.PlayClient$PlayResponseValue] and content type [application/json]
        at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:118)
        at org.springframework.cloud.openfeign.support.SpringDecoder.decode(SpringDecoder.java:75)
        at org.springframework.cloud.openfeign.support.ResponseEntityDecoder.decode(ResponseEntityDecoder.java:61)
        at feign.optionals.OptionalDecoder.decode(OptionalDecoder.java:36)
        at feign.InvocationContext.proceed(InvocationContext.java:36)
        ... 37 common frames omitted
Caused by: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `com.playtika.services.samples.PlayClient$PlayResponseValue` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)
        at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:406)
        at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:354)
        at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:103)
        ... 41 common frames omitted
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.playtika.services.samples.PlayClient$PlayResponseValue` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 2]
        at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1739)

But everything works perfectly when using a java application (non native).
Investigation results:
At first I thought this was a hint issue, but I checked and they were indeed automatically generated.
{
    "name": "com.playtika.services.samples.PlayClient$PlayResponseValue",
    "allDeclaredConstructors": true,
    "allDeclaredFields": true,
    "methods": [ { "name": "getResult", "parameterTypes": [ ] } ]
  }

I tried adding the constructor as a method hint manually, but that didn't help.
I also attempted to solve this by adding:
lombok.anyConstructor.addConstructorProperties=true, which ensured that this was my class file:
public static final class PlayResponseValue {
        private final String result;

        @ConstructorProperties({"result"})
        @Generated
        public PlayResponseValue(final String result) {
            this.result = result;
        }

        @Generated
        public String getResult() {
            return this.result;
        }
...
}

but that didn't help.
Workarounds:
Everything works in either case:

if the DTO is reimplemented to be a java record.
when @lombok.RequiredArgsConstructor(onConstructor_={@JsonCreator}) is added to the dto

These workarounds are generally acceptable, although would require a lot of effort to implement across multiple services.
Since the constructor is present, the hint for it as well, I believe that native should be able to detect everything just as java would.
Environment
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 17.0.9+11.1 (build 17.0.9+11-LTS-jvmci-23.0-b21, mixed mode, sharing)
Spring Boot 3.1.6
OpenFeign 4.0.4
(duplicate of https://github.com/spring-projects/spring-boot/issues/39197)

Hello @dpozinen, thanks for reporting the issue. We do not offer dedicated support for Lombok, so the users would need to figure out the proper setup for themselves; if you do figure it out and would like to submit a PR, we would review it, but we are not planning to work on it ourselves.

hi @OlgaMaciaszek I have verified that this is not a Lombok issue. If I reimplement the class to what Lombok produces, except without the @Generated markers, specifically
    public static class PlayResponseValue {
        private final String result;

        @ConstructorProperties("result")
        public PlayResponseValue(String result) {
            this.result = result;
        }

        public String getResult() {
            return this.result;
        }
    }

The issue still persists.
Please have a look

@dpozinen I was not able to reproduce it.  If your issue persists, please provide a minimal, complete, verifiable example that reproduces the issue as a link to a GitHub repo with a small executable app.

Hi again @OlgaMaciaszek I finally got my hands on this again.
Your working sample works, because it does not build a native image, it lacks an execution to build it in the maven plugin. Indeed process-aot runs, but the resulting executable is not a AOT compiled native image.
Please have a look at this fork
Use mvn -Pnative -DskipTests package in the client module and then run the binary ./target/feign-eureka-hello-client. Use the same steps you specified to reproduce. The resulting log:
 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: feign.codec.DecodeException: Error while extracting response for type [class demo.clients.HelloClient$PlayResponseValue] and content type [application/json]] with root cause

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `demo.clients.HelloClient$PlayResponseValue` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 2]

Hello @dpozinen, by "run client with AOT" I meant creating an AOT-processed jar and running it. I've done it locally and haven't faced the issue you've described. I've pushed the AOT adjusted code here now. Sorry if that was confusing. Will take a look at your fork.

Thanks @dpozinen - was able to reproduce it with your sample. However, this does not seem to be an OpenFeign-specific issue. If you comment-out any Spring Cloud-related code and just use RestTemplate, you'll get the same exception. You may want to create an issue upstream (Spring Framework), but @ConstructorProperties may not be within the scope they support.


Line chart not redrawing on series collection reset

The canvas clears and the axes are redrawn, but nothing else is.
It looks like the DrawMargin canvas isn't being added back to the main Canvas.

Add these two lines
chart.DrawMargin.Children.Clear();
chart.Canvas.Children.Add(chart.DrawMargin);

here
https://github.com/beto-rodriguez/Live-Charts/blob/master/LiveChartsCore/CoreComponents/Chart.cs#L1152
I don't know what that might break, but it fixes this problem.

@gregsdennis Ok, I will test


upd(joplin-desktop-app): 2.14.21 -> 2.14.22

@Elsie19 , can you please check? I think the error is not related with the PR. Thanks in advance!


#312 - Allow dataprovider to depend upong the exact title instead of just game.

Unit tests has atleast 150 errors tagged with:
League\Flysystem\Exception: Impossible to create the root directory "".

Also it run for 31 minutes, something is broken.


Benchmark vs monoio?

https://github.com/bytedance/monoio/blob/master/docs/en/benchmark.md
This new framework seems to be disruptive.
Note however:

In the case of a single core and very few connections, Monoio's latency will be higher than Tokio, resulting in lower throughput than Tokio. This latency difference is due to the difference between io-uring and epoll.
So obviously the best of both worlds would be a meta-algorithm that dynamically (or at least once at runtime) determine whether to use epoll Vs io_uring (based e.g on the dynamic number of connections)

Tokio uring is in a very early phase, and we don't have any benchmarks yet. If you would like to add some, feel free to open a PR ;).


Easier system test setup/teardown

Feature request: A single command I (as an authenticated user, or CI system) run that:

Creates an ephemeral google cloud project based on the billing, permissions and name of an existing project
Enables all the necessary APIs
Creates and pulls down credentials and secrets
Runs the system tests
[Optional] 5) Tear down and delete everything

For example system_test/setup cloud-python-runtime-qa run by user<EMAIL_ADDRESS>creates a project cloud-python-runtime-qa-1234, populates the datastore with sample data, downloads the json credentials in some reasonable way.
I don't actually know if this level of automation is actually possible with the platform yet.

I don't think that 2 and 3 are really possible now. I don't know that it would be good practice to pull down overall credentials. There is kind of a public/private key model right now that is secure.
I'm not really sure what the overall goal that you're trying to achieve is. Maybe you can clarify that a little bit?

I want to qualify new Python runtime images, by running all the google-cloud-python system tests inside the new image, before it's been released.  I have set up a project to run these tests in, with the populated sample data.  But a few problems crop up:

Concurrency: Ideally, this qualification test would be run by both CI and developers, often concurrently.  So if they all use the same project name and/or storage, tests will stomp on each other whenever they perform mutating actions, which they presumably do.

Robust Setup: I got 7 out of 10 system test targets working, and left it at that, because I couldn't figure out what I needed to enable for the other three.  I ever need to recreate the project, or create a second project for CI or whatever, it will be a pain, and probably won't be identical to the first project.  Non-reproducible test environments are bad for everyone.

This is what I'm doing right now, from the command line, locally:
https://github.com/GoogleCloudPlatform/python-runtime/pull/39/commits/9aeedd3344bd36c3e92d50527f978464253eeacc
Any suggestions on improvements are welcome.  I want to get this running on the internal CI, but handling the credentials and api keys in a safe way is challenging.

Thanks for the pointer to https://github.com/GoogleCloudPlatform/python-runtime/pull/39/, it gives a bit (a lotta bit?) more context than your GitHub profile page.

Our CONTRIBUTING doc should explain how to set up the system tests, if it doesn't let's try to fix that.
The actual tests should fail with a helpful error explaining the missing config values (again, if this isn't the case, let's fix it)
Creating short-lived credentials is outside (way outside?) of our scope, but again, maybe we could bring the help messages nearer to devs (e.g. in error messages). Someday the gcloud CLI might do this, but even that is doubtful
The concurrency issue is "handled" by our use of unique_resource_id (e.g.). If you have code paths which result in test collisions, please let us know which they are, we certainly don't intend for that to be the case.

I added a company name and snazzy picture to my GitHub profile :)  If the tests are already setup to play nicely within a single project, that is excellent, and removes the need for 1, 3 and 5.  I just assumed it was a problem without actually checking.
That leaves the list of APIs that need to be enabled, and a nicer way to setup data and indexes that doesn't require installing the cloud SDK.
After some more work, I got everything working except for logging (see error message below).
This is the list of APIs I enabled in my project (cloud-python-runtime-qa), which should be explicitly listed in the CONTRIBUTING doc.
Google Cloud Storage JSON API
Bigquery API
Google Cloud Pub/Sub API
Cloud Bigtable Admin API
Stackdriver Logging API
Stackdriver Monitoring API
Google Cloud Natural Language API
Google Translate API
Cloud Bigtable API (Not sure if this one is necessary)
logging
======================================================================
ERROR: test_create_sink_bigquery_dataset (logging_.TestLogging)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/vmagent/app/google-cloud-python/system_tests/logging_.py", line 400, in test_create_sink_bigquery_dataset
    sink.create()
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/google/cloud/logging/sink.py", line 119, in create
    self.project, self.name, self.filter_, self.destination)
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/google/cloud/logging/_gax.py", line 210, in sink_create
    self._gax_api.create_sink(parent, sink_pb, options=options)
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/google/cloud/gapic/logging/v2/config_service_v2_api.py", line 303, in create_sink
    return self._create_sink(request, options)
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/google/gax/api_callable.py", line 481, in inner
    return api_caller(api_call, this_settings, request)
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/google/gax/api_callable.py", line 469, in base_caller
    return api_call(*args)
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/google/gax/api_callable.py", line 434, in inner
    errors.create_error('RPC failed', cause=exception))
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/google/gax/api_callable.py", line 430, in inner
    return a_func(*args, **kwargs)
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/google/gax/api_callable.py", line 64, in inner
    return a_func(*updated_args, **kwargs)
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/grpc/_channel.py", line 481, in __call__
    return _end_unary_response_blocking(state, False, deadline)
  File "/home/vmagent/app/google-cloud-python/.tox/system-tests/local/lib/python2.7/site-packages/grpc/_channel.py", line 432, in _end_unary_response_blocking
    raise _Rendezvous(state, None, None, deadline)
GaxError: GaxError(RPC failed, caused by <_Rendezvous of RPC that terminated with (StatusCode.PERMISSION_DENIED, The caller does not have permission)>)

Also, monitoring produces these errors, which I'm not sure are benign:
400 The provided filter doesn't refer to any known metric. (GET https://monitoring.googleapis.com/v3/projects/cloud-python-runtime-qa/timeSeries/?filter=metric.type+%3D+%22custom.googleapis.com%2Ftmp%2Fsystem_test_example_1478206668779%22&interval.endTime=2016-11-03T20%3A57%3A00.000000Z&interval.startTime=2016-11-03T20%3A52%3A00.000000Z), Trying again in 1 seconds...
400 The provided filter doesn't refer to any known metric. (GET https://monitoring.googleapis.com/v3/projects/cloud-python-runtime-qa/timeSeries/?filter=metric.type+%3D+%22custom.googleapis.com%2Ftmp%2Fsystem_test_example_1478206668779%22&interval.endTime=2016-11-03T20%3A57%3A00.000000Z&interval.startTime=2016-11-03T20%3A52%3A00.000000Z), Trying again in 2 seconds...
400 The provided filter doesn't refer to any known metric. (GET https://monitoring.googleapis.com/v3/projects/cloud-python-runtime-qa/timeSeries/?filter=metric.type+%3D+%22custom.googleapis.com%2Ftmp%2Fsystem_test_example_1478206668779%22&interval.endTime=2016-11-03T20%3A57%3A00.000000Z&interval.startTime=2016-11-03T20%3A52%3A00.000000Z), Trying again in 4 seconds...
_has_timeseries. Trying again in 1 seconds...
400 The provided filter doesn't refer to any known metric. (GET https://monitoring.googleapis.com/v3/projects/cloud-python-runtime-qa/timeSeries/?filter=metric.type+%3D+%22custom.googleapis.com%2Ftmp%2Fsystem_test_example_1478206668779%22&interval.endTime=2016-11-03T20%3A57%3A00.000000Z&interval.startTime=2016-11-03T20%3A52%3A00.000000Z), Trying again in 8 seconds

We'd be happy to have the datastore setup happen in Python code instead of through the SDK, but AFAIK there isn't a public API for updating indexes (also, it's a lot of churn to create and throw away a project every time you run the tests. If you have a long-lived project, the index creation is a one-shot cost.)
The logging error you see is because some bucket or other object needs to add<EMAIL_ADDRESS>to an ACL. This is something we CAN improve in the system test itself, you want to file an issue or should I?
I'm happy to add a list of APIs that need to be enabled, but I'm fairly certain it would go stale due to human error. The only Google APIs I know of that has a way check project info is the Resource Manager API but the "get project" payload doesn't list enabled APIs
Believe it or not the monitoring messages (not errors) are benign. The API using a 400 when it should use a 404. This is just eventual consistency of a query rearing it's head.

Filed #2740 for the logging error.  If the rest is won't/can't fix, which seems reasonable, then go ahead and close this.


Cant custom text-basic-color in theme.json

💬 Question
I try to config text-basic-color, but it not work.
Here my theme.json
{
  "color-primary-100": "#E7FBDC",
  "color-primary-200": "#CAF8BB",
  "color-primary-300": "#A2EA94",
  "color-primary-400": "#7BD673",
  "color-primary-500": "#48BB49",
  "color-primary-600": "#34A03E",
  "color-primary-700": "#248636", // Green
  "color-primary-800": "#166C2E",
  "color-primary-900": "#0D5928",
  "color-success-100": "#EDFDDA",
  "color-success-200": "#D6FBB6",
  "color-success-300": "#B7F590",
  "color-success-400": "#99EC72",
  "color-success-500": "#6CE046",
  "color-success-600": "#4CC033",
  "color-success-700": "#30A123",
  "color-success-800": "#198116",
  "color-success-900": "#0D6B10",
  "color-info-100": "#EBF6FB",
  "color-info-200": "#D7ECF8",
  "color-info-300": "#BDD8EB",
  "color-info-400": "#A3C0D8",
  "color-info-500": "#809FBF",
  "color-info-600": "#5D7CA4",
  "color-info-700": "#405D89",
  "color-info-800": "#28406E",
  "color-info-900": "#182C5B",
  "color-warning-100": "#FFF2D1",
  "color-warning-200": "#FFE1A3",
  "color-warning-300": "#FFCB76",
  "color-warning-400": "#FFB653",
  "color-warning-500": "#FF941B",
  "color-warning-600": "#DB7413",
  "color-warning-700": "#B7570D",
  "color-warning-800": "#933E08",
  "color-warning-900": "#7A2D05",
  "color-danger-100": "#FFDED6",
  "color-danger-200": "#FFB6AE",
  "color-danger-300": "#FF8785",
  "color-danger-400": "#FF6774",
  "color-danger-500": "#FF3559",
  "color-danger-600": "#DB2657",
  "color-danger-700": "#B71A54",
  "color-danger-800": "#93104D",
  "color-danger-900": "#7A0A48",
  "color-basic-100": "#FFFFFF",
  "color-basic-200": "#F7F9FC",
  "color-basic-300": "#EDF1F7",
  "color-basic-400": "#E4E9F2",
  "color-basic-500": "#C5CEE0",
  "color-basic-600": "#8F9BB3",
  "color-basic-700": "#2E3A59",
  "color-basic-800": "#222B45",
  "color-basic-900": "#192038",
  "color-basic-1000": "#151A30",
  "color-basic-1100": "#101426",
  "color-basic-transparent-100": "rgba(143, 155, 179, 0.08)",
  "color-basic-transparent-200": "rgba(143, 155, 179, 0.16)",
  "color-basic-transparent-300": "rgba(143, 155, 179, 0.24)",
  "color-basic-transparent-400": "rgba(143, 155, 179, 0.32)",
  "color-basic-transparent-500": "rgba(143, 155, 179, 0.4)",
  "color-basic-transparent-600": "rgba(143, 155, 179, 0.48)",

  "text-basic-color": "$color-primary-700" // should be green too
}

and this my result in screen (H1)

thank you in advance :)
UI Kitten and Eva version
| Package      | Version |
| @ui-kitten/components | 5.1.1 |
| @eva-design/eva      |        |
| @ui-kitten/components   |         |

Hi, @pavitpim40, there's should not be any issues with assigning new color value. Please, check if you're getting the style color value correctly. Provide please your code sample so I could help you with your problem

Any solution here? I am facing the same issue.

@pavitpim40 @ZoltanSzokodi can you please share how are you passing theme configuration to ApplicationProvider?

Closing the problem because of the long response time, there is a chance that the problem has already been fixed, if you have any questions, happy to help, you can reopen the ticket for this, with respect the team UI Kitten.


Deprecate the existing histogram metric function and replace it with summary & distribution

Adds the ability to expose a prometheus histogram using misk metrics.
Replaces the Metrics.histogram(...) method (which as confusingly named because it actually created a prometheus Summary with two methods:

Metrics.summary(...) which creates a prometheus Summary
Metrics.distribution(...) which creates a prometheus Histogram (It isn't possible to update Metrics.histogram(...) to emit a histogram because that change would be backward-incompatible.)

One thing to note is that it doesn't appear that a summary and a histogram can have the same name. At least, that's how I am reading this quote:

Currently with https://github.com/prometheus/client_golang (I don't know about others client libs) implementation it is not possible to define an Histogram and a Summary for the same data using the same name cause _sum and _count for both Histogram and Summary would collide.

https://github.com/OpenObservability/OpenMetrics/issues/120
Because of that, all current uses of histogram(...) will need to be migrated to distribution(...) with a different metric name. This is unfortunate and means that the migration can't be done automatically without updating each of the code points.

Thanks for the feedback, @cpakman.

histogram and summary both append slightly different names to metrics

I think what you are suggesting is similar to the issue I linked to and quoted in the description above (https://github.com/OpenObservability/OpenMetrics/issues/120).
(I know it's a little confusing that this issue isn't on the prometheus client directly, but instead on open metrics, but it references the prometheus client library which is how I found it. I could potentially submit a follow up issue to the prometheus client library.)

assuming prometheus library doesn't complain

This is the sticking point. If I am reading the library code and the issue correctly, prometheus library will complain because of the way that it keeps metrics registered in a single map so it's not really feasible to register two metrics into a single name.
Additionally, there is a protocol problem even if we could patch or replace the client to accept both types under the same name.
The prometheus protocol explicitly defines the type for a given metric name in the scrape response. For example, section of the scrape response from one of our test services.
# HELP client_http_request_latency_ms count and duration in ms of outgoing client requests
# TYPE client_http_request_latency_ms summary
client_http_request_latency_ms{...,quantile="0.5",} 76.0
client_http_request_latency_ms{...,quantile="0.75",} 76.0
client_http_request_latency_ms{...,quantile="0.95",} 77.0
client_http_request_latency_ms{...,quantile="0.99",} 79.0
client_http_request_latency_ms{...,quantile="0.999",} 88.0
client_http_request_latency_ms_count{...,code="200",} 12872.0
client_http_request_latency_ms_sum{...,code="200",} 964256.0

Note that even though the metrics wouldn't collide like you suggest, it's not clear what #TYPE should be associated with this new hybrid metric because it will have two types. Maybe with the coordination of a downstream scraper, we could get that to work, but it's definitely not trivial.


Sponsors

What was the feature/problem?
{Please write here}
How does this PR address the above feature/problem?
{Please write here}
Check lists (check x in [ ] of list items)

[ ] Test passed
[ ] Coding style (indentation, etc)

Additional Comments (if any)
{Please write here}

Codecov Report

Merging #30 into developnew will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           developnew      #30   +/-   ##
===========================================
  Coverage       60.11%   60.11%
===========================================
  Files               7        7
  Lines             178      178
  Branches           21       21
===========================================
  Hits              107      107
  Misses             55       55
  Partials           16       16

Flag
Coverage Δ

#api
60.11% <ø> (ø)
:arrow_up:

#ui
100% <ø> (ø)
:arrow_up:

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 ee6c9db...1abb890. Read the comment docs.


Make MemorySessionDriver thread safe

I also moved the handy lock with closure method from SocketServer into an extension. I wasn't sure where we'd put standard library extensions that weren't "fixes", so I made a new "Utilities" folder.

Merge conflict has been resolved. Can you add a test for this?

@tannernelson I've added tests for MemorySessionDriver. It does touch the thread safe code, but simulating a race condition that would cause a crash is an indeterminate operation. Open to suggestions if you have any on how to test a lock acting like a lock.

:+1:


Why start-up page always shows 2 tabs, one of which is from my previous browsing history?

I like this "NewTab-Redirect" app, very fast and convenient. However, 2 Questions:
a. Why always 2 start-up tabs? Can't I configure it to show only one pre-specified page?
b. This is more important than above: The 1st tab showing up after starting up is always whatever I was browsing before. Is there any way to turn this off, or redirect it to a blank page? (Ideally I only want to show one blank page after starting-up.)
Thank you!

@shuanglu127 this extension has nothing to do with browser startup. The extension only modifies the page displayed when you create a new tab. If this is happening when you start the browser, you probably have some setting causing this or some other extension affecting this. Unfortunately, that's far outside the details of the extension that I'm able to assist with.


Add navigator as ancestor to Offset

Add navigator.context.findRenderObject() as an ancestor to position the overlay offset. This is required to work correctly inside a RouterOutlet, the flutter overlay widgets implement this, for example DropdownButton.

It worked for me thanks.
Are there plans to merge? or do I need to create a fork?


Multiple Reduce Kernels - kernel properly orders reduceops

a precursor pr to the linearizer changes for fused reduceops
this makes the necessary changes to the kernel state for the linearizer function to render multiple reduceops

do you still need insert_before in linearizer functions after this?

no i don't think so

reverted insert_before - feel free to add it back in if you needed it.

This is wrong #4220 test/test_linearizer.py TestLinearizer.test_multireduce
Please test very carefully before marking a PR as ready for review.

I don't know if it should pass, this doesn't include the linearizer changes that make multiple reduceops work


dts: stm32f103Xd: added missing dts file

Added stm32f103xd series dts file that was missing.
Changed stm32f103xe file's import dts <st/f1/stm32f103Xc.dtsi> to
<st/f1/stm32f103Xd.dtsi>. This change will show only the difference
between stm32f103xd and stm32f103xd series.

@erwango - would you like to ack?


Follow file naming conventions to match module namespace

The files defining ImageSpec::Parser and nested modules/classes are
defined under lib/parser instead of lib/image_spec/parser. This can
cause issues with the "parser" gem, because depending on which one comes
first in the load path, a "require 'parser'" will load the wrong file.
This change makes the files follow the naming convention that is
established in the Ruby community.

Wow thanks for the quick response <3 do you also plan to release a new version to Rubygems?

Will do, after https://travis-ci.org/dim/ruby-imagespec/builds/59417296 passes

:+1:


Dark mode is only applied on home tab

Using the dark and light toggle button is the choice of user, but the effect of toggle button is only applied on for the home tab not for all other tabs

Please assign this issue to me


[BUGFIX] DTPORTAL-16140: Fix quick asterisk command hanging

Problem
Examples like the following easily lead to #execute hanging indefinitely:
100.times do |i|
  execute 'StopMonitor'
  logger.info "execute round #{i} DONE!"
end

Output:
execute round 0 DONE!
execute round 1 DONE!
execute round 2 DONE!
execute round 3 DONE!
execute round 4 DONE!

(... tumbleweed ...)
Cause
Use of Adhearsion::Rayo::Component::Asterisk::AGI::Command as a Component to execute Asterisk AGI commands which return quickly (in sub-second time) can lead to a race condition where a Command hangs indefinitely.  This happens because execution of a Adhearsion::Rayo::Component::Asterisk::AGI::Command.new is handled by
Adhearsion::Translator::Asterisk::Component::Asterisk::AGICommand, which executes the AGI command asynchronously while registering its component .  Complete Events received from Asterisk for commands that finish nearly instantly often found the events dropped on the floor, because the
component was not yet registered in the Adhearsion::Rayo::Client::ComponentRegistry. The outcome in such a case was that #execute would hang indefinitely, waiting forever for a Complete Event which was received long ago.
Resolution
This change abandons use of Adhearsion::Rayo::Component::Asterisk::AGI::Command of as a Component (a racey approach used only by adhearsion-asterisk, by the way).  This is replaced by use of Adhearsion's preferred #execute_agi_command.

@gfaza Can you review this for me?

Thanks dude.  Got a chance to load-test this yesterday, and the results are pretty good - 5 call failures out of 18,000.  This fix leans heavily on a safety cleanup that @kares built for us (cloudvox/adhearsion@c9a2c66).  I'm just standing on the shoulders of giants here.

@mattcar Can you merge this for us?


Choose the technologies to be used for the app

Should we use a very simple HTML page or add some JavaScript scripts?

No need to add JS just yet. Let's just stick to HTML5 and some styles.
@mtsitoara will lead the development


Complete code of the instance

If you can provide a complete example of the example, I would be very grateful!

Which example do you mean? The code for the storybook, and the docs, is available in this repo.

I'll close this for now, please reopen if there are further unclarities.


pager need to  improvement support input page number to jump

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[x] feature request
[ ] support request => Please do not submit support request here

Current behavior

  none

Expected behavior

 when i use the ngx-datatable, i need Pager own this ability to enter page number to jump to the page i want to go to.

Reproduction of the problem

  none

What is the motivation / use case for changing the behavior?

  i know which page i want to view data, so i just only want to input page number to jump

Please tell us about your environment:

 node: 6.9.4
 os: win32 x64
 nginx:1.0x

Table version: 0.7.x

 "ag-grid": "^8.0.1",
 "ag-grid-ng2": "^8.0.0"

Angular version: 2.0.x

 @angular/common": "^2.4.0",
"@angular/compiler": "^2.4.0",
"@angular/core": "^2.4.0",
"@angular/forms": "^2.4.0",
"@angular/http": "^2.4.0",
"@angular/material": "^2.0.0-beta.2",
"@angular/platform-browser": "^2.4.0",
"@angular/platform-browser-dynamic": "^2.4.0",
"@angular/router": "^3.4.0",
"@angular/cli": "1.0.0-beta.31",
"@angular/compiler-cli": "^2.4.0",

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

  Chrome 56.0.2924.87 (64-bit)

Language: [all | TypeScript X.X | ES6/7 | ES5]
TypeScript 2.0
ES5

Interesting idea. I think we might want to make the pager customizable via a template. We won't be able to support every case like this.

Thanks very much, i really appreciate your job, when do you plan to support this new feature?

Shouldn't be too hard if you would like to PR it. Instead of rendering this: https://github.com/swimlane/ngx-datatable/blob/master/src/components/footer/footer.component.ts#L11-L28 just use ng-content to to put in the footer projectino.

Interesting idea. I think we might want to make the pager customizable via a template

it would be more useful to create a "service" for this, like this.dtable.setPage(3), u dont need to anticipate internal logic, just manipulate rows , like setPage(n){if(n < rows.length  / limit){..}}
it would be nice to manipulate the table via a service, not just by tpl bindings

@amcdnl but when i use  datatable-pager component in my module, which is conflict with your NgxDatatableModule, and how to add myself input property to datatable-pager

Can be accomplished with custom footer in v8.2.0


channels: more metadata work

This was a request from @davidisaaclee. We add the new metadata field to the create payload so that we can immediately pass custom channels data when creating a channel. Also adds the types from tloncorp/tlon-apps#4109 into the channels file.
PR Checklist

[ ] Includes changes to desk files
[ ] Describes how you tested the PR locally (test ship vs livenet)
[ ] If a new feature, includes automated tests
[ ] Comments added anywhere logic may be confusing without context

Notably the frontend type changes here need to be fully realized across the codebase before we can deploy.

Thanks for this - it looks like my other request from last night got lost: We need an unstructured JSON config dict in each of content renderer / draft input / collection, like this diff: https://gist.github.com/davidisaaclee/097c480318d6a9a8367faaaf8c447360
I don't understand why Stringified is needed - and if we truly do need to stringify, why can't we do something like JS's JSON.stringify (instead of "_ value" wrapping)? (Not 100% sure that I'm reading this right.)

@arthyn I think there is a problem with state migration in %channels-server. The already deployed hooks increased the state number to %7 already, so the type changes in release-channel-updates branch have to go with %8. I have integrated the hooks stuff to this branch already, perhaps you can take a look and rebase your changes here.

@davidisaaclee yeah ChannelMetadataSchemaV1 was just a suggestion based on some old conversations we had, but it can be whatever we want it to be because it's just an open field on the backend. The reason I have stringified here is because the field on the backend is just plaintext or null. So I thought having a more type safe way of doing the json parse/stringify might be nice. we could store it as an actual JSON type hoon-side I just wasn't sure we would want that since it incurs extra structure that we're not really using on the backend.

great, I can work with that! maybe we could just change the metadata type to an opaque nominal type (TS hack for this here) - I'm afk now but I can make an inline suggestion comment later

@mikolajpp that was already there in the original meta PR, we just missed creation so I added it here

talked with Hunter offline, TS looks good – here's the change I mentioned in my comment but it's going to be messy to propose as a commit to this and shouldn't block, so I'll just fix forward once this PR is merged


force dark mode in Linux

Hi this has no config but in screenshots i will see dark mode
so how can i force it in linux

Duplicate of #414


Sub-class generics not working correctly with super-class constraint/default generics

TypeScript Version<EMAIL_ADDRESS>
Search Terms: generic constraints, generic inference, generic inheritance
Code
I'm updating my event emitter to type all possible listeners, so that all on and emit methods are strictly typed. This is done by using conditional and mapped types, to infer the argument and function signatures from an interface like so:
export interface TaskEvents {
  // Define args
  fail: [Error];
  // Define args and return (entire func)
  pass: (value: any) => Promise<any>;
}

This works well in isolation, as defined here: https://github.com/milesj/boost/pull/45/files#diff-af915a397c4f33b89e6fba137b261584
However, when consumed in another package that is using generics to define the events, the type system breaks down. A few examples.
Constraints + default generics (DOESNT WORK)
This approach uses generic constraints and defaults to define the events. This is ideal so that sub-classing can inherit the parents events and everything works correctly.
export interface TaskEvents {
  fail: [Error];
  pass: [any];
  run: [any];
  skip: [any];
}

class Task<Events extends TaskEvents = TaskEvents> extends Emitter<Events> {}

task.emit('run', [something]);

However, this doesn't seem to work:

Defaults only  (DOESNT WORK)
This approach only uses defaults and no constraints, but obviously doesn't work since the class isn't aware of the explicit events.
class Task<Events = TaskEvents> extends Emitter<Events> {}

task.emit('run', [something]);

Constraints only (DOESNT WORK)
Inverse of the previous example. This has the same problem as the first example.
class Task<Events extends TaskEvents> extends Emitter<Events> {}

task.emit('run', [something]);

No sub-class generics / Super-class explicitly defined (DOES WORK)
This approach does work.
class Task extends Emitter<TaskEvents> {}

task.emit('run', [something]);

However, this is not ideal since sub-classes can't override the defined events. An example as so:
export interface RoutineEvents extends TaskEvents {
  command: [string];
  'command.data': [string, string];
}

class Routine<Events extends RoutineEvents = RoutineEvents> extends Task<Events> {}

// Should inherit and work
routine.emit('run', [something]);

Expected behavior:
The constraints/defaults on class generics are inherited correctly.
Actual behavior:
They don't seem to be inherited correctly unless explicitly defined.
Playground Link:
PR has a handful of usage: https://github.com/milesj/boost/pull/45
Related Issues:
Looked around a bit, found this?

https://github.com/Microsoft/TypeScript/issues/29662 - I updated my code to use unknown, same issues.

I tried this:
type ListenerType<T> =
    T extends (...args: any[]) => any ? T :
    T extends unknown[] ? (...args: T) => boolean | void :
    never;

type Arguments<T> =
    T extends (...args: infer A) => unknown ? A :
    T extends unknown[] ? T :
    never;

class Emitter<T>{
    //listeners: { [K in keyof T]?: Set<ListenerType<T[K]>> } = {};

    emit<K extends keyof T>(eventName: K, args: Arguments<T[K]>): this {
        /*Array.from(this.getListeners(eventName)).forEach(listener => {
            listener(...args);
        });*/
        return this;
    }
}

interface TaskEvents {
    fail: [Error];
    pass: [any];
    run: [any];
    skip: [any];
}

class Task<Events extends TaskEvents = TaskEvents> extends Emitter<Events> { }

var task = new Task();
task.emit('run', [true]);

And it works.  I'm using TS 3.3.3333.

I noticed someone else had an issue with changes in 3.4 regarding conditional types; not sure if the underlying reason is related: https://github.com/Microsoft/TypeScript/issues/30489

@rjamesnw I don't see any differences with your example? Does the emit() call work when within the Task class body? That's usually where I see the issues.

Ok, I've confirmed this doesn't work:
class Task<Events extends TaskEvents = TaskEvents> extends Emitter<Events> {
	run() {
		return this.emit('run', [true]);
	}
}

This seems to be an issue with the conditional type.  It works when I do this:
type Arguments<T> = T;

Yeah, definitely seems like a bug then. Or perhaps one of those cases not supported by design.

I tried another approach where the Emitter is an instance on a class property. This also doesn't work in sub-classes (Routine), but works in the super-class (Task), but this is expected.
export interface TaskEvents {
  fail: [Error];
  pass: [any];
  run: [any];
  skip: [any];
}

class Task {
  protected emitter: Emitter<TaskEvents>;

  constructor() {
    this.emitter = new Emitter();
  }
}

export interface RoutineEvents extends TaskEvents {
  command: [string];
  'command.data': [string, string];
}

class Routine extends Task {
  protected emitter: Emitter<RoutineEvents>;

  constructor() {
    super();
    this.emitter = new Emitter();
  }
}

And also this approach which sort of combines the 2. Also doesnt work. Has the same problem as the original post.
export interface TaskEvents {
  fail: [Error];
  pass: [any];
  run: [any];
  skip: [any];
}

class Task<Events extends TaskEvents = TaskEvents> {
  protected emitter: Emitter<Events>;

  constructor() {
    this.emitter = new Emitter();
  }
}

Tried a few more things, still no luck. Any word? Is this a lost cause?

@milesj I was hoping someone would come up with a TL;DR isolated repro that works in the Playground and demonstrates the behavior considered wrong here. Or is this a question? It's not obvious

@RyanCavanaugh All the examples above do not work, but heres a playground based on @rjamesnw code examples. https://www.typescriptlang.org/play/#src=type ListenerType<T> %3D
    T extends (...args%3A any[]) %3D> any %3F T %3A
    T extends unknown[] %3F (...args%3A T) %3D> boolean | void %3A
    never%3B

type Arguments<T> %3D
    T extends (...args%3A infer A) %3D> unknown %3F A %3A
    T extends unknown[] %3F T %3A
    never%3B

class Emitter<T>{
    %2F%2Flisteners%3A { [K in keyof T]%3F%3A Set<ListenerType<T[K]>> } %3D {}%3B

    emit<K extends keyof T>(eventName%3A K%2C args%3A Arguments<T[K]>)%3A this {
        %2FArray.from(this.getListeners(eventName)).forEach(listener%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20listener(...args)%3B%0D%0A%20%20%20%20%20%20%20%20%7D)%3B%2F%0D%0A%20%20%20%20%20%20%20%20return%20this%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Ainterface%20TaskEvents%20%7B%0D%0A%20%20%20%20fail%3A%20%5BError%5D%3B%0D%0A%20%20%20%20pass%3A%20%5Bany%5D%3B%0D%0A%20%20%20%20run%3A%20%5Bany%5D%3B%0D%0A%20%20%20%20skip%3A%20%5Bany%5D%3B%0D%0A%7D%0D%0A%0D%0Aclass%20Task%3CEvents%20extends%20TaskEvents%20%3D%20TaskEvents%3E%20extends%20Emitter%3CEvents%3E%20%7B%20%0D%0A%20%20%20%20run()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.emit('run'%2C%20%5Btrue%5D)%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Avar%20task%20%3D%20new%20Task()%3B%0D%0Atask.emit('run'%2C%20%5Btrue%5D)%3B%0D%0A

It really seems like you want
class Task extends Emitter<TaskEvents> {
    run() {
        this.emit('run', [true]);
    }
}

Without a concrete type for Events, it's never going to be possible/correct to instantiate a value that matches a deferred type.

Do you have any suggestion on trying to implement a feature like this?

I'd need to understand why you think Task needs its type parameter to advise further. The existence of the Events type parameter there necessarily implies that Task itself cannot manufacture suitable values to emit, which is why you see the error.

The main use is that Task can be inherited from another class, and that class may provide additional events to emit.
export interface RoutineEvents extends TaskEvents {
  command: [string];
  'command.data': [string, string];
}

class Routine<Events extends RoutineEvents = RoutineEvents> extends Task<Events> {}

Not a 100% blocker but would be really really nice to have.

That pattern is problematic because it's unsound (because RoutineEvents might have a more-specific type for one of its properties).
Pushing the derived type in separately fixes this:
class Task<TAdditional = {}> extends Emitter<TaskEvents> {
    protected emitter: Emitter<TaskEvents>;

    constructor() {
        super();
        this.emitter = new Emitter();
    }

    run() {
        this.emit('run', [true]);
    }
}

export interface RoutineEvents extends TaskEvents {
    command: [string];
    'command.data': [string, string];
}

class Routine extends Task<RoutineEvents> {
    protected emitter: Emitter<TaskEvents & RoutineEvents>;

    constructor() {
        super();
        this.emitter = new Emitter();
    }
    command(s: string) {
        this.emit("run", [s]);
    }
}

Thank you, will give this a shot.

Went with another approach, since the API changes are either breaking, or just make it uglier/too complicated. It's basically Angular events: https://github.com/milesj/boost/pull/45
Thanks for the help/info!


pause and restart Reindex job to free up memory on large sites

Ran into issues with this job where it would stay running for long periods of time and explode my memory.
This changes it to Pause itself once each process() is complete so that it can be picked up again, freeing up the resources.

This doesn't work any more with the newest Queued Jobs, and might not be necessary. Closing!


Group DMs have a canonical alias set which messes up the room name

Group DMs currently look like the following in my room list:

Even though the users inside have displaynames properly set, Riot seems to take the canonical alias as a method of calculating the room name when one isn't set.
A fix would be to set #_discordpuppet... as an alias of the room, but not the canonical alias, if that's possible.

Should be fixed in https://github.com/Sorunome/mx-puppet-bridge/commit/f117e6eae21a6bb7baaedaf9950c3d1488120ecf
So only riot needs updating to keep those in mind when doing tab-completion

Super happy, thank you :)


Unable to use the object with key value 'templateUrl' in angular6

Bug Report or Feature Request (mark with an x)
- [x ] bug report -> please search issues before submitting

Command (mark with an x)
- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Versions
"@angular-devkit/build-angular": "~0.7.0",
"@angular-devkit/build-ng-packagr": "~0.7.0",
"@angular/cli": "~6.1.5",
"@angular/compiler-cli": "^6.1.0",
"@angular/language-service": "^6.1.0",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"ng-packagr": "^3.0.0",
"protractor": "~5.4.0",
"ts-node": "~5.0.1",
"tsickle": ">=0.29.0",
"tslib": "^1.9.0",
"tslint": "~5.9.1",
"typescript": "~2.7.2"
Angular CLI: 1.6.6
Repro steps
I have the below object in component.ts and I am going to iterate this array in the HTML template inside ui-comp-menu.
menuObject = [{
'labels': 'Content1',
'templateUrl': 'assets/partials/sample.html',
'childrens': [],
},
{
'labels': 'Content2',
'templateUrl': 'assets/partials/sample1.html',
}];
and in the html
<ui-comp-menu [data]="menuObject" [label]="'labels'" [url]="'routeUrl'" >
But while compiling I got the below error
The log given by the failure
ERROR in ./src/app/app.component.ts
Module not found: Error: Can't resolve './assets/partials/UserAdministration.html' in 'D:\POC_Angular_6\lib-demo\src\appI
Desired functionality
It should work even if you give an object with 'templateUrl' as key name
Mention any other details that might be useful
If i change the object key 'templateUrl' to some other name like 'templatePath' issue won't come and compiled successfully.
Similarly 'styleUrl' also not supported.
Ref. this: https://stackoverflow.com/questions/52648392/unable-to-use-the-object-with-key-value-templateurl-in-angular6/52648863#52648863

This seems like a bug but we'll need to look at a reproduction to find and fix the problem. Can you setup a minimal repro please?
You can read here why this is needed. A good way to make a minimal repro is to create a new app via ng new repro-app and adding the minimum possible code to show the problem. Then you can push this repository to github and link it here.
This might be related to your directory structure so its really important to get an accurate repro to diagnose this.

please find the attached sample here. please do npm install before ng serve
https://github.com/cnuwasn/cli_bug


'Refresh' button tooltip does not get translated for GVT (ng directive)

GVT team raised a defect for our product due to the refresh button tooltip not getting translated. This is caused by the angular top-navigation directive not using the resources.js localization file for the 'Refresh' tooltip.
It's a quick fix. Create a scope variable in the directive, and assign it the pre-existing "temui.l10n.refresh" value from resources.js. Then assign the scope variable to the button's "title" value.
I can check in the fix, if needed.

I don't think there's any active maintainer of the ADF. Do you want to take over ownership of this repository so that you can make the changes that you need?

I can't say how actively I'll be using the ADF after our product releases, but I'd be happy to maintain it for the time being

I just made you an admin on this project.


Mood Emote on main screen

https://discord.com/channels/761581682686951455/817721229531414538/1102702881297149972

Cry - no steps/heart beat


Update HDFS ACL and ActiveSync log message

What changes are proposed in this pull request?
Update log message to be more helpful for ActiveSync and ACL features in HDFS.

alluxio-bot, merge this please


React Native IOS app cannot connect to Amplify Storage

So my React Native IOS app cannot connect to Amplify Storage. Every single time it return a [TypeError Network Request Failed]
I didn't manual setup anything. I just used Amplify add Auth Amplfify add Storage to set up those things
Below is my configuration and Info.plist file
Info Plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleDisplayName</key>
	<string>IPOSTURE</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>$(CURRENT_PROJECT_VERSION)</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
		<key>NSExceptionDomains</key>
		<dict>
			<key>localhost</key>
			<dict>
				<key>NSExceptionAllowsInsecureHTTPLoads</key>
				<true/>
			</dict>
		</dict>
	</dict>
	<key>NSPhotoLibraryAddUsageDescription</key>
	<string>Give User Option to choose picture from photo library</string>
	<key>NSPhotoLibraryUsageDescription</key>
	<string>Give User Option to choose picture from photo library</string>
	<key>UIUserInterfaceStyle</key>
	<string>Light</string>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<false/>
</dict>
</plist>

backend-config json
{
  "auth": {
    "iposture{xxxxxxxx}": {
      "service": "Cognito",
      "providerPlugin": "awscloudformation",
      "dependsOn": [],
      "customAuth": false
    }
  },
  "storage": {
    "youngpostureupdate": {
      "service": "S3",
      "providerPlugin": "awscloudformation"
    }
  },
  "api": {
    "iposture": {
      "service": "AppSync",
      "providerPlugin": "awscloudformation",
      "output": {
        "authConfig": {
          "defaultAuthentication": {
            "authenticationType": "AMAZON_COGNITO_USER_POOLS",
            "userPoolConfig": {
              "userPoolId": "authiposturexxxxxx"
            }
          },
          "additionalAuthenticationProviders": []
        }
      }
    }
  }
}

storage/{bucketname}/parameter.json
{
    "bucketName": "{bucket_name}",
    "authPolicyName": "s3_amplify_{xxxxxxxx}",
    "unauthPolicyName": "s3_amplify_{xxxxxxxx}",
    "authRoleName": {
        "Ref": "AuthRoleName"
    },
    "unauthRoleName": {
        "Ref": "UnauthRoleName"
    },
    "selectedGuestPermissions": [
        "s3:GetObject",
        "s3:ListBucket"
    ],
    "selectedAuthenticatedPermissions": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:DeleteObject"
    ],
    "s3PermissionsAuthenticatedPublic": "s3:PutObject,s3:GetObject,s3:DeleteObject",
    "s3PublicPolicy": "Public_policy_{xxxxxxxx}",
    "s3PermissionsAuthenticatedUploads": "s3:PutObject",
    "s3UploadsPolicy": "Uploads_policy_{xxxxxxxx}",
    "s3PermissionsAuthenticatedProtected": "s3:PutObject,s3:GetObject,s3:DeleteObject",
    "s3ProtectedPolicy": "Protected_policy_{xxxxxxxx}",
    "s3PermissionsAuthenticatedPrivate": "s3:PutObject,s3:GetObject,s3:DeleteObject",
    "s3PrivatePolicy": "Private_policy_{xxxxxxxx}",
    "AuthenticatedAllowList": "ALLOW",
    "s3ReadPolicy": "read_policy_{xxxxxxxx}",
    "s3PermissionsGuestPublic": "DISALLOW",
    "s3PermissionsGuestUploads": "DISALLOW",
    "GuestAllowList": "DISALLOW",
    "triggerFunction": "NONE"
}

Where I called my function
  useEffect(() => {
    if (!checkEmpty(storeresultObject.front_coor)) {
      Storage.vault
        .get(storeresultObject.front)
        .then((result) => setfrontimg(result));
    }
    if (!checkEmpty(storeresultObject.rightside_coor)) {
      Storage.vault
        .get(storeresultObject.rightside)
        .then((result) => setrightimg(result));
    }
    if (!checkEmpty(storeresultObject.leftside_coor)) {
      Storage.vault
        .get(storeresultObject.leftside)
        .then((result) => setleftimg(result));
    }
    if (!checkEmpty(storeresultObject.back_coor)) {
      Storage.vault
        .get(storeresultObject.back)
        .then((result) => setbackimg(result));
    }
  }, []);

const response = await fetch(file.img);
        const blob = await response.blob();

        Storage.put(file.name, blob, {
          level: 'private',
          contentType: 'image/jpeg',
        }).then((result) => {
          console.log(result);

It's worth noticing that the same code and configuration works on my Android Emulator. Also calling Amplify Auth sometime takes 20 second to sign in. Don't know if this two issues are correlated . Anyone can tell me what is wrong? Thanks

Can you specify:
Environment(please complete the following information):

Amplify Framework Version: [e.g. 0.10.0]
Dependency Manager: [e.g. Cocoapods, Carthage]
Swift Version : [e.g. 5.0]

Device Information (please complete the following information):

Device: [e.g. iPhone6, Simulator]
iOS Version: [e.g. iOS 11]
Specific to simulators:

Also, can you verify that your bucket name is only lowercase alphanumeric characters ("a-z0-9") and dashes ("-"), and contains no special characters or periods (".")?

Can you specify:
Environment(please complete the following information):

Amplify Framework Version: [e.g. 0.10.0]
Dependency Manager: [e.g. Cocoapods, Carthage]
Swift Version : [e.g. 5.0]

Device Information (please complete the following information):

Device: [e.g. iPhone6, Simulator]
iOS Version: [e.g. iOS 11]
Specific to simulators:

Also, can you verify that your bucket name is only lowercase alphanumeric characters ("a-z0-9") and dashes ("-"), and contains no special characters or periods (".")?

The bucket name in parameters.json file only container lowercase alphanumeric characters with no period
Amplify version I think is 4.37.1
Dependency Manager is Cocoapods
{I used react native so I guess I don't have swift version?}
Device is IPhone 7 plus
IOS 14.2

Now it seems to work, however, each request sometimes takes 20 seconds and sometimes takes 4-5.

It seem to be like a Xcode bug or something


Remove Select operation from Text

What this PR does / why we need it:
Recently we moved presence to document from client and the role of Text.select has become replaceable. So we decided to remove Select operation from Text.
Which issue(s) this PR fixes:

Fixes #583
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Additional documentation:

Checklist:

[x] Added relevant tests or not required
[x] Didn't break anything

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

The migration appears to be challenging due to operations being stored in a binary format. To accomplish this task, we would need to retrieve operations from DB, unmarshal them using the previous version of the protobuf message and then marshal them again with the new version before storing them back in DB.
To avoid the migration process, how about retaining the orders in the protobuf message as they are?


SAMD51 PAC's use incorrect register offsets for tcc0::CCBUF_DITH4

There appears to be a mismatch between the TCC.CCBUF register definition found in the D5x/E5x datasheet (Revision E) and what is generated for SAMD51x family PACs.
In the case of the DITH4 resolution, the CCBUFn.CCBUF should occupy bits [23:4], and the CCBUFn.DITHERBUF occupies bits [3:0]. However, the PAC says that CCBUFn.CCBUF occupies [3:0] and the CCBUFn.DITHERBUF occupies [23:4]. The field offset and size has been swapped for CCBUF and DITHERBUF.
This seems to be an error present in the SVD files used to generate this crate, so that will have to be corrected for the PAC to generate correctly. So far I've checked SAMD51J19A and SAMD51G18A SVD's and they seem to both have the error.

I blame Atmel/Microchip XD

I blame Atmel/Microchip XD

I have and I will. B)

I have to regenerate all the PACs and then fix the HAL for another reason so it'll probably be done > with that set of changes.

Cool and good. What's the ETA on those changes?

When I get to it :stuck_out_tongue:

It's fixed on my fork, but it might be a little while before it gets merged because we wanna squeeze in some more hal reorganizing.

Love it, I was debating doing the same and fixing on a fork but you beat me to it! :confetti_ball: Keep up the great work!


JSX rendering dynamic TableHeaderColumn

I am trying to dynamically generate the TableHeaderColumn within the BootstrapTable component, although cannot do it and receive an error.
The following works:
<BootstrapTable
            data={products2} striped={true} hover={true} condensed={true} columnFilter={true} pagination={true} search={true}>
            <TableHeaderColumn dataField="id" isKey={true} dataAlign="left" width="70px" dataSort={true}>#</TableHeaderColumn>
            <TableHeaderColumn dataField="carfilename" dataSort={true} width="300px">Car filename</TableHeaderColumn>
            <TableHeaderColumn dataField="local" dataSort={true} width="300px">local</TableHeaderColumn>
            <TableHeaderColumn dataField="localDev" dataSort={true} width="300px">localDEV</TableHeaderColumn>
            <TableHeaderColumn dataField="DEV" dataSort={true} width="300px">DEV</TableHeaderColumn>
            <TableHeaderColumn dataField="TRN" dataSort={true} width="300px">TRN</TableHeaderColumn>
</BootstrapTable>

However I need to generate the environment columns dynamically, but the following does not work:
<BootstrapTable data={products2} striped={true} hover={true} condensed={true} columnFilter={true} pagination={true} search={true}>
      <TableHeaderColumn dataField="id" isKey={true} dataAlign="left" width="70px" dataSort={true}>#</TableHeaderColumn><TableHeaderColumn dataField="carfilename" dataSort={true} width="300px">Car filename</TableHeaderColumn>
      {envColumns}
</BootstrapTable>

Related code:
envColumns.push(<EnvironmentHeaderColumn envname={envvalue.envName} key={envkey} />);
var EnvironmentHeaderColumn = React.createClass({
    render: function () {
        var env = this.props.envname;
        // console.log('env is ' + env);

        return (
            <TableHeaderColumn dataField={env} dataAlign="center">{env}</TableHeaderColumn>
        );
    }
});

I receive the following error in Google Chrome:

Uncaught TypeError: Cannot read property 'children' of undefined

@tester5, sorry for lately reply,
Cause you leave one column in the BootstrapTable child, like your snippet,
<BootstrapTable data={products2} striped={true} hover={true} condensed={true} columnFilter={true} pagination={true} search={true}>
      <TableHeaderColumn dataField="id" isKey={true} dataAlign="left" width="70px" dataSort={true}>#</TableHeaderColumn><TableHeaderColumn dataField="carfilename" dataSort={true} width="300px">Car filename</TableHeaderColumn>
      {envColumns}
</BootstrapTable>

you can fix it by following:
<BootstrapTable data={products2} striped={true} hover={true} condensed={true} columnFilter={true} pagination={true} search={true} keyField='id'>
      {envColumns}
</BootstrapTable>

Thanks :)

Hi Allen,  thanks very much for your reply.  That did indeed fix the issue :)

I have a complicated json file that I have processed to render into a table.  However I wish to use this to populate the rows, athough the json file isn't in the format required, i.e. an array of objects with column names.  Do you have a suggested approach for dealing with this?

hi @tester5, we dont support this feature, like json imported or an array of objects for columns. so I think you can keep your solution currently. hope I've answer your question  ;P
Feel free to discuss with me

Hi Allen,  thanks for your reply.  We like your solution because it has column filtering, global search and sorting.  If we produce a json file that complies with your table, how can we apply conditional styling based on the value of a cell?  For example, cells with "Faulty" would be red or have a red label, and others would be normal.

Also, wondering how we can get the column headers and column filters to all align nicely by default?

thanks very much for your help Allen.  I managed to resolve some issues with column alignment (i.e. by fixing the # width) as well as use the advanced column filter.  I also used the column formatter and applied some conditional styling to it.  All good so far :)


Allow a same method call raise an exception and return a value on the following call.

Subject of the issue
I'm trying to implement a method that retries to save a record into the database when this exception is raised.
Then, I'm trying to create a scenario where the first save call raises that exception and the second one returns true and persists the record.
Your environment

Ruby version: 2.6.5
rspec-mocks version: 3.7.0

Steps to reproduce
require 'rspec'

DatabaseError = Class.new(RuntimeError)

class Foo
  ATTEMPTS = 2

  def bar
    @attempt ||= 1
    baz
  rescue DatabaseError
    if @attempt <= attempts
      @attempt += 1
      retry
    else
      # Do Something to finsh attempts
    end
  end

  def baz
    # Database Call Which can raise an error
    nil
  end
end

RSpec.describe Foo do
  describe '#bar' do
    subject(:foo) { described_class.new }

    context 'trying with 2 allows' do
      before do
        allow(foo).to receive(:baz).and_raise(DatabaseError)
        allow(foo).to receive(:baz).and_return(true)
      end

      it 'retries the operation' do
        expect(foo).to receive(:baz).exactly(2).times

        foo.bar
      end
    end

    context 'trying with just one allow' do
      before do
        allow(foo).to receive(:baz).and_raise(DatabaseError).and_return(true)
      end

      it 'retries the operation' do
        expect(foo).to receive(:baz).exactly(2).times

        foo.bar
      end
    end
  end
end

RSpec::ExampleGroups::Foo.run(RSpec.configuration.reporter)

Expected behavior
The test pass with the method #baz being called 2 times.
Actual behavior
Test break because just the mock that returns true is executed.

We support providing your own implementation:
times = 0
allow(foo).to receive(:baz) do
  return true if times > 0
  times +=1
  raise DatabaseError
end

@JonRowe Ok. Thanks.


fix : Too long return type fails to generate SDK #282

ts.TypeFormatFlags.NoTruncation apply
I don't know how to test it work correctly, so I need your help.

I have previously said in issue #282 that "the problem is that too long types are not properly deduced". This was very important to me, so I analyzed the TypeScript compiler and solved the problem. This problem was too simple. The problem was solved by simply passing the flag to the TypeScript compiler. In my code this worked perfectly. Unfortunately, however, I don't know if this works only with my code or how I can test the nestia library.
So I have no choice but to ask for your help for the next time. I would appreciate it if you could check the PR and reflect it if there is no problem.
Thank you always for making such a wonderful library.

@kakasoo Upgrade to<EMAIL_ADDRESS>then your problem would be resolved.

@kakasoo Upgrade to<EMAIL_ADDRESS>then your problem would be resolved.

Thx. This was absolutely necessary for me. Good night!