git: I can't identify the type of change in the list of modified files

In the list of modified files presented when we press ctrl + g, we can have modified files, added files and files outside the scope of the folder that was opened in VSCode.
I use orca as a screen reader and I can't identify what file is modified, added and out of scope.
Would it be possible to display the files separated by the type of modification?
Today the display is already done separating the modified files and the staged files.
Would it be possible to use a similar approach?
CC @isidorn

@isidorn Can you provide direction here?

@jvesouza thanks for filling the issue
While making the presentation structure more fine grained makes sense for your use case, however I think it would introduce unneeded complexity. We try to make the Git view a nice minimalistic represtantion of the git status of your workspace. And due to that I suggest that the ariaLabel of each item should have the item status at the end.
So if you have hello.txt which is staged, test.txt which is modified and tmp.txt which is added I would expect the following area labels:
"hello.txt staged"
"test.txt modified"
"tmp.txt added"
Having the state at the end makes it easier for screen readers users to simply skip it.
@joaomoreno @jvesouza let me know what you think about my suggestion

Will be fixed when https://github.com/microsoft/vscode/issues/92342 is closed.

Sounds good to me.

I noticed that now when we browse the list of modified files, the status of the file, modified, untracked, etc. is displayed. However, orca does not announce the patch to which the file belongs, which can be a problem in repositories in which we have files with the same name in different folders.
The java project I'm working on has two files called config.propertes and both have been modified. I just wanted to commit one of them and had a hard time finding the right file.

@jvesouza good feedback and makes sense. We can also announce the path of the file, but would you expect first to hear "modified" or the path? Would this make the screen reader too chatty? Feels similar to this https://github.com/microsoft/vscode/issues/93657
So if we change one we should change the other.
So I suggest to use the following aria label NAME RELATIVE_PATH STATE
Reopening so we also get @joaomoreno feedback on this

Modified first.

Reopening, since we should fix this small nitpick.
I think first the name, than modified than path.
Currently you first announce modified, then name than path.
I think @jvesouza would agree. But let's reoepen and move to May.

From @jvesouza's last comment, I understood Modified would come first...

@joaomoreno I think he meant before RELATIVE_PATH. It should not be bfore the NAME, the NAME is the most important imho

I personally liked the way it was implemented, modified before the name. If it depends only on my opinion, the implementation can remain as it is.
Ideally, other users should give their opinion.

I agree with @isidorn name of the most important then status, and then path.

I don't care about status/path, but definitely name first please. Way more often than not, I'm just changing files that exist. So hearing "Modified" before every file definitely slows me down, even if only slightly.
I guess if I had to have an opinion, I'd say "Name, path, status." The name is most important. Next I need the path, because unfortunately I have many similarly-named files. Finally I need the status. Usually I can infer the status given the name and path, but if I can't, then having it last gives me the most important information I need. I know what I need to do for a specific file given its name and path.
Note that I fairly quickly set:
    "git.smartCommitChanges": "tracked",
    "git.enableSmartCommit": true,
    "git.untrackedChanges": "separate",

This separates out untracked files, and doesn't stage things I don't want staged. Unfortunately, at one point I had some non-gitignored secrets that got committed. This makes committing something I have to explicitly plan, which is as it should be IMO.

I am wondering why the name and path are not one element tbh. Like first time it confused me a little. Although I could get used to that.

as for the order, somehow for me path belongs more to the filename so it should be before the modified.

Agreed

I don't care about status/path, but definitely name first please. Way more often than not, I'm just changing files that exist. So hearing "Modified" before every file definitely slows me down, even if only slightly.
I guess if I had to have an opinion, I'd say "Name, path, status." The name is most important. Next I need the path, because unfortunately I have many similarly-named files. Finally I need the status. Usually I can infer the status given the name and path, but if I can't, then having it last gives me the most important information I need. I know what I need to do for a specific file given its name and path.
Note that I fairly quickly set:
    "git.smartCommitChanges": "tracked",
    "git.enableSmartCommit": true,
    "git.untrackedChanges": "separate",

This separates out untracked files, and doesn't stage things I don't want staged. Unfortunately, at one point I had some non-gitignored secrets that got committed. This makes committing something I have to explicitly plan, which is as it should be IMO.

@joaomoreno pushed a fix for this, hope that is ok. It was very simple.


upgrade: list upgradeable dependencies on dry run

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew typecheck with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

Currently, a dry run of brew upgrade only lists which dependents of the given packages will be auto-upgraded. This adds a list of dependencies to be auto-upgraded to the output.
Before:
$ brew upgrade -n nghttp2 harfbuzz
==> Would upgrade 2 outdated packages:
nghttp2 1.43.0 -> 1.44.0
harfbuzz 2.8.1 -> 2.9.0
==> Would upgrade 4 dependents:
unbound 1.13.1 -> 1.13.2, gnupg 2.3.1_1 -> 2.3.2, pango 1.48.5 -> 1.48.9, gtk+3 3.24.29 -> 3.24.30
==> No currently broken dependents found!
Warning: If they are broken by the upgrade they will also be upgraded or reinstalled.

After:
$ brew upgrade -n nghttp2 harfbuzz
==> Would upgrade 2 outdated packages:
nghttp2 1.43.0 -> 1.44.0
harfbuzz 2.8.1 -> 2.9.0
==> Would upgrade 3 dependencies for nghttp2:
<EMAIL_ADDRESS>1.1.1k -> 1.1.1l, cmake 3.21.1 -> 3.21.2, c-ares 1.17.1 -> 1.17.2
==> Would upgrade 4 dependencies for harfbuzz:
<EMAIL_ADDRESS>1.1.1k -> 1.1.1l, meson 0.59.0 -> 0.59.1, freetype 2.10.4 -> 2.11.0, glib 2.68.3 -> 2.68.4
==> Would upgrade 4 dependents:
unbound 1.13.1 -> 1.13.2, gnupg 2.3.1_1 -> 2.3.2, pango 1.48.5 -> 1.48.9, gtk+3 3.24.29 -> 3.24.30
==> No currently broken dependents found!
Warning: If they are broken by the upgrade they will also be upgraded or reinstalled.

Review period will end on 2021-08-31 at 23:23:12 UTC.

Added dry run modes to migration and cleanup steps:
$ brew upgrade -n nghttp2 harfbuzz
==> Would upgrade 2 outdated packages:
nghttp2a 1.44.0
harfbuzz 2.8.1 -> 2.9.0
==> Would migrate nghttp2 to nghttp2a
==> Would upgrade 3 dependencies for nghttp2a:
<EMAIL_ADDRESS>1.1.1k -> 1.1.1l, cmake 3.21.1 -> 3.21.2, c-ares 1.17.1 -> 1.17.2
==> Would run `brew cleanup` which has not been run in the last 30 days
==> Would upgrade 4 dependencies for harfbuzz:
<EMAIL_ADDRESS>1.1.1k -> 1.1.1l, meson 0.59.0 -> 0.59.1, freetype 2.10.4 -> 2.11.0, glib 2.68.3 -> 2.68.4
==> Would run `brew cleanup` which has not been run in the last 30 days
==> Would upgrade 4 dependents:
unbound 1.13.1 -> 1.13.2, gnupg 2.3.1_1 -> 2.3.2, pango 1.48.5 -> 1.48.9, gtk+3 3.24.29 -> 3.24.30
==> No currently broken dependents found!
Warning: If they are broken by the upgrade they will also be upgraded or reinstalled.

Also added a dry run mode to migrate:
$ brew migrate -n nghttp2
==> Would migrate nghttp2 to nghttp2a

Review period ended.


Zero Division Error

When both NPos and NNeg in the compute_pointsroc/8 call inside compute_areas/5 are 0, a zero division error is raised.
A possible solution could be replacing
compute_pointsroc(LG2,+1e20,0,0,NPos,NNeg,[],ROC)

with
  catch(compute_pointsroc(LG2,+1e20,0,0,NPos,NNeg,[],ROC),
    error(evaluation_error(zero_divisor),_),
    ROC = []
  )

Can this be a viable solution?

Sure. I have added you as a collaborator, I think you can push the change


trackedTask returns last task value if current task value is null or undefined

In case if task was called several times and the last returned value was null or undefined, then trackedTask returns last (previous) value instead of the correct current one.
For example:
import Component from '@glimmer/component';
import { keepLatestTask } from 'ember-concurrency';
import { trackedTask } from 'ember-resources/util/ember-concurrency';
import { taskFor } from 'ember-concurrency-ts';

export default class ChildComponent extends Component {
  resultTask = trackedTask(this, taskFor(this.myTask), () => [
    this.args.myArg,
  ]);

  get value() {
    return this.resultTask.value;
  }

  getResultFromArg(myArg) {
    if (myArg === 0) {
      return 'non null non undefined result';
    } else {
      // This value will be lost if it was returned as the latest result of task run
      return undefined;

      // This value will be lost as well
      // return null;

      // This one will be returned from "trackedTask" as expected
      // return 'result';
    }
  }

  @keepLatestTask
  *myTask(myArg) {
    const result = yield this.getResultFromArg(myArg);
    console.log('result in context of ', myArg, '>>', result);
    return result;
  }
}

Template

value

    {{this.value}}

Steps to reproduce:
step 1: we pass "0" as value of "myArg" to Child Component => myTask will return "non null non undefined result" value. It will set this.currentTask value to non null non undefined result at https://github.com/NullVoxPopuli/ember-resources/blob/main/ember-resources/src/util/ember-concurrency.ts#L225.
step 2:  we pass "1" as value of "myArg" to Child Component => myTask will return undefined value. It will set this.currentTask value to undefined.
step 3: test that getter returns non null non undefined result instead of expected undefined.
get value() {
    return this.resultTask.value; // will return `non null non undefined result`
}

I believe this is happening because of the code in TaskResource class https://github.com/NullVoxPopuli/ember-resources/blob/main/ember-resources/src/util/ember-concurrency.ts#L217
  get value() {
    return this.currentTask.value ?? this.lastTask?.value;
  }

I wonder if this is expected behavior.

Is this with v5 or the v6beta?

I wonder if this is expected behavior

It is not, and i think you investigated the bug beautifully!
The value getter probably needs to consider if current task is finished before deciding to return lastTask.value or currentTask.value, rather than the existing naiive ??
Excellent find!

@sergey-zhidkov would you be willing to submit a PR?
maybe something to the effect of:
  get value() {
    if (this.return.currentTask?.isFinished) return this.currentTask?.value;

    return this.lastTask?.value;
  }

?

It's v5.

Excellent find!

Thank you.

The value getter probably needs to consider if current task is finished before deciding to return lastTask.value or currentTask.value, rather than the existing naiive ??

I do agree. This is a good way to fix the issue.

@sergey-zhidkov would you be willing to submit a PR?

I'll be happy to. I'll try to do it by the end of Wednesday. Probably will take some time to write proper tests.

Fix was merged to main.


Remove direct OPEN loc creation.

logion-network/logion-internal#670

It seems that we are not enforcing the fact that logion LOCs can only be created by a LO, neither do we pallet-side. I'll add the constraints in the node.


