latest conjure can't find conjure.aniseed.macros

Updated to the latest conjure and started having this issue while evaling fennel code.
If I set conjure client fennel to use my installed aniseed version it seems to work fine

conjure pointing to main
aniseed to develop
Both updated to latest
Neovim ver

Hmm I saw someone else mention this the other day too, sorry about the issue! Nothing changed around here as far as I know, I have a small hunch now though that it's to do with my embedding of Aniseed not copying all the right files 🤔 will dig into this tomorrow morning! Had a lot of family time recently so not much time for side project work over the past few days 😅 back to day job work on Monday!
I hope you had a great New Year!

Hmm I saw someone else mention this the other day too, sorry about the issue! Nothing changed around here as far as I know, I have a small hunch now though that it's to do with my embedding of Aniseed not copying all the right files 🤔 will dig into this tomorrow morning! Had a lot of family time recently so not much time for side project work over the past few days 😅 back to day job work on Monday!
I hope you had a great New Year!

Also, which plugin manager are you using? Packer? I'm struggling to work out why some people see this and others don't, I'm worried it's because the runtimepath isn't populated in the same way for every user.

Also, which plugin manager are you using? Packer? I'm struggling to work out why some people see this and others don't, I'm worried it's because the runtimepath isn't populated in the same way for every user.

Ah, packer, I went and found it :smile:

Ah, packer, I went and found it :smile:

Hmm I've tried adding Conjure to the runtimepath on develop, because I rely on runtimepath still but packer doesn't update it, so this way I hope it'll support rtp and packer. Might make no difference but worth a shot!

Hmm I've tried adding Conjure to the runtimepath on develop, because I rely on runtimepath still but packer doesn't update it, so this way I hope it'll support rtp and packer. Might make no difference but worth a shot!

I still can't think of a way around this other than you manually adding the Conjure directory to your runtimepath manually until this issue on packer is addressed: https://github.com/wbthomason/packer.nvim/issues/71
Basically I don't have access to a runtimepath or a package.path (I think, although not sure about that one) that contains all the plugin directories with packer like I do with every other plugin manager.
The Fennel compiler does not have the same resolver support as the underlying Lua, as in, Fennel requires me to set a string of paths for it to search for macro files. This is why this error happens, the Fennel path is empty and it can't find the macros because I seed the Fennel path with the runtimepath.
What I try to do is take every plugin you have installed and add their fnl directories to your fennel.path, I just can't do this with packer, the information does not exist as far as I'm aware. If someone can tell me how to get a list of paths to all installed plugins with packer I can try to implement a solution, but I don't think I can work that out myself.

I still can't think of a way around this other than you manually adding the Conjure directory to your runtimepath manually until this issue on packer is addressed: https://github.com/wbthomason/packer.nvim/issues/71
Basically I don't have access to a runtimepath or a package.path (I think, although not sure about that one) that contains all the plugin directories with packer like I do with every other plugin manager.
The Fennel compiler does not have the same resolver support as the underlying Lua, as in, Fennel requires me to set a string of paths for it to search for macro files. This is why this error happens, the Fennel path is empty and it can't find the macros because I seed the Fennel path with the runtimepath.
What I try to do is take every plugin you have installed and add their fnl directories to your fennel.path, I just can't do this with packer, the information does not exist as far as I'm aware. If someone can tell me how to get a list of paths to all installed plugins with packer I can try to implement a solution, but I don't think I can work that out myself.

Although saying that... if you could confirm that your package.path contains Conjure @BerkeleyTrue, maybe I can rely on that instead of the runtimepath!

Although saying that... if you could confirm that your package.path contains Conjure @BerkeleyTrue, maybe I can rely on that instead of the runtimepath!

How's develop for you now, @BerkeleyTrue? I'm basing fennel.path off of package.path, which may be set up correctly by packer but I have no idea, I'd have to swap too much to try it out for today, starting work very soon :sweat_smile:

How's develop for you now, @BerkeleyTrue? I'm basing fennel.path off of package.path, which may be set up correctly by packer but I have no idea, I'd have to swap too much to try it out for today, starting work very soon :sweat_smile:

@Olical Just tried the latest and I tried 6b660d0. Neither seemed to have any effect. Maybe this is just the life us packer choose. I can dedicate some time to investigate this weekend to debug. I tried adding conjure to the runtime directly myself.
Also, just to add info, I'm using a symbolic link in my pack directory. Not sure if that has any effect.

@Olical Just tried the latest and I tried 6b660d0. Neither seemed to have any effect. Maybe this is just the life us packer choose. I can dedicate some time to investigate this weekend to debug. I tried adding conjure to the runtime directly myself.
Also, just to add info, I'm using a symbolic link in my pack directory. Not sure if that has any effect.

Actually the latest aniseed develop breaks compiling completely.

Going back one commit (to before 8e4372a) and it works as usual.

Actually the latest aniseed develop breaks compiling completely.

Going back one commit (to before 8e4372a) and it works as usual.

Hmm, all I did was base fennel.path on lua.path, I wonder what could be causing this, I guess it's another packer oddity? I don't think I can support packer until they support runtimepath like all the others. I can swap the code back to how it was (basing fennel.path off of runtimepath), but it still won't support packer until they change.

Hmm, all I did was base fennel.path on lua.path, I wonder what could be causing this, I guess it's another packer oddity? I don't think I can support packer until they support runtimepath like all the others. I can swap the code back to how it was (basing fennel.path off of runtimepath), but it still won't support packer until they change.

I've printed out the results of path of lua, aniseed fennel pre 8e4372a,and conjure aniseed fennel path.
Only my aniseed fennel path has conjure lua/fennel dirs available. It looks like conjure.aniseed.fennel.path is just seeing a duplicated lua path which is also does have access to all the files.

I've printed out the results of path of lua, aniseed fennel pre 8e4372a,and conjure aniseed fennel path.
Only my aniseed fennel path has conjure lua/fennel dirs available. It looks like conjure.aniseed.fennel.path is just seeing a duplicated lua path which is also does have access to all the files.

echoing the runtimepath and package.path right before conjure.aniseed.fennel path is set. The runtimepath has conjure but the lua path does not. Reading the docs, it looks like anytime runtimepath is updated package.path is supposed to be updated. So maybe this is an issue with neovim?

echoing the runtimepath and package.path right before conjure.aniseed.fennel path is set. The runtimepath has conjure but the lua path does not. Reading the docs, it looks like anytime runtimepath is updated package.path is supposed to be updated. So maybe this is an issue with neovim?

So packer is putting Conjure in the runtimepath? :eyes: I can work with that.

So packer is putting Conjure in the runtimepath? :eyes: I can work with that.

Well, I think it's vim packages that is adding them to the run time them, then loading the plugins. Unlike vim-plug, removing a plugin from the packer conf does not disable it if it is in the start directory. It still gets loaded.

Well, I think it's vim packages that is adding them to the run time them, then loading the plugins. Unlike vim-plug, removing a plugin from the packer conf does not disable it if it is in the start directory. It still gets loaded.

So, I've swapped back to sourcing the fennel.path from the runtimepath, which may work for you? I've also added a few functions you can use.
When you update your runtimepath after Conjure has loaded
-- Resync the runtimepath into fennel.path at a later time.
require("conjure.aniseed.fennel")["sync-rtp"]()

When you want to add a specific directory to your fennel.path
-- A manual override if nothing else works, add the paths to the fennel you're interested in.
require("conjure.aniseed.fennel")["add-path"]("/home/ollie/.local/share/nvim/plugged/conjure/fnl/?.fnl")
require("conjure.aniseed.fennel")["add-path"]("/home/ollie/.local/share/nvim/plugged/aniseed/fnl/?.fnl")

So I kinda don't have high hopes for the runtimepath sourcing over package.path, but the manual adding / delayed call to sync-rtp miiiight solve you issues? I know it's not ideal but there's honestly no way to do this until packer has a path string like every other vim package management solution, while it avoids paths I can't build a path for fennel (which only supports path strings).

So, I've swapped back to sourcing the fennel.path from the runtimepath, which may work for you? I've also added a few functions you can use.
When you update your runtimepath after Conjure has loaded
-- Resync the runtimepath into fennel.path at a later time.
require("conjure.aniseed.fennel")["sync-rtp"]()

When you want to add a specific directory to your fennel.path
-- A manual override if nothing else works, add the paths to the fennel you're interested in.
require("conjure.aniseed.fennel")["add-path"]("/home/ollie/.local/share/nvim/plugged/conjure/fnl/?.fnl")
require("conjure.aniseed.fennel")["add-path"]("/home/ollie/.local/share/nvim/plugged/aniseed/fnl/?.fnl")

So I kinda don't have high hopes for the runtimepath sourcing over package.path, but the manual adding / delayed call to sync-rtp miiiight solve you issues? I know it's not ideal but there's honestly no way to do this until packer has a path string like every other vim package management solution, while it avoids paths I can't build a path for fennel (which only supports path strings).

Ok, I finally know 100% what the issue is. It's not an issue with vim packages or packer but it's a race condition.
According to the docs, vim first sources the init file, then adds all the packages to the runtime.
At the end of my init file I call aniseed.env.init, which loads all my fennel code.
In that code, I require conjure to add it to my custom completion sources.
This loads the conjure module into memory, which runs the sync-rtp as a side effect.
Since my init file has not completed running, vim hasn't processes the packages to add them to the rtp and so fennel.path is not properly hydrated.
I debugged by adding print statements to the sync-rtp call, before my aniseed.env.init call and at the very end of my init.lua file. I can see that sync-rtp is called before the end of the init file. If I comment out the require of conjure in my files, the first sync-rtp call does not happen until after init lua ends and by that point the rtp if fully hydrated.
Also, A package can be loaded using lua requires but that this does not effect the runtimepath. Or at least it does not add it to the path until after the package is loaded into memory, so after sync-rtp side effect.
Easy solution is to call packadd conjure before the aniseed.env.call if a user is going to require conjure within their fennel code.
Another possibility is to have aniseed.env.init call somehow happen after init is source, as in defer until nvim is free, but this would probably have a lot of unintended effects.
Another possibility is to have conjure check if it exists in the runtime on the first interaction with the user and if not, re run sync-rtp.
I think I'm satisfied as is and will just call packadd before aniseed.env.init.
Let me know if you want me to close this.

