Add Computational Geometry

https://github.com/atkirtland/awesome-computational-geometry
Computational geometry is a topic in computer science that focuses on solving problems in geometry. Applications of computational geometry include computer-aided design, robotics, GIS systems, and computer vision. There is no existing list for computational geometry, but it is a large enough topic in computer science to warrant a place in Awesome. I hope that it encourages other contributors to write lists for other similar topics.
By submitting this pull request I confirm I've read and complied with the below requirements 🖖
Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.
Requirements for your pull request

Don't waste my time. Do a good job, adhere to all the guidelines, and be responsive.
You have to review at least 2 other open pull requests.
Try to prioritize unreviewed PRs, but you can also add more comments to reviewed PRs. Go through the below list when reviewing. This requirement is meant to help make the Awesome project self-sustaining. Comment here which PRs you reviewed. You're expected to put a good effort into this and to be thorough. Look at previous PR reviews for inspiration. Just commenting “looks good” or simply marking the pull request as approved does not count! You have to actually point out mistakes or improvement suggestions.

I reviewed #2274 and #2270.

You have read and understood the instructions for creating a list.
This pull request has a title in the format Add Name of List.

✅ Add Swift
✅ Add Software Architecture
❌ Update readme.md
❌ Add Awesome Swift
❌ Add swift
❌ add Swift
❌ Adding Swift
❌ Added Swift

Your entry here should include a short description about the project/theme of the list. It should not describe the list itself. The first character should be uppercase and the description should end in a dot. It should be an objective description and not a tagline or marketing blurb.

✅ - [iOS](…) - Mobile operating system for Apple phones and tablets.
✅ - [Framer](…) - Prototyping interactive UI designs.
❌ - [iOS](…) - Resources and tools for iOS development.
❌ - [Framer](…)
❌ - [Framer](…) - prototyping interactive UI designs

Your entry should be added at the bottom of the appropriate category.
The title of your entry should be title-cased and the URL to your list should end in #readme.

Example: - [Software Architecture](https://github.com/simskij/awesome-software-architecture#readme) - The discipline of designing and building software.

The suggested Awesome list complies with the below requirements.

Requirements for your Awesome list

Has been around for at least 30 days.That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
Don't open a Draft / WIP pull request while you work on the guidelines. A pull request should be 100% ready and should adhere to all the guidelines when you open it. Instead use #2242 for incubation visibility.
Run awesome-lint on your list and fix the reported issues. If there are false-positives or things that cannot/shouldn't be fixed, please report it.
The default branch should be named main, not master.
Includes a succinct description of the project/theme at the top of the readme. (Example)

✅ Mobile operating system for Apple phones and tablets.
✅ Prototyping interactive UI designs.
❌ Resources and tools for iOS development.
❌ Awesome Framer packages and tools.

It's the result of hard work and the best I could possibly produce.
If you have not put in considerable effort into your list, your pull request will be immediately closed.
The repo name of your list should be in lowercase slug format: awesome-name-of-list.

✅ awesome-swift
✅ awesome-web-typography
❌ awesome-Swift
❌ AwesomeWebTypography

The heading title of your list should be in title case format: # Awesome Name of List.

✅ # Awesome Swift
✅ # Awesome Web Typography
❌ # awesome-swift
❌ # AwesomeSwift

Non-generated Markdown file in a GitHub repo.
The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
Not a duplicate. Please search for existing submissions.
Only has awesome items. Awesome lists are curations of the best, not everything.
Does not contain items that are unmaintained, has archived repo, deprecated, or missing docs. If you really need to include such items, they should be in a separate Markdown file.
Includes a project logo/illustration whenever possible.

Either centered, fullwidth, or placed at the top-right of the readme. (Example)
The image should link to the project website or any relevant website.
The image should be high-DPI. Set it to maximum half the width of the original image.

Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
Includes the Awesome badge.

Should be placed on the right side of the readme heading.

Can be placed centered if the list has a centered graphics header.

Should link back to this list.

Has a Table of Contents section.

Should be named Contents, not Table of Contents.
Should be the first section in the list.
Should only have one level of nested lists, preferably none.
Must not feature Contributing or Footnotes sections.

Has an appropriate license.

We strongly recommend the CC0 license, but any Creative Commons license will work.

Tip: You can quickly add it to your repo by going to this URL: https://github.com/<user>/<repo>/community/license/new?branch=main&template=cc0-1.0 (replace <user> and <repo> accordingly).

A code license like MIT, BSD, Apache, GPL, etc, is not acceptable. Neither are WTFPL and Unlicense.
Place a file named license or LICENSE in the repo root with the license text.
Do not add the license name, text, or a Licence section to the readme. GitHub already shows the license name and link to the full text at the top of the repo.
To verify that you've read all the guidelines, please comment on your pull request with just the word unicorn.

Has contribution guidelines.

The file should be named contributing.md. Casing is up to you.
It can optionally be linked from the readme in a dedicated section titled Contributing, positioned at the top or bottom of the main content.
The section should not appear in the Table of Contents.

All non-important but necessary content (like extra copyright notices, hyperlinks to sources, pointers to expansive content, etc) should be grouped in a Footnotes section at the bottom of the readme. The section should not be present in the Table of Contents.
Has consistent formatting and proper spelling/grammar.

The link and description are separated by a dash. Example: - [AVA](…) - JavaScript test runner.
The description starts with an uppercase character and ends with a period.
Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

Doesn't use hard-wrapping.
Doesn't include a Travis badge.You can still use Travis for list linting, but the badge has no value in the readme.
Doesn't include an Inspired by awesome-foo or Inspired by the Awesome project kinda link at the top of the readme. The Awesome badge is enough.

Go to the top and read it again.

unicorn

[ ] Dude I want to join your clan

This looks like a great list. CG is not my field, but I wonder if a comprehensive list of most used CG algorithms could make this list even better? Would it make sense to add something like that?

@villesundell Thanks for the comments. I fixed your two suggestions. @kgolubic Thanks for your suggestions as well. The CGAL library page offers this to some extent, and I added an extra sentence mentioning that to its description. I also added a GeeksforGeeks link that has implementations of many common algorithms organized by common use cases.

Includes a succinct description of the project/theme at the top of the readme. (Example)

@sindresorhus Thank you for the comment. I expanded the succinct description.

Tweet: https://twitter.com/awesome__re/status/1594060492771069952


Configure format from file

PR checklist

[x] Addresses an existing issue: #2227 (partially)
[x] New feature, bugfix, or enhancement

[x] Includes tests

[x] Documentation update

Overview of change:
Makes it possible to configure the lint formatter from the config file.

Thanks @giladgray! :)
Note: Keeping the diff clean was very difficult because pretty-quick would affect the entire (not properly formatted) file. I had to go back and recommit things with --no-verify. I recommend batch running prettier on the codebase to keep future diffs clean.

yo thanks for minimizing the diff! yeah it's a bummer and makes for some real messy PRs. we chose not to run it on the entire codebase because it would invalidate all of the open PRs. once we get to a more stable state it should be reasonable to run across the board.

What's the procedure for getting this merged?

@johnwiseheart @giladgray any action items on me to get this merged?

Would it be possible to cut a new release? When is the next planned release @johnwiseheart @giladgray?

@nomcopter I cannot get this to work. I have the following in tslint.json:
{
	"linterOptions": {
		"format": "stylish"
	}
}

And it doesn't change the formatter. I also don't see any test here for using a built-in formatter, only custom one.


Got error with terraform init for aws-examples/blog-post/aws

When I try to run terraform init, I got an error as follows.
Error: Unsupported Terraform Core version

  on .terraform/modules/iam_assumable_role_admin/modules/iam-assumable-role-with-oidc/versions.tf line 2, in terraform:
   2:   required_version = "~> 0.12.6"

Module module.iam_assumable_role_admin (from
terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc) does not
support Terraform version 0.14.8. To proceed, either choose another supported
Terraform version or update this version constraint. Version constraints are
normally set for good reason, so updating the constraint may lead to other
errors or unexpected behavior.

terraform --version
Terraform v0.14.8
I was trying to work around this error but different errors follow.
Any suggestions and which the version of terraform is good for this example? Thanks.

The workaround is here https://github.com/terraform-aws-modules/terraform-aws-eks/issues/1121

Terraform v0.12.29

module "eks" {
version = "~> 13.0.0"
......
}

@salvis2  I continue trying to figure out the issues with all the versions from different components for aws-examples/blog-post/aws.
Actually I found that if we don't specify any version requirements and it works fine.
Not sure if you want outsider to create PR for that?

Remove versions.
fix helm deprecation in the current code.

With that, I can run terraform init and terraform plan without problems.
Please give me permission to create PR and let the team to review if it's okay with the team.
terraform version
Terraform v0.14.9
+ provider registry.terraform.io/hashicorp/aws v3.35.0
+ provider registry.terraform.io/hashicorp/helm v2.1.0
+ provider registry.terraform.io/hashicorp/kubernetes v2.0.3
+ provider registry.terraform.io/hashicorp/local v2.1.0
+ provider registry.terraform.io/hashicorp/null v3.1.0
+ provider registry.terraform.io/hashicorp/random v3.1.0
+ provider registry.terraform.io/hashicorp/template v2.2.0

Hey @cf250024 , thanks for raising this issue. It seems like installing Terraform v0.12.6 would be the first thing to try, since the first error message complains about Terraform v0.14.8. I don't want change the blog-post example, since that is attached to a blog post. It should stay in the versions that it started in. If you can find some versions of the modules that cooperate with Terraform v0.12.6, that would be better.

@salvis2 Thanks for your reply. I agree that you plan to keep Terraform version to v0.12.6 to match blog-post as long as other providers using particular versions.
Here are a few points I am trying to figure out and appreciate if you can help me out.

I guess helm URL has to be updated to the new one as "https://charts.helm.sh/stable" since the old one is not working anymore.
Not sure why there are no nodes in the node_groups_defaults and all the pods are pending without node to schedule on at the beginning. When does the autoscaler kicked in?
I tried and noticed there are 2  storage classes (gp2 as the default and efs). Not sure what the considerations are when using efs-provisoner. Also seems efs-provisoiner chart and image are deprecated and no more support. Any plans on this?