Remove duplicate content from repo

After a recent folder structure change, we now have articles located in an /articles folder, however we still have those same articles in their pre-existing locations at the root of the repo. This results in duplicate content in the repo and leads to difficulty in understanding where to submit changes. For example, this page:
package-and-publish/get-your-app-approved.md
and
articles/package-and-publish/get-your-app-approved.md
Have the same content. There should be just one source of truth (in the articles folder, I assume). So that links to the old file locations continue to work, we need to keep files there. I suggest that we replace their content with some simple text like "This document has moved! See it in its new home at: ..." and a link to the new file location.

The package-and-publish/get-your-app-approved.md indicates that it is depreciated. The only reason that these 'duplicates' exist is so that wild links to the github site will still direct to a file, just not the newest one.

Good point. I'd suggest that we instead remove the duplicate content from these files and customize the "deprecated" note so that it has a link to the new location. In the web dev world I'd have this actually perform an HTTP redirect, but we can't do that with GitHub, so this is the next best thing.
One reason to remove the duplicate content: it hurts our search engine results if the same content is indexed in two files. Also, someone may click a link to the old location and likely ignore the deprecated header - then that viewer is reading old docs.

Looks like this is done, thanks!


mise run, mise exec: uses previous value of removed env var on first run after var removal

Describe the bug
This is clearly a shell "activate" mode issue. Maybe it's even not a bug, but an UX issue. Maybe it's good enough to just document it instead of fixing.
If mise config is edited not in the current shell (e.g. in IDE) and some env.var is removed (using any way: commented, set to false, deleted), and first executed command after this edit is mise run or mise exec, then they'll use previous (deleted) value for this variable. This happens because current shell had no chance to execute mise hook-env after edit thus current shell still have this var set to old value and mise run/exec gets it in same way as any manually set in a shell variable.
To Reproduce
Use two shells:
sh1$ mkdir mise-del-var-bug
sh1$ cd mise-del-var-bug
sh1$ env | grep VAR
sh1$ mise set VAR=val
sh1$ mise exec -- env | grep VAR; echo; cat .mise.toml
VAR=val

[env]
VAR = "val"
sh1$

sh2$ cd mise-del-var-bug
sh2$ sed -i -e 's/"val"/"modified"/' .mise.toml
sh2$

sh1$ mise exec -- env | grep VAR; echo; cat .mise.toml
VAR=modified

[env]
VAR = "modified"
sh1$

sh2$ sed -i -e 's/"modified"/false/' .mise.toml
sh2$ # NEXT COMMAND WILL USE REMOVED VALUE:

sh1$ mise exec -- env | grep VAR; echo; cat .mise.toml
VAR=modified

[env]
VAR = false
sh1$ mise exec -- env | grep VAR; echo; cat .mise.toml

[env]
VAR = false
sh1$

Expected behavior
Well, in an ideal world, I'd like to avoid mise exec/run execution with variables which doesn't match current config. After all, doc states "Of course, tasks launched with mise will include the mise environment—your tools and env vars defined in mise.toml." and this is violated here.
mise doctor output
version: 2024.11.0 linux-x64 (eae29db 2024-11-01)
activated: yes
shims_on_path: no

build_info:
  Target: x86_64-unknown-linux-gnu
  Features: DEFAULT, NATIVE_TLS, OPENSSL
  Built: Fri, 1 Nov 2024 11:36:23 +0000
  Rust Version: rustc 1.81.0 (eeb90cda1 2024-09-04)
  Profile: release

shell:
  /bin/zsh
  zsh 5.9 (x86_64-pc-linux-gnu)

dirs:
  data: ~/.local/share/mise
  config: ~/.config/mise
  cache: ~/.cache/mise
  state: ~/.local/state/mise
  shims: ~/.local/share/mise/shims

config_files:
  ~/.config/mise/config.toml
  ~/tmp/mise-del-var-bug/.mise.toml

backends:
  cargo
  core
  go
  npm
  pipx
  spm
  ubi
  vfox

plugins:
  jq<EMAIL_ADDRESS>  yamlfmt<EMAIL_ADDRESS>
toolset:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>  pipx:a13xp0p0v/kernel-hardening-checker@latest
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>  go:github.com/erning/gorun@latest
  go:golang.org/x/pkgsite/cmd/pkgsite@latest
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>  go:rsc.io/rf@latest
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>  go:github.com/koron/iferr@latest
<EMAIL_ADDRESS>  go:github.com/davidrjenni/reftools/cmd/fillswitch@latest
  go:github.com/davidrjenni/reftools/cmd/fillstruct@latest
<EMAIL_ADDRESS><EMAIL_ADDRESS>  go:golang.org/x/perf/cmd/benchstat@latest

env_vars:
  MISE_LOG_FILE=~/.local/share/mise.log
  MISE_LOG_FILE_LEVEL=info
  MISE_SHELL=zsh

settings:
  activate_aggressive = false
  all_compile = false
  always_keep_download = false
  always_keep_install = false
  asdf_compat = false
  cache_prune_age = "30d"
  ci = false
  color = true
  debug = false
  disable_backends = []
  disable_default_registry = false
  disable_hints = []
  disable_tools = []
  experimental = true
  fetch_remote_versions_cache = "1h"
  fetch_remote_versions_timeout = "10s"
  go_default_packages_file = "~/.default-go-packages"
  go_download_mirror = "https://dl.google.com/go"
  go_repo = "https://github.com/golang/go"
  go_set_gopath = false
  go_set_goroot = true
  go_skip_checksum = false
  http_timeout = "30s"
  jobs = 4
  legacy_version_file = true
  legacy_version_file_disable_tools = []
  libgit2 = true
  lockfile = false
  log_level = "info"
  not_found_auto_install = true
  paranoid = true
  pin = false
  plugin_autoupdate_last_check_duration = "7d"
  quiet = false
  raw = false
  trace = false
  trusted_config_paths = [
      "~/.config/mise/config.toml",
      "~/.mise.toml",
      "~/proj/soft/golangci-lint-strict/",
      "~/tmp/mise-del-var-bug/",
  ]
  use_versions_host = true
  verbose = false
  yes = false

  [cargo]
  binstall = true

  [node]

  [pipx]
  uvx = true

  [python]
  default_packages_file = "~/.default-python-packages"
  pyenv_repo = "https://github.com/pyenv/pyenv.git"
  venv_auto_create = false
  venv_stdlib = false

  [ruby]
  default_packages_file = "~/.default-gems"
  ruby_build_repo = "https://github.com/rbenv/ruby-build.git"
  ruby_install = false
  ruby_install_repo = "https://github.com/postmodern/ruby-install.git"

  [status]
  missing_tools = "if_other_versions_installed"
  show_env = false
  show_tools = false
No warnings found
No problems found

idk how it works but I think fish shell has the ability to run async daemons that could watch for things which could be used for this. I'm not sure what the state is for other shells.
Something running as a daemon would be a prerequisite for this I think.
That said, I don't really want to be managing a daemon if I can help it so even if it was possible I'm not sure I would want to maintain it.

Something running as a daemon would be a prerequisite for this I think.

I agree it will be non-trivial to fix, but daemon sounds like overkill!
I may be wrong about some Mise internals, but I support it already knows which env vars it has set and to which values. So, all these vars with unchanged values may be ignored by mise exec/run and removed from their process environment before they'll start reading configs and update env vars. This way this issue will be fixed without a daemon.
But there will be another corner case: if user will do EXISTING_VAR_FROM_CONFIG=it_current_value muse run ... then this manually set variable will be ignored on first run. But this corner case IMO will happens less often.

I think this is probably just going to be the way mise behaves at least for now


Merge develop into feature/rn-60

Includes https://github.com/brandingbrand/flagship/pull/907

Closing in favor of https://github.com/brandingbrand/flagship/pull/915


Declare install instructions as HTML, not Markdown

This page is straight HTML--no Markdown in sight--and so the Markdown
parser gets confused and starts escaping quotes in JavaScript halfway
through. Give it an .html extension to get the Markdown parser out of
the picture.
Fix #2926.

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/d41889844aa57df9efabb49038a1dc3fe5f3ac77/

Ugh. I did that in https://github.com/cockroachdb/docs/pull/2727 so as to make it possible to "edit this page". @j-low, this seems to be the solution: Changing back to .html.

Thanks, @benesch. Can you please make this change to other versions of the page and also add contribute: false to the front-matter on those pages?

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/857a2bd96f00c2579dae008bbd8b157d5467f15d/

@benesch, based on the test build, looks like using page.url didn't solve this problem. Click Contribute > Edit This Page to see what I mean.

Ah, of course, thanks for the clarification, @benesch. I'll merge.


eightball command

For all of those times when you have to take a leap of fate.
Gulp lint was successful.

I really like the whimsy of this, but I don't think we can move forward with something like this until we can limit features to certain channels as suggested by @SaintPeter. There's some channels that are just too busy already without eightball commands hitting them.

Any chance we could add an :8ball: between the @ mention and the magic 8 ball answer? I think it makes it even more whimsical and makes it more obvious that this is an magic eightball reply.

I was looking for an emoticon like that, must have missed it. Added.

Sorry to be so picky, but could you squash your commits? I swear after this we'll actually get this merged!

Awesome! :+1:


fix: MetaMask Virtual Wallet to support on demand connect

This pull request addresses the following issues:

When the get-startnet UI is not used and WalletAccount is used with the MetaMask Virtual Wallet in starknet.js, an error is thrown due to the MetaMask Virtual Wallet not being loaded while WalletAccount sends an API request to wallet_requestAccounts during construction.

This PR loads the MetaMask Virtual Wallet on-the-fly whenever the API request is being handled.

This PR also adds support for two RPC APIs (wallet_supportedWalletApi and wallet_supportedSpecs) even if the virtual wallet is not connected.

will fix the pnpm lock

pnpm lock file should now be good
cc: @stanleyyconsensys  @avimak

Looks like the lockfile needs updating again.


Use same session for different languages of same shop

1. Why is this change necessary?
Add some items to cart, change to a another language everything is gone
2. What does this change do, exactly?
Use same session for different languages of same shop. Also checks for categories in sBasket
3. Describe each step to reproduce the issue or behaviour.
https://issues.shopware.com/issues/SW-17499
4. Please link to the relevant issues (if any).
https://issues.shopware.com/issues/SW-17499
5. Which documentation changes (if any) need to be made because of this PR?
6. Checklist

[ ] I have written tests and verified that they fail without my change
[ ] I have squashed any insignificant commits
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[X] I have read the contribution requirements and fulfil them.

CLA already signed.

@shyim @mitelg How about the ability to configure the behaviour of the session handling?
A combobox with following options would be nice:

Every sub and language shop has it's own session
Every sub shop (with language shops) has it's own session
The complete shop has one session

The solution to make the entire shop same session cannot work with different domains. So i would suggest only these two options :blush:

You are right :) and to avoid a breaking change the first option is the default.

Hey @shyim,
thanks for your contribution.
Unfortunately having a session for every shop is a core design decision made in Shopware 5.
The issues that might arise from those changes can only be foreseen by the lord himself.
Also, we heard there might be a plugin for this. ;-)


