Bug: Linter setting breaks 'Share Note' plugin

If the setting
Format Tags in YAML
Remove Hashtags from tags in the YAML frontmatter, as they make the tags there invalid.
is turned on, Linter also removes the hashtag from the 'share_link' value in frontmatter (although it's not within the "tags" section).
This results in an error when re-sharing a note using the "Share Note" plugin, as described here: https://github.com/alangrainger/share-note/issues/57
A sample frontmatter section would be:
---
created: 2024-08-29T19:28:47+02:00
updated: 2024-08-29T19:48:06+02:00
title: Share note Test
aliases:
tags: []
share_link: https://share.note.sx/r0w1vdtw#goaVfYU2NExAphdG8oHzVUZ2h8E22JDbJHC5BBEsZPo
share_updated: 2024-08-29T19:37:28+02:00
---

After linting the file it looks like:
---
created: 2024-08-29T19:28:47+02:00
updated: 2024-08-29T19:48:06+02:00
title: Share note Test
aliases:
tags: []
share_link: https://share.note.sx/r0w1vdtwgoaVfYU2NExAphdG8oHzVUZ2h8E22JDbJHC5BBEsZPo
share_updated: 2024-08-29T19:37:28+02:00
---

Hey @paradeiser , thanks for reporting this. I am able to reproduce the issue. It looks like an issue with the underlying regex not properly handling this scenario, but I will have to look at things closer to see if I can figure out what is going on here.

Looks like the regex used there was pretty old and outdated. I have gone ahead and updated it. It should no longer have this issue with that. I should be able to push up a fix for this shortly.

I have gone ahead and merged the change that should fix this. Please let us know if this is not fixed on master or in the next release.


always sign trust statements

having a trust statement without a signature on it is problematic because it would be easy for me to just make a bunch of them up - I understand that the reasoning is to be able to import trust statements from legacy systems like IMDB, which relys on centralization for security, instead of signatures.
Another option though, would be to have a bot that scrapes IMDB, and then signs those. This could be an official IMDB bot or something. You could run your own imdb scraper, to verify the official scraper and then sign a trust statement saying you verified the bot.
But without something like that, you'd have to run the scraper you self, or just trust whoever gave you the data from IMDB.

Thanks @dominictarr, totally agree.
I wrote spike code around this, but haven't had a chance to implement it in the main codebase as yet.
Spike: https://github.com/citizencode/trust-exchange/blob/master/spike/sign.coffee
A PR around this would be awesome :smile:

We now sign the JSON-LD, Verifiable Claims style.


Error on install: on_start event

Attempting to install community_store_stripe on concrete5 v8, the following error occured:
Concrete\Package\CommunityStoreStripe\Controller::on_start(): Failed opening required 'vendor/autoload.php' (include_path='/var/www/c5.8/concrete/vendor:.:/usr/share/php:/usr/share/pear')
The repository was cloned in the packages folder as follows:
git clone git@github.com:concrete5-community-store/community_store_stripe.git
Write privileges are enabled for the apache process on the community_store_stripe directory.

Check the README https://github.com/concrete5-community-store/community_store_stripe

This add-on uses Composer to install third-party librares. Run composer at the root of the add-on folder    before installing:
   composer install

There is also a release zip available, which includes the vendor libraries,
ready to run. 1.0.1 was added today.
On 22 Dec. 2016 11:33 pm, "David Buonomo"<EMAIL_ADDRESS>wrote:

Just noticed that after posting. Thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/concrete5-community-store/community_store_stripe/issues/3#issuecomment-268795255,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABB5MD4oxxOvp2gsLDv57quz3Dxc9edZks5rKnT9gaJpZM4LT9Uq
.


Failed to build LoadBalancer configuration due to retrieval of subnets failed

Hi,
I am troubleshooting the issueFailed to build LoadBalancer configuration due to retrieval of subnets failed. I already configured 2 public subnets and 2 private subnets.  The details are below:
error:
kubebuilder/controller "msg"="Reconciler error" "error"="failed to build LoadBalancer configuration due to retrieval of subnets failed to resolve 2 qualified subnets. Subnets must contain the kubernetes.io/cluster/\u003ccluster name\u003e tag with a value of shared or owned and the kubernetes.io/role/elb tag signifying it should be used for ALBs Additionally, there must be at least 2 subnets with unique availability zones as required by ALBs. Either tag subnets to meet this requirement or use the subnets annotation on the ingress resource to explicitly call out what subnets to use for ALB creation. The subnets that did resolve were [\"subnet-0e41ff51ec1ac5791\"]"  "controller"="alb-ingress-controller" "request"={"Namespace":"2048-game","Name":"2048-ingress"}
2488-public-1:
    availability zone = eu-west-1a
    tag: kubernetes.io/cluster/eks-test = shared;   kubernetes.io/role/elb = 1
2488-public-2:
    availability zone = eu-west-1a
    tag: kubernetes.io/cluster/eks-test = shared;   kubernetes.io/role/elb = 1
2488-private-1:
    availability zone = eu-west-1b
    tag: kubernetes.io/cluster/eks-test = shared;   kubernetes.io/role/internal-elb = 1
2488-private-2:
    availability zone = eu-west-1b
    tag: kubernetes.io/cluster/eks-test = shared;   kubernetes.io/role/internal-elb = 1
alb-ingress-controller.yaml:
##############################
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: alb-ingress-controller
name: alb-ingress-controller
namespace: kube-system
spec:
selector:
matchLabels:
app.kubernetes.io/name: alb-ingress-controller
template:
metadata:
labels:
app.kubernetes.io/name: alb-ingress-controller
spec:
containers:
- name: alb-ingress-controller
args:
# Limit the namespace where this ALB Ingress Controller deployment will
# resolve ingress resources. If left commented, all namespaces are used.
# - --watch-namespace=your-k8s-namespace
# Setting the ingress-class flag below ensures that only ingress resources with the
# annotation kubernetes.io/ingress.class: "alb" are respected by the controller. You may
# choose any class you'd like for this controller to respect.
- --ingress-class=alb
# REQUIRED
# Name of your cluster. Used when naming resources created
# by the ALB Ingress Controller, providing distinction between
# clusters.
# - --cluster-name=devCluster
# AWS VPC ID this ingress controller will use to create AWS resources.
# If unspecified, it will be discovered from ec2metadata.
# - --aws-vpc-id=vpc-xxxxxx
# AWS region this ingress controller will operate in.
# If unspecified, it will be discovered from ec2metadata.
# List of regions: http://docs.aws.amazon.com/general/latest/gr/rande.html#vpc_region
# - --aws-region=us-west-1
# Enables logging on all outbound requests sent to the AWS API.
# If logging is desired, set to true.
# - --aws-api-debug
# Maximum number of times to retry the aws calls.
# defaults to 10.
# - --aws-max-retries=10
# env:
# AWS key id for authenticating with the AWS API.
# This is only here for examples. It's recommended you instead use
# a project like kube2iam for granting access.
#- name: AWS_ACCESS_KEY_ID
#  value: KEYVALUE
# AWS key secret for authenticating with the AWS API.
# This is only here for examples. It's recommended you instead use
# a project like kube2iam for granting access.
#- name: AWS_SECRET_ACCESS_KEY
#  value: SECRETVALUE
# Repository location of the ALB Ingress Controller.
image: docker.io/amazon/aws-alb-ingress-controller:v1.1.4
serviceAccountName: alb-ingress-controller
####################################

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/name: alb-ingress-controller
name: alb-ingress-controller
rules:

apiGroups:

""
extensions
resources:
configmaps
endpoints
events
ingresses
ingresses/status
services
verbs:
create
get
list
update
watch
patch

apiGroups:

""
extensions
resources:
nodes
pods
secrets
services
namespaces
verbs:
get
list
watch

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/name: alb-ingress-controller
name: alb-ingress-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: alb-ingress-controller
subjects:

kind: ServiceAccount
name: alb-ingress-controller
namespace: kube-system

apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/name: alb-ingress-controller
name: alb-ingress-controller
namespace: kube-system
...
##########################################

Figured out ! Just clarify the reason
Public and private subnets – This VPC has two public and two private subnets. One public and one private subnet are deployed to the same Availability Zone. The other public and private subnets are deployed to a second Availability Zone in the same Region.


Trailing slash added in html5 mode

When in html5 mode, if I type in an address in the browser such as myapp.com/login a trailing slash will automatically be added for some reason - is this behaviour expected?
When I take my app out of html5 mode and use myapp.com/#/login then no trailing slashes are added when I type the address in manually.
I am aware of fixes such as removing the trailing slash by reading the URL and $urlMatcherFactoryProvider.strictMode(false); but these aren't desirable solutions for me.

what was your fix for this?


Add pre-requisite

Please add pre-requisite for redirection to work.
if there exists a page with partial URL cs-survey, the redirection rule will not work.

@PranjaliShetty Can you let us know the specific page in the docs that you're talking about.

https://docs.microsoft.com/en-us/dynamics365/portals/add-redirect-url#use-the-redirect

The redirection works even if partial URL page is present. For example, use the about-us page redirection with default about-us page present and redirection that redirects to home page. The redirection works without need to delete about-us page. Make sure to clear the server-side cache if issue persists. If still need further help working with environment, please reach out to support team via a support ticket.


Rustup no longer detected

Version of VSCode: 1.12.2
Version of the extension: 0.3.14
OS: Mac
Description: Rustup is no longer detected with the most recent VSCode
Output of the "Rust logging" channel:
DEBUG: handleMissingRls: Rust is either not installed or installed not via Rustup
DEBUG: Configuration: updatePathToRacer: findRacerPathSpecifiedByUser: path=undefined
DEBUG: Configuration: updatePathToRacer: findDefaultRacerPath: foundPath=undefined
DEBUG: Legacy Mode Manager: MissingToolsInstallator: getMissingTools(): pathDirectories=["/usr/bin","/bin","/usr/sbin","/sbin"]
DEBUG: Legacy Mode Manager: MissingToolsInstallator: getMissingTools(): tools={"rustfmt":"rustfmt","rustsym":"rustsym"}
DEBUG: Legacy Mode Manager: MissingToolsInstallator: getMissingTools(): this.missingTools = ["racer","rustfmt","rustsym"]

@jonathandturner I'm using the same version numbers but have no problems.
At a glance, it seems that your pathDirectories variable isn't set appropriately. Shouldn't $PATH contain the location of ~/.cargo/bin?

@jonathandturner, @AndreasHassing rustc should be available. Since rustc is in ~/.cargo/bin, then the directory should be in PATH.
@jonathandturner, I don't think it was detected before.

I had a similar issue. I think it's because I'm using zsh so my path is set in zshrc instead of .bash_profile or whatever, I'm fairly new to vscode so I'm not sure how it grabs things. I solved it by including the path to the executable.
    "rust.rls": {
            "executable": "~/.cargo/bin/rustup",
            "args": ["run", "nightly", "rls"],
    },

@AndreasHassing - ah, that might be it.  I looked through the docs but didn't see that step.  Guessing other people might hit it, too.

Looking at my $PATH, it's definitely there.  I even have this in my .bash_profile:
export PATH="$HOME/.cargo/bin:$PATH"

I'm guessing maybe vscode runs them as a different user?

@jonathandturner,
It depends on how you start vscode.
Could you try to start it from the terminal?
I couldn't make it work on my Ubuntu when I start it from the Launchpad.

@KalitaAlexey - I'm not sure if there should be a requirement for how vscode is started for the functionality to work.  Sounds like one that should work regardless of how you start vscode.

@jonathandturner,
It may be VSCode problem.
However, it sounds correct that an application started not from the terminal does not get environment variables set in the specific terminal files.
What do you think?

I'm closing the issue since there is no issue at all.
Feel free to open it again.

I don't understand.  Your plugin was having issues detecting if rustup was installed.  Are you saying you can't repro this issue?
You listed a workaround which I pointed out would not work for the general use case.

@jonathandturner,Checkout #231.
It's not a problem of the extension or VSCode.
If you have some environment variables in your terminal and start some command within the terminal, the command will have access to your environment variables.
If you start some command from other place (Launchpad, Dash), the command will not have access to your environment variables declared for terminal.
It's that simple.

I had a similar issue. I think it's because I'm using zsh so my path is set in zshrc instead of .bash_profile or whatever, I'm fairly new to vscode so I'm not sure how it grabs things. I solved it by including the path to the executable.
    "rust.rls": {
            "executable": "~/.cargo/bin/rustup",
            "args": ["run", "nightly", "rls"],
    },

"rust-client.rustupPath": "~/.cargo/bin/rustup"


add additional build mode

*yarn build:package will build default component

moved some devDependencies to dependencies that are needed for postinstall script

Approved, can you pls rebase on main to resolve conflicts?


Enable efficient distributed evaluation

Hi, how can one run the evaluations in a distributed fashion; is this already implemented or not?


[fieldFor][form] Overprint in fieldFor when open form with isEdit=true and hasLoad=true

Remove the placeholder when there is a value in the props.

@Tommass


How can I typecheck a module graph from rust?

I saw in the README that this module does no typechecking during its bundling process. I would like to do the typechecking prior to bundling, and I do not want to make the deno CLI application a dependency. What library does the typechecking for the CLI?

It's not possible at the moment and out of scope for deno_emit. The way to do this would be with deno check mod.ts


Recover from buffer

Description of the problem or steps to reproduce
I had by accident scp a script from a remote host and ovewritten the local one which I had made significant changes.
I've noticed that there's a copy in the buffer dir. which is dated very recent.
Is it possible to recover the one from the buffer?

See the backup option, which will now automatically backup your files to ~/.config/micro/backups.


Fix module scanning

it solve https://github.com/xmake-io/xmake/pull/5425

@Arthapz Did you rebase to dev first? it need newest hashset implementaion.

@Arthapz Did you rebase to dev first? it need newest hashset implementaion.

i didn't rebased ton dev, was waiting for ur other PR to g et merged

it is rebased now


Feature/parameter node, change parameter get/set behaviuor

This PR proposes to add the ParameterNode, as raised by @AdriaanRol in #773. My main goal was to have a different way of setting/getting parameters instead of using brackets (raised in #767). I've added a tutorial on how to use the ParameterNode in the PR.
Changes proposed in this pull request:

Add ParameterNode
Change get/set behaviour of parameters inside a node
The proposed new method is:

Set: parameter_node.parameter = 42
Get: parameter_node.parameter (returns 42)
These commands set/get the value of the parameter, and the underlying parameter is accessed differently (see below for details).
Note that the parameter get/set itself isn't changed, if you have a parameter object, you should still use brackets.

Replace InstrumentBase with ParameterNode
Add ParameterNode tutorial

I think the main advantage of the new get/set method is that one doesn't need to think if an attribute is actually a Parameter or not. This allows you to replace attributes with parameters as you see fit, while also being able to keep other attributes the way they are. Having parameters behave as attributes also feels more pythonic IMHO.
One potential issue with this new method is that any time a parameter attribute is accessed, this will cause a .get(), therefore, hasattr(parameter_node, 'parameter') will call its .get method. I'm not sure if this is an issue, as there aren't many cases where this happens.
Smaller changes

Replace print_readable_snapshot with print_snapshot,  the snapshot being readable should be a given.
add dir of DotDict to include its keys
Make name and Instrument of BaseParameter optional

I haven't implemented everything discussed in #773, I first wanted to get some thoughts on the new proposed method
Below is a summary of the ParameterNode, this is explained in more detail in the added tutorial notebook
Creating a ParameterNode
Parameter nodes are instantiated via: parameter_node = ParameterNode()
Adding parameters
parameters can be added by setting an attribute:
parameter_node.new_parameter = Parameter()
Note that it is no longer necessary to specify a name in the Parameter. If it is not explicitly specified, it will be set to the attribute name
Getting/setting parameter values
Getting and setting of parameters in a parameter node is now done same as you would any other attribute:

Setting a value: parameter_node.new_parameter = 42
Getting a value: parameter_node.new_parameter (returns 42)

Accessing parameter object
The actual parameter can be accessed in two ways:

parameter_node.parameters.new_parameter (parameter_node.parameters is a DotDict).
parameter_node().new_parameter, the call () will return parameter_node.parameters.

The second method is more succinct, but does have one drawback, namely that autocomplete won't work with it. I haven't figured out another way of easily accessing parameters that does have autocomplete, or a way to add autocompletion to the call method.
Nesting nodes
Parameter nodes can also be nested, similarly to how parameters are added:
parameter_node.nested_parameter_node = ParameterNode().
This sets the nested parameter node's name to the attribute.
@AdriaanRol @jenshnielsen @WilliamHPNielsen @giulioungaretti @alexcjohnson @alan-geller @spauka

@nulinspiratie, on behalf of the Copenhagen devs:
We certainly appreciate your effort, but need to raise a few words of caution.
Even without having looked at the code in any detail, learning from our experience with our last big change to the parameters, where we had to clean up and hotfix for months after merging, there is no way such a fundamentally changing PR can be merged in one go.
Changing the API of Instrument is like a major version revision, something that we can't really bump without a long and careful discussion. Perhaps we even need a PEP/Spec-like system for these big changes (we could call them QEP's?). AS you are of course well aware, there has already been some discussion about parameter nodes, but it came to a halt before converging.
The above entails that the new Instrument would only be merged into QCoDeS via a fully independent alternative to the current Instrument that does not touch the existing Instrument and Channel classes.
The work flow would be something like:

Add parameter node
Port existing drivers in qcodes over slowly one by one. This will take month if not years.
Then deprecate the existing Instrument/Channel classes.
And perhaps eventually remove it fully. That would be long time into the future.

This may seem like an unfulfilling snail pace to you, but we have a large user groups whose day-to-day work depends on QCoDeS.

@WilliamHPNielsen Thanks for your reply. I definitely agree that this would be a significant change, and would break compatibility, which is a big issue affecting many users. I wasn't expecting this to be merged any time soon, if at all. However, It's something our fork will probably switch to, and I thought I'd place it here as a potential future direction for parameters (QEP does sound nice!).

Hi Serwan, cool that you guys are still innovating on your QCoDeS fork!
I personally do not like the change in the get/set behaviour. I think there were good reasons why it is implemented the way it is and to be honest I personally think the way that part works is really solid and should not be changed.
Another item (as mentioned by @WilliamHPNielsen ) is the potentially breaking backwards compatibility . I am paranoid about those and for me that is the chief reason that sometimes delays updates and creates diverging branches/forks, something which should be avoided in my opinion.
I do think a first implementation of the parameter node is cool and potentially very useful, though I do not understand why you changed the inheritance for the base instrument. I also like your example notebook but I would like to have some more detail in there, mostly to see how it support the print_readable_snapshot (without the name changed) and what regular snapshots look like.
I am afraid that in it's current form the node-tree functionality get's buried in the alternative get/set behaviour. I do think it is great as a conversation starter though :).


Made a number of changes to the files

This is a huge commit with a number of fixes to make sure some fixes work. From metacoin changed the name to Metapoints. Now should work in browser properly - caching issues solved.

LGTM!


Valid profile names for nixos-rebuild?

$ nixos-rebuild boot -p foo
$ nixos-rebuild boot -p bar-12
$ nixos-rebuild boot -p baz-12.14

All of these create symlinks in /nix/var/nix/profiles/system-profiles (and they will be set as active it 'switch' is given), but only the first one gets added as a submenu in Grub.  Is it problematic to have profile names with -[0-9] in them?  Should they be strictly alphabetic?  If so, let's document this :).

triage: Can you still reproduce this?
If so, can you find the section in the manual where adding it make sense?

As mentioned in #114552 entering unsupported characters can even lead to a crash of the systemd-boot menu creation script


Clean up or remove "TODO" text in v1/docs

This content seems very outdated: https://github.com/p4lang/p4runtime/tree/main/docs/v1#content-todo, namely:

Following are major content items which are missing or incomplete:
Section 17. P4Runtime Versioning
Section 18. Extending P4Runtime for non-PSA architectures
Section 19. Lifetime of a session

we could do this as part of a PR for closing https://github.com/p4lang/p4runtime/issues/424

@jafingerhut I volunteered to creating a PR for this issue, and to simultaneously address #424 for now by simply stating something like this "Version X.Y.Z of the P4Runtime spec is compatible with version 1.2.4 of the P4_16 Language Specification, except for these known omissions" and then give a bullet list of the approximately 3 items we know we haven't addressed yet..


Prl 660 labelling mandatory fields

JIRA link (if applicable)
CA - Implement * in all mandatory fields
Change description
Changes to add * to new fields
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ X] No