My guess is your team has already put these in production which is very impressive. Definitely I'll learn from your experience.


ci: add an option to run with experimental features

stops disabling ProcessPerSiteUpToMainFrameThreshold
stops disabling field testing config

I would need to duplicate every test suite with configuration


[Feature Request] Voice Options

Hello! I was wondering if it'd be possible to add options for voices under "Character Customization"? I see most other options for configurations and would greatly appreciate being able to do it from within Glamourer instead of Anamnesis manually each time.
Thank you so much for your consideration!

No, voices are not part of the customize array used to manipulate things. After the rework, Glamourer will not manipulate your game object anymore, as that is unsafe, and only touch the draw object, which has no concept of a voice.


Is there a way to obtain the index of the image that is being shown in the carousel

i'm using a stack that contains carousel and a play button on top of it in a movie trailer app and i want to redirect the user to the trailer when he clicks the play button on the carousel,so i need to get the index of the current image that is being shown,how do i go about this?

Same problem. There are some options to get current index?

I would also like to know this

You can use the callback onImageChange and store the last index. You create an int in your widget state that will always be updated when the callback is called

@felpsio I am struggling to get this working are you able to provide a working example please

‘’’
return Carousel(
autoplay: false,
images: images
dotColor: Colors.black,
dotIncreasedColor: Colors.black,
dotBgColor: Color(0x000000),
dotSize: isPortrait ? 8 : 4,
onImageChange: (prev, next) {
_selectedIndex = next;
},
initialIndex: selectedItem
);
‘’’

@felpsio thank you


Chore: Updates dependencies for 6.4

With this pull request, the Storybook dependencies are updated for Storybook 6.4

Self merging this


Fix an issue with webpack 4

Fixes the issue in #137. Note: I did not fully test everything with webpack 4 so I would not say it's "supported" but with this patch it will work

Coverage decreased (-2.5%) to 96.25% when pulling 0f558d37e0f4774ead4cea9f01e24694c2390944 on waterfoul:master into 04e0f69a7ce2faac68b4e6b374258531700aa998 on JaKXz:master.

Coverage decreased (-2.5%) to 96.25% when pulling 0f558d37e0f4774ead4cea9f01e24694c2390944 on waterfoul:master into 04e0f69a7ce2faac68b4e6b374258531700aa998 on JaKXz:master.

CI failed due to webpack 4 dropping support for node 4 (which is EOL in 2 months). Does this project still need to support node 4?

this doesn't use the new webpack tappable api, but I suggest to still merge it so we can unblock webpack v4 update.


Missing cfi_ignorelist.txt in tuxmake images

Recently, android-4.14 builds started failing:
https://storage.tuxsuite.com/public/clangbuiltlinux/continuous-integration2/builds/2KX6JvVGPbBd8xESslbZtC6WsUT/
Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler

This is a failed cc-option call with a clearly supported flag, which means that the compiler is erroring before this point. Dumping try-run calls to a log file reveals the following error:
clang: error: missing sanitizer ignorelist: '/usr/lib/llvm-15/lib/clang/15.0.7/share/cfi_ignorelist.txt'

This file was recently moved to the libclang-rt-dev package on Debian, which tuxmake does not explicitly install (since it is new) nor is libclang-rt-dev listed as an explicit dependency of the clang package (it is a "recommended" addition), hence the error.
https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/-/commit/d24f4d88f13021fca6afe9ce9d087c71362af2c
I have prepared a fix for this on the tuxmake side by installing that package for the relevant versions:
https://gitlab.com/nathanchance/tuxmake/-/commit/8250e09a386c164fc8fbb19133d68250e86ed081
Unfortunately, the clang-14 packages are currently broken so I cannot ask for it to be merged until that issue is cleared up.
The following packages have unmet dependencies:
 libclang-rt-14-dev : Breaks: libclang-common-14-dev (< 1:14.0.6-10~exp4) but 1:14.0.6~++20230111083544+f28c006a5895-1~exp1~20230111083615.217 is to be installed
E: Unable to correct problems, you have held broken packages.

https://github.com/llvm/llvm-project/issues/59903

cc @sylvestre, should have done that initially :)

https://gitlab.com/Linaro/tuxmake/-/merge_requests/290

This is now fixed, android-4.14 builds are currently passing.


Feature Request: right to left support for TextInput

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

we need this to be resolved


Templating for non standard fields in custom notification emails

Any documentation or guidance on the following at all?
Checkboxes, but I think this would be helpful for selects, radios etc.
Example form:
**
<input type="checkbox" class="styled-checkbox" name="message[Type of Payment][]" id="New" value="New">New

<input type="checkbox" class="styled-checkbox" name="message[Type of Payment][]" id="Used" value="Used">Used
**

Example email template (not working):
`{% if submission.message['New'] %}

Type of Payment: {{ submission.message['New'] }}

{% endif %}
{% if submission.message['Used'] %}

Type of Payment: {{ submission.message['Used'] }}

{% endif %}`

Any guidance would be gratefully received.

Based on the above it would be something like this
{% for value in submission.message['Type of Payment'] %}
    {% if value == "New" %}

Type of Payment: {{ value }}

    {% endif %}
    {% if value == "Used" %}

Type of Payment: {{ value }}

    {% endif %}
{% endfor %}

I am going to expand on the readme to help with questions like this. Really it should be able to do everything that is in the Craft Contact Form readme. This is just needed to loop through the array on output during the email though.


Can't get IActivatedEventArgs on running app

I want to handle app protocol-activation even in running app.
But i can't because off this code in InternalActivatedAsync
            if (!_HasOnStartAsync)
            {
                _HasOnStartAsync = true;
                await OnStartAsync(StartKind.Activate, e);
            }

Is there a way to get the activation  parameters in the running application?

you have identified an error that has already been resolved in the source and will be pushed to Nuget sometime this week. Thanks for your submission.

I'm sorry. But can you show me the commit what fixes this behavior?


Parked crate name?

Hi! I was about to use the name "soba" on crates.io and I discovered that you have reserved it here with an empty project. I'm hoping you'd consider handing it over to me, assuming you're not actually doing anything with it?
Thanks!

I responded to your direct email. Did you get that response?

I have now :-)


Use the Backstage Link component in the Button

I saw this bug because the docs link in the "Owned Documents" page was broken:

Turned out the Button used the original Link component from react-router-dom that didn't support absolute URLs. I switched to use Backstage's Link component instead and fixed the usage on the TechDocs page. I hope this change doesn't break any other link but I didn't find any

:heavy_check_mark: Checklist

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

Hmm. The Storybook uses the original Button from Material UI when linking to external pages. Is this a better solution here? I.e. just replacing the used Button in the DocsTable.


can work with dyups?

https://github.com/yzprofile/ngx_http_dyups_module

If DNS SRV record support can be added https://github.com/GUI/nginx-upstream-dynamic-servers/issues/3 , we may not need the dyups. When a new upstream server is added/removed, a request can be sent to update the DNS server (e.g.: Consul https://www.consul.io/ ) with DNS SRV record for IP, port, weight, etc. DNS server can even do health checks against the upstream (https://www.consul.io/docs/agent/dns.html ) so nginx will only get the "good" upstream servers.

@millken for now the module only check DNS changes of servers configured on conf file at startup time, there is no integration with modules like dyups.
I think that can be done in the future.
@gfrankliu I don't know much about DNS SRV record, neither about nginx DNS queries internals, but I'm pretty sure that nginx does not support it, and since we use the core functions to discover the IPs, the module does not have support either.
Do you know a client code that support it? I can take a look and see how complex is to implement the support.

In nginx src/core/ngx_resolver.h, I see
#define NGX_RESOLVE_A         1
#define NGX_RESOLVE_CNAME     5
#define NGX_RESOLVE_PTR       12
#define NGX_RESOLVE_MX        15
#define NGX_RESOLVE_TXT       16
#if (NGX_HAVE_INET6)
#define NGX_RESOLVE_AAAA      28
#endif
#define NGX_RESOLVE_DNAME     39

I assume we can patch and add NGX_RESOLVE_SRV ?
Once we get the IP, port, weight information from the DNS resolver, we can store them for nginx to use, for upstream connection?

Here's one example, though using lua:
https://github.com/vlipco/srv-router

Looks like nginx itself now supports SRV using "service" along with "resolve"  in upstream server config:
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#service
Here is the new nginx-1.9.13/src/core/ngx_resolver.h
#define NGX_RESOLVE_A         1
#define NGX_RESOLVE_CNAME     5
#define NGX_RESOLVE_PTR       12
#define NGX_RESOLVE_MX        15
#define NGX_RESOLVE_TXT       16
#if (NGX_HAVE_INET6)
#define NGX_RESOLVE_AAAA      28
#endif
#define NGX_RESOLVE_SRV       33
#define NGX_RESOLVE_DNAME     39

I can see #define NGX_RESOLVE_SRV       33 is added.


Issue-Replace js-sha3 with noble-hashes

Automated Review Comments
Issues in index.js:

(4, 'Line exceeds 80 characters')
(10, 'Line exceeds 80 characters')
(16, 'Line exceeds 80 characters')
(44, 'Hardcoded string found')
(45, 'Line exceeds 80 characters')
Issues in index.ts:
(14, 'Line exceeds 80 characters')
(15, 'Line exceeds 80 characters')
(24, 'Line exceeds 80 characters')
(32, 'Line exceeds 80 characters')
(33, 'Line exceeds 80 characters')
(41, 'Hardcoded string found')
(42, 'Line exceeds 80 characters')
Issues in package.json:
(2, 'Hardcoded string found')
(4, 'Hardcoded string found')
(10, 'Hardcoded string found')

I got it.


Implement filter_mode for both select and multiselect prompts

List renders through the self.filter always.
Rc<RefCell> is to handle a subset of filtered mutable references to the items from the
same structure.

Will give it a try tomorrow! 😄

Good job @fadeevab  💪 I will test it tomorrow as well 😄