Ok, I finally know 100% what the issue is. It's not an issue with vim packages or packer but it's a race condition.
According to the docs, vim first sources the init file, then adds all the packages to the runtime.
At the end of my init file I call aniseed.env.init, which loads all my fennel code.
In that code, I require conjure to add it to my custom completion sources.
This loads the conjure module into memory, which runs the sync-rtp as a side effect.
Since my init file has not completed running, vim hasn't processes the packages to add them to the rtp and so fennel.path is not properly hydrated.
I debugged by adding print statements to the sync-rtp call, before my aniseed.env.init call and at the very end of my init.lua file. I can see that sync-rtp is called before the end of the init file. If I comment out the require of conjure in my files, the first sync-rtp call does not happen until after init lua ends and by that point the rtp if fully hydrated.
Also, A package can be loaded using lua requires but that this does not effect the runtimepath. Or at least it does not add it to the path until after the package is loaded into memory, so after sync-rtp side effect.
Easy solution is to call packadd conjure before the aniseed.env.call if a user is going to require conjure within their fennel code.
Another possibility is to have aniseed.env.init call somehow happen after init is source, as in defer until nvim is free, but this would probably have a lot of unintended effects.
Another possibility is to have conjure check if it exists in the runtime on the first interaction with the user and if not, re run sync-rtp.
I think I'm satisfied as is and will just call packadd before aniseed.env.init.
Let me know if you want me to close this.

I think I'll close this for now because I'm just glad you have it working, I think maybe adding a FAQ entry about this would be good though, I can do that if you can provide me with a succinct solution and your specific setup? Or feel free to add it yourself, I'm sure many people will find it very helpful. https://github.com/Olical/conjure/wiki/Frequently-asked-questions
I'll probably link to this entry from the README too, just under the install step with a caveat. So is it a race condition when you're using packer? Or some other combination? Because I always through packer was the common theme with this issue :thinking:
Thank you for digging into the problem! I'm sure it was very frustrating, so thanks for chasing it down and not giving up! :tada:
You can always call sync-rtp again now, after things are loaded, if that's easier. Although it probably doesn't help, re-syncing is an option now that I've exposed it as a function.

I think I'll close this for now because I'm just glad you have it working, I think maybe adding a FAQ entry about this would be good though, I can do that if you can provide me with a succinct solution and your specific setup? Or feel free to add it yourself, I'm sure many people will find it very helpful. https://github.com/Olical/conjure/wiki/Frequently-asked-questions
I'll probably link to this entry from the README too, just under the install step with a caveat. So is it a race condition when you're using packer? Or some other combination? Because I always through packer was the common theme with this issue :thinking:
Thank you for digging into the problem! I'm sure it was very frustrating, so thanks for chasing it down and not giving up! :tada:
You can always call sync-rtp again now, after things are loaded, if that's easier. Although it probably doesn't help, re-syncing is an option now that I've exposed it as a function.

