Proposal: gRPC CLI Improvements

Summary
Generating a stub using a Command-Line Interface (CLI), or a generation plugin is the very first step of a gRPC development. There are several CLIs and plugins have built for this use case, and protoc is one of the leading implementations at the moment. Generating a stub for a single protobuf file is the primary functionality of such tools, and generating a stub for a directory containing multiple proto files is comparatively a complex task. In this proposal, we are planning to handle such complex use cases in Ballerina gRPC CLI.
Goals

Ballerina CLI should have the capability to generate stubs for a given directory of proto files without missing any files.

Motivation
When we implement a complex gRPC scenario using the google.protobuf.Any type, the message scope of such a use case is indefinite. Simply, the current Ballerina gRPC CLI takes only two instances of message definitions during the stub generation. Those two instances are,

The messages that the gRPC service uses
The messages defined explicitly in the input protobuf file
However, when we are using a google.protobuf.Any type, the related message could be available in neither of the aforementioned two instances. There might be a proto file that is not imported into any protobuf file but is might use during the actual execution. Handling such a complex use case is the motivation of this proposal.

Description
Problem 01 - Support for Nested Directories
Problem Definition
As mentioned before, when we use the google.protobuf.Any type, the stub generation of CLI is getting complex. If there exists a message definition, which does not import to any service or does not declare in an input file, the relevant message definitions are not generated by the Ballerina CLI. For example, let’s take the following example.
proto
├── foo
│   └── bar
│       └── service.proto
├── messages1.proto
└── messages2.proto

Here, we are going to generate stubs for the service.proto. The service.proto file imports the message1.proto, and uses the message defined inside it. However, the service.proto does not import message2.proto. In the current Ballerina CLI, it only generates stubs related to service.proto and message1.proto. The stub definition for message2.proto is missing because it is not directly used in service.proto. However, other CLIs such as protoc and Java protoc Gradle plugin, generate message2.proto.
The behaviour of Java protoc CLI is obvious since it generates classes for all the proto files inside the pre-allocated proto directory. The behaviour of Go protoc CLI is as follows.
protoc --go_out=go2 --go-grpc_out=go2 proto/**.proto --proto_path=proto

In Golang, we can input proto files as a wildcard, and then it generates all the necessary stubs [1].
Proposed Solution
There are two ways we can address this problem, one way to follow the Java approach and the other way is to follow the Go approach.
Solution 01
We keep the current CLI interface as it is. When someone inputs a proto directory as an input, we iterate through the nested directories and generate all the necessary stub files.
bal grpc –input proto/ –output ballerina-out

Solution 02
Allow users to use wild cards as Go did.
bal grpc –input proto/**.proto –output ballerina-out

Problem 02 - Centralized Proto Descriptor
Problem Definition
In our current Ballerina gRPC library, the generated stub contains a large single descriptor (root descriptor + descriptor map), which is related to the service and the messages that the service uses. But, when we address problem 01 and create several stubs for each proto file in a directory, maintaining such a huge descriptor will be a difficult task. Therefore, we should decentralize our descriptor (especially the descriptor map) like other languages. For example, Java has the descriptor details in the message class itself and Golang has it in the generated struct.

Proposed Solution
The proposed solution is to introduce a message-level annotation for the generated records. The descriptor value is related to a particular Proto file. For example, for each proto file (i.e. stub) there will be one descriptor variable. Then, all the recorded in the stub file use the same descriptor value.
message Person {
  string name = 1;
  int32 id = 2;
  string email = 3;
}

string descriptorName = "0A2736385F73696D706C655F...";

@protobuf:Descriptor { value: descriptorName }
public type Person record {|
    string name = “”;
    int id = 0;
    string officeEmail = “”;
|};

Note: Here the descriptor value should be unique. It can be generated as follows:
descriptorName := <PROTO_FILE_NAME_IN_UPPER_CASE_WITH_UNDERSCORE>_DESC

Also, adding the annotations would not entirely solve the problem of correctly deserializing Any messages, which descriptors are not available at the root level. As the next step to entirely solve this problem, we should move the deserialization of Any type to 'any:unpack API in the protobuf module.
Problem 03 - Packaging Support
Problem Definition
The Ballerina CLI cannot create packages according to the protobuf definition. In protobuf, there is a way to specify Java and Go packages. However, for Ballerina, we do not have such an option.
Go Packages
option go_package = "example.com/messages1";

Java Packages
option java_package = "com.example.tutorial.protos";

Proposed Solution
To introduce a new option, we have to contribute to the [3] file. This will be a time-consuming task.
Implementation
The tasks related to each problem are as follows:

Problem 01

The changes need to be done only at the CLI level.

Problem 02

We have to change both CLI and the runtime.
This needs to make sure of backward compatibility.

Problem 03

Implementation needs to be done with the CLI and some changes to the runtime.
We also have to contribute to [3], which will be a time-consuming task.

Testing
For each problem, we should make sure of the backward compatibility.
References
[1] https://github.com/golang/protobuf/issues/39
[2] https://developers.google.com/protocol-buffers/docs/proto#customoptions
[3] https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/descriptor.proto#L341

Created an issue to get an idea from protobuf community - https://github.com/protocolbuffers/protobuf/issues/9656

Created an issue to get an idea from protobuf community - https://github.com/protocolbuffers/protobuf/issues/9656

@BuddhiWathsala question relading the solution 02 of problem 01, is this proto/**.proto the only pattern user can give. Can the user provide other patterns like proto/**/*-app.proto

For problem 01, I prefer to go with solution 02. please make sure, we are not breaking current support as we already have a directory path as input
For problem 02, +1 for introducing new annotation at the message level and attaching message descriptor. Along with this change, I would like to introduce grpc service level annotation like,
@grpc:Descriptor {  value: <descriptorName> }
service "HelloWorld" on ep {}

It looks consistent. We can depreciate the current one and support both to avoid breaking existing user code. WDYT?
For problem 03, As per the protobuf issue, we have to introduce a custom protobuf option value. The issue with introducing a custom option is users have to import a proto which defines the custom option explicitly in their proto definition file and set the package.

@BuddhiWathsala question relading the solution 02 of problem 01, is this proto/**.proto the only pattern user can give. Can the user provide other patterns like proto/**/*-app.proto

AFAIU, in golang it goes to all the nested levels. But we have to double check that.

@sameerajayasoma Can you please review and share your thoughts

This proposal is accepted and implemented. Hence we are closing the issue. If you do have questions regarding the proposal, please raise a new issue. we will consider it as a new proposal.


Exact formula to get weights for weighted cross-entropy loss

Hi, in network/model_zoo.py, there are weights for weighted cross-entropy loss(in PolarSpconv class). Could you tell me the exact formula to get each weight in the cross-entropy loss?

@hskim617  Hi, I would also like to know the formula to get each weight in the cross-entropy loss, could please share how do you understand? Thanks!


Correct casing of paintDirty flag

Expected
Project can be built shortly after clone.
Actual
$fl build appbundle
Initializing gradle...                                              0.6s
Resolving dependencies...                                           1.3s

Compiler message:
lib/src/widgets/flare/desaturated_actor.dart:16:48: Error: Getter not found: 'PaintDirty'.
    artboard.addDirt(artboard.root, DirtyFlags.PaintDirty, true);
                                               ^^^^^^^^^^
Compiler terminated unexpectedly.

FAILURE: Build failed with an exception.

* Where:
Script '/home/bean/bin/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 739

* What went wrong:
Execution failed for task ':app:compileFlutterBuildReleaseArm'.
> Process 'command '/home/bean/bin/flutter/bin/flutter'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 8s
Running Gradle task 'bundleRelease'...
Running Gradle task 'bundleRelease'... Done                         9.0s
Gradle task bundleRelease failed with exit code 1

Fixes de7add6db648148bd066e4ef68743e392a8c0644

Actually, was probably introduced by a change in a library. Do we need to update the pubspec.yaml to restrict within semantic versions?

Someone please accept this fix. I'm new to Flutter and cloned the main repo and couldnt build, took me a few minutes to figure out this fix by myself.

@filiph

The fact that this is still open seems to indicate to me that this is rarely used, which is crazy. The app is a full fledged game open sourced.
That or somehow other machines don't run into this problem?

I have no idea if this applies to everyone, but from my specific point of view:

I havent heard before about this project, found it by chance on a "advanced-ish" Google I/O video (so this wouldnt apply to total beginners anyway), so maybe a bit more of linking/spreading could be useful, and
This project seems to be huge/very complex, it will take me a lot of time to understand/grasp it, so it's unlikely I will benefit from it until I'm already much more advanced on Flutter/dart.

I'd bump it to the latest as it seems like everything is working there: flare_flutter: ^1.8.3

@luigi-rosso So we can reject this branch?

No, sorry! I didn't make that clear. Your fix is good, but I'd recommend also bumping the flare_flutter version since 1.5.5 still has the old casing. If you could submit that small change I'll merge this in!

@luigi-rosso Done. I re-pushed everything since I amended the author data.

Thanks for the contribution, glad this is finally fixed. Sorry that it went unseen for so long!

You are welcome.


Add separate IREE core bazel build

This covers only the iree directory. Mostly that's covered by the Kokoro build, but this has slightly looser environment constraints, so catches a few extra things.
This is just a fork of bazel_build.yml with a few edits to change the coverage. We can tweak things (like dropping the TF dep) later.
Part of addressing https://github.com/google/iree/issues/1588

Can these new changes be made in a single PR? Easier to review, then merge or revert as needed, and I don't see a compelling reason to keep them separate.

Sure, done.


Build website weekly

As part of #204, It's possible to schedule cron jobs in Circle 2.0.
Official documentation: https://circleci.com/docs/2.0/workflows/#scheduling-a-workflow
Here's a worked example: https://github.com/everhartlab/sclerotinia-366/blob/1f40f64720803689d9990290e464a9540b83f8c0/.circleci/config.yml#L95-L103

Indeed we're in a position now to add this.

I've added a commit in another branch that attempts to add this.... just as GitHub is experiencing issues 🤦♂.

I don't think we need to put this at a time that would allow quickly fixing the issue; isn't the main goal to surface the issue so we know about it, and can consider how to address it, before some poor vignette submitter is hit by it?
Given that, I'd put it in the wee hours of the US morning, say 2am US Eastern (which would be 11pm Pacific, and still before 9am in Europe).

