Add ability to create and mint tokens through telegram bot

Telegram bot architecture:

Must support TWA (telegram web application)
Should be deployed on vercel and use serverless function (DM @anstill for vercel credentials)

https://github.com/m7mark/telegram-bot-vercel-boilerplate
Functionality:

Should save Links to created collections in the chat.
Should support opening links to the collection in the bot

Flow:

Open Bot
Show Description and Let the User Know how to start the Bot
Start Bot
Show Button/Menu to open Pixel inside TWA
Open Pixel  inside TWA
Normal creation flow: Create Edition -> Fill fields -> Create -> Redirect Edition Page
Bot Should sent link to created Edition to the chat after creation

Also, User should be able to Mint Edition through the bot.
Future Implementation:

[ ] #42

Ready but needs wallet task to be completed in order to work properly

@kazeens Do you need separate repo for this?

Create 314xl-backend repo for bots and pixel backend

Close the issue
Cause primary task is done
It is going to work once wallet part is completed


[REQ] Change follower count to millions.

Describe the problem that needs solving
The followers number are too big sometimes for big twitter profile accounts.
Describe the solution you'd like
Instead of having the whole follower count, shrink it down to millions.
e. g 1000000 becomes 1M.

Should be included in the latest CI release


How to prevent copy/paste/cut context menu when right click on textfield

as this link says.I want to prevent copy/paste/cut context menu when right click on textfield on desktop platfrom.i try to provied a EmptyTextToolbar to LocalTextToolbar it's does't work

https://stackoverflow.com/a/76550780/22128385
emm, i find a solution.it's recommended practice?
Please help me improve it, or close this issue

Hello @ning-drift, thank you for your question!
The solution that you provided is good! You can see the documentation regarding this topic here: https://github.com/JetBrains/compose-multiplatform/blob/master/tutorials/Context_Menu/README.md#custom-text-context-menu

yeah documentation it‘s clear.I missed them, the description about reuse the original TextContextMenu misled me

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Quickstart script

A Quickstart setup script that can be curl-ed and piped to bash:

Verifies client has all required binaries and working versions installed
Prompts user for AWS credentials, root domain, hosted zone ID, etc.
Follows similar (stripped down) steps to the existing local-setup.sh script, but remotely builds kustomize directories and remotely sources utils scripts

@laurafitzgerald and I have been chatting about possible next steps for this and how it may work on the website, including the idea of allowing different users types (admins, developers, system architects) the flexibility to either automate next steps using additional one-liners, or walk through the steps manually in a linked guide, e.g:

Next steps: Follow this guide to learn how to create a gateway or automate gateway creation and continue to learn how to deploy an application by running the following command...

how do I try it? what is the command to run?

how do I try it? what is the command to run?

For now, you can run it with the following:
curl https://raw.githubusercontent.com/laurafitzgerald/multicluster-gateway-controller/quickstart-script/hack/quickstart-setup.sh | bash

Nice!
curl https://raw.githubusercontent.com/laurafitzgerald/multicluster-gateway-controller/quickstart-script/hack/quickstart-setup.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13300  100 13300    0     0   112k      0 --:--:-- --:--:-- --:--:--  118k
Verifying that pre-requisite binaries are present on the system.
Error: kustomize version 4.5.4 or greater is required, but found 4.5.4. Please review the pre-requisite binary versions in the documentation against your local version of customize

Something seems to be up with one of the pre-req checks

Nice!
curl https://raw.githubusercontent.com/laurafitzgerald/multicluster-gateway-controller/quickstart-script/hack/quickstart-setup.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13300  100 13300    0     0   112k      0 --:--:-- --:--:-- --:--:--  118k
Verifying that pre-requisite binaries are present on the system.
Error: kustomize version 4.5.4 or greater is required, but found 4.5.4. Please review the pre-requisite binary versions in the documentation against your local version of customize

Something seems to be up with one of the pre-req checks

Hmm... Will try to figure out what's going on here... These checks were a late addition and haven't been extensively tested.

No worries - will check out again later

No worries - will check out again later

@jasonmadigan I think this has been fixed

Looking better:
kind version is compatible: 0.20.0
helm version is compatible: 3.10.0
yq version is compatible: 4.34.2
Error: operator-sdk not found. Please review the pre-requisite versions in the documentation against your local version of operator-sdk

Q: do I really need to have the operator-sdk installed?

Error: istioctl version 1.28.0 or greater is required, but found 1.18.1. Please review the pre-requisite binary versions in the documentation against your local version of istioctl

for macOS, all of the pre-requisites are installable via brew. istioctl, however, is only at 1.18.1 in brew by default. I expect this will work OK, so the version reqs could maybe do with some relaxing.

I should probably also mention that it's possible the binary version numbers required may be a little restrictive. If the version of a binary you've been using successfully when running through ocm walkthrough falls below what is required here, let us know and we can lower the required version.

Just saw your comment after adding a note about this about above. Yep, will lower the version required for istioctl.

Error: istioctl version 1.28.0 or greater is required, but found 1.18.1. Please review the pre-requisite binary versions in the documentation against your local version of istioctl

for macOS, all of the pre-requisites are installable via brew. istioctl, however, is only at 1.18.1 in brew by default. I expect this will work OK, so the version reqs could maybe do with some relaxing.

Just saw your comment after adding a note about this about above. Yep, will lower the version required for istioctl.

@jasonmadigan @eoinfennessy the versions i used came from https://github.com/Kuadrant/multicluster-gateway-controller/blob/main/hack/make/dependencies.make#L27-L36 If we update them for this case we should probably update them there as well.

I should probably also mention that it's possible the binary version numbers required may be a little restrictive. If the version of a binary you've been using successfully when running through ocm walkthrough falls below what is required here, let us know and we can lower the required version.

Yeah, I think I hit every single rock here when it came to the version checks ;)
I've upgraded most stuff now, but when I started I was running:
kind: 0.14.0
yq: 4.27.2
istioctl: 1.18.1 (version dep for this already dropped)

OK, much further:
clusterrolebinding.rbac.authorization.k8s.io/mgc-cert-manager-controller-certificates created
clusterrolebinding.rbac.authorization.k8s.io/mgc-cert-manager-controller-certificatesigningrequests created
clusterrolebinding.rbac.authorization.k8s.io/mgc-cert-manager-controller-challenges created
clusterrolebinding.rbac.authorization.k8s.io/mgc-cert-manager-controller-clusterissuers created
clusterrolebinding.rbac.authorization.k8s.io/mgc-cert-manager-controller-ingress-shim created
clusterrolebinding.rbac.authorization.k8s.io/mgc-cert-manager-controller-issuers created
clusterrolebinding.rbac.authorization.k8s.io/mgc-cert-manager-controller-orders created
clusterrolebinding.rbac.authorization.k8s.io/mgc-cert-manager-webhook:subjectaccessreviews created
configmap/mgc-cert-manager-webhook created
service/mgc-cert-manager created
service/mgc-cert-manager-webhook created
deployment.apps/mgc-cert-manager created
deployment.apps/mgc-cert-manager-webhook created
mutatingwebhookconfiguration.admissionregistration.k8s.io/mgc-cert-manager-webhook created
validatingwebhookconfiguration.admissionregistration.k8s.io/mgc-cert-manager-webhook created
Waiting for Cert Manager deployments to be ready...
deployment.apps/mgc-cert-manager condition met
deployment.apps/mgc-cert-manager-webhook condition met
validatingwebhookconfiguration.admissionregistration.k8s.io "mgc-cert-manager-webhook" deleted
mutatingwebhookconfiguration.admissionregistration.k8s.io "mgc-cert-manager-webhook" deleted
clusterissuer.cert-manager.io/glbc-ca created
Switched to context "kind-mgc-control-plane".
Initialize local dev setup for the controller on mgc-control-plane
customresourcedefinition.apiextensions.k8s.io/dnspolicies.kuadrant.io created
customresourcedefinition.apiextensions.k8s.io/dnsrecords.kuadrant.io created
customresourcedefinition.apiextensions.k8s.io/managedzones.kuadrant.io created
namespace/multi-cluster-gateways created
secret/mgc-aws-credentials created
configmap/mgc-controller-config created
The ManagedZone "mgc-dev-mz" is invalid: spec.domainName: Required value

Not quite sure what that is, likely something that landed recently.

configmap/mgc-controller-config created
The ManagedZone "mgc-dev-mz" is invalid: spec.domainName: Required value

Not quite sure what that is, likely something that landed recently.

This is unusual. What do you get for ZONE_ROOT_DOMAIN if you run 'k describe configmap mgc-controller-config -n multi-cluster-gateways'?

configmap/mgc-controller-config created
The ManagedZone "mgc-dev-mz" is invalid: spec.domainName: Required value

Not quite sure what that is, likely something that landed recently.

This is unusual. What do you get for ZONE_ROOT_DOMAIN if you run k describe configmap mgc-controller-config -n multi-cluster-gateways?

Name:         mgc-controller-config
Namespace:    multi-cluster-gateways
Labels:       <none>
Annotations:  <none>

Data
====
AWS_DNS_PUBLIC_ZONE_ID:
----
fi
LOG_LEVEL:
----
1
ZONE_ROOT_DOMAIN:
----

BinaryData
====

Events:  <none>

Given the fi, perhaps something might be up with the reading of the config from the .env files

Given the fi, perhaps something might be up with the reading of the config from the .env files

This script doesn't read anything from .env files. You either get prompted to enter the required values, or you can set these values as environment variables. Did you enter these when prompted?

No prompt, I've got these exported elsewhere - so the script continues without prompting.
I've got valid values for:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DNS_PUBLIC_ZONE_ID

I don't have these set:
AWS_REGION
ZONE_ROOT_DOMAIN

but I'm not prompted (I'm guessing this is where the issues stems from). I don't see anything obviously wrong about the check...