Just as a note (in case you add a warning to the README/in case anyone sees this issue): I would expect that this will be a problem with any plugin manager based on native packages (e.g. also vim-packager, paq.nvim, minpac, etc.). The usual fix (e.g. as documented in https://github.com/wbthomason/packer.nvim/issues/4) is to either (1) manually packadd before you need a function from the relevant plugin (as @BerkeleyTrue discovered) or (2) to keep plugin-relevant code out of init.vim and instead put it somewhere under plugin/ or some other location that gets sourced after packages. This latter approach is slightly complicated by the new init.lua feature, as there's no equivalent to plugins/ (in the sense of being automatically loaded at some predetermined point in the startup sequence) for Lua code.
Hope this helps!

Just as a note (in case you add a warning to the README/in case anyone sees this issue): I would expect that this will be a problem with any plugin manager based on native packages (e.g. also vim-packager, paq.nvim, minpac, etc.). The usual fix (e.g. as documented in https://github.com/wbthomason/packer.nvim/issues/4) is to either (1) manually packadd before you need a function from the relevant plugin (as @BerkeleyTrue discovered) or (2) to keep plugin-relevant code out of init.vim and instead put it somewhere under plugin/ or some other location that gets sourced after packages. This latter approach is slightly complicated by the new init.lua feature, as there's no equivalent to plugins/ (in the sense of being automatically loaded at some predetermined point in the startup sequence) for Lua code.
Hope this helps!

I think my problem might be related to this but I'll add some point create a separate issue.  I can call :ConjureConnect and it opens a little hover window indicating a successful connection, but after that I don't get the Conjure mappings and full ex commands.

I think my problem might be related to this but I'll add some point create a separate issue.  I can call :ConjureConnect and it opens a little hover window indicating a successful connection, but after that I don't get the Conjure mappings and full ex commands.

Are all of these related to using aniseed.env or am I missing something here :thinking: if I made it so using aniseed.env (Aniseed/Fennel dotfiles) was through setting an option like let g:aniseed#env = v:true instead of a function call, would all of these problems go away?
That way you never call into Aniseed or Conjure, you only set global options that it picks up when loaded. I feel like that's a much better approach! Any thoughts?

This latter approach is slightly complicated by the new init.lua feature, as there's no equivalent to plugins/ (in the sense of being automatically loaded at some predetermined point in the startup sequence) for Lua code.

Just to clarify for any future visitors to this thread: *.lua files under the plugins/ directory are now automatically sourced on startup as of Nvim 0.5.0, so this is a perfectly valid approach now.

@gpanders oh interesting! Do you know where this is documented / explained?

@gpanders oh interesting! Do you know where this is documented / explained?

https://neovim.io/doc/user/starting.html#load-plugins


Crash report - runtime error: index out of range

Error (runtime.errorString): runtime error: index out of range
Stack:
goroutine 1 [running]:
panic(0x382300, 0xc4200140f0)
	/usr/local/Cellar/go/1.7.1/libexec/src/runtime/panic.go:458 +0x243
github.com/github/hub/git.WorkdirName(0xc42001aae0, 0x4f, 0x0, 0x0)
	/tmp/go/src/github.com/github/hub/git/git.go:70 +0xb6
github.com/github/hub/commands.create(0x5a5740, 0xc420082fa0)
	/tmp/go/src/github.com/github/hub/commands/create.go:66 +0x6a
github.com/github/hub/commands.(*Command).Call(0x5a5740, 0xc420082fa0, 0x7fff5fbff7b4, 0x6)
	/tmp/go/src/github.com/github/hub/commands/commands.go:47 +0x91
github.com/github/hub/commands.(*Runner).Call(0xc420015880, 0x5a5740, 0xc420082fa0, 0x6, 0xc42006bca0, 0xc420055ed8, 0x2079)
	/tmp/go/src/github.com/github/hub/commands/runner.go:108 +0x39
github.com/github/hub/commands.(*Runner).Execute(0xc420015880, 0x415cb0, 0x7d5ee, 0xc4200d20c0, 0x0)
	/tmp/go/src/github.com/github/hub/commands/runner.go:96 +0x1e9
main.main()
	/private/tmp/hub-20161003-16770-1ttiwa3/hub-2.2.9/main.go:14 +0x51

Runtime:
GOOS: darwin
GOARCH: amd64

Version:
git version 2.11.0 (Apple Git-81)
hub version 2.2.9

Thanks for reporting! This was fixed in 01c3099abe56a8dcca41e285c11c0f6f860cc338 and will be a part of the next stable release. This is most likely caused by calling hub commands from within a bare git repo. To avoid the crash for now, please avoid running hub commands from a bare git repo and run them only from a normal git checkout. Thank you!


[cli] Add missing vue-utils package to release, and remove test prod deps

I forgot @lit-labs/vue-utils in https://github.com/lit/lit/pull/3225, so that's now private and has a changeset so that the next publish will release it as 0.1.0.
Removed a couple of prod dependencies on @lit-internal/tests, which should have been devDependencies.

Since we're fixing things.. I think all the to-be-released packages also need
  "publishConfig": {
    "access": "public"
  }

in their package.json to be published under the scoped name.

Since we're fixing things.. I think all the to-be-released packages also need
  "publishConfig": {
    "access": "public"
  }

in their package.json to be published under the scoped name.

Good catch! Done.


Update path

Pull Request Test Coverage Report for Build 1499

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 74.746%

Totals

Change from base Build 1494:
0.0%

Covered Lines:
2920

Relevant Lines:
3710

💛  - Coveralls

:tada: This PR is included in version 1.14.5 :tada:
Your semantic-release bot :package::rocket:


cli: add backend:build-image command and use in backend

This adds functionality for repackaging packages inside the monorepo to a dist workspace. It uses yarn pack to build a tarball for each package, and then extracts it into the target workspace. The end result is a directory structure that is functionally similar to if the local packages were installed from NPM.
It also adds the backend:build-image command to the backstage-cli, which uses the dist workspace packaging to build a Docker image.
The CLI command is intentionally inflexible for now, while we figure out exactly what model we want to use for the e2e flow.
Mob'd by most of the team initially, then finished off by @shmidt-i and @soapraj, and I
Fixes #1374
Also does a lot of work needed for #1427, but some work still left there.


Issue619 c2d flow 2

Fixes #619
Changes proposed in this PR:

Fix the compute flow tests in test_compute_flow.py
Fix the OceanCompute tests in test_ocean_compute.py
Fix OceanCompute: removed unnecessary methods, updated the start method
Fix TODOs from #630

I tried rerunning the tests but the CI is haywire again. I'll leave if for Monday.

Update: not only the CI, but the entire structure is falling locally. Barge does not deploy the address.json file, being stuck with Provider error: must be authenticated. It seems to be a bad configuration issue with hardhat in barge, so beyond my expertise. I've shared the details with Alex.


Steamdb "widget" for Firefox always shows N/A players.

http://imgur.com/a/Jq5Rs here is an example, appears on every game's page. If I go to game's page on the steamdb itself, there are players count, no problem. Started several days ago.
Firefox 51.0.1 64bit, SteamDB 1.7.0

Duplicate of https://github.com/SteamDatabase/BrowserExtension/issues/3 should be fixed in next update.


Can we nest checklists inside a checklist?

This would be useful for checklists that need "sections" or is there a way to add a "section" to checklists.

Not currently.  You might be able to simulate it by creating multiple controls with the same model (ngDynForms doesn't prevent you from doing that, by design).  But nesting is not actually supported, yet.

I was actually able to modify the source a bit for my needs that allowed me to assign multiple checklists to the same parent (using arrays instead of an object for the template.  I'll submit a PR and let you look it over and decide what you think.


Java 16 incompatibility due to usage of internal APIs

The README promises that "Playwright requires Java 8 or newer". This does not include Java 16, however. With JEP 396, further APIs were encapsulated that are being used by Playwright. As a result, running the test suite with Java 16 fails. Examples:
[ERROR] com.microsoft.playwright.TestScreencast.shouldExposeVideoPath(Path)  Time elapsed: 0.096 s  <<< ERROR!
java.lang.reflect.InaccessibleObjectException: Unable to make field private final sun.nio.fs.UnixFileSystem sun.nio.fs.UnixPath.fs accessible: module java.base does not "opens sun.nio.fs" to unnamed module @152f2773
	at com.microsoft.playwright.TestScreencast.shouldExposeVideoPath(TestScreencast.java:30)

...

[ERROR] com.microsoft.playwright.TestBrowserContextAddCookies.shouldRoundtripCookie  Time elapsed: 0.103 s  <<< ERROR!
java.lang.reflect.InaccessibleObjectException: Unable to make private java.util.Collections$EmptyList() accessible: module java.base does not "opens java.util" to unnamed module @152f2773
	at com.microsoft.playwright.TestBrowserContextAddCookies.shouldRoundtripCookie(TestBrowserContextAddCookies.java:53)

Steps to reproduce:

Install any version of OpenJDK 16 (I'm using Liberica by Bell Soft)
Run mvn test

I know about workarounds like --add-opens. But it would be great if Playwright worked without them. Because the OpenJDK team plans to enable further restrictions in the future, it might make sense to test against the newest JDK as part of each CI run.

Source code is compatible with any java version 8+. If you want to run it in a JDK that has modules, you may need to configure your project accordingly. We currently run our tests with JDK 11 and it works perfectly fines. There is some peculiarity with JDK16 which makes them fail with the odd (given that we don't access neither sun.nio.fs nor other private APIs directly) error which could be overcome by adding the following argument to the surefire plugin:
          <argLine>
            --add-opens java.base/java.util=ALL-UNNAMED
          </argLine>

I created #425 which adds the argument to our pom.xml which seems harmless for earlier versions too (actually tried only with 11 which has modules support).

Ok, good news is the problem boils down to this bug in Gson library, the error message you get is a bit misleading but it can be reproduce with the following very simple code (just insert it into any test):
new Gson().toJsonTree(Collections.emptyList());

Bad news is that there are no signs of interest from Gson maintainers in fixing this any time soon.

Are you experience problems when running your Playwright client or only when running our unit tests?

I had this problem when introducing Playwright into a new (non-modularized) project I'm working on. Running the tests was the easiest way to reproduce the problem for the report.

Bad news is that there are no signs of interest from Gson maintainers in fixing this any time soon.

One of the former authors of Gson developed a replacement of Gson called Moshi with less baggage. In https://www.reddit.com/r/androiddev/comments/684flw/why_use_moshi_over_gson/dgx3gpm/ he explains the differences himself.

One of the former authors of Gson developed a replacement of Gson called Moshi with less baggage. In https://www.reddit.com/r/androiddev/comments/684flw/why_use_moshi_over_gson/dgx3gpm/ he explains the differences himself.

Yeah, Moshi was my consideration after reading the issues in Gson repo. So far Gson has been serving us pretty well but if the issues pile up Moshi sounds like a good alternative, we need to evaluate whether switching to it right now is worth the effort.

Moshi looks pretty good but the migration is not as easy as I originally thought, in particular it is missing intermediate model similar to JsonElement in Gson which means that we'd have to come up with a replacement for that (bare Map and List would be to clunky in the code due to type casts). For now I'm going to land a fix that avoids access to private JDK classes. Our usage of those is very limited actually so it should be sustainable.

@aahlenst The fix is now available in 1.11.0-SNAPSHOT,  can you give it a try?

Works great, thanks!


Adoption of packages

Let's discuss whether we want to adopt external packages into @amphp or not. We already adopted amphp/ssh, https://github.com/webgriffe/amp-csv would be another candidate.

+1  😄

I'm fine with adopting packages for stable protocols - as long as it's fairly complete and with an easy to use API.
amp-csv in its current state - looks fairly specific (just comma+newline combination?) or do we want something more generic like getcsv()? Would also perhaps be useful to have some writer here, not only reader?

Hi @bwoebi, amp-csv currently is in a very super alpha state.
Anyway it uses rakdar/reactphp-csv to parse CSV files which, in turns, should support configurable delimiter, enclosure and escape characters.
The problem is that the current implementation opens a file stream which is I/O blocking.
The idea is to refactor it using amp/file. Doing so will require us to remove the rakdar/reactphp-csv dependency and implement it on our side.

Hi @kelunik and @bwoebi,
I've refactored webgriffe/amp-csv to remove React dependency. Now it uses only Amp packages and shouldn't be I/O blocking anymore. I think that now we should agree about the "public" API and/or implementation details. Let me know if we can discuss it here or you would like to open a dedicated issue.
Bye!

What does "adopt" mean? Do you just include it within your organization's organizational structure and let the original maintainer maintain it, or do you adopt maintenance responsibility also?

@Bilge It can mean either.

There's quite a big difference. I don't think you should stretch yourself too thin.

We won't adopt any new packages for now.

You should adopt https://github.com/ScriptFUSION/Async-Throttle TBH.

Throttling will be part of amphp/pipeline in the future.


New USB sticks not being backed up to - Phantom USB sticks still mounted

We found an interesting bug where she switched USB sticks and RPI continued thinking that the old USB stick was still in, and it went happily backing up to a non-existant USB stick (luckily it saves the backup on the rpi disk as well, so all the data was fine)

some research:
Mount Point Persistence: Raspberry Pi by default uses automounting features that  mount the USB drive to a designated location (usually /media/pi/<drive_label>). Even after physically removing the drive, the mount point directory remains. When you connect a new USB drive, it might not get assigned the same label, leading to the old drive appearing mounted (although there would be no data accessible).

UUID vs Label-Based Mounting: By default, Raspberry Pi might use the drive label for automounting.  If both USB drives have the same label, the system gets confused and continues referencing the old drive information.

Here's how to fix it:
Verify Mount Status: Use the df command to see if the drive is truly mounted. If it lists the old drive but with 0 bytes used, it's just the mount point remaining.

Unmount Manually: If the old drive shows mounted with used space, use the umount command with the mount point path (e.g., umount /media/pi/<old_label>) to unmount it properly.

Identify Drives by UUID: A more reliable method is to configure automounting based on the Unique Disk Identifier (UUID) of each drive. This ensures the system recognizes them distinctly. You can find the UUID using the lsblk command and look for the UUID field under the /dev/disk/by-uuid directory.

deleted those secret mount points and saved a lot of data on the images!


[flutter_svg] Web svg gradient is not rendered in mobile bowsers

Imported from https://github.com/dnfield/flutter_svg/issues/811
Original report by @Turbozanik on Nov 24, 2022
Issue: Svg gradient not rendered on mobile browsers
Lib version: flutter_svg: 1.1.5
SVG example:
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
	<radialGradient id="paint0_radial_73_656" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(50.5729 50.5729) rotate(90) scale(45.5729)">
		<stop offset="0.640625" stop-color="#4DC9DB" stop-opacity="0.8"/>
		<stop offset="1" stop-color="#4DC9DB" stop-opacity="0"/>
	</radialGradient>
	<radialGradient id="paint1_radial_73_656" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(50.3333 51.3333) rotate(90) scale(33.3333)">
		<stop offset="0.276042" stop-color="#05B179" stop-opacity="0.8"/>
		<stop offset="0.838542" stop-color="#05B179" stop-opacity="0"/>
	</radialGradient>
<g clip-path="url(#clip0_73_656)">
<g opacity="0.3" filter="url(#filter0_f_73_656)">
<path d="M50.5729 96.1458C75.7421 96.1458 96.1458 75.7421 96.1458 50.5729C96.1458 25.4037 75.7421 5 50.5729 5C25.4037 5 5 25.4037 5 50.5729C5 75.7421 25.4037 96.1458 50.5729 96.1458Z" fill="url(#paint0_radial_73_656)"/>
</g>
<g opacity="0.3" filter="url(#filter1_f_73_656)">
<path d="M50.3333 84.6667C68.7428 84.6667 83.6667 69.7428 83.6667 51.3333C83.6667 32.9238 68.7428 18 50.3333 18C31.9238 18 17 32.9238 17 51.3333C17 69.7428 31.9238 84.6667 50.3333 84.6667Z" fill="url(#paint1_radial_73_656)"/>
</g>
<path d="M66.4586 39.1579C66.0068 39.1579 65.5633 39.2666 65.1617 39.4842C64.76 39.6934 64.417 40.003 64.1659 40.3795C63.9149 40.756 63.7476 41.1828 63.6974 41.6346C63.6472 42.0864 63.7057 42.5383 63.8731 42.965L58.0159 48.8222C57.3633 48.5628 56.6353 48.5628 55.9827 48.8222L51.799 44.6385C51.9663 44.2201 52.0249 43.7599 51.9747 43.3081C51.9245 42.8562 51.7655 42.4295 51.5061 42.053C51.2467 41.6764 50.9121 41.3752 50.5104 41.1577C50.1088 40.9485 49.6653 40.8313 49.2135 40.8313C48.7617 40.8313 48.3182 40.9401 47.9165 41.1577C47.5149 41.3668 47.1719 41.6764 46.9208 42.053C46.6614 42.4295 46.5025 42.8562 46.4523 43.3081C46.4021 43.7599 46.4606 44.2117 46.628 44.6385L39.658 51.6085C39.0639 51.3742 38.4029 51.3575 37.8004 51.5499C37.1896 51.7424 36.6708 52.144 36.3194 52.6795C35.968 53.215 35.8174 53.8509 35.8759 54.4868C35.9429 55.1228 36.2274 55.7168 36.6792 56.1687C37.131 56.6205 37.7251 56.905 38.361 56.972C38.997 57.0389 39.6329 56.8799 40.1684 56.5285C40.7039 56.1771 41.0972 55.6583 41.298 55.0475C41.4904 54.4366 41.4737 53.784 41.2394 53.1899L48.2094 46.2199C48.8621 46.4793 49.59 46.4793 50.2427 46.2199L54.4263 50.4036C54.259 50.822 54.2004 51.2822 54.2506 51.734C54.3008 52.1858 54.4598 52.6126 54.7192 52.9891C54.9786 53.3656 55.3133 53.6668 55.7149 53.8844C56.1165 54.0936 56.56 54.2107 57.0119 54.2107C57.4637 54.2107 57.9072 54.102 58.3088 53.8844C58.7104 53.6752 59.0535 53.3656 59.3045 52.9891C59.5639 52.6126 59.7229 52.1858 59.7731 51.734C59.8233 51.2822 59.7647 50.8303 59.5974 50.4036L65.4545 44.5464C65.8394 44.6971 66.241 44.764 66.651 44.7305C67.061 44.7054 67.4543 44.5883 67.8141 44.3875C68.1739 44.1866 68.4835 43.9189 68.7261 43.5842C68.9688 43.2495 69.1278 42.873 69.2031 42.4713C69.2784 42.0697 69.2617 41.6513 69.1612 41.2581C69.0608 40.8648 68.8684 40.4966 68.609 40.1787C68.3496 39.8607 68.0233 39.6097 67.6468 39.434C67.2786 39.2583 66.8686 39.1662 66.4586 39.1662V39.1579Z" fill="#4DC9DB"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M27.9566 70C27.9566 69.3787 28.4603 68.875 29.0816 68.875H71.7551C72.3764 68.875 72.8801 69.3787 72.8801 70C72.8801 70.6213 72.3764 71.125 71.7551 71.125H29.0816C28.4603 71.125 27.9566 70.6213 27.9566 70Z" fill="#4DC9DB"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.2449 27.875C28.8662 27.875 29.3699 28.3787 29.3699 29V70C29.3699 70.6213 28.8662 71.125 28.2449 71.125C27.6236 71.125 27.1199 70.6213 27.1199 70V29C27.1199 28.3787 27.6236 27.875 28.2449 27.875Z" fill="#4DC9DB"/>
</g>
<defs>
<filter id="filter0_f_73_656" x="1" y="1" width="99.1458" height="99.146" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="2" result="effect1_foregroundBlur_73_656"/>
</filter>
<filter id="filter1_f_73_656" x="16" y="17" width="68.6667" height="68.6665" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="0.5" result="effect1_foregroundBlur_73_656"/>
</filter>
<clipPath id="clip0_73_656">
<rect width="100" height="100" fill="white"/>
</clipPath>
</defs>
</svg>

How I use it:
 Visibility(
      visible: element.mAnswer.getIconPath().isNotEmpty,
      child: SvgPicture.asset(element.mAnswer.getHighlightedIconPath(), width: mIconSize),
  )

Results comparison:
Mobile Web::

Desctop Web:

Question:
Maybe someone has an idea of how can I fix that?
UPDATE #1:
FYI: Also my images generate the following warning during precaching, but still works as it should. And precaching also works.
unhandled element filter; Picture key: AssetBundlePictureKey(bundle: PlatformAssetBundle#0e6dd(), name: "assets/images/ic_healthcare_highlighted.svg", colorFilter: null, theme: SvgTheme(currentColor: Color(0xff000000), fontSize: 14, xHeight: 7))

Comment by @dnfield on Jan 20, 2023
This is an upstream issue in Flutter - the HTML backend likely has not implemented something here that is impelemnted for the CanvasKit backend.

I have made a crude workaround for that somehow. I think it was something related to a specific svg tag, but I am not sure. If someone will need a hint, please ask, I will look for how I have handled that.


Integrate vulnerability scanning UI component with backend API

The backend api might be ready in sp12, so move this issue to SP12.

Work is already done, close this issue.


Bugfix/rule test

Description
Update go-jsonnet to new version for a bugfix on jsonnet-lint incorrectly classify std.member() returning type as number.
This PR will make the test pass on PR #1351
Manifests are also regenerated after the tooling upgrade.
Type of change
What type of changes does your code introduce to the kube-prometheus? Put an x in the box that apply.

[ ] CHANGE (fix or feature that would cause existing functionality to not work as expected)
[ ] FEATURE (non-breaking change which adds functionality)
[ ] BUGFIX (non-breaking change which fixes an issue)
[ ] ENHANCEMENT (non-breaking change which improves existing functionality)
[x] NONE (if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)

Changelog entry
Please put a one-line changelog entry below. Later this will be copied to the changelog file.

Thanks for pointing out the rebase problem :)
The code has been rebased on the latest main branch and assets are generated again.


Update Set-OrganizationConfig.md

Docs Build status updates of commit 0f7f842:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Set-OrganizationConfig.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Update cs0568.md

Related to https://github.com/dotnet/roslyn/pull/51679

Thanks @Youssef1313
I've read the changes, and I agree with them.  I'll wait to approve and merge until the related roslyn PR is merged.

Moving the milestone, as the related roslyn PR is still open.


Problem with GetString() for JSON text sent in chunks

What steps will reproduce the problem?
Having a problem regarding Value functions in document.h. Functions
HasMember(), GetString() work when the whole JSON object is received. Is there
a way to overcome this issue? For example, when looking for values on the fly
is required, when JSON text sent in chunks. As an example, the following
produces an error, as there is no an ending curly brace:

char buf[]=("{ \"objectType\" : \"world\" ");
Document d;
d.Parse<0>(buf);
Value *src = &d;
if((*src).HasMember("objectType")==true)
{
  puts((*src)["objectType"].GetString());
}

Would be nice, if smth can be done with it.

What is the expected output? What do you see instead?
Assertion failed: Isobject()...document.h, line 614

What version of the product are you using? On what operating system?
Rapidjson v0.1, Windows 7,64 bit

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 22 May 2012 at 9:19

Currently, rapidjson can only parse COMPLETE, valid json text. It does not
support parsing in chunks.

By design, d.HasParseError() should be true after calling Parse() in your
example.

Original comment by<EMAIL_ADDRESS>on 22 May 2012 at 9:27

Changed state: Invalid


[audit] Complete an audit of Solidity smart contracts

Summary
As part of ensuring our Carbonmark smart contracts of are the highest standard for security, vulnerability protection, and coding practices, it is recommended that a 3rd party audit be conducted. This process will be important in terms of making sure our users can trust the safety, security, and reliability of our blockchain application.
The 3rd party audit is not required for MVP launch but should happen shortly thereafter. An internal review (#185) will be completed before the MVP/beta launch.

@sy-zygy assigned this to you so we don't forget
I had a note from a product sync meeting:

would like look to bundle retirement bonds audit with carbonmark contracts

We should probably assign this to @cujowolf since that action will probably should have a KIP.
This was the provider I mentioned in the past that provides insured audits which is interesting, their deck:
https://docs.google.com/presentation/d/1UUTHlTM6WLX301als7QbV8lRHTTXEViWDCOfcRDXL5Q/edit?usp=drivesdk


Auto closing tags not working

Describe what happened:
There are two of us in a LiveShare session in VS Code editing an HTML file.
If the participant is not in the file, the HTML auto closing tags do not work.
If she is in the file, the auto close works, but her cursor jumps there.
It looks like the auto closing was done from her side in that case.
In a new VS Code window without LiveShare the HTML auto closing tags works fine.
What was your system configuration?
Product and Version: VS Code 1.62.3
OS Version: Windows 10 2004 (Build 19041.1288)
Live Share Extension Version: v1.0.5090
Target Platform or Language: HTML
Steps to Reproduce / Scenario:

Open a LiveShare session in VS Code
Invite a participant
Make a new HTML file, but the participant should not open this file yet
Try to write HTML tags and pay attention if the tags are auto closing
Now the participant should open the file
Now try again writing HTML tags
The auto closing should work now, but the cursor of the participant jumps there

Please attach logs to this issue:
livesharelogs.zip
Video:
https://youtu.be/Va8_FqQvYJI

The problem is still there

Would love a fix for this sometime soon.

Still present in last version of VSCode and it is very annoying to say so....
Another way to reproduce:

Open an html file with content
Open a LiveShare session in VS Code & Invite a participant
Host put the cursor at a specific place (top of file is good to see the behavior)
Participant use completion to enter a

 (i.e. type div then use emmet completion). It seems that some tag fail and some not (div, article, p, i are failing but some other not...)
Result: host cursor jumped (best case) and sometimes some bad content is added like  also (worst case!)

See the case:

I reproduce it easily with the host and participant on the same computer so it doesn't seem to be due to network latency.
I reproduce it also with a profile with all extensions disabled, except "Live share"  so it doesn't seem to be due to another extension.
PS: I'm really surprised that no one from VSCode team reproduce it because it happens really often when editing html files in pair programming. I was not able to reproduce it using completion in tsx files.

A little more information: the content added is the one of the parent. See this other case:

So it seems it tries to close the current tag and the parent one...


Mobile Home - Fix "How to think about risk" Sizing

Text should be on 2 lines instead of 4 - reduce padding and/or font size
┆Issue is synchronized with this Trello card by Unito

@alexastef Mind assigning this to me to fix?

Hi @sarveshh, apologies for the delay! Are you still interested in this issue? I will assign it to you.


New version: Kakao.KakaoTalk version <IP_ADDRESS>63

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@microsoft-github-policy-service agree

@microsoft-github-policy-service rerun

@microsoft-github-policy-service agree

@microsoft-github-policy-service rerun

@microsoft-github-policy-service agree

@mdanish-kh and @Trenly. The microsoft-github-policy-service did not respond to author at time 6 November 2023 at 15::39 GMT+8.

@microsoft-github-policy-service agree

@microsoft-github-policy-service rerun

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree

@microsoft-github-policy-service rerun

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree

@microsoft-github-policy-service rerun

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree


[Improve][Doc] Improve README

What do these changes do?

Build and contribute are actually two concepts. Build refers to compiling code, and how to contribute actually refers to the specifications and processes when submitting a PR. From the documentation, this is mainly about compiling source code, so I changed it to how to build.
Related issue number

Closes #xxxx
Check code requirements

[] tests added / passed (if needed)
[] Ensure all linting tests pass, see here for how to run them

Hi @caicancai , thanks for taking time to contribue to this project. Our documentation is still in the early stages, and there are many areas that need improvement. I believe with your help, it will be much better.

I hope I can contribute to the code soon.

Thank you very much for participating in this project. This project is very meaningful. I am very happy to make a contribution to the open source construction of the project. Documentation is still secondary, I hope to contribute to the code soon

Yeah, code contributing are important too, looking forward to your future contribution


Split vector/ring std_reserve implementation into an inline outer half and a stdlib inner half

Sensible, but a bit of a premature optimisation, so closed (for now).


add release notes for v1.0.9

[1.0.9][v1.0.9] - 29-Nov-2021
Milestone: Stabilize and bug fix
Added

Added open api client integration#1776
Added Korean language #1794
Show update warning when users are on old versions#1393

Changed

Used openapi client for statistics-service API calls #1777
Updated symbol-sdk version to 1.0.3 #1756
Replaced old explorer url with the new one #1766

Fixed

Fixed outdated README #1764
Fixed login error when selected node is broken or Websocket is failing. #1767
Fixed transfer form shows not enough balance #1771
Fixed expired mosaic is visible on supply change transaction page #1663
Fixed leading zeros are ignored if there is no decimal point #1730
Fixed offline transactions page ERROR_EMPTY_RESPONSE error #1674
Allowed pasting option in password fields #1780
Removed NxL and nemfoundation references #1761
Updated translations

@bassemmagdy you can add https://github.com/symbol/desktop-wallet/issues/1803 after merge.


dsh install prerequisites  installs SW I already have

Despite having vagrant 1.8.1 on my Mac, dsh install prerequisites is downloading and installing 1.8.1.  This behavior is not ideal, i may have 2/3 prerequisites installed, so it should only install the missing one.  I'd be open to fixing this, unless this is desired behavior and I'm overlooking the reason for it.

Yep, completely agree.
We should improve the install process and check already installed prerequisites and their versions, and not assume everyone starts from scratch.

We can not do that actually. We install things using homebrew. And update using same. If there's same else installed not via homebrew that all good and fine but we don't know whether that software is up to date and can't be sure it's gonna work with drude.
I'd recommend uninstalling version that was installed not with brew.
If your vagrant was installed via brew there is no harm in running brew install vagrant once again.

I was on BoF on drupalcon and interested in this. I have installed not only vagrant but also docker, docker compose and probably most of the necessary tools. So I wonder if at least, there should not be  way of simply allowing manual install of tools (in whatever method we are comfortable with), with the required versions and allow us to still use drude.
The install could also check the version number and request for a manual upgrade if it cannot do it on its own.
I for once would like to try out dude without having to uninstall everything.

@hanoii you can still use Drude for sure! dsh install prerequisites is only there to help you install required software. If you already have latest-ish VirtualBox, vagrant, docker and docker-compose then you pretty much have all the required software.
Simply don't run dsh install prerequisites and only run everything else to set up Drude.

@hanoii I think I was sitting next to you at that BoF!  Anyway, I am trying out Kalabox now on windows and it's doing the same thing, re-installing all this software I already have.  This seems to be a theme for me lately.
Regarding Drude @achekulaev, would drude accept a PR that provides a workflow similar to what @hanoii  described?

The install could also check the version number and request for a manual upgrade if it cannot do it on its own.

@stkrzysiak yes but PR would also need to check that software is not installed with homebrew because if it is then it can be upgraded.

update: I'm not sure why would you need it though. If you don't want to re-install software it's totally fine. Don't re-install it. Don't run install prerequisites.

But if you have 3/4 installed it should just install the last remaining prerequisite.  Using this flag would still leave you at 3/4 requisites installed, correct?


regexp: failed match with triple quantifier

The following regexp ^a(/a+(#a+)*)*$ fails to match a/a#a when it should. Adding parenthesis around the first part ^(a)(/a+(#a+)*)*$ apparently fixes the issue and gives a match, see http://play.golang.org/p/6v0VjVNFVN .
For the background, see http://stackoverflow.com/questions/31663430/issue-with-regexp-with-nested-groups-in-golang

This is another onepass bug. I haven't gotten to the bottom of it yet, but I should be able to send a CL soon. (Hope that's okay even though @rsc was assigned.)


updating submission confirmation

Issues resolved by this pull request

Fixes #36

Summary of main changes

updated the submission confirmation text

Review type

Type
Required (Y/N)
Instructions

Deployed
Y/N
Click link near Deployed to below.

Local
Y/N
Check out this branch, run its start cmd

GitHub
Y/N
Review diffs and likely Markdown

[ ] All checkboxes in the issue/s mentioned have been completed.
[ ] The issue/s in this request have been resolved.

General, standard review items
Errors

[ ] Front-end: no DevTools console errors occur in the built code (PR
review URL) in the step/s required to test the PR.
[ ] Local/terminal: no terminal errors occur in the step/s required to
test the PR.

Style changes

[ ] Cohesive visual design is preserved relative the rest of the site.
Colors, type, and layout blend appropriately with the surrounding
elements.

Content changes

[ ] Content is free of typos, grammar/spelling mistakes, and unclear wording.
[ ] README sections: document outline makes sense semantically (proper use
of heading levels, lists, tables, etc.).
[ ] README formatting: proper use of code, /paths/to/files/and.stuff,
and emphasis when needed.
[ ] README links: all links work correctly and any internal links are
relative.
[ ] README headings: should be "First word capitalized" rather than "Some
Kind of Other Approach", and should have unique names (a Markdown
linter will catch this).

Code changes

Documenting scripting languages

[ ] Any new function is documented using a docblock. Existing functions
that were modified can be addressed on a case-base basis.
[ ] Each new file has a page header indicating the file's name and a summary
of what it does.
[ ] No typos, grammar/spelling mistakes, or unclear wording.
[ ] Sufficient non-docblock documentation is also provided. (e.g. a simple
// Smaller headings for About page).
[ ] No ambiguous abbreviations are used for variable names. No one, including
the code author, will know what const f refers to at first glance, but
everyone should know what const filePath refers to (or at least have a
rough idea).

Conventions

Best practices

[ ] If a new file was created, it is in an appropriate directory.
[ ] If new functionality was added, the code is in an appropriate file.
[ ] Efforts have been made to promote DRY code: "don't repeat yourself". If
the same code has been repeated multiple times, is there a more efficient
and maintainable way to implement it?
[ ] Are naming conventions intuitive and consistent with the rest of the
project?

Here is roughly what I came up with:

@ajsamra I marked my suggestions as resolved since many of them don't apply anymore and/or I fixed the ones that did.
I'll pass the PR back to you so give my last few commits a skim. Also when writing PR's using my template (and let me know if this is too annoying, we can try a different approach), try to remove as much of the inapplicable parts as you can so that the reviewer doesn't have to determine what they are supposed to review (e.g. for this one, the whole "Content changes" section could be removed since there's no README stuff in this branch).
The template was meant to cover all the bases for code review, so if it gets to be more trouble than it's worth (I find it annoying sometimes myself), let's discuss!

Ok i give up haha, can't figure out how to cancel my review even though i just did.
@ajsamra just click "Merge pull request" once you've tested and reviewed. Thanks!


Add country whitelist option

It would be helpful in some cases to only show a subset of the list of countries. Add a whitelist option to let users choose exactly which countries should be included in the country dropdown.

Just to be a pest, any chance of this happening anytime soon?

haha not at all. :) It would be super helpful, I agree. Let me see if I can look at this week. Should be pretty straightforward to implement, I think.

Added in 0.2.0


API Cross-table count handling e.g. returning posts.count for tags

This was originally a comment on #5615, but is large and complex enough to warrant it's own issue. This is heavily related to #6008.
There are two changes that are currently proposed in #5615:

[ ] Change post_count include on Tag endpoint to be posts.count
[ ] Add tags.count to Posts endpoint and posts.count to Users endpoint

I'm currently looking at how to implement counts across the posts / tags / users endpoints, and so I wanted to clarify a proposal for what they look like.
Inline or 'included' counts are counts which are requested in addition to other data, e.g. requesting all tags and also asking for a post count at the same time: GET /tags/?include=posts.count
Included counts in this form are mainly useful for two purposes that I can discern:

Providing an idea of how much data there is where the data has not yet been fetched, E.g. Having a list of Authors with an indication of how many posts each author has written.  GET /users/?include=posts.count
Ordering result sets by those that have the most related data, E.g. ordering tags by how many posts have that tag. GET /tags/?order=posts.count desc

When making a browse request, the API automatically returns a count of how many items have been requested and how many exist in the full set (i.e. if the result is paginated) so it is easy to get a count of data that has been fetched. The key aspect of included counts is that they return information about related objects.
One of the complexities of including related counts, is needing to count the right things. E.g. when returning a "post count" along with tags, in the admin panel this would need to return the count for all posts, but when making this same request from the theme/frontend/public access the expectation is that it would only count 'published' items.
There are similar rules for active vs inactive users and private vs public tags (not implemented yet).
The main question on my mind is whether we should have a single syntax for requesting counts which automatically returns the full count of the data the requester has permission to access, or whether the requester should be able to specify what they expect. That is, should the handling of public vs private data be implicit or explicit?
Implicit example:
Single syntax:
GET /tags/?include=posts.count
When the request comes from an authorised request (e.g. from the admin panel) the full count would be returned.
When the request comes from a public client (e.g. from the get helper or ajax in a theme) only published posts would be included.
Pros:

No thought on the users part is required to get hold of private data
Single, simple syntax for requesting counts

Cons:

There is no way for an authorised user to get a public count
This doesn't match a normal posts request, which by default would only ever return published posts unless the user specifies otherwise

Explicit example:
Public data syntax:
GET /tags/?include=posts.count
Include private data syntax:
GET /tags/?include=posts.all.count
The default posts.count syntax always includes only the default 'public' information - published posts, active users, public tags. The extra qualification of posts.all.count includes all the data.
In this case, the 'all' qualification in the syntax always refers to 'public' vs 'all' data. This is a concept that we need to wire up more explicitly through the API as it applies to all 3 of our main resources.
Pros:

API users can be explicit about whether they're asking for public or all data.
This more closely matches how the API works in general (public by default, other data by request)

Cons:

Requires extra thought about what data you want counted
Extra syntax, although the same for all resources, could be confusing.

Although there is no way to specify count differences based upon other criteria (like whether a post is a page, or featured), I think there are sensible solutions to this. For pages, we should start to treat these as first class citizens in the API, providing GET /pages/ and pages.count etc.
For featured posts, or other more complex combinations, a separate request would need to be made.
The alternative to using all would be to used names like posts.published.count however, I think this would be potentially more confusing. If there's need for more count options in future we could extend from all to other 'named' counts, but if we add more complex names it will be hard to go back and remove them.
Summary / TLDR;
I am leaning heavily towards the explicit posts.count and posts.all.count version, because it matches the way the browse request works and makes it possible to request both public and all data when making authenticated requests, which would otherwise not be possible.
We're looking at making public vs private data handling more implicit inside of read requests as discussed in #5947, which makes sense because the user is already making an explicit request for a particular resource. I don't think the same idea works here.

Note: The API does not currently support doing requests which are only intended to return a count, and nothing else, although this can be simulated by only requesting fields=id. If there is a strong need for fetching just counts this behaviour could be added later.

We had a discussion about this in slack: https://ghost.slack.com/archives/dev/p1447845080000412
@kevinansfield suggested that we use count.posts instead of posts.count, which is similar to the instragram API. Instagram uses counts rather than count which, is probably more correct, but count.posts reads more easily E.g. {{#get tags include="count.posts" order="count.posts DESC"}}
This makes heaps more sense in numerous ways - count is not a table, but is easily understood as a function/category under which we can provide all sorts of counts.

Yesterday, I spent the day trying to make it possible to support filtering by count.posts,
e.g. {{#get tags filter="count.posts:>=1"}} - get tags that have at least one post.
I wanted to document why this is non trivial to get all this crazy stuff out of  my brain, an in depth explanation lives below. The TLDR; is MySQL does not permit using aggregates in where clauses.

Why filter + aggregate = :scream:
Counting posts uses an aggregate function in SQL, which for the purposes of an include is added as an extra named column to the query:
select tags.*, (select count(posts.id) from posts left outer join posts_tags on posts.id = posts_tags.post_id where posts_tags.tag_id = tags.id) as count__posts from tags...
Here we select tags.* (all fields of tags) and count__posts (using a subquery) from tags... and then perform the rest of the query.
From here, supporting ordering by the count is easy:
select tags.*, (select count(posts.id) from posts left outer join posts_tags on posts.id = posts_tags.post_id where posts_tags.tag_id = tags.id) as count__posts from tags order by count__posts DESC
Sqlite3, MySQL and postgres all support ordering by the aggregate count__posts column ✅
However, adding support for filtering, or rather, using count__posts in a where clause is much more tricky, because only Sqlite3 supports using count__posts in the where column. And of course, I dev under Sqlite3, so I got a wonderful sense of false hope when this worked:
select tags.*, (select count(posts.id) from posts left outer join posts_tags on posts.id = posts_tags.post_id where posts_tags.tag_id = tags.id) as count__posts from tags where count__posts >= 1
MySQL errors with unknown column count_posts, because the where is executed before the aggregate is calculated (the order is done afterwards so it works fine) 😣🔫
What MySQL wants is for us to do either one of the following:

Use a GROUP BY ... HAVING ... clause:

select tags.*, (select count(posts.id) from posts left outer join posts_tags on posts.id = posts_tags.post_id where posts_tags.tag_id = tags.id) as count__posts from tags group by tags.id having count__posts >= 1

Repeat the subquery in the WHERE ... clause:

select tags.*, (select count(posts.id) from posts left outer join posts_tags on posts.id = posts_tags.post_id where posts_tags.tag_id = tags.id group by posts_tags.tag_id) as count__posts from tags where (select count(posts.id) from posts left outer join posts_tags on posts.id = posts_tags.post_id where posts_tags.tag_id = tags.id group by posts_tags.tag_id) >= 1
Or rather,
SUB_QUERY = (select count(posts.id) from posts left outer join posts_tags on posts.id = posts_tags.post_id where posts_tags.tag_id = tags.id group by posts_tags.tag_id)
select tags.*, SUB_QUERY as count__posts from tags where SUB_QUERY >= 1
MySQL syntax rules suggest using 'having' instead of 'where' for aggregates, but this is non trivial because it ALSO requires a group by clause. Interestingly in this case, the group by clause isn't strictly needed, MySQL doesn't ask for it, but Sqlite3 does... 😱
In Ghost we need to get from the GQL count.posts:>=1 to the JSON version via gql.parse (works fine) and then we need run gql.knexify which builds our where clauses using knex's query builder.
The buildWhere functionality is designed to do just that, build a bunch of where statements based on the data passed in, and so for Sqlite3 all of this just 'magically' works already. In order to get this to work in a way that MySQL also understands we need to either:

pre-parse the statements and move aggregate filters to having and also add a `group by.

This just doesn't work in reality, because as soon as you add in a second filter and an 'or' it gets stupidly complex. Do we move all of the clauses to having? Knex's support for having is way less advanced, and this doesn't seem like the right thing to do. Also we have to additionally manage the group statement and that impacts on being able to do pagination. I did get it 'sort of' working, but it was messy & would break as soon as a second filter was added.

figure out a way to configure the subquery so we can replace queries against count.posts

This is what I'm going to try next. We can construct queryBuilder instances and pass them around, so perhaps we can supply the subquery for aggregates to knexify and get that to work a bit more sane/neatly.


Mouse movement accumulation is broken

Version
Just after https://github.com/Leafwing-Studios/leafwing-input-manager/commit/a513ad0597a17aaef96eb1b4fe3bcc7a001ef51f
What you did
Many tests are failing. See https://github.com/Leafwing-Studios/leafwing-input-manager/actions/runs/9452237797/job/26034969670?pr=534
This isn't particularly suprising: this code was always very jank and fragile.

This was broken in the Bevy 0.14 port. I'm pretty sure that this is just tech debt from the terrible existing hack biting us. This should be rewritten from scratch.

There's a good chance that this has the same root cause as https://github.com/bevyengine/bevy/issues/13758, but I think we should be able to fix this without the associated fix by simply writing this code correctly.

https://github.com/bevyengine/bevy/commits/release-0.14.0/crates/bevy_ecs/src/event.rs This is the relevant history of the event files: nothing else is plausible.

accumulate_mouse_movement and accumulate_wheel_movement are the offending functions. They're just iterating through all the events. This is ultimately caused by the mouse_wheel and mouse_motion fields on InputStreams not being populated correctly in collect_events_cloned.


API: Import Daily Emissions Data and Daily Fuel Data

As the ECMPS application, I need to be able to successfully import Daily Emissions Data and Daily Fuel Data to the emissions module in order to support program goals
Given there is an import endpoint in the workspace emissions module controller when a file is imported then all Daily Emissions Data and Daily Fuel Data records are added from the imported file

[ ]  Add Daily Emissions Data to the existing import endpoint in the emissions module controller
[ ] This includes the parent data Daily Fuel Data
[ ]  Implement logic to import Daily Emissions and Fuel Data
[ ]  Applicable property names for import of Daily Emissions and Fuel Data data added to this ticket

Used to test:
{
    "orisCode": 302,
    "year": 2017,
    "quarter": 2,
    "dailyEmissionData": [
        {
            "stackPipeId": "CS0001",
            "parameterCode": "AKSF",
            "date": "2017-04-20T18:56:58.075Z",
            "totalDailyEmissions": null,
            "adjustedDailyEmissions": null,
            "sorbentRelatedMassEmissions": null,
            "unadjustedDailyEmissions": null,
            "totalCarbonBurned": null,
            "dailyFuelData": [
                {
                    "fuelCode": "ANT",
                    "dailyFuelFeed": null,
                    "carbonContentUsed": null,
                    "fuelCarbonBurned": null
                }
            ]
        }
    ]
}


Dynamic flow positioning layout in visual editor

Currently the flow is positioned statically on the canvas. This is centered and is optimized for small, mostly linear flows. Flows that grow in breadth are unable to utilize the space given to the flow editor and requires users to scroll.
An optimization I'd like to add is to reposition the flow to be left-aligned instead of centered when a flow with breadth is rendered, or a combination of gradual left alignment as the breadth increases in a flow, culminating in a complete left-alignment.

I can implement the 'gradual left alignment'.


Updated transaction application model: staged ledger diff creation

Part of https://github.com/MinaProtocol/mina/pull/11760.

merged into https://github.com/MinaProtocol/mina/pull/12548


Feature Request: Protect Stacks from Removal

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Right now you can delete stacks (and their resources) with ease (and minimal confirmation). Portainer should allow me to "protect" a stack, preventing accidental deletion.
This is a feature of AWS CloudFormation that Portainer should have: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html
Describe alternatives you've considered
AWS CloudFormation allows their stacks to be protected, Portainer should do this as well.
Additional context
N/A

Azure calls these “resource locks” and i agree this is an awesome feature.

I agree! I'm a new user (just this week) of portainer and I noticed as I tried out the stack section of the app, I had to be extra careful not to terminate my production plex stack.
Beyond creating a second user and only letting them view allowed projects (e.g. a root admin user for special ops, a non-root admin for all else) for getting around this is not ideal.
There should be a positive confirmation, or some type of "disarming" to have to remove a stack. I propose the following:

Stacks in portainer can be marked protected. This could be done from the stack settings.
Stacks in portainer that have this protected flag set will not allow the root stack to be deleted.

This would yield the following workflows:
Customer wants to protect a stack

Customer navigates to the stack admin page.
Customer opens stack they wish to protect.
Customer enables "Stack Protection" on stack.

Customer wants to unprotect a stack

Customer navigates to the stack admin page.
Customer opens stack they wish to protect.
Customer disables "Stack Protection" on stack.

Customer wants to delete a protected stack.

Customer navigates to the stack admin page.
Customer attempts to delete a stack that is protected.
Customer is greeted with error messaging explaining the stack is protected from deletion.
Customer then moves to Customer wants to unprotect a stack workflow.
Customer then moves to Customer wants to delete an unprotected stack workflow.

Customer wants to delete an unprotected stack

No changes here

I believe that this feature shouldn't be limited to just stacks. There have been countless times I have deleted my Portainer container & services on accident, so in my eyes it should be available on all resources in Portainer to protect against accidental deletion...
What are everyone elses thoughts?

@itsconquest
If a container is not a member of a stack, sure it should have protections built into it
If a container is a member of a stack, it should follow the protections of the parent stack.

Feel free to join us on Slack via https://join.slack.com/t/portainer/shared_invite/enQtNDk3ODQ5MjI2MjI4LTcwNGYxMWQ5OGViYWZkNDY2ZjY4YTMwMTgzYmU4YmNiOTU0MDcxYmJjNTIyYmQ0MTM5Y2QwNTg3NzNkMTk5MDg if you have some questions on how to contribute

@deviantony I'll have to check it out if I do!

I still want this feature

Would a mix of standard user roles (to assign stacks to users) and operator role (protecting other stacks) work?
https://docs.portainer.io/v/be-2.10/admin/users/roles#built-in-roles

@huib-portainer potentially if I was a multi user environment, but it's just me! I would have to revisit the idea of a "root" account and a "personal" account.

portainer/support not stale
would be awesome:

protect container
protect volume
protect stack
protect image
protect secret
protect network
etc.

To actually delete, requires administrator password in a popup.

Since no further activity has appeared on this issue it will be closed. If you believe that it has been incorrectly closed, leave a comment mentioning portainer/support and one of our staff will then review the issue.

portainer/support


Copyedit the "examples" and "project" documents.

As I read through more of the documentation, I found more improvements to propose.

Thanks @seh, i've merged this and pushed it to the site.


Updated README.md

Changed the hosted at link from https://yamakira.github.io/Python-Foundations to https://yamakira.github.io/python-foundations as the first link was throwing up an 404 Page not found error.

Changed the hosted at link from https://yamakira.github.io/Python-Foundations to https://yamakira.github.io/python-foundations as the first link was throwing up an 404 Page not found error.


commands function can return a promise (#67)

The app developer can provide a commands function that returns a promise. When the user invokes the context menu it will appear only once the promise is resolved. This allows the app developer to involve async operations when calculating the available commands.
The returned promise must resolve with an array of commands. Note: the array itself must not contain any promise.
The cxtmenu API remains fully compatible. The commands function still can return an array of commands.
The README is extended.

Note that the change is minimal invasive and has no performance impact. Only about 12 lines of code changed. The API remains fully compatible.
I've needed to move the code that actually opens the context menu into a function openMenu() but its code itself is unchanged.
When ignoring whitespaces (git diff -w) the entire change is this:

When you don't want the extension to depend on a Promise implementation at all you can replace the line
if( res instanceof Promise ){

by
if( res.then ){

I don't like to use instanceof generally, because there isn't a strict type hierarchy like there is other languages like Java.
If someone uses an independent promise implementation that matches the spec (like Bluebird), the instanceof check can fail.

I don't like to use instanceof generally, because there isn't a strict type hierarchy like there is in other languages like Java.

OK. You could replace
if( res instanceof Promise ){

by
if( res.then ){

This should be compatible with every promise implementation then.

With that universal promise check (recent comment) do you think that pull request can be merged now?

I've committed the generic promise check now (8b4fab0)

@maxkfranz do you want me to change anything more?

Sorry.  I honestly haven't had time to review.  I'll try to review sometime today.  If it looks good, I'll just merge and release.

Thank you for merging and releasing!

Be aware my pull request introduced a minor incompatibility: when the commands function returns null/undefined now an error is thrown instead of just showing no menu. It still works like before when an empty array is returned. Because the README does not mention the null/undefined case I guess the current code is OK. Tell me if you want me to remove that incompatibility.

I think we should not expect non-null values to be used.  There's nothing in the readme about null values, so I think it should currently be considered invalid input.

If I understand your comment correctly the current code is OK and I'm not supposed to do a change. So I'll close #67 now. Thank you for cooperation!

Yes, anything undocumented should be considered undefined behaviour.


Bug: Offline can't get back online

Currently I get always:
~$ sdk list java
==== INTERNET NOT REACHABLE! ===================================================

 Some functionality is disabled or only partially available.
 If this persists, please enable the offline mode:

   $ sdk offline

================================================================================

--------------------------------------------------------------------------------
Offline: only showing installed java versions
--------------------------------------------------------------------------------
 * 8.0.272.hs-adpt
 * 7.0.262-zulu
 * 16.ea.21-open
 * 15.0.1.hs-adpt
 * 11.0.9.hs-adpt
 > 11.0.8.hs-adpt
--------------------------------------------------------------------------------
* - installed
> - currently in use
-----------------------------------------

I tried already to bring online back...via:
~$ sdk offline disable
Online mode re-enabled!
~$ sdk list java
==== INTERNET NOT REACHABLE! ===================================================

 Some functionality is disabled or only partially available.
 If this persists, please enable the offline mode:

   $ sdk offline

================================================================================

--------------------------------------------------------------------------------
Offline: only showing installed java versions
--------------------------------------------------------------------------------
 * 8.0.272.hs-adpt
 * 7.0.262-zulu
 * 16.ea.21-open
 * 15.0.1.hs-adpt
 * 11.0.9.hs-adpt
 > 11.0.8.hs-adpt
--------------------------------------------------------------------------------
* - installed
> - currently in use
-----------------------------------------

Currently it seemed not possible via command line options to bring it back working.
To reproduce

System info
OS: Mac OS Mojava (Version: 10.14.6)
~$ sdk version
==== INTERNET NOT REACHABLE! ===================================================

 Some functionality is disabled or only partially available.
 If this persists, please enable the offline mode:

   $ sdk offline

================================================================================

SDKMAN 5.9.1+575

I don't think this is a bug with SDKMAN, as all servers are fully operational. Please ensure that the internet is reachable and that you aren't being blocked by a proxy. If problems persist, please feel free to contact us on the SDKMAN Slack #user-issues channel where we can help you resolve your issue.

No proxy, nothing is blocked; Browser works perfectly (three different ones) builds with Maven, Docker etc. getting everything they need; IDE makes Updates without any issue. ...everything else is working without any issue...
The question is: Where is configured being online / offline? Cause that can't be changed in contradiction to the printed out message...

@khmarbaise I've answered all your questions on slack. Happy to pick up and help you resolve your issues there.

I just git the same problem. Answering an GitHub issue on slack does not help others that have the same issue.

@sothawo this could be caused by so many issues, not just a single cause. That's why we are happy helping you on a case by case basis. In short, SDKMAN currently uses curl to make all it's API calls. If curl does not succeed for whatever reason then SDKMAN goes into the offline mode. This is less than ideal, but for now it is what it is until we roll out a better solution.

The same problem is happening on me.I always get the same "bug"-"offline"，if I can't sovle it ,maybe I will change to use anothor tool.

@EricJim08 I will be removing the offline mode very soon as it is known to have lots of problems. In the meanwhile, you might want to have a play with the curl timeout settings to see if that resolves the issue.
Feel free to try out those other tools if you think that will solve your problems.


Cost reporting docs

Fixes #2129
What is being addressed
Cost reporting documentation which includes general information about cost reporting and azure resource tagging for template authoring.

/test

/test-force-approve
just docs...


Update enums.py

Added HDMI_BYPASS to InputSource enum

I heavily use the HDMI input on my UDP-203. I have either an Apple TV 4K or a Nvidia Shield TV connected to this input.
To use HDR modes on the hdmi input of the Oppo UDP-20x players you need to use the HDMI IN BYPASS as input source, the regular HDMI IN does not support HDR.


Translation for stackable coupons admin title

Related to  #467 Stackable coupons translations

Resolved in #469,  closing


Use of 'mgl_does:have:' as an NSExpression function is forbidden.

Describe the bug
I noticed a lot of error logs in the console:
[general] NSPredicate: Use of 'mgl_does:have:' as an NSExpression function is forbidden.
Apparently there already was a similar issue that has been fixed, but I still receive above console-log:
https://github.com/maplibre/maplibre-native/issues/331
What I try to solve is support indoor floor levels as described here:
https://github.com/maplibre/maplibre-native/issues/703
For this, I use the variable MGLVectorStyleLayer.predicate.mgl_jsonExpressionObject, and thats where the log comes from:

Expected behavior
No runtime errors
Platform information (please complete the following information):

OS: 16.6.1
Platform: iPhone X
Version: MapLibre GL Native 5.13.0

Do you need further information?

Thanks, I think the issue was prematurely declared 'fixed'.
@ianthetechie Did your looking into this result in any discoveries?

Yeah, I ran into what is likely the same root issue described in #331. This may have been fixed subsequently, but I couldn't find a way to get it working with v5.13, so I abandoned the search until I could get a build off master which has totally refactored this.
If I get some time I'll try building master to investigate but can't promise anything this week.
I've posted a fuller update in the other issue with other approaches I tried (+failed).

(instancetype)mgl_expressionForDoesExpression:(NSExpression )operand have:(NSExpression)key {
if (@available(iOS 15.5, macOS 12, *)) {
NSExpression *functionExpression = [NSExpression expressionWithFormat:@"sum({})"];
return [NSExpression expressionForFunction:functionExpression.operand
selectorName:@"mgl_does:have:"
arguments:@[operand, key]];
} else {
return [NSExpression expressionForFunction:@"mgl_does:have:" arguments:@[operand, key]];
}
}

Duplicate of https://github.com/maplibre/maplibre-native/issues/1820


Disable ascending check if the previous unit was a percentual value

Fixes #28399
This prevents the comparable check in the _assert-ascending if the previous value was a percentual value.
This removes compilation warnings when providing mixed percentual/pixel values to $container-max-widths.

@MartijnCuppens: if this lands in master, should we backport it to v4?

Support for mixed usage of px and % feels more like a feature, so no need to backport this.


Delete spam immediately, without moving to trash folder first

Checklist

[X] I have used the search function to see if someone else has already submitted the same feature request.
[X] I will describe the problem with as much detail as possible.
[X] This issue only contains a request for one single feature, not multiple (related) features.

App version
6.303
Problem you are trying to solve
I often need to delete messages from the SPAM folder without moving them to Trash.
Suggested solution
Would be great if long press on the Delete button allowed to delete them directly and permanently.
Screenshots / Drawings / Technical details
No response

I don't think the suggestion solution is a good idea. By default long-pressing icons in the toolbar displays a tooltip showing the name of the action or a short description. Replacing that with a destructive action that you can't undo is not great.
There's also already a feature request for "delete immediately".

#3959

However, I think most people would want spam messages to be deleted immediately, i.e. without moving them to the trash folder first. So we could change the behavior of the delete action when viewing the spam folder to delete the message immediately.

Should mails located in the spam directory handaled the same way as mails in the trash directory? Or should we add a setting to control this handling by users?

I don't think this requires a setting. If it turns out there's a really good reason to disable this behavior, we can add a setting later.


Add a custom CM to allow an admin to control JH global profile

This will update add a custom JH singleuserprofile that a RHODS admin can modify without the operator making resetting it during reconciliation
RHODS Jira: 1524
Signed-off-by: Landon LaSmith<EMAIL_ADDRESS>

@LaVLaS is this still a WIP?

@LaVLaS is this still a WIP?

I forgot about this PR. I just updated the PR to make this change

Can you rebse on main?

Done


make compatible with grunt-contrib-less

just-boris i use grunt-contrib-less  they have a example how to load plugin's like this:
plugins: [
new (require('less-plugin-autoprefix'))({browsers: ["last 2 versions"]}),
new (require('less-plugin-clean-css'))(cleanCssOptions)
],
How would i load your wonderfull plugin in here so that it works with grunt-contrib-less?

You can use my plugin like so:
plugins: [
require('less-plugin-glob')
],

That's why it does't have any options. So I looked on less-plugin-inline-urls when was writing this one.


BE crash when enable_pipeline_engine true

Steps to reproduce the behavior (Required)

CREATE TABLE:
tpcds tables with 1G data;

SELECT :

select
  ref_0.sr_return_ship_cost as c0,
  ref_0.sr_returned_date_sk as c1,
  pi() as c2,
  ref_0.sr_return_ship_cost as c3,
  cast(nullif(ref_0.sr_addr_sk,
    ref_1.c_first_shipto_date_sk) as INT) as c4,
  ref_0.sr_return_amt_inc_tax as c5,
  concat(
    cast(ref_1.c_login as VARCHAR),
    cast(ref_1.c_login as VARCHAR),
    cast(ref_1.c_birth_country as VARCHAR)) as c6,
  ref_1.c_preferred_cust_flag as c7,
  rand() as c8,
  ref_1.c_email_address as c9,
  unix_timestamp() as c10,
    max(
      cast(ref_0.sr_fee as DOUBLE)) over (partition by ref_1.c_first_name order by ref_0.sr_return_quantity,ref_1.c_last_review_date) as c11,
  ref_1.c_first_shipto_date_sk as c12
from
  tpcds_1g.store_returns as ref_0
    right join tpcds_1g.customer as ref_1
    on (ref_0.sr_ticket_number = ref_1.c_customer_sk )
where ref_1.c_first_shipto_date_sk is NULL
limit 98;

Expected behavior (Required)
query returns the right result
Real behavior (Required)
BE crash:
*** Aborted at<PHONE_NUMBER> (unix time) try "date -d @1640611461" if you are using GNU date ***
PC: @          0x172c8d0 starrocks::vectorized::BinaryColumn::append_selective()
*** SIGSEGV (@0x63643963ec) received by PID 7742 (TID 0x7f8c5453d700) from PID<PHONE_NUMBER>; stack trace: ***
    @          0x3421342 google::(anonymous namespace)::FailureSignalHandler()
    @     0x7f8cb7949630 (unknown)
    @          0x172c8d0 starrocks::vectorized::BinaryColumn::append_selective()
    @          0x17259d8 starrocks::vectorized::NullableColumn::append_selective()
    @          0x201efba starrocks::vectorized::Chunk::append_selective()
    @          0x246a5ae starrocks::pipeline::LocalExchangeSourceOperator::_pull_shuffle_chunk()
    @          0x246ae87 starrocks::pipeline::LocalExchangeSourceOperator::pull_chunk()
    @          0x2348345 starrocks::pipeline::PipelineDriver::process()
    @          0x2340740 starrocks::pipeline::GlobalDriverDispatcher::run()
    @          0x1ce50e9 starrocks::ThreadPool::dispatch_thread()
    @          0x1ce0bc8 starrocks::Thread::supervise_thread()
    @     0x7f8cb7941ea5 start_thread
    @     0x7f8cb6d468dd __clone
    @                0x0 (unknown)

StarRocks version (Required)

You can get the StarRocks version by executing SQL select current_version()

mysql> select current_version();
+------------------------+
| current_version()      |
+------------------------+
| QA_TEST_MASTER 757f26d |
+------------------------+
1 row in set (0.00 sec)

fixed


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1954 ms

Resolved: Bofrost.at performance has improved in 99ddc9e after 312 days, 7 hours, 29 minutes.


Issue with Alarm.com integration with Locks

Recent API changes with Alarm.com now requiring additional variables / form inputs has rendered the Locks functionality unusable.  Would you be willing to work with @bryanbartow and allow your code to be pulled into his repository so it can be fixed?
The following error is being presented currently.
"Error while getting lock devices: TypeError: Cannot read property 'map' of undefined"
Best regards and thank you!

Although this is technically a valid pull request, it is not useful in any way because it would revert the project to a previous state which would now be unusable.


Tools with Optional Inputs gives "No Undefineds in this Workspace"

If a user has a Tool that does not require any Inputs, they cannot Launch Analysis (even if they hit Save). It gives the error "There are no undefineds in this workspace". The Tool that I replicated this with is "Hello-World" from the FireCloud Method Repository.

Zendesk Tickets Affected:
#1316 and #1319