closing this


TextAnalytics 3.1 GA

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[ x ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of "no breaking changes"
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
[ ] Ensure to copy the existing version into new directory structure for first commit (including refactoring) and then push new changes including version updates in separate commits. This is required to review the changes efficiently.
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

@jhendrixMSFT I think the check is failing for incorrect reasons, so I'm OK to ignore it
@allenjzhang I think there's an issue in this check. Basically, in track 1 libraries, the version file generated as version.py. With track 2, we're hiding this version file, and generating it as _version.py. It seems the check is hardcoded as looking for a _version.py, which track 1 won't have.

approved for when breaking changes are fixed. As a general rule @suhas92, there isn't really a need to break all of the error codes into separate errors and add x-ms-error-response, as we really deal with these error responses the same (we don't take the different descriptions into account). See swagger example here.
Also side note, but I think service's shouldn't return 500, so I think that also means there's no need to separate 500 out


Error Correction Level 5

I am having problems decoding a PDF 417, others work perfect but this gives me the following error:
"ResultMetadata": {             "ERROR_CORRECTION_LEVEL": "5",             "PDF417_EXTRA_METADATA": {                 "SegmentIndex": 0,                 "FileId": null,                 "OptionalData": null,                 "IsLastSegment": false             }         },

Can’t commit to look at the issue in any fixed time but without the sample image there is no way to diagnose.

This is image friend @rmhrisk


"All rights reserved." in license

do you really want that?
will you consider removing it?

I keep all rights, but I allow a Open Source license (BSD 3-Clause), please check the LICENSE file.
The BSD 3-Clause is quite permissive, so it allows commercial usage and it is not "viral" (in the sense of e.g. GPL-v3).
If that license is not enough for you, tell me which is your need, and I will consider it.

I mean that sentence doesn't sounds good.

there is projects that use bsd style license but don't contain that sentence.

I followed the BSD template for the 3-clause license:
https://en.wikipedia.org/wiki/BSD_licenses
In the future I may consider switching to the "0-clause" BSD or other "public domain"-like formulas, if that was your concern.

In the future I may consider switching to the "0-clause" BSD or other "public domain"-like formulas, if that was your concern.

That will be nice to have.
you can use a 3-clause bsd style license without that sentence. like being used in https://git.sr.ht/~sircmpwn/core.sr.ht/tree/master/LICENSE

May be. But I'm not a lawyer, so I stick to the default template.

i am not a lawyer also.
but i think not having that sentence (like in the template for the 2-clause license on wikipedia) makes the license better.


In the testing of Raspberry Pi 3 , the cv.waitKey(0) will cause proce…

In the testing of Raspberry Pi 3 , the cv.waitKey(0) will cause process stop, so that the user cannot use demo code directly.
After change to cv.waitKey(1), the demo call of video_face_matcher_multiFace.py can run well, so that developer can run the demo code well.

Thanks for this PR @milochen0418.  I've created and merged a new PR 166 that includes your change but takes it futher and removes the call to waitkey altogether.


[PlotWindow] Deprecate pan and zoom actions

Use a deprecation phase for PlotWindow.panModeAction and PlotWindow.zoomModeAction.
Addresses https://github.com/vasole/pymca/issues/220
The code will also be modernized on the PyMca side, but it is a good idea to maintain the previous API for a couple of releases.

LGTM


#113 - Apply the fix from @mathieuhen

Nobody corrected this issue and my team and I came across this bug, so I decided to push this fix for the rest of the community
The issue:
In a multistore environment, the link provided in the BO to recreate the sitemap was only doing the store 1, no matter on which store you are, it will only do the store 1
Which is pretty annoying when you want to automate the process

Hi and thanks for your contribution. Are you able to rebase your pull request please?

Hi @Dirdmaster ,
Since we had no news from you for more than 30 days, I'll close this pull request. Feel free to reopen or open another one if you think it's still relevant.
Thanks!


I need to get logs last 10 min in c#

I need to get log last 10 min . I am not able to find a solution
example :
var parameters = new ContainerLogsParameters
{
ShowStdout = true,
ShowStderr = true,
Timestamps = true,
Since = "1"
};
Stream logStream = await (client.Containers.GetContainerLogsAsync(container.ID, parameters, default)).ConfigureAwait(false);
in above example what should I pass since value

The since and until parameter receives a UNIX timestamp. Here is an example. The count starts at the Unix Epoch.


invalid singular reserves => reserf

As it says in title, if you try to create a model named Reserve and resource as Reserve, you will end up singular name Reserf.
Edit:

Laravel Version: 6.0.4
PHP Version: 7.3.9
Database Driver & Version: mysql  Ver 15.1 Distrib 10.4.6-MariaDB, for osx10.14 (x86_64) using readline 5.1

Description:
Model names ends with Reserve become Reserf in singular
Steps To Reproduce:
Make a Model name Reserve or AnythingReserve
Make a Nova Resource named Reserve or AnythingReserve

@nemrutco can you please will out the issue template?

@nemrutco can you please will out the issue template?

Edited original post.

We'll need some code on how to reproduce this.

I wasn't been able to reproduce this as models are singular by default.
This aside the Str::singularize('reserves') does indeed produce reserf as output, but this is handled by the Doctrine Inflector, so it should be reported to them.

I agree with @netpok. @nemrutco feel free to open an issue with the Doctrine Inflector.


TBranch.array returns instance of JaggedArray if entry_start >= entry_stop

When trying to load an array of a branch, but specifying entry_start to be equal or larger than entry_stop on a branch that is jagged, the returned object will be a JaggedArray instead of an array from the library specified.
import uproot
f = uproot.open("https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples/nano_dy.root")
branch = f["Events"]["Jet_pt"]
array = branch.array(entry_start=1, entry_stop=1)

I would expect array to be of type awkward.Array but it has type uproot.interpretation.jagged.JaggedArray.
I came across this while trying to search for bugs popping up in my code when I have no entries selected.
Tested on uproot version 4.0.6

That's right: you should never see this JaggedArray class; it's used internally when collecting data, before converting it to the appropriate NumPy/Awkward/Pandas output. Fixed in PR #304.
Thanks for reporting it!


OauthIDPConfig throws RPC error even though quota project is set

Describe what happened
When using pulumi_gcp.identityplatform.OauthIdpConfig() class, the underlying API causes a rpc error.
Sample program
"""A Google Cloud Python Pulumi program"""

import pulumi
import pulumi_gcp as gcp

iap_service = gcp.projects.Service("iap-service", service="iap.googleapis.com")
service_usage = gcp.projects.Service("serviceusage-service", service="serviceusage.googleapis.com")
cloud_rm = gcp.projects.Service("cloudrm-service", service="cloudresourcemanager.googleapis.com")

identity_toolkit = gcp.projects.Service("idp-service", service="identitytoolkit.googleapis.com")
oidc_provider = gcp.identityplatform.OauthIdpConfig(
    "microsoft",
    name="oidc.foobar",
    client_id="foo",
    issuer="foo",
    client_secret="foo"
    , opts=pulumi.ResourceOptions(depends_on=[identity_toolkit]),
)

Log output
Diagnostics:
gcp:identityplatform:OauthIdpConfig (foobar):
error: 1 error occurred:
* Error creating OauthIdpConfig: googleapi: Error 403: Your application is authenticating by using local Application Default Credentials. The identitytoolkit.googleapis.com API requires a quota project, which is not set by default. To learn how to set your quota project, see https://cloud.google.com/docs/authentication/adc-troubleshooting/user-creds .
Details:
[
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/764086051850",
"service": "identitytoolkit.googleapis.com"
},
"reason": "SERVICE_DISABLED"
}
]
pulumi:pulumi:Stack (infra-dev):
error: update failed
Affected Resource(s)
No response
Output of pulumi about
CLI
Version      3.122.0
Go Version   go1.22.4
Go Compiler  gc
Plugins
KIND      NAME    VERSION
resource  gcp     7.30.1
language  python  unknown
Host
OS       debian
Version  11.9
Arch     x86_64
This project is written in python: executable='/workspaces/sample_app/infra/venv/bin/python' version='3.11.9'
Current Stack: organization/infra/dev
TYPE                                   URN
pulumi:pulumi:Stack                    urn:pulumi:dev::infra::pulumi:pulumi:Stack::infra-dev
pulumi:providers:gcp                   urn:pulumi:dev::infra::pulumi:providers:gcp::default_7_30_1
gcp:projects/service:Service           urn:pulumi:dev::infra::gcp:projects/service:Service::serviceusage-service
gcp:projects/service:Service           urn:pulumi:dev::infra::gcp:projects/service:Service::iap-service
gcp:iap/brand:Brand                    urn:pulumi:dev::infra::gcp:iap/brand:Brand::brand
gcp:projects/service:Service           urn:pulumi:dev::infra::gcp:projects/service:Service::cloudrm-service
gcp:projects/service:Service           urn:pulumi:dev::infra::gcp:projects/service:Service::idp-service
gcp:appengine/application:Application  urn:pulumi:dev::infra::gcp:appengine/application:Application::app
Found no pending operations associated with dev
Backend
Name           663c28915b8c
URL            file://~
User           vscode
Organizations
Token type     personal
Dependencies:
NAME        VERSION
pip         24.1.2
pulumi_gcp  7.30.1
setuptools  70.2.0
wheel       0.43.0
Pulumi locates its logs in /tmp by default
Additional context
So seems to have some issue with terraform underneath too; I haven't looked too much into this, but the rpc error references a gcp project which seems to be common with others. Example https://github.com/hashicorp/terraform-provider-google/issues/14972.
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Hey @aaron-tillekeratne, thanks for reporting here and sorry you had trouble with this.
How are you setting the quota project? From the TF issue you linked it seems to be a problem with application default credentials, so perhaps you can try setting the quota project as an env var or explicitly on the resource to work around the issue?

Hey @VenelinMartinov , thanks for the response.
I set the quota project using gcloud application-default set-quota-project foobar . The environment variable method does work.
However, It doesn't seem to correctly create the resource; it doesn't correctly populate the name, grant type seems to be set to id_token but no option to change that to code flow.
oidc_provider = gcp.identityplatform.OauthIdpConfig(
    "foobar",
    name="oidc.foobar",
    client_id="foo",
    issuer="www.foobar.com/foobar/baz/qux",
    client_secret="foo"
    , opts=pulumi.ResourceOptions(depends_on=[identity_toolkit]),
)