Good point! I'll set it up for the wee hours of tomorrow morning (temporarily allowing this branch to build) and make a pull request.

Fixed by #213, although I took out the weekly re-deployment step. @zkamvar can you reopen if you believe the weekly redeployment is important?


bugix/services_message_cache_update_pr_dev

When sending a read status via readMessages:forDialogID:completion:, we noticed that the read status was correctly updated in the message memory store but as soon as the app was relaunched, the previously updated read status had disappeared again. We do use caching in our app and after a little bit of investigation we found out that readMessages:forDialogID:completion: does update the affected dialog in cache and the message in memory store. What it doesn't to, though, is to update the message in cache, which leads to the changes being undone once the app is relaunched.
We therefore added a call to chatService:didUpdateMessage:forDialogID: on the multicastDelegate in order to trigger an update of the respective message in cache.
Made/Proposed changes:

Call chatService:didUpdateMessage:forDialogID: in readMessages:forDialogID:completion: in order to make sure messages in cache get updated as well

Hi,
The problem is not in what you have described. We are updating all messages as a pack after we read them all, here is the code that doing it: https://github.com/QuickBlox/q-municate-services-ios/blob/master/QMChatService/QMChatService/QMChatService.m#L1518-L1520
Your version does have it too: https://github.com/mysugr/quickblox-services-ios/blob/c683ee6f6f385447214bdb31cfc091f5534a1e74/QMChatService/QMChatService/QMChatService.m#L1475-L1477
So you are basically double doing work right now which is very bad for app performance.
The real problem here is that appropriate delegate is not handled in QMServicesManager. I've fixed it in development branch, commit: https://github.com/QuickBlox/q-municate-services-ios/commit/353fb3c831120aba372bbe3e494c3d4f6348059d
Will be available in the next version, thank you for your contribution.


sv2v formal script