@fadeevab Hey, I tested the new feature, it works fine 👍
The only thing that I would say feels a bit weird when using the filter on the multiselect is that the selected items wont be sent if the filter does not match them.
https://github.com/fadeevab/cliclack/assets/113629846/1236bd3c-fad1-4a75-b1b7-5bbf96a8acc1
For example here, Prettier wont be in the result even if he's selected.

@fadeevab Hey, I tested the new feature, it works fine 👍 The only thing that I would say feels a bit weird when using the filter on the multiselect is that the selected items wont be sent if the filter does not match them.

Interesting, I haven't thought about it... I think a similar problem is in the select: it doesn't allow to select something invisible, and also it doesn't preserve the cursor once the filter was cleared.

@antoinePutmans Okay, I did this: it holds the item selection for multi-select list even when they are filtered out

and after Enter it rendered the items that were actually selected:

Superseded by PR #52


Rnaseq module version

This is a draft pull request only for the sake to experiment how improve nf-core pipelines via NF modules.
WORK IN PROGRESS, but IMO this represents a huge step forward.

This is brilliant 😀 Much simpler, and will be even better when we get around to refactoring all of that boilerplate code..
A couple of minor thoughts:

I don't really like the .first .second thing very much. Could output just be an array instead? eg: trim_galore.output[0].set { trimmed_reads }
 trim_galore.output[1].set { trimgalore_results }
 trim_galore.output[2].set { trimgalore_fastqc_reports }

This feels more natural to me and would presumably scale better

Could there also be a second syntax set channels in one line? Most of the time we're setting one output to one channel. eg. something like: trim_galore.output.setAll { trimmed_reads, trimgalore_results, trimgalore_fastqc_reports }

Could still have some kind of syntax to set one output in to multiple channels? eg:

 trim_galore.output.setAll { ch1, [ch2, ch3], ch4 }

With this, can we chain the .output on to the process call? eg: markDuplicates( ch_bam ).output.setAll { bam_md, picard_results }

This is of call all just syntactic sugar.. The core functionality that you've introduced here is great! Especially once we get rid of the cruft this will make the pipelines super simple. And it will be nice to split the processes in to multiple files for clarity too (eg: common.nf, star.nf, hisat.nf in this example).
Nice work!

I don't really like the .first .second thing very much. Could output just be an array instead? eg: trim_galore.output[0].set { trimmed_reads }
 trim_galore.output[1].set { trimgalore_results }
 trim_galore.output[2].set { trimgalore_fastqc_reports }

Would a map be better for this? Maybe something like?
trim_galore.output['fastq'].set { trimmed_reads }
trim_galore.output['results'].set { trimgalore_results }
trim_galore.output['reports'].set { trimgalore_fastqc_reports }

Easier to read if its at all possible?

Oops .. I was missing this.

I don't really like the .first .second thing very much. Could output just be an array instead?

You can already, the output object is a list.

Could there also be a second syntax set channels in one line?

That's something I was thinking as well, tho I would prefer not to add to many magic syntax extension. Currently it's also possible to assign an output list using the equals operator, e.g.
(trimmed_reads, trimgalore_results, trimgalore_fastqc_reports) = trim_galore.output

With this, can we chain the .output on to the process call?

Yes.

Would a map be better for this? Maybe something like?

That's an interesting point. Actually I'm starting  think to some format of input/output data model definition i.e. the ability to define a custom data structure to be used in place of unnamed tuples. At that point it would be possible.
However I would close this first version using the current approach tuple based.
Also it would be nice to investigate how to remove all that ifs in the nf-core pipelines, that makes very difficult to follow the pipeline logic. In the last commit it's shown how to wrap the conditional channel creation into a custom function. That should be possible also for condition pipeline chunks.
ps. put my github handle in your reply otherwise the mail get buried in the nf-core notifications.

I agree that removing all of the ifs in pipeline logic would be nice - I tried using when if possible and mix but having to define channels beforehand was the problem until now (?). I think once we can use the same channel for multiple downstream processes, it gets easier to do that 👍

Would a map be better for this? Maybe something like?

That's an interesting point. Actually I'm starting think to some format of input/output data model definition i.e. the ability to define a custom data structure to be used in place of unnamed tuples. At that point it would be possible.

@pditommaso Sounds good. Ive also been thinking it would be good to include the version command within the module file e.g. for fastqc we could have an additional command:
fastqc --version > v_fastqc.txt
This can then be passed into an channel to be used later in the pipeline for documentation purposes.
At present we use regexes to strip the output of the command to just contain the actual version:
https://github.com/nf-core/chipseq/blob/5f67d82e330c33eb2186c3210043ddbb17d8b5f2/bin/scrape_software_versions.py#L6-L19
Maybe we can implement the regex parsing here too? It just means all of the modules are shipped with version tracking by default, and it only has to be done once!

@drpatelh - see an issue along a similar lines that @pditommaso and I discussed a little while back: https://github.com/nextflow-io/nextflow/issues/879

This is really outdated now compared to the latest stable DSL2 release so will close. Thanks all!


unicode-range in @font-face mixin

i am missing the possibility to add the unicode-range descriptor in the @font-face mixin. are there plans to add this feature by any chance?

I haven't heard of any plans for it yet, but that may be because it's not widely supported. It would be a good optional parameter. Would you want to submit a PR?

You are right, unicode-range is only supported partially by most of the browsers. But once Firefox and Opera Mini jump on the train it may become quite handy. Please have a look at the PR #808 – Travis CI seems to have got stuck somehow.

I think simply adding @content in the mixin would allow authors to pass in any extra thing they want, including unicode-range. :)

I like the idea of passing a block for optional parameters!

As of 235671948ef3a9c343c4391d250082a0373c8d83, you can now pass @content into the font-face mixin; which perfectly solves this issue:
@include font-face(
    "calibre",
    "fonts/calibre"
  ) {
  unicode-range: U+26;
}

Yeah, thanks!


User defined controlPlaneTolerations missing on calico-node pods

I've trying to use controlPlaneTolerations as defined in the reference here to control tolerations which get applied to the resources created by the operator.
Expected Behavior
I expect when I set controlPlaneTolerations in the InstallationSpec,
e.g.
spec:
  controlPlaneTolerations:
  - effect: NoExecute
     key: test
     operator: Equal
     value: value

to see this toleration appear on the calico-node pods in the same way it does for the Typha pods.  I'm presuming this is the expected behaviour because the description is
ControlPlaneTolerations specify tolerations which are then globally applied to all resources created by the operator.
Current Behavior
After adding the controlPlaneTolerations in an Installation, the calico-node pods maintain the same broad existing default tolerations:
  {
    "effect": "NoSchedule",
    "operator": "Exists"
  },
  {
    "effect": "NoExecute",
    "operator": "Exists"
  },

Your Environment
EKS Node, Amazon Linux 2

xref: https://github.com/projectcalico/calico/issues/6136

I don't think Calico #6136 is applicable here. Because I think the request here is that controlPlaneTolerations should apply to calico-node. We don't consider calico-node to be part of the "control plane". So I think we could update the comment on controlPlaneTolerations to clarify that it does not apply to calico-node but we wouldn't make it apply to calico-node.
#1990 does apply though and I think would address being able to set configurations on the calico-node daemonset.
I am curious what your use case is for needing to be able to set tolerations on the calico-node daemonset. Would you please share your use case where you need to change the tolerations on calico-node? Thank you.

Hi @tmjd, thanks for the reply, yes you are right, the original issue was about the mechanism for adding custom tolerations to calico-node.   I misunderstood / accidentally ignored the intended meaning of "control plane" in controlPlaneTolerations  and focused on the description of the parameter in the docs as applying to all resources.   #1990 looks like what I am looking for


Report not flagging CVE-2021-23413 and CVE-2022-48285 for JSzip

I am using JSzip v3.2.1 but CVE-2021-23413 and CVE-2022-48285 does not appear in the report. However it should as seen in jsrepository.json:

What does your report state on JSzip?

The report does not show JSzip at all:

The CVE is shown in the report:

only after the version is added to the JSzip filename like "jszip-3.2.1.min.js" or jsrepository.json is amended to add the highlighted line:

FYI, this is our jszip.min.js:

The report does not show JSzip:

The CVE is shown in the report only after the version is added to the JSzip filename like "jszip-3.2.1.min.js" or jsrepository.json is amended to add the highlighted line:

This is the jszip.min.js:

Similar issue here. Identifies:
<EMAIL_ADDRESS> (Confidence:Highest)
No CVEs flagged, yet
grep -A 30 -n jquery-validation $DEPENDENCY_CHECK_HOME/data/jsrepository.json
identifies:

285:  "jquery-validation": {
286:    "bowername": ["jquery-validation"],
287-    "vulnerabilities": [
288-      {
289-        "below": "1.19.5",
290-        "severity": "high",
291-        "cwe": ["CWE-1333"],
292-        "identifiers": {
293-          "CVE": ["CVE-2022-31147"],
294-          "summary": "ReDoS vulnerability in url and URL2 validation",
295-          "githubID": "GHSA-ffmh-x56j-9rc3"
296-        },

@funktionalsystems Yours is quite different I'd say.
Original report is for a library not properly detected to be a vulnerable JSZip version.
Yours is properly detected as libman/jquery-validate 1.19.2 but ODC does not realize that libman/jquery-validate is jquery-validation

Ah, I had thought the general issue was similar to @peizhenp 's - a JS library was correctly identified, but incorrectly failed to link to a known CVE.
But in my case, the issue was due to the "validate"-versus-"validation" name confusion.
Switching from
{
  "library"<EMAIL_ADDRESS>  "provider": "cdnjs"
}

to
{
      "library"<EMAIL_ADDRESS>      "provider": "jsdelivr"
}

got a hit.
I think CDNJS is the only one that names it this way, but it doesn't help that even the authors confuse things by having "validate" as the filename<EMAIL_ADDRESS>

@peizhenp  are you sure you are correctly using --scan args to point to your files, and are they actually downloaded/restored before the scan?
I did this test and it correctly hit on both the jszip.js and the jszip.min.js I had downloaded there:  dependency-check.sh -s ./wwwroot/jszip-deleteme

This is the command used and jszip.min.js exists in the  scanned:
dependency-check.bat --project  --retireJsUrl https://raw.githubusercontent.com/Retirejs/retire.js/master/repository/jsrepository.json  --scan


[WIP] viewer.show() refactor

Description
trying to implement the viewer.show() pattern discussed at the end of #2225.  still WIP, but the current goal is to be able to do the following:
import napari
v = napari.Viewer()
v.show()

# then close the viewer ...
# code more if you want
v.show()  # show it again.

This is perhaps a lofty goal.  But I think if we can do this successfully, it will indicate that we can completely clean up the GUI "view" of our ViewerModel, and recreate on demand.
currently, this gives an error RuntimeError: wrapped C/C++ object of type CanvasBackendDesktop has been deleted

ERROR:root:Unhandled exception:
Traceback (most recent call last):
  File "/Users/talley/miniconda3/envs/napdev/lib/python3.8/site-packages/vispy/app/backends/_qt.py", line 825, in paintGL
    self._vispy_canvas.events.draw(region=None)
  File "/Users/talley/miniconda3/envs/napdev/lib/python3.8/site-packages/vispy/util/event.py", line 455, in __call__
    self._invoke_callback(cb, event)
  File "/Users/talley/miniconda3/envs/napdev/lib/python3.8/site-packages/vispy/util/event.py", line 473, in _invoke_callback
    _handle_exception(self.ignore_callback_errors,
  File "/Users/talley/miniconda3/envs/napdev/lib/python3.8/site-packages/vispy/util/event.py", line 471, in _invoke_callback
    cb(event)
  File "/Users/talley/Dropbox (HMS)/Python/forks/napari/napari/_vispy/vispy_camera.py", line 148, in on_draw
    self._camera.zoom = self.zoom
  File "/Users/talley/Dropbox (HMS)/Python/forks/napari/napari/utils/events/evented_model.py", line 89, in __setattr__
    getattr(self.events, name)(value=after)  # emit event
  File "/Users/talley/Dropbox (HMS)/Python/forks/napari/napari/utils/events/event.py", line 513, in __call__
    self._invoke_callback(cb, event)
  File "/Users/talley/Dropbox (HMS)/Python/forks/napari/napari/utils/events/event.py", line 530, in _invoke_callback
    _handle_exception(
  File "/Users/talley/Dropbox (HMS)/Python/forks/napari/napari/utils/events/event.py", line 528, in _invoke_callback
    cb(event)
  File "/Users/talley/Dropbox (HMS)/Python/forks/napari/napari/_vispy/vispy_camera.py", line 133, in _on_zoom_change
    self.zoom = self._camera.zoom
  File "/Users/talley/Dropbox (HMS)/Python/forks/napari/napari/_vispy/vispy_camera.py", line 110, in zoom
    if self.zoom == zoom:
  File "/Users/talley/Dropbox (HMS)/Python/forks/napari/napari/_vispy/vispy_camera.py", line 94, in zoom
    canvas_size = np.min(self._view.canvas.size)
  File "/Users/talley/miniconda3/envs/napdev/lib/python3.8/site-packages/vispy/app/canvas.py", line 336, in size
    size = self._backend._vispy_get_size()
  File "/Users/talley/miniconda3/envs/napdev/lib/python3.8/site-packages/vispy/app/backends/_qt.py", line 434, in _vispy_get_size
    g = self.geometry()
RuntimeError: wrapped C/C++ object of type CanvasBackendDesktop has been deleted

however... if I comment out just this line where the canvas draw event is connect to the VispyCamera.on_draw method... then it works (meaning I'm able to create a viewer, close it, and then create a new one).
https://github.com/napari/napari/blob/a91ba740d767feab9f6f3135bcb34489901ebaa5/napari/_qt/qt_viewer.py#L208
that only gets me so far though: if I add any layers to the viewer before closing, it will also crash the next time I try to show it with RuntimeError: wrapped C/C++ object of type ModifiedScrollBar has been deleted

----> 1 v.show()

~/Dropbox (HMS)/Python/forks/napari/napari/viewer.py in show(self)
     92             from .window import Window
     93
---> 94             self.window = Window(self, show=True)
     95
     96         self.window.show()

~/Dropbox (HMS)/Python/forks/napari/napari/_qt/qt_main_window.py in __init__(self, viewer, show)
    106         # Connect the Viewer and create the Main Window
    107         self._qt_window = _QtMainWindow()
--> 108         self.qt_viewer = QtViewer(viewer)
    109         self._qt_window.centralWidget().layout().addWidget(self.qt_viewer)
    110         self._qt_window.setWindowTitle(self.qt_viewer.viewer.title)

~/Dropbox (HMS)/Python/forks/napari/napari/_qt/qt_viewer.py in __init__(self, viewer, welcome)
    100
    101         self.viewer = viewer
--> 102         self.dims = QtDims(self.viewer.dims)
    103         self.controls = QtLayerControlsContainer(self.viewer)
    104         self.layers = QtLayerList(self.viewer.layers)

~/Dropbox (HMS)/Python/forks/napari/napari/_qt/widgets/qt_dims.py in __init__(self, dims, parent)
     55
     56         # Update the number of sliders now that the dims have been added
---> 57         self._update_nsliders()
     58         self.dims.events.ndim.connect(self._update_nsliders)
     59         self.dims.events.current_step.connect(self._update_slider)

~/Dropbox (HMS)/Python/forks/napari/napari/_qt/widgets/qt_dims.py in _update_nsliders(self, event)
    155         self._trim_sliders(0)
    156         self._create_sliders(self.dims.ndim)
--> 157         self._update_display()
    158         for i in range(self.dims.ndim):
    159             self._update_range(i)

~/Dropbox (HMS)/Python/forks/napari/napari/_qt/widgets/qt_dims.py in _update_display(self, event)
    131                 # Displayed dimensions correspond to non displayed sliders
    132                 self._displayed_sliders[axis] = False
--> 133                 self.dims.last_used = 0
    134                 widget.hide()
    135             else:

~/Dropbox (HMS)/Python/forks/napari/napari/utils/events/evented_model.py in __setattr__(self, name, value)
     87         are_equal = self.__eq_operators__.get(name, operator.eq)
     88         if not are_equal(after, before):
---> 89             getattr(self.events, name)(value=after)  # emit event
     90
     91     # expose the private EmitterGroup publically

~/Dropbox (HMS)/Python/forks/napari/napari/utils/events/event.py in __call__(self, *args, **kwargs)
    511                     continue
    512
--> 513                 self._invoke_callback(cb, event)
    514                 if event.blocked:
    515                     break

~/Dropbox (HMS)/Python/forks/napari/napari/utils/events/event.py in _invoke_callback(self, cb, event)
    528             cb(event)
    529         except Exception:
--> 530             _handle_exception(
    531                 self.ignore_callback_errors,
    532                 self.print_callback_errors,

~/Dropbox (HMS)/Python/forks/napari/napari/utils/events/event.py in _invoke_callback(self, cb, event)
    526     def _invoke_callback(self, cb, event):
    527         try:
--> 528             cb(event)
    529         except Exception:
    530             _handle_exception(

~/Dropbox (HMS)/Python/forks/napari/napari/_qt/widgets/qt_dims.py in _on_last_used_changed(self, event)
     84         for i, widget in enumerate(self.slider_widgets):
     85             sld = widget.slider
---> 86             sld.setProperty('last_used', i == self.dims.last_used)
     87             sld.style().unpolish(sld)
     88             sld.style().polish(sld)

RuntimeError: wrapped C/C++ object of type ModifiedScrollBar has been deleted

So, this PR may be open for a while, but the goal is to achieve what is shown in the first example.

Hmm I wonder if we'll need some improved version of disconnect_events  where we'll crawl through our objects and disconnect any place where they are connected to something vispy/ qt, or we add close methods to each object like vispy_camera etc.
One other thing i noticed about this PR is that with this change none of our example will show anything as they use the old with gui_qt syntax and no show. I'd say we'd probably want to change them over.
Also right now you'd get the following
/Users/nsofroniew/GitHub/napari/napari/_qt/qt_event_loop.py:277: UserWarning: Refusing to run a QApplication with no topLevelWidgets. To run the app anyway, use `gui_qt(force=True)`
  "Refusing to run a QApplication with no topLevelWidgets. "

we might want to expand that to say something like
To run the app anyway, use `gui_qt(force=True)` or make sure you are showing the viewer with `viewer.show` or switch over to the `napari.run` syntax.

Hmm I wonder if we'll need some improved version of disconnect_events where we'll crawl through our objects and disconnect any place where they are connected to something vispy/ qt, or we add close methods to each object like vispy_camera etc.

I think so too

One other thing i noticed about this PR is that with this change none of our example will show anything as they use the old with gui_qt syntax and no show.

Yeah :/ This just points to the fact that the show=True conundrum isn't solved by this strategy here.  While it's definitely nice to delay the creation of the window, and I think we should aim for that.  I'm not sure I see a way around it being a major API breaking change.
We could try to catch it in napari.run (which is also used by gui_qt) and look for all instantiated viewers and make sure they show... but that should probably just be a deprecation hack.  need to think more about it.

We could try to catch it in napari.run (which is also used by gui_qt) and look for all instantiated viewers and make sure they show... but that should probably just be a deprecation hack. need to think more about it.

Hmm yeah, this could actually be quite nice. But agree we have to do something to deprecate. I don't think this is the sort of thing we could break in one release

see #3184


[animations] OpenContainer should close to the correct closed element

@goderbauer This is a follow-up to https://github.com/flutter/flutter/issues/51397
Steps to Reproduce
I have created a reproducable sample here: https://github.com/kuhnroyal/opencontainer_test
The issue occurs when the closed element moves in the tree and somehow can not be found anymore when closing the open route.
The sample recreates the effect by using OpenContainer from a simple ListView. The opened detail view can be moved to the top of the list. After closing the detail view the issue occurs.
The issue does not occur with the first item in the list because it is already at the top but it would happen if the item was moved to another index in the list.
Expected results:
OpenContainer should close to the correct closed element.
Actual results:
Closing OpenContainer causes errors because the closed element moved in the tree.
The getter 'isInTree' was called on null.
The setter 'placeholderSize=' was called on null.

Logs

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building AnimatedBuilder(animation: AnimationController#ea8d9(◀ 1.000; for _OpenContainerRoute)➩ProxyAnimation, dirty, state: _AnimatedState#55946):
The getter 'isInTree' was called on null.
Receiver: null
Tried calling: isInTree

The relevant error-causing widget was:
  AnimatedBuilder file:///Users/.../animations-1.0.0+5/lib/src/open_container.dart:653:14
When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1      _OpenContainerRoute.buildPage.<anonymous closure> (package:animations/src/open_container.dart:738:63)
#2      AnimatedBuilder.build (package:flutter/src/widgets/transitions.dart:1124:19)
#3      _AnimatedState.build (package:flutter/src/widgets/transitions.dart:177:48)
#4      StatefulElement.build (package:flutter/src/widgets/framework.dart:4619:28)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
════════ Exception caught by animation library ═════════════════════════════════════════════════════
The following NoSuchMethodError was thrown while notifying status listeners for ProxyAnimation:
The setter 'placeholderSize=' was called on null.
Receiver: null
Tried calling: placeholderSize=null

When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1      _OpenContainerRoute.didPush.<anonymous closure> (package:animations/src/open_container.dart:545:15)
#2      AnimationLocalStatusListenersMixin.notifyStatusListeners (package:flutter/src/animation/listener_helpers.dart:198:19)
#3      AnimationLocalStatusListenersMixin.notifyStatusListeners (package:flutter/src/animation/listener_helpers.dart:198:19)
#4      AnimationController._checkStatusChanged (package:flutter/src/animation/animation_controller.dart:777:7)
...
The ProxyAnimation notifying status listeners was: AnimationController#ea8d9(⏮ 0.000; paused; for _OpenContainerRoute)➩ProxyAnimation
════════════════════════════════════════════════════════════════════════════════════════════════════

[✓] Flutter (Channel beta, v1.17.0, on Mac OS X 10.15.4 19E287, locale de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[!] Xcode - develop for iOS and macOS (Xcode 11.4)
    ✗ CocoaPods installed but not working.
        You appear to have CocoaPods installed but it is not working.
        This can happen if the version of Ruby that CocoaPods was installed with is different from the one being used to invoke it.
        This can usually be fixed by re-installing CocoaPods. For more info, see https://github.com/flutter/flutter/issues/14293.
      To re-install CocoaPods, run:
        sudo gem install cocoapods
[!] Android Studio (version 3.6)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] IntelliJ IDEA Ultimate Edition (version 2020.1)
[✓] VS Code (version 1.44.1)
[✓] Connected device (2 available)

! Doctor found issues in 2 categories.

This is going to be fixed by https://github.com/flutter/packages/pull/126.

Nice! Can you comment this in the old issue so people can find it, this probably solves a lot of the problems there.

The linked PR fixes the exception but doesn't produce the expected result. When the order in the source closed changes, the OpenContainer closes to the wrong element.

@kuhnroyal
Could you 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.
Closing this issue as it was about the exception, which is now merged. If you disagree, please write in the comments and I will reopen it.
Thank you


Added waitForTransform to controller.cpp

Solves occasional tf crash in controller (Quaternion malformed) if controller tries to start before nodes publishing poses/goals. Adds waitForTransform so controller will block until transforms are available.

Thank you for your pull request! I can definitely see the issue, however wouldn't it be faster and cleaner to just add one call in the constructor (perhaps with a slightly longer wait time to make sure that it works on slower machines, too)? For example

m_listener.waitForTransform(m_worldFrame, m_frame, ros::Time(0), ros::Duration(10.0));

could be added in https://github.com/whoenig/crazyflie_ros/blob/master/crazyflie_controller/src/controller.cpp#L73.

I agree that would be much better!

Thanks!


Fixed TlsHandshakeType enum label

Fixes #1613
See similar issue and PR in dotnet/runtime:
https://github.com/dotnet/runtime/issues/66781
https://github.com/dotnet/runtime/pull/66786

Unfortunately the typo here is in a public API and fixing it causes a compile time breaking change. We shouldn't merge this fix until 2.0.
The same API in runtime is internal.

We need to hold the PR for post-1.1 (which should happen in ~April).
Let's close it for now, once we are branched off for 1.1, we can reopen and merge it.
Thanks for your fix @ritchiecarroll!

Thanks


no need to use region peers

fix performance issue

/run-integration-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

/release

/run-integration-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

/run-integration-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

em, don't we need this in master, only in release?

no need in master cause master branch is not implemented in that way due to threaded raftstore

/run-integration-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

PTAL @BusyJay

/release

/run-integration-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

LGTM.

/run-all-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

/run-all-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

/run-all-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

/run-integration-ddl-test tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

/run-integration-ddl-test tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

/run-integration-ddl-test tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1


Add bazel build for gRPC Hello World example.

As a follow up for PR https://github.com/census-instrumentation/opencensus-java/pull/1044. This PR depends on https://github.com/census-instrumentation/opencensus-java/pull/1044.
It's nice to have all 3 build systems supported for the gRPC example - however, given the significant amount of new dependencies (and complexity) it introduced to BUILD.bazel file (mostly netty runtime dependencies, which cannot be resolved by the migration-tool), I'm not sure if it's a good idea to support this example with Bazel.

Codecov Report

Merging #1052 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1052   +/-   ##
=========================================
  Coverage     81.84%   81.84%
  Complexity     1139     1139
=========================================
  Files           181      181
  Lines          5322     5322
  Branches        499      499
=========================================
  Hits           4356     4356
  Misses          836      836
  Partials        130      130

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 719dd41...381d543. Read the comment docs.

@HailongWen not that I knew of. All the netty and google cloud dependencies are transitive dependencies and are auto-imported to opencensus_workspace.bzl as native maven jars. Once they are loaded into WORKSPACE, they cannot be defined and need to be used as-is in BUILD.bazel.
Defining a separate gRPC build target is possible, but that won't simplify BUILD a lot, since
opencensus_examples and the gRPC example share many common deps.

One option is to split examples into multiple projects:
examples/helloworld/...
examples/quickstart/...
etc.

Yes, the examples are already split to different packages and build targets. We can also split them into different BUILD files, but that will also introduce a lot of duplication, since all these targets share a lot of common dependencies.

Merging for now. As I can see, the BUILD file for grpc-java example also needs to explicitly depend on a lot of deps: https://github.com/grpc/grpc-java/blob/master/examples/BUILD.bazel#L62. Our example needs even more dependencies because of exporting to Stackdriver (and thus tremendous transitive dependencies on Google Cloud client libraries).
Will update the BUILD file if I found a better way to manage the dependencies.


Pyarrow crashes when service is run before parquet is available

When the service runs at 5am, before Parquet data would be available, the service crashes with
pyarrow.lib.ArrowInvalid: Could not open Parquet input source '<Buffer>': Parquet magic bytes not found in footer. Either the file is corrupted or this is not a parquet file.

We should catch that and exit early when there isn't yet a parquet file for us to process

I think this is solved now https://app.datadoghq.com/apm/error-tracking/issue/813bc390-f586-11ee-9dd9-da7ad0900002?query=env%3Aprod service%3Ambta-performance&refresh_mode=paused&view=spans&from_ts=1713083503507&to_ts=1713173503507&live=false


does not work with pydantic 2.5.2

When blockkit is used with the latest version of pydantic, I get errors like
AttributeError: 'StaticSelect' object has no attribute 'get'

This is caused by model validators not checking if passed argument is actually a dictionary
    @model_validator(mode="before")
    def _validate_values(cls, values: Dict) -> Dict:
        # I added these 2 lines to fix the issue, but I'm not sure if I'm breaking the validation process here
        if not isinstance(values, dict):
            return values
        initial_options = values.get("initial_options")

Faced the same issue with TimePicker and MultiUsersSelect. Forced reinstallation of pydantic 2.3.0 helps.
pip install --force-reinstall -v "pydantic==2.3.0"

Hey, thanks for highlighting the issue. I've fixed the Pydantic compatibility issues in the latest 1.6.2 release. Please go ahead and try it.


Win key in .key-bindings.json

Ho to add Windows/Super/Meta key on external keyboard, to .key-bindings.json?

I tried both Win and Command and LWin and RWin, with windows wireless keyboard, and universal bluetooth keyboard, but it doesn't work.
I found out Android is blocking this key for unknown reason,because browser (on key test website) and vnc viewer are not detecting it either.
Additionally, in Android settings there is "Keyboard Shortcuts" list under physical keyboard, with few shortcuts involving Win key. And it cant be changed. Those system shortcuts are working.
So, this is not Acode's problem, but Android's.


Mass pings be gone

This PR effectively disables the native GitHub codeowners feature and enables the new alternate codeowners mechanism introduced in https://github.com/NixOS/nixpkgs/pull/336261, meaning that:

Targeting the wrong branch won't trigger mass pings anymore, and if the wrong base branch is chosen, a helpful comment is posted telling you how to fix it, so no need to worry about the wrong base branch anymore! (though it might take some time for this to be propagated to non-master branches)
We can now declare users without write access as code owners!

Things done

[x] Made sure that reviews wouldn't be rerequested: https://github.com/NixOS/nixpkgs/pull/347592
[ ] Checked that it would do the right thing when the wrong base branch is used

It's hard to see that because we'd need somebody to wait for ~2 minutes without fixing the problem nor closing a PR, see https://github.com/NixOS/nixpkgs/pull/336261#issuecomment-2403383085

[x] Checked that codeowners would be requested if enabled: https://github.com/NixOS/nixpkgs/pull/347354#event-14570645380 (that we could see this is a bit of a happy accident, see https://github.com/NixOS/nixpkgs/pull/347538)
[x] Checked that codeowners problems get detected (https://github.com/NixOS/nixpkgs/pull/347348, https://github.com/NixOS/nixpkgs/pull/346858#issuecomment-2403064093)

This work is sponsored by Antithesis :sparkles:
Add a :+1: reaction to pull requests you find important.

A shame that we don’t get syntax highlighting any more, I wonder if we could name it CODEOWNERS outside of .github or something to benefit from the nice colouring

Maybe that vim set fmt comment thing might work?

A shame that we don’t get syntax highlighting any more, I wonder if we could name it CODEOWNERS outside of .github or something to benefit from the nice colouring (and to avoid stepping on GitHub’s namespace)?

Oh damn, that actually works: https://github.com/Infinisil-s-Test-Organization/nixpkgs/blob/master/ci/CODEOWNERS, though it would also complain about users not having write access in the UI, meh :/

I think I’d prefer the warning to no syntax highlighting, unless there’s a way we can get both, but it’s not a big deal. Putting it under ci/ seems better than .github/ in any case.

Ah, we can do this: https://github.com/github-linguist/linguist/blob/f164d13fa618023ecf2d8f2ed9a6ce5fae731346/docs/overrides.md

I think if we move it to ci/OWNERS and add this to .gitattributes then syntax highlighting should work:
ci/OWNERS linguist-language= CODEOWNERS

I'm not convinced that syntax highlighting at the cost of constant warnings is worth it tbh. Will move to ci/OWNERS though.

I suspect we might not get warnings if you set it in .gitattributes, but I can’t say for sure.

I suspect we might not get warnings if you set it in .gitattributes, but I can’t say for sure.

Whoa, that actually does work, very nice! I also verified it in another repo because I couldn't believe it at first, but it really does work!

Whoa, that actually does work, very nice! I also verified it in another repo because I couldn't believe it at first, but it really does work!

My intuition was that the component that handles the Linguist‐based syntax highlighting is distinct from the component that checks the syntax and handles displaying the warnings in the UI. Looks like I was right :)

It works! https://github.com/NixOS/nixpkgs/pull/347626

codeowner check failed for this PR: https://github.com/NixOS/nixpkgs/actions/runs/11284183639/job/31384967152?pr=347822


hello_contextual_menu.rb

I just tested gimmer-dsl-tk/samples/hello/hello_contextual_menu.rb
I have a few small suggestions to make; not sure if these are very useful
but small suggestions are good - less work. :D
(1) When clicking on a flag, for a country, perhaps there can be output
shown e. g. "german" or "mexican" or something, just to show how to
also display the current selection?
(2) Is it possible to start the main widget in the center or top left? I
had it start at the bottom left. But I guess this depends on the user, so
not sure ... maybe "center" would be better.
(3) Can the font be a bit smaller? Not much just a bit. Normally I
like large fonts but it seemed almost a huge font :D
(Actually I noticed the last entry changes the font size ... so perhaps
(3) is a redundant suggestion since the user can change it anyway)
(4) In country, would it be possible to left-pad the text a bit? Right
now the string is very close to the image; let me show an example
at imgur what I mean:
https://i.imgur.com/h4l3aLO.png
Don't mind the black background and other coloured font-text, that
is just KDE konsole. What I refer to is e. g. the flag of Finland
and then Finland - could there be a bit more padding between the
image and the text/label?
Anyway, these are not hugely example, I am just randomly stalking
for activity really ... :D

Thank you for the feedback.

Done. I updated Hello, Contextual Menu! & Hello, Menu Bar! to display a message box upon selecting a Language or Country

Done. Windows (root/toplevel) now start in the center of the screen by default (unless x/y attributes are specified to move window elsewhere). By the way, that is the same default that Glimmer DSL for SWT has. It just took me a while to apply in Glimmer DSL for Tk. Thank you for reminding me to do it.

About the font, I would not care to change because this is only meant as a demo for menus. The label font is irrelevant and is intentionally exagerated to emphasize the demo, not to look good. Looking good would be pointless in this case. As such, i don't see a benefit in changing it.

About the country, it is only using the standard Tk compound image/text option in menu item, and Tk does not offer any configuration of its look beyond that. One nice thing about desktop applications is that they have common conventions and  a specific repeatable predictable look that makes them easier to use than web apps for the average user, and makes them a lot quicker to develop. So, I wouldn't try to customize the look too much beyond what the standard toolkit provides (except in perhaps very rare scenarios that demand pixel-perfect canvas graphics)

In any case, this is only a minor thing caused by the Linux theme. For example, it looks perfectly fine with enough spacing on Mac:

As such, this is not a Glimmer DSL for Tk issue, and you may report directly to the Tcl/Tk folks to get them to improve the Linux theme.
Cheers.


Fix: html reporter crashing on before hook error

HTML reporter expects that Runnables have a body
https://github.com/mochajs/mocha/blob/d59cc6c166d0d112a62016909b33e04ed08d2274/lib/reporters/html.js#L203

Thanks for the PR! Not sure why there's a merge conflict, so I'm gonna go ahead and merge https://github.com/mochajs/mocha/pull/2086 isntead


How to inject repository?

Hello,
First at all your MVC6.Grid is great component, I use it for some time and have great experience.
That's why I decided to use MVC6.Lookup, but I have some problems.
I followed your example where you use:
public override IQueryable<PersonModel> GetModels()     {         return PeopleRepository.GetPeople();     }
I dont know how to inject repository in MvcLookup derived class?
I want to inject repository in constructor, is it possible or there is another solution?

Yes, you can inject it though a constructor, I usually pass a context to LookupController and then pass it to lookup in action. I will update example pages with this.
public class LookupController : Controller
{
    private DbContext Context { get; }

    public LookupController(DbContext context)
    {
        Context = context;
    }

    [NonAction]
    public virtual JsonResult GetData(MvcLookup lookup, LookupFilter filter)
    {
        lookup.Filter = filter;

        return Json(lookup.GetData());
    }

    [AjaxOnly]
    public JsonResult Role(LookupFilter filter)
    {
        return GetData(new Lookup(context), filter);
    }
}

Thank you very much. It works like a charm.


Duonglvtnaist

I have add a new song for you
Thank you!

Since this is the template master repository, I will no merge any changes from the forks. Thanks for the Pull Request though.


Update dependency, clean up code and add coverage

Changes Unknown when pulling 1e0eebb9015e94c4d65271513818a2b4772288b0 on feature/update-deps-and-pipeline into ** on master**.


Rewrite front-end in JS framework (and back-end as API)

Although this is likely a long ways off, we should seriously refactor the entire front-end with Ember, and rewrite the Rails-side of things to be a back-end API. I think we're hitting a point with Reservations where we have Ajaxed a lot of individual pieces of the UX, but it's slowly becoming nightmarish to maintain. Rails + jQuery are not good at managing complex front-end UI interactions that don't require a new page request.
For instance, I'm pretty confident that #718 would be significantly easier to implement if we were using a JS front-end framework. We chose to refresh the entire catalog when making a change 2 years ago because it was a lot easier than trying to figure out exactly what component(s) changed and only updating that/them.
(Why not Angular? Ehhhh wellll, I have a lot of feelings about Angular. We could always talk about it some other time.)

Well it would break a large portion of our test suite since it would probably change a lot of how the application works. Half of our controller code is hacks to accommodate a too-complex frontend (I'm looking at you, reservation#checkout and #checkin).

Another thing that this would enable is real separation between backend and frontend tasks that would be seriously amazing. It would be a lot easier to imagine what steps would need to be taken to implement a feature and I think that a lot of the murkiness ends up in controller bloat code, since without an API/client structure the controller is the glue between backend/frontend. For instance #516 would simply be reduced to 2 tasks; backend: create one method that takes the cart and outputs a JSON array of associated EMs. frontend: figure out where to call this method and how to display its contents.

@squidgetx Totally agree

Yea, a complete re-architecting of the app would be quite nice :-). We'll see how the semester progresses, maybe we can try to fit this in in our 'free' time :-P.

@squidgetx @orenyk Having worked with React now, I've totally changed my mind – I think React is the way to go whenever this re-architecting happens.

@mnquintana thanks for the update! Do you mind briefly outlining what made you change your mind and things we should look out for if/when this happens?

Sure! :smile:

React has a small, focused API, and it doesn't take that much effort to grok (compared to Angular or Ember)
React has one concept – Components. You build out a UI by composing Components inside of Components. That's it.
It's really easy to drop React into an existing app without any wonkiness or performance degradation – you can just slowly componentize different pieces of the UI
Not sure if this is still the case, but React is / was by far the fastest of the big 3 frameworks
JSX (the truly insane looking HTML-in-JS template syntax) is surprisingly intuitive and fun to work with, and allows for the full use of JS in your templates, compared to Handlebars in Ember or Angular's templating which is quite limited
You don't learn a framework, you learn JS best practices. With other frameworks, you essentially pour time and effort into learning largely non-transferrable skills, which is not awesome considering the incredible rate of churn in JS-land. But since React's API is so small, most of what you write is just plain ol' JS.
React is the most flexible – it's extremely easy to integrate with other libraries
Managing state in React just makes so much sense, especially compared to others I've looked at

And more stuff I didn't mention in this article: https://blog.formidable.com/using-react-is-a-business-decision-not-a-technology-choice-63c4641c5f7#.nfjhlmq0a
The downsides?

If you want to do React the Right Way, it involves configuring a lot of tooling first (but they pretty much all do at this point)
It has to be paired with a few other libraries for the Full Framework Experience, but that's pretty much a one-time thing that you won't have to worry about again
It's not totally clear how it's supposed to work with the evolving Web Components spec, despite being "Component"-based


Table filter

It would be nice if you had a text input field where you could type something, hit <enter> and it would only show the tables whose name contains your filter term. Like in phpMyAdmin.

I also want this function, but vscode does not have such an API at present. If it is supported in the future, I will add it.

The best practices is double click table, then type you table name.

Thanks, I didn't even know about this feature.


Authentication for daily validation app

Currently the dash version of the daily validation app works without user authentication. We need to ensure that this is only accessible to users who are logged in

@ICHydro , could we have your thoughts about who should have access to what in the new Paricia during the meeting on Tuesday?
The current permission system setup by Dan is described here: https://github.com/ImperialCollegeLondon/paricia#user-roles-and-permissions , but I'm not entirely sure if that is what you want. It seems to me that at least some data in the current system, like station information, is currently public. Is the report data also meant to be public?

Dan's setup seems largely OK, but we may want to give the users the possibility to choose whether they make their station information (and data) public or not. I will think about this a bit more, and we can discuss further on Tuesday.


An error occurs when the Assistant uses Xinference to chat with ChatGLM3-6B

Describe the bug

The xinference version is 0.9.4

Error log

2024-03-26 18:13:26,877 xinference.api.restful_api 6459 ERROR    [address=<IP_ADDRESS>:43495, pid=46242] 0
Traceback (most recent call last):
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xinference/api/restful_api.py", line 1386, in create_chat_completion
    data = await model.chat(prompt, system_prompt, chat_history, kwargs)
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xoscar/backends/context.py", line 227, in send
    return self._process_result_message(result)
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xoscar/backends/context.py", line 102, in _process_result_message
    raise message.as_instanceof_cause()
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xoscar/backends/pool.py", line 659, in send
    result = await self._run_coro(message.message_id, coro)
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xoscar/backends/pool.py", line 370, in _run_coro
    return await coro
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xoscar/api.py", line 384, in __on_receive__
    return await super().__on_receive__(message)  # type: ignore
  File "xoscar/core.pyx", line 558, in __on_receive__
    raise ex
  File "xoscar/core.pyx", line 520, in xoscar.core._BaseActor.__on_receive__
    async with self._lock:
  File "xoscar/core.pyx", line 521, in xoscar.core._BaseActor.__on_receive__
    with debug_async_timeout('actor_lock_timeout',
  File "xoscar/core.pyx", line 526, in xoscar.core._BaseActor.__on_receive__
    result = await result
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xinference/core/utils.py", line 45, in wrapped
    ret = await func(*args, **kwargs)
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xinference/core/model.py", line 79, in wrapped_func
    ret = await fn(self, *args, **kwargs)
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xoscar/api.py", line 462, in _wrapper
    r = await func(self, *args, **kwargs)
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xinference/core/model.py", line 375, in chat
    response = await self._call_wrapper(
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xinference/core/model.py", line 103, in _async_wrapper
    return await fn(*args, **kwargs)
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xinference/core/model.py", line 325, in _call_wrapper
    ret = await fn(*args, **kwargs)
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xinference/model/llm/vllm/core.py", line 436, in async_chat
    return self._tool_calls_completion(
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xinference/model/llm/utils.py", line 591, in _tool_calls_completion
    content, func, args = cls._eval_chatglm3_arguments(c, tools)
  File "/home/miniconda3/envs/xinference/lib/python3.10/site-packages/xinference/model/llm/utils.py", line 538, in _eval_chatglm3_arguments
    if isinstance(c[0], str):
KeyError: [address=127.0.01:43495, pid=46242] 0

To Reproduce
To help us to reproduce this bug, please provide information below:

Your Python version.
The version of xinference you use.
Versions of crucial packages.
Full stack of the error.
Minimized code to reproduce the error.

Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

Can you chat normally?

Can you chat normally?

Normal use of basic assistant.

Update ChatGLM3-6B model file, problem resolved.


Update Javadoc example for HttpUrl.encodedPath()

Per https://github.com/square/okhttp/pull/1629

These two will be the same, right?

yup!  Looking at the history, https://github.com/square/okhttp/pull/1629 only changed the method name, while https://github.com/square/okhttp/pull/1648 only changed implementation details.


How to train it?

Hi, thanks for sharing the code. it's a excellent work you've done.
May I ask, if the training code will be released soon?

Thanks for your question.
We use many different models to finish tasks. It is not easy to train them at the same time. Please refer to each single model details if you want to train them. However, some models, like SAM and Grounding DINO, may not release training code.

thank you very much, and another question is that will you consider adding the OCR technology to this framework to enhance the text-reading ability?

thank you very much, and another question is that will you consider adding the OCR technology to this framework to enhance the text-reading ability?

Sure, if you have some new ideas~ we are really willing to support it~ you can submit new PR or create a new repo and we will help u to highlight it~


HasAttributes->castAttribute() cannot convert null

Laravel Version: 5.4.3
PHP Version: 7.0.7
Database Driver & Version: MySQL 5.7.17

Description:
When trying to convert a VARCHAR column value from the database that has NULL as default value, the cast property on my Eloquent model is ignored and my attribute does not get converted due to this logic:
https://github.com/illuminate/database/blob/607d5e1c8e2ecc61d312a455a5e93d6793f694df/Eloquent/Concerns/HasAttributes.php#L458-L460
Steps To Reproduce:
Add this to a Eloquent model and get a VARCHAR column that has NULL as default value.
/**
 * The attributes that should be casted to native types.
 *
 * @var array
 */
protected $casts = [
    'products_stock_attributes' => 'string'
];

Surely this is the desired behaviour?

I don't understand the issue, If you trying to set default value for null like
string => '',
you need to define it in the attributes property
protected $attributes= [     'products_stock_attributes' => '' ];

I have a VARCHAR column in my database that is NULLABLE, so it can return from the database as null and as an empty string if it is set but as an empty value, I would prefer to do a string conversion so I only have to check against empty string and forget about NULL values.
// this is what I have to do without a null -> string conversion
if ($value !== null && $value !== '') {}

// this is what I would like to do
if ($value !== '') {}

How about if (empty($value)) { or if (!$value) {?

well sure there are walkarounds for this issue, but is there any reason for why you cannot cast null values? I use strict comparison throughout my repository.

In my apps, if I have a nullable field I would want it to return null. If you want an empty field just put an empty string in the DB.

I think it's the desired behaviour, null is not an empty string and not a zero. Casting null to zero for integers or empty string for strings is not always desired.

Alright, guess I have to create an accessor method that does the job then if I cannot use $casts, thanks guys.

I was just running into this because I have legacy tables in which there is a nullable boolean column. I wanted laravel to always cast null to false. The casts property alone does not solve for this. Instead, you can rely on setting the default attributes property to set the default to false when the value is null.


Implement flatMap

Implemented flatMap operator

Current coverage is 95.71%

Merging #4 into master will decrease coverage by -1.09% as of c9d915b

@@            master      #4   diff @@
======================================
  Files            3       3
  Stmts          125     140    +15
  Branches         0       0
  Methods
======================================
+ Hit            121     134    +13
  Partial          0       0
- Missed           4       6     +2

Review entire Coverage Diff as of c9d915b

Powered by Codecov. Updated on successful CI builds.


fixfix and refactor ugi login for kerberos and simple authentication

Proposed changes
optimize kerberos ugi login:

support authentication framework for external table
cache ugi to avoid conflicts when set configuration for ugi login
do ugi login just on creating catalog, which reduces the ugi create times
only simple authentication will use getloginUser, which avoids conflicts between simple and kerberos authentication

run buildall

run buildall

run buildall

run buildall

run buildall

run external

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run external

run buildall


Editor: add an option to change the 80-column line position

From pierre.raybaut on 2010-11-30T11:16:33Z
...
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=477

From pierre.raybaut on 2011-04-24T07:38:08Z
This issue was closed by revision 997cf30f4b48 .

From pierre.raybaut on 2010-12-17T09:50:38Z
This issue was closed by revision 997cf30f4b .
Status: Fixed


✨ [Feature request]:  Dark mode/Light on react play

Hi ReactPlay Team ,As a developers I would love to see ReactPlay in dark mode too hoping it will be released soon.

Hello @atapas can you assign this issue to me?

Hoping I can do some work on this part 🙏

Hi ReactPlay, I would love to work on the dark/light mode on react play with react
Can this issue be assigned to me?


Fix model factory for abstract types with discriminator

Ignore this preview, it must be rerun after azure-sdk-for-net is updated


how to connect multiple nsq servers（distributed servers） and produce msg

how to connect multiple nsq servers（distributed servers） and produce msg

hi @chuangyou - on the producer side it is left as an exercise to the user to load-balance publishing.
Typically topologies will colocate nsqd with producing services so they'll just publish locally (and you can scale those "silos" horizontally).  Other topologies group a cluster of nsqd behind a load balancer and use HTTP.
Hope this helps!


Table viz - the 1px border on the bottom and right doesn't show for some reason.

The table 1px border on the bottom and right doesn't show for some reason.
See here: http://jsfiddle.net/dans74/44agcw16/1/
Discussion: https://groups.google.com/forum/#!topic/d3plus/P0OmlH3nDVo

Can you post a screenshot of what you're seeing?


Create Program to find largest element in array in c

Pls accept it

Why it is showing invalid in my profile


CI integration fails on a timeout. Seems the fix doesn't break any tests.

CI integration fails on a timeout. Seems the fix doesn't break any tests.
Originally posted by @rhpvorderman in https://github.com/cython/cython/issues/3831#issuecomment-694033092

This doesn't look like a useful issue. It looks like you accidentally clicked on a comment and converted it to an issue. But I don't understand what you've re-opened it.
Please leave it closed.


Secure file storage, prefixes for stored files, autodeletion of files on attachment deletion, date of creation for model and admin, version bump

What's this Pull Request do?
Secure file storage, prefixes for stored files, autodeletion of files on attachment deletion, date of creation for model and admin, version bump
What has been changed?

[x] Secure file storage: files can be stored at custom location because media/ is almost always is server by server and you might not want all your confidential attachments to be served for just everybody.
[x] Prefixes or 24 randim symbols for stored files because instead of filesystem email message can have multiple files with the same name attached.
[x] Autodeletion of files deleted or changed attachments, because you should not store confidential data.
[x] Date of message creation for model and admin. Because I want to have it.
[x] Version bump. Because of reasons.

Any background context you want to provide?
Screenshots
GitHub issues
#80

Couple things.

I'd would have gathered this be broken up into multiple pull requests as adding the created date has nothing to do with attempting to hide file attachments.
After the model change, no migration was added.
This is falling pyflakes checks on travis.

Aww.. I can fix first two things but can you please point me to some manual for third one?

Not sure what you mean by manual, but you can check out the travis builds https://travis-ci.org/dstegelman/django-mail-queue/builds/159889755

/me gone working on multiplying pull requests by advanced branching


Add recommendation for custom filters

More like guidelines for custom filters:

keep in mind the queryBuilder parameters conflict
never use setParameters instead of setParameter as it will wipe out all previous parameters

I do not know if it has really its place here though.

the bundle should already be safe but the doc can be enhanced to explain how to deal with that
setParameters is never used in the bundle so no problem here :-)

Update on the issue regarding the QueryBuilder conflicts: it happens quite often when you have a few entities and custom filters for each, especially when dealing with relations for the join aliases. In our cases, we had to declare a DoctrineHelper class to secure the parameters. Given this use case may occur quite often, would it be worthwhile to add this kind of helper to the bundle?


Official Savage Worlds v 1.00.15

Changes / Comments
Fixed an issue with ROF rolls when rolling more than 5 skill dice.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
[x] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


[GraphQL-Fixtures] - Replace deprecated faker.random.boolen

Description
Update the graphql-fixtures package to use the new faker.datatype.boolean function.
Deprecation Warning: faker.random.boolean is now located in faker.datatype.boolean
Type of change

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

Checklist

[x] I have added a changelog entry, prefixed by the type of change noted above (Documentation fix and Test update does not need a changelog as we do not publish new version)

What faker version added faker.datatype.boolean? Do we need to update our dependency on faker to match that minimum version or are we already covered?

This was an oopsie on my part, that I missed this in #2132 . My bad and thanks for updating @attila-berki . I only detected this minutes ago.
There is one more deprecation I forgot to update: faker.random.number() --> faker.datatype.number(). Going to fix that now...


Likelihood

Hi Pawel,
I implemented the log-likelihood function and created some unit tests for it. However, I was struggling with comparing R with Python because there doesn't seem to be a corresponding R function that accepts the same inputs (tree, theta matrix and sampling rate) and returns the log-likelihood. I might need to ask Xiang.

Hi Pawel,
Thanks for the review! I don't understand your second suggestion though. It is correct that in the current implementation the list of subtrees of a given tree is calculated when doing the loglikelihood calculation, however, I don't see why caching would lead to a speed up? For each distinct tree, the loglikelihood function is executed once and each distinct tree has a different list of subtrees.
So how would the cached list of subtrees be reused?

It is correct that in the current implementation the list of subtrees of a given tree is calculated when doing the loglikelihood calculation, however, I don't see why caching would lead to a speed up? For each distinct tree, the loglikelihood function is executed once and each distinct tree has a different list of subtrees.

The trick here is that we will calculate the likelihood of the whole data set (i.e., for each tree) many times. Think about it this way: if you have the data set $X$ and parameters $\theta$, you want to know the likelihood, which is
$$P(X\mid \theta) = \exp \sum_i \log P(X_i \mid\theta)$$
However, to understand which $\theta$ are good or bad, we need to check many of them. In other words, each loglikelihood term $\log P(X_i\mid \theta)$ will have to be calculated thousands of times.
If we don't cache the subtree list, we'll have to calculate it thousands of times as well.
Another suggestion, which I forgot to mention, is that keeping subtrees as a list may be suboptimal if you implement the calculation via BFS (whether you create the $Q$ matrix explicitly or use dynamic programming and forward substitution directly). Hash tables (e.g., Python's dict) may be suitable here (as you don't iterate over the subtrees explicitly, but you only need to do a quick lookup passing from the tree to index).

Thanks for the clarification

Hi Pawel,
I improved the code that I showed you on Monday for the likelihood calculation. Originally, it took approximately 12 seconds to calculate the likelihood of the 623 trees, and now it takes about 4.7 seconds. However, using forward substitution and not constructing the V matrix only speeds up the code by about 0.2 seconds (so the fastest version is at 4.7 seconds, and the second fastest, which still constructs the V matrix, is at 4.9 seconds). The speed up is mostly due to eliminating trivial inefficiencies, such as only considering the entries that are in the upper half of the matrix and ensuring that an off-diagonal entry is only considered if the difference between the sizes of subtrees i and j is 1.
I first tried to keep the matrix construction approach and I tried to loop only once over the subtrees list and construct a single row
of V by considering the exit nodes of a tree and checking if we added each one of the exit nodes (and subsequently removing it) to the tree whether the resulting tree is contained in the list of subtrees (I of course filtered the list of subtrees in terms of subtree sizes, so we don't need to loop over the entire list of subtrees again (I used a dictionary)). If yes, then the off-diagonal entry could be constructed. However, with this version, calculating the log-likelihood for the 623 trees took more than 2 minutes! The complexity is even higher than O(n_T²),  where n_T is the number of subtrees. Therefore, I stuck to the diag_entry and off_diag_entry functions from the original code (which both employ BFS).
Furthermore, I'm not sure, but I think that using the BFS approach you suggested, which constructs an entire row of the V matrix, doesn't allow for forward substitution because that would require each column of the V matrix to be constructed in one go (so exit nodes of different trees have to be considered).
You can view the two versions (4.7 and 4.9 seconds) on Github. I did not push the version that had a runtime of more than 2 minutes.

Great work, thanks a lot for the update!

I improved the code that I showed you on Monday for the likelihood calculation. Originally, it took approximately 12 seconds to calculate the likelihood of the 623 trees, and now it takes about 4.7 seconds.

Great! I think it'll be around 1 second then for 120 trees. Doing 10,000 steps will be therefore around 3 hours on Euler, I think it's performant enough for our purposes :slightly_smiling_face: (Plus, we could resort to multiprocessing and probably reduce the runtime by a factor of 4x, if needed).

I first tried to keep the matrix construction approach and I tried to loop only once over the subtrees list and construct a single row
of V (...) However, with this version, calculating the log-likelihood for the 623 trees took more than 2 minutes!

This is interesting and quite a surprising thing to me. Let's discuss it on Tuesday, I'd love to understand that better!

I'm not sure, but I think that using the BFS approach you suggested, which constructs an entire row of the V matrix, doesn't allow for forward substitution because that would require each column of the V matrix to be constructed in one go (so exit nodes of different trees have to be considered).

I may have overlooked it – another point to discuss :slightly_smiling_face:

I think the best way to proceed will be to separate the 30th commit (which introduces the new backends) into a new PR, so only the first 29 commits are in this one. (And after the minor comments are resolved, they are merged. For the 30th commit I'd like to provide some additional feedback).
Do you know how to split a PR into two, or should I do it for you?

Hi Pawel,
Thanks for the reply. I'll give it a try myself.

I implemented your suggestions. Should I resolve the comments and merge this branch into the main branch?

I implemented your suggestions. Should I resolve the comments and merge this branch into the main branch?

Sounds great! Note that there's a minor conflict. It looks that it can be fixed using the online editor (it's like 3-line modification), but if you need any help, let me know!


Cannot open a diagram if executionPlatformVersion is unknown

Describe the Bug
When I try to open this diagram which is a valid BPMN but with modeler:executionPlatformVersion="7.14.0, Modeler displays a dialog and refuses to display the diagram.
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" id="Definitions_1snrxfq" targetNamespace="http://bpmn.io/schema/bpmn" xmlns:modeler="http://camunda.org/schema/modeler/1.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.14.0">

Steps to Reproduce

Download the nightly
Try to open the diagram
now this happens

Expected Behavior
Modeler should never refuse to open valid BPMN 2.0 diagrams. It could warn the user about unsupported execution platform instead.
Environment

OS: MacOS
Camunda Modeler Version: nightly as of 17.01.2022
Execution Platform: Camunda Platform 7.14.0
Installed plug-ins: none

Additional context

Slack conversation on this

The rationale behind this is:

The Modeler can deal with diagrams which dont have an exectionPlatformVersion set
If the Modeler reads an unknown exectuinPlatformVersion, it will not open the file. Consider the cases:

foobar => does not make sense. Also why would a user set it? Hence rejection is okay
7.22 => may not be supported by the current modeler version. Hence rejction is okay
7.14 => some old version. Note that setting to 7.14.0 in the first place must have been a manual activity. Hence rejection is okay

After conversation with Maciej I am reopening this. This is valid feedback and the decision we made (see previous comment) may be revised. We will just leave this open to have a issue to collect feedback on this. We will not take any action soon.

I do believe a simple thing we could do is the following:

accept all versions of Camunda Platform; only allow to set recent versions

Would be interesting to figure out what leads a user to enter an unsupported (because too old) execution platform version in the first place.

Thanks for the feedback Ingo.
I suggest we invest into the solution proposal by @nikku

accept all well known versions of Camunda Platform; only allow to set recent versions

Addition to be clear: linting will only kick in for known versions (obviously)

Will not be able to do it this iteration

Hi @schreuder71,
In the XML, find bpmn:definitions (it should be the top-most element), and modify it as in the diff below:
- <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" id="Definitions_0rih9zo" targetNamespace="http://bpmn.io/schema/bpmn" xmlns:modeler="http://camunda.org/schema/modeler/1.0" exporter="Camunda Modeler" exporterVersion="5.0.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.14.0">
+ <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" id="Definitions_0rih9zo" targetNamespace="http://bpmn.io/schema/bpmn" xmlns:modeler="http://camunda.org/schema/modeler/1.0" exporter="Camunda Modeler" exporterVersion="5.0.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.15.0">

Specifically, it's this part:
- modeler:executionPlatformVersion="7.14.0">
+ modeler:executionPlatformVersion="7.15.0">

Excellent. Thank you that worked.

This is coming up more often then expected. We've seen around ~150 users being affected in the last 14 days, likely due to the following scenario:

User creates diagram with a newer modeler version
Colleague tries to open diagram with an older modeler version
We throw with an error

A resolution could be, as suggested, to handle this issue more gracefully:

Be optimistic about future engine version support (still open, assume latest known version, indicate miss-match)
Be optimistic about past version support (still open, assume no version being set)

Again this affected roughly 200 users in the last 14 days.
I propose that we re-consider this. The least thing we could do is to cater towards users using outdated Camunda Modelers and give them a hint to try an update Desktop Modeler version.

Roughly 240 users affected in the last 14 days.