Dashboard component

Dashboard currently shows a list of the Work orders. In the dashboard you can click on the create work order button to create one. On the cards there is also an edit button that upon clicking brings up the option to edit the work order. In this menu you can either add a comment or mark the card as complete.

 As a user, I want to have my work orders persist

 As a user, I want to have my work orders persist


TypeScript error message not translated to "zh-CN" and "zh-TW"

VSCode Version: Code - Insiders 1.18.0-insider (8dfa696a1eb6ff67eb68925ddaa9e83d3c56b791, 2017-10-31T16:36:35.429Z)
OS Version: Linux x64 3.13.0-108-generic
Extensions: none

Testing #37182
Steps to Reproduce:

Screenshot shows case with --locale=de and "typescript.locale": "zh-CN". It is the same with --locale=zh-CN and zh-TW.

https://code.visualstudio.com/docs/getstarted/locales lists these locales.

@chrmarti Can you please try installing the final TS 2.6.1 build in your workspace and testing this again. You can also try using the next insiders build

Works for me in the latest insiders.


Enabled option to set 'items' inside swagger_api method

This will enable us to use, inside swagger_api method:
type :array
items({:"$ref" => "setup"})
This is intended to declare responses where the root JSON is itself an array.

:+1:


There's a way to not re-render a component when user backs?

I'm using hashHistory to router my components, the problem is that when user went back from component to the previous one, this previous component gets reloaded. How can I avoid that?

This is a bug tracker, not a support system. For usage questions, please use Stack Overflow or Reactiflux. Thanks!


connected components function requested

Hello,
I would appreciate ArangoDB's introducing a connected-component function to AQL.
The example of expected operation and (not-optimized) function's code is as follows:
print(FOR p IN myfunctions::graph::connected_components(graph_example, "to") RETURN p)
  [
    [ 0,1,2,3,4,6 ],
    [ 5,7 ]
  ]

graph_example = [
  {"_key": "0", "to": ["1", "2", "3"]},
  {"_key": "1", "to": ["2"]},
  {"_key": "2", "to": []},
  {"_key": "3", "to": ["4", "6"]},
  {"_key": "4", "to": []},
  {"_key": "5", "to": ["7"]},
  {"_key": "6", "to": []},
  {"_key": "7", "to": []]}
]

//       0
//     / | \
//    1--2  3
//          | \
//          4  6
//    5--7

aqlfunctions.register("myfunctions::graph::connected_components",
function (graph, to) {
  var G = {}, seen = [], components = [], push = Array.prototype.push;
  graph.forEach(function(n){G[n._key] = n.to})
  function notVisted(n) {return seen.indexOf(n) === -1;}
  function traverse(n) {
    seen.push(n);
    var nodes = [n];
    G[n].forEach(function(m){
      if (notVisted(m)) push.apply(nodes, traverse(m));
    });
    return nodes;
  }
  for (var n in G) {
    if (notVisted(n)) components.push(traverse(n));
  }
  return components;
}
)

+1 I that would be very useful

Since you need to visit all nodes you have, sounds like it will not scale well regardless whether implemented in AQL or not.
Currently AQL has the limitation that you can't  modify variables once assigned. You would definitely need that to do something like this.
This limitation was well chosen, since thats the only way to enshure the possibility of many optimizations.
So once such a stack or temporary storage would be implemented, a detection of its presence would instantly disable many optimizations.
To get better performance, you would probably have a top level query which iterates vertices filtering for a tag limiting it with 1. From that you would start an ArangoDB 2.8 traversal setting the already mentioned tag to all related vertices. You would run this query over and over, until no more items are found. You could probably then use collectto get graph vertices grouped - maybe limiting it to 1 so you also have a good starting point.

Create the sample graph:
var createTraversalExample = function() {
  var g = Graph._create("structured_graph",
    [Graph._relation("connecting", "item", "item")]
  );
  var c0 = g.item.save({name: "0", _key: "0"})._id;
  var c1 = g.item.save({name: "1", _key: "1"})._id;
  var c2 = g.item.save({name: "2", _key: "2"})._id;
  var c3 = g.item.save({name: "3", _key: "3"})._id;
  var c4 = g.item.save({name: "4", _key: "4"})._id;
  var c5 = g.item.save({name: "5", _key: "5"})._id;
  var c6 = g.item.save({name: "6", _key: "6"})._id;
  var c7 = g.item.save({name: "7", _key: "7"})._id;
  g.connecting.save(c0, c1, {});
  g.connecting.save(c0, c2, {});
  g.connecting.save(c0, c3, {});
  g.connecting.save(c1, c2, {});
  g.connecting.save(c3, c4, {});
  g.connecting.save(c3, c6, {});
  g.connecting.save(c5, c7, {});
  g.connecting.save(c0, c1, {});
  return g;
};

I wonder if the Pregel framework could be used to identify (strongly) connected components in distributed graph...

Determining connected components can be used to get DBSCAN. Its graph is generated as follows:
LET graph_example = (
  LET radius = 100
  FOR p IN geojson_points
    LET neigh = (
      FOR q IN WITHIN(points, p.geometry.coordinates[1], p.geometry.coordinates[
0], radius)
        RETURN q._key
    )
    FILTER LENGTH(neigh) > 1
    RETURN {"_key": p._key, "to": REMOVE_VALUE(neigh, p._key)}
)
print(FOR p IN myfunctions::graph::connected_components(graph_example, "to") RETURN p)

+1

Meanwhile, the Pregel graph processing system offers three different algorithms to determine connected components:
https://www.arangodb.com/docs/stable/graphs-pregel.html#connected-components


Instead of skipping the beacon if datafeed has not been initialized w…

…e skip the checks instead and perform the signed update

The only thing on this implementation doubts me is when reading on-chain data fails because of some rpc problem. If data feed is already initialized, this'll update on-chain value without checking any condition maybe it doesn't exceed the threshold so it burnt gas unnecessarily. Other than that, it looks safe.
How about changing only read-data-feed-with-id.ts to mimic previous dapiServer answer (returns 0 for both value and timestamp for uninitialized data feed). I tried both your implementation and mine, both of them works okay. Here is differences for suggested approach:
index f4cdd39..c04a817 100644
--- a/src/read-data-feed-with-id.ts
+++ b/src/read-data-feed-with-id.ts
@@ -8,6 +8,10 @@ export interface DataFeed {
   timestamp: number;
 }

+const nullValue = ethers.BigNumber.from('0x00');
+const nullTimestamp = 0;
+const uninitializedDataFeed = Object.assign([nullValue, nullTimestamp], { value: nullValue, timestamp: nullTimestamp });
+
 export const readDataFeedWithId = async (
   voidSigner: ethers.VoidSigner,
   dapiServer: DapiServer,
@@ -22,10 +26,13 @@ export const readDataFeedWithId = async (

   const goDataFeed = await go(() => dapiServer.connect(voidSigner).readDataFeedWithId(dataFeedId), {
     ...goOptions,
-    onAttemptError: (goError) =>
-      logger.warn(`Failed attempt to read data feed. Error: ${goError.error}`, logOptionsDapiServerAddress),
   });
+
   if (!goDataFeed.success) {
+    if ((goDataFeed.error as any).reason && (goDataFeed.error as any).reason === 'Data feed not initialized') {
+      logger.warn('🚀 DATA FEED NOT INITIALIZED!!!', logOptionsDapiServerAddress);
+      return uninitializedDataFeed;
+    }
     logger.warn(`Unable to read data feed. Error: ${goDataFeed.error}`, logOptionsDapiServerAddress);
     return null;
   }

Here is properly highlighted code for read-data-feed-with-id.ts:
import { DapiServer } from '@api3/airnode-protocol-v1';
import { GoAsyncOptions, go } from '@api3/promise-utils';
import { ethers } from 'ethers';
import { logger, LogOptionsOverride } from './logging';

export interface DataFeed {
  value: ethers.BigNumber;
  timestamp: number;
}

const nullValue = ethers.BigNumber.from('0x00');
const nullTimestamp = 0;
const uninitializedDataFeed = Object.assign([nullValue, nullTimestamp], { value: nullValue, timestamp: nullTimestamp });

export const readDataFeedWithId = async (
  voidSigner: ethers.VoidSigner,
  dapiServer: DapiServer,
  dataFeedId: string,
  goOptions: GoAsyncOptions,
  logOptions: LogOptionsOverride
): Promise<DataFeed | null> => {
  const logOptionsDapiServerAddress = {
    ...logOptions,
    meta: { ...logOptions.meta, 'Dapi-Server': dapiServer.address },
  };

  const goDataFeed = await go(() => dapiServer.connect(voidSigner).readDataFeedWithId(dataFeedId), {
    ...goOptions,
  });

  if (!goDataFeed.success) {
    if ((goDataFeed.error as any).reason && (goDataFeed.error as any).reason === 'Data feed not initialized') {
      logger.warn('🚀 DATA FEED NOT INITIALIZED!!!', logOptionsDapiServerAddress);
      return uninitializedDataFeed;
    }
    logger.warn(`Unable to read data feed. Error: ${goDataFeed.error}`, logOptionsDapiServerAddress);
    return null;
  }

  return goDataFeed.data;
};

it burnt gas unnecessarily

Yes, this might be an issue on mainnet. I don't know on other chains how much of an issue that would be. I guess it would depend on how long it would take us to find out about the RPC (or other) issue or how frequent an issue like that could happen.

How about changing only read-data-feed-with-id.ts to mimic previous dapiServer answer

I personally avoid as much as possible writing logic that depends on comparing strings but I guess I don't have a strong case against doing that this time. So I guess it might be fine to check the revert string after making all lowercase before comparing. Here when using tryMulticall to call readDatafeedValueWithId we will probably need to decode the revert string (I've seen a helper function to do this decoding somewhere, probably airnode repo or airnode-protocol-v1 test). Thanks for figuring this out! 👏🏻


AWS Lambda: File not found

I have been using plotly and kaleido for generating reports in AWS lambda for well over a year now and its suddenly erroring on the report generation:
[ERROR] FileNotFoundError: [Errno 2] No such file or directory: '/home/sbx_user1051/.kaleido-qp0_looo'

I do not reference /home anywhere and previously was not seeing this error. Is there any way I can override the use of /home, I fixed tempfiles temp dir to /tmp but this still does not stop the error. I do not understand why this has started happening out of the blue.

Hi @paulalex, did you recently upgrade kaleido? There is a prelease version of kaleido out that might cause this error but you would only get it if you used pip install --pre kaleido, it is not "officially" launched yet. Let me know what version you are using, it sounds like you are using a release candidate.
That said, I really appreciate this error report. The problem is that ubuntu/snap is now segmenting temporary files by process so that /tmp no longer behaves as expected, nor can be used to share data between processes. I will try to improve the error output, but if you would like to continue using the new version please show me the line of code you use to call kaleido and I will help you enable debugging so I can see more context. Thank you!

@ayjayt, I have looked at the requirements.txt file which is inside the container (generated from a pip file) and it has the following dependencies for kaleido and plotly:
kaleido==0.2.1
plotly==5.24.1;

However the dev environment image has the following dependencies (exactly as you assumed):
kaleido==0.4.0rc5
plotly==5.24.1

My pip file does have allow_prereleases = true so I could fix this by setting this to false and I am testing now with fixed dependencies and also this property set to false. I would prefer not to have to pin to versions (irrespective of whether I do not allow pre releases) but I am unsure of the best path forwards right, if you have any advice around how to successfully upgrade it would be much appreciated.

Hi! I think we will have some other options for you by tomorrow, maybe EOD today.

@paulalex, a new version of kaleido was pushed- it is not a rc so unless you pin all your systems will use it. This version of kaleido requires chrome to be installed separately.
It now tries to detect if the user is using canonical's snap- and if they are not it does normal  /tmp instead of /home/$USER/.tmpdir. However, there is also now a KALEIDO_TMP_PATH environmental variable which can override all other logic.


Update Analysis-IG in interest-groups.md

This pull request updates the description for the Analysis-IG as submitted to the Board on 6 May 2024

Thank you, @mss2221


Non-english language pack fixes

Bunch-o-fixes to get non-english language packs building. See each commit for a breakdown of the fixes made.

Test failure.

Good to go @rtibbles.

Merging this now, so I can get language packs building overnight :)