checkboxes slightly unaligned from v3 to v4

I noticed that in v4 the boxes from checkboxes and radios are vertically unaligned by a small amount, see the screenshot attached:

The screenshot was taken with Chrome at 800% opening the example pages for v3 and v4.

They'll look slightly off given the font changes across all browsers in v4. No real way of getting them 100% lined up I'm afraid. Open to specific suggestions if there's something that looks better to you across Mac and Windows.

I'm not a CSS expert and I am new to bootstrap, but in my project I'm using the following hack to make checkboxes look aligned:
.form-check-input:only-child {
   position: relative;
   top: 0.07rem;
}

they look good in Chrome, Firefox, Edge and IE (all them on Windows).


feat: enable net40 target framework

I don't expect you to accept this PR :) but I made this changes to enable net40 publishing (as we still do 4.0).
FYI

Hello, @mauricio-morales!
Sorry for late answer.
I don't expect you to accept this PR - yes, net40 is very old platform to support it in 2019 :)
But thank you for pointing for that and still using this library 👍


Add Windows binaries to release action

Binaries are now build with GitHub Actions (https://github.com/KevinGimbel/mktoc/blob/main/.github/workflows/release.yml), so Windows binaries should be supported alongside Apple and Linux ones.
I know nothing about Windows binaries so I'm unsure which of these targets make sense to build for:

x86_64-pc-windows-msvc
x86_64-pc-windows-gnu
i686-pc-windows-msvc
i686-pc-windows-gnu

Maybe all of them?

Removed milestone as this shouldn't block regular releases.

According to https://fosstodon.org/@mobiuscog/113113209852718896 i686 is 32bit Windows and can be removed.


xjulia builds are running long/hanging (?)

In the last couple of days, I've noticed that builds on a couple of tracks I co-maintain have been hanging...  looking further, I found that there were a number of xjulia builds that are running for a considerable time (~45-50 mins)...
I also notice that there are multiple builds at once.  Right now there are four concurrent builds running in Travis for Exercism and all four are xjulia.  This apparently hits some limit and other builds are delayed until these either complete, are stopped, or timeout.

I couldn't view the logs for the builds.   Any ideas of what might be happening?
@exercism/julia — thoughts?

The macOS builds take a really long time to start up at the moment (up to an hour). As soon as they start, they finish within about a minute.
I thought it's still a result of the recent macOS issues that travis had. I know that it happens for other julia packages too that use Travis. I'm not really sure what causes it.
I could temporarily disable the macOS testing for now; I didn't know this causes issues for other tracks.
Are there any other tracks that experience the same issues with long macOS-startup times?

Trying to figure out what could be happening here - if OSX plays a role, would one expect that the other tracks with OSX builds could also cause builds to back up?

https://github.com/exercism/xcsharp/blob/master/.travis.yml
https://github.com/exercism/xfsharp/blob/master/.travis.yml
https://github.com/exercism/gui/blob/master/.travis.yml

In general, I had observed in the past that Travis only runs five jobs at a time, but I thought that was a per-repo limit. Hadn't seen the per-organisation limit (assuming that's what it is).
Can we try to test out a few situations, perhaps by creating some dummy repos in the org, some with OSX builds?

As another sample point so that we can see the influence of other factors as well: If we are looking at tracks with many jobs per build, then we might look at https://github.com/exercism/xgo/blob/master/.travis.yml#L17-L20 which hilariously attempts to stay as close to ten jobs as possible without going over.
Another facet of my position where I was not clear in expression:
Oh no. I wish that to reason about my track's Travis builds I only need consider what my track is doing, and be blissfully unaware of any other tracks. That's the ideal world, of course. I get it, we are together one organisation and we're all in this together. Now, I personally didn't have any reason to believe in the past that my track's CI was being affected by others'. Why now is it being thrust into my awareness? Maybe I was just too inattentive in the past... recent events in my offline life have really highlighted to me my occasional inattentiveness, to my great chagrin.

It may also be an issue with the julia integration in travis itself because the macOS start-up issue occurs in other julia repos unrelated to exercism, too:

The dummy-repo testing that @petertseng suggested sounds like a good way to narrow it down.

@petertseng I simply didn't know that the Travis limits apply to organisations and not just single repos, sorry. The time when I started maintaing the repo was about when Travis had lots of issues with their macOS infrastructure [1] [2] so I thought it was still a consequence of that. Otherwise I wouldn't have ignored it and investigated what causes this earlier.

@petertseng I simply didn't know that the Travis limits apply to organisations and not just single repos, sorry.

Ugh, I didn't either. This is bad news for the Go track, since now the Go track is also absolutely to blame for backing up other tracks' builds as well, with its TEN jobs. Rust track maybe too, with its seven.
I am sorry for that.

I ran experiments and I know it's a really small sample size and I should experiment more to confirm, but with my limited tests I saw that an x-common build waits for an xgo build to complete before acting, whereas if there was no xgo build the x-common build started up quickly.
It would be great if the delay in the first x-common build (#540) was just a coincidence - more experimentation?

I can confirm that both the C# and F# tracks have had this exact same problem. Our Unix builds run relatively fast, but the Mac builds have been on hold for tens of minutes on several occasions.
@petertseng I've never really experience delays due to other tracks being run, but it might be simply because I got lucky.

Since xjulia isn't using OSX builds anymore, and further the track maintainers have a reminder to re-enable the OSX builds when the startup time is good, don't need this open in x-common anymore.
As y'all can see above, I also took the opportunity to reduce xgo's Travis footprint. My apologies--I was the person who argued to increase it assuming that the five-job limit was per-repo not per-organisation.

I was the person who argued to increase it

Proof of my guilt: https://github.com/exercism/xgo/pull/316

Maybe if new commits come too fast for slow builds Auto cancellation could also be of help: https://blog.travis-ci.com/2017-03-22-introducing-auto-cancellation


Using osmdroid for offline (tilesource .osm.pbf)

Issue Type
[x] Question
I am developing an application that will use OSM offline. I downloaded a map source (.osm.pbf) from link. I wonder of how to use it further. I already added osmdroid by gradle.
For some reason i feel like there is a gap in the offline description, or maybe it's just me how didn't understand it, for example using OSMMapTilePackager .
Environment
Android Studio
If it's a bug, version(s) of android this affects:
All
Version of osmdroid the issue relates to:
5.6.5

Add you probably figured out, it's not supported and is unlikely to be supported in the near future


track delayed metrics when they are sent to /aggregated and /aggregated/multi

This PR adds the ability to track/log delayed metrics when they are sent to /ingest/aggregated and /ingest/aggregated/multi API. The same functionality exists for /ingest and /ingest/multi.

@usnavi @ChandraAddala @VinnyQ @izrik pls review. This is to add the logging/tracking delayed metrics for /ingest/aggregated and /ingest/aggregated/multi.

Coverage decreased (-0.1%) to 75.692% when pulling 585f6214cf8a2327724151621bb4b00d0ab0cc6f on shintasmith:track_delayed_aggr into 61dd38ff9d1400e33e0680e4fc0d8aa52c683aa3 on rackerlabs:master.

Coverage decreased (-0.06%) to 75.762% when pulling 585f6214cf8a2327724151621bb4b00d0ab0cc6f on shintasmith:track_delayed_aggr into 61dd38ff9d1400e33e0680e4fc0d8aa52c683aa3 on rackerlabs:master.

Coverage increased (+0.1%) to 75.928% when pulling 585f6214cf8a2327724151621bb4b00d0ab0cc6f on shintasmith:track_delayed_aggr into 61dd38ff9d1400e33e0680e4fc0d8aa52c683aa3 on rackerlabs:master.

I just realized this PR is only doing the Tracker part. But does not update the "short delay" and "long delay" graphs. I will have to add those on Monday.

lgtm

Is it possible to populate the "Metrics with short/long delay received" graphs also? https://github.com/rackerlabs/blueflood/blob/e6de32ff53ed32cc348adbff8ae3692415820e1d/blueflood-core/src/main/java/com/rackspacecloud/blueflood/inputs/formats/JSONMetricsContainer.java#L99

oh, I just saw ur comment about these graphs.

@ChandraAddala , I added the marking of the meter for short and long delay graphs and incorporated your feedback. Pls take a look.

Looks good.

Coverage decreased (-0.2%) to 75.617% when pulling ac2bf8547cbf657e3af952d350fb82ac1b76bf90 on shintasmith:track_delayed_aggr into 61dd38ff9d1400e33e0680e4fc0d8aa52c683aa3 on rackerlabs:master.


Attachment shows "link expired" for external attachments

In the case below, the attachment can only be downloaded from the notification action button, but not from the ntfy detail view.
curl -d "Here's a notification with an .apk attachment" -H "Attach: https://f-droid.org/repo/com.calcitem.sanmill_3178.apk" -H p:4 ntfy.sh/demogoogle

Here's a video+screenshot showing the issue. The first attempt in the video works, the following attempts do not: https://photos.app.goo.gl/mKAEyh7VYyWBmtaW6

I think this is a Firebase-only bug. Top one received via instant delivery, bottom via Firebase:

It's because attachment_expires=0:
2022-12-04 23:11:45.920 2619-5880/io.heckel.ntfy D/NtfyFirebase: Received message: from=/topics/demogoogle, fcmprio=1, fcmprio_orig=1, data={priority=4, attachment_name=com.calcitem.sanmill_3178.apk, attachment_size=0, attachment_type=, attachment_expires=0, id=lpClKDAT6eJz, icon=, tags=, time=1670213505, click=, event=message, title=, topic=demogoogle, attachment_url=https://f-droid.org/repo/com.calcitem.sanmill_3178.apk, message=Here's a notification with an .apk attachment, encoding=}

Fixed in https://github.com/binwiederhier/ntfy-android/commit/b91778ad7d13402edb675d1482d43d959820ab0e


🐛 Fix the valid client certificate check

Summary
The commit edef33de92cd9af45709f24f8b35d4e4e96af822 introduced additional checks on the certificate subject. The issue is that the order of the groups and organizational units are not consistent, so it was causing the addon-framework to generate several CSRs with many coming back as invalid.
This takes the approach of sorting the strings before doing the comparison.

/cc @xuezhaojun

/cc @qiujian16 @zhujian7

Do you have an idea why the order is not consistent given it is a slice? Alternatively, I would suggest to use Set[string].

Do you have an idea why the order is not consistent given it is a slice? Alternatively, I would suggest to use Set[string].

I don't know why it's not ordered but I can try and figure that out.
Thanks for the suggestion! I didn't know apimachinery included a set library.

Do you have an idea why the order is not consistent given it is a slice? Alternatively, I would suggest to use Set[string].

It seems that x509.CreateCertificateRequest uses a set under the hood. You can see this simple example of how the parsed CSR returns the organizations as sorted:
package main

import (
	"crypto/ecdsa"
	"crypto/elliptic"
	"crypto/x509"
	"crypto/x509/pkix"
	"fmt"
	"math/rand"
	"net"
)

func main() {
	insecureRand := rand.New(rand.NewSource(0)) //nolint:gosec
	pk, err := ecdsa.GenerateKey(elliptic.P256(), insecureRand)
	if err != nil {
		panic(err)
	}

	csrb, err := x509.CreateCertificateRequest(insecureRand, &x509.CertificateRequest{
		Subject: pkix.Name{
			CommonName: "system:open-cluster-management:cluster:cluster1:addon:config-policy-controller:agent:config-policy-controller",
			Organization: []string{
				"system:open-cluster-management:cluster:cluster1:addon:config-policy-controller",
				"system:open-cluster-management:addon:config-policy-controller",
				"system:authenticated",
			},
		},
		DNSNames:       []string{},
		EmailAddresses: []string{},
		IPAddresses:    []net.IP{},
	}, pk)
	if err != nil {
		panic(err)
	}

	csrParsed, err := x509.ParseCertificateRequest(csrb)
	if err != nil {
		panic(err)
	}

	fmt.Println(csrParsed.Subject.Organization)
}

The output is:
/tmp/temp-csr via 🐹 v1.22.0 ❯ go run main.go
[system:authenticated system:open-cluster-management:addon:config-policy-controller system:open-cluster-management:cluster:cluster1:addon:config-policy-controller]

ah thanks for the info.
/approve
/lgtm


Router on error route doesn't update the page

Describe the bug
When the $error.svelte route is rendered, links on the page change the URL but the page is not updated.
Logs

console.log

GET http://localhost:3000/not-here
[HTTP/1.1 404 Not Found 399ms]

[vite] connecting... client:180:9
[vite] connected. client:202:21
Uncaught (in promise) TypeError: this.current.page is null
    notify http://localhost:3000/.svelte/dev/runtime/internal/start.js:423
    _navigate http://localhost:3000/.svelte/dev/runtime/internal/start.js:185
    init http://localhost:3000/.svelte/dev/runtime/internal/start.js:112
    init http://localhost:3000/.svelte/dev/runtime/internal/start.js:73
    start http://localhost:3000/.svelte/dev/runtime/internal/start.js:812
    <anonymous> http://localhost:3000/not-here:16
start.js:423:5
    _navigate http://localhost:3000/.svelte/dev/runtime/internal/start.js:206
    init http://localhost:3000/.svelte/dev/runtime/internal/start.js:112
    (Async: EventListener.handleEvent)
    init http://localhost:3000/.svelte/dev/runtime/internal/start.js:73
    start http://localhost:3000/.svelte/dev/runtime/internal/start.js:812
    <anonymous> http://localhost:3000/not-here:16
    InnerModuleEvaluation self-hosted:2382
    evaluation self-hosted:2333

To Reproduce

Setup with npm init svelte@next
Create an $error.svelte route with a link to, say, "/"
Run the dev server (or build and start)
Hit a 404 say /not-here
Click the link and observe that the URL changes, but the page does not

Clone https://github.com/drzax/svelte-kit-app for a quick reproduction.
Deployed here: https://svelte-kit-app.netlify.app/not-there
Expected behavior
Clicking the link should display the home page.
Information about your SvelteKit Installation:
 System:
    OS: macOS 10.15.7
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 154.45 MB / 32.00 GB
    Shell: 5.0.11 - /usr/local/bin/bash
  Binaries:
    Node: 14.15.1 - ~/.nave/installed/default/bin/node
    Yarn: 1.22.10 - ~/.nave/installed/default/bin/yarn
    npm: 7.6.3 - ~/.nave/installed/default/bin/npm
  Browsers:
    Chrome: 91.0.4455.2
    Edge: 89.0.774.57
    Firefox: 86.0.1
    Firefox Developer Edition: 79.0
    Safari: 14.0.3
  npmPackages:
    @sveltejs/kit: next => 1.0.0-next.59
    svelte: ^3.29.0 => 3.35.0

Seen in Firefox 86.0.1  on macOS
Seen on both adapter-node and adapter-netlify
Severity
A bit annoying. Links direct on the page can use target="_self" to avoid the router but links in modules used on the error page are more difficult to modify.
Additional context
Seems possibly related to https://github.com/sveltejs/kit/issues/643

could be dupe of https://github.com/sveltejs/kit/issues/604 as well

Closing as duplicate


2023.01.10 update: code below can deteriorate model performance

Hey,
by commenting the code in data_utils.py you introduced a potential bug if the wav files are not equality sized

Could you provide link to what code exactly ?

So, you're saying this code must be UNcommented?


[CARBONDATA-2354] fixed streaming example

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3911/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5132/

retest this please

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3915/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5136/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3933/

@jackylk please review

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/4139/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5320/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5953/


[Automation] Generate Fluent Lite from operationsmanagement#package-2015-11-preview

[Automation] Generate Fluent Lite from operationsmanagement#package-2015-11-preview

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-resourcemanager-operationsmanagement


NullReferenceException

Hi, Application error:
Help me :)
An unhandled exception of type 'System.NullReferenceException' occurred in GmailSignatureSync.exe
Error image : http://sakaryauniversitesi.com/123123123123.PNG

Hey, I'm happy to help you but I'm in Africa until Jan 4 without a
computer/reliable internet access. Sorry! I'll get it on ASAP when I'm
home.
On Thu, Dec 22, 2016 at 1:30 PM Hakan AK<EMAIL_ADDRESS>wrote:

Hi, Application error:
Help me :)
An unhandled exception of type 'System.NullReferenceException' occurred in
GmailSignatureSync.exe
Error image : http://sakaryauniversitesi.com/123123123123.PNG
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/VuWall/GmailSignatureSync/issues/1, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AALep1A_GW3EhC5dvkrhH2kvJPP9z1dVks5rKntrgaJpZM4LT-y8
.