D'oh, OK - we're running this non-interactively, because it's piped.

Given the fi, perhaps something might be up with the reading of the config from the .env files

This script doesn't read anything from .env files. You either get prompted to enter the required values, or you can set these values as environment variables. Did you enter these when prompted?

No prompt, I've got these exported elsewhere - so the script continues without prompting.
I've got valid values for:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DNS_PUBLIC_ZONE_ID

I don't have these set:
AWS_REGION
ZONE_ROOT_DOMAIN

but I'm not prompted (I'm guessing this is where the issues stems from). I don't see anything obviously wrong about the check...

Hi @jasonmadigan can you try this again in a new terminal window. I also saw similar behaviour but a new terminal window resolved it using the command curl -Lo mgc-quickstart.sh https://raw.githubusercontent.com/Kuadrant/multicluster-gateway-controller/d34e8e74d48731a18f6d28ab65b1ec067366611e/hack/quickstart-setup.sh && chmod +x mgc-quickstart.sh && bash mgc-quickstart.sh

Given the fi, perhaps something might be up with the reading of the config from the .env files

This script doesn't read anything from .env files. You either get prompted to enter the required values, or you can set these values as environment variables. Did you enter these when prompted?

No prompt, I've got these exported elsewhere - so the script continues without prompting.
I've got valid values for:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DNS_PUBLIC_ZONE_ID

I don't have these set:
AWS_REGION
ZONE_ROOT_DOMAIN

but I'm not prompted (I'm guessing this is where the issues stems from). I don't see anything obviously wrong about the check...

Hi @jasonmadigan can you try this again in a new terminal window. I also saw similar behaviour but a new terminal window resolved it using the command curl -Lo mgc-quickstart.sh https://raw.githubusercontent.com/Kuadrant/multicluster-gateway-controller/d34e8e74d48731a18f6d28ab65b1ec067366611e/hack/quickstart-setup.sh && chmod +x mgc-quickstart.sh && bash mgc-quickstart.sh

Slightly different issue for me - was down to the previous quickstart pipe command, which ran non-interactively. Running it like you've got above works (can interactively provide input that way). All good now I think.

Running through this and making some notes

I think downloading the binaries to a tmp dir (at least some of the less common ones such as yq, istioctl and operator-sdk ) would be good. Running from scratch, it was a bit frustrating the number of deps I had to get in place. Also if we are not going to install a dep we should offer a link to the github repo?
I think when asking for AWS credentials in the prompt we should call out what they are for? I guess this will also be in doc.
minor thing but when it ran it said deleting existing kind clusters prob should be clear it is only removing exiting kuadrant kind clusters
when install finished we get Your managed cluster kind-mgc-workload-1 has joined the Hub successfully. Visit https://open-cluster-management.io/scenarios or https://github.com/open-cluster-management-io/OCM/tree/main/solutions for next steps.  which makes it look like I should go there. But really I think we want to link them to our guides for Gateways

While this is a batteries included install, it did get me thinking that perhaps we want some options to remove some dependencies. (not part of this but for future consideration) IE I am interested in DNSPolicy only and so there is no need for istio and cert-manager. I think potentially this will become clearer as we look at what a single cluster install should look like other than its current form of being a full OCM install

@maleck13 replies inline to your comments from above.

Running through this and making some notes

I think downloading the binaries to a tmp dir (at least some of the less common ones such as yq, istioctl and operator-sdk ) would be good. Running from scratch, it was a bit frustrating the number of deps I had to get in place. Also if we are not going to install a dep we should offer a link to the github repo?

We'll be covered here by the follow on issue to have the dependencies managed by a Dockerfile. Shout if there is anything further for this one.

I think when asking for AWS credentials in the prompt we should call out what they are for? I guess this will also be in doc.

Addressed in the output. And also we made an update to the ocm-walkthrough document where we have already good information about the use of those env vars and can add the same information to the associated document for the quickstart.

minor thing but when it ran it said deleting existing kind clusters prob should be clear it is only removing exiting kuadrant kind clusters

addressed 👍

when install finished we get Your managed cluster kind-mgc-workload-1 has joined the Hub successfully. Visit https://open-cluster-management.io/scenarios or https://github.com/open-cluster-management-io/OCM/tree/main/solutions for next steps.  which makes it look like I should go there. But really I think we want to link them to our guides for Gateways

Do you have a preference for which guide the user should go to next? I don't see a gateway specific one currently available but I could be just missing it?

We should finish with kuadrant installed (IE MGC and data plane) so that the next step is to create a gateway, place it and protect it

addressed 👍

Discussing the dependencies with @mikenairn we asked whether a docker image with our install deps in it would make sense. That way there is no need for figuring out which OS etc and your dependencies reduce to docker, kind and kubectl. Other than installation there is no use for istioctl, operator-sdk or ocm really.

+1 issue coming soon

While this is a batteries included install, it did get me thinking that perhaps we want some options to remove some dependencies. (not part of this but for future consideration) IE I am interested in DNSPolicy only and so there is no need for istio and cert-manager. I think potentially this will become clearer as we look at what a single cluster install should look like other than its current form of being a full OCM install

In the current implementation the install does have one spoke and one hub cluster. is the intention for the quickstart to contain a one cluster setup?

@laurafitzgerald other than getting the e2e tests passing, is there anything else needed on this PR now?

@maleck13 there's one or two questions in comments above.

@maleck13 all questions should be addressed now. I pushed a final update to add the quickstart document itself. so final thing to get this merged is that folks are happy with the docs changes that i've made. it does change the context of the walkthrough itself so wanting to be sure it makes sense to everyone. Some discussion also about it here https://kubernetes.slack.com/archives/C05J0D0V525/p1690878462120169
cc @mikenairn @eoinfennessy

Changes look good to me. I haven't tried it, but will give it a run through later after it's merged.
/lgtm
/approve


influx write csv should ignore _start, _stop columns

I have the following csv:
sample.csv.zip
and when i run the following command:
influx write dryrun -c default --format csv -f sample.csv
it outputs LP with the _start and _stop columns:
smart_attribute,_start=2020-08-26T22:59:23.598653Z,_stop=2020-08-26T23:00:23.598653Z,device=disk1s3,host=ip-192-168-86-25.ec2.internal,model=APPLE\ SSD\ AP0512N,name=Host_Write_Commands,serial_no=C020245003DP9LF1T raw_value=127349468i<PHONE_NUMBER>000000000

Those should be treated the same way that the result and table columns are and not written to the database.
i'm trying to enable the flow of
influx query -r -c prod 'from |> range' | influx write --format csv -b new_bucket

It happens when the datatype annotation precedes the group annotation.


Log failed commands

Add exception logging with elapsed time for commands execution

@hryz

@aurokk do you need this functionality?
I see that @AndrewP-GH gave up and forked this repo 20 days ago 😁.
I can spend a few hours reimplementing this functionality in a way that won't break anyone if you need it.

Hello, @hryz!
Yeah, it's very useful to see logs for failed requests, so it would be nice if you add this functionality :)

OK, I'll do it in a few days (I hope 😉)

The same effect as proposed here is achieved in #12 but without breaking changs.
The updated version is here https://www.nuget.org/packages/Dapper.Logging/0.4.3

@aurokk check out the updated package https://www.nuget.org/packages/Dapper.Logging/0.4.3

@hryz Thank you, works great! 🔥


Postgres Search Plug-in keeping backend from starting

While implementing release-08-12 in our sandbox environment, we are unable to get the Backstage backend to start. The log provides the following output:
2021-08-17T20:34:48.761Z auth info Configuring provider, microsoft type=plugin
migration file "20210311110000_init.js" failed
migration failed with error: create table "documents" ("type" text not null, "document" jsonb not null, "body" tsvector NOT NULL GENERATED ALWAYS AS (setweight(to_tsvector('english', document->>'title'), 'A') || setweight(to_tsvector('english', document->>'text'), 'B') || setweight(to_tsvector('english', document - 'location' - 'title' - 'text'), 'C')) STORED) - syntax error at or near "("
Backend failed to start up error: create table "documents" ("type" text not null, "document" jsonb not null, "body" tsvector NOT NULL GENERATED ALWAYS AS (setweight(to_tsvector('english', document->>'title'), 'A') || setweight(to_tsvector('english', document->>'text'), 'B') || setweight(to_tsvector('english', document - 'location' - 'title' - 'text'), 'C')) STORED) - syntax error at or near "("
    at Parser.parseErrorMessage (C:\dev\sf_backstage_local\node_modules\pg-protocol\dist\parser.js:287:98)
    at Parser.handlePacket (C:\dev\sf_backstage_local\node_modules\pg-protocol\dist\parser.js:126:29)
    at Parser.parse (C:\dev\sf_backstage_local\node_modules\pg-protocol\dist\parser.js:39:38)
    at Socket.<anonymous> (C:\dev\sf_backstage_local\node_modules\pg-protocol\dist\index.js:11:42)
    at Socket.emit (events.js:315:20)
    at Socket.EventEmitter.emit (domain.js:467:12)
    at addChunk (internal/streams/readable.js:309:12)
    at readableAddChunk (internal/streams/readable.js:284:9)
    at Socket.Readable.push (internal/streams/readable.js:223:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23) {
  length: 91,
  severity: 'ERROR',
  code: '42601',
  detail: undefined,
  hint: undefined,
  position: '121',
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'scan.l',
  line: '1134',
  routine: 'scanner_yyerror'
}

Expected Behavior
Backstage backend should start
Current Behavior
The error message above is displayed in the log and aborts start-up.
Possible Solution
Not a solution, but a workaround is to comment out the Postgres Search plugin in packages/backend/src/plugins/search.ts (line 24;50-52)
Steps to Reproduce

Download and run release-08-12 locally
Start the Backstage backend

Your Environment