in Console:

Hi @aaron-tillekeratne, glad the environment variable worked. For your issue with the grant type parameter, unfortunately, it seems like that is not handled well in the terraform provider and pulumi inherits the behaviour from there:
https://github.com/hashicorp/terraform-provider-google/issues/9385
Seems like setting the grant type is not currently possible in the provider.
The docs suggest that setting the secret should trigger the code flow grant type but that might not be the case from the reports and looking at the code for this resource in the tf provider, I don't see anywhere where the grant type is handled: https://github.com/hashicorp/terraform-provider-google/blob/main/google/services/identityplatform/resource_identity_platform_oauth_idp_config.go
That means you'd need some other method for controlling that - you'd might want to create it in the console or you can try using the GCP API directly to work around this issue: https://cloud.google.com/identity-platform/docs/reference/rest/v2/projects.oauthIdpConfigs#OAuthIdpConfig
If you do decide to use the GCP API directly you could also use dynamic resource providers in pulumi to wrap the API calls into something which fits the pulumi resource model.

Ok thanks. I'll look into the API.


git-hg-jdk11u mercurial to git mirror not creating _adopt tags any more

The git-hg-jdk11u mirror should create the _adopt tags in the mirror "release" branch.
This is failing due to the tag sorting going wrong with jdk-<IP_ADDRESS> issue...

The mirroring machine was switched yesterday as it was hosted on a godaddy server and therefore is soon to be decomissioned. Is this is a new issue (in the last 24 hours)? The reference to jdk-<IP_ADDRESS> suggests that it is not new.
Presumably this will be a bllcker for the quarterly release this month?

The mirroring machine was switched yesterday as it was hosted on a godaddy server and therefore is soon to be decomissioned. Is this is a new issue (in the last 24 hours)? The reference to jdk-<IP_ADDRESS> suggests that it is not new.
Presumably this will be a bllcker for the quarterly release this month?

It's been like that since <IP_ADDRESS>, we haven't noticed as the nightlies build dev. I only noticed from doing the "Release" test PR.

It's been like that since <IP_ADDRESS>, we haven't noticed as the nightlies build dev. I only noticed from doing the "Release" test PR.

The current mirror sort logic thinks <IP_ADDRESS> is the latest tag, I need to update the logic like we did in sbin/build.sh

The current mirror sort logic thinks <IP_ADDRESS> is the latest tag, I need to update the logic like we did in sbin/build.sh

Excellent - I'll leave it with you then (needed to verify it wasn't something as a result of this week's changes)

Excellent - I'll leave it with you then (needed to verify it wasn't something as a result of this week's changes)

Fixed by: https://github.com/AdoptOpenJDK/openjdk-build/pull/2364

Fixed by: https://github.com/AdoptOpenJDK/openjdk-build/pull/2364


quiet option not working as expected

When using --quiet nodeshift should suppress info and trace logs.
That is not working because common-log.js is getting required before yargs start processing the arguments.

Nice catch,   I feel like I might have changed this for some reason, and didn't realize it broke something.  if you do a git blame i bet you will see my name :)

So I was not able to workaround, but 3 years ago this part of the code was added .env('NODESHIFT'),
https://github.com/nodeshift/nodeshift/blob/master/bin/nodeshift#L72
and when we use NODESHIFT_QUIET=true , yargs  can make use of it to effectively suppress the logs
https://yargs.js.org/docs/

.env([prefix])
Tell yargs to parse environment variables matching the given prefix and apply them to argv as though they were command line arguments.

It seems that something happened over the time...
so IMO we should just remove --quiet from the docs/options
and add a small section "If you want to suppress info and trace logs , use NODESHIFT_QUIET=true
wdyt @lholmquist ?

could you try reverting what i did in this commit, https://github.com/nodeshift/nodeshift/commit/fca4ad8f73f54808e5de504ab865b03a124561f3
I think this might have broken it.   I moved both the cli and log require to the top of the file, instead of requiring them in the cmdHandler function.    Moving them to the top would load both of those files first, before any of the options where parsed, so it might work if those are put back

thanks for the suggestion :+1:


Flaky CryptoSpec

The CryptoSpec is flaky in at least this seed:
  test/Hydra/CryptoSpec.hs:27:5:
  1) Hydra.Crypto.SigningKey can be generated
       Falsified (after 1 test):
         ("","\NUL")
         HydraSigningKey (SignKeyEd25519DSIGN "00000000000000000000000000000000000000000000000000000000000000003b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29") == HydraSigningKey (SignKeyEd25519DSIGN "00000000000000000000000000000000000000000000000000000000000000003b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29")

  To rerun use: --match "/Hydra.Crypto/SigningKey/can be generated/"

Randomized with seed<PHONE_NUMBER>

I think i found the problem:
According to the test description, the property failed for inputs "" and "\NUL"
so the question is: can we generateSigningKey using an empty seed? :thinking_face:
what happens is that:

"" has length 0
"\NUL" means 0
the function generates a signing key by padding the seed with trailing zeros (concatenating a bunch of zeros at the end, aka "\NUL")

thus the function result in the same output for this 2 inputs:

for seed="" if algo requires size of 2 then "\NUL\NUL" (needed to add 2 trailing zeros)
for seed="\NUL" if algo requires size of 2 then "\NUL\NUL" (needed to only add 1 trailing zero)

the short answer for me to this question is no if we want to maintain the pure signature,
else we can add some randomness to the function thus changing the signature to IO.
so my proposal is to fix the flaky test by restricting the empty input arg.
wdyt?

I think i found the problem:
According to the test description, the property failed for inputs "" and "\NUL"
so the question is: can we generateSigningKey using an empty seed? 🤔
what happens is that:

- "" has length 0
- "\NUL" means 0
- the function generates a signing key by padding the seed with trailing zeros (concatenating a bunch of zeros at the end, aka "\NUL")

thus the function result in the same output for this 2 inputs:

- for seed="" if algo requires size of 2 then "\NUL\NUL" (needed to add 2 trailing zeros)
- for seed="\NUL" if algo requires size of 2 then "\NUL\NUL" (needed to only add 1 trailing zero)

the short answer for me to this question is no if we want to maintain the pure signature,
else we can add some randomness to the function thus changing the signature to IO.
so my proposal is to fix the flaky test by restricting the empty input arg.
wdyt?

Another interesting behavior I found about generateSigningKey is that it also returns the same output for seeds exceeding the max size if they are equal up to the exceeding character.
i.e.: if the algo requires a size of 3 then seed="111" will output the same as "111X"
Having that in mind feels tempting to not make this function total on its input but rather partial.

Incorporating the length of the seed into the "actual seed" works.
A more elegant solution, as discussed, would be to use the hash of the seed instead.
Opening PR to move forward with the above approach.


Add LoRa connector example in documentation

LoRa connector documentation can be improved by adding some example code showing how to configure this connector in order to receive LoRa frames (for instance).

Documentation updated.


Add .gts component to typescript smoke test coverage

