Theme selection reset

Hi there,
I just faced an issue with my certificate which was expired:
miniflux -version
2.0.11

/etc/debian_version
9.5

browser:firefox 63.0+build2-0ubuntu<IP_ADDRESS>

Miniflux logs:
● miniflux.service - Miniflux Feed Reader
   Loaded: loaded (/lib/systemd/system/miniflux.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-11-09 16:57:28 CET; 1min 49s ago
 Main PID: 611 (miniflux)
    Tasks: 7 (limit: 4915)
   CGroup: /system.slice/miniflux.service
           └─611 /usr/bin/miniflux

Nov 09 16:57:28 web01 systemd[1]: Started Miniflux Feed Reader.
Nov 09 16:57:31 web01 miniflux[611]: [2018-11-09T16:57:31] [INFO] Starting Miniflux...
Nov 09 16:57:31 web01 miniflux[611]: [2018-11-09T16:57:31] [INFO] [Worker] #0 started
Nov 09 16:57:31 web01 miniflux[611]: [2018-11-09T16:57:31] [INFO] [Worker] #1 started
Nov 09 16:57:31 web01 miniflux[611]: [2018-11-09T16:57:31] [INFO] [Worker] #2 started
Nov 09 16:57:31 web01 miniflux[611]: [2018-11-09T16:57:31] [INFO] [Worker] #3 started
Nov 09 16:57:31 web01 miniflux[611]: [2018-11-09T16:57:31] [INFO] [Worker] #4 started
Nov 09 16:57:32 web01 miniflux[611]: [2018-11-09T16:57:32] [INFO] Listening on "<IP_ADDRESS>:25443" by using certificate "../ssl/fullchain.pem" and key "../ssl/privkey.pem"
Nov 09 16:59:15 web01 miniflux[611]: 2018/11/09 16:59:15 http2: server: error reading preface from client <IP_ADDRESS>:40534: remote error: tls: expired certificate
Nov 09 16:59:16 web01 miniflux[611]: 2018/11/09 16:59:16 http2: server: error reading preface from client <IP_ADDRESS>:40538: remote error: tls: expired certificate

So, I stopped the service, I deleted the two files, copied the new one and then start the service which looked fine:
● miniflux.service - Miniflux Feed Reader
   Loaded: loaded (/lib/systemd/system/miniflux.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-11-09 17:04:28 CET; 1s ago
 Main PID: 715 (miniflux)
    Tasks: 7 (limit: 4915)
   CGroup: /system.slice/miniflux.service
           └─715 /usr/bin/miniflux

Nov 09 17:04:28 web01 systemd[1]: Started Miniflux Feed Reader.
Nov 09 17:04:28 web01 miniflux[715]: [2018-11-09T17:04:28] [INFO] Starting Miniflux...
Nov 09 17:04:28 web01 miniflux[715]: [2018-11-09T17:04:28] [INFO] [Worker] #0 started
Nov 09 17:04:28 web01 miniflux[715]: [2018-11-09T17:04:28] [INFO] [Worker] #1 started
Nov 09 17:04:28 web01 miniflux[715]: [2018-11-09T17:04:28] [INFO] [Worker] #2 started
Nov 09 17:04:28 web01 miniflux[715]: [2018-11-09T17:04:28] [INFO] [Worker] #3 started
Nov 09 17:04:28 web01 miniflux[715]: [2018-11-09T17:04:28] [INFO] [Worker] #4 started
Nov 09 17:04:28 web01 miniflux[715]: [2018-11-09T17:04:28] [INFO] Listening on "<IP_ADDRESS>:25443" by using certificate "../ssl/fullchain.pem" and key "../ssl/privkey.pem"

When I came on my page, I saw the theme displayed was the default one, but in my settings it was still on "Black", I needed to click on "Update" to make it works again.
Anyone already faced it?

Duplicate of #270 ?

Absolutely not.

I don't think the SSL certificate issue is related to the theme selection. Try to flush the Miniflux cookies, flush the sessions on the server miniflux -flush-sessions. Then try again. Take look to the cookie flags in your browser console just in case.

When following this, I have no issue with the theme. Well, I mean the login page is default theme, but once I logged in, it switched to the good one.


Authentication to Vault failed

Describe the bug
After setting up, when creating an application on ArgoCD, application cannot be created with error message:
Put "http://<IP_ADDRESS>:8200/v1/auth/approle/login": dial tcp <IP_ADDRESS>:8200: connect: connection refused
I used curl with the role-id and secret-id that was used as AVP env variable in the argocd-vault-plugin-credentials secret. The approle has been configured to have unlimited number of usage, and ttl=0.  Here, it is in payload.json.
grace@ws2:~/code/learning$ curl     --request POST     --data @payload.json     http://<IP_ADDRESS>:8200/v1/auth/approle/login | jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   594  100   487  100   107   7730   1698 --:--:-- --:--:-- --:--:--  9428
{
  "request_id": "<request-id>",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": null,
  "wrap_info": null,
  "warnings": null,
  "auth": {
    "client_token": "<client-token>",
    "accessor": "<accessor>",
    "policies": [
      "default",
      "internal-app"
    ],
...
}

I have also verified that my approle is tied to a proper Vault policy and successfully retrieved  with the secret path using curl. The Vault URL is up during this time and Vault address found using the VAULT_ADDR variable inside the vault pod.
To Reproduce
Steps to reproduce the behavior:

Set up Vault
Follow the repo's Medium article

Expected behavior
ArgoCD is able to create an application
Screenshots

Additional context
N/a

Facing the same issue, any hints?

@gracenng where is your Vault running?
When you use <IP_ADDRESS> in Kubernetes, it is not the same as <IP_ADDRESS> on your machine. There are ways you could set that up but running Vault in Kubernetes makes things a little easier.
If you run Vault in Kubernetes, you'd want to try and connect via the service Kubernetes service. So instead of <IP_ADDRESS>:8200 you'd have something like vault.vault-namespace:8200 Here are some docs on running Vault on Kubernetes: https://www.vaultproject.io/docs/platform/k8s/helm/run.
If you ran AVP outside of Argo CD and Kubernetes connecting to <IP_ADDRESS>:8200 i am betting it would work. So it's not an AVP issue but an issue of being able to access something on a localhost from inside a cluster.

To add to the above, where did you run the curl test? If you ran it from a shell on your machine, that's not a representative test, since localhost and the k8s network are distinct (even if you're running k8s locally) - you should try running the test from a pod in your k8s cluster. You can use something like the busybox image to do that. If you do this test from another pod in your cluster and get a failure to connect to Vault, I'd conclude AVP is not the cause of your problem.

Thank you both, I'll give that a try. I was running curl from my local shell and Vault is on my cluster

Hi there,
I am using version 0.3
I was able to start the argocd application but the secret is not being injected.
kind: Secret
apiVersion: v1
metadata:
  name: example-secret
  annotations:
    avp_path  : "internal/data/config"
type: Opaque
stringData:
  sample-secret: <username>

I was able to take @jkayani suggestion and curl the secret from this path with the token of this approle from an alpine pod:
curl --header "X-Vault-Token:<approle-client-token>" http://<vault-url>/v1/internal/data/config | j
q .
{
  "request_id": "<request-id>",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "data": {
      "username": "password"
    },
...

When I get the secret created, it's just the encoded version of the "" I put in. I'm quite confused as the curl from pod worked and the process was quite smooth so it's hard to debug.
Any pointers appreciated

@gracenng If the secret is being applied with an encoded <username> then that probably means that AVP is not actually running. I would check to make sure your application is using AVP as the custom plugin.
That being said, version 0.3.0 is very old and i recommend upgrading to 1.x.

Can you run AVP as a CLI outside of Argo CD with yamls and see if that works? If so, then there is most likely a configuration issue on your setup in Argo CD

Thanks for the speedy reply @werne2j .

I checked the argocd-repo-server pod and the avp CLI was functional, and I chose AVP as the plugin on the UI. Did I miss anything here?
I upgraded AVP inside the cluster and got the same locally, version 1.1.0 and updated the annotations accordingly. I'm now facing a new error: "https://<IP_ADDRESS>:8200/v1/auth/approle/login": dial tcp <IP_ADDRESS>:8200: connect: connection refused

I do not have <IP_ADDRESS>:8200 configured anywhere. The argocd-repo-server and argocd-server pods were restarted after the config secret is deployed.
This error also occurs locally with config file same as before, where VAULT_ADDR is the pod IP
I also put AVP_VAULT_ADDR as an ENV variable in the plugin UI but the same error persists.
Sorry for the bother and thank you for your help

@gracenng for 1.x AVP_VAULT_ADDR was changed to VAULT_ADDR

Working now, thank you very much!

Glad you got it working!


Beta 1.10: Format of Temporal Coverage Messed Up

Testing time series resource on beta.hydroshare.org - the format of the temporal coverage is messed up.  It should be:
mm/dd/yyyy hh:mm:ss
Instead - this is what is currently shown:

@horsburgh to test and close if OK

This seems to be fixed on beta.hydroshare.org. Closing.


Add more height to player

@petterarvidsson yes, much better! :+1:

I think I found the collision detection bug now.

Nice!


Purchased product status when it's should be purchasable

My steps:

login with sandbox user A
purchase product 1
logout user A
as a result in the app I still see the status of product 1 as purchased
login with new created sandbox user B
and again product 1 is still purchased, even for the new user

I would expect to have product 1 be only in purchased status for the user A. Am I doing something wrong or it's a bug?
I also tried to reinstall the app, didn't help.

Looked at all the tickets, based on that https://github.com/benjaminmayo/merchantkit/issues/27 it is expected behaviour.


Complex Text Example

I ran into a problem trying to recreate this example from the konva website.
http://konvajs.github.io/docs/shapes/Text.html
The nesting of the text inside of the rectangle doesn't work. However, if I render them separately the text shows up fine.
http://jsbin.com/kukibo/edit?js,output

This is expected behaviour.
Shapes (such as Rect, Circle, Image, etc) can not have children elements. Only Stage, Layer and Group can have nested elements.
Probably it will be better to add warning message when user trying to add child element into Shape node.


Add inventory packets

Adds the inventory packets so we can use them with packet_inspector.

Yeah all PRs are squash merged


why isnt  Matter.body.scale (body, scaleX, scaleY) working?

i am trying to scale a body called cupcake,  it isn't working, it keeps throwing errors like "Uncaught TypeError: Cannot read properties of undefined (reading 'scale')"

Could you share the line of code where this error is raised from?


Second topic of Python 2

Python2 errors section, again lifted: http://swcarpentry.github.io/python-novice-inflammation/07-errors.html

:+1:


Complete destroy raises Error when reading or editing Repository ... "../marketing-analytics"

$> terraform -chdir="${TERRAFORM_RUN_DIR}" destroy

Raises:
╷
│ Error: Error when reading or editing Repository: googleapi: Error 400: Resource '"projects/maj-uat2/locations/us-central1/repositories/marketing-analytics"' has nested resources. If the API supports cascading delete, set 'force' to true to delete it and its nested resources.
│
│
╵

This is an expected behaviour and limitation from Dataform Terraform Resource.
You need to delete manually before proceeding.


ender IO refined storage conduits requires a newer version than is publicly available.

EnderIO: 5.0.427
EnderCore: 5.29
Minecraft: 1.12.2

https://pastebin.com/HaRL6eLS

There is nothing we can do about this, -34 is the only version that exists for dependencies.

34 should be available on Cf now


Added cellStyles prop to MonthViewCalendar

I wanted to increase the height of the cells, but currently you can only do that with content inside each cell.  Editing cellStyles allows you to change the styles of every cell, including minHeight.
Right now, this packaged is patched in my project to include this feature, but I hope you accept this pull request so that others can take advantage of this.

Excuse me for taking so long.
This was added in the last version cellStyles property, and added to table properties


[backport 17.06] Overlay fix for IP reuse

Restore previously reverted fix: https://github.com/docker/libnetwork/pull/1792
Backport fix that ensure proper OS thread locking: https://github.com/docker/libnetwork/pull/1911

Please sign your commits following these rules:
https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "overlay-fix-backport" git@github.com:fcrisciani/libnetwork.git somewhere
$ cd somewhere
$ git rebase -i HEAD~842354087136
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.


Support blogs which require logins

Would be great to be able to supply user agent / cookie / header data / some other method to enable downloading blogs that require logins.
Not talking about bypassing the protection, just about using the credentials I have to log in and download the blog.

Interesting idea - I'll consider it. But specifically, what kind of authorization would you like to include? I need to prepare a test blog with authorization to be able to implement anything here...
I'll leave this idea as an open issue, I've neglected this project a bit in the last few weeks - but I'm very close to releasing the Android version. I don't want to make empty promises, but maybe I'll manage to do it by the end of the year. Thanks for reporting this need.

Was thinking of the blogger blogs that only allow certain authorized users - they present a login page to access them.
I assume that spoofing user agent/cookie/etc or something would work, just requires the user to copy those out of an authorized session on the desktop.


[MyCollection] Finish up core features

The type of this PR is: Enhancement
Description
This PR somewhat brutally defeats the scoped PR rule but was moving fast. Finishes up the raw core stuff for my collections, namely

Adding
Editing
Deleting
And seeing stuff update on the screen after these actions are complete

Also noticed in @ds300's PR that some stuff was moved around, and the My Collections state stuff was stored under a consignments state key. I assume this was done because this work was under a Consignments folder, but that was some tech debt that needed to be cleaned up and things have now been moved to /MyCollections and the state key updated accordingly.
⚠ Note that most of the important changes happen in the src/lib/Scenes/MyCollection/State/MyCollectionArtworkModel.tsx file, but due to its size its collapsed in the PR review UI.

PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)

#trivial

@jonallured - reassigned

@pepopowitz - thank you for the detailed response. When I started adding commits to this pr I started feeling 😬 because of the recent convo's around git hygiene, as well as the fact that this PR is something of an exemplary example of what not to do. I made a conscious decision to wing this given the presentation today, but I will certainly give those links a read and be more disciplined about this in the future.
To the rest, thank you for the feedback. I've addressed most comments, and in a few places added TODO's for followup in subsequent PRs.


Remove version: ChilliBits.Spice version 0.11.3

This version is older than what has been set in max-versions-to-keep by the publisher.
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/spicelang/spice/releases/download/0.11.3/spice_x64_setup.msi
Status Code: 200
(Automated message - build 857)


[Feature Request] - Create online user system

I would like to be able to register and save my bookmarks so I don't lose my bookmarks on any device thanks :)

Not possible unless rajarshee has a server (which costs money). This app is 100% free without ads, so no money.

@freya50 Cross device sync is not planned. I will be improving how backups work so that bookmarks, progress, etc. don't get lost.

maybe an auto-backup solution which can backup to some sort of online drive like onedrive or dropbox, etc. (on the second client there would be an auto-restore or a manual one)
any plans in this direction?


feat: disable pwa preview

Why:
Closes: #ID
Describe your changes
Checklist before requesting a review

[ ] My code follows the code style of this project.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[ ] I've updated docs/changelog/changelog_en.md and docs/changelog/changelog_de.md. If I'm a non-German speaker, I've still updated the file with the English version as a placeholder.

fixed


Temporarily patch table types to fix the PR pipeline

Not sure if this is related to https://github.com/openshift/dynamic-plugin-sdk/pull/98 or not, but there are errors in our PR/merge queues around the table component and react-virtualized types.

LGTM

/lgtm

/lgtm


Added PR redirection to a new branch if the target branch was deleted

Added a change the destination branch for those pull requests whose destination branch was deleted as a result of merge.
PR's HEAD changes to HEAD of the merged PR.
Resolves #27062

Looks like a duplicate of https://github.com/go-gitea/gitea/pull/18478 to me, but with a slightly simpler implementation

@denyskon , thx for reply.
Yes, it looks like it.
But the PR you are referring to does not look active. He is almost two years old, and he is still not in master.
But me and our team really needs this feature.
What needs to be done so that we finally see this feature in the next minor version?

This implementation looks clean. I will try to test it out during the next few days :)
I think however that it counts as a new feature, so according to our policy it would not be released before Gitea 1.22

Hello @denyskon. Thanks for the review.
I re-read my code and realized that assigning ctx.Repo.Repository to prTohead.Issue.Repo is not valid in all cases.
I added a condition to check that both issues have the same RepoId. If this is not the case, then Repo is loaded from the database.
I apologize for making changes after the review.

Also, I'm currently wondering how edge cases will behave.
Do we run into any sort of security issue with this implementation, where someone can suddenly see something they are not supposed to see?
So, assume the following example:
We have

public repo A
fork B of A
private repo C

The owner of A has been given collaboration permissions on C.
A opens a PR targeting C and checks delete branch on merge.
Similarly, B opens a PR targeting the base branch of A.
As PR is merged.
So, is Bs PR now targeting C?
Is that a security issue or isn't it?

@delvh According to

A fork of a private repository remains private. So how should A in your case become public? :thinking:

I think that this PR is almost the same as mine (https://github.com/go-gitea/gitea/pull/18478), but it covers even less when mine:
This PR covers only web/repo/pull, but it do nothing with api - routers/api/v1/repo/pull and it should, I think.
And also both PRs do not cover following case:
Repo A.
Repo B is a fork of repo A
PR1 is a PR from B to A
PR2 is a PR from B to PR branch in B
What should happen in case PR1 is merged and deleted ?

PR2 should be closed
PR2 should be retarget to PR1's branch, but in repo B ?
PR2 should be retarget to  PR's target - i.e. to repo A ? But in this case we should also MOVE somehove PR2 to repo A...

So, I think, that we should:

cover all entry points for merging PR's
think of exact behaviour when base PR is targeting another repo

@denyskon , thx for reply. Yes, it looks like it. But the PR you are referring to does not look active. He is almost two years old, and he is still not in master. But me and our team really needs this feature. What needs to be done so that we finally see this feature in the next minor version?

The PR was complete from my point of view. Probably nobody cared about it and I had no time/wish to push this topic. I was just updating PR from time to time. Also I had no time (no experiance in go) to write unit tests for it.

@kvaster
To me, it doesn't matter which PR is merged in the end. As it already has two approvals, it would maybe happen faster here, but I'm also open to reviewing the other PR if needed.
I'd say we need the functionality for the API, which can easily be provided by the function that delvh suggested to add. As for the example you brought up, I don't think we should retarget these PRs as it would basically mean that PRs end up in a repo they maybe weren't intended to, without the author even being notified about it.

@denyskon, to me it always metters if someone is spending his time to help.
I already wrote my concerns about current status of this PR:

Not all entry points for merging PR's are covered.
Behaviour is unpredictable in case base PR is targeting another repo.
pull_service.ChangeTargetBranch error is not checked and merge can fail even if it's not an error

This is not a competition. I really want this feature to be merged aswell. I' ve reopened my PR in case somebody will want to make a review.
https://github.com/go-gitea/gitea/pull/28686

Behaviour is unpredictable in case base PR is targeting another repo.
You are wrong, the behavior is quite predictable. If a redirect has not been made for the PR, then it will be closed as it is now.

I don't think redirecting PR to other repositories is a good idea.

pull_service.ChangeTargetBranch error is not checked and merge can fail even if it's not an error

The error is being checked. Why did you decide that this was not the case?

@delvh in your case PR will be closed. The current behavior remained in place. If the PR has not been redirected to another branch, it will be closed.

@tulzke, seems I've missed - you're really checking if base repo is the same.
For error checking - ChangeTargetBranch emits also following errors which are not errors:
issues_model.IsErrIssueIsClosed(err)
models.IsErrPullRequestHasMerged(err)
issues_model.IsErrPullRequestAlreadyExists(err)

Also deleteBranch is called in reouter/web/repo/pull in two places:
MergePullRequest
CleanUpPullRequest

both should be covered
Also routers/api/v1/repo/pull have method MergePullRequest - this one also should be covered.
As I said before - I really don't know why we should go through this once again.

In the end, I don't care which PR is merged. I just want to see this feature in the next minor release.
I took the logic out into a separate function, and also added a call to the api.
Of the three voiced errors, it makes sense to check only one of them: issues_model.IsErrPullRequestAlreadyExists(err).
It doesn't make sense to check these two errors, because we only work with open PRS:

issues_model.IsErrIssueIsClosed(err)
models.IsErrPullRequestHasMerged(err)

@tulzke, my thoughts about issues_model.IsErrIssueIsClosed(err) and models.IsErrPullRequestHasMerged(err) were only about what should happen if someone will merge child PR concurrently.
Also what do you think about routers/api/v1/repo/pull and CleanUpPullRequest method ?

@kvaster

routers/api/v1/repo/pull

Yes, i added redirect to MergePullRequest.

CleanUpPullRequest

I think you're right.
I hadn't thought about this method before, because I always deleted the branch during the merge.
In this case, the implementation almost completely copies yours, except for the presence of a feature-flag.
@denyskon @delvh @a1012112796 Can we review @kvaster's proposed PR? It looks like everything is ready there.

Okay, I think we can agree on closing this in favor of #28686....

Okay, I think we can agree on closing this in favor of #28686....

Good news, thanks


Undocumented fatal error: INVALID_REQUEST_URI

Sign-in failed: {"code":"auth/internal-error","message":"{"error":{"errors":[{"domain":"global","reason":"invalid","message":"INVALID_REQUEST_URI"}],"code":400,"message":"INVALID_REQUEST_URI"}}"}
           chrome.identity.getAuthToken({ interactive: true }, accessToken => {
              console.log('Token:', accessToken); // THIS WORKS.
              let credential = firebase.auth.GoogleAuthProvider.credential(null, accessToken);
              firebase.auth().signInWithCredential(credential).catch(error => {
                logger.error('Sign-in failed:', JSON.stringify(error)); // FAILS HERE.
              });
            });

hey @richburdon this is a regression bug introduced in 3.6.6. Please switch to version 3.6.5. version 3.6.6 didn't have anything critical in it. The fix should be in 3.6.7. Thanks for reporting this. We sincerely apologize for the disruption.

@bojeil-google -- fantastic! all working (was banging my head here for hours).
thanks very much for the quick turn-around.

Sorry, the fix should be shipped next week. Again sorry for the disruption. I messed up the version number earlier. the fix should be in 3.6.8 and not 3.6.7 which is already out.

Figured it out :). 👍

I am getting this same error "unable to parse token" mentioned in this thread now with Firebase. Is this an old issue, a regression or legitimate error?

It is still existing in V4.8.0


Update k8s related tools, re-generate files

Signed-off-by: Luca Comellini<EMAIL_ADDRESS>
Updates k8s related tools. Ran make update-all with the new version of the tools.
Pull Request Motivation

Kind

/kind cleanup
Release Note

NONE

Hi! I think the PR #5346 already upgrades the Go dependencies.

fixed in #5346


visualize different kind of relations and create the definition directly in the database. Optionally link custom ER diagrams to objects

Is your feature request related to a problem? Please describe.
I want to visualize data lineage (dependencies, references):

references between objects (they are available in metadata and I can extend them by virtual relations, I have all this information in my repositories)
references between columns (I get them by parsing the code of views and most of these references are also available in my repositories)
real and virtual PF and FK together and I want to define them not manually, but I have then already in my database repositories, and I want to create and update the definition in dbeaver from outside dbeaver

dbeaver has

build in ER diagrams for each object - this is fantastic!
virtual PK and FK - this is also great!
But it is hard to maintain the virtual relations because they are stored in JSON with some complicated syntax for entities ("entity": "database://microsoft-177b4c65f69-4b8d1d14f182fa5d/dhw_self/org.jkiss.dbeaver.ext.mssql.model.SQLServerSchema/repo/org.jkiss.dbeaver.ext.mssql.model.SQLServerTable/RepoObject") and I would first need to create this JSON containing these entity names to export all virtual PK and FK from my databases into dbeaver JSON files. Anyway I will try to do.
custom ER diagram

they could be easily defined, created and updated directly from a database in some batch processing. They have a more easy syntax to define relations, than the json
they could be used to visualize also object references and column references (additionally to the build in FK references)
it would be possible to create for each view and table some custom ER diagrams, similar to the build in ER diagrams

containing only neighbor objects
3 different types

FK-PK
references
column references

But custom ER diagrams are only available in the project as additional elements. The are not linked to tables.
Describe the solution you'd like
One idea would be:

dbeaver will automatically create not only FK-based ER diagrams, but also ER diagrams for entity references and entity column references.
Virtual references (between entities and between columns) can be added similarly to how virtual FK can be added.
dbeaver could allow to synchronize the virtual key definition in "data-sources.json" with some tables in some real databases (2-way-synchronization). The best solution would be some build in synchronization
3 kind of ER diagrams are automatically created (not only one): based on FK, based on references, based on column references
These 3 kind of ER diagrams are not only created per table, but also per schema and also per database
creating them on database level is important because references will not stop at schema borders

The next idea is related to custom ER diagrams:
I suggest extending the custom ER diagrams by some information about associated tables (or one associated table).
And if a custom ER diagram is associated to a table it should be available at the table together with the automatic ER diagram:

This would allow creating several custom ER diagrams in batch directly from my databases.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

I tried to visualize relations in PowerBI using graph table visualization (nodes and edges).
It works in some ways, but not in the way I imagine.
I could imagine extending one existing open source project which can interactively visualize relations, using some Javascript features, but the development of this project stopped, I would need to learn golang to extend and maintain this application.
I could learn TypeScript to write some extension for Azure Data Studio (Visual Studio Code)

But I am a database developer and I think it would be much better to use some great existing software then to try to create own solutions in some programming languages I still would need to learn.

Thank you for your ideas. We will investigate what and how can be implemented.


Intiial cni migration

Goal of this PR is to get a basic working version of the CNI plugin for Kubernetes. The means that the plugin provides proper networking for pods, but does not implement addition features such as policy or calico IPAM.

This uses libcalico v0.1.4 - some functions used as no longer supported in the latest libcalico. Is this okay to have for this PR?

That is fine for this PR - we can update libcalico in a subsequent PR.


Application Tab Completely Blank

When viewing the 'Application' tab in the Edge DevTools, the tab is completely blank.  Prior to the latest update, this tab showed items such as the session and local storage.  However, now, the tab shows as empty and is not interactable.
Screenshot for reference:

I've tested this on web applications I'm developing, which I know for sure utilize session storage, generic webpages, and other web apps that I'm not working on myself.  All result in the same blank Application tab.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 2fa670af-d081-4ffd-a78f-017621c3ac26
Version Independent ID: 2fa670af-d081-4ffd-a78f-017621c3ac26
Content: What's New in Microsoft Edge DevTools - Microsoft Edge Development
Content Source: microsoft-edge/devtools-guide-chromium/whats-new/whats-new.md
Product: microsoft-edge
Technology: devtools
GitHub Login: @MSEdgeTeam
Microsoft Alias: msedgedevrel

Thanks for the report. This is a known bug which has already been fixed. If you're still seeing the bug, please file a new issue on our DevTools feedback repository instead, here: https://github.com/MicrosoftEdge/DevTools and let us know the Edge version and OS you are using.
Thanks!

same issue with chromium version 120.0.2210.22 (Official build) beta (64-bit)

Thanks for the comment. 120 is the last version where this bug persists, but the team is working on fixing it there too.
Please follow the status of this bug here: https://github.com/MicrosoftEdge/DevTools/issues/199


Cancel previous CI at new commit

Long-awaited, there is an action for that now, sweet.

Looks good. Looking at the documentation:
This is a GitHub Action that will cancel any previous runs that are not completed for a given workflow.

This includes runs with a status of queued or in_progress.

Did you check how it interacts with 'depends on' jobs? They aren't even queued until the job it depends on is completed or cancelled - from what it says above I'd 'assume' they still go ahead?

I think it cancels the whole workflow, not the step, so the depends on should be canceled too, but haven't tried. May be good to try if you have an example.

I think it cancels the whole workflow, not the step, so the depends on should be canceled too, but haven't tried. May be good to try if you have an example.

Yeah, would be nice if it did - but that wasn't completely obvious from a quick read of the docs.


Issue in logging in via reverse proxy using domain name

I am facing an issue while attempting to app hosted on an Nginx server using a domain name that's been set up with a reverse proxy. I can access the application and successfully log in by using the application’s direct IP address and port (http://xxx.xx.xx.xx:8080/login), but when I attempt to do the same via our domain name (https://files.xxx.xe/login), I am unable to log in.

@ajeshbs  check your nginx config you should enable websockets  on reverse proxy or use caddy server for hosting better than nginx

yup Thanks,enabling websockets in my nginx config works
Added these lines:
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
To location


Disable log requests

We were seeing a very heavy load on the backend, and a spike in database
connections at one point.  We found out that it was because of log
requests.  This is a vulnerability in this php backend system.
We found that this feature is very rarely used, and it was decided that
we would shut it down for now.
It may become a part of the new Admin if we can find a user need for it
in the future.

More elegant to disable this in the infrastructure.


change julia REQUIRE to 0.3

since Colors has no 0.2-compatible tagged versions at this time
ref https://github.com/nolta/Winston.jl/pull/235/files#r37931603

Also noticed in #237. But it would be fine to merge this separately.

Ah, whoops. Saw that you had done the same thing for ProfileView so held off there, but missed this one. Not too critical I think if bigger changes are in the works.


Thenable => Promise; tweak clipboard mock

Split off of #1281

Checklist

[ ] I have added tests
[ ] I have updated the docs and cheatsheet
[ ] I have not broken the cheatsheet

closed in favour of https://github.com/cursorless-dev/cursorless/pull/1322


A question about the event_map.

Here is the code source:
import os
import torch
import h5py
import numpy as np
hdf5_name = r"D:\Code\CV\Deblurring\E-CIR\data\REDS\train_0.hdf5"
data = h5py.File(hdf5_name, 'r')
idx = 0
event_map = data['event_map'][idx]
print(event_map.max())
When running this code, the output is 11. I cannot understand the meaning of the output. Shouldn't it be 1,0 or -1?
Thanks a lot if you could answer my question.

Thanks a lot for your help!


Tasks & Leaderboard tabs don't show all GitHub repos

Bug Description
Tasks and Leaderboard tabs don't show all GitHub repos.
Steps to Reproduce
Steps to reproduce the behavior:

Go to thenewboston -> Community -> Leaderboard
Default on All and 7d
First person is DucFhamTV, click on their topmost task.
They have contributed to Repo: thenewboston-python-client, but this repo is not listed on the left menu.

Expected behavior
All 14 repos need be displayed whether they have tasks or not, have contributors or not.
Screenshots/Recordings

This will have the same problems that are being fixed at the moment in #620. Once we fix that, we can add all repos here & use the same solution for the repos with longer title.

^same as my previous comment, but now it's in another PR - #803

May I know which additional repositories should be added to the tasks and leaderboard?

Is this issue still applicable?

https://github.com/thenewboston-developers/Website/pull/1098

@Hristijan95 @lapstjup @aayushi14 @jamessspanggg
I think we should close this. It doesn't make sense to show all the repos right now. If any team lead wants their repo on the website, they can create a separate issue for it like #1103.
The point is some repos are just for management and will never be added. Also, repos like Website-API are being handled internally.

@thesanjeevsharma


[Bug] [Connector-V2] connector-maxcompute: The source reader may cause data duplication

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
When maxcompute source split enumerator  assign pending splits, the assignSplitOperation is sent to task group worker and  source reader execute pollNext(Collector output) completed, if  split enumerator signalNoMoreSplits Operation
is not  arrived, the pollNext(Collector output) may execute  again. This leads to the set of splits  read more than once. It is easy to hanpened when the cluster's system load is high.
SeaTunnel Version
2.3.7
SeaTunnel Config
seatunnel:
  engine:
    classloader-cache-mode: true
    history-job-expire-minutes: 1440
    backup-count: 1
    print-execution-info-interval: 60
    print-job-metrics-info-interval: 60
    queue-type: blockingqueue
    slot-service:
      dynamic-slot: false
      slot-num: 20
    checkpoint:
      interval: 30000
      timeout:<PHONE_NUMBER>
      max-concurrent: 5
      tolerable-failure: 2
      storage:
        type: oss

Running Command
sh /alidata1/za-seatunnel/seatunnel-2.3.7/bin/seatunnel-cluster.sh -d -r master/worker

Error Exception
There is no exception, but the data of one or more splits is reading repeated.

Zeta or Flink or Spark Version
zeta
Java or Scala Version
java 1.8
Screenshots
No response
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Failed to connect to github.com port 443 after 21089 ms: Couldn't connect to server.
this code may fix it
/*

Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package org.apache.seatunnel.connectors.seatunnel.maxcompute.source;
import org.apache.seatunnel.shade.com.typesafe.config.Config;
import org.apache.seatunnel.api.configuration.ReadonlyConfig;
import org.apache.seatunnel.api.source.Boundedness;
import org.apache.seatunnel.api.source.Collector;
import org.apache.seatunnel.api.source.SourceReader;
import org.apache.seatunnel.api.table.type.SeaTunnelRow;
import org.apache.seatunnel.api.table.type.SeaTunnelRowType;
import org.apache.seatunnel.common.exception.CommonErrorCodeDeprecated;
import org.apache.seatunnel.connectors.seatunnel.maxcompute.exception.MaxcomputeConnectorException;
import org.apache.seatunnel.connectors.seatunnel.maxcompute.util.MaxcomputeTypeMapper;
import org.apache.seatunnel.connectors.seatunnel.maxcompute.util.MaxcomputeUtil;
import com.aliyun.odps.data.Record;
import com.aliyun.odps.tunnel.TableTunnel;
import com.aliyun.odps.tunnel.io.TunnelRecordReader;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Deque;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedDeque;
@Slf4j
public class MaxcomputeSourceReader implements SourceReader<SeaTunnelRow, MaxcomputeSourceSplit> {
private final SourceReader.Context context;
private final Deque sourceSplits = new ConcurrentLinkedDeque<>();
private Config pluginConfig;
boolean noMoreSplit;
private SeaTunnelRowType seaTunnelRowType;
public MaxcomputeSourceReader(
        Config pluginConfig, SourceReader.Context context, SeaTunnelRowType seaTunnelRowType) {
    this.pluginConfig = pluginConfig;
    this.context = context;
    this.seaTunnelRowType = seaTunnelRowType;
}

@Override
public void open() {}

@Override
public void close() {}

@Override
public void pollNext(Collector<SeaTunnelRow> output) throws Exception {
    synchronized (output.getCheckpointLock()) {
        MaxcomputeSourceSplit split = sourceSplits.poll();
        if (null != split) {
            try {
                TableTunnel.DownloadSession session =
                        MaxcomputeUtil.getDownloadSession(
                                ReadonlyConfig.fromConfig(pluginConfig));
                TunnelRecordReader recordReader =
                        session.openRecordReader(split.getSplitId(), split.getRowNum());
                log.info("open record reader success");
                Record record;
                while ((record = recordReader.read()) != null) {
                    SeaTunnelRow seaTunnelRow =
                            MaxcomputeTypeMapper.getSeaTunnelRowData(
                                    record, seaTunnelRowType);
                    output.collect(seaTunnelRow);
                }
                recordReader.close();
            } catch (Exception e) {
                throw new MaxcomputeConnectorException(
                        CommonErrorCodeDeprecated.READER_OPERATION_FAILED, e);
            }
        } else if (noMoreSplit && sourceSplits.isEmpty()
                && Boundedness.BOUNDED.equals(context.getBoundedness())) {
            // signal to the source that we have reached the end of the data.
            log.info("Closed the bounded maxcompute source");
            context.signalNoMoreElement();
        } else {
            Thread.sleep(1000L);
        }
    }
}

@Override
public List<MaxcomputeSourceSplit> snapshotState(long checkpointId) throws Exception {
    return new ArrayList<>(sourceSplits);
}

@Override
public void addSplits(List<MaxcomputeSourceSplit> splits) {
    sourceSplits.addAll(splits);
}

@Override
public void handleNoMoreSplits() {
    this.noMoreSplit = true;
}

@Override
public void notifyCheckpointComplete(long checkpointId) {}

}


revsets don't support # in branch names

Description of the bug
# is a valid char for branch names, but it doesn't seem to play well with revsets:
⋮ ┃
⋮ ◯ b86a555 1d (mr/1229#crc) refactor: Optimize loop
⋮
◆ 2880760 7m (remote origin/main, ᐅ main) Merge branch 'mr/1322'

❯ git hide -D stack\(mr/1229#crc\)
Parse error for expression 'stack(mr/1229#crc)': parse error: Invalid token at 13

Expected behavior
# should be treated like any other valid char for a branch name. In this case, I would expect stack\(mr/1229#crc\) to expand into all of the commits in the stack containing branch mr/1229#crc
Actual behavior
❯ git hide -D stack\(mr/1229#crc\)
Parse error for expression 'stack(mr/1229#crc)': parse error: Invalid token at 13

Version of rustc
rustc 1.61.0 (fe5b13d68 2022-05-18)
Automated bug report
n/a
Version of git-branchless
git-branchless 0.4.0
Version of git
git version 2.32.0

Thanks for reporting. I guess I didn't imagine people using # in branch names since it usually has special meaning in the shell.
As a workaround, can you add an extra layer of quotes, like stack("mr#123")?
The fix should be a simple adjustment to grammar.lalrpop for the Name symbol.

As a workaround, can you add an extra layer of quotes, like 'stack("mr#123")'?

Thanks, that's what I needed. This also helps w/ another case I just ran into while trying to use the (admittedly not fair to the parser) :/pattern git revision format. This doesn't work: descendants(:/^(?!fix)) but this works perfectly descendants(":/^(?!fix)").
Thanks!


Getting subscriptions running

Hi Everyone!
I'm trying to get subscriptions working in some models, so that I can push updated-information to the the frontend after our task-manger has executed certain actions.
However I seem to be stuck on getting a basic subscription running from the docs:
from strawberry import type, subscription
import asyncio

@type
class Subscription:
    @subscription
    async def count(self, target: int = 100) -> int:
        for i in range(target):
            yield i
            await asyncio.sleep(0.5)

When I try out this subscription in graphiql this is the response:
// subscription{count(target:32)}
// yields

{
  "errors": [
    {
      "isTrusted": true
    }
  ]
}

How did I setup the subscription?
# urls
urlpatterns = [
    path('admin/', admin.site.urls),
    path('graphql/', AsyncGraphQLView.as_view(
        schema=schema,
        graphiql=True,
        subscriptions_enabled=True)),
]

# Schema
schema = strawberry.Schema(
    query=Query,
    mutation=Mutation,
    subscription=Subscription,
    extensions=[DjangoOptimizerExtension()]
)

I must admit I was getting confused that needs to be done to actually get the subscriptions running as in one part of the docs you just set AsyncGraphQLView.as_view. subscriptions_enabled to True.  But in other doc's you need to create a new AsyncgraphQlView. Both approaches didn't seem to get me further, so I must be missing something crucial.
Help is tremendously appreciated, feel like I'm going in circles. :-)

Hi @sdobbelaere ,
Probably we need to improve the documentation regarding subscription support within django.
But basically, to use subscriptions you need to be running with ASGI even in development (tip: you can use daphne which will replace your runserver with an ASGI one), and that ASGI server needs to be able to handle websockets connections. For that you can use the channels integration

@bellini666 I see, that put things into perspective indeed.
I'm also noticing in the docs that for non-channel connoisseurs, the section that gives back the channel controle makes things harder than they should.
I'll have a look to clarify the docs while I'm working my way though things to get it running. Feel free to add comments on changes on that pull request when it comes.

@bellini666 I've created a pull-request with my findings getting things running on my end. This should help new users getting things on the rails at least with a counter example.
However, while trying to wrap my models into subscriptions I came across the issue that running Daphne as test-server seems to eliminate the request/user from the context not only for subscriptions but also on the Queries/Mutations.
    return queryset.filter(multi_tenant_company=info.context.request.user.multi_tenant_company)
                                                ^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'request'
Stack (most recent call last):

I see there is a reference to it here: https://strawberry.rocks/docs/general/subscriptions#authenticating-subscriptions
However it merely covers part of the use-case since it only talks about the subscription, but doesnt address that this changes the entire authentication behaviour.
How would you suggest we can mitigate this issue throughout?

However, while trying to wrap my models into subscriptions I came across the issue that running Daphne as test-server seems to remove the request/user from the context not only for subscriptions but also on the Queries/Mutations.

It depends. Indeed the channels integration has a different context kind, and you would need to wrap channels with its own middlewares to authenticate the user, as is suggested here: https://channels.readthedocs.io/en/latest/topics/authentication.html

The channels integration seems to move the user object around quite a bit + authentication wasn't enabled on the supplied router.  This caused some unexpected behaviour in the existing queries and mutations when using ASGI instead of WSGI
I've extended the pull-request to handle this.
As it stands, the queries and mutations seem to be running according to the guide I wrote.
Next I'm wanting to get the models wrapped, just like queries to show real-time data on the frontend.  Which in the end are to be connected to the post-save signal to ensure the updates.   For our projects, this is our end-goal, real-time updates on various models.

Next I'm wanting to get the models wrapped, just like queries to show real-time data on the frontend. Which in the end are to be connected to the post-save signal to ensure the updates. For our projects, this is our end-goal, real-time updates on various models.

I have some similar use cases in my projects =P
Feel free to ping me on discord in case you want some tips on it, and I can share with you some examples


[stable/prometheus-operator] Possible to replace node-exporter recording rules with relabelling?

Is this a BUG REPORT or FEATURE REQUEST?: Feature Request
Which chart: stable/prometheus-operator
What happened:
The alerts and dashboards in this chart appear to be leveraging recording rules to provide compatibility with node exporter v0.16
What you expected to happen:
Since prometheus operator 0.24+ provides some capability for relabelling it may be possible to replace the recording rules with labels. Using recording rules for the purpose of relabelling is bad practice.

Should this issue be moved to coreos/prometheus-operator maybe? We could maybe change the dashboards but not the rules.

I think you're right on this one, the issue is more relevant there


Yaro Manyang Mawel

She needs to enter her full data, as there is no data as of yet. Link to the form: here

Oh this one is already tackled in #224 thx @GhaiTong


Expose previous command's exit status as variable

Background
It is often useful to get the "exit status" of a previous command in a shell session. Many shells expose this as $?. This can be used for a variety of purposes, including but not limited to altering the current prompt.
Elvish handles exceptions in a generally more predictable and safe manner compared to its fellow shells, but even then it may be useful to know if the previous command was $ok or with an error
Proposed solution
Expose a variable (bash uses $?, which is opaque, fish uses $status) that holds either the previous exception, or $ok. This can be thought of as wrapping the eval of each command executed interactively in a ?() and storing the return.

One note: this will necessarily be a feature of the REPL instead of the language itself. There are two reasons: When executing code non-interactively, an exception will always break out of the current scope, so a $status variable wouldn't make sense. For instance, in this code:
fail error # [1]
echo $status # [2]

The code on [2] is never executed, because the exception in [1] would break out of the current scope. To capture exceptions, an outer scope must be introduced with a try/catch form.
However, in a REPL, the code on [1] and [2] can be executed separately, and in that case a $status will make sense. As such it would also make sense to put this variable in the edit: namespace instead of the builtin namespace.

FWIW, See my proposal for how a hypothetical after-cmd hook would behave that is part of the builtin: namespace rather than edit:. That would allow capturing this information and used in whatever form the user desires. Such as displaying in their prompt.

I believe the implementation of edit:after-command added by commit e2f810048 on 2021-03-15 resolves this issue.

This should be closed. A variable such as the POSIX $? isn't useful in Elvish. If you want to display the exit status in your prompt (why?) you can use the edit:after-command hook to capture the exception that occurs when an external command exits with a non-zero status.


Device may not reconnect after TCP socket closed

When testing MQTT reconnection on stabilizer, I observed that stabilizer does not reconnect to the broker after the broker is restarted. The TCP connection appears to properly shut down, but needs further investigation.

The root cause of this appears to actually be that minimq doesn't ever call close() on the TCP socket, which leaves the minimq transmit-side still open. This results in minimq seeing that the socket isn't fully connected, but then also prevents the NAL from reconnecting (because we're still partially connected).


Can't ge tthe Simulated pressure effect with the new version

both were done with mouse
Left is 0.2.0
Right is 0.6.0
what happened?

Your default pressure is probably too high. Try lowering your pressure sensitivity in the settings.

Can confirm with default settings on 0.7.0-dev.

Something like this was never intended, so this was a bug in v0.2. However i just implemented velocity based line thickness in 3dd930b56f314beda9bbcf151834fe9e73403efb which does something similar.


hidden_dim constraint in transformer cuda kernel

I found that there is constraint on the dimensionality when we use the transformer cuda kernel: https://github.com/microsoft/DeepSpeed/blob/d720fdb6857f4b71d922ca1e8efbe5271b5fb7c2/csrc/transformer/normalize_kernels.cu#L232-L250
I wonder what is the reason behind it? Is there any plan to support arbitrary dimensionality? Or, If I want to use hidden_dim=4096 or 8192, what do I need to do to make it work? Thanks.

Hi @szhengac
Thanks for pointing this out. We are currently working on supporting arbitrary dimensions. There will be a code update soon to add this feature. Please stay tuned! :-)
Thanks.
Reza

@RezaYazdaniAminabadi. Thanks for the good work! I will try it when I get some free time.

Hi @RezaYazdaniAminabadi, we recently came across another issue of using DeepSpeed Transformer kernel as shown in https://github.com/microsoft/DeepSpeed/issues/589

Hi @szhengac
Thanks for trying out the new kernels.
I see the issues. Could you please use this PR, https://github.com/microsoft/DeepSpeed/pull/587, and see if the issue is solved?
Thanks
Reza


cannot create android codegen files

I am following the tutorial step by step.
I have reached Js specification of the app info module but when I run yarn codegen:android, I do not see any generated files in the package's android/build/generated/source/codegen directory.
In fact I do not see the build folder at all.
Here is the repo of the project which I did following the tutorial. Can you please check it?

👋 @itsramiel  thx for raising this bug - it seems that codegen process does not work for not linked packages
I made improvements to the Getting Started page, where I added a step for running the app on both platforms after bootstrapping it. Also for Android package, I added a minimal boilerplate for TurboReactPackage instance (without it, the package cannot be linked and as a result cannot be codegened)
In your case, add the boilerplate described in source file stubs section to the app-info-package/android/src/main/java/com/appinfopackage/AppInfoTurboPackage.java file
You can take a look at this screenshot - this is how the codegenerated build files should look like after you add TurboReactPackage

Thanks @mateusz1913. I will revisit the guide next weekend and try again! Thank you!


Remove the section on the My namespace

Type of issue
Outdated article
Description
While it's still technically correct, on desktop workloads, it's not nearly as necessary as it once was.
Page URL
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-directive
Content source URL
https://github.com/dotnet/docs/blob/main/docs/csharp/language-reference/keywords/using-directive.md
Document Version Independent Id
86a1c11a-1d3c-902b-6cf3-5c004c59a856
Article author
@BillWagner
Metadata

ID: 7569e51d-92c7-294a-2d5f-e1ab3c35fdf8
Service: dotnet-csharp
Sub-service: lang-reference

Is the goal to remove the entire "My namespace" section from the document or specify that this is not as necessry in modern desktop workloads?


Unable to get column names of Excel worksheets, except for the first one

Hi,
When running the following code on an Excel file containing multiple worksheets, I should receive a Dataset containing data tables where  each data table represents an Excel worksheet. It should include the datasheet name as data table name, column names and data rows.
My problem - all data tables contain worksheet name and data rows, only the first data table also includes the column names. The other ones does not include column names.
When debugging the code, we can see the ExcelDataReader  (edr) has empty column names for the second and third sheet when the current worksheet is not the first one.
What am I doing wrong here? Is this a bug?
Thanks,
Nir
public DataSet GetXlsAsDataSet(string fullFileName)
        {
            var resultDataSet = new DataSet();

            using (ExcelDataReader edr = ExcelDataReader.Create(fullFileName))
            {
                do
                {
                    string sheetName = edr.WorksheetName;
                    //var firstRow = true;
                    DataTable dt = new DataTable(sheetName);
                    bool firstRow = true;
                    // enumerate rows in current sheet.
                    while (edr.Read())
                    {
                        //for the row titles
                        if (firstRow)
                        {

                            ReadOnlyCollection<DbColumn> columns = edr.GetColumnSchema();

                            for (var columnIndex = 0; columnIndex < columns.Count; columnIndex++)
                            {
                                dt.Columns.Add(columns.ElementAt(columnIndex).ColumnName);
                            }

                            firstRow = false;
                        }

                        // iterate cells in row.
                        // can use edr.RowFieldCount when sheet contains jagged, non-rectangular data
                        //Add rows to DataTable.
                        dt.Rows.Add();
                        int index = 0;

                        for (var i = 0; i < edr.FieldCount; i++)
                        {
                            var value = edr.GetString(i);
                            if (string.IsNullOrWhiteSpace(value))
                            {
                                index++;
                                continue;
                            }
                            dt.Rows[dt.Rows.Count - 1][index++] = value;
                            if (index >= dt.Columns.Count)
                                break;
                        }

                    }
                    resultDataSet.Tables.Add(dt);
                } while (edr.NextResult());

            }
            return resultDataSet;
        }

This was indeed a bug. It is fixed now with 0.4.19 which I just pushed to nuget. It might take a while to show up in the index.
You can simplify your DataSet loading code a bit, by using the DataTable.Load method:
static DataSet GetDS(string filename)
{
    var ds = new DataSet();
    using var edr = ExcelDataReader.Create(filename);

    while (!edr.IsClosed) {
        var dt = new DataTable();
        dt.TableName = edr.WorksheetName;
        // DataTable.Load internall calls NextResult,
        // and will close the reader when the last result is read.
        dt.Load(edr, LoadOption.Upsert);
        ds.Tables.Add(dt);
    }

    return ds;
}

Thank you very much!
Nir


Make New32 and New64 return hash.Hash

Would it be possible to make the xxhash.New32 and xxhash.New64 functions return hash.Hash instead of *XXHash32 and *XXHash64 respectively?
This would bring them in line with other hash implementations in golang, making it easy to consume them in projects that use multiple hash implementations, e.g. https://github.com/elastic/beats (see https://www.elastic.co/guide/en/beats/filebeat/master/fingerprint.html).

That's a fair request, but I'm not sure it'd break current users.
How do you feel about 2 new funcs like NewHash{32,64}?

I think 2 new functions are a good solution to preserving backwards compatibility. Thanks!

Also pushed a new tag v1.2.7 with this fix.

Thanks for the super fast turnaround ❤!

Thanks @OneOfOne


Fix default config creation

Partial fix for #257

This case should be explicitly tested for but I have other things to work on at the moment.


possible bug FTB Skyfactory 3 modpack

Advanced Generators <IP_ADDRESS>
BDLib <IP_ADDRESS>
setup heat exchanger correctly
pumped in lava & water
They don't show in inventory, & are instead voided

I have same issue.
It seems Advanced Generators are not working properly with Extra Utilities 2 pipes/transfer nodes.
Fluid are taken from tanks and voided.
When I attach Ender IO fluid conduits everything is working fine.
Also both Ender IO item conduits and EU2 pipes are not working properly with item output port.
Visually they attach but there is no colored output.
(direct chest connection is working fine)
Advanced Generators - <IP_ADDRESS>
Ender IO - 1.10.2-3.1.164
Extra Utilities 2 - 1.10.2-2.3.1

Sorry for the long delay on the fix.
Fluids getting voided should be fixed with bdlib <IP_ADDRESS>

Also both Ender IO item conduits and EU2 pipes are not working properly with item output port.

This is a known issue, item output ports can only output to something that either implements I(Sided)Inventory or IItemHandler. Chests, barrels, crates, buffers, etc. should work.


How is invalid/non-well-formed JSON handled while parsing

Great to see another JSON parser for AssemblyScript. When dealing with JSON from external sources, it would be great to have some examples to see how erroneous JSON is handled. In particular:

non-JSON, e.g. a missing } somewhere
JSON with extraneous fields compared to the declared type
JSON with mismatching fields compared to the declared type

See also: https://github.com/near/assemblyscript-json/issues/225 – similar problem there

Ah, yes. I'm going to try to do this.
I need a schema checker (https://www.npmjs.com/package/is-my-json-valid)?
And a dynamic checker. (I'll make this myself).
I'll get back as soon as its done!

@trieloff, so sorry I'm so late in getting back. So, json-as does not have any error checking, so the JSON must be checked and verified beforehand. I created json-as to be a simple parser/stringifier that can be easily built off of. So, if you need to verify JSON, i would recommend checking on NPM for a similar package and writing it in AssemblyScript. :)

Maybe using a https://github.com/MaxGraey/as-option here or implement rust-like Result<T>?


JWKS Url Auth

I am trying to verify bulk data , using inferno but not getting the JWKS Url .
Thanks,
Tarun

Did you use program or community?

i was trying to verify it in December, that time , Jwks url was not there, probably on community edition.


[nrf toup] config: align the MCUmgr Bluetooth transport Kconfig

Aligned the MCUmgr Bluetooth transport Kconfig with the latest changes from Zephyr.
Ref: NCSDK-29061

!!!!!!!!!! Please delete the instructions below and replace with PR description
If you have an issue number, please use a syntax of
Fixes #12345 and a brief change description
If you do not have an issue number, please have a good description of
the problem and the fix. Help the reviewer understand what to expect.
Make sure you delete these instructions (to prove you have read them).
!!!!!!!!!! Instructions end

Rebasing after upmerge. No file diff has changed for my PR.


Failed to connect ReferenceError: WebSocket is not defined

I'm brand new to NOSTR and I would like to use ndk to run some NIP-10 experiments.
I'm having some trouble getting started. I'm using node 18.19.1 and here is my script.
import 'dotenv/config'
import NDK from "@nostr-dev-kit/ndk";

const pk = process.env.NOSTR_PUBLIC_KEY
const sk = process.env.NOSTR_SECRET_KEY

if (!pk) throw new Error('NOSTR_PUBLIC_KEY missing in env');
if (!sk) throw new Error('NOSTR_SECRET_KEY missing in env');

const ndk = new NDK({
  explicitRelayUrls: [
      "wss://relay.snort.social",
  ],
  enableOutboxModel: false,
});

await ndk.connect(6000);

My .env file has NOSTR_PUBLIC_KEY and NOSTR_SECRET_KEY defined using keys I generated on Primal. It also has DEBUG='ndk:*'
When I start this program, I see errors.
node index.js                                                              ✔  6s 
  ndk:pool Connecting to 1 relays, timeout 6000... +0ms
  ndk:relay:wss://relay.snort.social:connectivity Failed to connect ReferenceError: WebSocket is not defined
    at file:///home/chris/Documents/nostrbot/node_modules/.pnpm/nostr-tools@1.17.0/node_modules/nostr-tools/lib/esm/index.js:413:9
    at new Promise (<anonymous>)
    at connectRelay (file:///home/chris/Documents/nostrbot/node_modules/.pnpm/nostr-tools@1.17.0/node_modules/nostr-tools/lib/esm/index.js:411:25)
    at Object.connect (file:///home/chris/Documents/nostrbot/node_modules/.pnpm/nostr-tools@1.17.0/node_modules/nostr-tools/lib/esm/index.js:518:11)
    at NDKRelayConnectivity.connect (file:///home/chris/Documents/nostrbot/node_modules/.pnpm/@nostr-dev-kit+ndk@2.5.0/node_modules/@nostr-dev-kit/ndk/dist/index.mjs:73:24)
    at NDKRelay.connect (file:///home/chris/Documents/nostrbot/node_modules/.pnpm/@nostr-dev-kit+ndk@2.5.0/node_modules/@nostr-dev-kit/ndk/dist/index.mjs:742:30)
    at NDKPool.connect (file:///home/chris/Documents/nostrbot/node_modules/.pnpm/@nostr-dev-kit+ndk@2.5.0/node_modules/@nostr-dev-kit/ndk/dist/index.mjs:5344:31)
    at NDK.connect (file:///home/chris/Documents/nostrbot/node_modules/.pnpm/@nostr-dev-kit+ndk@2.5.0/node_modules/@nostr-dev-kit/ndk/dist/index.mjs:5803:36)
    at file:///home/chris/Documents/nostrbot/index.js:26:11
    at ModuleJob.run (node:internal/modules/esm/module_job:195:25) +0ms
  ndk:pool Failed to connect to relay wss://relay.snort.social: ReferenceError: WebSocket is not defined +4ms

I did Ctrl+F on https://github.com/nostr-dev-kit/ndk and I didn't see any mention of websockets. I looked in the examples dir and found hello world which imports websocket-polyfill.
So I tried importing that myself.
import 'dotenv/config'
import NDK from "@nostr-dev-kit/ndk";
import 'websocket-polyfill'

const pk = process.env.NOSTR_PUBLIC_KEY
const sk = process.env.NOSTR_SECRET_KEY
if (!pk) throw new Error('NOSTR_PUBLIC_KEY missing in env');
if (!sk) throw new Error('NOSTR_SECRET_KEY missing in env');
const ndk = new NDK({
  explicitRelayUrls: [
      "wss://relay.snort.social",
  ],
  enableOutboxModel: false,
});
await ndk.connect(6000);

More errors seen.
node index.js
/home/chris/Documents/nostrbot/node_modules/.pnpm/websocket-polyfill@1.0.0/node_modules/websocket-polyfill/lib/index.js:8
    (_a = (_b = global).WebSocket) !== null && _a !== void 0 ? _a : (_b.WebSocket = (0, import2_1.default)("ws"));
                                                                                ^

TypeError: (0 , import2_1.default) is not a function
    at Object.<anonymous> (/home/chris/Documents/nostrbot/node_modules/.pnpm/websocket-polyfill@1.0.0/node_modules/websocket-polyfill/lib/index.js:8:107)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:202:29)
    at ModuleJob.run (node:internal/modules/esm/module_job:195:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:336:24)
    at async loadESM (node:internal/process/esm_loader:34:7)
    at async handleMainPromise (node:internal/modules/run_main:106:12)

Node.js v18.19.1

Any suggestions here?

@insanity54 I saw this yesterday on a project I was updating dependencies for. websocket-polyfill version 1.0.0 is a deprecation of the library and tries to shim in some default browser behavior in a different way. I got the same error as you're seeing when I tried to update. I haven't had time to dig into what the reason behind it is but in the meantime, if you downgrade that library to 0.0.3 it should work just fine for you.

Oh wonderful<EMAIL_ADDRESS>worked for me. Many thanks!


Outdated tools, instructions lacking & hard to implement.

To whom it may concern,
I have been having a difficult time understanding and creating an extension unit DLL.
firstly, the tools are outdated:
You are requesting installation of toolset published in 2003, without any download links.
It would have been nice to have a ready-to-go project which could have been built on VS2019.
How could one build a new UVC Extension unit without this dll?
Even after finding the outdated build tools/environment I am getting linker errors which I cannot find much information about online:
error LNK1181: cannot open input file 'objfre_wxp_x86\i386\uvcxuplgn.obj'
Any help or update on the issue would be highly appreciated.
Best regards,
Tamir.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9d55cadd-9e44-7200-4e65-efd0ca9ead38
Version Independent ID: 7179ce40-024c-4b8e-3191-4a7ca7798f88
Content: Building the Extension Unit Sample Control - Windows drivers
Content Source: windows-driver-docs-pr/stream/building-the-extension-unit-sample-control.md
Product: windows-hardware
Technology: stream
GitHub Login: @barrygolden
Microsoft Alias: bagold

Thanks for bringing this outdated content to our attention, @Tamire.
The content and sample code is currently unsupported and may not work with the current toolchain.  We are tracking this issue internally but have nothing further to add at this time.

error LNK1181: cannot open input file 'uvcxuplgn.obj'
The same error happend to me either, still no sollution


Prevent training without setting up caches.

Add warning for internal functions.
Check number of features.
close #4056 .

@thvasilo Thanks for the pointer.


Replace credentials and db name for tests to hibernaterx

I don't want to have different credentials as defaults for the datastores.
MySQL is not super happy with hibernate-rx as db name, so we are going to replace everything with something that doesn't have special chars

We are going to keep it as hibernate-rx`: https://github.com/hibernate/hibernate-rx/commit/9122e4dba8d7915e8512ba0770a5d576b7e0e233


I want to change config in main controller.

Is there a method to access PacketTunnelProvider config file in HomeController?


libc/machine/xtensa: make longjmp safe against context switch

Summary
This PR intends to make longjmp context-switch safe by disabling the interrupts before modifying windowbase and windowsstart to avoid register corruption. This PR is related to an issue first observed on ESP-IDF (https://github.com/espressif/esp-idf/issues/5229) and it was, then, checked on NuttX.
Impact
Prevents longjump to load corrupted registers.
Testing
Internal CI build pass considering the ostest and smp defconfigs for ESP32, ESP32-S2 and ESP32-S3. These defconfigs enables the ostest which run the setjmp/longjmp test. Also, the issue was reproduced on NuttX by a test application that performs multiple setjmp/longjmp operations (reference: https://en.cppreference.com/w/c/program/longjmp). This test usually crashes and, after applying the patch, the problem is gone.

I'll add to the commit message a detailed description of the performed test application to help other devs evaluate if they are running into the same problem.


Add setting to log GraphQL Validation failures

As part of activating full GraphQL Validation support in Graph Node, we need to introduce a setting which logs queries which would have failed, so we can better understand impact, and help users fix their queries

It would be great if those logs are also sent to the client that sent the query. A response could look something like:
{
  "data": { ... },
  "extensions": { "validations": ["Line 13: Null provided for non-nullable value"] }
}


add-category comment-limiter-l-humidite-dans-son-logement.md

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


Fix get compute results

Fixes # .
Changes proposed in this PR:

fixed and renamed  ( getComputeResultUrl ) compute results method
removes decodeUri from encrypt method, adds try catch on getHash and updates getNonce JsDoc

Note: Tests will fails since the PR uses ocean contracts 1.0.0-alpha.26 version. Used this version to be able to work locally with current assets on market. Will remove the downgrade once all other components will use the current contracts version

does this need changes after we merged #1395?


Add right-click context menu on events

Perform actions on events by right-clicking, like

Delete event
Open note
Move event (once multiple calendars is added)
Open daily / weekly / monthly note: #6

Open daily / weekly / monthly note: https://github.com/davish/obsidian-full-calendar/issues/6

Hi, this is very important for my use case, see #59 . Are you also planning to allow hovering over these links and creating a popover, which allows editing with Hover Editor?


Fatal error: Uncaught Twig_Error_Syntax: Unknown "switch" tag

Expected behavior
Should make use of Twig switch tag. I guess there is one, because my Twig VSCode plugin suggested it to me when I typed switch.
If not this is a feature request for it. Here is something I found from someone: https://gist.github.com/maxgalbu/9409182
Actual behavior
Breaks page.
Steps to reproduce behavior
{% switch value %}

  {% case "one" %}
    HI

  {% default %}
    DEFAULT

{% endswitch %}

What version of WordPress, PHP and Timber are you using?

WordPress: 5.2.2
PHP: 7.4.x
Timber: 1.9.2
How did you install Timber? (for example, from GitHub, Composer/Packagist, WP.org?)

from WordPress plugin installer

The flat file CMS Grav get one too: https://learn.getgrav.org/16/themes/twig-tags
maybe it's just copy & paste.

I see that craft CMS has it out of the box, but Twig itself doesn't.
I don't think we should add this as part of core.
czw., 29 sie 2019, 15:57 użytkownik Marvin Heilemann <
<EMAIL_ADDRESS>napisał:

The flat file CMS Grav get one too:
https://learn.getgrav.org/16/themes/twig-tags
maybe it's just copy & paste.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/timber/timber/issues/2063?email_source=notifications&email_token=AAR34ORJOWEDBSPWLCWOU3DQG7IVFA5CNFSM4ISCTFE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5OSFNA#issuecomment-526197428,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAR34OVJTY6NJSW3RQAZCY3QG7IVFANCNFSM4ISCTFEQ
.

Why not @palmiak ? I think it would lead to more readable code. In my case it would look way better than a lot of elseif cases.

By adding it to Timber core, we would also have to maintain it in Timber core. I guess it would be better to have this as a separate extension that comes as a Composer package. In the future, we will probably have more separate packages for extensions and integrations rather than everything in core.
Timber can already be extended with features like a switch statement. Using your linked example, you could add it like this:
add_filter( 'timber/twig', function( \Twig\Environment $twig ) {
    // Add the Switch token parser.
	$twig->addTokenParser( new Twig_TokenParser_Switch() );

    return $twig;
} );

Of course you would have to require the Twig_TokenParser_Switch and Twig_Node_Switch  classes separately first.

Sounds reasonable @gchtr. Thank you for the fiddle. I'll close this and add it like you suggested.


Build on Ubuntu 18.04

What are the corrects dependencies to build on Linux ?
In my case, I have these packets :

gcc-8
g++-8
gcc-8-multilib
g++-8-multilib
libboost-all-dev

And when I use make :
gcc -I/usr/include/x86_64-linux-gnu -c -m32 -fPIC -O3 -DLINUX -w -I./include/ -I./include/SDK/amx/ ./include/SDK/amx/*.c
g++ -I/usr/include/x86_64-linux-gnu/c++/8/32 -c -m32 -fPIC -O3 -DLINUX -w -I./include/ -I./include/SDK/amx/ ./include/SDK/*.cpp
g++ -I/usr/include/x86_64-linux-gnu/c++/8/32 -c -m32 -fPIC -O3 -DLINUX -w -I./include/ -I./include/SDK/amx/ ./src/*.cpp
In file included from ./src/callback.cpp:17:0:
./src/callback.h:35:12: error: ‘std::variant’ has not been declared
 using std::variant;
            ^~~~~~~
./src/callback.h:38:12: error: ‘std::bind’ has not been declared
 using std::bind;
            ^~~~
In file included from ./src/pbkdf2.h:26:0,
                 from ./src/callback.h:43,
                 from ./src/callback.cpp:17:
./src/utility.h:29:12: error: ‘std::variant’ has not been declared
 using std::variant;
            ^~~~~~~
In file included from ./src/pbkdf2.h:26:0,
                 from ./src/callback.h:43,
                 from ./src/callback.cpp:17:
./src/utility.h:37:9: error: ‘variant’ was not declared in this scope
  stack< variant<cell, string> > Params;
         ^~~~~~~
./src/utility.h:37:9: note: suggested alternative: ‘vprintf’
  stack< variant<cell, string> > Params;
         ^~~~~~~
         vprintf
./src/utility.h:37:29: error: template argument 1 is invalid
  stack< variant<cell, string> > Params;
                             ^
./src/utility.h:37:31: error: expected unqualified-id before ‘>’ token
  stack< variant<cell, string> > Params;
                               ^
In file included from ./src/callback.cpp:17:0:
./src/callback.h:55:25: error: ‘variant’ was not declared in this scope
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
./src/callback.h:55:25: note: suggested alternative: ‘vprintf’
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
                         vprintf
./src/callback.h:55:45: error: template argument 1 is invalid
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                                             ^
./src/callback.h:55:25: error: ‘variant’ was not declared in this scope
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
./src/callback.h:55:25: note: suggested alternative: ‘vprintf’
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
                         vprintf
./src/callback.h:55:45: error: template argument 1 is invalid
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                                             ^
./src/callback.h:55:25: error: ‘variant’ was not declared in this scope
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
./src/callback.h:55:25: note: suggested alternative: ‘vprintf’
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
                         vprintf
./src/callback.h:55:45: error: template argument 1 is invalid
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                                             ^
./src/callback.h:55:18: error: ‘stack’ is not a type
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                  ^~~~~
./src/callback.h:55:23: error: expected ‘,’ or ‘...’ before ‘<’ token
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                       ^
./src/callback.cpp: In member function ‘void Callback::ProcessTick()’:
./src/callback.cpp:46:27: error: ‘struct CallbackData’ has no member named ‘Params’
     while (!Queue->cData->Params.empty())
                           ^~~~~~
./src/callback.cpp:48:6: error: ‘variant’ was not declared in this scope
      variant<cell, string> Param(move(Queue->cData->Params.top()));
      ^~~~~~~
./src/callback.cpp:48:6: note: suggested alternative: ‘vprintf’
      variant<cell, string> Param(move(Queue->cData->Params.top()));
      ^~~~~~~
      vprintf
./src/callback.cpp:48:18: error: expected primary-expression before ‘,’ token
      variant<cell, string> Param(move(Queue->cData->Params.top()));
                  ^
./src/callback.cpp:48:26: error: expected primary-expression before ‘>’ token
      variant<cell, string> Param(move(Queue->cData->Params.top()));
                          ^
./src/callback.cpp:48:53: error: ‘struct CallbackData’ has no member named ‘Params’
      variant<cell, string> Param(move(Queue->cData->Params.top()));
                                                     ^~~~~~
./src/callback.cpp:48:28: error: ‘Param’ was not declared in this scope
      variant<cell, string> Param(move(Queue->cData->Params.top()));
                            ^~~~~
./src/callback.cpp:50:24: error: ‘get_if’ is not a member of ‘std’
      if (auto v = std::get_if<cell>(&Param)) {
                        ^~~~~~
./src/callback.cpp:50:24: note: suggested alternative: ‘get’
      if (auto v = std::get_if<cell>(&Param)) {
                        ^~~~~~
                        get
./src/callback.cpp:50:35: error: expected primary-expression before ‘>’ token
      if (auto v = std::get_if<cell>(&Param)) {
                                   ^
./src/callback.cpp:53:29: error: ‘get_if’ is not a member of ‘std’
      else if (auto v = std::get_if<string>(&Param)) {
                             ^~~~~~
./src/callback.cpp:53:29: note: suggested alternative: ‘get’
      else if (auto v = std::get_if<string>(&Param)) {
                             ^~~~~~
                             get
./src/callback.cpp:53:42: error: expected primary-expression before ‘>’ token
      else if (auto v = std::get_if<string>(&Param)) {
                                          ^
./src/callback.cpp:61:20: error: ‘struct CallbackData’ has no member named ‘Params’
      Queue->cData->Params.pop();
                    ^~~~~~
./src/callback.cpp: At global scope:
./src/callback.cpp:100:34: error: ‘variant’ was not declared in this scope
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                  ^~~~~~~
./src/callback.cpp:100:34: note: suggested alternative: ‘vprintf’
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                  ^~~~~~~
                                  vprintf
./src/callback.cpp:100:54: error: template argument 1 is invalid
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                      ^
./src/callback.cpp:100:34: error: ‘variant’ was not declared in this scope
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                  ^~~~~~~
./src/callback.cpp:100:34: note: suggested alternative: ‘vprintf’
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                  ^~~~~~~
                                  vprintf
./src/callback.cpp:100:54: error: template argument 1 is invalid
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                      ^
./src/callback.cpp:100:34: error: ‘variant’ was not declared in this scope
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                  ^~~~~~~
./src/callback.cpp:100:34: note: suggested alternative: ‘vprintf’
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                  ^~~~~~~
                                  vprintf
./src/callback.cpp:100:54: error: template argument 1 is invalid
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                      ^
./src/callback.cpp:100:27: error: variable or field ‘Parameters’ declared void
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                           ^~~~~
./src/callback.cpp:100:34: error: ‘variant’ was not declared in this scope
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                  ^~~~~~~
./src/callback.cpp:100:34: note: suggested alternative: ‘vprintf’
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                  ^~~~~~~
                                  vprintf
./src/callback.cpp:100:54: error: template argument 1 is invalid
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                      ^
./src/callback.cpp:100:59: error: ‘CallbackParameters’ was not declared in this scope
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                           ^~~~~~~~~~~~~~~~~~
./src/callback.cpp:100:59: note: suggested alternative: ‘CallbackData’
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                           ^~~~~~~~~~~~~~~~~~
                                                           CallbackData
./src/callback.cpp:100:79: error: expected primary-expression before ‘const’
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                                               ^~~~~
./src/callback.cpp:100:103: error: expected primary-expression before ‘*’ token
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                                                ^
./src/callback.cpp:100:104: error: ‘amx’ was not declared in this scope
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                                                ^~~
./src/callback.cpp:100:114: error: expected primary-expression before ‘*’ token
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                                                ^
./src/callback.cpp:100:115: error: ‘params’ was not declared in this scope
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                                                ^~~~~~
./src/callback.cpp:100:123: error: expected primary-expression before ‘const’
 void Callback::Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount)
                                                                                ^~~~~
In file included from ./src/main.cpp:20:0:
./src/callback.h:35:12: error: ‘std::variant’ has not been declared
 using std::variant;
            ^~~~~~~
./src/callback.h:38:12: error: ‘std::bind’ has not been declared
 using std::bind;
            ^~~~
In file included from ./src/pbkdf2.h:26:0,
                 from ./src/callback.h:43,
                 from ./src/main.cpp:20:
./src/utility.h:29:12: error: ‘std::variant’ has not been declared
 using std::variant;
            ^~~~~~~
./src/utility.h:37:9: error: ‘variant’ was not declared in this scope
  stack< variant<cell, string> > Params;
         ^~~~~~~
./src/utility.h:37:9: note: suggested alternative: ‘vprintf’
  stack< variant<cell, string> > Params;
         ^~~~~~~
         vprintf
./src/utility.h:37:29: error: template argument 1 is invalid
  stack< variant<cell, string> > Params;
                             ^
./src/utility.h:37:31: error: expected unqualified-id before ‘>’ token
  stack< variant<cell, string> > Params;
                               ^
In file included from ./src/main.cpp:20:0:
./src/callback.h:55:25: error: ‘variant’ was not declared in this scope
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
./src/callback.h:55:25: note: suggested alternative: ‘vprintf’
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
                         vprintf
./src/callback.h:55:45: error: template argument 1 is invalid
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                                             ^
./src/callback.h:55:25: error: ‘variant’ was not declared in this scope
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
./src/callback.h:55:25: note: suggested alternative: ‘vprintf’
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
                         vprintf
./src/callback.h:55:45: error: template argument 1 is invalid
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                                             ^
./src/callback.h:55:25: error: ‘variant’ was not declared in this scope
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
./src/callback.h:55:25: note: suggested alternative: ‘vprintf’
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
                         vprintf
./src/callback.h:55:45: error: template argument 1 is invalid
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                                             ^
./src/callback.h:55:18: error: ‘stack’ is not a type
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                  ^~~~~
./src/callback.h:55:23: error: expected ‘,’ or ‘...’ before ‘<’ token
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                       ^
In file included from ./src/natives.cpp:31:0:
./src/utility.h:29:12: error: ‘std::variant’ has not been declared
 using std::variant;
            ^~~~~~~
In file included from ./src/natives.cpp:31:0:
./src/utility.h:37:9: error: ‘variant’ was not declared in this scope
  stack< variant<cell, string> > Params;
         ^~~~~~~
./src/utility.h:37:9: note: suggested alternative: ‘__rint’
  stack< variant<cell, string> > Params;
         ^~~~~~~
         __rint
./src/utility.h:37:29: error: template argument 1 is invalid
  stack< variant<cell, string> > Params;
                             ^
./src/utility.h:37:31: error: expected unqualified-id before ‘>’ token
  stack< variant<cell, string> > Params;
                               ^
In file included from ./src/natives.cpp:33:0:
./src/callback.h:35:12: error: ‘std::variant’ has not been declared
 using std::variant;
            ^~~~~~~
In file included from ./src/natives.cpp:33:0:
./src/callback.h:55:25: error: ‘variant’ was not declared in this scope
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
./src/callback.h:55:25: note: suggested alternative: ‘__rint’
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
                         __rint
./src/callback.h:55:45: error: template argument 1 is invalid
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                                             ^
./src/callback.h:55:25: error: ‘variant’ was not declared in this scope
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
./src/callback.h:55:25: note: suggested alternative: ‘__rint’
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
                         __rint
./src/callback.h:55:45: error: template argument 1 is invalid
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                                             ^
./src/callback.h:55:25: error: ‘variant’ was not declared in this scope
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
./src/callback.h:55:25: note: suggested alternative: ‘__rint’
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                         ^~~~~~~
                         __rint
./src/callback.h:55:45: error: template argument 1 is invalid
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                                             ^
./src/callback.h:55:18: error: ‘stack’ is not a type
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                  ^~~~~
./src/callback.h:55:23: error: expected ‘,’ or ‘...’ before ‘<’ token
  void Parameters(stack< variant<cell, string> > &CallbackParameters, const char *format, AMX *amx, cell *params, const unsigned pcount);
                       ^
./src/natives.cpp: In function ‘cell Native::hash_generate(AMX*, cell*)’:
./src/natives.cpp:66:37: error: ‘struct CallbackData’ has no member named ‘Params’
  Callback::Get()->Parameters(cData->Params, format, amx, params, ParameterCount);
                                     ^~~~~~
./src/natives.cpp: In function ‘cell Native::hash_validate(AMX*, cell*)’:
./src/natives.cpp:124:37: error: ‘struct CallbackData’ has no member named ‘Params’
  Callback::Get()->Parameters(cData->Params, format, amx, params, ParameterCount);
                                     ^~~~~~
In file included from ./src/pbkdf2.h:26:0,
                 from ./src/pbkdf2.cpp:23:
./src/utility.h:29:12: error: ‘std::variant’ has not been declared
 using std::variant;
            ^~~~~~~
In file included from ./src/pbkdf2.h:26:0,
                 from ./src/pbkdf2.cpp:23:
./src/utility.h:37:9: error: ‘variant’ was not declared in this scope
  stack< variant<cell, string> > Params;
         ^~~~~~~
./src/utility.h:37:9: note: suggested alternative: ‘__rint’
  stack< variant<cell, string> > Params;
         ^~~~~~~
         __rint
./src/utility.h:37:29: error: template argument 1 is invalid
  stack< variant<cell, string> > Params;
                             ^
./src/utility.h:37:31: error: expected unqualified-id before ‘>’ token
  stack< variant<cell, string> > Params;
                               ^
In file included from ./src/utility.cpp:31:0:
./src/utility.h:29:12: error: ‘std::variant’ has not been declared
 using std::variant;
            ^~~~~~~
In file included from ./src/utility.cpp:31:0:
./src/utility.h:37:9: error: ‘variant’ was not declared in this scope
  stack< variant<cell, string> > Params;
         ^~~~~~~
./src/utility.h:37:9: note: suggested alternative: ‘__rint’
  stack< variant<cell, string> > Params;
         ^~~~~~~
         __rint
./src/utility.h:37:29: error: template argument 1 is invalid
  stack< variant<cell, string> > Params;
                             ^
./src/utility.h:37:31: error: expected unqualified-id before ‘>’ token
  stack< variant<cell, string> > Params;
                               ^
makefile:11: recipe for target 'hash' failed
make: *** [hash] Error 1

I've make a pull request to able build the plugin in Linux.
https://github.com/Mellnik/hash-plugin/pull/11


use email_address crate for checking formats

The email_address crate is more strict in validating user and domain
parts of email addresses. For example, it verifies the total size
of the local part, which the current method does not, and this has
caused upstream servers to fail to accept an email.

Thanks for the contribution. Could you add a test for an email that would previously incorrectly get accepted and now gets instead rejected?


Metric name validation

Fixes #2586

@brian-brazil

@brian-brazil

Thanks!

This will need porting to v2 also