domain routes don't work on client

Describe the problem
domain routes don't work on my ubuntu and windows clients, i can ping my other docker peer either by its netbird ip or name, i can even ping a local machine (in the peer's network) by using an ip route, but domain routes don't work
I verified that the domain is resolvable and accessible inside my peer's docker container, and that the container has the 3 needed cap_adds
The domain route is correctly setup, with the docker peer as routing peer, and the distribution group assigned to the clients
i even tried hosting a webserver with the route's domain name inside the docker peer, with no avail
The only workaround is to create an ip route and manually add the domain mapping in the client hosts file, which is unpractical
Potentially related to https://github.com/netbirdio/netbird/issues/1788

To Reproduce
Steps to reproduce the behavior:

I created a domain route with the docker peer as routing peer, and the distribution group of the client
use netbird up (with debug flags)

Expected behavior
The client should ping and connect to the domain of the domain route successfully

NetBird version
0.28.4 for:

Self hosted management
docker peer
ubuntu client
windows client

Outputs
netbird up debug log (ubuntu client):
024-07-22T19:26:52+02:00 INFO client/internal/acl/manager.go:52: ACL rules processed in: 1.138681ms, total rules count: 2
2024-07-22T19:26:53+02:00 ERRO client/internal/routemanager/dynamic/route.go:165: Failed to resolve domains for route [mydomain.com]: resolve domains: 1 errors occurred:
	* resolve d mydomain.com: lookup mydomain.com on <IP_ADDRESS>:53: no such host
2024-07-22T19:26:53+02:00 ERRO client/internal/routemanager/dynamic/route.go:165: Failed to resolve domains for route [mydomain.com]: resolve domains: 1 errors occurred:
	* resolve d mydomain.com: lookup mydomain.com on <IP_ADDRESS>:53: no such host
2024-07-22T19:26:53+02:00 ERRO client/internal/routemanager/dynamic/route.go:165: Failed to resolve domains for route [mydomain.com]: resolve domains: 1 errors occurred:
	* resolve d mydomain.com: lookup mydomain.com on <IP_ADDRESS>:53: no such host

client ping error (ubuntu client):
ping: mydomain.com: Temporary failure in name resolution

netbird status (ubuntu client):
Peers detail:
 mydockerpeer.netbird.selfhosted:
  NetBird IP: <IP_ADDRESS>
  Public key: *removed*
  Status: Connected
  -- detail --
  Connection type: P2P
  Direct: true
  ICE candidate (Local/Remote): host/srflx
  ICE candidate endpoints (Local/Remote): <IP_ADDRESS>:51820/<IP_ADDRESS>:51820
  Last connection update: 22 seconds ago
  Last WireGuard handshake: 10 seconds ago
  Transfer status (received/sent) 420 B/660 B
  Quantum resistance: false
  Routes: -
  Latency: 61.711842ms

OS: linux/amd64
Daemon version: 0.28.4
CLI version: 0.28.4
Management: Connected to https://anon-HPxz3.domain:8080
Signal: Connected to https://anon-HPxz3.domain:8080
Relays:
  [stun:anon-HPxz3.domain:3478] is Available
  [turn:anon-HPxz3.domain:3478?transport=udp] is Available
Nameservers:
FQDN: myclient.netbird.selfhosted
NetBird IP: <IP_ADDRESS>/16
Interface type: Kernel
Quantum resistance: false
Routes: -
Peers count: 1/1 Connected

That's the issue then. The clients must be able to resolve the domain for the route to be added.
If this is a private domain you could set the DNS server for the clients to the private one that can resolve it (plus add the route for the DNS server itself)

DNS won't give access, it will only expose the IP addresses.
You'll have DNS resolution on the routing clients, which will route their traffic to the routing peer.


distinction between selling/ exchanging/ gifting the 'resources' (i.e. the edge type)

and being able to determine what was exchanged for what
e.g.

food for money
labour for soil
gift of surplus food (food 'waste')

The resource type is freeform enough to allow this - see https://uoa-eresearch.github.io/dynamic_network_graph/#5049 - does this suffice?


Update dependencies

What does this PR change? What problem does it solve?
Update all dependencies. Checking the updated dependencies didn't show any particularly interesting changes.
The only noteworthy change is https://github.com/pkg/xattr/releases/tag/v0.4.8 which partially obsolete #3845.
Was the change previously discussed in an issue or on the forum?
No.

Checklist

[x] I have read the contribution guidelines.
[x] I have enabled maintainer edits.
[ ] I have added tests for all code changes.
[ ] I have added documentation for relevant changes (in the manual).
[ ] There's a new file in changelog/unreleased/ that describes the changes for our users (see template).
[x] I have run gofmt on the code in all commits.
[x] All commit messages are formatted in the same style as the other commits in the repo.
[x] I'm done! This pull request is ready for review.

I've slightly updated the dependencies again, nothing noteworthy.


[T4A2][T15-A1] LIN MINHUI

Ready for review

@lmh1234
Some comments added. Please ack & close the PR after reading comments.


Add ElasticSearch 7.4.2 to docker stack

Adding ElasticSearch 7.4.2 to our docker stack and configuring connectivity.

Additions

ElasticSearch 7.4.2 to Docker Deployments

How to test this PR

Check the Docker Deployment for a running ElasticSearch 7.4.2

Notes and todos

Check Twistlock to confirm no critical issues with the ElasticSearch 7.4.2 image

Checklist

[ ] PR has an informative and human-readable title

PR titles are used to generate the change log in releases; good ones make that easier to scan.
Consider prefixing, e.g., "Mega Menu: fix layout bug", or "Docs: Update Docker installation instructions".

[ ] Changes are limited to a single goal (no scope creep)
[ ] Code follows the standards laid out in the CFPB development guidelines
[ ] Future todos are captured in comments and/or tickets
[ ] Project documentation has been updated, potentially one or more of:

This repo’s docs (edit the files in the /docs folder) – for basic, close-to-the-code docs on working with this repo
CFGOV/platform wiki on GHE – for internal CFPB developer guidance
CFPB/hubcap wiki on GHE – for internal CFPB design and content guidance

Closed - Broken down into multiple smaller PRs including #6052 and #6057


chore(localize): updated translation from Crowdin

:tada: This PR is included in version 2.28.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Library doesn't install, and causes error on load

I'm getting the following errors:
Unhandled JS Exception: Seems you're trying to access 'ReactNative.createClass' from the 'react-native' package. Perhaps you meant to access 'React.createClass' from the 'react' package instead?

For example, instead of:

  import React, { Component, View } from 'react-native';

You should now do:

  import React, { Component } from 'react';
  import { View } from 'react-native';

Check the release notes on how to upgrade your code - https://github.com/facebook/react-native/releases/tag/v0.25.1

Is this Library still being maintained?

I'm having a similar issue (it just happens to show in Xcode instead) I guess this project has been abandoned...

https://github.com/silentcloud/react-native-swipeout
This is a republish of the project you have, with the issues allegedly fixed.