NodeJS Version: v14.16.0
Operating System and Version: Windows 10 and node-14:buster image, separate systems, same result
Browser Information: Chrome 92.0.4515.131
Postgres 11.12

Oh, @Fox32  may be interested here.
https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.ts#L62
https://www.postgresql.org/docs/12/ddl-generated-columns.html
Seems to me that it's the version check that needs to be updated to 12, not 11.
@zjperjd you have the ability to run against version 12 or newer?

Oh that is unfortunate. Looks like I messed up the version number there. It's not just the check, we also have to update the docs. Maybe something we should mention at the meetup tomorrow.

I created a PR to fix the version requirement #6863.

I verified that running against Postgres v12 allows the code to be uncommented and the backend to start successfully.


Loading corpus inputs from a (compressed) archive.

As a result of increased fuzzing in our organization, we now have thousands of fuzz corpus files (admittedly a good problem to have :) Currently, we individually store all of these corpus files and pass them to cc_fuzz_test's corpus = glob(["my-corpus-directory/*"]).
Given the proliferation of corpus files, we are interested in storing fuzz corpora in compressed archives (say, as a single corpus.tar.gz for every cc_fuzz_test). Are there existing Bazel rules that can help us feed a compressed archive to cc_fuzz_test's corpus parameter? Alternatively, can we extend rules_fuzzing to support, say, corpus_archives = ["corpus.tar.gz"]?

I'm not 100% sure, but I believe you should be able to define a custom rule that extracts a .tar.gz archive and produces a directory output (so all the extracted files would be written there). Then you can instantiate the rule and use it as a corpus attribute in the fuzz target.
There is also the alternative of extracting the archive as a repository rule, documented here: https://stackoverflow.com/questions/46326749/how-do-i-unzip-a-file-in-bazel-properly-if-i-dont-know-the-contents-of-the-zip
But I can also see merit in supporting corpus archives natively, e.g., through a corpus_archive attribute, so this is a reasonable feature request (PRs welcome, too! 😁 ).


Add revision to hub download

This is a feature requested in #1509. We now can request a specific revision when using our interfaces.
@hbredin for some reasons, I can't add you as a reviewer so I asked someone from the team to do it. Please feel free to try the PR and let us know if it works well for you!

Thanks @TParcollet!
LGTM though I must confess I like the source=repoId@revisionId API syntax better than source=repoId, revision=revisionId but that is probably just me.

Thank you all!


Add support for nested changeset error messages

This adds basic support for errors in nested changesets. I’m open to change the formatting for nested fields, currently it’s: association.field but it could also be associationField or something else. The dot notation fitted our use case.
Results in a GraphQL payload
Client belongs to tutor with validation for the tutor association
%{
  data: %{
    "updateClient" => %{
      "messages" => [
        %{"code" => "required", "field" => "firstname"},
        %{"code" => "required", "field" => "tutor.email"},
        %{"code" => "required", "field" => "tutor.firstname"},
        %{"code" => "required", "field" => "tutor.lastname"},
      ]
    }
  }
}

I also fixed a warning and a failing test in test/test_helper_test.exs

This is a good start - I want to make sure that when there are many children we support that too.
I'm thinking of two different paths -

Number each nested field,  like tutors.0.email tutors.1.email  and so forth. Will need to be  sure the order in the mutation matches the order in the errors

Pass in an errorId field that is then used to generate the error keys when there are nested errors. In this case, behaviour as specified in point one could be a default behaviour.

@lauraannwilliams I just pushed changes to allow custom field constructor in simple validation message but nested one too. Kronky provides a "default" one that matches the parent.0.child format. You can see the test in test/changeset_parser_custom_field_constructor_test.exs

When will this available?  I require it. Thanks

@simonprev: Both original and your code have a small bug.
Please replace:
String.replace(acc, "%{#{key}}", to_string(value))

to:
key_pattern = "%{#{key}}"

if String.contains?(acc, key_pattern) do
  String.replace(acc, key_pattern, to_string(value))
else
  acc
end

Example values to reproduce code:
message = "is invalid"
opts = [validation: :embed, type: {:array, :map}]

https://github.com/mirego/kronky/blob/0076cde1cac3dc9ab465afec743540f6b08d3e7c/lib/kronky/changeset_parser.ex#L103

@Eiji7 Done! I’ve made the requested changes 😄

@simonprev Also I forgot to mention that you should set app env (default library configuration), because it fails without any configuration extra.

@Eiji7 What do you mean by set app env (default library configuration)?
I added the config in config/config.exs:
config :kronky,
  ecto_repos: [],
  field_constructor: Kronky.FieldConstructor

@simonprev: Please take a look at stackoverflow question.

@Eiji7 Is my latest commit enough as the default library config?

@simonprev: Yes, now all good! Good job!

Is there any updates on this?

@ssbb Looks like owner does not made any update for months. I think that @simonprev works without problem, so you should use his fork version instead.

@ssbb could you please merge it 🙏

Any updates on this? Will it get merged anytime soon?

@dwebster17 It's almost 6 months after it's 100% ok for me. I don't see any arguments to not merge it especially that's not conflicting with original repository. Unfortunately 6 months should say enough … looks like this repository is dead.
Fortunately it does not mean that this project is dead. You can still use code from this PR in any Elixir project (just use github option when defining dependency in mix.exs). Maybe @simonprev would release this as hex package under his own account (so it would have same name, but different author).
The other way is to get in touch with author and change permissions or even change owner for this repository. I could take it and merge PR then, but looks like that its owner is not replying here, so we would need to find other communication way with him.

Hey @lauraannwilliams, would it be OK if I officially fork this repo and publish a new package to hex.pm (I would rename it). You can see from this PR that the fork is already used by some people 😄 The fork would live in the Mirego organization on GitHub.
 If you don’t want me to publish your code on hex.pm that’s ok too 😄 Thank you for this library!

@simonprev I don't think you need even ask about permissions. Just take a look at LICENSE file - it's MIT license. As long as you use somebody work in way which license allows then you should not have any law problems.
Also there is no need to rename it as you can use same name: https://hex.pm/docs/private

For everyone interested in switching their Kronky dependency to our fork: https://github.com/mirego/absinthe-error-payload
It supports nested changesets, uses mix format to simplify collaboration and is used in many projects already. Bonus: We run tests in travi to prevent broken releases and code coverage to maintain quality 😄 And the new name fits nicely in your mix.exs below absinthe, absinthe_plug, absinthe_phoenix, etc
Thank you again Ethelo for building Kronky!

Hi Simon - I havn't had any time to devote to this, so the fork is definitly a good idea. :) Thanks for taking this on.


CSIRO extra rules 20210421

New assertions and related changes based on existing assertions in Ontoserver's RF2 indexing  process.

We have identified that mdrs-no-version-skew can trigger false positives under certain circumstances.
We are working on a fix for this and will add it to the pull request when complete.


EOSPAC vector implementations

PR Summary

PR Checklist

[x] Adds a test for any bugs fixed. Adds tests for new features.
[x] Format your changes by using the make format command after configuring with cmake.
[x] Document any new features, update documentation for changes made.
[x] Make sure the copyright notice on any files you modified is up to date.
[x] After creating a pull request, note it in the CHANGELOG.md file

Also thanks for putting in the work to prototype this! I like both the "scatch" and "chunk" approaches. But I think we should be a little thoughtful of GPU performance in both cases. I don't think any of this code will run on GPU as-is.

@Yurlungur @jhp-lanl I've updated all scratch and chunk versions to use EOSPAC options to minimize copies and do unit conversions. I've also expanded the profiling to include more methods and made it part of CTest. Below are timings I've generated per method on skylake-platinum nodes on Darwin:

Great work @rbberger ! I'm excited especially that this work is part of CTest so that we can have a baseline and look for ways to improve. We should discuss this more at the meeting tomorrow!

@jhp-lanl yeah, having it part of CTest already pays off. I'm having weird failures on power9 that need further investigation. :smile:

Nice work @rbberger ! I second @jhp-lanl 's comments.

Peanut gallery says we go to scratch and drop lambdas and chunks

@Yurlungur @jhp-lanl Issue #187 blocks me from doing any meaningful GPU tests on the CI.

@Yurlungur @jhp-lanl Issue #187 blocks me from doing any meaningful GPU tests on the CI.

I seem to recall that the accessible EOSPAC spackage isn't up-to-date and I'm not quite sure what the best way to get 6.5 is. I'll ping Daniel Sheppard.

@Yurlungur ready for review.

Should we have a correctness test? Perhaps use the vector calls and the scalar calls for the EOSPAC backend and compare? Or alternatively compare EOSPAC and spiner, as is currently done, but convert the EOSPAC calls to vector calls? We could make it work for CPU I imagine?

Actually, the profile_eospac test does include a comparison with the scalar versions.

I'll wait for the Darwin tests to pass before we merge.

@rbberger is there anything holding this up? To me it looks like you can merge in master (and resolve conflicts) and we can merge this.

@rbberger is there anything holding this up? To me it looks like you can merge in master (and resolve conflicts) and we can merge this.

No. It kind of got stuck because we were looking at why GPU builds being so slow (in general, not just this), but I'll fix this one up again so we can merge it.

@Yurlungur re-git pipeline successful. feel free to merge.

Thanks for all your hard work on this @rbberger ! At some point we should check to see what is necessary to pull this through for GPU implementations and modifiers. But for now I think we can celebrate speeding up the EOSPAC calls.

Yes indeed! Thanks for all the hard work @rbberger !


Obey no-transaction flag in down migrations

Fixes #3527

Should I rename execute_migration into something like execute_apply_migration for consistency?

No, actually execute_revert_migration can just be called revert_migration since "revert" is the verb.


Missing term in training AP+XP