i wait your answer.
Thanks

Hey, so I see from your picture you commented out the line that requests the access token, why is this?
if (!credential.RequestAccessTokenAsync(System.Threading.CancellationToken.None).Result)
  throw new InvalidOperationException("Access token failed.");
Also worth checking is that your Service Account Email is correct, and the password for your Key.p12 is also correct. Let me know!


Gist dependencies download incorrect revision despite paket.lock

I'm using this gist in one of my projects to help with the build script, and using gist amazingant/3fe006d53d1fb1749cdc in my paket.dependencies file. The paket.lock file shows this as:
GIST
  remote: amazingant/3fe006d53d1fb1749cdc
  specs:
    FULLPROJECT (bd54513b46b37af0701ba2005d411e1e296e78d2)

If I delete the paket-files directory and run paket restore, it correctly outputs the following (note the commit SHA matches the one specified in paket.lock):
Paket version <IP_ADDRESS>
Downloading amazingant/3fe006d53d1fb1749cdc:bd54513b46b37af0701ba2005d411e1e296e78d2 FULLPROJECT to C:\<some path here>\paket-files\amazingant\3fe006d53d1fb1749cdc\FULLPROJECT
...
3 seconds - ready.

The paket.version file located next to the gist's contents also shows the correct commit, but the contents of the gist match the current revision instead. Specifically, my build script is failing because The record label 'GitHubOrganization' is not defined, because I removed it in the latest commit on the gist.

Not sure where I can PR to given the current 2.0 work, but this passes the current tests and downloads the correct revision for the project in question: https://github.com/amazingant/Paket/commit/7882efa79a551d3993d8a6d8a48d1163a08b8038


Client: Process second line of response(data block).

We have successfully been able to read the first line of the server response by reading byte by byte. We now need to process the data block of the server response in order to finish. @jdk514 @kstats

In the next class you should coordinate with @nks5295 since he will be working on the portion of the server that reads in the strings sent by the client so they can be sent to a parser.  You both will be dealing with similar issues for reading in lines from a socket, so a few helper functions might be useful on both sides.

solved in #29.


Add random jitter to sleep times

C'mon, we can't have a perfect plot, that's cheating!!!
This PR introduces random jitter to the sleep times called by each process, in serial and parallel, up to ±20%. This little bit of noise makes the results a skosh more realistic, without significantly increasing code complexity.
A couple of minor typos are also fixed, and lines are wrapped to fit within one GitHub diff frame.

Good edit, thanks @ocaisa!

Going in, thanks again @tkphd


Extension for blocking snuff sites?

Hello. Is there currently an extension for blocking snuff sites? It doesn't seem so.

Do you mean violence/excessive violence?

Yes.

Most people may only relate the word "porn" to material with graphic nudity and sexual content, but technically the actual definition would cover any obscenities such as this. I am sure if you have some particular suggestions in mind, you can open issues or make PRs with the porn sources:
https://github.com/Sinfonietta/hostfiles
https://github.com/Clefspeare13/pornhosts
What is everyone else's take on this? @paxperscientiam, can you list some examples of sites you are talking about just so we have some references for further discussion on this?

@ScriptTiger Suggestions? Oh, boy...here are some examples:
bitcheese.net
horriblevideos.com
deathaddict.com

The only worry I have is if we start expanding categories in this manner, it could grow to be unmanageable. If we include one for violence, then maybe it could be an opening to also include one for drug usage, terrorist-related content, and other material supporting legally-controversial activities. If we change to a rating-based system similar to how the MPAA rates films, it would be putting a lot of responsibility on the curators to uphold a more strict standard across the multitude of domains they have in their lists. I also don't really like including legally-controversial activity with porn because, as much as some parents may think otherwise, porn is not actually illegal in most countries. There's also the issue with even grouping extreme "illegal" material together because things like marijuana usage or homosexuality get the death penalty in some countries while are totally legal in others. And there's things like discerning a hate message of violence from a possible educational or news source. However, if we can all simply agree that websites containing purely violence with no clear positive message whatsoever, are bad, that seems like a broad enough topic to both keep the project lightweight and let the sources more easily collect their lists.
Whatever our decision, we should consider the goal of this project is ultimately to keep a lightweight list and not to go too overboard in any one direction. I think this is definitely a good idea to look into though and it's definitely another case for documentation outlining the standards and expectation of this project as a whole and also for the individual extensions.

There are two facets here.
The first facet is the number of combinations as we increase the number of extensions.  We need a way to manage this programmatically.  Currently we do this explicitly.
The second facet is the overlap between facets gets increasingly nebulous.
For example 4chan is currently included in the porn extension sources.  4chan has everything.
At the moment, to keep things manageable, I'm inclined to bundle this under porn.

How do @Clefspeare13 and @Sinfonietta source their data? Would adding violence to the mix be an easy thing for them? If not, maybe we can just add a local porn/stevenblack/hosts temporarily to take PRs for this while we find a more dedicated source. Either way, while we're using the porn extension whoever ends up sourcing it should at least make a new commented section in the porn hosts to keep them together just in case we think differently in the future.

I think a Pull Request with @Clefspeare13 and @Sinfonietta would work well...

I would be willing to include this in my sources. I would also be able to create a host file that includes violence and one that does not, though that may complicate things more for Steven.

I've been thinking about a system which'd unite this big, manual work and profile info on the stuff in the lists (who blocked it why, etc.), but all the otherwise good ideas don't really make it easier, making my head smoke.