hello, I find there is a sv2v formal in this repo opentitan/blob/master/util/syn_yosys.sh. There is some code like this.
but I did not see the build file. How can I run through this script.
cp \
  build/*/src/*/*.sv* \
  build/*/src/*/*/*.sv* \
  build/*/src/*/*/*/*.sv* \
  syn_out
cd syn_out

Thank you for your answer, I still want to know if this project still use Openlane flow. And how can you solve the problem that Openlane just could input verilog file. Without sv2v, I know Surelog+uhdm flow, but I don't think It can support enough systemverilog syntax. Is there any other method?(verific and commercial yosys may be good, but we don't have their license)


OSX 10.12 compilation warning: syscall is deprecated

The relevant snippets are below.
/Users/pwnall/workspace/glog/src/raw_logging.cc:153:3: warning: 'syscall' is deprecated: first deprecated in
      macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use
      kdebug_signpost(). [-Wdeprecated-declarations]
  safe_write(STDERR_FILENO, buffer, strlen(buffer));
  ^
/Users/pwnall/workspace/glog/src/raw_logging.cc:63:34: note: expanded from macro 'safe_write'
# define safe_write(fd, s, len)  syscall(SYS_write, fd, s, len)
                                 ^
/usr/include/unistd.h:733:6: note: 'syscall' has been explicitly marked deprecated here
int      syscall(int, ...);
         ^
1 warning generated.

/Users/pwnall/workspace/glog/src/utilities.cc:254:17: warning: 'syscall' is deprecated: first deprecated in
      macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use
      kdebug_signpost(). [-Wdeprecated-declarations]
    pid_t tid = syscall(__NR_gettid);
                ^
/usr/include/unistd.h:733:6: note: 'syscall' has been explicitly marked deprecated here
int      syscall(int, ...);
         ^
1 warning generated.

For the __NR_gettid we may need something like this:
#include <pthread.h>
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12
uint64_t tid64;
pthread_threadid_np(NULL, &tid64);
pid_t tid = (pid_t)tid64;
#else
pid_t tid = syscall(__NR_gettid);
#endif
For the write call, perhaps just replace with the libc write call:
#define safe_write(fd, s, len) write(fd, s, len)

Still get this warning.
INFO: From Compiling external/com_google_glog/src/raw_logging.cc:
external/com_google_glog/src/raw_logging.cc:139:3: warning: 'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost(). [-Wdeprecated-declarations]
  safe_write(STDERR_FILENO, buffer, strlen(buffer));
  ^
external/com_google_glog/src/raw_logging.cc:63:34: note: expanded from macro 'safe_write'
# define safe_write(fd, s, len)  syscall(SYS_write, fd, s, len)
                                 ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include/unistd.h:742:6: note: 'syscall' has been explicitly marked deprecated here
int      syscall(int, ...);
         ^
1 warning generated.
INFO: From Compiling external/com_google_glog/src/utilities.cc:
external/com_google_glog/src/utilities.cc:251:17: warning: 'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost(). [-Wdeprecated-declarations]
    pid_t tid = syscall(__NR_gettid);
                ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include/unistd.h:742:6: note: 'syscall' has been explicitly marked deprecated here
int      syscall(int, ...);
         ^
1 warning generated.

@sergiud Hi, have these warnings been fixed ? Do you intend to do so, if not ?

I've closed the issue due to inactivity. You're welcome to contribute.

@sergiud Please see #685


🐛 Bug Report: Admonitions in Backstage Docs not working in TechDocs

📜 Description
I was browsing the docs via the demo site and noticed that the admonitions are not working. Checking the microsite shows them fine, so I assume that the admonition formats between the microsite and techdocs differs.
# https://github.com/backstage/backstage/blob/master/docs/features/techdocs/how-to-guides.md?plain=1#L502-L507
:::note Note

The values of `site_name`, `component_id` and `site_description` depends
on how you have configured your `template.yaml`.

:::

The example docs in the techdocs-backend plugin indicate that this syntax is wrong.
👍 Expected behavior
How it renders in the microsite.

👎 Actual Behavior with Screenshots
How it renders in TechDocs on the demo site.

👟 Reproduction steps
Browse the Backstage documentation through the demo site.
📃 Provide the context for the Bug.
No response
🖥 Your Environment
No response
👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, but I'm happy to collaborate on a PR with someone else

Hi @darylgraham, the Backstage docs shown are intended to work with Docusaurus which uses a different pattern for  admonition. There isn't a way to fix this as it will end up being broken in one place or the other. Moving to use MkDocs for the docs on Backstage.io doesn't seem worth the effort. We could simply remove the Backstage docs from the Demo site but I think the Community would be lesser for it.

@awanlin Maybe a parser to translate from the Docusaurus admonitions to MkDocs ones would make sense here? Something like https://github.com/oprypin/markdown-callouts/tree/master.

Yep I'd call this out of scope for TechDocs and tbh I don't think we should start playing catch-up with Docusaurus here either, there are more important things to focus on :grin:. I think it's worth evaluating whether we should remove the docs from the demo site, but checking in with @backstage/techdocs-maintainers for some thoughts on the topic.

That all makes sense. Maybe now is the time to re-visit a Docusaurus processor for TechDocs?
I'll close this out.


How to handle versioning

As a developer
I need to know how to handle versioning of SCL files
So I can implement it the database
Acceptance criteria:

Make a design: how to do versioning
Document the design

The idea is to have 2 databases/versions and use RESTXQ to select the verions.


MediaType bounds check can overflow

Similar to https://github.com/aspnet/Common/issues/172, https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.Core/Formatters/MediaType.cs#L57 can overflow and make the check incorrect.

cc @JunTaoLuo


Trailing whitespace in a few files

Using feathers generate, then following the prompts (all default options), I noticed a few files with trailing whitespace in the generated project.  Happy to do a PR later.
Files affected:
/src/hooks/index.js
/src/middleware/logger.js
/src/services/authentication/index.js
/src/services/index.js
Also, running generate model, you get one in the comments there too.

Please try running the new generator (npm install feathers-cli@pre -g) to see if this is still an issue.

It all looks good.  Well played.


Add Claranet Italy and remove Flowing from the list

Hi! I wanted to suggest the inclusion of Claranet Italy, currently the company has acquired Flowing and the old xpeppers. The tech stack had also changed a lot through the last year.
If you need any further information don't hesitate to contact me.
Source: hired un flowing and now current employee in claranet Italy

There's already a PR opened to remove Flowing :)

#301 here's the relevant PR

PR is merged


[core] fix legacy binds when directly using exec_* methods

Works with AR, breaks with AR-JDBC. Fix it by pushing the conversion down
to the actual methods, remove the higher-level wrappers.
Fixes #1033

CI's ok, the failing one is unrelated. Caused by a test ordering issue, didn't happen in my own run: https://travis-ci.org/dr-itz/activerecord-jdbc-adapter/builds/590877761

looks good, seems that this is only problematic with AR 5.2 ... no need to get this for < 5.2 right?

hmm...maybe it would make sense for < 5.2, but that never worked. Those wrappers I removed with this commit were added for 5.2 only :). Might as well just have 52 and add them back to 50/51 later if required. Should also be easier to merge.


Is it possible to route to a single view?

Hi,
I am getting to grips with React at the moment.
I am using this api in my routes.json file
http://jsonplaceholder.typicode.com/posts
This then has its down route to the single view like so:
http://jsonplaceholder.typicode.com/posts/2
In my routes.json file I have this:
[
  {
    "path": "/",
    "page": "./pages/home",
    "chunk": "main",
    "data": {
      "articles": "GET http://jsonplaceholder.typicode.com/posts"
    }
  },
  {
    "path": "/articles/:id",
    "page": "./pages/details",
    "fetch": {
      "task": "GET http://jsonplaceholder.typicode.com/posts/$id"
    }
  },
  {
    "path": "/error",
    "page": "./pages/error",
    "chunk": "main"
  },
  {
    "path": "/about",
    "page": "./pages/about"
  },
  {
    "path": "/tasks/:status(pending|completed)?",
    "page": "./pages/home"
  }
]

The home page is rendering the posts and then I can click into the view from the index page. My folder structure is as follows:
pages
details
index.js
styles.css
index.md
In my pages/details/index.js I have the following code:
import React from 'react';
import Layout from '../../components/Layout';
import s from './styles.css';
import { title, html } from './index.md';

class ArticleDetail extends React.Component {

  componentDidMount() {
    document.title = title;
  }

  render() {
    return (
      <Layout className={s.content}>

{title}

      </Layout>
    );
  }

}

export default ArticleDetail;

What i would like to know is can I get the dynamic data from the api endpoint http://jsonplaceholder.typicode.com/posts/2 into this index.js template view?

If you change your second route to use data instead of fetch, you should be able to access any data from your api transaction via props. In this case if you still assign the data to "task", you can access the returned data from the api by accessing this.props.task in your component.

If you change your second route to use data instead of fetch, you should be able to access any data from your api transaction via props. In this case if you still assign the data to "task", you can access the returned data from the api by accessing this.props.task in your component.

@mrgswift How can I access the id in the routes using props in index.js ?
routes.json looks like this.
{     "path": "/articles/:code",     "page": "./pages/articles"   },
and in the article/index.js
propTypes: {    code:  React.propTypes.string.isRequired   }, componentDidMount:  function () {  console.log(this.props.code); }
i get undefined for the code prop. any help here please.

@justin22 you don't have a value for code defined in your routes.  You need to use the data field and point it to your api endpoint url to retrieve the desired data for :code.
e.g.
{ "path": "/articles/:code",
"page": "./pages/articles",
"data": {
"code": "GET http://yourdomain.com/api/code/1234"
}
}

@mrgswift  code value I get from Link
<Link to="/articles/"+code>
routes json is similar as I mentioned above.
{ "path": "/articles/:code",    "page": "./pages/articles", }
I'd like to do the fetch in componenetDidMount in the index.js file instead of routes.json.
For that I'. trying to get the this.props.code in index.js file


[#5785] Improve memory usage in 'transactionmetadata' rest api

Codecov Report

Merging #5786 into master will decrease coverage by 0.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #5786      +/-   ##
==========================================
- Coverage   40.67%   40.66%   -0.02%
==========================================
  Files        2924     2926       +2
  Lines       87867    87902      +35
  Branches    11561    11559       -2
==========================================
+ Hits        35743    35745       +2
- Misses      49029    49063      +34
+ Partials     3095     3094       -1

Impacted Files
Coverage Δ

...om/navercorp/pinpoint/web/mapper/SpanMapperV2.java
0% <0%> (ø)
:arrow_up:

...n/java/com/navercorp/pinpoint/web/vo/SpanHint.java
0% <0%> (ø)

...ercorp/pinpoint/web/dao/hbase/HbaseTraceDaoV2.java
0% <0%> (ø)
:arrow_up:

...npoint/web/service/TransactionInfoServiceImpl.java
0% <0%> (ø)
:arrow_up:

...avercorp/pinpoint/common/hbase/HbaseTemplate2.java
2.51% <0%> (-0.1%)
:arrow_down:

...inpoint/web/controller/ScatterChartController.java
0% <0%> (ø)
:arrow_up:

...vercorp/pinpoint/web/mapper/TargetSpanDecoder.java
0% <0%> (ø)

...va/com/navercorp/pinpoint/web/vo/GetTraceInfo.java
0% <0%> (ø)

.../pinpoint/web/service/ScatterChartServiceImpl.java
0% <0%> (ø)
:arrow_up:

...p/pinpoint/rpc/client/WriteFailFutureListener.java
56.25% <0%> (-18.75%)
:arrow_down:

... and 9 more

Continue to review full report at Codecov.

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


Towards #232: Refactoring towards ppss.yaml part 3/3

What this PR does:

imports ppss.yaml, and uses it to configure simulation and predictoor approach3 bot

I just renamed the branch to yaml-cli. Let's get everything under that before merging

all envvars (except private key)
base config
all predictoors
all traders


Add missing const on operator==

identified by clang14 in C++20 mode:
test/issues/github_460.cpp:25:33: error: ISO C++20 considers use of overloaded operator '==' (with operand types 'SomeStruct' and 'SomeStruct') to be ambiguous despite there being a unique best viable function [-Werror,-Wambiguous-reversed-operator]
    static_assert(SomeStruct{5} == SomeStruct{5}, "");
                  ~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~
test/issues/github_460.cpp:15:20: note: ambiguity is between a regular call to this operator and a call with the argument order reversed
    constexpr bool operator==(SomeStruct const& other) {
                   ^
1 error generated.

Hey, thanks a lot for the patch! Can you rebase onto develop and update your PR?


Incorrect resolution for Angular types

System information

OS: macOS Sierra 10.12.6
TypeScript Hero version: 1.4.0
VSCode version: 1.15.1
Angular version: 4.1.3

Description
TS Hero seems to resolve a couple of Angular types incorrectly. This was less of a problem in 1.3.0 where I could manually correct the import and still use Organize Imports. Starting from 1.4.0 Organize Imports removes the imports that I've manually fixed. I imagine that's because organize imports now goes through the same type resolution as "add import" and removes the ones that don't match its resolution.
The expected behavior would be to import types like SimpleChanges and ChangeDetectorRef from @angular/core. Instead, it's resolving to @angular/core/src/metadata/lifecycle_hooks. I tried to use ignorePatterns to ignore @angular/core/src but it didn't seem to work.
Steps to reproduce

This actually should be fixed with the new typescript features


Implementing PinotClientTransport using Vert.x

Hi! I are trying to implement the PinotClientTransport interface as a part of creating a Vert.x Client adapter for the Pinot client. There are two changes we have identified so far that can help move in that direction.

https://github.com/apache/pinot/pull/10326
Making BrokerResponse a public class. Currently its package private but the public interface of PinotClientTransport returns it from the executeQuery and executeQueryAsync methods making it impossible to implement the interface externally.

@lucifer4j thanks for implementing the Vert.x Client adapter for Pinot client.
I have some questions on this work which I think is super useful.

Is the vert.x client adapter implemented as a wrapper around the existing pinot client? Or is it going to be native client built using vert.x's async architecture?
How does the usage of a vert.x client differ from the existing pinot client ?

If you have any design or write-up about your work, it will be greatly help us understand the approach and review your work.  Tks!
Label: pinot-client

@navina Hi! Thanks.

It s a wrapper around the existing Pinot Client. A technical writeup is available at https://docs.google.com/document/d/11zXGTKqyW-kykltpAyA71IDssZ1S04r4iv1AcdR94nc/edit?usp=sharing but it might be a bit dated because of the new information I discovered during the implementation so far.
The usage should be similar to the existing Pinot Client, only the API provided will be Vert.x friendly. I will be making a demo application to demonstrate the use of the wrapper soon.

@lucifer4j : Thanks for sharing the doc and looking forward to the demo app.
Follow-up questions:

Is the code for the client going to be in open-source (I am assuming so)? If yes, which is git repository ?
What is the license that will be used by this module?

#11506

@navina Sorry for the late response, I had totally missed your comment. The repository is https://github.com/reactiverse/pinot-client and the license is Apache 2.0.


[ImageCard-my-recent-files]:[Tooltip for the file title and path of file]

I want to use the tooltip property to textbox in adaptive card but that is not availble so I thought of using tooltip for Actions. But the Actions support tooltip only from 1.5 version. And SPFX viva connections and teams support 1.3 and 1.4 respectively. Please suggest on this.

@PanchamiM are you asking if you can use a tool tip on a text box or how to add a tool tip to the action on this particular sample quickview? The SelectAction doesn't support a tooltip in version 1.3. I would suggest using a text label and putting the content you want for the tool tip in there in either case. You can always revisit when the versions of the Adaptive Card Framework get updated in SPFx/

Closed and answered

Is the text label can be used as hover as it works in tooltip?

@dcashpeterson
Is the text label can be used as hover as it works in tooltip?

@PanchamiM no. As you mentioned the tool tip functionality isn't available in version 1.3 so you would need to provide the data from the tooltip in the label on the screen. You could also use a button that opens a new card with the explanation but that feels like a bad experience for the user. What is it that you are trying to show in a tool tip that can't be in text on the screen?

@dcashpeterson we are showing name of the recent files, as it is very long we are truncating it. So, it will be easier for user if the hover property is there where we can show the entire file name.

I think that is not a great user experience as many files could have a similar root name before things are truncated and requiring the user to hover over something to get the tool tip will not be a useful experience. Your options are either to make the text clickable and navigate to a new Quick View with the full name of the file on that card and a back arrow that would bring the user to the previous list or put the entire file name on the screen with a label. Sorry I don't have a better answer.

@dcashpeterson Thank you for your help


11 ebs no snapshot issue

Description
Fix issue that EBS no snapshots wrong parameter checked. Previously EBS without snapshot will not be listed in the findings. Consolidate No Snapshot and Snapshot outdated checking into 1 function
Fixes #11
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Execute Service Screener in environment that consists of EBS without snapshot.
Verify findings and ensure EBS is detected in EBS no snapshot item.

Test Configuration:
Platform: AWS CloudShell
Region: ap-southeast-1
PHP version: 7.2
AWS SDK version: 3.0
Browser (to display output): chrome
Checklist:
Test Configuration:
Platform: AWS CloudShell
Region: ap-southeast-1
PHP version: 7.2
AWS SDK version: 3.0
Browser (to display output): chrome

[/] My code follows the style guidelines of this project
[/] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[/] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I have tested this change with all regions and services
[ ] Any dependent changes have been merged and published in downstream modules

[o] no security impacts
[o] code review done


Support docker push command line options like --all-tags

It's very frustrating to not be able to use tool usability in a tool wrapper like this.
The "docker push" and "docker pull" commands are universal and widely used options.
It doesn't make sense for me to call the tool 4 times in my pipeline to post 4 tags to the same generated image. This makes pipeline execution more cumbersome and inefficient.
My thinking started with the simple need to use the "--all-tags" flag of the docker push command but I believe that the tools should be more open to using the other options of Docker's Pull and Push commands.
I propose adding an input variable in the "advanced" visual and adding the content of this variable to the command line for Pull and Push commands. Validation of the content will be at the user's risk because this type of option is dependent on the validation of the called command and this is not the purpose of this tool.

i second this

yes agreed. I had the same issue was hoping to provide the flag....


example of clustering for network models

For example, people are clustered in households, which are clustered in neighborhoods, and there is a strong propensity for in-household mixing, a slightly weaker propensity for in-neighborhood mixing, and a zero propensity for cross-neighborhood mixing.
nw <- network.initialize(100, directed = FALSE)

hh <- rep(1:4, each = 25)
nb <- rep(1:2, each = 50)

nw %v% "hh" <- hh
nw %v% "nb" <- nb

fit <- ergm(nw ~ edges + nodemix("nb", base = c(1,3)),
            target.stats = c(50, 0))
sim <- simulate(fit, nsim = 1e4, statsonly = TRUE,
                monitor = ~nodemix("nb", base = 0)+nodemix("hh", base = 0))
colMeans(sim)

this sounds interesting!

For example, people are clustered in households, which are clustered in neighborhoods, and there is a strong propensity
for in-household mixing, a slightly weaker propensity for in-neighborhood mixing, and a zero propensity for
cross-neighborhood mixing.
nw <- network.initialize(100, directed = FALSE)
hh <- rep(1:4, each = 25)
nb <- rep(1:2, each = 50)
nw %v% "hh" <- hh
nw %v% "nb" <- nb
fit <- ergm(nw ~ edges + nodemix("nb", base = c(1,3)),
target.stats = c(50, 0))
sim <- simulate(fit, nsim = 1e4, statsonly = TRUE,
monitor = ~nodemix("nb", base = 0)+nodemix("hh", base = 0))
colMeans(sim)


zib Procedure: reference to zib MedicalDevice

Earlier, zib Procedure referenced zib MedicalDevice by referencing the DeviceUseStatement resource (the 'main' profile of MedicalDevice) in focalDevice.manipulated. Conceptually, this seems a perfect fit, but focalDevice.manipulated can only reference the Device resource part of MedicalDevice.
I can see two possible solutions:

Reference DeviceUseStatement either by some extension or reverse the reference through DeviceUseStatement.derivedFrom.
Reference Device in focalDevice.manipulated and account for the 'missing concepts'.

The first solution might be the easiest FHIR-wise, but conceptually the second matches better. The definition of focalDevice.manipulated matches the intent of the reference between the zibs, while the definition of DeviceUseStatement speaks of "This also is distinct from the Procedure resource which may describe the implantation or explantation of a device.". When looking at zib Procedure and zib MedicalDevice, it looks like all concepts present in the DeviceUseStatement part of zib MedicalDevice are either already present in zib Procedure or available in the Procedure resource, leading to my belief that it is possible to map these concepts in Procedure as well (thus leading to a MedicalDevice mapping in the zib-Procedure profile).

I agree with the last part of your observation. The Resource Device represents the device itself while DeviceUseStatment provides the context about its use. But the context is already given in this situation.

The definition of Procedure.MedicalDevice talks about 'the product' likely representing the MedicalDevice.Product container. Which lines up with your second solution. Would the zib-centre confirm this assumption? If so, we could go for the second solution and potentially ask for an enhancement of the zib to show this better as well.

https://bits.nictiz.nl/browse/ZIB-1442

Conclusion from zib-ticket: both DeviceUseStatement and Procedure provide context and at first glance it seems that there are matching contexts, but there could be subtle differences. So for the Procedure-event profile, I am implementing solution 1.
For the Procedure-request profile, DeviceUseStatement is referenced in .supportingInfo. It could be more consistent so also reverse this reference on DeviceUseStatement.derivedFrom for consistency.

Change has been merged


Calling evolve without changes on an object with a dict attribute results in a shallow copy

This is as much a question as a potential issue, but I didn't see a mailing list or alternate forum so I opted for an issue, apologies if that's wrong, feel free to close and redirect me elsewhere!
I have a use case where I needed to clone an object, attr.evolve looked like a good candidate for this.  My initial usage called evolve without any arguments, which led to a surprise when one of the attributes was a dictionary.
attrs version: 17.2.0
Expectation:  Calling evolve with an instance creates a new instance, regardless of specified changes.
Observation: Calling attr.evolve on an object with a dictionary attribute without specifying changes returned a new object using the same underlying attribute dictionary.
A (contrived) example is a little clearer:   Below, I was expecting a, b, and c to be unique, independent instances regardless of how evolve was called, was my expectation wrong?
import attr

@attr.s
class Foo(object):
    bar = attr.ib(default=attr.Factory(dict))

a = Foo()
a.bar[1] = 2

b = attr.evolve(a)
c = attr.evolve(a, bar={5:6})

assert a == b
assert c != a

b.bar[3] = 4

print("a={!r}".format(a))
print("b={!r}".format(b))
print("c={!r}".format(c))

assert c != a
assert a != b, "Curse ye, b changed a! a={!r}, b={!r}".format(a, b)

Output
a=Foo(bar={1: 2, 3: 4})
b=Foo(bar={1: 2, 3: 4})
c=Foo(bar={5: 6})
Traceback (most recent call last):
  File "evolve.py", line 25, in <module>
    assert a != b, "Curse ye, b changed a! a={!r}, b={!r}".format(a, b)
AssertionError: Curse ye, b changed a! a=Foo(bar={1: 2, 3: 4}), b=Foo(bar={1: 2, 3: 4})

To clarify, while I do expect a == b after calling evolve, I assume value (not referential) semantics.  The "is" condition is that a.bar and b.bar are the same instance.  For example, if one adds:
assert b.bar is not a.bar

After the call to evolve, the assertion will fail.
Cheers!

Evolve did create a new instance, but they both reference the same mutable object, so changing that object indirectly effects both a and b.
Your stated expectation that each is a unique, independent instance is not incorrect.  However, your unstated expectation that evolve should make a (deep) copy of every attribute is not.
I tend to think that replace, as used in the datetime class, may have been a clearer name than evolve.

@wsanchez  Sorry about that, my expectation was indeed not worded properly.
I expected a new instance (which was created) with attributes that were deep copies of the original instance's attributes (which didn't happen).
Is this working as intended then?

This is working as intended, yes.
Consider, for example, if a is a Foo instead of a dict.  How do you make a deep copy?  Note that event dict.copy will only make a shallow copy of the dict.

Thanks for the clarification!


feat: store workflowVersionID into submission table

The original submission table includes the workflowVersionID field, although no value is assigned to it.
When CreatRuns, the workflowVersionID is retrievable and concurrently saved in the submission table, facilitating subsequent tracking of the workflow version used in this submission.

 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.


Green screen

Hi!
Sorry to bother, but I tried to set the HUD up follwing to readme file closely. However, when I open a demo and launch the .exe file, I can only see a greenscreen when opening the hud in my browser. Do you have any idea what im doing wrong?
Thanks!

Same problem.

From experience this usually happens because the gamestate_integration_drweissbrot_hud.cfg isn't in the right spot. To be clear, it should be inside the C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg directory (unless you changed Steam's or the game's install location).
There should be files like boot.vcfg, gamemode_competitive.cfg, and user_keys_default.vcfg in the same folder.
The file needs to be named exactly gamestate_integration_drweissbrot_hud.cfg; maybe there's a .txt in there?
The page will also just stay green as long as you're not either watching a demo, watching a live CSTV match, or on a map and in the spectators team. It may also stay green if the warmup hasn't started yet.
If none of that helps: Could you start a demo, open the HUD page in your browser, press Ctrl+Shift+J, then post a screenshot of the console window?

Ah amazing, I put it in C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg my bad!

Good to hear :D
@Grga031 Let me know if this doesn't work for you.

@drweissbrot same thing. Sorry to bother you. My game folder changed with CS2. I put it in old CSGO folder :D


EHR attributes

Electronic health record attributes  (EHR)

Patient demographics: This includes the patient's name, date of birth, gender, race, ethnicity, and contact information.

Medical history: A comprehensive record of the patient's past medical conditions, surgeries, hospitalizations, and treatments.

Medications: A list of all current and past medications prescribed to the patient, including dosages, frequency, and duration of use.

Allergies: Information about any known allergies the patient has, including reactions and severity.

Immunizations: A record of all vaccinations the patient has received, including dates and types of vaccines.

Laboratory results: Results from any laboratory tests, such as blood tests, urine tests, and imaging studies.

Vital signs: Measurements of the patient's vital signs, such as blood pressure, heart rate, respiratory rate, and temperature.

Problem list: A list of the patient's current and past medical problems, including diagnoses and dates.

Clinical notes: Notes from healthcare providers detailing the patient's symptoms, physical examination findings, assessment, and treatment plan.

Care plans: Documentation of the patient's individualized care plan, including goals, interventions, and progress.

Social history: Information about the patient's lifestyle, such as smoking status, alcohol use, exercise habits, and occupation.

Family history: A record of the patient's family medical history, including any genetic predispositions to certain conditions.

Insurance information: Details about the patient's health insurance coverage, including policy numbers and contact information for the insurance company.

Advance directives: Documentation of the patient's preferences for end-of-life care, such as living wills and durable power of attorney for healthcare decisions.

Consent forms: Records of the patient's informed consent for various treatments and procedures.

Appointment history: A record of the patient's past and upcoming appointments with healthcare providers.

Billing information: Details about the patient's financial responsibility for services rendered, including copayments, deductibles, and outstanding balances.

Referrals and authorizations: Documentation of any referrals to specialists or authorizations for specific treatments or procedures.

Patient communication: Records of any communication between the patient and healthcare providers, such as phone calls, emails, and secure messaging.

Patient education materials: Information provided to the patient about their condition, treatment options, and self-care strategies.

EHR Note attributes
Patient Information: This includes the patient's name, date of birth, gender, address, contact information, and insurance details.
Date and Time: The date and time of the EHR note creation, as well as the date and time of the patient's appointment or encounter.
Provider Information: The name, title, and contact information of the healthcare provider who created the EHR note, as well as the name and contact information of the healthcare facility.
Chief Complaint: The primary reason for the patient's visit or encounter, as described by the patient.
History of Present Illness: A detailed description of the patient's current symptoms, including the onset, duration, severity, and any factors that may aggravate or alleviate the symptoms.
Past Medical History: A summary of the patient's previous medical conditions, surgeries, hospitalizations, and any ongoing treatments or medications.
Family History: A summary of the patient's family medical history, including any genetic or hereditary conditions.
Social History: A summary of the patient's lifestyle, including occupation, living situation, substance use, and any other relevant factors that may impact their health.
Review of Systems: A comprehensive review of the patient's body systems, including any symptoms or concerns related to each system.
Physical Examination: A detailed description of the healthcare provider's findings during the physical examination, including any abnormalities or concerns.
Assessment: The healthcare provider's evaluation of the patient's condition, including a diagnosis or differential diagnosis.
Plan: The healthcare provider's recommended course of action, including any treatments, medications, referrals, or follow-up appointments.
Medications: A list of the patient's current medications, including the name, dosage, frequency, and duration of each medication.
Allergies: A list of the patient's known allergies, including the type of reaction and severity.
Immunizations: A record of the patient's immunization history, including the type of vaccine, date administered, and any adverse reactions.
Laboratory and Imaging Results: A summary of any laboratory tests or imaging studies performed, including the results and any significant findings.
Consultations: A record of any consultations with other healthcare providers, including the reason for the consultation and the outcome.
Patient Education: A summary of any education or counseling provided to the patient, including the topics discussed and any resources provided.
Signature: The healthcare provider's signature, indicating that they have reviewed and approved the EHR note.


Published JS File Sizes and Pre Rendering Speed

Hi Guys
I have been trying to make my website to load quicker on the initial load where user visits for the first time, I have got this to between 4-9 seconds where 9 seconds is on slow smartphones.  After that other routes load in under a second and if I revisit the website it loads in under 2 seconds.  I have even put a loading message up that changes every 2 seconds!
I messed with the webpack.config.vendor file as shown below and got vendor.js down to 800k and main-client.js down to 300k on a prod build
Just wondering why it still takes a while to load as I only have 12 routes and 9 of them are lazy loaded and I am using caching and compression on the server.
Is there anything else I can do or do I have to wait for WebPack v2 for tree shaking and AOT?
Thanks
Neil
vendor: [
//'@angular/common',
//'@angular/compiler',
//'@angular/core',
//'@angular/http',
//'@angular/platform-browser',
//'@angular/platform-browser-dynamic',
//'@angular/router',
//'@angular/platform-server',
'angular2-universal',
'angular2-universal-polyfills',
'bootstrap',
'bootstrap/dist/css/bootstrap.css',
//'es6-shim',
//'es6-promise',
'jquery',
//'zone.js',
'es6-promise-loader'
]

To diagnose this further, I'd suggest trying to break down that time to identify what phases are consuming it. The startup process is roughly like this:

Server side: (First visitor only) Start up .NET process and ASP.NET application
Server side: (First visitor only, with older templates only) Run Webpack to produce server-side .js code for prerendering
Server side: Run ASP.NET code and server-side prerendering
Client side: Display initial (server-rendered) HTML
Client side: Parse JS bundles
Client side: Execute application on the client; re-render the resulting HTML

You can work out what time is spent in each of these phases by considering things like the difference between first-visitor and subsequent-visitors (that accounts for phases 1 and 2), and by using the dev tools in your browser to work out how long is spent in phases 1-3, and in 4, 5, and 6.
If you do this and find that some phase seems disproportionately expensive, please let us know!


Cutout

is possible to modify this project to be a cutout?
for example we have these:
*Sender 1
*Sender 2
*Cutout
*Owner
When Sender 1 send message to Cutout it will automatically forwarded the message to Owner and when Owner reply to Cutout will also forwarded to  Sender 1. Same as Sender 2.

The use case described can be implemented using SMS API delivered by Huawei Dongle and some routing heuristic.
You can get inspiration from this project codebase. However, this use case won't be part of this project core feature.


prql and scientific notation

This query seems to fail due to the e-5 ... is there some obvious way to work around it?
prql.to_sql("""
from df
derive [
   cc = 1.34e-5 * a
]
""")

SyntaxError:  --> 4:13
  |
4 |    cc = 1.34e-5 * a
  |             ^---
  |
  = expected operator_mul, operator_add, operator_compare, operator_logical, operator_coalesce, or interval_kind

Thanks for the question.
While we don't have scientific notation in PRQL yet, this "should" be solvable with an s-string.
Unfortunately because we format the SQL and our SQL formatter doesn't seem to support them either, it currently doesn't work for a different reason:
from df
derive [
   cc = s"1.34e-5" * a
]

SELECT
  df.*,
  1.34 e -5 * a AS cc  # shouldn't have spaces here
FROM
  df

This is related to https://github.com/prql/prql/issues/965. No word yet on https://github.com/shssoichiro/sqlformat-rs/issues/15.
To the extent this is important, I can add a workaround — let us know.

s-string is a good enough work around for me. It's good to know what does not exist yet (but might eventually).

I just noticed that there is still some whitespace issue as shown below that is probably worth fixing eventually:
In [170]: df = pd.DataFrame(np.random.randn(10, 1), columns=['a']).reset_index()

In [171]: q = prql.to_sql("""
     ...: from df
     ...: derive [
     ...:    cc = s"1.34e-5 * a"
     ...: ]
     ...: """)

In [172]: duckdb.query(q).df()
---------------------------------------------------------------------------
ParserException                           Traceback (most recent call last)
Input In [172], in <cell line: 1>()
----> 1 duckdb.query(q).df()

ParserException: Parser Error: syntax error at or near "-"
LINE 3:   1.34 e -5 * a AS cc
                 ^

In [173]: duckdb.query("select df.*, 1.34e-5 * a as cc from df").df()
Out[173]:
   index         a            cc
0      0  1.431854  1.918684e-05
1      1  0.771389  1.033661e-05
2      2  0.510250  6.837351e-06
3      3  0.008511  1.140497e-07
4      4 -0.218765 -2.931449e-06
5      5 -0.649255 -8.700023e-06
6      6 -0.668568 -8.958808e-06
7      7 -0.423988 -5.681436e-06
8      8 -0.583732 -7.822005e-06
9      9 -0.622073 -8.335777e-06

In [174]: print(q)
SELECT
  df.*,
  1.34 e -5 * a AS cc
FROM
  df

Yes re the whitespace — I tried to say that above, likely I wasn't clear.
But your workaround with CAST is very clever! Great idea.

This is related to https://github.com/prql/prql/issues/965. No word yet on https://github.com/shssoichiro/sqlformat-rs/issues/15.

Are you OK bundling this into those issues re the s-string contents being formatted, sometimes incorrectly?

Yeah, sounds good. Will close this to reduce noise


Sway matches first path always even if there might be a "better matching" path, intended or not?

Let's say I have two paths in my Swaggerfile:
/{id}
and
/count
now if I post to /count Sway's getPath-method matches this to /{id} instead of /count.
If I move /count before /{id} in my Swaggerfile it matches everything correctly.
Is this intended behaviour or a bug?
Thanks!

It's not intended, this is a duplicate of #76.


[mle] only include mesh-local address in "Child Update Response"

This commit changes preparation of "Child Update Response" (on a
child) such that only the mesh-local address is included in Address
Registration TLV. If the child has more addresses to register it
follows up with its own "Child Update Request".

It also updates toranj test-032 to cover the address registration behavior by child after parent reset.

Looks like new test is failing on travis but it passes ok on my local machine. I am going to mark this PR as work-in-progress and investigate this (seems like the child is somehow getting detached for some reason after parent reset which we do not expect...).


Adds support for the shoulda-context gem

From #32

@alexpjohnson  I had to revert this PR because it doesn't work and test is false positive.
I have here a separate rails app. I added there shoulda-context and I tried to generate report to see if the test file path is detected correctly but it is not.
You can find here more how to test it https://github.com/KnapsackPro/rails-app-with-knapsack/pull/1
Basically what we would like to achieave here is to have correct test file path in the variable full_test_path. Maybe you will find how to do it. I was trying for a while but I couldn't find a way to get test file path based on obj.
      def self.test_path(obj)
        # Pick the first public method in the class itself, that starts with "test_"
        test_method_name = obj.public_methods(false).select{|m| m =~ /^test(:|_)/ }.first
        method_object = obj.method(test_method_name)
        full_test_path = method_object.source_location.first
        parent_of_test_dir_regexp = Regexp.new("^#{@@parent_of_test_dir}")
        test_path = full_test_path.gsub(parent_of_test_dir_regexp, '.')
        # test_path will look like ./test/dir/unit_test.rb
        test_path
      end

Hey @ArturT, I've done a bit more investigating and it seems the root issue is that shoulda-context is breaking the API established by minitest. By dynamically generating methods, they are losing the original source_location of the test. I'm still tinkering around with it, but as that gem is currently designed I don't think it's possible for you to fix it in this gem, nor do I think it's really your responsibility. I've opened up an issue on their gem here. I'll keep tinkering around with it, but hopefully an upstream PR will get merged and then your code should just work :) Thanks for your help, and sorry for the premature PR.

@alexpjohnson Thanks for the update. Hope shoulda-context team will have some tips how to determine the path of the test file. Maybe there is another way than using source_location.

Hey @ArturT I've got a solution that works locally for me. I refactored a bit of the shoulda-context gem to allow passing in the original source location. There's a PR open here.

@alexpjohnson With your fix in shoulda-context there is no need to do changes in knapsack as all methods generated by shoulda-context have prefix test_, right?

Correct. It should all just happen auto-magically :)

Just wanted to keep you up to date in case any of your other users mentioned it.


Run as non-root user

I want to run the bazel-remote container in a Kubernetes cluster constrained by a mandatory non-root Pod Security Policy rule. At present, bazel-remote is invoked as the root user.
A forthcoming PR will:

Create the "bazelremote" user
Create the "/data" directory
Run the container as "bazelremote"

Here is the PR: https://github.com/buchgr/bazel-remote/pull/303

Landed #303.


Email Classification as spam or not

I had made an email classification as spam or not ml model using NLP and Naive Bayes algorithm.
Also, the dataset file is being added along with the code file, readme, and requirements file.

#298


webview_flutter cannot open the album under Android

test url :
https://webchat.7moor.com/wapchat.html?accessId=a902b190-fc75-11e9-9bd8-bd299448ef2d&fromUrl=2&urlTitle=1
webview_flutter cannot open the album under. Android,Please help me. Thancks!

Is there any output @hmTest6 ?

Hi @hmTest6
Can you please provide your flutter doctor -v and flutter run --verbose logs, and a minimal complete reproducible code sample?
Also, please specify which version of webview_flutter you're using and I would also like you to confirm if this url can open the album using a native android application.
If the native android application cannot open it, then webview_flutter can't either, since it is just a wrapper around the native android webview.
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


In /addresses api, '+' is not working in sort query params.

https://tracker.icon.community/api/v1/addresses?sort=-balance&limit=25&skip=0.
This works fine

https://tracker.icon.community/api/v1/addresses?sort=+balance&limit=25&skip=0.
This returns invalid sort parameter.
'%2Bbalance% works instead of '+balance'
https://tracker.icon.community/api/v1/addresses?sort=%2Bbalance&limit=25&skip=0

Works from swagger to local but not from chrome + postman. + is replaced with " ".
Easy way to side step this is to make the - the same as the + now and not have anything for the +.
So this would be it
https://tracker.icon.community/api/v1/addresses?sort=-balance&limit=25&skip=0.
https://tracker.icon.community/api/v1/addresses?sort=balance&limit=25&skip=0.
Basically opposite than it is now with no +

Works from swagger to local but not from chrome + postman. + is replaced with " ".
Easy way to side step this is to make the - the same as the + now and not have anything for the +.
So this would be it
https://tracker.icon.community/api/v1/addresses?sort=-balance&limit=25&skip=0.
https://tracker.icon.community/api/v1/addresses?sort=balance&limit=25&skip=0.
Basically opposite than it is now with no +

Works from swagger to local but not from chrome + postman. + is replaced with " ".
Easy way to side step this is to make the - the same as the + now and not have anything for the +.
So this would be it
https://tracker.icon.community/api/v1/addresses?sort=-balance&limit=25&skip=0.
https://tracker.icon.community/api/v1/addresses?sort=balance&limit=25&skip=0.
Basically opposite than it is now with no +


Build cache should consider changes to the compiler

Proposed change: For internal development, we should include information about the current compiler version (e.g.: the commit hash or a hash of the kani-compiler binary. We should also include the toolchain version that's being used.
Motivation: This will alleviate the development pain of remembering to do a cargo clean whenever making changes to the compiler. Not doing so can manifest in weird / inconsistent results that end up taking time to debug.

Some context: https://github.com/rust-lang/cargo/pull/8073


Data corruption after battery empty

Affected hardware version
Bangle 2
Your firmware version
2v21
The bug
I was using watch for gps logging, and battery ran flat for first time in maybe half a year. And... data corruption after I charged it. So it seems like the old issue is still there. Should I try to create some kind of reproducer?
Installed apps
sixths (0.03) was used for gps logging, it seems to trigger corruption quite easily.

I was using watch for gps logging, and battery ran flat for first time in maybe half a year. And... data corruption after I charged it. So it seems like the old issue is still there. Should I try to create some kind of reproducer?

Yes please - do you have a link to the old issue too?

Old issue is: https://github.com/espruino/BangleApps/issues/3000

If you want to try to reproduce it in the meantime, install sixths and do "topright"- "bottomright" -"bottomleft" gesture. It will turn on GPS. I can reproduce it way too easily on horseback trips.
I'll try to hack up better reproducer.

Great, thank you (also tagging #2865 for reference too). I'll tag @gfwilliams just so you're aware, in case there was any storage changes you're working on in the meanwhile

sixths (0.03) was used for gps logging, it seems to trigger corruption quite easily.

Have you had corruption more than this one time in the last 6 months then?
At least now it should have popped up the recovery screen when you rebooted, and you have the choice to compact which may fix it, or you can connect via Bluetooth with the app loader at that point, do a backup, and then restore it and that'll definitely fix it too.
One issue is that storage is only scanned at boot, so we don't actually know whether the corruption did happen when the battery died, or whether it happened before and you only noticed when the watch rebooted.
Potential fixes for this might be:

Ensure sixths (and recorder app) automatically turn off at 10% battery
Make Espruino itself make Storage read-only if battery gets below 5-10%. That'll probably annoy some people but it would stop this kind of problem I guess.

So I'm trying to reproduce the corruption, and no success so far. No, I did not detect corruption in last 6 months.
I guess "storage is only scanned at boot" might be my problem. I suspect I did heavier-than-average use in the past. Is there way to force filesystem check on runtime -- maybe we should be doing that periodically...

(I guess I should try to simply reboot watch after "heavy" use, and see if I can find some kind of pattern? Is Settings|Utils|Turn off then turn it back on way to do that?)

No, I did not detect corruption in last 6 months.

Ahh, ok - it's just you said "sixths triggers corruption quite easily" so I thought maybe it had done it a few times.

Is there way to force filesystem check on runtime

Actually right now there isn't, but I guess that could be exposed.
Using turn off is probably nicer, but you could long-press the button (although I guess that risks potentially rebooting while writing to flash)

So, yes, I did have it few times, but it was more than 6 months ago :-).
So... what are the expected results of rebooting while writing to flash? I'm used to ext4 where there should be no ill results; recent writes may be lost but things should be consistent. How does BangleJS compare?

Ok, so I drained battery maybe 10 times this morning, then did some tweaks from App loader, and now App loader no longer connects. But watch still reboots ok.

For the record, may battery draining script was this:
function eat(on) {
Bangle.setOptions({backlightTimeout: 0})
Bangle.setGPSPower(on, "sixths");
Bangle.setCompassPower(on, "sixths");
Bangle.setBarometerPower(on, "sixths");
Bangle.setHRMPower(on, "sixths");
Bangle.setBacklight(on);
if (on) {
for (let i=0; i<10000; i++) ;
}
}
function logstamp(s) {
logfile.write("utime=" + getTime() + " " + s + "\n");
}
drain = 0;
cooldown = 0;
function periodic() {
bat = E.getBattery();
g.setColor(1, 1, 1);
g.fillRect(0, 24, 240, 240);
g.setFontAlign(-1, 1);
g.setColor(0, 0, 0);
g.setFont('Vector', 26);
let now = new Date();
msg = now.getHours() + ":" + now.getMinutes() + " " + bat + "% ";
msg2 = cooldown + "/" + drain;
g.drawString(msg, 10, 90);
g.drawString(msg2, 10, 130);
print(msg + msg2);
logstamp(msg + msg2)
if (bat < 2) {
if (drain)
drain--;
else {
if (cooldown) {
eat(0);
cooldown--;
} else {
cooldown = 760;
drain = 260;
require("Storage").compact(true);
eat(1);
}
}
} else {
eat(1);
drain = 2*60;
}
}
let logfile = require("Storage").open("crash.log", "a");
setInterval(periodic, 1000);

and now App loader no longer connects. But watch still reboots ok.

It might just be your PC's bluetooth connection is confused. I doubt it's a bangle issue.
If power fails while writing to flash I think it's similar, but the issue is really if it's writing a new file's header and those 32 bytes end up partially written. It'd be extremely unlikely for that to happen though

I have solid connection from the Web IDE, yet app loader has deterministic problems. Compaction still works:

require("Storage").compact(true);
=undefined

require("Storage").getStats(true)
={ totalBytes: 8388608, freeBytes: 2427696, fileBytes: 5960912, fileCount: 346,
trashBytes: 0, trashCount: 0 }

But I seem to read all the files okay,I'll try to debug it a bit more.

Ok, so now I have corruption, this time .boot0 contains 0xff's . I don't recall running battery flat, recently.
If you just go to the Settings app then Utils and rewrite settings, and that should fix it?
It seems to me like somehow the bootupdate.js file got interrupted in the middle of writing .boot0 after the settings were changed. I've never seen that before, and I'm not quite sure I see how that could have happened unless it took a very long time to run, during which you were maybe holding the button?

Filenames look ok in the web ide. I had few files truncated to 0xffff bytes in the past. Let me try the "rewrite settings".
Is there documentation of filesystem properties somewhere? Knowing which actions can lead to corruption would be good. I now know "battery running empty" is dangerous. Is the "2 second press" dangerous? Is the "5 second press" dangerous?

(And yes, "rewrite settings" did the trick for me. Thanks!)

I now know "battery running empty" is dangerous.

In recent firmwares even that isn't bad - it just means that maybe if you're super unlucky a file header will be partially written, but you do have to be very unlucky for that.

Is the "2 second press" dangerous? Is the "5 second press" dangerous?

They shouldn't actually be very dangerous now either. I don't think it's very easy for a write to end up getting completely interrupted (apart from with the 5 second press) but even then it's just that a file ends up partially written like in this case.
All I can think happened for you is maybe you changed a setting and then the storage needed compacting when .boot0 was updated (it should display a message onscreen now), then maybe you held down the button to try and break out, and that caused Espruino to break out of execution. It seems very unlucky though.
Do you remember doing anything in particular right before you started noticing the error?


Add Tcl nagelfar linter

I've added support for Tcl with nagelfar.
It's my first time making a change to a Vim plugin, so any feedback welcome.

Cheers! :beers:


Add 'Serial' struct method returning serial number directly from Yubi…

…Key.
This change provides a public struct method to obtain the serial number of a Yubikey directly from the the device; in the piv package this employs the native PIV instruction with a fallback for older models.
This enables client code using this library to always get the device serial number, even if the attestation key/certificate has been evicted/imported over.
💔Thank you!

 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.


Color coding stopped working

Starting sometime last week (or it could have been the previous one) the color coding is not working. All PRs stay green regardless of their status. Currently running on 1.7.1.

Sorry for taking so long to reply. I've been trying to get authorization from my company to use the GraphQL explorer but haven't been able to. In the end I figured out how to do it with HTTPie. I don't currently have a PR where CI is failing, but this one cannot be merged because it doesn't have any approvals yet. Weirdly enough, GitHub says it's MERGEABLE...
{
    "data": {
        "viewer": {
            "pullRequests": {
                "nodes": [
                    {
                        "commits": {
                            "nodes": [
                                {
                                    "commit": {
                                        "status": null
                                    }
                                }
                            ]
                        },
                        "mergeable": "MERGEABLE",
                        "merged": false,
                        "number": 126,
                        "potentialMergeCommit": {
                            "status": null
                        },
                        "reviews": {
                            "edges": []
                        },
                        "state": "OPEN"
                    }
                ]
            }
        }
    }
}


[FEATURE REQUEST] Support for ANY/SOME array function/comparison

Hi, I have some use cases where it's needed to check if some string in present on a array. For those cases, I found myself wanting to use the "= ANY()" construct on my Postgres queries.
Here is an example of such:
let query = this.db
            .selectFrom('notifications')
            .leftJoin('readReceipts', 'notifications.id', 'readReceipts.notificationId')
            .select((eb) => [
                'id',
                'oneSignalId',
                'heading',
                'body',
                'data',
                'notifications.createdAt',
                'type',
                eb('notificationId', 'is not', null).as('read'),
            ])
            .where(sql`${username}`, '=', sql`ANY(destination_usernames)`)

if (lastId) {
    query = query.where('id', '<', lastId)
}
if (take) {
    query = query.limit(take)
}

const notifications = await query.orderBy('id', 'desc').execute()

console.log(notifications[0])

return notifications

A playground with it and the DB types (mostly): Playground Link

We could maybe add this to the core. In the meanwhile you can do this: https://kyse.link/?p=s&i=GWRzO57iwpeeI6aWm9Es

I'm working on this. In the next version you'll be able to write this:
db.selectFrom('person')
  .selectAll('person')
  .where((eb) => eb(
    eb.val('Jen'), '=', eb.fn.any('nicknames')
  ))

any only accepts array columns (and expressions) and automatically checks the item type against the left operand.


Take in dictionary of conversion statistics

This allows stats to be accumulated between function calls. Closes #2

I wonder whether renaming report to stats makes more sense.  Not a big deal though.


chore: make eslint error if missing .js extension

Codecov Report

Merging #2735 (8d01fcc) into node-migration-clean (17df478) will increase coverage by 4.02%.
The diff coverage is n/a.

:exclamation: Current head 8d01fcc differs from pull request most recent head 32a3993. Consider uploading reports for the commit 32a3993 to get more accurate results

@@                   Coverage Diff                    @@
##           node-migration-clean    #2735      +/-   ##
========================================================
+ Coverage                 21.54%   25.57%   +4.02%
========================================================
  Files                        72       72
  Lines                     22745    22753       +8
  Branches                     55      221     +166
========================================================
+ Hits                       4901     5819     +918
+ Misses                    17842    16931     -911
- Partials                      2        3       +1

Flag
Coverage Δ

*Carryforward flag

client-unit
0.00% <ø> (ø)

discordeno-unit
0.00% <ø> (ø)

gateway-unit
0.00% <ø> (ø)

rest-e2e
85.60% <ø> (?)

Carriedforward from 6cfb380

rest-unit
78.73% <ø> (ø)

utils-unit
52.47% <ø> (ø)

*This pull request uses carry forward flags. Click here to find out more.

Impacted Files
Coverage Δ

packages/rest/src/manager.ts
95.04% <0.00%> (+13.15%)
:arrow_up:

packages/rest/src/invalidBucket.ts
82.66% <0.00%> (+22.10%)
:arrow_up:

packages/rest/src/queue.ts
88.34% <0.00%> (+80.58%)
:arrow_up:

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


Powercord Crash

I have Spotify premium and I thought there is a Spotify playlist plugin connected to the theme. When I start playing music - Powercord instantly crashes. And it keeps crashing even if I reload it without Spotify, only deleting a theme fixes an issue

Whats a spotify playlist plugin? never heard of it nor does it come with the theme. The theme only modifies the spotify integration that comes by default with powercord.

So update on this, this error only occurs when you have the Account Profile Popout experiment enabled.

also it has nothing to do with Lavender because it happens with no themes enabled as well so this issue should be opened in powercord repo not here.


Suggestion: Save data across multiple devices on the same Runelite account

As someone who plays on the same runescape account across a laptop and a PC, with the same Runelite account, it would be awesome if it were possible to sync across both. If this isn't possible, is there a way to transfer the local data over by automatically saving it in the cloud and just copying it into my runelite folder when I want to play?

Unfortunately this is an issue with local storage, and why RL went with cloud storage. There's a lot of issues with trying to not duplicate data when doing a combination of both that I just don't want to deal with. The only way to accomplish what you want currently would be to manually copy the content of files with the same name (I.E. man.log) into a new file and put those the the /loots/username directory  the UI display that.
I don't see myself addressing this so I'm going to close the issue, Sorry.


Question about graphormer version 1

Hi! this is Stella from Seoul National University.
I'm using this great model you made. Thank you always.
I'm using graphormer version 1 for my research, and I'd like to ask if you can accept questions about version 1.
In collator.py, there exists Batch class, and it gets 'y' input. Is this 'y' is coming from graph_label.csv in sample datasets?
I encoded graph label as 0 and 1 but graphormer says that -2, -1, 2 was given as y_true, so I think graph_label.csv is not the input for the class Batch.
Thank you!

Thanks for using Graphormer, and sorry for late response, hope you've already solve the problem or migrate to V2🤣.
If not, would you please provide more detailed error message and code for your question to let us better understand this issue?


Missing escape of backslashes in prompt.sub

Version Information

Package Version: 0.1.19
Operating System: MacOS 13.3.1

What is the expected behavior?
Support for backslashes in prompt field values
What is the actual behavior?
Backslashes are unsupported
Please provide a unit test that demonstrates the bug.
  prompt = PromptPattern.from_str("{{context}}\nquestion: {{question}}\nanswer:")
  prompt.sub("context", "Copy the file to \Conf")

Other notes on how to reproduce the issue?
The above code causes re.sub() to raise an exception as it attempts to interpret the \C as a regex meta-character.
The user isn't aware of prompt.sub() using re.sub() so he/she is not aware of the need to escape backslashes.
Any possible solutions?
In prompt_template.py, line 204, add escaping of backslashes as described at the bottom of the documentation of  re.escape() in the Python docs .
This means that line 204:
        self.dump = re.sub(pattern, value, prompt)

Should be changed into:
        self.dump = re.sub(pattern, value.replace('\\', r'\\'), prompt)

Can you identify the location in the GENAI source code where the problem exists?
In prompt_template.py, line 204
If the bug is confirmed, would you be willing to submit a PR?
Yes

@assaftibm : Thanks for your willingness to submit a PR! Assigning this issue to you. Our guidelines are here: link

@onkarbhardwaj I created the PR. Thanks.

Released in v0.2.6 🚀
Thanks! 🥇


To build the docker image on Raspberry Pi

For building a RPi compatible docker image one has to replace the Dockerfile
RUN curl -o dogecoin.tar.gz -Lk https://github.com/dogecoin/dogecoin/releases/download/v${version}/dogecoin-${version}-x86_64-linux-gnu.tar.gz
with the arm version
RUN curl -o dogecoin.tar.gz -Lk https://github.com/dogecoin/dogecoin/releases/download/v${version}/dogecoin-${version}-aarch64-linux-gnu.tar.gz

Thanks for mentioning this.  I haven't tried building for ARM before, but I can look into it if there's interest.


There is a problem with the score keeper when you get one correct

I played the game and got a question correct - my score updated to "1/0"

Closed with PR #54


As a user, I can have Household Naming specification that will produce Mr. & Mrs. John Doe.

Hub thread: https://powerofus.force.com/0D580000028QKE5
Currently, household naming doesn't support is only showing the firstname for the primary contact, but not showing firstname for other contacts. {!{!Salutation} {!FirstName}} {!LastName} will get you Mr. John & Mrs. Jane Doe. I will put in a feature request for what you are asking, but I'm not sure how feasible it will be to implement given our naming formula rules.

Another request for this: https://powerofus.force.com/0D58000002AFHxM

another similar request for this: https://powerofus.force.com/0D58000002CG5da

**lurch: attach W-007282

Tracking W-007282

Another use case: https://powerofus.force.com/0D58000002Mykem

A similar but not quite the same request: https://powerofus.force.com/0D58000002XN6X9

Another use case: https://powerofus.force.com/0D58000002lLqaC

Any word on this! We would love it too. It'd be ideal if it had the ability to pull the primary contact first name or the male first name. Both options would be awesome!


Fixed: Progress percent always showing 0%

Resolved / Related Issues

[x] Were these changes approved in an issue or discussion with the project maintainers? In order to prevent extra work, feature requests and changes to the codebase must be approved before the pull request will be reviewed. This prevents extra work for the contributors and maintainers.
Closes #10755

Validation
How did you test these changes?

[x] Did you build the app and test your changes?
[ ] Did you check for accessibility? You can use Accessibility Insights for this.
[x] Did you implement any design changes to an existing feature?

[x] Was this change approved?

Details
The underlying issue was that progress was null, since the parameter was optional. I made it necessary so that we will avoid similar problems in the future

What if progress isn't available? For example, I'm not sure if Recycle Bin reports progress.

What if progress isn't available? For example, I'm not sure if Recycle Bin reports progress.

I just checked: recycle bin doesn't report progress. It will be displayed only a banner saying if the operation succeded or not


Avoid using pytest attributes during import

Closes #1917
Note: chainer has the same issue.

jenkins, test this please.

LGTM!

Jenkins CI test (for commit 5683cfa193e553d114edcb7cf322af465cbb33fb, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)


Binary search for start and end on Overlapping

Now that parent_offsets exist within Element, a binary search may be used to more quickly truncate the front and back of Overlapping's elements.
It may be better to just do the front for now, and then consider doing the back later, since that will require more computation and may not always be necessary.

It may make more sense to make the binary search truncation on both front and back be lazily evaluated (as in, executed on calls to next() and next_back()). This way, there won't be any unnecessary removal if users only call one of next() or next_back() on the iterators.

A lazy truncation of elements at the front has been implemented for next().
A similar implementation should follow for next_back(), although we'll need to watch out for finding parent elements.

The implementation for next() actually is a regression. The function passed to binary_search_by() is not a total ordering, and therefore fails for the following test case:
let nclist = NestedContainmentList::from(vec![1..5, 1..2, 2..3, 4..5, 0..0]);
let mut overlapping = nclist.overlapping(&(2..3));

let element = overlapping.next().unwrap();
assert_eq!(element.value, &(1..5));
assert_eq!(element.sublist().next().unwrap().value, &(2..3));

To fix this, the binary search should instead order on top-most parent elements only. This is because the top-most parents are sorted on start and stop directly, but inner elements are not guaranteed to be (see Proposition 1).

The binary search fix has been implemented. The same will need to be used in next_back(). It may be wise to combine them into a function call to avoid duplicating logic.

next_back() has binary search implemented. I'll need to check my work later to make sure it's done right.

After looking at it again, I believe the work is done correctly.


Add Missing Methods for Custom Distributions to Ensure Turing.jl Compatibility

Hey @itsdfish. @DominiqueMakowski  and I noticed that the codebase creating custom distributions suitable for use with Turing.jl may be missing some methods. This omission can result in errors when users attempt to estimate parameters using Turing. see this thread.
To address this issue, I suggest adding the following methods to each distribution, following the guidelines outlined in the Distributions.jl documentation.

minimum(d::UnivariateDistribution)
maximum(d::UnivariateDistribution)
insupport(d::UnivariateDistribution, x::Real)
params(d::UnivariateDistribution)

While adding these methods, we can improve the usability, functionality, and standardization of using sequential sampling model distributions for use with Turing.
I am able to get started on this and opening a pull request with the necessary changes. Please let me know if there is any way I can assist or contribute further.
Best,
Kianté

Hi Kianté,
That sounds good.  I've never encountered a problem so far.  As a result, I never implemented those methods. Are you aware of any specific issues?
I think you might be able to use method(d::SequentialSamplingModel) for minimum, maximum, and insupport. The function params would need to be dispatched on each type.
Another thing to be aware of is that ContinuousUnivariateDistribution is technically not appropriate for some of the models. Unfortunately, Distributions.jl does not have a general type that matches, for example, the LBA. What it likely needs is something like MixedMultivariateDistribution, which would be discrete for choice and continuous for reaction time. I discussed the design pattern of Distributions.jl with a few people on Slack, but I did not really understand how it works, and what the implications would be fore defining a new generic distribution type.


Multiple master pools?

Is there a way to have multiple master pools? I don't see - so I don't think it accepts an array like workers do.
Usage for this would be, instead of 1 master pool in one location with 3 masters, you could have 3 pools in 3 different locations and each location would have a single node.

Also, I still get hangs when when using rocky-9 and microos with snapshot made with packer tool.

---
hetzner_token: *redacted*
cluster_name: tmina
kubeconfig_path: "./kubeconfig"
k3s_version: v1.25.5+k3s1
public_ssh_key_path: "~/.ssh/id_rsa.pub"
private_ssh_key_path: "~/.ssh/id_rsa"
use_ssh_agent: false
ssh_allowed_networks:
  - <IP_ADDRESS>/0
api_allowed_networks:
  - <IP_ADDRESS>/0
schedule_workloads_on_masters: false
image: rocky-9 # tried with snapshot ID and uncommented line below
# snapshot_os: microos
masters_pool:
  instance_type: cpx21
  instance_count: 1
  location: nbg1
worker_node_pools:
- name: small
  instance_type: cpx21
  instance_count: 2
  location: nbg1

It works with this config

---
hetzner_token: *redacted*
cluster_name: tmina
kubeconfig_path: "./kubeconfig"
k3s_version: v1.25.5+k3s1
public_ssh_key_path: "~/.ssh/id_rsa.pub"
private_ssh_key_path: "~/.ssh/id_rsa"
use_ssh_agent: false
ssh_allowed_networks:
  - <IP_ADDRESS>/0
api_allowed_networks:
  - <IP_ADDRESS>/0
schedule_workloads_on_masters: false
# image: rocky-9 # default ubuntu-22.04
# snapshot_os: microos
masters_pool:
  instance_type: cpx11
  instance_count: 1
  location: nbg1
worker_node_pools:
- name: small
  instance_type: cpx21
  instance_count: 2
  location: nbg1

Masters in multiple locations: I have planned this improvement. Since there would be a single master in each location it doesn't make sense to define this as multiple pools. Instead, I think the config will allow you to specify an array of at least three locations, and the tool will distribute the masters across those locations.
I will check with Rocky-9 Linux shortly.

It seems that Rocky Linux 9 deprecates RSA keys with SHA1 like Ubuntu 22.04 does. In 1.0.6 I made a change to make these keys work with Ubuntu 22.04 for now, until upstream libssh2 is updated as well as the SSH library I use in Crystal. However this change doesn't seem to work with RL9 for some reason. You can confirm this if you SSH into one server manually (with the regular SSH client) and check /var/log/secure. You'll see this error
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms

If that's the case, can you try with newer keys like ed25519 ones? This will only work with a new cluster though, as you'd need to manually add the pub key to the existing nodes if you want to fix the old cluster. Since you are still creating it, I guess it's fine to just delete it and recreate. Let me know how it goes. I will see if there is a workaround for this distro as well.

I found a workaround and am making a relase.

@aleksasiriski Please try with 1.0.7 :)

@aleksasiriski Please try with 1.0.7 :)

I'll try it tomorrow (: Thanks!

@aleksasiriski Please try with 1.0.7 :)

I'll try it tomorrow (: Thanks!

OK. It seems to work correctly for me. Let me know how it goes.

@aleksasiriski Please try with 1.0.7 :)

I'll try it tomorrow (: Thanks!

OK. It seems to work correctly for me. Let me know how it goes.

rocky-9 works, trying microos now

This is a plan for my PR (just need to finish a few exams), if you approve it:

Add option to not create a LB for 3+ masters
Integrate packer script when image: microos and then use snapshot_os: microos
Add support for CoreOS
Fix deletion of autoscaling nodes

You can start implementing stuff because I need to learn Crystal first. I have exams throughout the whole week since it's the end of the semester, so I can't really say how fast will I be able to contribute (after I start adding PRs it'll be easier to determine how fast I can code in Crystal)

Gotcha. I am quite busy this week too so if I have time it will be next weekend anyway. I am also studying - for Offensive Security certification - but luckily I am far from the exams :D

Nice, I've just started university but am already planning on going somewhere in Europe to study Cybersecurity

Nice, I've just started university but am already planning on going somewhere in Europe to study Cybersecurity

Come to Finland :)

Finland is in the top 3 countries currently for me to study and live in (I love how taxes work there and how green the cities are, concerning cars and everything else) but I don't think this conversation is meant to be discussed on a public Github issue, here's my discord: Kakaranfil#6124

Which discord community?

Which discord community?

I don't quite understand what you're reffering to? Kakaranfil#6124 is my personal discord account if you want to add me as friend, if you don't or you don't have a discord account that's fine too.


Backscrape all the CA cases we lack

This came up in the context of the CA unpublished cases, but we don't necessarily have to stop there. I believe @ikeboy is going to take a run at this.

I could use an export of case numbers and precedential status from calctapp for the backscraping. From https://www.courtlistener.com/?stat_Non-Precedential=on&order_by=dateFiled+desc&court=calctapp&type=o&page=2, CL currently has 91,367 precedential cases and 26,335 non-precedential cases.
That would help reverse engineering the case number formula.

I wonder if this is complete?

Seems like it's not, but you'll be reviewing gaps and filling them over the next six months anyway, so no point in keeping this really old issue around. We can open a new, fresh one when the time comes.


update sales contract

Coverage decreased (-0.6%) to 63.008% when pulling 52a81e84466776df4a96d93b9a10ecb2cf159826 on leslieaula:dev into 105842cb099bccf9b0ca495b5238e9225e400358 on danliris:dev.

Coverage decreased (-0.6%) to 63.008% when pulling 52a81e84466776df4a96d93b9a10ecb2cf159826 on leslieaula:dev into 105842cb099bccf9b0ca495b5238e9225e400358 on danliris:dev.


Add syntax highlighting for assembly

For which architecture? There is no one assembly language.

Sure, but there are common patterns:

; is a comment
The first word without a : is an instruction, otherwise it's a label
Numbers can be highlighted
And maybe non-first-word-not-numbers can be highlighted a different color

That's probably good enough to look better than plain text.

Assembly is already supported in v0.5, so maybe this can be closed? @reknih


Decorate association undefined method `decorate' for nil

class PostDecorator <  Draper::Decorator
  decorates_association :author
end

class AuthorDecorator <  Draper::Decorator
end

If the post author is nil, I see this exception. undefined method decorate' for nil:NilClass`.  It appears that draper trying to decorate the nil author object?
Is this a bug or is this the intended behavior?  I can avoid this by not using decorates_association in any places where I may not have an associated object.  Or is there an easy fix that I am missing?
Thanks!
P.S. If this is a bug, I'd be happy to look into implementing a fix.

Woops, I just realized this is a different bug in my code


Flexible Height Explanation

Hi, I want to help with some tips that help me when I started work with CSS!

I update my master! Thanks!


Save if a task is finished or not

When a task is checked off as done, the state of being "checked" should be saved.

Complete and merged!


Supressed Uncaught TypeError: listener is not a function

I fixed an error with new code.
The internal handleChange seems to try to execute listeners that doesn't exist. I dont know if it has something to do with my refactor.
But i added a simple check to see if the listener exists, and now the component works as expected.

when does this happen?

I tried out my app in the chrome emulator for different devices. Whenever i change device (resolution), it threw the error. And the props didn't update.
I use this hoc in fairly complex layouts, where nested elements are wrapped in this, so i don't know if rerendering the parent element (and thus rerendering the connected element) trigger this.
Adding more complex test cases might also be a good idea..

the update is pretty much unusable in my app, so i would appreciate you merging in this fix...

fixed it in an own commit. thanks though!

super.. thanks.. :)


Add mention_format method

A while back, Lita added the ability to call mention_format on adapters, to better handle referencing a user on a service.  Here's a PR to add the same to this adapter.

Thanks!


Xprof flavoured match-spec funs

Extend query to allow special match-spec fun definitions. This will
allow both selectively measuring duration of function calls that match
complicated filters and capturing only part of the arguments.
WIP: right now the GUI has not been updated so initiating a function
monitoring is only supported from command line like:
xporf_tracer:monitor("ets:lookup([data, _]) -> true.").

Coverage increased (+2.0%) to 60.182% when pulling 578700bd4ca1cd257c581149971dbca0f383f060 on gomoripeti:fun2ms into feb5d82099c5fb509e2e04546846ba6faaacde95 on mniec:master.

This is great. Thanks a lot Peter!


Add fix_sq_headers.py option to control whether to update metamist

One more small update to this script: make updating metamist optional. In the current use case, it turns out that we may or may not need to do that at all — processing outside of production-pipelines / metamist will just run against the reheadered files by specifying their GCS paths.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 78.50%. Comparing base (c9fdf1f) to head (2da2219).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #895   +/-   ##
=======================================
  Coverage   78.50%   78.50%
=======================================
  Files          10       10
  Lines        1791     1791
=======================================
  Hits         1406     1406
  Misses        385      385

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Perf tool

Add the perf tool to the main repo under separate branch.
Add documentation explaining how to use the tool.

Overview:
Perf tool is a powerful diagnostic tool that allows you to follow Speedb execution flow in a very high detail. The tool itself is built into the code on a different branch name ‘PERF’.
Running the library compiled from the “PERF '' branch will produce a raw output, that later on can be processed by the supplied scripts ( tools/perftracing_scripts ).
One usage of the tool can be exploring the execution flow with a chrome tracing tool. (chrome://tracing )

Currently we have other tools that are being used.