In the script train_apxp.py, the current training doesn't seem to do the prediction task with XP.
https://github.com/jiadonglee/xpformer/blob/5e30a9d416fe5389a41283d0ecc642c84bf55517/train_apxp.py#L33-L50
Instead of having the current line 41 and 42, the code should look something like
latent_embedding = encoder(XP)
AP = hallucinator(latent_embedding)
y1 = pretrained_decoder(AP)
y2 = decoder(latent_embedding)

loss = weight_1*loss(truth,y1) + weight_2*loss(truth,y2)

Also, as a side note, why are you using a transformer for this now? I think an MLP should be sufficient and it should be easier to prove the architecture is working.

In the latest push, I modified the codes into your suggestion, you can see it in line 41-48 of train_apxp.py, the overfitting issue still exists.

And the new script is using MLP

For the overfitting, do you have a plot showing the training and validation loss over training time? I also don't see where you checkpoint the model which has the lowest validation loss. That could be useful to look at.

here is the loss function of train and validation


No position encoding code found

I can not find the  position encoding code from the sharing code.
The model only consists of cnn layers and fc layers.
Can you tell me where to find this?  Very Thanks!

The position encoding code is included in ./dataset/data_loader.py, line 224-225 and line 365-366. You can refer to the exps/pe_net_fd004.yaml for using it.

The position encoding code is included in ./dataset/data_loader.py, line 224-225 and line 365-366. You can refer to the exps/pe_net_fd004.yaml for using it.


Parsedown fails with long text

If you visit the Parsedown Demo and paste in this example text, the server fails.
The text is around 23,000 characters, and includes a single asterisk on the first line. This occurs with any text of a similar length or greater. I'm assuming Parsedown reads the opening asterisk and fails when it needs to search for the closing asterisk in such a long string.
I use Parsedown for user comments on my site. Comments are a standard MySQL text field which holds values greater than the above in length, and users occasionally include symbols like an asterisk in their comment, without a closing one. When this occurs, the comments page fails to load.

I did a test on my local machine with Parsedown-extra version 0.7.1. This was my output.

example*
example
example
example
example
example
...

It's probably due to the fact that the Apache 2.4.7 server configuration of the demo blocks POST request that are longer than [x]mb.

It's probably due to the fact that the Apache 2.4.7 server configuration of the demo blocks POST request that are longer than [x]mb.

I don't think that's the case, because larger text blocks are accepted without an issue. For example, here's the original text with 4 more asterisks added throughout. It now works fine if you paste it into the demo.
There cannot be more than N characters between an opening and closing asterisk or the script fails. It may be an issue with Apache or server configuration (the demo fails the same way as my server), or Parsedown might need to be modified to handle these type of situations.

The maximum input length depends on your PHP configuration, see https://secure.php.net/manual/de/pcre.configuration.php

I have added a test in #444 and it looks like this file causes PHP to segfault in versions < 7.0 : https://travis-ci.org/erusev/parsedown/builds/169156782

See also https://bugs.php.net/bug.php?id=45735

it is likely to be caused by the regex for emph and strong matching resulting in something simlar as described here: http://www.regular-expressions.info/catastrophic.html

I have submitted a fix in #444

Thanks cebe, that would fix the initial example. I'm assuming it would still crash if we added a marker to the end, such as here, but at least it resolves certain cases.

@h2652797 thanks for noting this. Need to figure out why that happens, maybe the correct fix would need to adjust the regex.

Here an approach regex which works for both cases:
without end marker
with end marker
It should ignore escaped backslash, escaped asterix and other escaped characters.
It uses \x5c as backslash to avoid additional backslash escaping in php.
The regex is around line 1527
    protected $EmRegex = array(
        '*' => '/^[*]((?:[^*\x5c]++|[*]{2}[^*]++[*]{2}|\x5c{2}|\x5c\*|\x5c)++)[*](?![*])/',

It passes the actual tests.
Similar regexes should be possible for strong and underscore emphasis.
I suppose, that there are still some commonmark rules with strong and emphasis, which parsedown breaks. Is it planned to follow that rules?


FYI: Cell Ontology (CL) is obsoleting 'somatic cell'

CL is obsoleting the class 'somatic cell' as detailed in https://github.com/obophenotype/cell-ontology/issues/1150.
This issue is an FYI for GO since there are some terms, like 'somatic cell DNA recombination', that invoke the term "somatic cell".
There may be no action item for this issue, but spreading the word in an effort to keep ontologies aligned.
CC @cmungall

Thanks for the info @bvarner-ebi !

Actually, I dont see that we refer to CL:somatic cell in GO (we do have terms that have this label, but I cannot find a link to CL). 'somatic cell DNA recombination', does not link to CL.
Closing, please reopen if I missed something.

@pgaudet, thank your for addressing this ticket.
I did not identify any GO terms cross-linked to CL, but "somatic cell" is used in at least one text definition. This is just an FYI to GO that the class "somatic cell" is in the process of being obsoleted in CL.


Screen name() with apostrophe get's escaped causing ' to appear instead.

Describe the bug
Screen name() with apostrophe get's escaped causing & # 0 3 9 ; to appear instead. (spaces added because markdown decodes the & # 0 3 9 ; as and apostrophe)
To Reproduce
Steps to reproduce the behavior:

Create a screen (blah blah blah)
Have the name() method return "You're testing this"
Render screen and see the entity code in the header and  tag

Expected behavior
I expect the title and header to read "You're testing this" but it returns "You& # 0 3 9 ;re testing this"
Screenshots
Desktop (please complete the following information):

OS: Windows 11
Browser: Chrome
Version

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Server (please complete the following information):

Platfrom Version: 14.14
Laravel Version: 10.10
PHP Version:  [e.g. 8.1]
Database:  MariaDB
Database Version: 10.4.28

Additional context

I think the e() helper function should be removed from the 'title' section is defined. Only the Screen class uses that view and the $name is set via a method that is strict typed as a string. The @yeild directive already escapes strings which I think is causing the problem. With that in mind, I think removing the e() shouldn't cause any security vulnerability.

Yes, I think that escaping was unnecessary. I suggest upgrading to the latest version to fix this issue.


Username placeholder

**Issue #1061 **
Added 1 line that replaces a string "[[username]]" in a comment with media owner's  username when replying. Could I add this when commenting a media or what should I change/improve?
Thanks.

Thanks! Please fix Travis issues and we'll merge it!

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@8027d0d). Click here to learn what that means.
The diff coverage is 0%.

@@            Coverage Diff            @@
##             master    #1157   +/-   ##
=========================================
  Coverage          ?   43.54%
=========================================
  Files             ?       32
  Lines             ?     3571
  Branches          ?      580
=========================================
  Hits              ?     1555
  Misses            ?     1873
  Partials          ?      143

Impacted Files
Coverage Δ

instabot/bot/bot_comment.py
26.37% <0%> (ø)

Continue to review full report at Codecov.

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

I fixed the Travis issue(line too long). Let me know if it's OK now!

Thank you for your contribution!


Some config values cannot start with a number unless quoted

[x] Defect
[ ] Feature Request or Change Proposal

Defects
gnatsd is unable to parse the config when certain values start with a number (unless it's quoted). In this example, the cluster password starts with a number and gnatsd fails to start. If the password value is quoted, the example will run just fine. Same is true for the username. Other fields may be affected as well. Not critical, but a little surprising.
Versions of gnatsd and affected client libraries used:
gnatsd: 1.1.0
OS/Container environment:
Mac OSX 10.13.5
Steps or code to reproduce the issue:
Start gnatsd with the following config:
listen: <IP_ADDRESS>:4222
http: <IP_ADDRESS>:8222

# Authorization for client connections

# Logging options
debug: false
trace: false
logtime: false

# Pid file
pid_file: "/tmp/gnatsd.pid"

# Some system overides

# Clustering definition
cluster {
  listen: <IP_ADDRESS>:6222

  # Authorization for cluster connections
  authorization {
    user: nats_cluster
    password: 2Tybceg8yj
    timeout:  1
  }

  # Routes are actively solicited and connected to from this server.
  # Other servers can connect to us if they supply the correct credentials
  # in their routes definitions from above
  routes = [
    nats://nats_cluster:2Tybceg8yj@nats-nats-cluster:6222
  ]
}

Expected result:
NATS starts successfully.
Actual result:
./gnatsd -DV -c gnatsd.conf
Parse error on line 24: 'Expected a map value terminator "," or a map terminator "}", but got 'T' instead.'

The workaround is to enclose such values with a string. The configuration parser interprets values starting with a number as a number. Or as best practice write all string values enclosed in quotes.
password: "2Tybceg8yj"


Ref to issue  #162: Consolidate Amount in Trial Balance Report is not correct

Ref Issue #162
After I tested this issue. Trial Balance report has incorrect consolidated amount in every company
Amount in Chart Of account

Amount in Trial Balance

fix: https://github.com/nfco/netforce/commit/38aa36ab6f64b8474c85db272c0db241d461c48b


Needs children, not left and right.

When I saw this component I was pleased but then saw that it only supported two children.  To implement the Material Toggle Button it clearly needs to support a children array rather than just a left and right child.

 Work is already in progress!

Now available with version 1.0.0. Check out pub.dev package or clone it.
Thanks!


better-npm-run: Permission denied

My OS is Ubuntu 14.04 LTS. I have got an error when trying to run "sudo npm start". Here is the screenshot: http://joxi.net/krDxLR0S0n5VGr
It says "better-npm-run: Permission denied". Some failure with "better-npm-run start" script.
code ELIFECYCLE, exit status 126.
Please help, how to solve it?

I was getting a similar (but not quite the same) error a few days ago in a fresh ubuntu VM, but I found the steps at this link helpful for general permissions problems w/ npm install/npm start:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
Once I fixed my permissions, I didn't have to rely on sudo anymore (which i'm told is a bad habit w/ npm)

Totally correct @brandonmp, you should never have to use sudo with npm. @CatVas hopefully @brandonmp 's answer can help you out.