@StevenBlack

Currently we do this explicitly.

Perhaps the program could be made to read from a config that specifies extensions in terms of Github repo names?
EG:
{
    "extensions": [
        "marktron/fakenews",
        "Sinfonietta/hostfiles"
    ]
}

The second facet is the overlap between extensions gets increasingly nebulous.

I'm not so sure this is a big problem. For one, any measure of nebulosity depends on an agreed upon standard on what constitutes "fake news"and "pornography." That said, blocking trackers is not a nebulous concept.
Moreover, the end-user is always free to white-list any given domain. That said, you'll still have to way how comfortable you are with the fact that most end-users will not be checking each domain for accuracy. That said, some level of tech-savvy can be safely assumed given the nature of the project.
In short, since 4chan has violent material, pornographic material, and fake news, it, practically speaking, doesn't matter which list it's on.
I assume duplicates are stripped, yes? If attribution is a concern, perhaps keep the first occurrence of "<IP_ADDRESS> sexyviolentfakenews.net" and comment out subsequent occurrences (as opposed to stripping).
@ScriptTiger

...keep a lightweight list and not to go too overboard in any one direction

I agree; that's why extensions are important.
I'll make a PR.

@paxperscientiam I like your config idea.

@Clefspeare13 Hey, I overlooked your post. I've since submitted a PR, though I was unsure of how you compiled things. I wound up editing both the 0s and 127's .


Multisite duplicate all sites

What would you like to see added?
When duplicating an entry i would like to get all language versions to be duplicated.
For example I have a page in english and finnish.
I duplicate english page
the result is english page is duplicated and finnish version is not.
Is there a workaround you can use in the meantime?
I need to manually copy paste .md files and change origins
Priority wise - where's this feature for you?
Will need it in the next few weeks

Released in v2.2.0! 🚀

Thank you for making the fix, it now creates pages for all sites.
It sill has one bug.
For example I have a page in English and Finnish.

duplicate the page for all sites.
it creates a page with English and Finnish versions
the english version has everything as it should, but the Finnish version is a copy of english version, not a Finnish version

I’m open to a pull request to fix the issue - I won’t have time to look into it for a while.


No error fired when Youtube video is "unavailable in your country"

Current Behavior
Hi, sometimes a Youtube video is not playing because "unavailable in your country".
For instance, this one does not play in Belgium : https://youtu.be/NwMOpaxroTg
Expected Behavior
A player error should be fired so we could handle this ,is that possible ?

There is no onStateChange or onError event triggered by the player API when this happens. There is nothing we can really do here until YouTube add something that we can hook in to.
Maybe try posting on StackOverflow as per https://developers.google.com/youtube/players/support

Ok, so I guess i'll have to use a timer that checks if a video has started playing after XX seconds...

@gordielachance I've noticed that onDuration callback is not firing if video is unavailable in your country. Not sure if it is safe to use but maybe it will help

@cookPete : what about this ? https://stackoverflow.com/a/32503070/782013


Current implementation/wrapping of Context and State seem to prevent transfer between threads/tasks

Caveat: It may be my Rust skills....
It seems because of the lifetime links between WhisperContext and WhsiperState it is not possible to call Whisper in stateful blocks in a separate thread. I seem to hit lifetime issues when creating a common struct encapsulating both or  pass them in (and back) from a separate thread.
This is a use case when bridging async and blocking code. You create the WhisperContext and WhisperState  in an async block, read in a segment of audio, then call the blocking code from an async spawn_blocking call, once complete it returns to the async block, extracts segments, reads in another block of audio etc. rinse and repeat...

I figure you're using tokio::task::spawn_blocking here? In that case, yeah there's not really a great way to do it, as it expects a lifetime of 'static on everything. However, we can't change the lifetimes on the WhisperState, as it could result in UB if the model itself happens to get dropped before the State.
My workaround has been just storing a single model in a global static (using a OnceCell) where it's known to live for 'static and then being able to use tokio::task::spawn_blocking as the lifetime requirements are now satisfied.

Yes, that is correct - pretty much what I am trying to do.
Do you have any examples on this? might be an idea (nice to have) of having an example in the src - I would imagine I am not the only one wanting to non block or at least parallelise multiple invocations.

Sorry it took me a while to get back to you here. Currently the only real example I have is my personal use case over at https://github.com/scripty-bot/stt-service/blob/master/stts_speech_to_text/src/lib.rs
The code's a bit spaghetti, but the relevant parts are static MODEL, fn load_models, fn get_new_model, and SttStreamingState::finish_stream. They should hopefully roughly show an idea of how to use it, but I will look into adding an example. I have one half made on my desktop right now, just need to clean it up and push it.

Any thoughts about wrapping the Context in an Arc and storing that in the State struct?
pub struct WhisperInnerContext {
    ctx: *mut whisper_rs_sys::whisper_context,
}

impl Drop for WhisperInnerContext { ... }

pub struct Context {
   inner: Arc<InnerContext>
}

pub struct State {
   ctx: Arc<InnerContext>,
   ptr: *mut whisper_rs_sys::whisper_state,
}

impl Drop for State { ... }

This a pattern I've seen elsewhere, for instance the rusb crate. Removing the lifetime parameter in State would make it much easier to use.


@ng-icons/circum-icons update for Angular 16

Describe the bug
@ng-icons/circum-icons has not been updated yet for Angular 16. I am getting an error when running the npm install command.
To Reproduce
Steps to reproduce the behavior:

Create new project with Angular 16
Run npm i @ng-icons/core @ng-icons/circum-icons
See error

Screenshots

Packages (please complete the following information):

<EMAIL_ADDRESS>

Oops. Fixed with 25.0.1 :)

🙂 No problem, thank you for the feedback!


The ASP.NET core integration instantiates validators per request

According to the docs, validators should be instantiated as singletons. However, when using the ASP.NET core integration, the validators are instantiated per request.
I'm registering the validators like so:
AddFluentValidation(c => c.RegisterValidatorsFromAssemblyContaining<SomeValidator>())

Other approach
I also tried using the DI framework (Autofac in my case) directly and configure the validators as singletons there, but this doesn't work due to a chicken and egg problem in ConfigureServices():

Add MVC with fluent validation (requires custom DI registrations)
Create DI container (requires MVC services already pre-registered in the IServiceCollection)
Add custom DI registrations (requires DI container)

Some form of lazy evaluation in the validator lookup in AddFluentValidation() would solve this chicken and egg problem.

This is by design to avoid the lifecycle gotchas that come from having singleton-scoped objects with non singleton-scoped dependencies (eg depending on a request-scoped DbContext) - and actually in 7.1 they're transient, not per-request.
These kind of lifecycle scoping issues are non-obvious to inexperienced developers, so making the validators transient by default makes it easier to get started.
Since FV 6.4, there is expression tree caching that negates a lot of the performance issues that previously arose from having transient-scoped validators (although you are of course still free to register them as singletons if you prefer).

Ah I was already wondering if you cache the expression trees, powerful technique :-) . Even better, then it won't matter to me that the validators are instantiated multiple times.
Thanks a lot for the quick response.

It's never going to be quite as performant as having the validators as singleton (which I still think is better), as not all expressions can easily be cached, but I think it's now good enough for most of the time.


Remove export of ResolverPlugin which no longer exists

The ResolverPlugin was removed in 461c49ab6636e5272362a28a6694d1c626227b05, so accessing it on the webpack object now throws an error Cannot find module './ResolverPlugin'.

Thanks


Updating CDN to the latest

I do understand that @dimsemenov has a limmited time in maintaining the project. Still, could you at least update the CDN files to reflect the latest from the project?
What I mean, the Magnific is on the version 1.1.0, while the CDN files are running the 1.0.0:
http://www.jsdelivr.com/?query=magnific popup
Thanks!

CDNJS has already the latest version of Magnific Popup - https://cdnjs.com/libraries/magnific-popup.js
Feel free to send PR that would add support for other CDNs that you use.

@jsdelivrbot npm magnific-popup


🛠 Fix ➾ (build) removed caching for build-docker

🌮 Taqueria PR
🪁 Description
NX is configured to cache a number of tasks including  build:docker. This is causing issues with outdated Docker images when switching branches and running build:docker which seems to not generate the correct Docker image for the branch.
This PR disables caching for build:docker to ensure  new Docker images are always generated
🎢 Test Plan
Please describe the testing strategy and plan for this PR. Keep this lightweight and anticipate any testing challenges
🛸 Type of Change

[x] 🛠 Fix ➾

I've forced pushed commits to this PR to only include changes related to NX caching


How to save raw data (.bag) with lesser frame rate

Required Info

Camera Model
D400

Operating System & Version
Win 10

Platform
PC

Language
C#

Issue Description
I am saving a .bag using
private Pipeline pipeline = new Pipeline();
var cfg = new Config();
cfg.EnableRecordToFile("C:\temp\My_test111.bag");
var pp = pipeline.Start(cfg);
// rest of code ...
pipeline.Stop();

But my .bag file gets huge (GB) very quickly. I am not interested in so much data. I want to record about 1 minute but maybe only 10 frames per second. Is it possible to specify the frame rate for recording data to bag files? thanks

As well as supporting 30 fps on most resolution modes, 6 fps and 15 fps are also supported.  So a good compromise may be to configure your stream to run at 15 fps and record the bag file as normal.
You can also now set custom save paths so that the file gets saved in a computer location where you have the most spare storage capacity.

Thanks for your reply. I tried your suggestion with this code:
Config cfg = new Config();
cfg.EnableStream(Stream.Depth, 640, 480, framerate: 6);
cfg.EnableStream(Stream.Color, Format.Rgb8, framerate: 30);
cfg.EnableRecordToFile(@"C:\temp\My_test111.bag");
pipeline.Start(cfg);

This code works fine, but when I change the Stream.Color to framerate: 6. I get this exception:

I think you need to use Enable_Stream instead of EnableStream:
cfg.Enable_Stream (Stream.Depth, 640, 480, framerate: 6);
cfg.Enable_Stream (Stream.Color, Format.Rgb8, framerate: 30);

I am using C# and the naming is little different. Based on this example:
https://github.com/IntelRealSense/librealsense/blob/master/wrappers/csharp/cs-tutorial-2-capture/Window.xaml.cs
I also noticed following works good and created a good .bag file
cfg.enable_stream(rs2.stream.depth, 640, 480, rs.format.z16, 30)

but following creates a corrupt .bag file ("Bag unindexed") when I try to open it
cfg.enable_stream(rs2.stream.depth, 640, 480, rs.format.z16, 30)

Yes, sorry, I just realized that the C# format is different.  My apologies!

Yes! you're right. Just tried and seems like .bag file is created correctly with following. thanks!
pipeline.Stop();

But I am still have issues with this:
cfg.EnableStream(Stream.Color, Format.Rgb8, framerate: 6);

6 frame rate works for Stream.Depth but not Stream.Color

I found another case where someone had trouble with streaming color at 6 fps.
https://github.com/IntelRealSense/librealsense/issues/2771
Does it work at 15 fps?