This is an attempt to illustrate a problem I had doing a v1 -> v2 addon migration for an addon that includes .gts components.
The new test fails with the following output:
prepare: > concurrently 'npm:build:*'
.. prepare: [js] ><EMAIL_ADDRESS>build:js
.. prepare: [js] > rollup --config
.. prepare: [js]
.. prepare: [js]  → dist...
.. prepare: [js] [!] (plugin babel) SyntaxError: /private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/my-addon/src/components/template-import.gts: Unexpected reserved word 'interface'. (7:0)
.. prepare: [js]
.. prepare: [js]    5 | import { action } from '@ember/object';
.. prepare: [js]    6 | import { fn } from '@ember/helper';
.. prepare: [js] >  7 | interface Signature {
.. prepare: [js]      | ^
.. prepare: [js]    8 |     Element: HTMLDivElement;
.. prepare: [js]    9 |     Args: {
.. prepare: [js]   10 |         saying?: string;
.. prepare: [js] src/components/template-import.gts (7:0)
.. prepare: [js]     at instantiate (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/parse-error/credentials.ts:62:21)
.. prepare: [js]     at toParseError (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/parse-error.ts:60:12)
.. prepare: [js]     at Parser.raise (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/tokenizer/index.ts:1487:19)
.. prepare: [js]     at Parser.checkReservedWord (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/parser/expression.ts:2808:12)
.. prepare: [js]     at Parser.parseIdentifierName (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/parser/expression.ts:2769:12)
.. prepare: [js]     at Parser.parseIdentifier (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/parser/expression.ts:2734:23)
.. prepare: [js]     at Parser.parseExprAtom (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/parser/expression.ts:1296:27)
.. prepare: [js]     at Parser.parseExprSubscripts (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/parser/expression.ts:710:23)
.. prepare: [js]     at Parser.parseUpdate (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/parser/expression.ts:687:21)
.. prepare: [js]     at Parser.parseMaybeUnary (/private/var/folders/lf/n0vr44g54f70hr2sh9w5hmq00000gn/T/v2-addon-blueprint--52OYD5/my-addon/node_modules/.pnpm/@babel+parser@7.22.13/node_modules/@babel/parser/src/parser/expression.ts:649:23)
.. prepare: [js]
.. prepare: [js] npm run build:js exited with code 1

The babel config needs:
"presets": [["@babel/preset-typescript", { "allExtensions": true }]],

Personally, I don't think we should bother with @babel/preset-typescript anyway. All it does is add @babel/plugin-transform-typescript, which we could just add directly, avoiding its irrelevant opinions about file extensions.

Thanks @ef4. I made this change and made it a bit further. Here's the new error:
not ok 3 Chrome 116.0 - [43 ms] - Rendering | template-import: it renders
    ---
        stack: >
            ReferenceError: TemplateOnly is not defined
                at Object.scope (webpack://__ember_auto_import__/../my-addon/dist/components/template-import.js?:22:545)
                at meta (http://localhost:7357/assets/vendor.js:38992:86)
                at compilable (http://localhost:7357/assets/vendor.js:40602:51)
                at TemplateImpl.asLayout (http://localhost:7357/assets/vendor.js:41275:28)
                at ConstantsImpl.resolvedComponent (http://localhost:7357/assets/vendor.js:41542:53)
                at resolveComponent (http://localhost:7357/assets/vendor.js:38424:22)
                at encodeOp (http://localhost:7357/assets/vendor.js:40708:18)
                at pushOp (http://localhost:7357/assets/vendor.js:40632:7)
                at http://localhost:7357/assets/vendor.js:40245:7
                at Compilers.compile (http://localhost:7357/assets/vendor.js:38699:7)
        message: >
            global failure: ReferenceError: TemplateOnly is not defined
        negative: >
            false
        browser log: |
            {"type":"error","text":"\n\nError occurred:\n\n- While rendering:\n  -top-level\n    application\n      index\n\n"}
            {"type":"error","text":"\n\nError occurred:\n\n\n\n"}
    ...

My guess is that the import of TemplateOnly is being stripped out as unused, but I'm not sure why or by what.

Diagnosed this as https://github.com/emberjs/babel-plugin-ember-template-compilation/pull/30.
You can avoid the problem by configuring onlyRemoveTypeImports: true on @babel/preset-typescript.
The next issue you'll hit after that is:
RollupError: Could not resolve "./another-gts" from "src/components/template-import.gts"

But that is because relative imports inside a v2 addon should have explicit file extensions (this is consistent with how node treats ES modules). So you need:
-import AnotherGts from './another-gts';
+import AnotherGts from './another-gts.gts';

Note that we don't error on a missing .js extension because rollup does have built-in support for automagically adding that one. But anything else nonstandard like .gts definitely needs an extension.
Also note that:
import TemplateOnly from './template-only';

is working because template-only components are automatically .js files, even when you've only authored the .hbs. You could also have said ./template-only.js. You cannot say ./template-only.hbs because that historically means a different thing (it means the "bare" template itself, not a component that uses that template).

Stuff that needs fixing in the blueprint to close this issue:

[ ] set allExtensions
[ ] set onlyRemoveTypeImports
[ ] see if we can opt rollup into not automatically adding .js extensions to relative imports, because it creates an inconsistent teaching story.

@ef4 I updated the config, added the .gts extension to the import, and verified that tests pass. I did a little research into the rollup .js question and didn't get anywhere. I agree that this is seriously confusing though, and we should figure out a way to have a more consistent story.


Updating _download.py to fix mypy issues - one fixed and one ignored

Summary of changes (Bug fix, feature, docs update, ...)

This is a fix to the two mypy errors around the openghg.util.download_data function.
Fix 1
The response.raw.read method was being patched using functools.partial to set the decode_content flag to be True but this was unecessary as of urllib3 PR 159 as the decode_content flag was now exposed and could be set directly.
"Fix" 2
This was not fixed, just ignored for now. Justification: this involved the interaction between the wrap_file function from the rich package and the output from requests as these didn't quite align. As these are two third party packages this could easily happen and the "BinaryIO" object expected and the "HTTPResponse | Any" object provided are likely to be designed to be similiar (took a quick look at https://rich.readthedocs.io/en/stable/progress.html and https://requests.readthedocs.io/en/latest/user/quickstart/#raw-response-content for instance). Seems reasonable to ignore for now.

Please check if the PR fulfills these requirements

[x] Closes #1115
[x] Tests added and passed if fixing a bug or adding a new feature
[x] All code checks passing - black --line-length 110 run over code, mypy and flake8 not showing any errors
[x] Added an entry in the latest CHANGELOG.md file if fixing a bug or adding a new feature

Not needed

~Documentation and tutorials updated/added~
~Added any new requirements to requirements.txt and recipes/meta.yaml~

Looks good! Setting that parameter seems much more natural than redefining with partial

Agreed


Add dummy shuttle icon and test reading/writing shuttle location

Fixups and testing of logging, which seems to be working with the dummy shuttle which currently just follows the user

good to merge!


Move codecov workflow to workflows folder

codecov.yml is not in a right place. Just move it in .github/workflows to make it run.

Close due to changing the method


Uncatchable exception messages when using slice_input_producer and batch

Hello,
Out of range messages are being thrown by the code below, and they seem to be uncatchable — I even tried enclosing the whole code with try:, except: pass, but the messages are still printed. While they don't really seem to affect the rest of the code, since we are taking the exact amount of examples available, these messages are quite annoying because with a big pipeline they can get really messy and ruin real-time visualization of logs (the number of errors has a relation with the number of threads).
If I try to evaluate an extra epoch, then TF raises an exception I can catch, because this time I tried to evaluate an example I don't have, but this isn't the case here.
Operating System: Debian 4.8.15-2
Installed version of CUDA and cuDNN: CUDA 8, cuDNN 5
python3 -c "import tensorflow; print(tensorflow.version)": 1.0.0
Reproducible example
import tensorflow as tf
import time

num_epochs = 6

a = ([tf.constant(i) for i in range(2)],[tf.constant(i) for i in range(2)])

q1 = tf.train.slice_input_producer(a, num_epochs=num_epochs, shuffle=True, capacity=4)
q2 = tf.train.batch(q1, batch_size=2, num_threads=2, enqueue_many=False, capacity=4, allow_smaller_final_batch=True)

init = [tf.global_variables_initializer(), tf.local_variables_initializer()]
sess = tf.Session()
coord = tf.train.Coordinator()
sess.run(init)
threads = tf.train.start_queue_runners(coord=coord, sess=sess)

test_number = 1
for i in range(num_epochs):
	print('Testing %d' % test_number)
	ignore = sess.run(q2)
	test_number = test_number + 1
	time.sleep(3)
print('Done.')

Output
(...initialization messages...)
Testing 1
W tensorflow/core/framework/op_kernel.cc:993] Out of range: Reached limit of 6
         [[Node: input_producer/input_producer/fraction_of_4_full/limit_epochs/CountUpTo = CountUpTo[T=DT_INT64, _class=["loc:@input_producer/input_producer/fraction_of_4_full/limit_epochs/epochs"], limit=6, _device="/job:localhost/replica:0/task:0/cpu:0"](input_producer/input_producer/fraction_of_4_full/limit_epochs/epochs)]]
Testing 2
Testing 3
Testing 4
W tensorflow/core/framework/op_kernel.cc:993] Out of range: FIFOQueue '_0_input_producer/input_producer/fraction_of_4_full/fraction_of_4_full' is closed and has insufficient elements (requested 1, current size 0)
         [[Node: input_producer/fraction_of_4_full_Dequeue = QueueDequeueV2[component_types=[DT_INT32], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](input_producer/input_producer/fraction_of_4_full/fraction_of_4_full)]]
W tensorflow/core/framework/op_kernel.cc:993] Out of range: FIFOQueue '_0_input_producer/input_producer/fraction_of_4_full/fraction_of_4_full' is closed and has insufficient elements (requested 1, current size 0)
         [[Node: input_producer/fraction_of_4_full_Dequeue = QueueDequeueV2[component_types=[DT_INT32], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](input_producer/input_producer/fraction_of_4_full/fraction_of_4_full)]]
Testing 5
Testing 6
Done.

These messages may vary: on multiple runs of the same code, the first one sometimes isn't printed, and the number of messages after Testing 4 also changes.
The documentation of batch states:

The returned operation is a dequeue operation and will throw tf.errors.OutOfRangeError if the input queue is exhausted. If this operation is feeding another input queue, its queue runner will catch this exception, however, if this operation is used in your main thread you are responsible for catching this yourself.

However, no further instruction is given. And since a try: except: didn't work, I'm guessing this is a bug. Could anyone clarify this behavior?
Thanks in advance.

Complementary information: These messages are being thrown by the threads created with start_queue_runners, that is why they aren't linked to the main program and cannot be catched/traced. There seems to be no parameter of start_queue_runners to treat this. There are a few options I can think of in order to contour the problem, but they are waaaaaaaay too hacky — like manually creating threads to feed the queues or intercept the threads created by TF before they start running and encapsulate them.

@mrry, could you please take a look?

I had the same uncatchable error with tf.train.string_input_producer.
It was solved when I set num_epochs to None.
But I am not yet sure that this change is correct from an application perspective and I don't have an explanation of why it solved the uncatchable exception.

@ymrabet that is not the solution. :-)
Setting num_epochs to None makes the threads continuously feed the queue, without ever stopping. This way, the queue never gets emptied and the problem doesn't happen.
However, in some situations it is desirable to precisely control the number of epochs, specially when shuffle is enabled, to ensure every sample was seen N times; and in these situations the uncatchable exception messages occur. It won't actually pose big problems, since it's just a message being printed, but it seems to be impossible to block the printing of it (except with some hacky solution like setting high log levels throughout the application, and losing all important logs of tensorflow).

@MicaelCarvalho Thanks for the explanation :-)
How can we be sure that it's only a display issue with no other impact?

@ymrabet the problem happens because slice_input_producer only generates the specified number of epochs of input, while batch has no parameter to control the number of epochs, therefore it "runs forever".
Internally, batch creates threads to feed an input queue, from which batches are taken. These threads keep pulling samples from the input tensor indefinitely. The problem occurs when they try to pull a sample and slice_input_producer has finished its job (i.e. there are no samples left, slice_input_producer's pool is empty).
The exception is then uncatchable and intractable because it is raised inside each of these threads, when they try to get a new sample and there is none left. Each thread, after raising the exception, has no predefined way of treating it (and that's the problem), so it goes all the way up to the interpreter, which by default prints the exception and kills "the program". Since each thread is individually handled, "the program" means "the thread"; so the thread gets terminated and the error message printed.
That being said, the number of messages one sees matches exactly the number of threads created by batch, because it is only printed when a thread dies. It has no other impact because each thread dies individually, without affecting the main program, and the expected behavior in this case would be closing the threads, which is happening anyway because of the exception.

We're replacing Queues with tf.contrib.datasets in the near future. This should take care of weaknesses such as this.
I'm closing this issue, thanks @MicaelCarvalho for the great explanations!


CI: Update GHA recipes and Go versions

Hi there,
this patch updates to the most recent stable versions of the GHA recipes used, and also bumps the Go version to 1.18/1.19.
With kind regards,
Andreas.

Does it make sense to update the go version in go.mod accordingly to 1.18?
https://github.com/crate/cratedb-prometheus-adapter/blob/da93d9f49f43a5004bbbde33e619e92064a34cd9/go.mod#L3

Does it make sense to update the go version in go.mod accordingly to 1.18?

I was not sure about this one, and wanted to check CI beforehand. If you think it would be appropriate, I can update it. Thanks.

Updated with 9c5a0eab5, and a few other adjustments.


Wish for implementation using and storing a -.tflite model

Tensor Flow has some popular already trained models, that would be nice to use in a dot.net.core.
For example the PoseNet Model (https://github.com/tensorflow/tfjs-models/tree/master/posenet). If I want to use the model now I could do the following:

With NPM jou can make use of the models using Type Script
With an internet connection, you could add a js script
Load and run a -.tflite model in C++(https://www.tensorflow.org/lite/guide/inference#load_and_run_a_model_in_c)

Working in c# and .Net.core and Blazor client site works the second way more ore less. But you have to write some .js and you have to rely on an internet connection. It would be really great to just add the model to your source and load a -.tflite model directly into your library. Making the application true Dot.net.
Besides that, I guess ex and importing your models into a  .tflite file format would be a great way to share models between software developers that are just working on an implementation off your math they cant alter/break your models etc.
Martijn Carol

Related issue: https://github.com/SciSharp/TensorFlow.NET/issues/376


Compatible with vim-plug?

I'm still using vim-plug and this color scheme just stopped working. I did TSInstall, TSUpdate and all that stuff but my source files are now two colored (only strings are highlighted).
I don't know what's going on.

With set termguicolors I get usable syntax highlighting again, but my beloved Solarized colors are gone. The colorscheme looks very different now.

With set termguicolors I get usable syntax highlighting again, but my beloved Solarized colors are gone. The colorscheme looks very different now.

A few quick questions:

Do you use Treesitter?
Is highlight enabled in your Treesitter config?

If you're using Treesitter, make sure your config has highlights enabled like this:
require('nvim-treesitter.configs').setup {
        highlight = {
          enable = true,
          additional_vim_regex_highlighting = false,
        },
      }

After Solarized v3.3.0, Solarized now offers more variants:
require('solarized').setup {
  variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
}

some examples: variants
If you're not using Treesitter, then solarized.nvim might not be the best fit for you.
Here are some alternatives that I recommend:

NeoSolarized
solarized8

In your Neovim configuration, place treesitter.vim inside the after/plugin folder.
treesitter.vim
lua << EOF
local ok, treesitter = pcall(require, 'nvim-treesitter.configs')

 if not ok then
    return
 end

 treesitter.setup {
   auto_install = true,
   sync_install = false,
   ensure_installed = 'all',
   highlight = {
    enable = true,
    additional_vim_regex_highlighting = false,
   },
 }
EOF

Thanks for the help. That didn't quite work for me, but it helped me anyway. What was missing in my init.vim was:
lua require('nvim-treesitter.configs').setup{highlight={enable=true}}

And in my init.lua, I have:
vim.o.termguicolors = true
vim.o.background = 'dark'
require('solarized').setup {
  variant = 'autumn',
}
vim.cmd.colorscheme 'solarized'

This looks pretty good. Thanks a lot.


Colab implementation

Thanks for creating the notebooks!
I was interested in trying out the examples with an easy access to GPU. Are there plans to support Colab-friendly notebooks?
I put up a small example using the PBMC dataset here (this one being a small dataset is probably not the best to demonstrate the advantages of a GPU implementation though): https://colab.research.google.com/drive/1yHzkDfpqHOlX8jA3DqFTQNFyeubrt-YD?usp=sharing

I'm also interested in trying out the single cell clustering examples on Google Colab including the examples show here https://developer.nvidia.com/blog/accelerating-single-cell-genomic-analysis-using-rapids/
@saketkc I'm seeing an error with you Colab notebook
********************************************************************************************************

Enjoy using RAPIDS!  If you have any issues with or suggestions for RAPIDSAI on Colab, please create a issue on https://github.com/rapidsai/rapidsai-csp-utils/issues/new.
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
[<ipython-input-3-f8691e4eb843>](https://localhost:8080/#) in <module>()
      4 import sys, os
      5
----> 6 dist_package_index = sys.path.index('/usr/local/lib/python3.6/dist-packages')
      7 sys.path = sys.path[:dist_package_index] + ['/usr/local/lib/python3.6/site-packages'] + sys.path[dist_package_index:]
      8 sys.path

ValueError: '/usr/local/lib/python3.6/dist-packages' is not in list

@cornhundred  - I think Colab now uses Python 3.7 by default so it should hopefully work if you replace 3.6 by 3.7 - though I haven't tested if the above approach still works.


Peer review: Do not ask to review categories if there are none

If a picture has no category, then we already know the answer: The picture is not well-categorized.
In such cases, we could skip that step.
Even if some bots routinely flag all non-categorized pictures, our mobile peer-review still makes sense for other aspects of the pictures (encyclopedic or not, relevant categories or not, etc).

when i don't enter any category, there are still some default categories entered by backend server. For example: Uploaded with mobile and many such default categories are always there, Is there a way we can identify the default categories?

Excellent question!
These are called "Hidden categories", for instance for https://commons.wikimedia.org/wiki/File:Arenal_d'en_Castell.jpg :

A hidden category can be recognized by the __HIDDENCAT__ line when editing it, for instance you can see it at https://commons.wikimedia.org/w/index.php?title=Category:Uploaded_with_Mobile/Android&action=edit
So, the app would have to make a web request (get wikitext, rather than edit) for each category to check whether it is hidden or not.
I suggest creating a cache to store the names of hidden categories.

@nicolas-raoul got it 👍🏿 . I would like to work on this one

@VojtechDostal @sivaraam By any chance do you know any easier way (I mean easier than my comment above) to check whether a given picture has any non-hidden category?

@nicolas-raoul i was going through documentation of API and found an easy way. I can simply pass a query parameter prop=categories and another parameter clprop=hidden. This will give me all the properties associated with that file and also give me whether it is hidden or not. see this example
https://commons.wikimedia.org/w/api.php?action=query&format=json&formatversion=2&clprop=hidden&prop=categories&titles=File:Arenal_d'en_Castell.jpg
However after testing on beta version, I found that,  it is returning all the categories as not hidden.
so I think currently in Beta version there are no hidden categories on backend server. But this should work with production

@devarsh-mavani-19 Sounds promising! Feel free to test on production, if you are unsure just answer "Yes" at the questions, there will be no harm to production.


Remove underline style from folder note folders?

I'd just love to be able to remove the underline.  Most of the styles I use make it a very thick underline and hard to read.

注释掉这段即可 @deanord


Highlight whether the Recycle Bin is empty or not.

What's the Problem?
To know if the Recycle Bin is empty or not, you have to open it, or open its contextual menu.
Solution/Idea
You can add information about the item from the Recycle Bin to favorites. This can be done in many ways: different icon, bold text, number of items in parentheses when there are any, or any different style.
Alternatives
None
Priorities

Capability
Priority

This proposal will allow developers to accomplish W
Must

This proposal will allow end users to accomplish X
Should

This proposal will allow developers to accomplish Y
Could

This proposal will allow end users to accomplish Z
Won't

Files Version
No response
Windows Version
No response
Comments
No response

Thank you for your feedback, we're currently tracking this in #1089. Keeping this open as well.

@yaichenbaum has this been superseded by #1089 or is it still open for pull requests? To keep things clean just thinking making it bold under the favorites when theres items in the recycle bin, adding the number of items in parenthesis would look out of place

#1089 is just to group these issues together, the proper solution is to use different icons to highlight the status.

Understood, so changing the text or text weight is not the recommended approach?

Correct

Is anybody working on this issue? If not, would be glad to solve it.

This issue if free as far as I know, feel free to look into it!

Appreciate the update @QuaintMako

Merging with #9946


TypeScript error for steps and PlainColorObject

I discovered this error while using Color.steps.
If you paste the following into the playground on colorjs.io (without Typescript) it functions as I'd expect:
let color = new Color("p3", [0, 1, 0]);
color.steps("red", {
    space: "lch",
    outputSpace: "srgb",
    maxDeltaE: 3, // max deltaE between consecutive steps (optional)
    steps: 10 // min number of steps
}).map(step => step.toString({format: 'hex'}));

I get an array of hex codes of all the steps.
When I paste this into my Typescript project, I get the error This expression is not callable. Type 'never' has no call signatures. and shows (property) Color.steps: never
Additionally, if I try to make steps out of a range, I do the following:
const color = new Color("p3", [0, 1, 0]);
const color2 = new Color("red");
const range = color.range(color2, {space: "lch",
outputSpace: "srgb",})
Color.steps(range, {
    maxDeltaE: 3, // max deltaE between consecutive steps (optional)
    steps: 10 // min number of steps
}).map(step => step.to("srgb").toString({format: 'hex'}));

I get an error Property 'to' does not exist on type 'PlainColor'Object'.
My workaround has been to do Color.steps(range, {...}).map(step => new Color(step).....)

For the error on Color#steps, it looks like it's a problem with how I wrote the function overload.
https://github.com/LeaVerou/color.js/blob/2bd19b0a913da3f3310b9d8c1daa859ceb123c37/types/src/interpolation.d.ts#L51-L52
TypeScript seems to prioritize the last signature of overloads when you try to get a function's type, so the line to convert it to a class method for Color causes problems (since it doesn't see Color as the first parameter and just comes up with never instead of a function):
https://github.com/LeaVerou/color.js/blob/2bd19b0a913da3f3310b9d8c1daa859ceb123c37/types/src/index.d.ts#L72
As for the Property 'to' does not exist on type 'PlainColorObject' problem, it looks like the return type for steps was accidentally changed from the actual Color class to a simpler interface.
I'm working on a PR to fix the problems now 😄

Hi there, any temp fixes while this hits the npm repository? I'm a bit stuck on that type issue and would love a cleanish workaround :)

Hi there, any temp fixes while this hits the npm repository? I'm a bit stuck on that type issue and would love a cleanish workaround 😄

I did mention a workaround at the bottom of my original post

There are other fixes (e.g. #332) that are also preventing me from using Color.js until a new release. @LeaVerou Do you have an anticipated schedule for a new release?

@jgerigmeyer There are no blockers, it's just a matter of finding the time to do it. Any chance you may be willing? 🙏🏼


Convert StdMaterialManager to an asset manager

Right now it has a component interface, which is not ideal.
Materials are treated as assets and can have a simplified accessing interface.

Made redundant and replaced by #19


Add option to enforce fragment execution with side effects in MSL

Fixes #2322
Metal will incorrectly discard fragments with side effects under certain circumstances prematurely. The conditions are the following:

Fragment will always be discarded after side effect operation
Pre fragment depth fails
Modifies depth value for a constant value in the fragment shader. This constant value will also fail the depth test.

However, Metal will also discard the fragment even if it has operations with side effects inside the fragment shader before the discard operation.
Vulkan states the graphics pipeline to execute in the following order:

Pre fragment depth test (cannot discard here due to modifying depth value in fragment shader)
Fragment shader (where the depth is modified and fragment discarded)
Post fragment depth test

Therefore, we need to enforce fragment shader execution and not let Metal discard the fragment before that for such cases. This change adds an option to provide such utility.

Merged to master.

Super cursed that we have to add a million workarounds for their broken shader compiler though ._.


Rebase dev/k8s-deviceid-model against master branch

new pr: https://github.com/intel/multus-cni/pull/141


[$500] Private notes - Hmm its not here page displayed when clicking on thumbnail

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.56-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Issue found when executing PR https://github.com/Expensify/App/pull/37566
Action Performed:

Navigate to any report
Click on header > Private notes
Add markdown image to private notes: holla
Click on 'Private notes'
Click on the image

Expected Result:

Image should be opened in the carousel
Or, image shouldn’t be rendered in private notes

Actual Result:

Hmm its not here page is displayed.
And markdown images are rendered in Private notes

Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/babb6b39-c2f7-4739-a88c-dd90e35844e2
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01c6ef0c33505c63ef
Upwork Job ID:<PHONE_NUMBER>185703936
Last Price Increase: 2024-03-23
Automatic offers:

shubham1206agra | Reviewer | 0

@chiragsalian  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Don't think this is blocker since markdown image is new feature and still WIP of polish
cc: @kidroca

Yup, I agree too. This does not feel blocker-worthy since it's a new feature. A simple resolution would be to revert the feature here - https://github.com/Expensify/App/pull/37566 but I would prefer if move forward and tidy up this bug.

edge case that I wouldn't consider much of a blocker, but what I would recommend is that it opens an attachment carousel that only includes attachments in the private notes message.

in my opinion the value of inline images way outweighs the downside of this bug, so I wouldn't want to see us revert that because of this

Proposal
Please re-state the problem that we are trying to solve in this issue.

Private notes - Hmm its not here page displayed when clicking on thumbnail

What is the root cause of that problem?

We use ImageRenderer to display image
When clicking on an image to open the attachment modal, onPress is called, it works well with report attachments. But in case of private note, the not here page is displayed

What changes do you think we should make in order to solve the problem?

We need to create a new attachment page to display image for other images that do not belong to report.

Create a CommonAttachments page:

function CommonAttachments({route}: ReportAttachmentsProps) {
    const source = Number(route.params.source) || route.params.source;
    const imageSource = tryResolveUrlFromApiRoot(source);
    return (
        <AttachmentModal
            allowDownload
            defaultOpen
            source={imageSource}
            onModalClose={() => {
                Navigation.goBack();
            }}
            onModalHide={() => {
                Navigation.dismissModal();
                // This enables Composer refocus when the attachments modal is closed by the browser navigation
                ComposerFocusManager.setReadyToFocus();
            }}

        />
    );
}

In here, add:

    ATTACHMENTS: 'attachments',

In here, add:

    ATTACHMENTS: {
        route: '/attachment',
        getRoute: (source: string) => `attachment?source=${source}` as const
    }

In here, add:

                 <RootStack.Screen
                    name={SCREENS.ATTACHMENTS}
                    options={{
                        headerShown: false,
                        presentation: 'transparentModal',
                    }}
                    getComponent={loadCommonAttachments}
                    listeners={modalScreenListeners}
                />

In here, add:

        [SCREENS.ATTACHMENTS]: ROUTES.ATTACHMENTS.route,

Update this to:

                    onPress={() => {
                       if(report?.reportID){
                        const route = ROUTES.REPORT_ATTACHMENTS.getRoute(report?.reportID ?? '', source);
                        Navigation.navigate(route);
                       }
                       else {
                        const route = ROUTES.ATTACHMENTS.getRoute(source)
                        Navigation.navigate(route)
                       }
                    }}

What alternative solutions did you explore? (Optional)

NA

Switching to daily as not deemed a blocker

When viewing attachments in a chat, we can easily navigate between them through the attachment modal. However, for notes with multiple images, it seems we have to close and reopen the modal for each image. The presence of both attachments and chat-attachments could lead to confusion. A generic component like the ImageRenderer would require additional logic to differentiate between them, increasing the dependency on specific details. Wouldn't it be more efficient to consolidate them into a single route, either attachments or chat-attachments, and use parameters (source, reportID, noteID) to:

Display a single image if only source is provided.
Show report attachments and begin from the source when reportID is available.
Display note attachments if noteID is specified.

This approach could simplify the process and reduce complexity.

I agree with @kidroca - it sounds like a good way to DRY things up and simplify.

Just catching up here too and I like @kidroca's suggestion as well.

What I am concerned is that, with other inputs like, task title, task description, ... we can also use image markdown. So what does the route look like?

I am unsure who if anyone uses private notes especially for images which is causing me pause with regards to which wave or VIP this fits under. This seems super low priority to me

I think its VIP-vsb right, same as the issue that created this bug - this one. Even if its rare since our product support inline images i feel like we should solve this bug. Because now a user can add an image to notes and if we don't fix this then whenever they click on the image they'll get an error screen.
I feel like we should solve this.
I feel like we should build a solution to support clicking markdown images besides for just notes. Like maybe even for an expense description and other spots if needed.
We could discuss in #product if we would prefer to disable clicking images or image markdown anywhere besides on chats. But if we have them then i think allowing them to be clickable might be the better user experience.

@chiragsalian With this suggestion, what will the route look like? Currently, the report attachment has route: r/:reportID/attachment?source={source}

From kidroca suggestion i think the idea is to modify REPORT_ATTACHMENTS (code) into something more generic like ATTACHMENTS.
As for how the route will look. I'm unsure, maybe something like this,
ATTACHMENTS: {
    route: 'a/:ID/attachment',
    getRoute: (ID: string, source: string, sourceURL: string) => `r/${ID}/attachment?source=${source}&sourceURL=${encodeURIComponent(sourceURL)}` as const,
},

ID could be reportID, noteID, reportActionID (for expense description)
source could be 'report', 'note', 'reportActionID' etc so that the attachment component would know what logic to fall into.
sourceURL is the image URL
@kidroca, since you are more aware of this can you double-check and lend us your thoughts.

I think its VIP-vsb right, same as the issue that created this bug - https://github.com/Expensify/App/issues/37246.

Good shout! Thanks for the buddy check

We could discuss in #product if we would prefer to disable clicking images or image markdown anywhere besides on chats. But if we have them then i think allowing them to be clickable might be the better user experience.

That sounds like a great next step to me! Are you planning to post or should I grab?

Can you post and ask @MitchExpensify

I am still waiting for final decision before creating PR

Brought to Slack here, will report back https://expensify.slack.com/archives/C066HJM2CAZ/p1711833001511819

Would expense comments with markdown images break exports @chiragsalian ?

So hold on this is what you are thinking @chiragsalian ? HIGH: [Polish] Add support for image-only (no alt text) inline image Markdown

Would expense comments with markdown images break exports @chiragsalian ?

No clue, do you mean would it break export like pdf export?
If so then no I don't think so exactly. I'm pretty sure markdown images gets converted to regular attachments in the database. So for export functionality like pdf export, once implemented it loads in the image URLs from the database so if it has issues displaying inline images it will have issues with attachments too. Both of which would be handled in a separate issue specific to export IMO.

So hold on this is what you are..

No not exactly, that issue is about removing the need for alt text in inline image.
This would be the issue to HOLD on - https://github.com/Expensify/App/issues/39275

@kidroca, since you are more aware of this can you double-check and lend us your thoughts.

Apologies for the delayed response. Your understanding was close; here's the precise implementation I had in mind:
ATTACHMENTS: {
    route: '/attachment(s)',
    getRoute: (id, type, url) =>
        `/attachments?type=${type}&uri=${encodeURIComponent(url)}${id ? `&id=${id}` : ''}`,
},

Here's a quick breakdown:

The id parameter is optional, which is why I decided against using /attachments/:id. It could refer to various IDs like report, comment, or note ID, allowing us to include attachments only for the given item.
The type parameter is intended to be an enum, indicating the attachment's context, such as a report, report action, note, or a single attachment:enum AttachmentType {
   Report = 'r',
   ReportAction = 'a',
   Note = 'n',
   Single = 's',
}

The uri parameter is the source link. I'm currently exploring options to either eliminate or shorten the uri, as it tends to fill the address bar with a lengthy string. Moreover, if it becomes excessively long, we may encounter limitations. However, this should not block the current issue and can be addressed later.

Consider the above a working draft that can be further tailored to suit our needs. For example, the type parameter can be optional, its absence meaning we're dealing with a single attachment.

What is the latest on our proposals here?

Friendly bump @shubham1206agra

I see that this issue is hold on #39275

Issue is off hold

i would say that we should display the note's attachment in a carousel. Such that if there are multiple attachments they can easily navigate between them in the carousel.

How is the PR coming along @nkdengineer ?

I am working on it. The draft PR is here

@shubham1206agra PR https://github.com/Expensify/App/pull/40844 is ready

@shubham1206agra how is the PR review coming along? https://github.com/Expensify/App/pull/40844

Payment summary:

$500 @shubham1206agra requires payment automatic offer (Reviewer)
$500  @nkdengineer requires payment (Needs manual offer from BZ)

paid and contract ended, @shubham1206agra 🙇

Am I missing something here. Why the payout is decreased here?

I saw the Upwork job created a $250 amount automatically so I was basing it off that. I will update if $500 is correct

I think I got my wires crossed with this similar looking job on Upwork: https://www.upwork.com/nx/wm/workroom/37532304/details
Sorry about that @shubham1206agra !

Paid and contract ended, thanks! Do we need BZ steps here?

@MitchExpensify anything pending here or can we close this out.

Sorry @MitchExpensify It seems I wasn't paid here, could you please reopen the issue to help with this?
TIA

Oh weird, it looks like the automation flagged you as due to be paid via New Expensify so I thought we were all done:

@nkdengineer requires payment (Needs manual offer from BZ)

Here's a new offer to resolve this https://www.upwork.com/nx/wm/offer/102961478

Paid and contract ended, thanks for the catch @nkdengineer


⚠ Bofrost.at has degraded performance

In cf031f0, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2821 ms

Resolved: Bofrost.at performance has improved in fe66ee9 after 7 minutes.


front page Image update

Make the main page image smaller, change to a jpeg <50kB

@eriknewland  please to review! thank you !


Importing PyKinectV2 throws ImportError("Wrong version")

When I try to import PyKinectV2 from pykinect2, it comes back with this:
Traceback (most recent call last):
  File "[Censored bc it includes my name]\PyCharm\Projects\PyKinectTest\test.py", line 1, in <module>
    from pykinect2 import PyKinectV2
  File "[Censored bc it includes my name]\PyCharm\Projects\PyKinectTest\venv\lib\site-packages\pykinect2\PyKinectV2.py", line 2868, in <module>
    from comtypes import _check_version; _check_version('')
  File "[Censored bc it includes my name]\PyCharm\Projects\PyKinectTest\venv\lib\site-packages\comtypes\__init__.py", line 29, in _check_version
    raise ImportError("Wrong version")
ImportError: Wrong version

Try this solution to see if it fixes it:
https://github.com/Kinect/PyKinect2/issues/37

@KonstantinosAng It does not.

You can always go to venv\lib\site-packages\comtypes_init_.py in line 29 and delete the if statement to see if it works.

@vitrack
I had the same issue,
it appears to be an issue with the comtypes version
try:
pip install comtypes==1.1.4
Hope it helps

i have also  met the problem. after try #37 the problem still exist. but i find that reboot solve my probelm.

@vitrack I had the same issue,
it appears to be an issue with the comtypes version
try: pip install comtypes==1.1.4
Hope it helps

It works!


fix(Puppeteer): simplify switchTo iframe by selector

switchTo did not work as expected in some situations, because the lookup code did not consider every possibility. However, given a ElementHandle, the corresponding frame can be fetched directly using Puppeteer API. This allows to remove a lot of code and should still work as expected.
I tried to add failing tests, but could not come up with a minimal example. I'll try a little harder to come up with something, but wanted to get this PR out of the door.
Fixes: #1439

At least in my test base, this change actually broke something else, which did work before. Needs investigation if this is related.

Thanks, I think Puppeteer API evolved since the time we wrote that implementation

I tried to add failing tests, but could not come up with a minimal example. I'll try a little harder to come up with something, but wanted to get this PR out of the door.

According to issue a minimal example would be an iframe without id. Did you try this?


bug fix: dynamic timeout config does not work

Pull Request Test Coverage Report for Build 1628

1 of 59 (1.69%)  changed or added relevant lines in 4 files are covered.
26 unchanged lines in 7 files lost coverage.
Overall coverage decreased (-0.05%) to 63.234%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

client/rest/rest_client.go
0
7
0.0%

client/grpc/grpc.go
0
25
0.0%

core/client/client_manager.go
0
26
0.0%

Files with Coverage Reduction
New Missed Lines
%

core/invoker.go
2
50.0%

session/session_manager.go
2
64.93%

core/router/cse/router_manager.go
2
72.73%

core/config/fault_injection_config.go
3
0.0%

client/grpc/grpc.go
3
13.56%

core/handler/loadbalance_handler.go
3
36.89%

metrics/metrics_collector.go
11
73.42%

Totals

Change from base Build 1627:
-0.05%

Covered Lines:
5459

Relevant Lines:
8633

💛  - Coveralls

Client reload procesure MUST use lock in client manager so write your code in client manager


Can't create virtualenv from system python

I'm unable to create a virtualenv from system installation, I'm trying to use the -p option as I've seen it being used elsewhere for that although I dunno where to get proper docs for this, it worked before but now it stopped working for quite some time already.
❯❯❯ pyenv virtualenv -p /usr/local/bin/python foo
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /usr/local/lib/python2.7/site-packages
/usr/local/Cellar/pyenv/HEAD/libexec/pyenv-exec: /usr/local/bin/virtualenv: /usr/local/opt/python3/bin/python3.4: bad interpreter: No such file or directory
/usr/local/Cellar/pyenv/HEAD/libexec/pyenv-exec: line 47: /usr/local/bin/virtualenv: Undefined error: 0
Installing pip from https://bootstrap.pypa.io/get-pip.py...
pyenv: version `foo' is not installed
error: failed to install pip via get-pip.py

pyenv virtualenv -p /usr/local/bin/python foo tries to install packages locally instead of creating a virtualenv.

Well, for some reason using pyenv virtualenv -p /usr/local/bin/python2.7 foo works.

You might want to check out pyenv-virtualenv.


Automatically differentiate Pallas kernel failed

Description
Pallas doc claims automatic differentiation of pallas kernel work but is slower. However, when tested on tpu, AssertionError is raised. Tested with simple add kernel. ( Reference: https://jax.readthedocs.io/en/latest/pallas/design.html#grad-of-pallas-call
Tested with kaggle tpu & trc (both v3-8), both showed same result.
Traceback (most recent call last):
  File "/kaggle/working/pallas_bug_test.py", line 26, in <module>
    pallas_grad_output=grad_pallas_call(x,y)
  File "/usr/local/lib/python3.10/site-packages/jax/_src/traceback_util.py", line 179, in reraise_with_filtered_traceback
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/jax/_src/api.py", line 621, in grad_f
    _, g = value_and_grad_f(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/jax/_src/traceback_util.py", line 179, in reraise_with_filtered_traceback
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/jax/_src/api.py", line 691, in value_and_grad_f
    ans, vjp_py = _vjp(f_partial, *dyn_args)
  File "/usr/local/lib/python3.10/site-packages/jax/_src/api.py", line 2176, in _vjp
    out_primals, vjp = ad.vjp(flat_fun, primals_flat)
  File "/usr/local/lib/python3.10/site-packages/jax/_src/interpreters/ad.py", line 143, in vjp
    out_primals, pvals, jaxpr, consts = linearize(traceable, *primals)
  File "/usr/local/lib/python3.10/site-packages/jax/_src/interpreters/ad.py", line 134, in linearize
    assert all(out_primal_pval.is_known() for out_primal_pval in out_primals_pvals)
AssertionError

Code to reproduce error:
import jax
from jax.experimental import pallas as pl
import jax.numpy as jnp

def add_vectors_kernel(x_ref, y_ref, o_ref):
    x, y = x_ref[...], y_ref[...]
    o_ref[...] = x + y
def pallas_call(x,y):
    return pl.pallas_call(add_vectors_kernel,
                          out_shape=jax.ShapeDtypeStruct(x.shape, x.dtype)
                         )(x, y)

grad_pallas_call = jax.grad(pallas_call)

x=jax.random.normal(jax.random.key(0), (1024, 1024))
y=jax.random.normal(jax.random.key(0), (1024, 1024))
pallas_output=pallas_call(x,y)
print(pallas_output.sum())
pallas_grad_output=grad_pallas_call(x,y)

System info (python version, jaxlib version, accelerator, etc.)
TPU V3
jax-0.4.30 jaxlib-0.4.30 libtpu-nightly-0.1.dev20240617
jax:    0.4.30
jaxlib: 0.4.30
numpy:  1.26.4
python: 3.10.13 (main, Mar 12 2024, 12:16:25) [GCC 12.2.0]

Thanks @Lime-Cakes, this looks like a bug indeed.

Thanks @Lime-Cakes, this looks like a bug indeed.

Any possible workaround atm besides writing backward kernel too or best to just wait for bugfix?

I think you probably want to write a backwards kernel anyway, because the automatically derived one (even if we fixed the assertion) is guaranteed to be inefficient.

Having a slow and correct one makes it easier to write the backwards pass, since I'll have a correct kernel to test my backwards pass impl against. It'd be quite useful to have


WithEndpointPrefix breaks the UI

What happens?
The UI doesn't load when the EndpointPrefix is customized
    app.MapScalarApiReference(options => options
            .WithTitle("Mellow API")
            .WithEndpointPrefix("/api/{documentName}/docs")  // 👈 This line is causing the problem
            .WithDefaultHttpClient(ScalarTarget.CSharp, ScalarClient.HttpClient)
            .WithOAuth2Authentication(options =>
            {
                options.ClientId = "<client_id>";
                options.Scopes = ["openid", "profile", "email"];
            })
        )
        .AllowAnonymous();

What did you expect to happen?
The UI should've loaded without any errors. If I remove the WithEndpointPrefix it works fine.
OpenAPI Document
No response

Hey @prashanth-nani,
Thank you for the report. This behavior was introduced in https://github.com/scalar/scalar/pull/3833 to make the UI ready to work with sub paths.
As the name of the property indicates, the value should be treated as a prefix for the endpoint. Otherwise, it will cause conflicts with relative/absolute URLs in the browser.
Would this be a must have or a nice to have feature? I'm considering creating an issue to write down all the requirements for the next version of the Scalar.AspNetCore package.

Hey @xC0dex, thanks for the clarification. I understand that the current behavior was introduced to make the UI work with sub paths. However, it would be nice to have the flexibility to map the documentation to any endpoint.

Thanks for the feedback. I'll let you know when I create the issue.


iOS 14 break CubeLayout

Xcode 12, iOS 14.
iOS 12 - everything is fine

Same here, it's breaking with the new update. Any updates on this, or any workaround?

Hey guys, thanks for reporting. I'll have a look this weekend. Should be an easy fix!

Hi Kelvin. If you need help testing this, or figuring out why, let us now so we can help you. I could find right now why this happens!
Also, just to confirm. It seems to work okey on iOS 12, the problem seems to be Xcode, not iOS.
thanks!

@97mik @lautarodelosheros @eaceto Hey guys, version 1.1.0 is now released. It should fix this issue on iOS 14. Let me know if it works for you guys!

@KelvinJin it works for me, thanks!

It is still broken for me, building with Xcode 11.7 and running on iOS 13

@eaceto Hey, I just tested the Example project with Xcode 11 and iOS 13 simulator. The cube animator is working correctly for me. My understanding of this issue is it's only introduced by iOS 14 UIKit changes. Previous iOS versions should be fine. Do you want to create a new issue regarding your particular problem? Be aware that Cube animator changes the transform/anchorpoint of the cell's contentView so make sure you avoid changing these two properties yourself.

@eaceto https://github.com/KelvinJin/AnimatedCollectionViewLayout/issues/61 Now I understand why I couldn't reproduce your issue. Have a look at the other issue ticket.

I fixed it. Could I send a MR?