I'm seeing this issue, too, also on Ubuntu.
`npm start

<EMAIL_ADDRESS>start /home/ubuntu/workspace
better-npm-run start

running better-npm-run in /home/ubuntu/workspace
Executing script: start
to be executed: babel-node bin/server
/home/ubuntu/workspace/node_modules/babel-core/lib/transformation/plugin.js:138
throw new Error(messages.get("pluginInvalidProperty", loc, i, key));
^
Error: Plugin 0 specified in "/home/ubuntu/workspace/.babelrc" provided an invalid property of "wrapped"
at Plugin.init (/home/ubuntu/workspace/node_modules/babel-core/lib/transformation/plugin.js:138:13)
at Function.normalisePlugin (/home/ubuntu/workspace/node_modules/babel-core/lib/transformation/file/options/option-manager.js:174:12)
at /home/ubuntu/workspace/node_modules/babel-core/lib/transformation/file/options/option-manager.js:208:30
at Array.map (native)
at Function.normalisePlugins (/home/ubuntu/workspace/node_modules/babel-core/lib/transformation/file/options/option-manager.js:180:20)
at OptionManager.mergeOptions (/home/ubuntu/workspace/node_modules/babel-core/lib/transformation/file/options/option-manager.js:300:36)
at OptionManager.addConfig (/home/ubuntu/workspace/node_modules/babel-core/lib/transformation/file/options/option-manager.js:232:10)
at OptionManager.findConfigs (/home/ubuntu/workspace/node_modules/babel-core/lib/transformation/file/options/option-manager.js:436:16)
at OptionManager.init (/home/ubuntu/workspace/node_modules/babel-core/lib/transformation/file/options/option-manager.js:484:12)
at compile (/home/ubuntu/workspace/node_modules/babel-register/lib/node.js:112:69)
npm ERR! Linux 4.2.0-c9
npm ERR! argv "/home/ubuntu/.nvm/versions/node/v4.4.5/bin/node" "/home/ubuntu/.nvm/versions/node/v4.4.5/bin/npm" "start"
npm ERR! node v4.4.5
npm ERR! npm  v3.10.3
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: better-npm-run start
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'better-npm-run start'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the react-redux-starter-kit package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     better-npm-run start
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs react-redux-starter-kit
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls react-redux-starter-kit
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/ubuntu/workspace/npm-debug.log`

What is this file /home/ubuntu/workspace/.babelrc? If you have babel configs in parent directories to your project, things are not going to work well.

Thank you guys. I did the "Option 1" steps from https://docs.npmjs.com/getting-started/fixing-npm-permissions, but the problem is still the same:
<EMAIL_ADDRESS>start /media/catvas/Work/DiskE-Job/!jobbing/WebDev/ReactJS/react-redux-starter-kit

better-npm-run start