Yup! thank you 15 fps worked with 640 x 480.
Strange it doesn't work with 6 fps. I'll read through the post some more.
Thanks for your help!

Glad I could help!
I just did a test with your configuration in RealSense Viewer (640x480 at 6 fps for depth and color, z16 for depth and rgb8 for color).    The most noticeable event was that when a 6 fps color stream was started, a 'no frames received' error briefly flashed up and then the color stream started running normally.  This error did not occur at 15 fps and above.

Oh interesting, maybe I'll try to just ignore first few frames or wait couple seconds before retrieving frames. Will see if that helps.


Tooltip, if element is removed tooltip is left there

If control on which tooltip is shown is removed then tooltip is left there and it's stuck there forever.
Steps:
Display a tooltip on a link
When hover over link tooltip is shown
Now clicking on that link removes link from the DOM
Tooltip is left there and never going away

The plugin could be modified to have the tooltip be a child element of whatever it's attached to, but then traversing said element might be off (ie: if you're expecting a set number of children).
Having the tooltip hide when the element is removed would be spotty, as browser support for DOM Mutation events isn't top notch, and IE is unique of course.
The simplest solution would be for you to just call $('#element").tooltip('hide'); before removing the element.

A solution could be to implement the "destroy" event (with: http://v3.javascriptmvc.com/jquery/dist/jquery.event.destroyed.js for example). Then, attach the destroy event to the tooltiped object and destroy the tooltip when element is destroy.

Please empty the tooltip element before rendering again. Hope it helps!

Not a real solution but i made my own tooltip using like this.
adjust margin-top for distance from item.
>component.html

    ...

>component.scss
.myTooltip {
position: relative;
display: inline-block;
}
.myTooltip .myTooltipText {
opacity: 0;
visibility: hidden;
font-size: 12px;
width: 400px;
pointer-events: none;
border: 1px solid;
padding: 0 15px;
background: #b2d3e4;
color: #00639e;
text-align: justify;
border-radius: 6px;
margin-top: -70px;
position: fixed;
z-index: 999;
overflow: visible;
min-height: 54px;
vertical-align: middle;
display: inline-flex;
transition: opacity .1s ease-in-out;
-webkit-transition: opacity .1s ease-in-out;
}
.myTooltip .myTooltipText::after {
content: " ";
left: 10%;
bottom: -10px;
overflow: visible;
font-size: 12px;
width: 12px;
color: #00639e;
z-index: 99999;
position: absolute;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: #b2d3e4 transparent transparent transparent;
}
.myTooltip:hover .myTooltipText {
visibility: visible;
opacity: 1;
}

None of the accepted answers seemed to resolve my issue, and would just leave the tooltip floating mid-page, and then upon scrolling, it would move to the top left of the page due to the absolute positioning. (I'm using Vue, and the element already had an @click event on it, so I added a parent wrapping div and applied an inline event there)

In my case the tooltip was attached to a button which would be removed immideatly after being clicked (but the tooltip would still remain visible). So, I check for obsolete tooltips after every click, and if they are found, remove them.
("body").on("click", e => {
    hideObsoleteTooltips()
})

function hideObsoleteTooltips() {
    // Find all existing tooltips
    const tooltips = $(".tooltip")
    for (const t of tooltips) {
        // Find the initiator of this tooltip
        const initiator = $(`[aria-describedby="${t.id}"]`)
        // If the initiator is no longer visible, remove the tooltip
        if (initiator.is(":hidden")) {
            t.remove()
        }
    }
}


feat(use-shopify): remove urql provider

:tada: This PR is included in version 0.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Change image resolution / page viewport

Hi :wave:
I just came across this lib, which is just a better implementation of the one I had 😄
I think it would be useful to have a width and height option, to specify the image resolution, no? Just an idea!

Hey @robrechtme! Thats a nice idea and thanks for the pull request 🤟🏻 I'll inspect it tomorrow :)

@robrechtme Im sorry, there was just much work to do and I forgot 😄 I'll do it today after work :)


SHIRO-700 - Minor version updates to Spring, Spring Boot + SLF4J

Also removed an unused old hibernate dependency.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Shiro-pr/110/


fix(ControllerEvents): fix order of controller events

Solves an issue where TouchpadAxisChanged occurred before TouchpadTouchStart and TriggerAxisChanged occurred before TriggerPressed. Now, these can only occur in the following frame if the value continues to change, so now you can be assured that a 'Start' event will occur before a 'Changed' event for initialization purposes. (I needed this to get the first change delta and start tracking changes at the right moment.)
This also keeps the 'Changed' events from happening on the 'End' event frame, which would often cause a value jump. (At least they would with my tests on TouchpadAxisChanged.)

Avoiding trigger on the initial press and final release was intentional.
First Press: The value hasn't technically changed yet. It's just being set initially.
Final Release: Originally, I included the change event and release event on the same frame, but I always got back weird values on that final release frame. To get my features to work correctly, skipping the final frame worked best.
To see the problem, try out this example. Grab an object, then slide your thumb up/down along the TouchPad to change the object's scale. Notice how it jumps around both at the beginning (because the initial scale hasn't been set) and then again when you release (because of the sudden jump in the touchpad axis). With my fix, it runs smoothly. If you remove the second else that keeps the change from running on the last frame, you will see the jump at the end of the scale swipe come back again.
touchpad scale example.zip


Use Arrow stream interface for public API

Change list

Use pyarrow.RecordBatchReader for public APIs. This is better for memory usage because it never materializes the entire stream in memory at a time.
Return types and function arguments using pyarrow.RecordBatchReader are also compliant with the Arrow PyCapsule Interface. This means that there's zero-copy interop with stac-arrow in Rust, pyogrio, geoarrow-rs, etc.

Closes https://github.com/stac-utils/stac-geoparquet/issues/66

Do you think the existing tests are sufficient to cover this? In particular, do we have any tests with enough data / small enough chunk size to hit multiple batches?

We should add tests with a small chunk size that specifically checks for multi-chunk behavior


Selecting Git blame in command pallette is showing Hello World

Just out of curiosity, what would you expect it to do there? I understand showing the "Hello world" info bar isn't helpful, but what should replace it?

@martellaj I would expect new file which has the full output of git-blame for the current selected file

I expected something similar to the annotate feature in android studio (see screenshot). Ideally clicking on a blame line would open details on that specific commit where I can also see other changes that happened during that commit.

Fixed now.


refactor out tiled map parser to separate class

Currently part of TileMap

Completed in ac5c3e6 .tmx file parsing refactored into separate TmxFileImporter class (in IO.Importer namespace).
The main TileMap FromFile method now simply switches on the file extension and creates the correct importer to do the file import for it.


Fix verify

the previous verify can not verify code generated other than deepcopy.

fixes: #788

Thanks, Now command generate-deepcopy and related file are not needed any more:)

any idea the pull-kube-batch-verify failure?

@hzxuzhonghu looks like it's been initialized in kube-batch folder while all import paths are still using volcano :(

/retest

/lgtm


When I was about to give up...your repo gave me hope.

Thank you!

We're glad you enjoyed it, @partnercloudsupport.

@dusty-nv question for your Sir. Can I flash my Jetson from the EC2 instance?
Also...have you found a hard/fast way to get around the login loop issue once you download the cuda drivers?  It is the #1 issue I am having on my GPU's. Thank you in advance.

You can't flash your Jetson's remotely, they need to be attached directly to a native Ubuntu host PC.
-------- Original message --------
From: partnercloudsupport<EMAIL_ADDRESS>Date: 6/7/18 11:46 AM (GMT-05:00)
To: dusty-nv/jetson-inference<EMAIL_ADDRESS>Cc: Dustin Franklin<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [dusty-nv/jetson-inference] When I was about to give up...your repo gave me hope. (#243)
@dusty-nvhttps://github.com/dusty-nv question for your Sir. Can I flash my Jetson from the EC2 instance?
Also...have you found a hard/fast way to get around the login loop issue once you download the cuda drivers? It is the #1https://github.com/dusty-nv/jetson-inference/issues/1 issue I am having on my GPU's. Thank you in advance.

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/243#issuecomment-395469739, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK5GUeTGhyfJjQghdhqJ0pdt7VB6Jks5t6UragaJpZM4UdMSl.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

I thought so dusty....my heart is broken. Thank you.
What is your experience with the login loop? If I go and buy a linux pc for this push...I am afraid I will keep getting locked out and have a brick.

Not sure what you mean login loop, do you mean on Jetson or a different discrete GPU?  On Jetson, use JetPack to install CUDA and the NVIDIA drivers.  They are not installed like normal.
-------- Original message --------
From: partnercloudsupport<EMAIL_ADDRESS>Date: 6/7/18 11:53 AM (GMT-05:00)
To: dusty-nv/jetson-inference<EMAIL_ADDRESS>Cc: Dustin Franklin<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [dusty-nv/jetson-inference] When I was about to give up...your repo gave me hope. (#243)
I thought so dusty....my heart is broken. Thank you.
What is your experience with the login loop? If I go and buy a linux pc for this push...I am afraid I will keep getting locked out and have a brick.

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/243#issuecomment-395472021, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK-lB8HuOgUKFzwPChCuYR5MYAvYRks5t6UxqgaJpZM4UdMSl.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

Good question....on my ec2 p2/p3 gpu....I pull down nvidia drivers and then I do the nvidia-smi and everything looks good. Then I do a sudo reboot.
I type my password in which is correct and it says password invalid. I have installed the drivers on 10+ gpu's and same thing every time. I unstall with sudo apt-get purge nvidia*  and walk through the steps described here https://gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07
and 1 out of 10 GPU's deployed it has worked on and unlock my box and I can work.
I have been working on this for a week and I am at my end....lol. I have to laugh to keep from crying.
I hope this is clear. Thanks for responding.


[Enhancement]: Inclusion of Dark & light theme for users while playing games.

Is your enhancement request related to a problem? Please describe.➕
Game enhancement : I've noticed that while playing game, User does not have any User friendly interface, So i would like to add Light-Dark theme mode in a game.
Describe the solution you'd like
Solution steps : I will include Light-Dark theme BUTTON mode using CSS which is common for all games so  that user can enjoy playing it in any theme.
Select program in which you are contributing
No response
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @Daxrajsinh !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @Daxrajsinh 👋!
@kunjgit here,
We have this annoucement to make 📢!!
We have updated our README 🚀
Make sure you follow proper guideline to raise your next issues !!
Make sure you join our Discord🕹 if you haven't 😇
Thank you 💗!

Hey @Daxrajsinh ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Create/publish requirements

Nice work Dan. Didn't get time to share my feedback from our chat earlier today as had to rush off to  a meeting so here it is now.
The flexibility of filling in forms and questions of any type is really cool! If you haven't already, do discuss with Rob as he might be able to use some of it!
I think in general, the form helper module could do with some improved commenting. It's hard to know what a method is doing exactly. It was fine when you took us through in person and gave the explanation of what they do, but this context is missing from the code without having to go through line by line. Something like doc blocks describing inputs/outputs/effects or a few small comments might be useful. Simiarly, method names could be more descriptive, in particular check_only, random_for, input_list don't feel like they mean much, if anything.
Overall though, super cool. I know I'd never of thought to come up with something so generic and flexible so it's got a really good base for the rest of our functional tests.

i think i've addressed all the issues left on this now

Looks good 👍


Can't verify domain: [WARNING: No SPF record exists for this domain]

Hello postal team.
First of all, thanks for making such great project. Unfortunately I'm having hard time setting this up.
I tried to solve this problem all myself without opening issue, but It seems I can't get it working without help.
I've successfully installed the postal project and everything runs fine. I created my first organization and first server. Went to Domains and added my first domain. Followed the instruction as it said, but I can't verify SPF Record part.
Here is my postal.yml file. I removed unrelated parts.
web:
  # The host that the management interface will be available on
  host: postal.mydomain.io
  # The protocol that requests to the management interface should happen on
  protocol: https

dns:
  # Specifies the DNS record that you have configured. Refer to the documentation at
  # https://github.com/atech/postal/wiki/Domains-&-DNS-Configuration for further
  # information about these.
  mx_records:
    - postal.mydomain.io
  smtp_server_hostname: postal.mydomain.io
  spf_include: spf.postal.mydomain.io
  return_path: rp.postal.mydomain.io
  route_domain: routes.postal.mydomain.io
  track_domain: track.postal.mydomain.io
  helo_hostname: # By default, this will be the same as the `smtp_server_hostname`
  dkim_identifier: postal
  domain_verify_prefix: postal-verification
  custom_return_path_prefix: psrp

smtp_server:
  port: 2525
  tls_enabled: false
  tls_certificate_path: # Defaults to config/smtp.cert
  tls_private_key_path: # Defaults to config/smtp.key
  proxy_protocol: false
  log_connect: true
  strip_received_headers: false

smtp_relays:
  -
    hostname:
    port: 2525
    ssl_mode: Auto

smtp:
  # Specify an SMTP server that can be used to send messages from the Postal management
  # system to users. You can configure this to use a Postal mail server once the
  # your installation has been set up.
  host: postal.mydomain.io
  port: 2525
  username: myfirst-stmp # Complete when Postal is running and you can
  password: HvVmXCJeeqeZdyVvGc3bmvb7I # generate the credentials within the interface.
  from_name: Postal
  from_address<EMAIL_ADDRESS>
My DNS entries:
A | postal | points to MyVpsStaticIP
CNAME | psrp.postal | is an alias of rp.postal.mydomain.io
MX | postal | mail handled by postal.mydomain.io (10)
TXT | postal-cayfef._domainkey.postal | v=DKIM1; t=s; h=sha256; p=MIGfMA0GCSqGSIb3DQEB...
TXT | mydomain.io | v=spf1 include:servers.mcsv.net include:spf.postal.mydomain.io ?all

About last record, there was an existing TXT record on my root domain mydomain.io. So I added include:spf.postal.mydomain.io to existing record as Dns setup page suggested. Since it didn't work I even removed existing record and added new entry for domain root: @ v=spf1 a mx include:spf.postal.mydomain.io ~all
I've tried to send test email, but it seems I cannot send emails until I verify the domain. It says SOFT FAIL.

Please, don't say that you "followed installation instructions step by step" (referring to my guide https://github.com/atech/postal/issues/614) when you didn't do it at all.
My guide don't ask you to include " dkim_identifier: postal,   domain_verify_prefix: postal-verification,   custom_return_path_prefix: psrp".
My guide gives you 13 DNS records, and you only include 5. What?! Please go back and read again. Just replace "mail" with "postal", and "example.com" with "mydomain.io".
I assume that you know how to configure DNS records properly. For example, you have created a CNAME for the subdomain "psrp.postal", when it's just "psrp".
You created a MX for the subdomain "postal", but not for the root domain @.
And the list goes on...

I didn't mention your guide at all here. I tried to keep up with your guide on your guide page, it didn't happen. I guess talking about your guide here is not related to main project issues, unless I specifically mention you here. Above setup and results are according to Dns Setup page.
About your guide I already tried several times (yes I created all of the DNS records as you said there) but only DKIM step was green and other 3 weren't verified.
If you don't mind to help me setup according to your guide, I will reconfigure/redo all my setup.
PS: Please forgive my English.

 Am I missing something?
Here is steps I done.

[x] Install postal dependencies.

[x] Install, configure and run postal.

[x] Set these Dns records in Cloudflare.

Let's focus on just one DNS record.

You have in Cloudflare: `Type: TXT, Name: mydomain.io, Value: v=spf1 a mx include:spf.postal.mydomain.io ~all, TTL: Automatic, Status x
You checked in whatsmydns.net that mydomain.io TXT gives that value.
Restart Postal (just in case) postal restart
Go to the DNS Setup page and click "Check my records".
If you did 1, 2 and 3, it's mathematically impossible that the verification fails. If that happens, post screenshots of everything [you will delete them later]. I need see to believe.

Sorry for late reply. I removed all DNS records related to postal except postal.mydomain.io A record to my server.

Added the TXT record on cloudflare (Here is all TXT records of my domain)

Checked status on whatsmydns.net (I assume it's working?)

Restarted the postal service. (I'm using instructions from https://github.com/atech/postal/wiki/Starting-on-boot page. sudo systemctl restart postal to restart postal app)

Check my records result:

It looks like you have two SPF records. This will not work. You should combine all the values into one record.

A better record would be v=spf1 a mx include:servers.mcsv.net include:spf.postal.erxes.io ~all

Done.
Should I restart postal after any DNS changes?

That shouldn't be necessary.

Well I guess there is something wrong with my setup. It really should be working like this right?
What should be causing this issue?

Cloudflare settings? ( I even enabled development mode)
Nginx settings? (All I changed was: mail.example.com -> postal.mydomain.io)
Firewall? (I changed SMTP server ports to 2525 and opened them on firewall. I guess It's working as expected)
Google Cloud could be blocking something somewhere?

I'm sorry. Your case is difficult and my knowledge of Unix is limited and Ruby almost inexistent.
I spent days trying to use a proxy with Postal (issue 605). Nobody helped me.  Maybe start from the scratch with a VM system and a test domain (freenom).
If nobody else here helps you, you will need to continue your way alone. Just a final tip for you:
I have tested that having several records its not a problem. Read the source code
https://github.com/atech/postal/blob/master/app/models/domain/dns_checks.rb#L44
It seems to me that there is some problem when Postal code tries to get records, as it gives the error "empty".
Create a file named testdns.rb with this
require 'resolv'
resolver = Resolv::DNS.new
result = resolver.getresources('erxes.io', Resolv::DNS::Resource::IN::TXT)
puts result.inspect.gsub(",", "\n")

Run ruby testdns.rb an see what outputs.
(My system outputs now:
 #<Resolv::DNS::Resource::IN::TXT:0x00563335e24438 @strings=["v=spf1 a mx include:servers.mcsv.net include:spf.postal.erxes.io ~all"]
 @ttl=300>]

Well, tomorrow I will create new server and domain for the sake of this application testing.

Just out of curiosity, what's the output of running the code I posted (testdns.rb) ?

@willpower232  yes, that's why I changed port 25 to 2525. Most server providers doesn't allow 25, 465, 587 ports nowadays.
@oasis1234 I will let you know when I get to work tomorrow.

@oasis1234
I've created file named testdns.rb on my home directory and run the script using
ruby testdns.rb. Is this right?
And output is:
mailserver:~$ ruby testdns.rb
[#<Resolv::DNS::Resource::IN::TXT:0x0000000000d81288 @strings=["v=spf1 a mx include:servers.mcsv.net include:spf.postal.erxes.io ~all"]
 @ttl=258>
 #<Resolv::DNS::Resource::IN::TXT:0x0000000000d80ab8 @strings=["google-site-verification=-tepODKHoWJkXll9WN-BXI6HtFm3_u0-3rNXYWWfPyc"]
 @ttl=258>]

It's still not working, I guess I'm gonna start building test environment now.

 None of them worked for me on clean DigitalOcean Ubuntu 16.04 vps and new clean domain.
Unless someone teamviewer me and go through whole process I think I'm done here.

Oh hang on, you're adding postal.erxes.io but you've put the SPF record on erxes.io

you've put the SPF record on erxes.io

Yes, that's what Postal is asking for:

You need to add a TXT record at the apex/root of your domain (@) with the following content

You can review the source code (dns_checks.rb#L44). The only solution for shinebayar was to debug the source code.

@oasis1234 You're right and the code is probably wrong since the policy on the root of the domain shouldn't always apply to the subdomains (http://www.openspf.org/FAQ/The_demon_question)
@shinebayar-g can you add other top level domains to Postal? i.e. erxes.io should be able to be added without changing your existing settings.
If you can't, it might be worth switching how Postal looks up DNS with the use_local_ns_for_domains setting in your config file (see the default at https://github.com/atech/postal/blob/master/config/postal.defaults.yml#L15)

TL;DR Postal checks the DNS records based on the label "Name" entered when adding a domain, ignoring the postal.yml file.
@shinebayar-g maybe you're not going to read this, or you're no longer interested, but I'm a stubborn guy that never gives up.
Today I was installing Postal in a new server & domain, let's call it mydom.com
I clicked "Add new domain", then an input box with label "Name" appears, so I simply entered "mydom", knowing that everything was well configured in postal.yml and the DNS table. Then I went to the DNS Setup page, clicked 'Check my records are correct' and... KaBOOM! Postal complained that all DNS records were wrong. I rechecked everything, and noticed that the error said "No txt records were returned for postal-abc123._domainkey.mydom" Notice that it said "mydom", not "mydom.com".  Sorry for the late reply.
Final thoughts: "If your neighbor has a problem, be prepared, maybe you're next".

Alright, you convinced my man. I'm gonna create new server and domain right now. I will write down all of my steps I'm doing. Hope it's gonna work this time.

You're welcome!

@oasis1234  I am having similar issues with the DNS record. I have maintained all the record required by postal as well as mentioned on the postal for dummies post.
Also testdns.rb outputs following result
ruby testdns.rb
[#<Resolv::DNS::Resource::IN::TXT:0x0000559c47955400 @strings=["v=spf1 a mx include:spf.relay.cloudhimalaya.com.np ~all"]
@ttl=3036>]
I am missing something

@gitaayush please feel free to open a new issue rather than replying to a closed one

I Have same problem to
ciptapernika.id	3600	IN	SOA	ciptapernika.id root.ciptapernika.id<PHONE_NUMBER> 7200 3600 86400 3600
;; A Records
absensi.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
ciptapernika.id.	1	IN	A	<IP_ADDRESS>
mail.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
mailu.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
mx.postal.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
postal.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
routes.postal.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
rp.postal.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
spf.postal.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
track.postal.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
webmin.ciptapernika.id.	1	IN	A	<IP_ADDRESS>
;; CNAME Records
psrp.ciptapernika.id.	1	IN	CNAME	rp.postal.ciptapernika.id.
;; MX Records
ciptapernika.id.	1	IN	MX	10 rp.postal.ciptapernika.id.
ciptapernika.id.	1	IN	MX	10 mx.postal.ciptapernika.id.
ciptapernika.id.	1	IN	MX	10 postal.ciptapernika.id.
mail.ciptapernika.id.	1	IN	MX	10 postal.ciptapernika.id.
routes.postal.ciptapernika.id.	1	IN	MX	10 postal.ciptapernika.id.
;; TXT Records
ciptapernika.id.	1	IN	TXT	"v=spf1 a mx include:spf.postal.ciptapernika.id ~all"
dkim._domainkey.mail.ciptapernika.id.	1	IN	TXT	"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxgM2SGQqycZrt6PIVd/dq/Zilast/boD3lF7DJb5m0a9nB245EcQsIJaYboARUjmNgxL9ichOAZSYau/mWeFp3m0ViCED4c1Q+frPr3XsiqxvO2MnkTljxbMVwQMSKBUsbIjfefgpxMDt3uVn5y+BPFKAj22xFqGHjyYAOdX2JArkWgkB3EpijaXfzOo;"
_dmarc.mail.ciptapernika.id.	1	IN	TXT	"v=DMARC1; p=reject<EMAIL_ADDRESS><EMAIL_ADDRESS>adkim=s; aspf=s"
postal.ciptapernika.id.	1	IN	TXT	"v=spf1 a mx include:spf.postal.ciptapernika.id ~all"
postal-dyagps._domainkey.ciptapernika.id.	1	IN	TXT	"v=DKIM1; t=s; h=sha256; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+AS0MNbWJUxzbtutJxAo2Hsmtkpck7mFjStPS1VC1UGADRSiXTQWTXtRql8QPnH5G+1iXZA0v5eufHcv3BcIFIcKMRfuFlAjNr45fu9kwGzTQ2a9QbGAxBO2ygilr67/7DS2Pt37ltgjJS2HJvejalD3sQJNOYatHD1r7l5i21wIDAQAB;"
postal-g5awdg._domainkey.ciptapernika.id.	1	IN	TXT	"v=DKIM1; t=s; h=sha256; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8sCbuaF87Hy70lPUvzdfTw/XxYAU+q/y3SWCCasCqtUFxVxjeyXkfrxmmQA6bBnIRt/DqWBVy3a5qUo/7fS7xh+aK/WOd3jn4ymsKnjDa524mDqkekOPTOzIc5AaJwsE39pZhM/TI+FkrEESmYUIZUfGFbjab43DhsembHtL4AQIDAQAB;"
postal-gua04l._domainkey.postal.ciptapernika.id.	1	IN	TXT	"v=DKIM1; t=s; h=sha256; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCoIVlehqsc8VH/m266N5VSReJZGbUYndmuILXOtTYDHeZDYCo1++QDnFmuzIzYx+lg3bCNM7p0eKtabMZpe9fQeR/pTpalBtGD++u2GLIaI+ztFzNRgRrdO/DlDYaw2Xrv5PJ59Ser/D+gyIn/A/j+aStlgcBg6Ip7XN35eVlE0QIDAQAB;"
postal-ua0o0v._domainkey.ciptapernika.id.	1	IN	TXT	"v=DKIM1; t=s; h=sha256; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCj4raXlfFF0QN/dG4Z72BJUSbDYbDE2IPUwLpzGhL25ll6TlmQfufMQDpTv4UrzOVa+gBFS8MHoM1pmsX7KZYOEDxyAiO1Et61pNdu6mtYjPD+tMyA9weYlRWJFkhvOno8111VLmWn+6Qpre7UILMJkx+0re63pxFcdHll0lD04wIDAQAB;"
postal-vvqtqr._domainkey.ciptapernika.id.	1	IN	TXT	"v=DKIM1; t=s; h=sha256; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZijtjd/Ap2gvnY4OR302jNl1u2lCrzxrndCsu98koyXPgDW6LoveSwHfRW0ssUHbqTyoPRyYa9PjN2qfp22ut2QiPunDBdqp+qH9QgYNjgh7SaTTfkSKhohRrRELivIE9SsJy23tNLqYXp1b1PyY6MC5Gs/Sn6ZFPH0j2+kwC6QIDAQAB;"
postal-wnmrnj._domainkey.ciptapernika.id.	1	IN	TXT	"v=DKIM1; t=s; h=sha256; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDnww4wbwehEbB5DF0FzZ4LUjJNFqzkoMgzUdf1xE8uN1rZ8GCc2W3Lt18J81LA4MGU+74Gr5FKg4qCoec561z+UYPSqkwhpIReWHCx/s0C/DScKXwdtzl7AYEVLP3sDAARIKq2rD63ttE6l9cbvYD/xiKcIu1pW4SybSBIyeGtOQIDAQAB;"
postal-zz3yan._domainkey.ciptapernika.id.	1	IN	TXT	"v=DKIM1; t=s; h=sha256; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1SUAlnf3NcXelCW3aoBY0LZhLFRpX/BKf3s9nHZh4TcYL2YsM6ECSCnWuPNNUtQdtPehJ4jhTkSZHI7SgO0S2sL4guGbFJs4rjYcN6BVooJUg5UNExvGNJq7ZyzkqwpEgNCE2RgGlfWQ4W6g6gzYFzAWx/pqn8umyqOaiZCSZZwIDAQAB;"
rp.postal.ciptapernika.id.	1	IN	TXT	"v=spf1 a mx include:spf.postal.ciptapernika.id ~all"
spf.postal.ciptapernika.id.	1	IN	TXT	"v=spf1 ip4:<IP_ADDRESS> ~all"


difference-of-squares: Change expected exception type

I think it would be better to use the more specific ArgumentOutOfRangeException instead of ArgumentException here.

Thanks @balazsbotond for the PR! I've gone ahead and added my input, could you please take a look and update the changes?
This will be a small breaking change for anyone that's already implemented this but doesn't change any of the core problem, so I think it should be fine.

@robkeim thanks for the review! I've renamed the test.

Merging this, thanks @balazsbotond!


Add qlik lexer

Created a lexer to support qlik scripting language.

@Jean-Abou-Samra I'm still working on getting it tested as I need to download xcode to be able to use make etc but it's 10GB and taking a long time, so I haven't yet pushed it. I will get it there asap and let you know.

@Jean-Abou-Samra Thanks for looking into all of this and all your suggestions above. I believe I have now made all the changes required in the commits I've just done. I have tried to run make test, but I couldn't get it to run with pyenv. I was able to run pytest on it though, and there were two errors, but I don't believe they are related to the changes I have made (Although let me know if they are and I can try and fix it).
> pytest
======================================================================================== test session starts ========================================================================================
platform darwin -- Python 3.9.1, pytest-7.0.1, pluggy-1.0.0
rootdir: /Users/gemmadown/Documents/pygments, configfile: pytest.ini
collected 3796 items / 2 errors / 3794 selected

============================================================================================== ERRORS ===============================================================================================
__________________________________________________________________ ERROR collecting tests/test_html_formatter_linenos_elements.py ___________________________________________________________________
ImportError while importing test module '/Users/gemmadown/Documents/pygments/tests/test_html_formatter_linenos_elements.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
../../.pyenv/versions/3.9.1/lib/python3.9/importlib/__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/test_html_formatter_linenos_elements.py:9: in <module>
    from .support import structural_diff
tests/support/structural_diff.py:1: in <module>
    import lxml.html
E   ModuleNotFoundError: No module named 'lxml'
_________________________________________________________________________ ERROR collecting tests/contrast/test_contrasts.py _________________________________________________________________________
ImportError while importing test module '/Users/gemmadown/Documents/pygments/tests/contrast/test_contrasts.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
../../.pyenv/versions/3.9.1/lib/python3.9/importlib/__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/contrast/test_contrasts.py:18: in <module>
    import wcag_contrast_ratio
E   ModuleNotFoundError: No module named 'wcag_contrast_ratio'
====================================================================================== short test summary info ======================================================================================
ERROR tests/test_html_formatter_linenos_elements.py
ERROR tests/contrast/test_contrasts.py
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 2 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
========================================================================================= 2 errors in 6.33s =========================================================================================

You are missing packages required for testing. As Python projects often do, we provide a file requirements.txt at the root of the repository, containing the list of packages needed to develop Pygments. Try
python -m pip install --user -r requirements.txt

CI is failing on Qlik because the token output needs updating. Please do
pytest --update-goldens tests/examplefiles/qlik

and commit the result (after checking that it looks good).

Can't believe I didn't reinstall from requirements! 🤦  Clearly been a long day. Thanks!
I've tried running pytest update-goldens, but getting an error. It's the same error I get when attempting to run pytest itself. I'm not familiar enough with this library at all to work out if this is something in my python set up (using pyenv virtualenv)   or something else:
pytest --update-goldens tests/examplefiles/qlik
======================================================================================== test session starts ========================================================================================
platform darwin -- Python 3.9.1, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
Using --randomly-seed=3001490038
rootdir: /Users/gemmadown/Documents/pygments, configfile: pytest.ini
plugins: randomly-3.10.1, cov-3.0.0
collected 0 items / 1 error

============================================================================================== ERRORS ===============================================================================================
___________________________________________________________________________________ ERROR collecting test session ___________________________________________________________________________________
../../.pyenv/versions/3.9.1/envs/pygments/lib/python3.9/site-packages/pluggy/_hooks.py:265: in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
../../.pyenv/versions/3.9.1/envs/pygments/lib/python3.9/site-packages/pluggy/_manager.py:80: in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
tests/examplefiles/conftest.py:27: in pytest_collect_file
    return LexerTestFile.from_parent(parent, path=pathlib.Path(path))
E   TypeError: from_parent() missing 1 required keyword-only argument: 'fspath'
====================================================================================== short test summary info ======================================================================================
ERROR  - TypeError: from_parent() missing 1 required keyword-only argument: 'fspath'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
========================================================================================= 1 error in 0.25s ==========================================================================================

Thanks for your help with all of this - sorry for my inexperience with pygments.

Thanks for the update. There are make check failures in the CI, could you take a look? It seems that three things need to be done:

Remove extra ~ in module name underlines in the docstrings,
Bump copyright to "2006-2022",
Import the names you need explicitly instead of from pygments.token import *.

Thanks @Jean-Abou-Samra - hopefully changes have been made. It's passing pytest and make check locally 🤞

Thanks for your patience. Merged now.

Thanks for all your help and patience @Jean-Abou-Samra - I really do appreciate it.


NotificationContent payload switches type

When creating a notification we use
AwesomeNotifications().createNotification(
 content: NotificationContent(

where the constructor is
NotificationContent(
Map<String, String>? payload,

When running through scheduled notifications
activeSchedules = await AwesomeNotifications().listScheduledNotifications();

schedule.content.payload is  Map<String, dynamic>? payload
In other words:
NotificationContent defines Map<String, String>? payload,
BaseNotificationContent defines Map<String, dynamic>? payload;
Can you please set both payloads to Map<String, String>?
Thank you for your... AWESOME work!

Consider it done

@rafaelsetragni thank you very much!