i have been into this issue for one day then i figure it out.
the right library is  [https://www.npmjs.com/package/react-native-swipe-out](this one)
npm install react-native-swipe-out

I have already published version to 2.0.13.


[Question] Auto attach volume to another node when the current attached node disappears or gets destroyed ?

Question
Hi, I am using DigitalOcean and the nodes can be recycled or rebuilt at any time. I tested this yesterday evening but didn't get the results I was hoping. I am probably doing it wrong.
In longhorn ui it still states that it is attached to a node that has been destroyed..

The node ending in 39ke7 was destroyed and a new one was built. I also notice that the replicas are not complete
For example the node ending in 39kl5 was the one that replaced the 39ke7, its there but its not automatically added as a replica. I think this is because the attached node no longer exists

I did set this setting in the settings, I was hoping for the attached node to recover by being attached on a different node.

Can somebody help ?
I came over from glusterfs and the experience has been great but I can't get the volume to attach to a new node
Any ideas ?
Thanks.

Can you attach a support bundle, you can create this via the longhorn ui.
Was the old node removed from kubernetes kubectl get nodes

Can you attach a support bundle, you can create this via the longhorn ui.
Was the old node removed from kubernetes kubectl get nodes

Hi, thanks for the quick response. Yes the node was removed from kubectl, it was destroyed and another recreated in its place
NAME                     STATUS   ROLES    AGE    VERSION
pool-rndlabs-old-39kgm   Ready       119m   v1.19.3
pool-rndlabs-old-39kl5   Ready       69m    v1.19.3
pool-rndlabs-old-39krt   Ready       141m   v1.19.3
attached is the support bundle. ( I zipped it - I hope that's ok)
longhorn-support-bundle_f3f85f0c-acfd-479f-9a4d-6476fc282372_2021-01-29T11-43-39Z.zip

Hi, thanks for the quick response. Yes the node was removed from kubectl, it was destroyed and another recreated in its place
NAME                     STATUS   ROLES    AGE    VERSION
pool-rndlabs-old-39kgm   Ready       119m   v1.19.3
pool-rndlabs-old-39kl5   Ready       69m    v1.19.3
pool-rndlabs-old-39krt   Ready       141m   v1.19.3
attached is the support bundle. ( I zipped it - I hope that's ok)
longhorn-support-bundle_f3f85f0c-acfd-479f-9a4d-6476fc282372_2021-01-29T11-43-39Z.zip

I did another quick test, same as before, but I detached the volume as it says it was attached to a node that no longer exists.
I re-attached it to a good node, and then all the replicas started up and everything was working again, healthy, 3 nodes - all good.
So now to repeat the process ( I am trying to feel certain that the volume re-attached to another node - because this test I am doing is a real world situation that can happy as DigitalOcean can destroy nodes)
I now took the new node where the volume was attached and recycled it (which effectively means destroying it and replacing it with another).
And the same thing happens, the new node is created but in longhorn it has 0 replicas.
And the volume is still set to be attached to the destroyed node.
Hope that helps, although it was the same process as before.
I supposed the support under has far more info than what I offered anyway..
Cheers.

I did another quick test, same as before, but I detached the volume as it says it was attached to a node that no longer exists.
I re-attached it to a good node, and then all the replicas started up and everything was working again, healthy, 3 nodes - all good.
So now to repeat the process ( I am trying to feel certain that the volume re-attached to another node - because this test I am doing is a real world situation that can happy as DigitalOcean can destroy nodes)
I now took the new node where the volume was attached and recycled it (which effectively means destroying it and replacing it with another).
And the same thing happens, the new node is created but in longhorn it has 0 replicas.
And the volume is still set to be attached to the destroyed node.
Hope that helps, although it was the same process as before.
I supposed the support under has far more info than what I offered anyway..
Cheers.

@yasker This is most likely a bug on our end, I didn't have time to do a deep dive just yet.
But the manager keeps spamming the log with the below, which makes me think that we are failing to cleanup some resources/relationships.
2021-01-29T11:37:21.480435238Z time="2021-01-29T11:37:21Z" level=warning msg="The related node pool-rndlabs-old-39ke7 of instance test-e-92895343 is down or deleted, will mark the instance as state UNKNOWN"
2021-01-29T11:37:51.480389921Z time="2021-01-29T11:37:51Z" level=debug msg="cannot find instance manager instance-manager-e-2435c3ae"

@yasker This is most likely a bug on our end, I didn't have time to do a deep dive just yet.
But the manager keeps spamming the log with the below, which makes me think that we are failing to cleanup some resources/relationships.
2021-01-29T11:37:21.480435238Z time="2021-01-29T11:37:21Z" level=warning msg="The related node pool-rndlabs-old-39ke7 of instance test-e-92895343 is down or deleted, will mark the instance as state UNKNOWN"
2021-01-29T11:37:51.480389921Z time="2021-01-29T11:37:51Z" level=debug msg="cannot find instance manager instance-manager-e-2435c3ae"

@iangregsondev
We checked the support bundle and see that the volume isn't used by any workload pod. Did you attach the volume to node using Longhorn UI? In this case, Longhorn doesn't move the volume to a new node because there is no need to do so (i.e., no workload is using it)
Can use try to deploy a workload (example) then shutdown, delete, create the node where the workload is running on? You should see that workload move to new node, volume attach to new node, Longhorn rebuild replica on the new node.
By the way, if you want to do node maintenance (you control when to delete/remove/add the node), you can follow our document to properly tear down everything.

Thank you, everyone, I knew it had to be me. I have tested it now and all seems well by creating a storageClass.
Thanks for all your help, excellent support!
I will close this.


Tweaks

Ignores generated files in soap-authentication and fixes javadoc error.

I may actually need to revert this one; because the generated source files must be kept and shipped with CAS.

Second thought; that is not really a problem as the files are always auto-generated. The issue could be that when one first loads the project into the IDE, there would be compile-errors until a build is actually run once?.

if that... pretty sure they're created as part of the build. certainly updated every compile task run.


Added an option for UPI payment using a QR code

Cannot access it in the program since it is not available in the menu, but have checked implementation and it works.

Hi @surajkadapa I'm not able to build your code due to errors. I cannot merge this PR. Closing it now


eks-managed-node-group module: vpc_security_group_ids is not working when use_custom_launch_template = false

Description
My tf file sample:
module "eks_managed_node_group_work_node" {
  source = "terraform-aws-modules/eks/aws//modules/eks-managed-node-group"

  name            = "ng-${var.env}-${var.prd}-performance-test"
  use_name_prefix = false
  cluster_name    = data.aws_eks_cluster.eks-cluster.name
  cluster_version = data.aws_eks_cluster.eks-cluster.version
  subnet_ids      = data.aws_subnets.subnet-private.ids

  // The following variables are necessary if you use the module outside the parent EKS module context.
  // Without it, the security groups of the nodes are empty and thus won't join the cluster.
  cluster_primary_security_group_id = data.aws_eks_cluster.eks-cluster.vpc_config[0].cluster_security_group_id
  vpc_security_group_ids            = [data.aws_security_group.ec2-sg.id]

  min_size                   = 1
  max_size                   = 10
  desired_size               = 1
  disk_size                  = 50
  use_custom_launch_template = false

  instance_types = ["t3.xlarge"]
  capacity_type  = "ON_DEMAND"

  create_iam_role = false
  iam_role_arn    = data.aws_iam_role.eks-default-nodegroup-ec2role.arn

  labels = {
    project_name = "${var.prd}-wecom"
  }
}

Version info:
terraform-aws-modules/eks/aws 19.15.3

hashicorp/aws v5.3.0
hashicorp/kubernetes v2.21.1
hashicorp/cloudinit v2.3.2

The generated ec2 node will only have the "data.aws_eks_cluster.eks-cluster.vpc_config[0].cluster_security_group_id" part security group, but the vpc_security_group_ids sg hasn't been included.
When I removed "use_custom_launch_template = false", the vpc_security_group_ids will work. But I can't change the node volume size.
How can I make them work both?
Thanks,
Eason

@bryantbiggs  - same happens here,
everything works,
unless  i set the use_custom_launch_template =false and then SGs provided through the vpc_security_group_ids get ignored , could you please share your understanding, as to why this happens?


Travis: set sudo to false for quicker builds

:+1:

LGTM

@bryanlatten @jimdelois one of you needs to merge this as I don't have privileges


Crash | server is crashing after "go to references"

I'm not sure yet what triggers this behavior, and the LspLog does not contain information
from the server.
Is there a log file that we can investigate?

pls check /tmp/cscsope_lsp.log

I don't see anything useful...
cscope_lsp.log

is this happening always? how do you know it crashes?

is this happening always? how do you know it crashes?

It happens after some usages...
Don't know exactly why and how to reproduce, but working on a project for some time - generates a crash...
I know it does not appear anymore in LspInfo buffer - but the cscope_lsp process is apparently still running.
Maybe it loses connection somehow?

you might want to check logs when it fails.
from your logs it seems to to working fine.

Also, can you provide nvim config that you use for this lsp

Also, can you provide nvim config that you use for this lsp

My configuration can be found here.
As for the logs - whenever the server is lost the logs look fine (the same as I attached bellow).


empty cells not divided by commas

In a CSV file generated, it appears that at least some of the cells that are empty are not marked properly - as a result the column for "favorites" contains what should be in "text", and so on - the database is unworkable as a result.
I'm wondering if there is a way to correct this on my side.  It appears that it is broken in instances when a long www address is part of the text (with /?mbid=social_facebook&amp&utm_brand=p4k&amp... etc.) syntax

maybe add an image of what you're talking about

Fair point. An example of a problematic row (the web address should not be divided into separate cells, but it is):

05/04/18 03:50 PM
wirewoolevents
ajktarttelin
0
3
4
You can meet Abigail Tarttelin in person at @OctoberBooks on June 20th! She'll be talking about #DeadGirls #feminism + much more. Tickets + further details at http://wirewoolevents.com

@OctoberBooks
#DeadGirls #feminism
9.92E+17
https://twitter.com/wirewoolevents/status/992431262278340609

hashb=0d21ffa86be79e79e49c53fe47757525b01c14ed&amp
hashc=7cfdc8aa86c8f74c5a6443daa871a23a1e7dd5e0f25610faa690d28aa9a9d8df&amp
esrc=VOG_NWSLTR_STYSHOP2&amp
utm_term=VOG_Runway&amp

OK, so I narrowed it down to two culprits that are most likely causing trouble:
&amp,
&gt",
after removing these from .csv in Notepad++, the number of broken rows dropped from 15k (out of 180k) to about 1k, which is already fine.


Add consolelink permissions to cluster role

Signed-off-by: Ruben Vargas<EMAIL_ADDRESS>

Could you run the "generate CSV" command and see if the next CSV will include this change? The release script has a step where it generates the CSV for the new version, you can use that as reference.

I ran this command:
operator-sdk generate csv --csv-channel=stable --csv-version="1.19.1" --from-version="1.19.0"
And it seems like the change is included on the manifest.

@kevinearls, @rubenvp8510, there's a failing test. Is it a known issue?

    TestDaemonSetSuite/TestDaemonSet: daemonset_test.go:151:
        	Error Trace:	daemonset_test.go:151
        	Error:      	Received unexpected error:
        	            	timed out waiting for the condition
        	Test:       	TestDaemonSetSuite/TestDaemonSet
        	Messages:   	Failed waiting for expected content

@rubenvp8510, could you rebase the PR? This test failure has been fixed in the latest master.

Rebased,  is green now


METRON-2316: [UI] Drag drop sorting for the selected fields in the Alerts UI

Contributor Comments
Link to the ASF Jira ticket: https://issues.apache.org/jira/browse/METRON-2316
Currently, the users are able to change the order of the columns in the alerts list table by clicking the arrow buttons on the right side of each list item (in the configure table pane).
But it would be more comfortable if we allowed the user to rearrange the columns by using drag and drop.
This PR introduces this capability of the Alerts UI application.
Testing

Go to the Alerts UI and somehow generate a list of alerts on the screen
Click on the cog icon above the table, on the top right corner
Grab a column item on the left side of the pane
Put it somewhere else in the list (at the beginning, at the end, somewhere between the two)
You can also add new columns to the list from the right side of the pane
Try to rearrange the columns on the left involving the newly added columns

Demo

Pull Request Checklist
Thank you for submitting a contribution to Apache Metron.
Please refer to our Development Guidelines for the complete guide to follow for contributions.
Please refer also to our Build Verification Guidelines for complete smoke testing guides.
In order to streamline the review of the contribution we ask you follow these guidelines and ask you to double check the following:
For all changes:

[X] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.
[X] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
[X] Has your PR been rebased against the latest commit within the target branch (typically master)?

For code changes:

[X] Have you included steps to reproduce the behavior or problem that is being changed or addressed?

[X] Have you included steps or a guide to how the change may be verified and tested manually?

[X] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:
mvn -q clean integration-test install && dev-utilities/build-utils/verify_licenses.sh

[X] Have you written or updated unit tests and or integration tests to verify your changes?

[X] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

[X] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

For documentation related changes:

[X] Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? If not then run the following commands and the verify changes via site-book/target/site/index.html:
cd site-book
mvn site

[ ] Have you ensured that any documentation diagrams have been updated, along with their source files, using draw.io? See Metron Development Guidelines for instructions.

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
It is also recommended that travis-ci is set up for your personal repository such that your branches are built there before submitting a pull request.

@ruffle1986 Once again, really nice work. Thanks for the thorough documentation of what you did. Not only does it help with my understanding, it also will help future users understand what we are doing here since we are deviating from the normal use of Dragula (for the good reason, as you pointed out).
I'm good with everything you've done, but I'm wondering if we should keep the up/down arrows for arranging columns. On the one hand, part of me wants to keep it for accessibility reasons (although we need to make it tab-able and add a key event binding to make that happen). On the other hand, I wonder if we are actually confusing users by keeping the up/down arrows. Maybe we should go with the first suggestion since it's a low amount of effort, and if we get feedback in Slack or the mailing list that it's confusing users, we can remove it. Are you good with this?

Thank you, @sardell. I'm glad you like it. Dragula is fine. It's just the nature of Alerts UI why I had to choose the sideway.
I agree. Let's ask users about the arrow buttons and if they confuse people, we should definitely get rid of them.

@ruffle1986 I opened a PR against your branch which adds keyboard accessibility to the up/down arrows. Let's keep them for now, and in the future, if we hear from the users via the mailing list or Slack that it's causing confusion or not helping, we can remove them (or hide them until triggered by a keyboard user navigating through the page).

+1. Thanks for the contribution, @ruffle1986!


Find a way to handle externally defined gates

The OQ3 spec does not provide a way to declare that gates are defined externally. The closest thing to this is included files, for example stdgates.inc. But this file is meant to include not only gate declarations, but rather gate definitions.
We might expect that a backend has its own definitions of some standard gates. It would be useful if this could be indicated in an OQ3 program, much as an external function can be declared via extern. For example, we might use one of
extern gate crx(theta) a, b;
gate crx(theta) a, b;

On the other hand, the spec currently allows this syntax
gate crx(theta) a, b {}

However, this already has a meaning; a gate that does nothing. Nonetheless, in the short term, the latter is what we will use.
As a short term action item, we need to do something sensible with a stdgates.inc that makes declarations in this way.
Example dummy or "declaration" file.
 The existing gate with definition mechanism is fine: the mapping to Qiskit objects is handled purely by Qiskit, and it's up to that to verify if a symbol is compatible with being represented with a Qiskit built-in.
A backend can absolutely supply a definition file with empty definitions if it chooses, but the parser doesn't need any special handling for that.

I'm not thinking about just the parser, but more about the language.
I'm thinking of an analogy with C. If I want to call sqrt(x), I need
extern double sqrt(double x);
double x = 1.0;
sqrt(x);

Just sqrt(x); is not a semantically valid program because the the symbol sqrt is undefined (in a sense, it's "undeclared").
This is independent of the backend. (In practice, for C, math.h is tied to the backend).
In the same way, this is not semantically valid OQ3
qubit q;
h q;

because h is undefined. You wrote

backend can absolutely supply a definition file with empty definitions if it chooses

which to me implies that the definition/declaration of h is optional. In this case the program above is semantically correct. Then we need to add this to the OQ3 spec: gates do not need to be declared. Furthermore, as a consequence, a more-or-less general purpose parser cannot check that a gate call passes the correct number of angle args and qubit args.
We could say that gate h q {} is a declaration. But that should also go in the spec. We could instead consider this declaration to be an extension for a  QASM to Qiskit transpiler. Then at a minimum, the qiskit importer would have to require that built in gates are declared this way. That is if we want to parser/analyzer (this repo) to be useful for more than just Qiskit.
Furthermore all the backends would have the same problem, and each would solve it in an ad hoc way.
In any case, in the near term, as we don't have even one consumer yet, I think using empty gate definition bodies is good enough.


App crashing while loading table

Hey @farukEncoded, which version of mui-datatables and material ui are you using ?

Hey @farukEncoded, which version of mui-datatables and material ui are you using ?

"@material-ui/core": "^4.11.0",
"mui-datatables": "^3.7.7",

Hey @farukEncoded,  would  you be provide the columns, options and data or sample code sand box if possible ?

Hey @farukEncoded, would you be provide the columns, options and data or sample code sand box if possible ?

I found the issue, I was passing an object instead of an array as data prop in the table, and that was crashing the page.

That's great!, As the issue was resolved, can you close this issue.


Explicit Instantiation Unit Test

This PR adds a new unit test that performs explicit template instantiation for many of the most common math and tree classes. As the explicit template instantiation does a full instantiation of all methods, this catches errors in the VDB API that have not been noticed because they either haven't been instantiated by anything in the OpenVDB library or reported by any of our users who have attempted to call them. One simple example is RootNode::stealChild(const MapCIter& i, ...) - attempting to call this method results in a compile error as you cannot steal data from a const iterator.
The biggest change here is introducing ConstValueIter, ConstChildIter and ConstDenseIter. Currently, non-const base iterators are used even for const iterators (such as using ValueOnCIter = typename BaseLeaf::template ValueIter<...>) with a comment not to call these methods (such as // Note: setItem() can't be called on const iterators.). This change could also be implemented using SFINAE, but I felt introducing new iterators was cleaner.
Here's the summary of changes to get this new unit test to compile:

New ConstValueIter, ConstChildIter and ConstDenseIter classes - the same as the non-const iterators but with no setItem() or modifyItem() calls, rewire all RootNode, InternalNode and LeafNode iterator aliases for const iterators.
Move operator<<(ostream&) method for LeafNode buffer into LeafBuffer and use public method to access data.
Remove RootNode::stealChild(const MapCIter& i, ...) method.
Add RootNode::probeLeaf(const Coord&) definition, which was previously declared but not defined.
Fix compile error in Quat read(ostream&) and write(istream&) by using reinterpret_cast instead of static_cast.
Fix compile error in Mat3::setSkew() by passing correct template parameter.
Fix lots of float conversion warnings in Mat, Mat4 and Quat by using static_cast.
Fix warning in VecT::unitSafe() where it was treating a float value as a bool instead of comparing with zero.

Ultimately, I expect we would probably remove this unit test (as it's not really a unit test, but a compile test) when we introduce proper explicit template instantiation as part of the library, but this at least tests that no new errors are introduced in the interim.

I'm going to close this PR and keep it on my own local branch. Given that this is no longer priority for 9.0 because we're not intending to explicitly instantiate anything in the OpenVDB hierarchy or math classes and that the changes are fairly extensive, seems like it would be good to just drop this PR for the time being and come back to it at a later date if needed.


Code snippet

As a developer
I want to be able use a Code component
so that I can easily add code snippets
The component should contain:

[x] embedded className called dcx-code
[x] relevant classes for shared / reusable styling
[x] the ability to specify the value of the label
[x]  the ability to specify other props (...props)

Code snippet behind the scenes is a code tag:
code

The final user will use in this way:
<CodeSnippet>my code</CodeSnippet>

and the outcome will be something like this:
code

Tasks:

[x] Add unit tests
[x] Add Application code with commented props
[x] Add the ability to specify other props (...props)
[x] Add Demo use of component
[x] Add to storybook documentation file with examples (.mdx)  in a section called Typography
[x] Add to live demo

Please follow the below to create your branch
git checkout release/0.8
git pull
git checkout -b 'feature/code'

closed by https://github.com/Capgemini/dcx-react-library/pull/507


Fix the overlapping style issue in render function of field_note

This pull request fixes the issue outlined in #111  .

Awesome work @anirudhaCodes, this is fantastic!


has_field? not working with new syntax class: "XXX"

According to #1755 in 2.9.x we are going to be able to do:
expect(page).to have_field(class: 'xxx', with: 'value')
It's not working for me,

[1] pry(XXX)> page.has_field?(class: 'retencion_ganancias_numero_certificado')
=> false
[2] pry(XXX)> page.has_field?(class: '.retencion_ganancias_numero_certificado')
=> false
[3] pry(XXX)> page.find('.retencion_ganancias_numero_certificado')
=> #<Capybara::Node::Element tag="input" path="//HTML[1]/BODY[1]/DIV[1]/DIV[2]/DIV[1]/FORM[1]/DIV[10]/DIV[1]/TABLE[1]/TBODY[1]/TR[1]/TD[1]/TABLE[1]/TBODY[1]/TR[1]/TD[2]/INPUT[2]">
[4] pry(XXX)> page.find('.retencion_ganancias_numero_certificado').value
=> "00000001"
[5] pry(XXX)> page.has_field?(class: 'retencion_ganancias_numero_certificado', with: '00000001')
=> false
[6] pry(XXX)> Capybara::VERSION
=> "2.9.2"

The complete example,
    scenario 'crea nuevo' do
      visit new_empresa_pago_path(test_empresa)

      fill_in 'pago[fecha]',         with: '2016-09-03'
      fill_in 'pago[punto_emision]', with: '4'
      fill_in 'pago[numero]',        with: '1'
      select "#{proveedor.codigo} - #{proveedor.nombre}", from: 'pago[proveedor_id]'
      click_on 'retencion_ganancias_agregar'
      within '#tabla_retenciones_ganancias > tbody > tr:last-of-type' do
        find('.retencion_ganancias_fecha').set '2016-09-01'
        find('.retencion_ganancias_punto_emision').set '4'
        find('.retencion_ganancias_numero_certificado').click
        expect(page).to have_field(class: 'retencion_ganancias_numero_certificado', with: '00000001')
        ------- truncated --------

Poltergeist 1.10.0 / Phantomjs 2.1.1

Unfortunately I may have mispoken in #1755 - and the ability to do it exactly like that may not be there until 2.10 (I have to read what I put in the release announcement and determine whether it can be released as a "bug" fix or whether its a "new" feature).  For now you should be able to do
expect(page).to have_field(nil, class: 'xxx', with: 'value')

or
expect(page).to have_selector(:field, class: 'xxx', with: 'value')

Ok I will stick to,
expect(page).to have_selector(:field, class: 'xxx', with: 'value')
that is working meanwhile.
Thanks

@twalpole also I found this but not sure if it's a bug or not supported (hidden field):
[19] pry(XXX)> page.find('.retencion_ganancias_destroy', visible: false)
=> #<Capybara::Node::Element tag="input" path="//HTML[1]/BODY[1]/DIV[1]/DIV[2]/DIV[1]/FORM[1]/DIV[10]/DIV[1]/TABLE[1]/TBODY[1]/TR[1]/TD[2]/INPUT[6]">
[20] pry(XXX)> page.has_selector?(:field, class: 'retencion_ganancias_destroy', visible: false)
=> false
[21] pry(XXX)> page.has_selector?(:field, class: 'retencion_ganancias_destroy', visible: false, type: 'hidden')
=> false

@vizcay  The :field selector - https://github.com/jnicklas/capybara/blob/master/lib/capybara/selector.rb#L53 - is specifically defined not to include fields of type 'hidden'.  To test for that you'd need to do something like
expect(page).to have_css('input[type="hidden"].retencion_ganancias_destroy', visible: false)

or if you're doing it a lot, create your own custom selector
Capybara.add_selector(:hidden_field) do
   xpath(:name) do |locator, options|
     xpath = XPath.descendant(:input)[XPath.attr(:type).equals('hidden')]
     locate_field(xpath, locator, options)
   end
end

which you could then use as
page.has_selector?(:hidden_field, class: 'retencion_ganancias_destroy', visible: false)

The need to pass 'visible: false' to that is unfortunate so I should probably implement a way for selectors to override the default visibility setting in a future release

@twalpole yes but usually I'm checking the value of a field:
expect(page).to have_css('input[type="hidden"][value="xxx"].retencion_ganancias_destroy', visible: false)
that looks like too much.. so I will explore the custom selector route.. this will be ideal:
page.has_selector?(:hidden_field, class: 'retencion_ganancias_destroy', with: 'xxx')
Thanks

@vizcay to  add value checking to the custom selector, just add a 'with' filter (or import it from the field filter set)
Capybara.add_selector(:hidden_field) do
   xpath(:name) do |locator, options|
     xpath = XPath.descendant(:input)[XPath.attr(:type).equals('hidden')]
     locate_field(xpath, locator, options)
   end

   filter(:with) do |node, with|
     with.is_a?(Regexp) ? node.value =~ with : node.value == with.to_s
   end
end

or
Capybara.add_selector(:hidden_field) do
   xpath(:name) do |locator, options|
     xpath = XPath.descendant(:input)[XPath.attr(:type).equals('hidden')]
     locate_field(xpath, locator, options)
   end

   filter_set(:field)  # import all filters from the :field selector
   #filter_set(:field, [:with])  #only import the :with filter from the :field selector
end

@vizcay Just as a note -- the reason to implement the :with filter through a filter rather than through the xpath/css expression (like the :name expression filter in the example above) is that you usually want to be testing the current value property whereas the xpath/css query would test the attribute as it was set when the page loaded.


CI: generate coverage report for multiple jobs.

 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.


Add output failed in last three nodes

I try to delete the last nodes until conv node，and then add three new output。After I  download the final onnx file，I found there are no output nodes。I uploaded the original onnx file。
链接：https://pan.baidu.com/s/11z9JzkDRAeUo-DIlchV4Xw
提取码：j16o

Thanks for reporting! I will try to reproduce and fix it.

@zhouxiao999 Hello, I have uploaded a new version to fix the problem. It seems that it works well for your uploaded model.

The new feature relies on the onnx-tool package, so you need install it firstly
pip install onnx-tool

Then update onnx-modifier to the latest version and have a try..


Support page up/down in editor

For "long" scripts (anything longer than a screenful), it's tedious to move along them line by line. We should support page up/down, and maybe the corresponding Emacs-like/macOS-like keybindings (because we already have others like that).

This was implemented in 328a3c7989cbe60642a9d284a29a1492de14d1d7.


Download URL seems to generate inrorrect link

Hi, first of all, thank you for making this integration available!
I stumbled across an issue with the Download link. Maybe I don't understand how to configure it properly, or maybe there's a bug or something.
Any help is much appreciated. Basically, this is one of the few issues left that blocks us from launching a private portal.
Prerequisites
Docusaurus version: 2.4.1
Redocusaurus version: ^1.4.0
Here's my docusaurus.config.js file.
[
      'redocusaurus',
      {
        config: path.join(__dirname, 'redocly.yaml'),
        specs: [
          {
            id: 'frontend_api_openspec',
            spec: './static/frontend_api.yaml',
            route: '/dir_1/dir_2/client-api/frontend-api/reference',
          },
        ],
        theme: {
          primaryColor: '#e30613',
          breakpoints: {
            medium: '75rem',
            large: '105rem',
          },
        },
      },
    ]

The openapi spec file is located in the static folder.
Problem
The Download button doesn't work either locally or on a deployed production website. But the reference is rendered just OK (both locally and in prod). The problem is specifically with the Download button.
By 'doesn't work' I mean this. When I click the button, I get this error:

I’m encountering the same issue. @dmitriyrotaenko, have you found a solution?
As a temporary workaround, I specify the url explicitly in the configuration. Additionally, in docusaurus.config.ts, ensure that the url is set to http for localhost and https for deployment environments.
Here’s an example of my configuration:
{
    // Redocusaurus will automatically bundle your OpenAPI spec into a single file during the build
    spec: 'static/openapi/index.yaml',
    route: '/api/',
    url: '/openapi/index.yaml', // Ensure this path matches your deployment setup
},

@ugoi hi, unfortunately, I'm still struggling
Can you please elaborate on what do you mean by

specify the url explicitly in the configuration

Do you mean that I can access the openapi file somehow on the website via a direct link? If yes, what the path should look like?
I also wonder whether the problem can be related to hashing. I mean when you include a file, it's name is hashed in the production. Will try to investigate this way


Translate to Chinese Simplified

Would you mind also adding a description and your name to the vocabs.json file, under css, so the translation will show up in the listing and you'll get credits?
Something like this:
{
  "css": {
    "zh_CN": {
      "language": "Language name in chinese here",
      "title": "CSS Vocabulary in chenese here",
      "help-text": "Click on the code or the sidebar to see which is what. Use the Tab key to browse via keyboard. <- Tranlated too, yeah? :)",
      "credits": {
        "Lyplba": "https://github.com/Lyplba"
      },
      "specs": {
        "": ""
      }
    },
    "en": {
      ...

Thanks!


trigger pyreport when code pushed

i think it will be useful if pyreport is triggered when code pushed
like travis ci.
just a little idea.

Yes, I'm considering the hooking service as you said.
There is a plan for providing it as web service in A plan board of this project. So, this will be served as hook service like travis.

So, when finished for v2, I'll make the github integration as reporting tools for python repository


Can't get all Amazon stock data and not any Amazon recommendations

When I do
import yfinance as yf
from tabulate import tabulate

ticker = yf.Ticker('AMZ')
history = ticker.history(period="max", interval='1d')
print(tabulate(history, headers='keys', tablefmt='psql'))

the last eight entries of the printed table looks like this:
| 2018-01-25 00:00:00 | 1094    | 1106     | 1084     | 1096     |     5159 |           0 |              0 |
| 2018-01-26 00:00:00 | 1110    | 1128     | 1108     | 1124     |     6044 |           0 |              0 |
| 2018-01-29 00:00:00 | 1138    | 1150     | 1130     | 1148     |    13659 |           0 |              0 |
| 2018-01-30 00:00:00 | 1144    | 1152.18  | 1116.01  | 1149.06  |    10004 |           0 |              0 |
| 2018-05-22 00:00:00 |    1.4  |    1.49  |    1.4   |    1.42  |    42899 |           0 |              0 |
| 2018-05-23 00:00:00 |    1.45 |    1.48  |    1.41  |    1.41  |     8511 |           0 |              0 |
| 2018-05-24 00:00:00 |    1.46 |    1.46  |    1.42  |    1.43  |    11780 |           0 |              0 |
| 2018-05-25 00:00:00 |    1.41 |    1.44  |    1.33  |    1.33  |    30363 |           0 |              0 |
+---------------------+---------+----------+----------+----------+----------+-------------+----------------+

I.e., there isn't any data between 2018-01-30 and 2018-05-22 (but there seems to have been a severe stock crash), and no data after 2018-05-25.
Besides, when I do
import yfinance as yf

ticker = yf.Ticker('AMZ')
recommendations = ticker.recommendations

the script crashes with the following traceback:
Traceback (most recent call last):
  File "D:/work/programs/stocks/stocks.py", line 4, in <module>
    recommendations = ticker.recommendations
  File "D:\ProgramData\Miniconda3\envs\stocks\lib\site-packages\yfinance\ticker.py", line 146, in recommendations
    return self.get_recommendations()
  File "D:\ProgramData\Miniconda3\envs\stocks\lib\site-packages\yfinance\base.py", line 409, in get_recommendations
    self._get_fundamentals(proxy)
  File "D:\ProgramData\Miniconda3\envs\stocks\lib\site-packages\yfinance\base.py", line 340, in _get_fundamentals
    self._info['regularMarketPrice'] = self._info['regularMarketOpen']
KeyError: 'regularMarketOpen'

AMZ is in an international market which I don't think is supported by yfinance. Try AMZN

@kelanwilks Thanks—I also realized that I had used the wrong symbol—when I used AMZN instead it worked much better! However, I think it's a bit strange that I get any data at all if yfinance is not supposed to support AMZ, isn't it?

@krikru So if you check out the yahoo finance page here https://finance.yahoo.com/quote/AMZ?p=AMZ
it looks like it has minimal info, and the info it has is delayed by a lot (checkout price history from a few years back). This framework (from what I understand) is simply scraping data from yahoo, so that is probably what you're seeing.


Fix warnings from test_initialise.pl

> perl ./etc/test_initialise.pl

Use of uninitialized value in string ne at /usr/local/share/perl/5.26.1/PomBase/Chobo/OntologyConf.pm line 84.
Use of uninitialized value in concatenation (.) or string at /usr/local/share/perl/5.26.1/PomBase/Chobo/OntologyConf.pm line 86.
"def:" line differ

versus:
  X part_of Y if X is a subregion of Y. at /usr/local/share/perl/5.26.1/PomBase/Chobo/OntologyConf.pm line 86.
Creating database for 0_curs
Creating database for 1_curs
Creating database for 3_curs
Creating database for curs_annotations_1
Creating database for curs_annotations_2
Creating database for empty_db
Test initialisation complete

Wrong tracker.


Crates.io is out of date

Hey. It looks like your crate: https://crates.io/crates/static-http-cache is on version 0.2.0 whereas this repo is on 0.3.0. Any idea why this is not published? Having a hard time using the crates.io version.

This repository is a fork, it doesn't show as such on Github because the source repository is on Gitlab.

Makes sense. So have you published this as a different crate? This fork seems a bit more actively maintained and it acutally works. The original doesn't seem to work anymore.
BTW, by original I'm assuming you're talking about this one: https://gitlab.com/Screwtapello/static_http_cache. Let me know if there's a different repo which is more up to date.

I did not publish it on crates.io.
I'm glad my development is helping you out.
Yes, as listed in crates.io.
I'm not aware of any other versions.
On Mon, Dec 28, 2020, 19:23 Samyak Jain<EMAIL_ADDRESS>wrote:

Makes sense. So have you published this as a different crate? This fork
seems a bit more actively maintained and it acutally works. The original
doesn't seem to work anymore.
BTW, by original I'm assuming you're talking about this one:
https://gitlab.com/Screwtapello/static_http_cache. Let me know if there's
a different repo which is more up to date.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Matthias-Fauconneau/static-http-cache/issues/1#issuecomment-751817283,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGGMFUR4NJUXSK34OJZ2YDSXDEI5ANCNFSM4VHBUTWQ
.

Do you have any plans on publishing your version as a separate crate? Currently am using this library by adding the github url as a source. But, it is not possible to publish a crate that way.

I don't. Feel free to copy it there.
On Wed, Dec 30, 2020, 13:41 Samyak Jain<EMAIL_ADDRESS>wrote:

Do you have any plans on publishing your version as a separate crate?
Currently am using this library by adding the github url as a source. But,
it is not possible to publish a crate that way.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Matthias-Fauconneau/static-http-cache/issues/1#issuecomment-752536563,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGGMFW3OYZ7YNNZT4HTEGDSXMNWJANCNFSM4VHBUTWQ
.

Fair enough. Thanks a lot!


MSID: 89382 Version: 2 DOI: 10.1101/2<IP_ADDRESS>4726

MSID: 89382
Version: 2
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>4726
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=89382
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>4726

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/89382v2
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>4726
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/89382/v2/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

@fred-atherden author first names are initialised, is this OK (published as this in v1), or should it be changed to full name instead? Otherwise fine to QC.

Ah well spotted, good point @rkcook312. Are you OK to reach out to the authors and ask them how they would like their names to appear (or get them to confirm that's how they all typically publish)

Thanks @fred-atherden, email now sent.

Nice one - thanks Rebecca!

chaser sent

@rkcook312, have the authors still not responded to this?

@fred-atherden no response to the chaser from the authors, should we just proceed as is?


Feature: Data Driven Testing

Feature
Add libraries for data driven testing e. g. ddt in Python.
Rationale

More diversified testing environment supporting multiple types/styles of testing.
IMO: Simplifying kata craeation and translation: One can create/convert a data structure without writing/copying a lot of boilerplate code.

I'm not 100% sure yet what this is yet, but this may be a feature for the CLI

@suic86 ,
That seems like a neat library, thanks for the link.
I've been playing around with Hypothesis on a few personal projects. I keep thinking how it could be useful for Codewars Python tests too. Adding a decorator to a test.assert_equals for random tests might help one get rid of one of the classic Codewars beta issues... "needs random tests".

@jhoffner
You're right it's for cli :) Can I migrate this to the CLI issue list? If not, I'm going to close this and re-raise the feature request there.
@the-zebulan
Nice one! This reminds me of QuickCheck in Haskell which is supported on Codewars. However, I've had hard times with it. :) I agree that something like hypotheses could help with random tests. There would be nice to have some random test functionality in the standard codewars test framework as random tests involve too much boilerplate code.

@suic86 ,
You are absolutely right, I believe it is based on Haskell's QuickCheck.

This is often called property based testing, and was popularised by the Haskell library Quickcheck.

I have only recently started to use it on some small projects so you probably have much more experience with property based testing. I'll have to try using ddt soon to compare the two for my own understanding.


Jenkins pods termination if DNS pod is restarting

I suggest making the code below more resilient :
https://github.com/openshift/jenkins/blob/master/slave-base/contrib/bin/run-jnlp-client#L121
so when  DNS is not responding (because of DNS pod restart),
the pod will not be terminated as seen below :
Downloading :18080/jnlpJars/remoting.jar ...

curl -sS :18080/jnlpJars/remoting.jar -o /home/jenkins/remoting.jar
curl: (6) Could not resolve host:
Terminated Kubernetes instance for agent ....

I want to open PR to retry the curl commands 5 times.
please let me know what you think

Hi @yanivpaz ,
DNS pod restart while Jenkins agent startup is supposedly, a very rare case to happen. Can you describe the scenario where this is happening? is that specific to a Jenkins use case or a buggy DNS pod restarting too often?

hi @akram  is a buggy DNS pod that sometimes restarts.
do you see issue to add  retry like described here: https://stackoverflow.com/questions/42873285/curl-retry-mechanism

@yanivpaz  You can submit a PR then. That may be useful to community indeed.

Yes, I am testing it.
which minimum curl version do you think that we need to rely on?
will run 6 iterations ( after 1,2,4,8,16,32,64 seconds)
curl --connect-timeout 5
--retry-connrefused  --max-time 10
--retry 6
--retry-delay 0
--retry-max-time 40
'http://localhost'

@yanivpaz 5 retries would be sufficient because failing after too long may have other impacts.


Feature request : Add custom index descriptor mapping to added fields

Is your feature request related to a problem? Please describe.
I use a repository to deal with Elasticsearch CRUD operations. It works but I face a problem :
when I add fields to an existing index (that has already data) I don't know how to apply custom Index Descriptor to these added fields.
It works with an AutoMap but if I need any kind of custom how should I do ?
Here is my repository example :
   public abstract class ElasticSearchRepository<T, K> : IElasticSearchRepository<T, K>
       where T : BaseEntity<K>
   {
       private readonly IElasticClient _elasticClient;
       private readonly string _index;

      public ElasticSearchRepository(IElasticClient elasticClient, string index, Func<CreateIndexDescriptor, ICreateIndexRequest> indexDescriptor)
       {
           _elasticClient = elasticClient;
           _index = index.ToLower();

           var exist = _elasticClient.Indices.Exists(_index);
           if (!exist.Exists)
           {
               var res = _elasticClient.Indices.Create(_index, indexDescriptor);  // the index is created with my custom descriptor, great

               if (!res.IsValid)
                   throw res.OriginalException;
           }
           else
           {
               // Try to apply potential added mappings if fields are added to an existing index
               var mapResponse = _elasticClient.Map<T>(x => x.Index(_index).AutoMap()); // <==== here I can apply AutoMap, but how to use my custom indexDescriptor ???
               if (!mapResponse.IsValid)
                   throw mapResponse.OriginalException;
           }

Describe the solution you'd like
Some method like
_elasticClient.Map<T>(x => x.Index(_index).Map(indexDescriptor));

with
Func<CreateIndexDescriptor, ICreateIndexRequest> indexDescriptor

Describe alternatives you've considered
Use AutoMap, but no custom mapping are available
Additional context
Package version
<PackageReference Include="NEST" Version="7.11.1" />

Hi @NicolasREY69330. Thanks for your suggestion. This use-case is very specific to your requirements and not something I feel we'll add to the client. The descriptors for 'create index' and 'put mapping' are distinct things and produce a corresponding IRequest.
You may be able to achieve your requirement using attribute mapping and AutoMap, although attributes are not as capable as fluent mappings so you may be limited for more complex mapping scenarios. You may also be able to consider using visitor pattern mapping and accept a visitor as your constructor argument which then applies your mapping requirements.
You could also consider accepting Nest.Properties as your constructor argument and then manually creating either a CreateIndexRequest or a PutMappingRequest as applicable. Something like this...
var properties = new Properties
{
	{
		"test", new DateProperty
		{
			Format = "yyyy-MM-dd"
		}
	},
	{"test2", new KeywordProperty()}
};

var mapResponse = await _elasticClient.MapAsync(new PutMappingRequest("test")
{
	Properties = properties
});

As a final option, you may even want to design your own abstraction over the mapping concepts you require. Your repository can then accept that and convert that to an appropriate descriptor. This would have the advantage that you don't bleed client concepts outside of your repository.

Thank you @stevejgordon for your answer.
I must confess that I didn't encounter this use case yet, but if I do, I'll use the visitor pattern or the Nest.Properties has suggested. 👍

Hi @stevejgordon
just my 2 cents to the discussed above situation, here is what I did
Feel free to close it again, anyway it may help someone
Typed Repo
    public abstract class ElasticSearchRepository<T, K> : IElasticSearchRepository<T, K>
        where T : BaseEntity<K>
    {
        private readonly IElasticClient _elasticClient;
        private readonly string _index;
        public ElasticSearchRepository(IElasticClient elasticClient, string index)
        {
            _elasticClient = elasticClient;
            _index = index.ToLower();

            var exist = _elasticClient.Indices.Exists(_index);
            if (!exist.Exists)
            {
                var res = _elasticClient.Indices.Create(_index,
                    // add settings that I commonly use on index creation
                    c => c
                        .Settings(s => s.Analysis(a => a
                            .Normalizers(n => n.Custom(NORMALIZER, c => c.Filters(LOWERCASE)))
                        )))
                    ;

                if (!res.IsValid)
                    throw res.OriginalException;
            }
        }

        // This method allows to apply custom mapping from invoked object
        public virtual void MapFields<J>() where J : IMappings<T>, new()
        {
            var instance = Activator.CreateInstance<J>();
            var mappingSettings = instance.GetMappingProperties();
            var res = _elasticClient.Map<T>(x => x.Index(_index).AutoMap().Properties(mappingSettings));

            if (!res.IsValid)
                throw res.OriginalException;
        }

or
Untyped repo (in case we plan to use several POCOs with the same repo, especially designed for partial update POCOs to the same Elk collection)
    public class ElasticSearchUntypedRepository : IElasticSearchUntypedRepository
    {
        private readonly IElasticClient _elasticClient;
        private readonly string _index;

        public ElasticSearchUntypedRepository(IElasticClient elasticClient, string index)
        {
            _elasticClient = elasticClient;
            _index = index.ToLower();

            var exist = _elasticClient.Indices.Exists(_index);
            if (!exist.Exists)
            {
                var res = _elasticClient.Indices.Create(_index,
                    c => c
                        .Settings(s => s.Analysis(a => a
                            .Normalizers(n => n.Custom(NORMALIZER, c => c.Filters(LOWERCASE)))
                        )))
                    ;

                if (!res.IsValid)
                    throw res.OriginalException;
            }
        }

        // This method allows to apply custom mapping from invoked object
        public virtual void MapFields<T, K, J>() where T : BaseEntity<K>
                                                 where J : IMappings<T>, new()
        {
            var instance = Activator.CreateInstance<J>();
            var mappingSettings = instance.GetMappingProperties();
            var res = _elasticClient.Map<T>(x => x.Index(_index).AutoMap().Properties(mappingSettings));

            if (!res.IsValid)
                throw res.OriginalException;
        }

Mapping Interface
    public interface IMappings<T> where T : class
    {
        Func<PropertiesDescriptor<T>, IPromise<IProperties>> GetMappingProperties() => c => c;
    }

Persisted poco
    public class Catalog : BaseEntity<string>, IMappings<Catalog>
    {
        public string SearchName { get; set; }
        public string ProductSearchName { get; set; }
        ...
        public Func<PropertiesDescriptor<Catalog>, IPromise<IProperties>> GetMappingProperties()
        {
            return c => c
                    .Text(st => st
                        .Name(n => n.SearchName)
                        .Fields(ff => ff
                            .SearchAsYouType(s => s
                                .Name(SEARCH_AS_YOU_TYPE))
                            .Keyword(k => k
                                .Name(KEYWORD)
                                .IgnoreAbove(256)
                                .Normalizer(NORMALIZER))))
                        .Text(st => st
                        .Name(n => n.ProductSearchName)
                        .Fields(ff => ff
                            .SearchAsYouType(s => s
                                .Name(SEARCH_AS_YOU_TYPE))
                            .Keyword(k => k
                                .Name(KEYWORD)
                                .IgnoreAbove(256)
                                .Normalizer(NORMALIZER))))
                                 ....
        }
}

Typed repo implementation
    public class CatalogElkRepository : ElasticSearchRepository<Catalog, string>, ICatalogElkRepository
    {
        public CatalogElkRepository(IElasticClient elasticClient) : base(elasticClient, nameof(Catalog))
        {
            // here we explicitly create mappings
            MapFields<Catalog>();
        }
    }

Untyped repo implementation (with multiple partial update from POCOs)
        public CatalogElkRepository (IElasticClient elasticClient, ILogger<CatalogElkRepository> logger) : base(elasticClient, nameof(Catalog))
        {
            // Mapping from all POCOs using this untyped repository that having declared specific mappings
            // ie :
            // PartialCatalog1 : IMappings<PartialCatalog1>
            // PartialCatalog2 : IMappings<PartialCatalog2>
            PutMappingSettings<CatalogElkRepository>(this, logger);
        }

And the static helper method to get all class implementing the IMapping open generic interface
      public static void PutMappingSettings<T>(object obj, ILogger logger)
       {
           try
           {
               var types = Types.GetAllTypesImplementingOpenGenericType(typeof(IMappings<>));
               var methodInfo = typeof(T).GetMethod("MapFields");

               types?.ToList().ForEach(t =>
               {
                   try
                   {
                       // https://stackoverflow.com/a/3958026/4734707
                       // Allows to map typed objects to the current collection
                       var refMethod = methodInfo?.MakeGenericMethod(t, typeof(string), t);
                       refMethod.Invoke(obj, null);
                   }
                   catch (Exception e)
                   {
                       logger.LogError(e, "Fail to apply mapping settings of type {type}", t.ToString());
                   }
               });
           }
           catch(Exception e)
           {
               logger.LogError(e, "Error on {methodname}", nameof(PutMappingSettings));
           }
       }

Thanks for sharing your solution @NicolasREY69330. Indeed it might be useful for others looking to provide similar abstractions over the top of the client. I'll close this out again as there's no action to take here.


[External] GetResponseStream

Would this function in CU1297 ever be made external?
https://github.com/Microsoft/cal-open-library/blob/5d5974c81878e816ab60841da9cbfbd71dd9c77a/BaseApp/COD1297.TXT#L36
Thanks!

Sorry for the late reply! You can get a wrapped version of the response stream from the built-in Http functionality in the al language. Unless you have a special scenario you should be covered and will not need this function to be made external. Do you have a special scenario we didn't think of?


broken GetRequiredService for _useGL

I assume the use of GetRequiredService  is a bug here, since we have a null check.
As the code currently stands GetRequiredService will throw id the service is not registered.
so either it should be GetService or the null check should be removed

You can test this PR using the following package version. 11.0.999-cibuild0028337-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]


Missing dependency for @react-stately/toggle

Seeing an issue with: Unable to resolve "@react-stately/toggle" from<EMAIL_ADDRESS>when using native base

can't consistently repro so this looks like a yarn issue


QUESTION: Field types which don't have validators

Note: This is partly in relation to the dataclasses branch due to the system I'm using pydantic in, but isn't really about dataclasses.
I have a system in which dataclasses can have values dependency-injected. For example, a "view":

@pydantic.dataclasses.dataclass
class ArticleView:
    resource: Resource
    name: str = 'One Pydantic View'

The system inspects the fields. If the caller passed in a prop (e.g. name) it is used in the constructor. Otherwise, the system looks at the field's type and sees if it has an injectable value of that type. Otherwise, the field needs to have a default.
In the above, Resource is a dependency-injected field. I get a value from the system and add it to the dict that I'm going to construct ArticleView with.
But the Request value isn't a pydantic model. So validation fails.
I believe this is a very normal part of what pydantic expects so I probably have a lot of choices:

Have my views such as ArticleView subclass from a base model which has a Config that
knows some well-known names aren't to be validated

Put some kind of marker on those classes, such as Request, to indicate they don't get validated

etc.

You can use the arbitrary_types_allowed config option which should just allow any value to resource which is an instance of Resource. Currently config options can't be used on dataclasses, but I could we could allow them in future.
Alternatively you could add the get_validators method to resource:
class Resource:
    ...

    @classmethod
    def validate(cls, v):
        # do some validation or simply pass through the value
        return v

    @classmethod
    def get_validators(cls):
        yield cls.validate

So pydantic knows how to validate Resources.
Hope that helps, I'll close this but feel free to ask follow up questions.

I know the ticket is closed, but to follow up on the point about config options and dataclasses...that means the class Config stuff at https://pydantic-docs.helpmanual.io/#model-config won't apply when using @pydantic.dataclasses.dataclass right?
At the moment I'm using config pretty heavily but I can look for other ways to accomplish what I'm doing there.

Happy to add more key word arguments to dataclass as required.


Fix Studio :: OpenPype :: Easier Menu in "Create Place Holder" tool

In GitLab by @support-bot on Jan 29, 2023, 14:27

From Olivier Osotimehin

Need
For now, when creating template in Maya/Nuke with the Create Place Holder menu, we have to know by heart the exact name of the family, the representation.
We also have to know the correct loader to use.
It would be far easier to :

Have a drop down menu for all the entries like family, representation (like there is in the Loader menu )
The loader menu can be auto filtered to show only the loader compatible with the chosen representation
have help on the different Arguments available and what they do

Softwares concerned
OpenPYPE, Openpype

Have a drop-down menu listing all families

Have a drop-down menu listing all representations

I'm closing this one, don't forget to put the labels on the new issues otherwise we don't see it in the project.


LOG_SCOPE_FUNCTION_F(INFO);

from the readme example, the LOG_SCOPE_FUNCTION_F does not exists.
Should it be LOG_SCOPE_FUNCTION instead?...

Fixed in 00dd626 - thanks for the feedback!


Msdk 787 rename security token

Renames SecurityToken to Asset and updates references to token to asset.
The term security token was a carry over from Ethereum, however the term Asset is more descriptive.
Since this is a core domain concept this introduces quite a number of breaking changes.
Essentially any reference to SecurityToken is replaced with Asset, and any reference to token is
replaced with asset
Methods

sdk.assets.createToken -> sdk.assets.createAsset
sdk.assets.getSecurityTokens -> sdk.assets.getAssets
sdk.assets.getSecurityToken -> sdk.assets.getAsset

Identity#

getTokenBalance -> getAssetBalances
getTrustingTokens -> getTrustingAssets
getHeldTokens -> getHeldAssets
getScopeId (args: token -> asset)
getTokenBalance -> getAssetBalance
getHeldTokens -> getHeldAssets
getDividendDistributionsForAssets (args: token -> asset
getPendingDistributions (args: tokens -> assets)

Account#

checkPermissions (args: tokens -> assets)
hasPermissions (args: tokens -> assets)

AuthorizationRequest

(type) AuthorizationType.JoinIdentity (args: tokens -> assets)

Portfolio#

getTokenBalances -> getAssetBalances. (args: token -> asset, return: token -> asset)

TickerReservation#

createToken -> createAsset

Enums

TickerReservationStatus.TokenCreated -> TickerReservationStatus.AssetCreated
TokenType -> AssetType
TokenIdentifierType -> SecurityIdentifierType
KnownTokenType -> KnownSecurityType
TokenIdentifierType -> SecurityIdentifierType
TokenIdentifier -> SecurityIdentifier
TokenDocument -> AssetDocument
TokenManagement -> AssetManagement
AdvancedTokenManagement -> AdvancedAssetManagement
TokenWithGroup -> AssetWithGroup

Properties

Checkpoint.token -> Checkpoint.asset
CheckpointSchedule.token -> CheckpointSchedule.asset
CorporateActionBase.token -> CorporateActionBase.asset (inherited by CorporateAction, DividendDistribution)
PermissionGroup.token -> PermissionGroup.asset (inherited by KnownPermissionGroup, CustomPermissionGroup)
DefaultTrustedClaimIssuer.token -> DefaultTrustedClaimIssuer.asset
Leg.token -> Leg.asset
Sto.token -> Sto.asset

Classes

TokenPermissions -> AssetPermissions
TokenHolders -> AssetHolders
TokenDocument -> AssetDocument

Arguments

CreateSecurityTokenParams -> CreateAssetParams.
(inherited by CreateAssetWithTickerParams)
(args: tokenType -> assetType,  tokenIdentifiers -> securityIdentifiers )

Asset permissions

checkPermissions (args: token -> asset)
hasPermissions (args: token -> asset)
getGroup (args: token -> asset)
enabledAt (args: token -> asset)
getOperationHistory (args: token -> asset)

Type Guards

isSecurityToken -> isAsset

File Imports

File paths had SecurityToken replaced with Asset

SonarCloud is red, but its from "deprecated" methods being moved.
I think these should be ignored since they are mainly in tests, and we aren't trying to introduce changes beyond the rename here.

:tada: This PR is included in version 13.0.0-alpha.18 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 14.0.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 14.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Can't Start Container

#5318 Required information

Distribution:
Distribution version: Ubuntu 14.04

djwhyte@server1:~$ lxc info
config:
  core.https_address: '[::]:8443'
  core.trust_password: true
  storage.lvm_thinpool_name: LXDPool
api_extensions:
- storage_zfs_remove_snapshots
- container_host_shutdown_timeout
- container_stop_priority
- container_syscall_filtering
- auth_pki
- container_last_used_at
- etag
- patch
- usb_devices
- https_allowed_credentials
- image_compression_algorithm
- directory_manipulation
- container_cpu_time
- storage_zfs_use_refquota
- storage_lvm_mount_options
- network
- profile_usedby
- container_push
- container_exec_recording
- certificate_update
- container_exec_signal_handling
- gpu_devices
- container_image_properties
- migration_progress
- id_map
- network_firewall_filtering
- network_routes
- storage
- file_delete
- file_append
- network_dhcp_expiry
- storage_lvm_vg_rename
- storage_lvm_thinpool_rename
- network_vlan
- image_create_aliases
- container_stateless_copy
- container_only_migration
- storage_zfs_clone_copy
- unix_device_rename
- storage_lvm_use_thinpool
- storage_rsync_bwlimit
- network_vxlan_interface
- storage_btrfs_mount_options
- entity_description
- image_force_refresh
- storage_lvm_lv_resizing
- id_map_base
- file_symlinks
- container_push_target
- network_vlan_physical
- storage_images_delete
- container_edit_metadata
- container_snapshot_stateful_migration
- storage_driver_ceph
- storage_ceph_user_name
- resource_limits
- storage_volatile_initial_source
- storage_ceph_force_osd_reuse
- storage_block_filesystem_btrfs
- resources
- kernel_limits
- storage_api_volume_rename
- macaroon_authentication
- network_sriov
- console
- restrict_devlxd
- migration_pre_copy
- infiniband
- maas_network
- devlxd_events
- proxy
- network_dhcp_gateway
- file_get_symlink
- network_leases
- unix_device_hotplug
- storage_api_local_volume_handling
- operation_description
- clustering
- event_lifecycle
- storage_api_remote_volume_handling
- nvidia_runtime
- container_mount_propagation
- container_backup
- devlxd_images
- container_local_cross_pool_handling
- proxy_unix
- proxy_udp
- clustering_join
- proxy_tcp_udp_multi_port_handling
- network_state
- proxy_unix_dac_properties
- container_protection_delete
- unix_priv_drop
- pprof_http
- proxy_haproxy_protocol
- network_hwaddr
- proxy_nat
- network_nat_order
- container_full
- candid_authentication
- backup_compression
- candid_config
- nvidia_runtime_config
- storage_api_volume_snapshots
- storage_unmapped
- projects
- candid_config_key
- network_vxlan_ttl
- container_incremental_copy
- usb_optional_vendorid
- snapshot_scheduling
- container_copy_project
- clustering_server_address
- clustering_image_replication
- container_protection_shift
- snapshot_expiry
- container_backup_override_pool
- snapshot_expiry_creation
- network_leases_location
- resources_cpu_socket
- resources_gpu
- resources_numa
- kernel_features
- id_map_current
- event_location
- storage_api_remote_volume_snapshots
- network_nat_address
- container_nic_routes
- rbac
- cluster_internal_copy
- seccomp_notify
- lxc_features
- container_nic_ipvlan
- network_vlan_sriov
- storage_cephfs
- container_nic_ipfilter
- resources_v2
- container_exec_user_group_cwd
- container_syscall_intercept
- container_disk_shift
- storage_shifted
- resources_infiniband
- daemon_storage
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
- tls
environment:
  addresses:
  - <IP_ADDRESS>:8443
  - <IP_ADDRESS>:8443
  - <IP_ADDRESS>:8443
  architectures:
  - x86_64
  - i686
  certificate: <snip>
  driver: lxc
  driver_version: 3.2.1
  kernel: Linux
  kernel_architecture: x86_64
  kernel_features:
    netnsid_getifaddrs: "false"
    seccomp_listener: "false"
    shiftfs: "false"
    uevent_injection: "false"
    unpriv_fscaps: "false"
  kernel_version: 4.4.0-127-generic
  lxc_features:
    mount_injection_file: "true"
    network_gateway_device_route: "true"
    network_ipvlan: "true"
    network_l2proxy: "true"
    network_phys_macvlan_mtu: "true"
    seccomp_notify: "true"
  project: default
  server: lxd
  server_clustered: false
  server_name: server1
  server_pid: 24510
  server_version: "3.17"
  storage: zfs
  storage_version: <IP_ADDRESS>-1~trusty

Issue description
Have been playing adding a usb serial device using 'lxc config device add/remove' and found that the usb device wouldn't disappear within the container.  Did a container stop with the intent to restart it but now it won't start.  I don't recall having restarted the container in a while (server uptime is 190days).  I was able to restart another container OK - haven't tried a server reboot though, since I don't want to jeopardise any other containers.
Steps to reproduce
djwhyte@server1:~$ lxc start hass
Error: Failed to run: /snap/lxd/current/bin/lxd forkstart hass /var/snap/lxd/common/lxd/containers /var/snap/lxd/common/lxd/logs/hass/lxc.conf:
Try `lxc info --show-log hass` for more info
djwhyte@server1:~$ lxc info --show-log hass
Name: hass
Location: none
Remote: unix://
Architecture: x86_64
Created: 2018/05/20 11:16 UTC
Status: Stopped
Type: persistent
Profiles: default

Log:

lxc hass<PHONE_NUMBER>3711.583 ERROR    conf - conf.c:run_buffer:352 - Script exited with status 1
lxc hass<PHONE_NUMBER>3711.583 ERROR    start - start.c:lxc_init:887 - Failed to run lxc.hook.pre-start for container "hass"
lxc hass<PHONE_NUMBER>3711.583 ERROR    start - start.c:__lxc_start:1991 - Failed to initialize container "hass"
lxc hass<PHONE_NUMBER>3741.630 ERROR    conf - conf.c:run_buffer:352 - Script exited with status 1
lxc hass<PHONE_NUMBER>3741.630 ERROR    start - start.c:lxc_fini:1024 - Failed to run "lxc.hook.stop" hook
lxc hass<PHONE_NUMBER>3741.634 ERROR    lxccontainer - lxccontainer.c:wait_on_daemonized_start:864 - No such file or directory - Failed to receive the container state

djwhyte@server1:~$ lxc config show hass --expanded
architecture: x86_64
config:
  environment.http_proxy: ""
  user.network_mode: ""
  volatile.base_image: e9239117192924904869ff135c1a795379af56e97128f54ba8e812d3831dee5e
  volatile.eth0.host_name: mac0b335ea4
  volatile.eth0.hwaddr: 00:16:3e:2f:cf:6c
  volatile.eth0.last_state.created: "false"
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":65536}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":65536}]'
  volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":65536}]'
  volatile.last_state.power: STOPPED
devices:
  eth0:
    name: eth0
    nictype: macvlan
    parent: br1
    type: nic
  root:
    path: /
    pool: lxd
    type: disk
ephemeral: false
profiles:
- default
stateful: false
description: ""

I am seeing this in the lxd.log:
t=2019-09-21T22:37:11+1000 lvl=warn msg="ZFS returned EBUSY while \"/var/snap/lxd/common/lxd/storage-pools/lxd/containers/hass\" is actually not a mountpoint"
t=2019-09-21T22:37:11+1000 lvl=eror msg="The start hook failed" container=hass err="device or resource busy"
t=2019-09-21T22:37:41+1000 lvl=eror msg="Failed to stop device 'eth0': Failed to list network interfaces: container is not running: \"hass\""
t=2019-09-21T22:37:41+1000 lvl=eror msg="Failed starting container" action=start created=2018-05-20T21:16:10+1000 ephemeral=false name=hass project=default stateful=false used=2019-03-12T22:49:27+1000

Output of a command I have seen from another bug report:
sudo grep hass /proc/*/mountinfo
[sudo] password for djwhyte:
/proc/11588/mountinfo:1840 197 0:90 / /var/snap/lxd/common/shmounts/storage-pools/lxd/containers/hass rw,relatime shared:244 - zfs lxd/containers/hass rw,xattr,noacl
/proc/13603/mountinfo:1840 197 0:90 / /var/snap/lxd/common/shmounts/storage-pools/lxd/containers/hass rw,relatime shared:244 - zfs lxd/containers/hass rw,xattr,noacl
/proc/15745/mountinfo:1838 1677 0:90 / /var/snap/lxd/common/shmounts/storage-pools/lxd/containers/hass rw,relatime shared:244 - zfs lxd/containers/hass rw,xattr,noacl
/proc/16768/mountinfo:1837 1388 0:90 / /var/snap/lxd/common/shmounts/storage-pools/lxd/containers/hass rw,relatime shared:244 - zfs lxd/containers/hass rw,xattr,noacl
/proc/24411/mountinfo:1842 1993 0:90 / /var/snap/lxd/common/shmounts/storage-pools/lxd/containers/hass rw,relatime shared:244 - zfs lxd/containers/hass rw,xattr,noacl
/proc/24510/mountinfo:1842 1993 0:90 / /var/snap/lxd/common/shmounts/storage-pools/lxd/containers/hass rw,relatime shared:244 - zfs lxd/containers/hass rw,xattr,noacl
/proc/25984/mountinfo:1842 1993 0:90 / /var/snap/lxd/common/shmounts/storage-pools/lxd/containers/hass rw,relatime shared:244 - zfs lxd/containers/hass rw,xattr,noacl
djwhyte@server1:~$

I read into it a bit more.  Looked like it was a ZFX related issue in that some 'files' were locked by some process, preventing LXD from starting the container.  (I don't completely understand :P )
I did a host reboot and it all seems to have come good again, but will leave this open in case there is an LXD related issue needing investigating.
Please close if you think this is out of scope.

Yeah, it's the zfs refcount issue. You could have likely resolved this without a reboot by doing:
nsenter -t 11588 -m -- umount /var/snap/lxd/common/shmounts/storage-pools/lxd/containers/hass

This isn't a LXD issue but something we're tracking in multiple other places (snap packaging, zfs upstream and Linux kernel).


Support RangePartitioning with native shuffle

What is the problem the feature request solves?
We do not currently support RangePartitioning with native shuffle.
Adding this support would allow us to use native shuffle for more queries, including queries where there is a global sort.
Describe the potential solution
No response
Additional context
No response

Since the early development of Comet shuffle, this is one item on to do list. After we finish columnar shuffle which has higher coverage and support main partitioning types, we turn our focus to other more urgent items. Because we want to increase query coverage as much as possible. Currently we can run TPC-H queries mostly native, seems we can go back to look at this as it can give us more performance gain on shuffle (because native shuffle is faster than columnar shuffle).

I will work on this after finishing HashJoin build right support.

This would help with TPC-H performance, so I plan on taking a look at this issue soon