sh: 1: better-npm-run: Permission denied
npm ERR! Linux 4.2.0-41-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
npm ERR! node v6.2.0
npm ERR! npm  v3.9.2
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: better-npm-run start
npm ERR! Exit status 126
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'better-npm-run start'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the react-redux-starter-kit package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     better-npm-run start
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs react-redux-starter-kit
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls react-redux-starter-kit
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /media/catvas/Work/DiskE-Job/!jobbing/WebDev/ReactJS/react-redux-starter-kit/npm-debug.log`
I discovered a string: npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" - maybe this is where the problem is? The permissions are:
-rwxr-xr-x  1 catvas root 27459658 тра 25 19:40 node - for /node folder
lrwxrwxrwx  1 catvas root       38 тра 25 19:40 npm - for /npm folder.

Even I am facing a similar issue with better-npm-run. I tried the below solutions. That didnt help:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
ules/.bin/better-npm-run: Permission denied
[build-web-dev   ] [build-web-dark-dev] npm ERR! code ELIFECYCLE
[build-web-dev   ] [build-web-dark-dev] npm ERR! errno 126


Allow import/order to accept a glob/regex

Why
It should be possible to sort the imports based on their needs.
For example:
I want to have my meteor imports after my node imports but before the rest.
Proposal

.eslintrc.js

module.exports = {
  rules: {
    'import/order': ['error', {
      groups: [
        'builtin',
        '^meteor/.+$'
      ]
    }]
  }
}

Thoughts?

+1! Need it to put css imports into a separate group.

Any updates on this feature?

Would really love to have this as well. Seems like it's a recurring request.

Any update on this proposal? I would love to see this 👍

same +1

same +1

I think this customization would make the rule much more useful and flexible. Placing CSS imports on top is quite important since their order matters.

Their order matters relative to each other, but it doesn’t matter if they’re first, last, or scattered between.

but it doesn’t matter if they’re first, last, or scattered between

What happens here? I expect component.css to appear before main.css, but that's not what I want.
// main
import "./component.js"
import "./main.css"

// component
import "./component.css"

Sure, but that’s across files - which means you have to intimately know the implementation details already, and that can’t be safely encoded in a lint rule. You won’t always want main to come before component - for example, if you want main to override component.

You just said that it doesn't matter, I showed you it does matter. The lint rule totally can expect .css files to be on top. That's all I'm asking. I'm not asking to detect whether it matters, because we already know it matters and that's why they should be on top.

Touché. The problem is that it doesn't matter the same always - and neither "css on top" nor "css on bottom" actually covers all generic use cases, because it always depends on the exact things those CSS files are doing, due to the global nature of CSS.
In other words, I don't think it's something that can be properly configured in static analysis in a generic sense, due to the inherent category error of importing globally-side-effecting CSS in the first place.


pretty json

Add the --pretty option to output formatted JSON.
This may be important to those who source-control their generated CloudFormation and wish to diff it.

@sampointer looks good - for a small operation I'd rather a ternary operator so we don't have to repeat output.puts:
output.puts options[:pretty] ? JSON.pretty_generate(model) : model.to_json

could you also rebase out the version bump as I do that in a separate commit :)
Apart from that LGTM :+1:

@stevenjack Amendments made as requested.

@sampointer great :ok_hand:, I'll look to get a new version out in the next few days


does this tool work?

I tried this project and I saw no change in the output. A new file was created, but the new file still suffered from issues of the source file. I have a ton of media queries from Less transpiling to CSS that I want to group for proper selection and optimization.
Does this project actually work?
Here were my steps to test it:

I installed via: npm i --save-dev group-css-media-queries
I made a npm script to run it, "groupcss" : "group-css-media-queries myinput.css myoutput.css"
I ran my npm script, npm run groupcss
I opened the new file and compared with the source, and I saw no differences.

Should work :)
Could you provide sample of your input file?

Thank you for looking at the problem. I am attaching my input.
input.zip

I've run it locally with provided input, it turns this:
@media (orientation: landscape) and (min-width: 415px) {
  .col-0-landscape {
    width: 0%
  }
}

@media (orientation: landscape) and (min-width: 415px) {
  .col-offset-0-landscape {
    margin-left: 0%
  }
}

@media (orientation: landscape) and (min-width: 415px) {
  .flex-item-h-0-landscape {
    width: 0%;
    flex-basis: 0%
  }
}

into
@media (orientation: landscape) and (min-width: 415px) {
  .col-0-landscape {
    width: 0%;
  }

  .col-offset-0-landscape {
    margin-left: 0%;
  }

  .flex-item-h-0-landscape {
    width: 0%;
    flex-basis: 0%;
  }
  /* ... other rules with same media query... */

Please make sure you use latest 1.2.0 version.

It would be great if it did that for me. I am running on Windows 10, x64. Perhaps the implementation does not work on my OS.
I just noticed the version installed by NPM.

"group-css-media-queries": "^1.1.1",

Why does the old version get installed?

There was a minor update yesterday.
Anyway, I expected this to work on Windows. I have no Windows at hand though. I will try my best to find one.

I updated. I still see no evidence that the tool does anything other than make a new copy of my file.

Can confirm this works 100% on mac, maybe its a windows thing the bug 😢

I did more research. I have 2 projects, each using Less 2.7.1 and the Less plugin 1.1.1 which uses this project. Both projects use the same version of all dependencies, except for the Grunt version, and the same source .less files.
In the project that uses Grunt 0.4.5, I see desired behavior when I use grunt less to group media queries. This means that your code can run properly on my Windows computer.
In the project that uses Grunt 1.0.1, I see the same problems that I see when I run your code standalone, without Grunt.
Does this give you any ideas?

I FOUND THE PROBLEM
The code for css-parse is completely different in my 2 projects. How did a different version of the library get installed? I tracked down when the first @media rule was parsed in the different projects.
Here is what the code should look like:

But here is what the code looks like in the project with the problem.

Please see this PR. It solved my problem.
https://github.com/SE7ENSKY/group-css-media-queries/pull/14

Please confirm if it's resolved in version 1.4.0 of group-css-media-queries.

@ivankravchenko Confirmed! Thank you for accepting the patch.


"callFirst" error

We get this error when we try to access the plugin:
Internal Server Error
Craft\PluginsService and its behaviors don not have a method or closure named "callFirst".

We are running Craft version 2.2.2601 (yeah, I know it's old but certain thing outside our control prevents us from updating)
Any idea why this is happening?

Yeah, callFirst was added in Craft 2.3 (http://buildwithcraft.com/updates#build2615) - you have to update in order to use this.


Consider 84+/-1 deg launch angle

Adding it in OR changes apogee to about 700 ft lower. Which is almost exactly what the sim here is off by


Improve some error messages

These are some changes I made a while ago, but forgot to PR.
The idea is to make some error messages less ambiguous. Not sure if many people may have been confounded by the previous wording like me, but I feel the new wording leaves no room for misinterpretation?
Quoting one of my comments in https://github.com/rubocop-hq/rubocop/issues/5184 for the rationale:

The thing is the message is not refering to "line alignment" but to "parameter alignment", that's what I find confusing since as I see it whereas lines are aligned (they have the same number of leading whitespace), parameters are not (they are distanced differently to the beginning of the line).

That's why I think "Make sure all lines containing the parameters of a method call have the same indentation" or something along those lines would be more clear. At least I wouldn't have got wrong expectations about what this cop should do.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[ ] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[ ] Run rake default or rake parallel. It executes all tests and RuboCop for itself, and generates the documentation.

Two general suggestions:

I think “Make sure …” should instead be “Ensure …”.
And “containing x on y” should instead be “containing x of y”.

I am however not a native English speaker…

Thanks for the suggestions @bquorning! I had the same thought about the second point, but as a non notive speaker myself either, I couldn't figure out which one was the correct one. Regarding the same point, looks better to me, I'll add it!

Is there an agreement in @rubocop-hq/rubocop-core that the changes improve the names? To me, personally, the new messages sound a bit more confusing.

Other than finding debatable that parameters like
a(1,
  2, 3
  4)

can be considered "aligned", I also find confusing the "if they span more than one line" part. It seems to imply that you don't consider multiple parameters on the same line as "aligned" but you make an exception or something. I don't get it.

I get your point, but I think a better message then the proposed one would be:
Ensure that all lines containing elements of a hash literal are vertically aligned.
Or
Align vertically all lines containing elements of a hash literal.
However, it many language context I've seen the wording Align vertically hash literal/array/whatever elements. and it seems most people understand what they are supposed to do.

I'm not sure what's unclear/confusing about the new message though. I wanted to explitcitly avoid the term "align" since I find it ambiguous in this context.
However, you're very right that I may be the only one finding this confusing, and I already understand what this cop is trying to achieve, so... Feel free to close this if you think this is fixing a non issue!

ping @bbatsov. What do you think? Should I close this PR?

Yeah, I guess we can close this PR for now.


Is this possiable to add a avatar into face using back camera

Hye why .glb file does not support animaion for AR face but into Ios its wokred , animation like blinking , smiling , laguhing etc

Hi!
You need to start the animation by yourself. See this sample application: https://github.com/SceneView/sceneform-android/blob/master/samples/ar-model-viewer-java/src/main/java/com/google/ar/sceneform/samples/gltf/MainActivity.java#L136


Skip pod initialization if version >= 1.8.0.

Description
CocoaPods 1.8.0 no longer requires pod setup to be run since it doesn't need the local specs repository set up.
Also remove hard-coded 1.7.5 device lab version since 1.8.1 has fixed the gem issue introduced in 1.8.0.
Related Issues
Fixes https://github.com/flutter/flutter/issues/41253.
Fixes https://github.com/flutter/flutter/issues/41221.
Tests
Added cocoapods_test.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[ ] Yes, this is a breaking change (Please read [Handling breaking changes]). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.

Landing on red tests, issue was fixed 3 days ago with https://github.com/flutter/flutter/commit/d968b7cfd600322c60ff222b0d67459c0b4a991b.


Cannot use EventStreams in two different modules

When using baconjs in a Node.js program it can happen that the baconjs module is loaded twice. Consider the following example.
module1.js:
bacon = require 'baconjs'
exports.Observable = bacon.Observable

module2.js:
bacon = require 'baconjs'
exports.Observable = bacon.Observable

main.js:
module1 = require 'module1'
module2 = require 'module2'
console.log module1.Observable == module2.Observable

If the modules module1 and module2 have different node_modules directories, then the program will print 'false'. This becomes an issue because bacon checks if an object is an Observable with object instanceof Observable. So when I apply flatMap on a module1.Observable using as a parameter a function which returns a module2.Observable, flatMap thinks that the returned value is not an Observable and it gets wrapped.

Have you tried npm dedupe or peer dependencies? Even if the observables returned by the other module would be accepted/not wrapped, Bacon has loads of internal state that isn't shared between different Bacon (library) instances. This is similar issue as using Bacon.js in cross-frame contexts.

Relying on npm dedupe for correctness rather than just efficiency sounds like it will lead to pain because you'll have to instruct your users to always use it. And the users of applications that use libraries that use your libraries, etc.
Peer dependencies sounds like the correct solution if you have a module that can only be used by a module that must be already using Bacon itself. However, if your module only has optional compatibility with Bacon and you don't want to force users of your module to also install Bacon themselves, then (my module) bacon-cast is probably the right solution instead of a peer dependency.

Thanks for the advice, bacon-cast seems to be the right solution for me. I was surprised that this functionality is not already part of bacon itself. If it cannot be fixed then I think that the problem should at least be mentioned in the docs to avoid any confusion.

This is duplicate to #296


Add custom cargo runners support.

This PR adds an option to delegate actual cargo commands building to another extension. For example, to use a different manager like cross.
https://github.com/vsrs/cross-rust-analyzer is an example of such extension. I'll publish it after the rust-analyzer release with this functionality.
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4902

I decided to dwell on a command approach for the moment, for

looks like it works perfectly
unfortunately, I don't have enough time :(

@matklad looks like there is a floating error in the tests. I did not change the code but the first run failed while the second succeeded.

Yup, that's due to https://github.com/rust-analyzer/rust-analyzer/pull/5008. We can just revert it, but ti would be cool to debug this, as this shouldn't be happening, as far as my understanding goes.
For heavy tests, we create files in the tmp directory on disk, then crate analyzer instance. The analyzer reads files from disk and reports when it is done. After that, we proceed with a test.
Apparantly, there are some additional vfs events happening after we report project as loaded. But those events should not affect the state of rust-analyzer, and should not cancel in-flight requests.
We used to "open" all the documents, exactly to prevent file system events from affecting the state, but this should no longer be necessary.

I tried several times to run heavy tests locally on mac, no "luck" they work. Perhaps it makes sense to rollback #5008 to keep CI working.

Ok, I assume this is fine to experiment, but, long term, the dependency between extensions is clearly going into the wrong direction here, we need to introduce something akin IntelliJ's extension points.
bors r+


Please adapt the internlm2 model

Hi, @bank010 vLLM already support internlm2 model since  v0.3.1.


Adding Eirika's Blog

Hi there @EirikaDoesntCode
Thank you for adding your blog, the format is correct. However you have some filler posts that will still be combined into the site. If you could add  as a comment in the filler posts they won't show up here, you can always remove the comment later on when you use those posts :smile:

Thank you, will merge this now!

Ah,
I believe I've added exclusion to those templates now.


Idea - "Change State" Effect

Hi @yelouafi,
I'd like to preset an idea - if it'll sound good to you then I'll write it and add it as a pull request. The idea is to have a 'change state' effect, syntax as follows:
    yield(changeState((state) => {
        const newState = {...state, x:1, y:2};
        return newState;
    });

This effect allows saga to directly change the state (and not go through reducers).
Why is this good?
In our usage of sagas we do all logic (sync and async) in the sagas. At the end of each saga, the saga "puts" an action handled by the reducers that only updates the state to the value given. It makes the code, flows, and sagas much cleared - All business logics are centered in the sagas and sagas only. It makes it very clear to see flows, and to even test them (see my previous issue).
Basically, using this design, reducers have become unneeded 'dead weight'. Having this effect will remove the need for reducers (which, again, in our case do almost nothing).
How would we use it?
Our system is very complex - it's an online ordering system, with its management dashboard used by hundreds of thousands of restaurants worldwide - including React Native apps that use the same sagas as the web. This design (all business logic in Sagas, no reducers whatsoever) made the system much easier to understand, develop, and test (we use TDD, or try to at least).
What do you think?

What you want to achieve can easily be done by using a top-level reducer that listens for a CHANGE_STATE event, and replace the old state entirely by the new state.
I'm not an expert in generator syntax but I'm sure it can be done with some code like:
function* saga() {
  yield* changeState((state) => {...state, x:1, y:2});
}

function* changeState(update) {
   const state = yield select();
   yield put({type: CHANGE_STATE, data: update(state));
}

function liftReducer(reducer) {
  return (state, action) => {
    if ( action.type == "CHANGE_STATE" ) {
      return action.data;
    }
    else {
      return reducer(state,action)
    }
  }
}

const finalAppReducer = liftReducer(appReducer);

Also it looks to me a terrible idea.
The initial philosophy of a saga is to listen to events, manage its own internal state, and eventually emit new events.
The saga, in the first place, should generally avoid access to redux state. The select effect has been done because it is actually sometimes convenient and can help reduce boilerplate, but it is absolutly optional and for me it's not at all a best practice to rely on select heavily. The saga should be an autonomous component, that does not query other components of the system. Initially it comes from backend distributed systems. It is to consider that the saga is supposed to run on its own microservice, and should not communicate with other microservices with anything else that the event stream. It is generally advised, in distributed systems, that microservices do not access storage of one each others because it creates a lot of mess.
This is less dramatic for Redux, but still the same concerns apply. By relying on redux state inside sagas, and not only actions, you actually couple your saga to the state shape you choose for your React application. A properly designed saga should not assume anything about how your UI state is handled or shaped, but should just do its job and emit new events when needed. Actually, the saga should not even have to know that you are using React, or Redux. If you do things properly decoupled, you could switch to backbone and reuse the exact same unmodified sagas.
It is also important to emit new events, because these events can be useful for other sagas, or listened to by other pieces of the system (for example an event-tracking system like Mixpanel/GoogleAnalytics/Splunk/GetSentry...). If you modify state in place, it is much harder, later, to introduce these kind of systems.
The saga somehow express "if This, then That". If you never emit an event for That, but only changes the state directly, nobody in the future will have the ability to plug behavior on the That event, that is never emitted.
You will also loose some ability for hot code reloading. By changing the state directly in the saga, it's not possible anymore to reinterpret your action log by running it again against an hot-reloaded updated reducer. Redux-saga in its current form will not help you much and it's quite hard to hot reload generators.

@slorber - Thanks for your very detailed answer.
Most of apps contain different business logic flows. For example: 'When a user wants to checkout, show him a contact form, wait for him to click next, then show him a delivery form, ...', or for example: 'when a user wants to delete an item, show him a are-you-sure popup, wait for him to click yes or no, if he/she clicked no, close the popup. if they clicked yes, show a thinker, send the server request, and return back'. Sagas lets us write these flows very explicitly clear:
    function* handleOnDelete(dep, action) {
        yield put(actions.showAreYouSurePopup());
        const result = yield take([types.DELETE_POPUP.YES, types.DELETE_POPUP.NO]);
        yield put(actions.hideAreYouSurePopup());
        if (result.type === types.DELETE_POPUP.YES) {
            yield put(actions.showThinking());
            yield call(dep.server.deleteItem, action.itemId);
            yield put(actions.stopThinking());
        }
    }

Up until here, I believe we both agree in the usage of sagas as a descriptive way to write your business logic. It's a very powerful tool, that can easily be read and tested. (correct me if I'm mistaken and you disagree).
However, here's where I personally am willing to "pay" in all the advantages you've mentioned, in order to achieve something else: readability. Instead of throwing actions that change the state using reducers (even the generic reducer you suggested), I want to change the state in the saga. And furthermore, in some sagas i DO want to access the state (which tightly couples the saga to Redux state).
Why? Because I feel that the advantage of having your entire business logic flow concentrated in one place makes development, debugging, and refactoring of business logic ten times easier. To be honest, I believe the 'payment' in complexity I'm paying navigating between different files and flows due to logic split between reducers and sagas accumulates to much more (in terms of developer hours) than the payment I would pay if I ever want to refactor my code from Redux to Backbone (I'll probably do that once every 2-3 years, compared to debugging I do all the time).
So to comment specifically on things you said:

Saga not accessing other storage - I agree, but I view it differently. For me there's the constant pairing of <Saga, Reducer>, and I feel that each pair should have a single 'database' (the specific path in the store). I don't believe pairs should access other pairs 'storage', but I think in the pair it should be perfectly valid and logical to have the saga access the store it manipulates.

Coupling sagas and redux states - again, I'm willing to pay in this coupling to have clearer and easier code to follow and debug. I don't really think we will move away from redux without also changing the sagas on one hand, and at the same time I'm willing to let "Yoav of 2018" pay the price for this decision so "Yoav of 2016" will have an easier time following the flow of the system.

Events for other sagas/plugins - I agree - I'll be honest that this point is making me reconsider my solution. Let me think about this :) I might design a special structure of events that you can explicitly define how they need to change the state.

Hot reloading - I think when you move to redux-saga you generally release any hot-reloading of your business logic, and focus your hot reloading only on your React layer. I don't think my structure makes hot reloading less feasible on the "Flux" level then it is right now.

Again, thanks for your comments.

Hi,
I understand your point. As far as I understand your delete button is a lot coupled to your delete confirmation popup, and emitting open/close events, and having to maintain a reducer for the popup feel like a lot of complexity.
In distributed systems you could say these 2 components are part of the same microservice (or bounded context) that handles the whole deletion of your item. Then if it's perfectly clear that the 2 components and the saga act inside the same bounded context, I think it's fine if all 3 knows about the state shape. I've done that in the past too.
Your bounded context of the item deletion is composed of a delete button, a delete popup, and a saga that orchestrate the button with the popup.  Ideally, only this widget can select or connect state from its store subspace. The widget act somehow like a microservice which has its own private/internal database, and it's database is actually mounted inside the Redux store. This way we preserve the decoupled advantages.

However, for your specific usecase, it's very rare that we need to listen to confirmation popup open/close events from other parts of your system. Generally these operations are actually to consider as implementation details of your widget, and maybe it's not worth it to expose them as widget API.
What I mean is, in my opinion, if you are concerned with boilerplate, it's really much easier to handle the delete confirmation popup and the spinner with React local component state. Yes, you will loose the ability to hot reload the confirmation modal and the spinner, but it really isn't a big deal imho unless it's very important to you.
If you want the confirmation popup to be appended to the document body (for z-index reasons), I'd recommend using a portal which is very useful to reduce this kind of boilerplate.
For example you could have:
React.createClass({
  getInitialState() {
    return { confirmationPopup: false };
  },
  render() {
    return (

 this.setState({confirmationPopup: true})}>Delete item

          {this.state.confirmationPopup && (
              <Portal>
                 <ConfirmationPopup
                      onCancel={() => this.setState({confirmationPopup: false})}
                      onConfirm={() => this.props.onDelete())}
                 >
              </Portal>
          )}

    );
  }
})

Even if the portal is deeply nested, it gets appended to document body.
For "positionned portals" you can use react-tether which is extremely convenient and permit to avoid the mess of relative positionning and z-index management.
For spinner, you can also use local component state, and make your actions return promises. It can also be helpful if you make the prop functions (onDelete) return the deletion promise, so that deeply nested components can eventually decide to show a spinner.
Doing all this will generally reduce a lot the boilerplate of your application, and in my experience the tradeoff for using these shortcuts is not a big deal

@3LOK I don't really have a strong opinion against bypassing reducers. Perhaps many Redux users will find this shocking, but I've seen this quite often in FRP examples (RxJS, Bacon) where we produce a stream of update functions which get merged and applied to some central state (Maybe because in those systems there is no explicit concept of action).
But I think this is beyond the scope of redux-saga as a middleware. Even If we want we can't actually because there is no way for a middleware to change state in the store; In fact, the only way to change state in Redux is through dispatching actions to reducers. But then you can implement this by yourself by dispatching a specific action 'CHANGE_STATE' which will be handled by a generic reducer
function genericReducer(state, action) {
  return action.updateFn(state)
}

// make an Effect creator
const changeState = updateFn => put({ type: 'UPDATE_STATE', updateFn })

function* saga() {
  yield changeState(state => ...)
}

But I think the issues raised by @slorber remains pertinent.  Sagas are fundamentally Event driven; and the advantage of dispatching actions is that an action can be handled by other Sagas.
It may be not obvious because as @slorber mentioned, in your application you have so many bounded contexts (logic that is local to a specific component).
The main benefit of Redux (and Flux solutions in general) is to externalize some global piece of logic: I mean some piece of state used by multiple UI components and also can be updated as a  side effect of many local updates (The Facebook Chat example is a good illustration). So if in your applications you dont have much of this global logic the Redux architecture (actions/reducers) may seem an unnecessary overhead to use for all local state updates.

Events for other sagas/plugins - I agree - I'll be honest that this point is making me reconsider my solution. Let me think about this :) I might design a special structure of events that you can explicitly define how they need to change the state.

You may want to take at this article
Using React (-Native) with Redux and Redux-Saga. A new proposal?
If you abstract away firing actions whose specific purpose is to update the state, and replace them by updating the state directly (by dispatching instead functions which will update the state) you may find the purpose similar to you proposal.


Track app errors

We probably want to track errors (caught and uncaught)
like services dying, networking / serialisation failures, and app crashes
@kimar are you already using something like these?
https://rollbar.com/
http://www.crittercism.com/
https://try.crashlytics.com/

Hi, I've been using Fabric.io on iOS but I wouldn't mind if you said that another service is more suitable.
I'd leave this up to you.
You probably wouldn't want to check in the App Key / ID for the service, right?

No preference, fabric.io looks fine to me.

@kimar can that fabric account be shared?

Yeah I'd just need to securely send you the credentials somehow.

But maybe you can have multiple members in your project?

:facepunch: sure we can! shoot me your mail address at<EMAIL_ADDRESS>

After a while the app stops reporting fences, I guess this is related to some error in the service. Fabric should help us to track this.

Cool, thx for looking into this. Just out of experience also take things like backgrounding into your mind. Tricked me more than once on iOS. Don't know how this works in general on Android though.

Not even sure what that term implicates... Anyway, we only react on fences which google tells us about

I guess we can also close this one


expose AudioContext as a read only property

It will be helpful if you expose the underlining  AudioContext so we can use it for such things as an audio visualizer

It's a good point! Thanks @zivni!
How would u like to get it? I think it would be also useful to export it from the AudioPlaylist, right?

As a read only  property.  Just like the state

@zivni just released a new version of ts-audio adding audioCtx in both Audio and AudioPlaylist.
Thanks for your suggestion dude!


Add option for dask.dataframe.from_delayed to not combine dag of delayed tasks

I recently realized that when initializing a dask dataframe using dask.dataframe.from_delayed, the dag of the delayed tasks seems to be combined into one single node. This is not ideal for some situations when certain nodes on the dag are expensive and can be reused. Is it possible to add an option to not do this?
Example:
import dask
import dask.dataframe as dd

def data():
    return pd.Series([1,2,3])

def process_data(data):
    return data

data = dask.delayed(data)(dask_key_name='data')
processed_data = dask.delayed(process_data)(data, dask_key_name=f'process_data({data.key})')
ddf = dd.from_delayed(processed_data, meta=(None, int))
cl.compute(ddf)

Does anyone know more about this? Is there some option that already exists but I'm not aware to achieve this?

Thanks for raising an issue @yiliema. When I run your example, I see separate tasks run for the data, process_data, and from_delayed steps. For example
import dask
import dask.dataframe as dd
import pandas as pd
from dask.distributed import Client, LocalCluster, wait

def data():
    return pd.Series([1,2,3])

def process_data(data):
    return data

data = dask.delayed(data)(dask_key_name='data')
processed_data = dask.delayed(process_data)(data, dask_key_name=f'process_data({data.key})')
ddf = dd.from_delayed(processed_data, meta=(None, int))

cluster = LocalCluster()
client = Client(cluster)

f = client.compute(ddf)
wait(f)

tasks = cluster.scheduler.tasks
from pprint import pprint
pprint(tasks)

outputs
{"('from-delayed-83ed1db18d78ee27840321f7996afc0a', 0)": <TaskState "('from-delayed-83ed1db18d78ee27840321f7996afc0a', 0)" released>,
 'data': <TaskState 'data' released>,
 'finalize-73c37c917ec3a84a058289c3d894369f': <TaskState 'finalize-73c37c917ec3a84a058289c3d894369f' memory>,
 'process_data(data)': <TaskState 'process_data(data)' released>}

Where you can see four separate tasks have been computed.
Do you get a different output when you run the code snippet above?

@jrbourbeau that's weird, I do see a different output where I only get 3 tasks, and data and process_data are combined together.
{"('data-process_data(data)-from-delayed-83ed1db18d78ee27840321f7996afc0a', 0)": <Task "('data-process_data(data)-from-delayed-83ed1db18d78ee27840321f7996afc0a', 0)" released>,
 "('from-delayed-83ed1db18d78ee27840321f7996afc0a', 0)": <Task "('from-delayed-83ed1db18d78ee27840321f7996afc0a', 0)" released>,
 'finalize-73c37c917ec3a84a058289c3d894369f': <Task 'finalize-73c37c917ec3a84a058289c3d894369f' memory>}

My dask version is 2.30.0, perhaps it's too old?

Ah, I see. Yeah there have been a lot of changes since 2.30.0. If you upgrade to the latest release (version 2021.05.1) then those tasks will automatically not be fused. Otherwise, you can set dask.config.set({"optimization.fuse.active": False}) at the top of the code snippet, which should result in the same (non-fused) behavior.
cc'ing @rjzamora for visibility as this is a place where disabling low-level fusion by default for DataFrames has popped up in the wild

Thanks for the insight! I will close the issue.


chore(main): release 2.7.2

:robot: I have created a release beep boop
2.7.2 (2024-01-01)
Bug Fixes

Greta fixes ❤ (eb97f8d)
Greta fixes ❤ (#82) (6a687ea)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/Hessuew/flamethefreeze/releases/tag/v2.7.2 :sunflower:


vscode ignores files.watcherExclude

Environment data

Language Server version: 2022.6.30
OS and version: Ubuntu 20.04 LTS
Python version: 3.8.10 (default, Mar 15 2022, 12:22:08)
Visual Studio Code version: 1.68.1

Expected behavior
PyLance watches all files that are relevant to the project, but ignores files that are listed in the VSCode setting files.watcherExclude
Actual behavior
PyLance ignores files.watcherExclude
Description
This is a possible follow-up to #2914.
I work with a SSH remote host; on this host I am not able to adjust the maximum number of inotify watches.
PyLance immediately opens the maximum amount (8172) of file watches, using up all resources. Because of this, basic system commands such as journalctl -f stop working properly while VSCode is connected to the remote system.
When inspecting the inotify watches I can see that pylance is monitoring many files in /usr/lib/python3.8, /usr/lib/python3/dist-packages, /opt/ros/noetic/lib/python3/dist-packages.
I attempted to blacklist these folders through the files.watcherExclude setting by adding entries such as /usr/lib/python3/** but this had no effect.

@mic-e vscode should respect the option and exclude folders from watching. I also just tested it myself on windows and confirmed that it works as expected. if it didn't work on linux, It sounds like a bug in vscode file watcher implementation.

@mic-e it looks like github doesn't allow me to transfer this issue to vscode repo. can you open new issue on vscode repo (https://github.com/Microsoft/vscode)? vscode should respect the option, if not, vscode side needs to fix the bug.

That issue explicitly states that manually provided exclude folder list is ignored.
I am not really interested in workarounding aggressive file watch strategy (if I understand the case properly).
What is a root change that caused all that issue? Is it an update in Pylance?

I also had this issue on Centos 7, where I cannot control the maximum number of inotify watches.
I believe the mentioned issues (microsoft/vscode-remote-release#6436, microsoft/vscode#137872) are when they try to use glob pattern. For now on Linux, the vscode team recommended to use the full path or relative path to the workspace directory.
I did try with the full path:
"files.watcherExclude": {
    "${workspaceFolder}/.venv": true,
    "/home/user/anaconda3/lib/python3.9": true
}

Without activate pylance, I didn't have any error. As soon as I open a python file, I got file watcher error:
[error] [File Watcher (parcel)] Inotify limit reached (ENOSPC) (path: /home/user/anaconda3/lib/python3.9). So it watches the excluded folder outside of the workspace.
This is related to the issue #2914 and is said to be fixed in version 2022.6.30. I tested on that version and the latest, and it still doesn't work.


[ToB Audit] #6: Passwords are accessible via shell history (if passed in as arguments)

Description
The deposit CLI tool allows passwords to be supplied as command-line arguments, enabling password leakage through operating systems, such as terminal shell history and execution of ps or similar commands.
The tool allows specification of a password through command-line arguments:
$ python3 ./eth2deposit/deposit.py --password="mypassword"

However, while accessing the shell history in a terminal window, the password is leaked in
plaintext:
516 python3 ./eth2deposit/deposit.py --password="mypassword"
517 bash history

Exploit Scenario
Alice uses the Deposit-CLI to generate secret keys on her machine with a command line argument --password='12345'. An attacker, Eve gains access to Alice’s machine and looks through previously run commands on the terminal and finds the password used to secure the BLS signing key. In combination with #98, Eve also has access to the sensitive keys stored in the files.
Recommendation
Short term, do not allow users to use the command line argument to specify passwords.
Long term, minimize the usage of sensitive information and ensure secrets are not exposed via operating system logs.

pro tip: If you start any shell command with and space, it will not be saved in history


transition problem with pageCurl transition & didFinishAnimation

The adaptation to SwiftUI works great thanks.
I needed this for pageCurl transition and not the scroll transition. However, the transition animation does not work properly. The top page curls up nicely and the next page is visible behind it. However, when the animation is complete the second page curls away too leaving a blank white page.   There is an error message shown "Unbalanced calls to begin/end appearance transitions" .
Two things - (1) this problem does not occur when the transition type is scroll -only there for pageCurl type.  (2).  if I comment out the UIPageViewControllerDelegate method didFinishAnimating finished the problem goes away - the transition works nicely.
I am not sure that the problem is your code, because I get the same problem just using the code in the tutorial from Apple ( https://developer.apple.com/tutorials/swiftui/interfacing-with-uikit ) .
I can send you the complete example if needed.    I am hoping that you can figure out a solution.

If this doesn't happen only with Pages then it seems it's an underlying problem with the
UIPageViewControllerDelegate. We'll need to wait for Apple to fix it.


VSCode - Workspaces fail to load in remote repositories

The bug
I was trying to navigate a remote workspace in vscode, but the RA extension flat-out failed to load correctly. The error is:
[ERROR rust_analyzer] failed to find any projects in [AbsPathBuf("C:\\Program Files\\Microsoft VS Code")]

Steps to reproduce

Open any repository (such as https://github.com/alexheretic/glyph-brush) in vscode using the Github Repositories extension.
Observe the error pop-up rust-analyzer failed to discover workspace

I'm not sure if support by RA for vscode remote workspaces is planned or not; in any case, I thought I'd at least post this as a bug.
rust-analyzer version: 7d6fcbc0b 2021-12-06 stable
rustc version: rustc 1.55.0 (c8dfcfe04 2021-09-06)

I don't think this is actionable. That extension doesn't actually download the files to your file-system, so rust-analyzer can't really perform any meaningful analysis. To quote the limitations section:

When you work in a traditional git workflow (i.e. git clone), files are saved to your computer’s local file system. But when working with GitHub Repositories, the code doesn’t live on your local computer: it’s still just on GitHub. You work with the code through a virtual file system, which is an abstraction that simulates having local files while getting the content from somewhere else; GitHub in this case. When you open a workspace on a virtual file system, it’s known as a virtual workspace.

And although rust-analyzer can probably populate its vfs from this extension (assuming there's a means to list and read files from it...), stuff like cargo still very much rely on the files existing somewhere on disk.

Ah fair enough. I forgot that RA depends on cargo. Ah well, it's not the end of the world.
Side note: What exactly is the purpose of a vfs if applications need to be explicitly programmed to support it? Isn't the whole idea behind a vfs that it emulates a real file system, and behaves exactly like one?

What exactly is the purpose of a vfs if applications need to be explicitly programmed to support it? Isn't the whole idea behind a vfs that it emulates a real file system, and behaves exactly like one?

A lot of Code extensions are written in TypeScript and don't depend on native code, so they can be updated relatively easily to work in the browser or remotely. rust-analyzer is a Rust program and uses cargo and the Rust standard library source code, so that's harder (although we have a sample WASM build with a more limited feature set).
But we do support remote development (the old SSH/WSL/Docker features of Code).

Ah sorry, I was making an incorrect assumption.
I was assuming that the Github Repositories extension creates some sort of OS-native vfs, and then through which vscode (and extensions) can access the files. But now I'm assuming that's not the case, and rather, the github extension "fakes" it within vscode.
It seems that Windows does have a concept of a "virtual file system", but it actually needs to be implemented and written (and is probably quite complex to do so I imagine), and I'm guessing the Github Repos team didn't actually do that? Hence why cargo doesn't "just work", since it exists outside of the repo extension.
In regards to running in the browser, I totally get why RA would have trouble, since it has to run in WASM and that's more limited than native code.

It seems that Windows does have a concept of a "virtual file system", but it actually needs to be implemented and written (and is probably quite complex to do so I imagine), and I'm guessing the Github Repos team didn't actually do that?

So does Linux, but yeah, I doubt that a Code extension is going to use it.

Aight. That's cleared up my confusion.
Seems a bit half-arsed if you ask me, but I guess I can't really complain since it's free and all.