Fix unreported import/export errors

Hello apigeecli maintainers.
First things first: thank you for putting together this command-line tool to facilitate interactions with our Apigee deployments! It's very helpful in building automated workflows.
On this specific Pull Request: as you may note it is a draft, as it is not intended to be merged as is without prior discussion.
While using the tool I realised that when importing / exporting certain resources such as targetservers an error may be thrown by the server side without this resulting in a non-zero exit code. Even though the error is still printed.
Example:
$ apigeecli targetservers import --org=my-apigee-org --environment=dev --file=environments/dev/targetservers.json --token="$(gcloud auth login --print-access-token)"
ERROR: 2023/01/12 14:18:22 httpclient.go:381: status code 404, error in response: {
  "error": {
    "code": 404,
    "message": "Environment \"organizations/my-apigee-org/environments/dev\" not found",
    "status": "NOT_FOUND",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.RequestInfo",
        "requestId": "17271276888273507243"
      }
    ]
  }
}
$ echo $?
0

I've traced this back to the import / export logic itself and realised that it currently uses non-standard parallelism patterns that prevent the errors from being appropriately reported through a non zero-exit code. Instead the errors are only printed without influencing the actual program's termination.
At the same time I also realised that due to the way Go routines are being created is rather convoluted which leads to a hard-to-grasp parallel processing setup.
In my book these are two bugs that could use some squashing. :)
Given that I have some Go knowledge of my own I've put together this Pull Request to showcase how the import / export logic may be modified to properly return any errors. It also shows how some other standard Go patterns (fan-out/fan-in through channels) can be used to simplify the concurrency setup.
Please let me know what you think. If the solution seems useful & acceptable to you I'd be happy to merge the Pull Request and raise a few follow-up ones that use identical fixes in other places of the codebase where these error-reporting and parallelism bugs appear.

@Helcaraxan - Many thanks for the PR!
There are two parts to the PR:

Behavior when encountering a problem
Go routines and parallelism

The behavior you reported was how it used to work. That is, the import stopped when it encountered a problem. I was given feedback that such a behavior is a problem during migration (from one Apigee org to another). In the command you used apigeecli targetservers import, I think the behavior is clear - it should return an error. However, a more common pattern I have seen is for users to try apigeecli orgs import. When importing all the org components, should the entire import stop? The feedback I was given was to ignore failures and proceed (as far as possible). Perhaps we need a flag to ignore errors?
For item #2, I really appreciate the improvements to the Go routines and I'm more than happy to accept those changes as well as work with you to incorporate them to the other entities.

Hello @srinandan, thank you very much for the reply.
I agree with you that an import or export command should not be interrupted by one failing upload / download of a proxy. But there is a difference between:

Interrupting the remainder of uploads / downloads early because of an error.
Completing all upload / download attempts and failing the overall command if one or more errors occurred across all resources.

The bug that I described is that 2 is not happening, it has nothing to do with 1. Even if there was only one error across 10s or 100s of resource imports then I still want the apigeecli command to fail with a non-zero exit code to show that not everything succeeded. With the current implementation the command returns 0 as exit-code even if all import or export actions failed.
The changes I made for part nº2 using Go channels will actually alleviate this. As you may see in my draft code any errors would be sent back from the "worker" routines over a dedicated channel. These are collected but do not interrupt the processing of the remaining imports / exports. Once all actions have completed a check is made for whether there were any errors at all, and if so, these are reported and will result in a non-zero exit code without preventing the successful operations to complete.

Makes sense, thank you @Helcaraxan
I'm good with the changes proposed.

All good then @srinandan. I've just pushed an update to finalize the semantics of the Go routine changes to ensure correctness given your OK to proceed.
I've also taken the opportunity to simplify some of the field logic around option-handling. The code was using pointer-logic to prevent unnecessary values to be serialized into JSON.
However the omitempty option on the sslInfo struct field is already taking care of that. Hence the pointers are not actually needed which allows for much shorter struct initialization code while still producing the same outcomes.
I'll let you review the changes and leave any comments you have. After I address any issues you may find we can merge this PR and I'll move onto creating the similar ones I created for other import/export logic.
ONE THING that remains up for discussion for me is to filter out 409 Already Exists responses on importing a targetserver as it is equivalent to a success. Due to the bug, addressed by this PR, of always returning 0 as exit-code this was not an issue up til now.
However with my changes such 409 codes will start producing failing apigeecli runs even if all imports are successful with some that already existed (a very frequent situation in the case of an automated CD pipeline). Please let me know if you agree and I'll update the PR to ensure that such responses are filtered out and not considered as an error.

Below output from the export & import commands with a fresh binary built off my branch:
Export:
$ apigeecli targetservers export --org=<REDACTED> --env=<REDACTED> --token="$(gcloud auth print-access-token)"

$ cat targetservers.json
[{
  "name": "<REDACTED>",
  "host": "<REDACTED>",
  "port": 80,
  "isEnabled": true,
  "protocol": "HTTP"
}
]

Valid import with the exported targetservers.json:
$ ./apigeecli targetservers import --org=<REDACTED> --env=<REDACTED> --file=./targetservers.json --token="$(gcloud auth print-access-token)"
ERROR: 2023/01/17 12:49:39 httpclient.go:381: status code 409, error in response: {
  "error": {
    "code": 409,
    "message": "organizations/<REDACTED>/environments/<REDACTED>/targetservers/<REDACTED> already exists",
    "status": "ALREADY_EXISTS",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.RequestInfo",
        "requestId": "16053922495628537620"
      }
    ]
  }
}

Error: error in response
Usage:
  apigeecli targetservers import [flags]

Flags:
  -c, --conn int      Number of connections (default 4)
  -f, --file string   File containing API Products
  -h, --help          help for import

Global Flags:
  -a, --account string   Path Service Account private key in JSON
      --disable-check    Disable check for newer versions
  -e, --env string       Apigee environment name
      --no-output        Disable printing API responses from the control plane
  -o, --org string       Apigee organization name
  -t, --token string     Google OAuth Token

$ echo $?
255

Import with an invalid targetserver definition:
$ cat targetserver.json
[{
  "isEnabled": true,
  "protocol": "HTTP"
}
]

$ ./apigeecli targetservers import --org=<REDACTED> --env=<REDACTED> --file=./targetservers.json --token="$(gcloud auth print-access-token)"
ERROR: 2023/01/17 12:50:10 httpclient.go:381: status code 400, error in response: {
  "error": {
    "code": 400,
    "message": "missing required field \"TargetServerId\"",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.RequestInfo",
        "requestId": "13750426732942649104"
      }
    ]
  }
}

Error: error in response
Usage:
  apigeecli targetservers import [flags]

Flags:
  -c, --conn int      Number of connections (default 4)
  -f, --file string   File containing API Products
  -h, --help          help for import

Global Flags:
  -a, --account string   Path Service Account private key in JSON
      --disable-check    Disable check for newer versions
  -e, --env string       Apigee environment name
      --no-output        Disable printing API responses from the control plane
  -o, --org string       Apigee organization name
  -t, --token string     Google OAuth Token

$ echo $?
255

Thank you for the detailed response @Helcaraxan
In my view, a 409 can be ignored. I think it will be common for users to re-run imports multiple times (because something failed) and there was a partial import.

@srinandan I've updated the code to handle the 409's appropriately.
I've had to extract some of the functionality from the apiclient package as it is currently does not allow its users to extract error codes. This is room for future improvement to rework the helper packages such as apiclient, etc.

Thank you. Please let me know once your changes are done, I will also run a quick test.

My changes are currently all done. You should feel free to run your tests. :)


Add useful streamlink args and link to their documentation website

Pull request checklist:

[x] CHANGELOG.md was updated, if applicable

Description

Feel free to re-open a pull request that links to the documentation of the external application

Sounds good, no worries.

Link to docs was added in https://github.com/Chatterino/chatterino2/pull/4217


⚠ TorrentLeech has degraded performance

In 5eaabc5, TorrentLeech ($TL) experienced degraded performance:

HTTP code: 200
Response time: 2239 ms

Resolved: TorrentLeech performance has improved in ce5c119.


honor 90  ERROR: Demuxer 'audio': stream disabled due to connection error

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS: MacOS
scrcpy version: 2.1.1 and 2.0(git branch is honor.6)
installation method: 2.1.1 use brew install | 2.0 use make install
device model: honor REA_AN00 ( honor 90  )
Android version: 13 (magicOS 7.1)

Describe the bug
> scrcpy
scrcpy 2.0 <https://github.com/Genymobile/scrcpy>
/opt/homebrew/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 221.1 MB/s (56935 bytes in 0.000s)
[server] INFO: Device: [HONOR] HONOR REA-AN00 (Android 13)
INFO: Renderer: metal
INFO: Texture: 1200x2664
ERROR: Demuxer 'audio': stream disabled due to connection error
WARN: Device disconnected

> scrcpy
scrcpy 2.0 <https://github.com/Genymobile/scrcpy>
ERROR: Could not find any ADB device
ERROR: Server connection failed

WARN: Device disconnected

https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#device-disconnected ?

WARN: Device disconnected

https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#device-disconnected ?
But when I connected to another tablet, he worked very well


add typing

Add type safety to slider

Need to work on this, it is throwing an error. Give me a few minutes, sorry

sure make another PR

gonna undo the typing as it will take some time and I don't have it right now. Will try to fix it over the weekend. But the height factor works


August does not work properly in the practice at the bottom.

Request type

[x] New documentation

Details
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/conditionals
in the Practice calender at the bottom the August month does not work properly to me, I can not get the number of days to change the way it should even in the solution shown, the live code does not respond as it should. After spending 30 minutes trying to debug my code I realized there is some issue behind the scenes it appears.

I'm not sure what the problem is here — when I press "Show solution" and then select August from the drop down, it shows 31 days, as intended. What behavior are you seeing?

Maybe something is wrong with my code then, I had checked each month and at August it had repeated the same days as July or September and I couldn’t get it to change by my own code.
Sent from my iPhone

On Apr 15, 2020, at 2:49 AM, Chris Mills<EMAIL_ADDRESS>wrote:
I'm not sure what the problem is here — when I press "Show solution" and then select August from the drop down, it shows 31 days, as intended. What behavior are you seeing?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

I'm not sure what the problem is here — when I press "Show solution" and then select August from the drop down, it shows 31 days, as intended. What behavior are you seeing?

I went down to the code and pressed Show Solution, July and August both have 31 days and they shouldn't be the same.


Can't find BilateralFilter.

Hi there,
please excuse me being stupid, I am sure I'm missing something obvious.
I am using the NuGet https://www.nuget.org/packages/OpenCvSharp3-AnyCPU/
and I want to use the OpenCv function adaptiveBilateralFilter (http://docs.opencv.org/2.4/modules/imgproc/doc/filtering.html?highlight=bilateralfilter#adaptivebilateralfilter),  but I can't find it in OpenCvSharp.
What am I doing wrong?

adaptiveBilateralFilter seems to be removed from OpenCV3.0 :cry:
OpenCvSharp2.4.10 still supports the method. https://github.com/shimat/opencvsharp/blob/2.x/src/OpenCvSharp.CPlusPlus/Cv2/Cv2_imgproc.cs#L174


Fast transpile with MixIn

Summary
Call to Qiskit transpiler is overkill for simple experiment that directly creates ISA circuits, like T1 and T2 experiment. This PR adds a mixin class that automatically implements _transpiled_circuits() method that only maps virtual qubit index to physical qubit index without invoking the computationally heavy transpiler.
Details and comments

close this in favor of #1459


⚠ Roblox Site has degraded performance

In 3ed5bbc, Roblox Site (https://www.roblox.com) experienced degraded performance:

HTTP code: 200
Response time: 1589 ms

Resolved: Roblox Site performance has improved in d995d25 after 14 minutes.


Switch to ember-lodash-shim

#MINOR#

Changed from ember-lodash to ember-lodash-shim.

Do we need an addition to the blueprint to add ember-lodash-shim (and remove ember-lodash)?

Approved

Approved


python310Packages.ua-parser: fix dependencies

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 175391 run on x86_64-linux 1

5 packages built:

pgadmin4
python310Packages.ua-parser
python310Packages.user-agents
python39Packages.ua-parser
python39Packages.user-agents


pull/push: --hidden is not being respected

Fixed by PR https://github.com/odeke-em/drive/pull/445


[WIP] [Feature] Enable the capability to specify zstd and lz4 segment compression via config

Summary
This PR builds on #13782 by adding support for specifying segment compression using Zstandard and LZ4 via configuration. By default, segments are compressed with GZIP. However, users can configure the compression codec using the pinot.tar.compression.codec.name property. Currently, we support Zstandard and LZ4, but adding other codecs (e.g., LZMA or Snappy) can be done with a single-line change.
Core Concepts
The key concept introduced in this PR is the .tar.compressed file extension, replacing hard-coded extensions like .tar.gz, .tar.zst, .tar.lz4, etc. When this extension is used, the default compressor (configurable at runtime, with GZIP as the default) is applied during compression. For decompression, widely used compressors (supported by the Apache Commons library) embed magic numbers at the file start, allowing Apache commons and many other compression libraries to automatic detect the correct decompression method from the compressed content itself. Therefore, the file extension doesn’t matter during decompression, and .tar.compressed serves as a generic placeholder for tar archives compressed with any codec.
The rest of the PR revolve around this concept and makes the following general changes:

Change hard-coded .tar.gz strings when appropriate and references to TarCompressionUtils.TAR_GZ_FILE_EXTENSION static variable to TarCompressionUtils.TAR_COMPRESSED_FILE_EXTENSION
Change hard-coded .metadata.tar.gz file extension in batch ingestion to .metadata + TarCompressionUtils.TAR_COMPRESSED_FILE_EXTENSION`.
Check if pinot.tar.compression.codec.name is specified in Base[Server|Controller|Minion|Broker]Starter.java and if so set the default Tar compression codec accordingly.

Compatibility
Note that this PR maintains backward compatibility with existing Pinot code—segments and configs generated by previous versions will work with the updated code. However, there is no forward compatibility, as older Pinot versions cannot handle the new .tar.compressed file extension.
Important Files
This PR touches a lot of files. Important source code files to start code review is the following:

TarCompressionUtils.java
CommonConstants.java
Constants.java

Codecov Report
Attention: Patch coverage is 20.00000% with 28 lines in your changes missing coverage. Please review.

Project coverage is 40.55%. Comparing base (59551e4) to head (fcb896c).
Report is 1041 commits behind head on master.

Files with missing lines
Patch %
Lines

...he/pinot/segment/local/utils/SegmentPushUtils.java
0.00%
18 Missing :warning:

...apache/pinot/common/utils/TarCompressionUtils.java
42.85%
6 Missing and 2 partials :warning:

.../pinot/core/data/manager/BaseTableDataManager.java
50.00%
1 Missing :warning:

...a/manager/realtime/RealtimeSegmentDataManager.java
0.00%
1 Missing :warning:

:exclamation:  There is a different number of reports uploaded between BASE (59551e4) and HEAD (fcb896c). Click for more details.
HEAD has 53 uploads less than BASE

Flag
BASE (59551e4)
HEAD (fcb896c)

integration
7
0

integration2
3
0

temurin
12
1

java-21
7
1

skip-bytebuffers-true
3
0

skip-bytebuffers-false
7
1

unittests
5
1

unittests1
2
1

java-11
5
0

unittests2
3
0

integration1
2
0

custom-integration1
2
0

Additional details and impacted files
@@              Coverage Diff              @@
##             master   #14008       +/-   ##
=============================================
- Coverage     61.75%   40.55%   -21.21%
- Complexity      207     1133      +926
=============================================
  Files          2436     1982      -454
  Lines        133233   105331    -27902
  Branches      20636    16797     -3839
=============================================
- Hits          82274    42713    -39561
- Misses        44911    59204    +14293
+ Partials       6048     3414     -2634

Flag
Coverage Δ

custom-integration1
?

integration
?

integration1
?

integration2
?

java-11
?

java-21
40.55% <20.00%> (-21.08%)
:arrow_down:

skip-bytebuffers-false
40.55% <20.00%> (-21.20%)
:arrow_down:

skip-bytebuffers-true
?

temurin
40.55% <20.00%> (-21.21%)
:arrow_down:

unittests
40.55% <20.00%> (-21.20%)
:arrow_down:

unittests1
40.55% <20.00%> (-6.34%)
:arrow_down:

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Roadmap:  Task 4a: Dask backend for datashader mesh operations

Add Dask backend for unstructured mesh operations to Datashader

Kevin and I believe this can be closed.


Array.find is losing understanding of array element type (NTI too)

I'm using Array.find() on a strongly typed array. Within the test function passed, the element type becomes unknown to Closure Compiler (noticed when using REPORT_UNKNOWN_TYPES):
function f(/** !Array<!Date> */arr) {
  arr.find(item => {
    console.log(item); // item has unknown type here
    return false;
  });
}

This happens with and without NTI; here's a test case with NTI ticked and with the brand new Array.find extern copied from HEAD.
The arg to console.log is unknown within the function arg to Array.find():
Whereas the preceding console.log args are strongly typed:
https://closure-compiler-debugger.appspot.com/#input0%3Dfunction%2520f(%252F**%2520!Array%253C!Date%253E%2520*%252Farr)%2520%257B%250A%2520%2520console.log(arr)%253B%250A%2520%2520console.log(arr%255B0%255D)%253B%250A%2520%2520arr.find(item%2520%253D%253E%2520%257B%250A%2520%2520%2520%2520console.log(item)%253B%250A%2520%2520%2520%2520return%2520false%253B%250A%2520%2520%257D)%253B%250A%257D%26input1%26conformanceConfig%26externs%3D%252F**%250A%2520*%2520%2540param%2520%257B!function(this%253AS%252C%2520T%252C%2520number%252C%2520!Array%253CT%253E)%253A%2520boolean%257D%2520predicate%250A%2520*%2520%2540param%2520%257BS%253D%257D%2520opt_this%250A%2520*%2520%2540return%2520%257BT%257Cundefined%257D%250A%2520*%2520%2540template%2520T%252CS%250A%2520*%252F%250AArray.prototype.find%2520%253D%2520function(predicate%252C%2520opt_this)%2520%257B%257D%253B%26refasterjs-template%26includeDefaultExterns%3D1%26CHECK_TYPES%3D1%26CHECK_TYPES_NEW_INFERENCE%3D1%26CLOSURE_PASS%3D1%26LANG_IN_IS_ES6%3D1%26TRANSPILE%3D1
Possibly related to https://github.com/google/closure-compiler/issues/1151

This looks like an issue with the externs definition of Array.prototype.find, which doesn't refer to the type of the Array in question

@blickly Note I've copied the Array.prototype.find extern directly out of the codebase into the debugger externs, and it appears to reference the element type correctly:
/**
 * @param {!function(this:S, T, number, !Array<T>): boolean} predicate
 * @param {S=} opt_this
 * @return {T|undefined}
 * @template T,S
 */
Array.prototype.find = function(predicate, opt_this) {};

Looks like this will be fixed by #1190

You're right...
but I don't understand why!
https://closure-compiler-debugger.appspot.com/#input0%3Dfunction%2520f(%252F**%2520!Array%253C!Date%253E%2520*%252Farr)%2520%257B%250A%2520%2520console.log(arr)%253B%250A%2520%2520console.log(arr%255B0%255D)%253B%250A%2520%2520arr.find(item%2520%253D%253E%2520%257B%250A%2520%2520%2520%2520console.log(item)%253B%250A%2520%2520%2520%2520return%2520false%253B%250A%2520%2520%257D)%253B%250A%257D%26input1%26conformanceConfig%26externs%3D%252F**%250A%2520*%2520%2540param%2520%257B!function(this%253AS%252C%2520T%252C%2520number%252C%2520!Array%253CT%253E)%253A%2520boolean%257D%2520predicate%250A%2520*%2520%2540param%2520%257BS%253D%257D%2520opt_this%250A%2520*%2520%2540return%2520%257BT%257Cundefined%257D%250A%2520*%2520%2540this%2520%257B%257Blength%253A%2520number%257D%257CArray%253CT%253E%257Cstring%257D%250A%2520*%2520%2540template%2520T%252CS%250A%2520*%252F%250AArray.prototype.find%2520%253D%2520function(predicate%252C%2520opt_this)%2520%257B%257D%253B%26refasterjs-template%26includeDefaultExterns%3D1%26CHECK_TYPES%3D1%26CHECK_TYPES_NEW_INFERENCE%3D1%26CLOSURE_PASS%3D1%26LANG_IN_IS_ES6%3D1%26TRANSPILE%3D1

It also fixes it in old type inference. Thanks.


Add Dot Notation key support to utility functions

Types are complete, but needs to be tied into Document stuff later. Hits complexity limits with the data model as is, and the v10 version is still being worked on.

Oh, and before someone comments about use of object over Record<string, unknown>, things blew up about index signatures when I tried.


"Navigation To" contains duplicated documents

@dungpa any ideas?

I saw it sometimes as well.
Maybe we haven't used IDocumentNavigationService in the right way: https://github.com/Microsoft/visualfsharp/blob/a24a5607861e3b546ef4bbeb28970eb4bbf0ecd1/vsintegration/src/FSharp.Editor/Navigation/NavigationBarItemService.fs#L77-L81?

Sorry, it was not Nav Bar, but Navigate To.

I've fixed the duplicates issue in https://github.com/Microsoft/visualfsharp/pull/2173
I've look at Document.Id of the returning items and the actual initially opened document, and they are identical. So, we have the following problem:

The document which contains the searched symbol definition is opened.
Navigate To this symbol.
We pass proper item to Roslyn (Document + span).
VS opens another copy of the document.
It works OK for C# symbols.

@CyrusNajmabadi @Pilchie Any ideas what could, in theory, cause two copies of the same document to show at the same time, on different tabs? What are we missing?

I would try subscribing to IVsRunningDocumentTableEvents and seeing what the callstack is when the second document gets opened.  VS isn't supposed to let multiple copies of the same file get opened unless it is through Window.NewWindow, which would show a :1 on the tab.

@Pilchie Done. I've added a listener:
let runningDocumentTableEvents =
    { new IVsRunningDocTableEvents with
        member __.OnAfterFirstDocumentLock(_, _, _, _) = VSConstants.S_OK
        member __.OnBeforeLastDocumentUnlock(_, _, _, _) = VSConstants.S_OK
        member __.OnAfterSave _ = VSConstants.S_OK
        member __.OnAfterAttributeChange(_, _) = VSConstants.S_OK
        member __.OnBeforeDocumentWindowShow(docCookie, fFirstShow, pFrame) =
            VSConstants.S_OK
        member __.OnAfterDocumentWindowHide(_, _) = VSConstants.S_OK }

let vsRunningDocumentTable = Package.GetGlobalService(typeof<SVsRunningDocumentTable>) :?> IVsRunningDocumentTable
let sinkCookie = ref 0u
do vsRunningDocumentTable.AdviseRunningDocTableEvents(runningDocumentTableEvents, sinkCookie) |> ignore

Then invoked "Navigate To" to a symbol defined in a opened file. OnBeforeDocumentWindowShow was called 7 times (hm...), all the call stacks are here
https://gist.github.com/vasily-kirichenko/d9960d2f44b1a1db009941928a438e82

Take a look at OnAfterFirstDocumentLock when dwEditLocks + dwReadLocks = 1, and see what the other parameters are.

When the first copy is opening:

It does not trigger at all when the second copy is opening.

Hmm - not sure what might be going on.  Are you able to debug the Roslyn bits?  Can you see if there are any differences in TryGetFrame()?
Beyond that - is the F# project system involved in either of the two calls invoked from that method?

No, I cannot debug Roslyn sources.
About F# project system, I think everything we do when a document is opening is in this method https://github.com/Microsoft/visualfsharp/blob/master/vsintegration/src/FSharp.Editor/Common/LanguageService.fs#L318 I'm not sure we do everything right there.

@vasily-kirichenko can you confirm this has been fixed by #2185 and if so close - thanks

Yes, I cannot reproduce it anymore.


buildDocumentation fails

Trying to run buildDocumentation in generate.fsx fails with:
Generating 'C:\Users\hal\Dropbox\Development\GenPres\docs\tools..\content/index.html'
System.TypeLoadException: Method 'get_LineCount' in type 'lexer@289' from assembly 'FSharp.CodeFormat, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' does not have an implementation.
at FSharp.CodeFormat.CodeFormatAgent.ParseSource(String file, String source, FSharpOption1 options, FSharpOption1 defines) in c:\Tomas\FSharp.Formatting\src\FSharp.CodeFormat\CodeFormatAgent.fs:line 389
at FSharp.Literate.ParseScript.parseScriptFile(String file, String content, CompilerContext ctx) in c:\Tomas\FSharp.Formatting\src\FSharp.Literate\ParseScript.fs:line 197
at FSharp.Literate.Literate.ParseScriptFile[d](String path, FSharpOption1 formatAgent, FSharpOption1 compilerOptions, FSharpOption1 definedSymbols, FSharpOption1 references, FSharpOption1 fsiEvaluator) in c:\Tomas\FSharp.Formatting\src\FSharp.Literate\Main.fs:line 62    at FSharp.Literate.Literate.ProcessScriptFile(String input, FSharpOption1 templateFile, FSharpOption1 output, FSharpOption1 format, FSharpOption1 formatAgent, FSharpOption1 prefix, FSharpOption1 compilerOptions, FSharpOption1 lineNumbers, FSharpOption1 references, FSharpOption1 fsiEvaluator, FSharpOption1 replacements, FSharpOption1 includeSource, FSharpOption1 layoutRoots, FSharpOption1 generateAnchors, FSharpOption1 assemblyReferences) in c:\Tomas\FSharp.Formatting\src\FSharp.Literate\Main.fs:line 152    at <StartupCode$FSharp-Literate>.$Main.processScriptFile@167.Invoke(String file, String output) in c:\Tomas\FSharp.Formatting\src\FSharp.Literate\Main.fs:line 167    at <StartupCode$FSharp-Literate>.$Main.processDirectory@180(FSharpOption1 format, Boolean processRecursive, FSharpFunc2 processScriptFile, FSharpFunc2 processMarkdown, String indir, String outdir) in c:\Tomas\FSharp.Formatting\src\FSharp.Literate\Main.fs:line 198
at FSharp.Literate.Literate.ProcessDirectory(String inputDirectory, FSharpOption1 templateFile, FSharpOption1 outputDirectory, FSharpOption1 format, FSharpOption1 formatAgent, FSharpOption1 prefix, FSharpOption1 compilerOptions, FSharpOption1 lineNumbers, FSharpOption1 references, FSharpOption1 fsiEvaluator, FSharpOption1 replacements, FSharpOption1 includeSource, FSharpOption1 layoutRoots, FSharpOption1 generateAnchors, FSharpOption1 assemblyReferences, FSharpOption`1 processRecursive) in c:\Tomas\FSharp.Formatting\src\FSharp.Literate\Main.fs:line 164
at FSI_0004.buildDocumentation() in C:\Users\hal\Dropbox\Development\GenPres\docs\tools\generate.fsx:line 123
at <StartupCode$FSI_0007>.$FSI_0007.main@()
Stopped due to error

Not sure what this error means.

Probably it doesn't have a proper implementation of LexerBase. However, as far as I can tell all the dependencies are in place.

Try looking into #277.

I did, I pinpointed the powertools version but still, no result:
NUGET
remote: https://www.nuget.org/api/v2
specs:
AutoMapper (3.3.1)
Deedle (1.0.6)
FSharp.Data (2.0.14)
Ext.Direct.Mvc4 (3.0.2)
Microsoft.AspNet.Mvc (>= 4.0.20710.0)
Newtonsoft.Json (>= 4.5.11)
FAKE (3.27.5)
Faker.Net (1.0.3)
FsCheck (2.0.0)
FSharp.Core (>= <IP_ADDRESS>)
FSharp.Compiler.Service (0.0.87)
FSharp.Core (<IP_ADDRESS>)
FSharp.Data (2.0.14)
Zlib.Portable (>= 1.10.0) - framework: portable-net40+sl50+wp80+win80
FSharp.Formatting (2.8.0)
FSharp.Compiler.Service (>= 0.0.86)
FSharpVSPowerTools.Core (>= 1.7.0)
FSharpVSPowerTools.Core (1.8.0)
FSharp.Compiler.Service (>= 0.0.87)

As the fix is not jet released (if I'm not mistaken) you need to use
nuget FSharpVSPowerTools.Core == 1.7.0

Currently you use FSharpVSPowerTools.Core (1.8.0)

I tried both. However, I discovered that changing the paket dependency file is not enough, you also need to delete the lock file and then run the paket install again to get to the right package. Now, everything runs fine indeed. Thanks.

Good to hear :). Normally I run paket update after changing the dependency file.

as described in the Paket issue. Running paket install should be enough, but I assume there is a bug.  I will try to fix it as soon as I get the data.

Oh, thanks for the clarification.

the bug is fixed in Paket 0.41.3


GitHubSource does not have a ready column

Expected Behavior
kubectl get mygithubsource gives ready status.
Actual Behavior
it does not.
We need to update the CRD to match other knative resources for custom columns.
/good-first-issue

/kind good-first-issue

/close
fixed.


No TTS Sound in HL2

Hey!
I pulled your project, imported it into Unity 2018.4.14f1 and tried it out with a HL2.
I get the playback sound from the tts in the unity editor but not in the HL2.
ping and hover sounds works.
It says "connection failure"
hope you can help me.
greetings.

Which version of the speech SDK are you using? It's possible that the latest version has issues in this older version of Unity. I'm not actively developing this right now but I have plans to revisit it, upgrade everything, and add features when I find the free cycles that the pandemic took away.

I can close it already. You were absolutely right! I updated the version to the latest speech sdk and it works like a dream.
Thank you very much :-)


Multiple Editors and Link Editing

Hi,
first of all let me thank you for this piece of code that I intend to use, and hopefully contribute to make it better.
I have 2 fields on a form that require html editing for simple things, bold, link editing, and not much more.
Getting the link editing to work on one editor was hard enough, having to make sure the input doesnt auto-close on focus, and other small bugs/issues.
But as soon as I added the second editor, I noticed that pressing the Bold button on editor 2 would also affect text on editor 1. It was also impossible for me to make the add link button work on editor 2.
Can you replicate this behavior on your side? Do you know its root causes? Is there a quick fix, or a bug fix on the horizon for it?
Tell me how I can help.
Thank you very much.

This bug is known. I originally mentioned it on issue #31. To my knowledge a bug fix has not been started. I'd have to review the code again but I believe all that would have to be done is get which editor the user is typing in and assign that to a variable. Then use that variable too apply the change only to that editor.

The problem seems to be solved very easy. The bindToolbar function gets an array of toolbars, because the query dont include the target attribute. Just include it and it should work (I didnt test it). That should also solve your bug in #31. Both editors bound both toolbars because jquery can handle arrays.

Thanks for the suggestion - let me see if that does indeed fix it.


COMPLETING argument menu shown even when only one completion on paths that start ~/

What happened, and what did you expect to happen?
I typed a path prefix and hit TAB.  There is only one completion, and it did complete on the command line, but it left the COPMPLETING argument menu up with a single entry.
Rather than simply continue typing the path, I had to hit ENTER to accept the menu.  This seems non-ergonomic to me, as what else could I want, except the single matching path?
it23677> cd ~/vc/agr-d
<TAB>

it23677> cd /home/guestsi/vc/agr-devops/
 COMPLETING argument
/home/guestsi/vc/agr-devops/

I expected not to have a menu to dismiss.
Output of "elvish -version"
0.20.1
Code of Conduct

[X] I agree to follow Elvish's Code of Conduct.

I note that if I backspace-delete some characters and hit TAB again, so long as there is only a single completion possible, it does what I expected it to do in the first place, and completes without showing the single-entry menu.
Once I start a new command line, the completion engine goes back to the behaviour of always showing the menu.

This is a duplicate of #474.

I think it is not in fact a duplicate of that issue, although a comment made on that issue observes the same behaviour.
But different issues I think. Perhaps that comment specifically about the menu belongs in this issue. 😁

Hmm, I guess I was a bit hasty there. Not enough caffeine yet.
However, if the not-quite-duplicate is fixed, then the current issue is moot.
A related issue that I think has been discussed in the forum but perhaps not  on github, is that you also get a completion menu when the completion is unique, but does not match the case of what you typed. As in search for foo, and get Foo as the unique completion. But I think that makes a bit more sense, at least on case sensitive filesystem.

I think the right fix for the other issue is to produce completion(s) without expanding tilde, right? If that avoids the menu in this case, then yes, great solution.
Thanks for your insight here. 😊


unknown type thread_local using VS 2013

Similar to issue #87 there is an error during the (VS2013) compilation of the crashhandler_windows.cpp, thread_local is an unknown type. Including g3log/g3log.hpp fixes the error.

Please open up a pull request

Sorry for my late answer. I will create the pull req as soon as I have some time to do it, hopefully in this week.

pending to be closed

resolved in https://github.com/KjellKod/g3log/pull/273#pullrequestreview-131003348


Generate Histogram for NED layer

To archive our discussion: In order to use S3LayerReader you must add a dependency on "com.azavea.geotrellis? %% "geotrellis-s3" % Version.scala. The s3 classes are not part of "geotrellis-spark" because there is a potential conflict in amazon AWS client dependency.

import the basic formats that come from 'spray.json.DefaultJsonProtocol._'

This is good, the histogram has been generated and saved to s3://osm-elevation/catalog. I think we may need to use it to color the road network correctly. Otherwise this is good, merging.


Allow to override image name for operator and to set nodeSelector

[ ] Configuration Infrastructure
[ ] Docs
[x] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[x] Does not have any changes that may affect Istio users.
This small tweak for Helm chart for istio-operator allows to change image name (ie. from "operator" to "istio-operator") that it might be important when operator is installed from mirrored image (ie. because of introduced docker.io limits).
Additional change is to allow to set nodeSelector for istio-operator deployment, which might be required in some cluster setups.

Hi @dex4er. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@googlebot I signed it!

Hi Piotr, sorry that this fell through the cracks. I only noticed it now as I was going through the backlog.
I'm not sure that for such a simple manifest we really need to add parameters to the charts. It's probably easy enough for users to edit the output manifest to taste. We went through adding just about every possible parameter into the main istio charts and it created a real headache since it was done in an uncoordinated way and I want to avoid doing that again.
Having said that I'd like to also hear from @sdake and/or @costinm.

@ostromart I use this Helm chart already with my customization. I just hoped I can work with out-of-the-box chart rather than modify manifests/charts/istio-operator every time there is new update.
As far as Istio 1.8 can be installed with Helm directly I don't care anymore about Istio operator. You can close the issue if you don't want to make the operator's users happy.


CI setup and NuGet packages

Hey,
I was wondering if you would be interested by a PR to setup a CI for this project (on AppVeyor or on Azure DevOPs) and a way to automatically publish a NuGet package easily (when you push a tag with a version number)
Let me know

Yes, you can do that. I don't have a nuget account yet though.
I already use AppVeyor: https://ci.appveyor.com/project/0xd4d/iced
The only problem at the moment is that it doesn't run the unit tests because xunit must use the -noappdomain command line switch and their version doesn't seem to support it.

Yes, you can do that. I don't have a nuget account yet though.

Could you create a nuget account? After this, you can an api_key from nuget that you will be able to put in your appveyor.yml config (it's encrypted with your appveyor account so nobody can use it except you)

I already use AppVeyor: https://ci.appveyor.com/project/0xd4d/iced

Great, you can export your setup to yml already and commit it as part of the repo (appveyor.yml)

The only problem at the moment is that it doesn't run the unit tests because xunit must use the -noappdomain command line switch and their version doesn't seem to support it.

Hm, why do you require this? I can run dotnet tests on iced without any failure here

I've added appveyor.yml

Hm, why do you require this? I can run dotnet tests on iced without any failure here

I think dotnet tests uses .NET Core which doesn't have AppDomains. xunit on .NET Framework defaults to using AppDomains which makes running all tests very slow due to serialization and deserialization.

I have been able to run the tests locally with a particular config. I have pushed a PR #11 to try this on appveyor, let's see.

It seems that you need to validate this appveyor build

How do I do that? Seems like it worked (Build Success), but it's still yellow for some reason.

How do I do that? Seems like it worked (Build Success), but it's still yellow for some reason.

You need probably to go to the appveyor (with you logged-in) and you should be able to launch the build manually at least. I have never done this on appveyor, but it should be possible directly there

Your first build got green after 10 mins 6 s, it could be related to the many test cases, it wants to display everything under the tests tab, even if it passed. It stops after 30K test cases.

han yes, maybe, never tried to run so many tests on appveyor actually 😅

ok, it seems all green now

Does dotnet test -c produce some xml file that is later read by appveyor? If that can be disabled, this long wait can probably be disabled, docs: https://www.appveyor.com/docs/running-tests/#calling-test-runners-from-your-custom-scripts

Yes, you can do that. I don't have a nuget account yet though.

can you create it? we would be able to make Iced available on NuGet 😉

I just have to add one more breaking change and make the MemorySize prop read only too, should be fixed by tomorrow and then I'll add a 0.9 preview nuget package.

Done.


Add integration with boardgame API

Set up API integration for retrieving board game information from external sources (e.g., BoardGameGeek API) or Ludopedia

Example of create new log play on BGG API:
curl -b $cookiefile --request POST 'https://www.boardgamegeek.com/geekplay.php' -d "ajax=1&action=save&objecttype=thing&objectid=$objectid&playdate=$geekdate&location=$location&quantity=$quantity

BGG Forum Log play thread: https://boardgamegeek.com/thread/1531606/log-play-via-api

BGG API Doc: https://boardgamegeek.com/wiki/page/BGG_XML_API2
BGG API Tools: https://boardgamegeek.com/guild/1229
Request examples:

https://boardgamegeek.com/xmlapi2/plays?username=bmattoso
https://boardgamegeek.com/xmlapi2/thing?id=167791
https://boardgamegeek.com/xmlapi2/thing?id=394897


get_queryset sends additional parameter self of type Field which it shouldnt

when we have custom get_queryset classmethod we should receive 2 parameters queryset and info but instead we receive
Field, queryset and info
Bug can described with an exmple from
https://github.com/blb-ventures/strawberry-django-plus/blob/main/demo/schema.py
@gql.django.type(UserModel)
class StaffType(relay.Node):
    username: gql.auto
    email: gql.auto
    is_active: gql.auto
    is_superuser: gql.auto
    is_staff: gql.auto

    id_attr = "username"

    @classmethod
    def get_queryset(cls, queryset: QuerySet[AbstractUser], info: Info) -> QuerySet[AbstractUser]:
        return queryset.filter(is_staff=True)

@gql.type
class Query:
    """All available queries for this schema."""

    node: Optional[gql.Node] = gql.django.node()
    staff: Optional[StaffType] = gql.django.node()
    staff_list: List[StaffType] = gql.django.node()
    staffs: List[StaffType] = gql.django.field()
    staff_conn: relay.Connection[StaffType] = gql.django.connection()

added a new query
staffs: List[StaffType] = gql.django.field()
in to the demo example
now, we have 'staffs' which is List and 'staff_conn' which is of type relay.Connection
so when we call staffs
{
  staffs{
    id
    username
    isStaff
  }
}

we get
TypeError: StaffType.get_queryset() takes 3 positional arguments but 4 were given
issue seems to be in
https://github.com/strawberry-graphql/strawberry-graphql-django/blob/main/strawberry_django/fields/field.py
def get_queryset(self, queryset, info, order=UNSET, **kwargs):
        type_ = self.type or self.child.type
        type_ = utils.unwrap_type(type_)
        get_queryset = getattr(type_, "get_queryset", None)
        if get_queryset:
            queryset = get_queryset(self, queryset, info, **kwargs)
        return super().get_queryset(queryset, info, order=order, **kwargs)

queryset = get_queryset(self, queryset, info, **kwargs)
get_queryset is passing self which it shouldn't, it should be
queryset = get_queryset(queryset, info, **kwargs)
I will raise a PR soon.

I guess this issue can be closed?

Yes! :)


Design: s3 storage authentication in aws gov cloud

@weshayutin   @kaovilai  I am setting up the aws gov cloud environment for QE automation,
Could you please confirm

if the region "us-gov-west-1" will work here or do we need to use any other specific region?
Do we need a normal aws cluster or sts enable aws cluster for the same?

Thanks

assumption is this works due to existing usage at https://github.com/vmware-tanzu/velero/issues/3616


When running 3 tests in a row the middle test is being run twice

Steps to reproduce
I have 3 tests that I'm running via the following command:
patrol test \
  --target integration_test/login_test.dart \
  --target integration_test/explore_team_test.dart \
  --target integration_test/logout_test.dart

I would expect each test to be run one time.
Actual results
For some reason the 2nd test (explore_team_test.dart) gets run twice every time. If I go to test_bundle.dart the generated test groups look okay:
  group('login_test', login_test.main);
  group('explore_team_test', explore_team_test.main);
  group('logout_test', logout_test.main);

And the log output seems fine, however, if you watch the tests being run on the device the 2nd test is run twice while the other 2 are only run once.
Logs

Logs
Here are the relevant logs. It actually only shows the middle test being run once, but if you want it run on the device it will go through it twice. Note: the middle test in this example is explore_team_test.
        :
        : > Task :app:connectedDevelopmentDebugAndroidTest
        : Starting 3 tests on Pixel 7 - 14
        :
        : com.sportsvisio.svhoops.MainActivityTest > runDartTest[login_test login][Pixel 7 - 14] FAILED
        :       java.lang.AssertionError: Dart test failed: login_test login
        :       ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞═════════════════
        :
        : com.sportsvisio.svhoops.MainActivityTest > runDartTest[explore_team_test Search for a team][Pixel 7 - 14] FAILED
        :       java.lang.AssertionError: Dart test failed: explore_team_test Search for a team
        :       ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞═════════════════
        :
        : com.sportsvisio.svhoops.MainActivityTest > runDartTest[logout_test logout][Pixel 7 - 14] FAILED
        :       java.lang.AssertionError: Dart test failed: logout_test logout
        :       ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞═════════════════
        : Tests on Pixel 7 - 14 failed: There was 3 failure(s).
        :
        : > Task :app:connectedDevelopmentDebugAndroidTest FAILED

        FAILURE: Build failed with an exception.

        * What went wrong:
        Execution failed for task ':app:connectedDevelopmentDebugAndroidTest'.
        See the report at: file:///Users/mike/SportsVisioProjects/sv-hoops/build/app/reports/androidTests/connected/flavors/development/index.html

        * Try:
        > Run with --stacktrace option to get the stack trace.
        > Run with --info or --debug option to get more log output.
        > Run with --scan to get full insights.

        * Get more help at https://help.gradle.org

        BUILD FAILED in 2m 46s
        : 580 actionable tasks: 8 executed, 572 up-to-date

Patrol version
patrol: ^2.3.1
Patrol Doctor output

Patrol Doctor output
In next major release, patrolTest method will be intended for UI tests.
If you want to use Patrol in your widget tests, use patrol_finders package.

For more information, see https://patrol.leancode.co/patrol-finders-release
Disable this warning by setting the PATROL_FINDERS environment variable.

Patrol CLI version: 2.2.2
Program adb found in /Users/mike/Library/Android/sdk/platform-tools/adb
Env var $ANDROID_HOME is not set
Program xcodebuild found in /usr/bin/xcodebuild
Program ideviceinstaller not found (install with `brew install ideviceinstaller`)

Flutter Doctor output

Flutter Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.13.9, on macOS 12.6.7 21G651 darwin-x64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.3)
[✓] Connected device (3 available)
[✓] Network resources

• No issues found!

This issue is not reproducible.
Please provide accurate reproduction steps or we'll have to close it.

Maybe something strange with my setup. I will close for now.


Add back scoped packages downloads

We could get all the scoped packages when iterating, and then after we downloaded the other ones in batches, get the scoped downloads

Sorry thought I had alreayd provided a solution. The fix to this is when we have 200 packages (mix of scoped and not scoped), we should sort them this way:
['@scoped/test', '@scoped/yolo', ['noscoped', 'notscoped2']];
// or
{
  scoped: ...,
  unscoped: ...
}

Then in the download code, make single requests (but in parallel) and multiple requests for unscoped.
Good?

Second option seems cleaner IMO

Ok, what I want to avoid is slowing down the indexing, since it's totally OK to do lot of requests in parallel


Styleguide: Forms: Help Text/Icons

Document Form Help Text used within the app in a styleguide section
This includes:

Header Help Text
Label Help Text/Icons
Field Help Text/Icons

Refactor/cleanup help text where necessary.
Add:

define a FormHelp.scss
define a FormHelp.js in /styleguide/components/sections

Styleguide Index: #884
reference #877

Mockup done, closing this issue for now, implementing any changes will need to be case by case.
https://github.com/linode/manager/issues/1058

Still need to add examples to styleguide.


Allow loading mods from version-specified directory i.e. mods/1.13-Rift

Let Rift to try loading mods form the mods/"version"-Rift folder. If empty, fall back to "mods/" instead.
p.s. I removed the "final" flag from variable modsDir, not sure if there are any consequences.

See #43.


Implement ValidateAllTerraformModules function

We need an easy way to generate a single test that runs validate
It should always expand to catch all examples and modules

Relates to https://github.com/gruntwork-io/prototypes/pull/175

Thanks for the detailed review @yorinasub17! Will implement your feedback.

Code LGTM... And I like the unit tests for FindTerraformModulePathsInRoot... But are there no tests for ValidateAllTerraformModules itself? We probably want some tests to check that it works on valid code and returns an error on invalid code. And, perhaps, we should call it on all the Terraform code in the Terratest repo itself?

Thanks! Will add unit tests for ValidateAllTerraformModules and perhaps a separate one that calls ValidateAllTerraformModules against the Terratest repo root itself.

Added more unit test coverage in f3c1f44 and began running ValidateAllTerraformModules on Terratest itself. As noted in the commit message, we don't currently have a good way to prove that invalid Terraform code is caught by ValidateAllTerraformModules because of the method's use of require.NoError however we can be pretty confident given that we see validation failures when it's run against repos and it is a thin wrapper around Terraform init and validate and it fails as expected in local testing against invalid modules.


Ensure age-length compatibility with associated R-code

EchoPro lumped all abundance and biomass values at $\alpha > 20$ into $\alpha = 20$, whereas Echopop simply removes all values that fall outside of the age_len_bin defined in the configuration *.yaml. This change in shape may cause problems with the R functions used by the NWFSC stock assessment folks since the number of columns is not the same as the EchoPro reports.

Several compatibility issues in the pull_surveyageproportions R code have been identified that raise a few errors.
Issues

For abundance, the function searches over column "0" which does not exist in the Echopop report output since a) age-0 fish fall outside the defined age-bins in age_len_bin and b) it did not make sense to include this since the 0 intersects with the row names that are not ages but instead lengths. However, excluding this age header prevents the Subtotal row from being parsed. This enables the pull_surveyageproportions function to work correctly.

[ ] Force-add 0 to the column names underneath the Length (cm) header and above the first length bin value [this seems very error-prone, so exact formatting is required here]

The pull_surveyageproportions specifically defines sheet = 3 in the readxl::read_excel call. This presumably means that this is supposed to read in the sex="all" data since there is no reference to sex anywhere else in the *.R file. Is that correct @rebeccathomas-NOAA?

[ ] Force the order of sheetnames to not be written in alphabetical order [this seems very error-prone, so exact formatting is required here]

Non-issues
It does not appear that $\alpha > 20$ causes issues here since the calc_proportions function internally cuts off any values at $\alpha > 15$ anyway by default (via the argument maxcol=15). The calc_proportions function would yield a vector of NA values regardless when maxcol is set to the column index corresponding to the maximum $\alpha$ + 1. So if column 20 is $\alpha = 20$, then maxcol=21 would yield a vector filled with NA. Therefore, it including $\alpha > 20$ within the table does not change the underlying behavior of the calc_proportions or pull_surveyageproportions functions.

Force the order of sheetnames to not be written in alphabetical order [this seems very error-prone, so exact formatting is required here]

This has been incorporated into the associated fix_report_format_issues in my fork.

Force-add 0 to the column names underneath the Length (cm) header and above the first length bin value [this seems very error-prone, so exact formatting is required here]

This has been incorporated into the associated fix_report_format_issues in my fork. I will hold off on creating a PR until lingering questions have been answered.

I just reviewed an email from stock assessment from 2023 that stated exactly what they read in. Basically, they read in that abundance table for each year, the biodata_specimen table, and then a spreadsheet that we fill out (e.g. has biomass that we put into it).  I'll forward the email to you so that you can see it as well.  (There's also age-1 stuff and some haul number stuff, but that's also extra).

Also, I might be misunderstanding, but I think the column that starts with 0 is the column with the length bins in it, not an age-0 column, so that might all be okay?

@rebeccathomas-NOAA

Also, I might be misunderstanding, but I think the column that starts with 0 is the column with the length bins in it, not an age-0 column, so that might all be okay?

I suppose that could make sense; my statement was based on how it is formatted in pull_surveyageproportions which yields the following tibble:
> ages
# A tibble: 45 × 25
   `0`     `1`   `2` `3`     `4`   `5` `6`     `7`   `8` `9`    `10`  `11`  `12`  `13`  `14`  `15`  `16`  `17`  `18`  `19`  `20`  `21`  `22` `Un-aged`  Subtotal
   <chr> <dbl> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>     <dbl>     <dbl>
 1 2         0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 2 4         0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 3 6         0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 4 8         0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 5 10        0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 6 12        0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 7 14        0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 8 16        0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 9 18        0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0   179848.   179848.
10 20        0     0 0         0     0 0         0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0 42450171. 42450171.
# ℹ 35 more rows
# ℹ Use `print(n = ...)` to see more rows

Versus the output when that cell is left blank (which is what Echopop currently does):
# A tibble: 45 × 25
   ...1    `1`   `2` `3`     `4`   `5`   `6`   `7`   `8` `9`    `10`  `11`  `12`  `13`  `14`  `15`  `16`  `17`  `18`  `19`  `20`  `21`  `22` `Un-aged`  Subtotal
   <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>     <dbl>     <dbl>
 1 2         0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 2 4         0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 3 6         0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 4 8         0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 5 10        0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 6 12        0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 7 14        0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 8 16        0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0        0         0
 9 18        0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0    97826.    97826.
10 20        0     0 0         0     0     0     0     0 0         0     0     0     0     0     0     0     0     0     0     0     0     0 22933730. 22933730.
# ℹ 35 more rows
# ℹ Use `print(n = ...)` to see more rows

So in the latter case, ages$"0" doesn't work since the column isn't called "0" and is instead assigned the typical default ..1.

Makes sense!

Not sure how to link to your question about sheet 3 and sex="all", but yes, stock assessment would want to bring in the sheet with all sexes.


[PROFILE REVIEW]

GitHub Profile Link:-
MizouziE
You can also join our Discord community here
Feel free to check out other cool repositories of the Open Source Community here

Hey @MizouziE
Make the following changes:

Remove the code and write your bio in simple English language
Add a repo in your pinned repos section
Align stats cards side by side
Focus a little more on code reviews


Existing Section Updates

[x] Replace Gitter with Element.io on Intro Slide
[x] Redo whole Gitter Slides
[x] Add TPV Project

https://total-perspective-vortex.readthedocs.io/en/latest/

[x] Add Gravity.
[x] Mention make format in code formatting.
[x] Redo Package Structure

[x] Drop Aspirational Comment.
[x] Drop containers package
[x] Add files package.

[x] Redo package structure files… a lot was merged into setup.cfg
[x] Add Services To Data Flow Diagram
Add a middleware section for ASGI
[x] Models and Managers needs to be Services, Managers, and Models
[x] Redo model migration
[x] Redo managers slides for separation.
[x] Drop Interactive Environments

Add A Whole Section on MQ, Tasks, Celery

Outlined at https://docs.google.com/presentation/d/1LfbZwMEnK1k0uqj2oGuwMyp6Kku6svKi4kXjMr1yGzM/edit#slide=id.p

@jmchilton what would you think of splitting these into the broad subsections you're already using for the recordings?
I think it might make it more accessible to folks looking for a specific part of the slides but might not want to look through a 200 slide slidedeck (or realise their topic is covered)

@jdavcs and I discussed breaking this up... I'm uneasy but willing to do this potentially. That said I think we agreed doing this prior to the GCC this year would be too much and there isn't enough time.

Sounds good, something for another year then! Thanks for the response @jmchilton  :)


chore: include e2e folder in lint:ts

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Includes the e2e folder in the lint:ts check so that we can catch typecheck errors in CI.

@Sembauke changes are good for now. I'll look into updating the types in the future.


How can I retrain this model?

Very cool stuff! However, this repo only contains code for testing. Could you please add some comments on readme about how to retrain this model?

Hello,
One can use the code released by authors of EDSR (https://github.com/thstkdgus35/EDSR-PyTorch) to reproduce the results. Run the code following the format in - (https://github.com/thstkdgus35/EDSR-PyTorch/blob/master/src/demo.sh). We used the following training options, --template GAN,  --gan_k 2, --res_scale 0.1, --patch_size 192, and  --loss p1VGG54+p2GAN+p3*MSE. The actual parameters used in our experiments can be found in our paper.

Thanks!

Are the values of these parameters the same as the one you used for region 1 of PIRM2018?

Also, which pre-trained model file do I supply for weight initialization if I'm retraining EPSR (region 1) from the EDSR repo?

Are the values of these parameters the same as the one you used for region 1 of PIRM2018? I am asking because these values do not match the default values of options.py in this repo.

Yes. The parameter values of my experiments are mentioned in the paper

Also, which pre-trained model file do I supply for weight initialization if I'm retraining EPSR (region 1) from the EDSR repo?

I have mentioned it in the paper, "we initialized the model weights of generator using pre-trained weights of EDSR
(obtained by training EDSR with λ1 = λ3 = 0)." You can either use the pretrained weights supplied by authors of EDSR (this should be easy to find out), or else train EDSR with this settings by urself and then use those weights.


[stress testing][s] Add log count/usage widget to stress insights dashboard

This will help us track any tests that have runaway log volume which may add significantly to our cost.
aka.ms/azsdk/stress/dashboard

Do you (or @ckairen) have some special handling for "the cluster has ingested too much data at once" alert? Or is it just the general email that goes to everyone?

Already fixed by @benbp last week.


BCH stuck in "Unverified" status

I recently switched from mining BTC to mining BCH at Antpool.  My payments (BCH) all show as going out as normal (as it did with bitcoin), but they never show up in my "Electon Cash" wallet.  Every now and then I will see (during a sync I guess) that the transactions are showing up as "unverified" deposits but disappear shortly after they appear.  Can you offer any explanation as to what is going on?  Why don't the "unverified" deposits show continuously on in the "Electron Cash" history? I am attaching a screenshot that I managed to capture one time before it disappeared.  I will also include below the transactions.  Thank you for any help you can offer.
d798c8abb7dd32e4f626a2a0c26aadd40fc9e8f953cd61e39bf17eb118190b47
049e3e4136c479b8f2ff508e4e726dfe2b3110b2d7c6f0f03e3a4b5cf68625bd
7500eb308d015f83e9508477f0e21f7345806d0721df0d99346d272c53ca0f80
52108788ca536e36d673e0c35c6b971c240acb2f3aca9db2e38ac3294170626f
363b94cc8ef34906faeeccd62de0986ac769945e66a89736def298adfd5e9720
5fe10995f72dba93a6937f873b9eee61f43b6ee8482ccaa84dbc0ecb75bc5b49
635e142411d022d151f5a1f1461e081d02c052b603d5a0616f0f582cae4e07c6

@TexasMiner I don't have a lot of experience mining myself, so I may be unable to help you, but I see noone else has replied. Are you still experiencing the issue? I loaded the first txid you posted,  d798c8abb7dd32e4f626a2a0c26aadd40fc9e8f953cd61e39bf17eb118190b47, and I am seeing >500 confirmations, so the coins should be yours. Also what version of electron cash are you using?
https://blockchair.com/bitcoin-cash/transaction/d798c8abb7dd32e4f626a2a0c26aadd40fc9e8f953cd61e39bf17eb118190b47

Yes, I have seen that also.  When I switched my wallet to Jaxx, the deposits hit as normal.  I have used antpool and electrum  for bitcoin for a long time, but when I switched it to BCH at antpool and used electron cash as my wallet, I never saw a deposit.  the only way I ever even see the "unverified" as seen below, is when I select electron-ABC-cryptolayer.net as the server.  then I at least see the "unverfied" transactions.  otherwise I never even see that. If I put the server on autoselect, the "unverifieds" dissapear from view.   It is a bit of money so I feel it is worth pursuing.    I also included my son's "Electron wallet".  it did the same thing.  We have used the wallet for other things before but this is not working.  Thanks for your input and concern.

If you cant ask for support here, where do you go for Electron cash support?


Create malicious_file_from_greyhat_frog

Uh oh look out, Mr. Greyhat Frog is testing your repo security!

Not today, @greyhat-frog


Discrepancy with total # facilities on the OS Hub staging site

On OS Hub staging there are ~85,000 in total, but when you filter to only apparel sector value it drops to 75752.
Justin response / context: Searching comes from an index of the sector information. This may need to investigate the root cause to update the indexing of that particular item
cc: @obrienad @jwalgran

The 1-point estimate is to research if reindexing will resolve the issue. If there is a larger underlying problem create a followup issue with a separate estimate.

#1966 has been deployed and I ran the new index_sectors management command. These numbers are much closer now
No filter: 89149
Selecting all available sectors: 89092
I expect the additional change as part of #1964 to address the remainder

The discrepancy in the number does match the count of facilities that do not have any sector in the index.

opensupplyhub=> select count(*) from   api_facilityindex  where sector = '{}' and id in (select id from api_facility);
 count
-------
    57
(1 row)


Add error snackbar for API errors

Currently, the user will be not be alerted when API requests return an error. Instead, we should surface an error snackbar (https://material-ui.com/components/snackbars/) with a description of the error.

Hi 👋,
I'd like to contribute to your repo. Is it the fetching done in the Dashboard? I noticed there's no .catch function.
I also see you changed the issue title from something that mentioned Context. Do you have anything specific in mind in regards to showing this snackbar?
Appreciate your response in advance!


sbt won't start from directory with spaces in path

I installed http://scalasbt.artifactoryonline.com/scalasbt/sbt-native-packages/org/scala-sbt/sbt/0.13.0-RC2/sbt.msi to "c:\Program Files (x86)\sbt"
Using cygwin bash i executed
C:\Users\OlegYch>bash "/cygdrive/c/Program Files (x86)/sbt/bin/sbt"
/cygdrive/c/Program Files (x86)/sbt/bin/sbt: line 12: cd: /cygdrive/c/Program: No such file or directory
/cygdrive/c/Program Files (x86)/sbt/bin/sbt: line 55: /cygdrive/c/Users/OlegYch/sbt-launch-lib.bash: No such file or
directory                                                                                ```

I have the same issue with https://cocl.us/sbt01316msi and even with 1315. Tried both and always get this error message.


Error pane incorrectly rendering WARNs / ERRORs

The error plane is displaying the following as an ERROR, but the stream attributes are displaying it as a WARN.
WARN Map not found -
WARN No effective streams -
WARN - No effective streams in the returned set -
ERROR reference stream X has been loaded previously but failed

Fixed in b.178


Update short description and logo

Questions
Answers

Description?
Upgrade short description and logo

Type?
improvement

BC breaks?
no

Deprecations?
no

Fixed ticket?
Fixes https://github.com/PrestaShop/PrestaShop/issues/15858

How to test?
Please check that logo and short description are updated

Thanks @Julievrz


Submit thrift-parser to astexplorer

I've noticed that there are already some files to work with https://astexplorer.net/
If you don't mind I'd like to submit a PR to add thrift-parser to astexplorer, so it would be more convenient to use thrift-parser for developers.

https://github.com/fkling/astexplorer/pull/493


Settings dialog sizing

I've long had this issue and thought it was past time I reported it. I'm unsure if this is normal, but the settings dialog for the addon seems to be strangely sized. Text is very small and hard to read, and the settings do not fill the entire dialog. Here is a screenshot:

This is on firefox, currently nightly 78 but it's been around for some time.

Yes, since Firefox does not support wider dialog windows when hidden in menu and Midnight Lizard dialog is not responsive, I had no choice to scale it down. The only option to see it with a normal scale is to not hide Midnight Lizard icon in the menu.

Ahh I see what you mean. All my other addons either conform to the fixed width, or open in a separate tab or window.
I tried to unpin the Midnight Lizard icon from the overflow menu, and this was the result:

I cannot reproduce this. Will try more later on.

Just a thought: I looked at how my other addons were dealing with this and it was mostly dynamic layouts, but in your case I don't think you'd need to do anything that difficult.
The right side of the settings dialog is static, and I don't think you'd lose anything by moving it to the top or bottom. This would allow you to make it bigger so the text is readable. Since it's a dropdown, and four wide buttons, you could easily get it into one row (or two at most), rather than taking up such a large column.

Unfortunately it is not that simple in my case. There are also limits on popup height so I cannot increase it any more. The only way is to make it dynamic and show/hide different parts or completely remove all advanced options into a separate page. I have no plans on doing neither of it in the nearest future.

Perhaps they have removed the limitations on height, I have these, among others:

 Large images
![image](https://user-images.githubusercontent.com/58130821/81743611-4f796980-94e5-11ea-8946-08ea45dbe88c.png)

It only works when is hidden in menu. Otherwise it is limited to 800x600 px after witch scrollbars will be shown. But this behavior conflicts with UX recommendations for popups:

PS: Midnight Lizard popup height is exactly 600 px

Wow, that's very limiting, it's a shame FF works like that.
I hope you will consider a redesign in the near future so that the UI is readable.

I believe it is not related to FF, other browsers have the same restriction and it most likely OS wide and caused by minimum supported screen resolution (800x600).


Run Jobs inside Jobs

It would be cool to be able to run a Job inside of another Job (basically like it's a Task). For those of you not familiar with the insane jargon, I'm talking about a DAG that could look like, for a simple example:
Job 1: Task 1 -> Job 2 -> Task 2
Job 2: Task 3 -> Task 4
Job 1 would complete Task 1, start Job 2, monitor its completion status, and if it finishes successfully then proceed on to Task 2.
I think the first step is to make Jobs either scheduled or able to be called from inside other Jobs. There will be a lot of edge cases to argue about along the way.

so #160 is in, and I'm starting on "expanding" jobs into one giant graph (when the "snapshot" is initialized).
I'm thinking I'll need to add a predecessors(node) to py-dag in order to implement this. This is because, when we expand a JobTask, we need all of the JobTask's ind_nodes to have edges coming from the JobTask's predecessors ("parents", if this were a tree).
Also, I'd want to add another downstream function, downstreams_final(node) to get all of the nodes which ONLY don't have further nodes downstream (I assume downstream_all gets you all the nodes in between the current and the "final" downstreams as well)
I'm working on code now and it's actually fairly complex (like how does one merge the edge and node dictionaries properly? for example) so any thoughts are welcome.

let me revise that downstreams_final idea.
What's actually needed is all nodes in the DAG that have no downstreams. Not sure what a good name for this is, or if theres a canonical name.

Here's my first pass at coding it. This is untested, and will not run because I havent implemented some of the aforementioned functions (I decided to call that last one dag_ends() for the "ends" of a DAG). But you get the gist:
    def expand(self, dag=None):
        """
        This method takes some DAG object, and expands all the underlying
        tasks recursively:
            * Starting with ind_nodes, traverse the graph
            * If the node is expandable:
                * Call expand on the JobTask, save expanded version "Expanded"
                * Connect all parents of this JobTask to the ind_nodes of
                  "Expanded"
                * Get a list of all downstream nodes in "Expanded" that don't
                  have a downstream node, and add edges to all downstream
                  nodes of the JobTask.
            * Delete JobTask from graph
            * Continue traversing from the downstreams of the deleted JobTask
        """
        dag = dag.deepcopy()
        traversal_queue = [dag.tasks[t] for t in dag.ind_nodes()]
        expanded = []
        while traversal_queue:
            task = traversal_queue.pop()
            if self.implements_expandable(task) and task.name not in expanded:
                expanded.append(task.name)
                expanded = task.expand()

                # Empty Job expansion
                if not expanded:
                    pred = dag.predecessors(task.name)
                    children = dag.downstream(task.name)
                    [dag.add_edge(p, c) for p in pred for c in children]
                    dag.delete_task(task.name)
                    continue

                # Prepend all expanded task names with "<jobname>_" to prevent
                # task name conflicts
                [expanded.edit_task(t, {"name": "{0}_{1}".format(task.name, t)})
                 for t in expanded.tasks]

                # Merge node and edge dictionaries (creating 2 unconnected DAGs,
                # in one graph)
                final_dict = default_dict(list)
                for key,value in dag.graph:
                    final_dict[key].append[value]
                for key,value in expanded.graph:
                    final_dict[key].expand(value)
                dag.graph = final_dict

                # Add edges between predecessors and start nodes
                predecessors = dag.predecessors(task.name)
                start_nodes = expanded.ind_nodes()
                [dag.add_edge(p, s) for p in predecessors for s in start_nodes]

                # Add edges between the final downstreams and the child nodes
                final_tasks = expanded.dag_ends()
                children = dag.downstream(task.name)
                [dag.add_edge(f, c) for f in final_tasks for c in children]

                # Delete old reference
                dag.delete_node(task.name)

Also this is probably obvious, but I did a breadth-first traversal, not sure if there's any advantage over depth first, but its just hat my brain defaulted to

maybe it should be called end_nodes() which goes nicely with ind_nodes() which are basically the opposite concept (nodes with no incoming edges vs nodes with no outgoing edges)

I'm thinking I'll need to add a predecessors(node) to py-dag in order to implement this. This is because, when we expand a JobTask, we need all of the JobTask's ind_nodes to have edges coming from the JobTask's predecessors ("parents", if this were a tree).

This makes sense to me, if I remember the py-dag structure this should be pretty simple and hopefully O(n).

What's actually needed is all nodes in the DAG that have no downstreams. Not sure what a good name for this is, or if theres a canonical name.

I believe the standard term here is "leaf node." So maybe all_leaves?
Would review the actual code right now but my brain isn't having it, will take a stab at it tomorrow.

yeah, since the edges are stored in a map of Edge->list of edges, it can be done in O(n) simply by traversing the graph keys once

Thoughts after looking at the code:

Does the "prepend expanded tasks with _" thing allow us to have multiple instances of the same JobTask within the Job? Or do we need to add some sort of counter component to allow that?
Does edit_task do any database access or is it just an in-place object mutation?
I don't really understand what the "merge node and edge dictionaries" step is doing or why we need it.
It seems like this could traverse over the same JobTask multiple times if it has many parents, what is accounting for that?

By restriction of dagobah, we cannot have 2 tasks with the same name. So 2 of the same jobtasks would have to have different TASK names. So by prepending the child tasks with the task names, we ensure no name conflicts (mostly)
Good question, I'll need to look into it, but this should be a copy of the dag in any case. good eye though. I'm about to get off work so I'll check soon.
This is adding all of the tasks from the underlying jobtask's job to the current job
I think I need a bit more clarification on this?

RE # 4, I think I get it. The expanded_tasks list prevents re-expanding a task once it has been expanded once

so I realized last week that both the underlying DAG (the job.graph, in practice) and the task list need to be synced if we want to allow in place task expansion, and basically in this implementation, they are combined. I'm working on an actual PR now that will manage both basically, by adding a "snapshot_tasks" list just like we do with a snapshot of the DAG


Update menu with link to advent calendar

Desktop

On mobile

Summary by CodeRabbit

New Features

Introduced a new menu item, "Advent Calendar," linking to an external site.
Added optional link attributes for enhanced functionality.
Conditional display of the current date in the menu for December.

Bug Fixes

Improved readability and structure of the menu component templates.

Style

Updated spacing between navigation items for better visual alignment.

@Saamiyah I've removed the Meetup and Sponsors item from the menu temporarily because we will not have any meetups until the advent ends. Please create an issue to restore them on the 26th December 2024 and remove the advent calendar link. 🙏
merging now


Importing assets problem

Godot version
Godot v4.0 stable win64
System information
Windows 10
Issue description
Hello!
I created a report on 5th March, with title "Transient parent has another exclusive child"
The report is exactly this one: https://github.com/godotengine/godot/issues/74450
Well.... I've been investigating more about the issue. The main problem is that when I open Godot, about 15-20 seconds later a FBX2glTF pops up (I have never wanted to import anything, but that window appears always for any reason).
This is exactly the window appearing:

If I select Cancel, a little window appears, and then another bigger window appears aswell.
And those windows (with no text) remain loading there for ever, and nothing can be done in Godot, although the rest of the softwares work as always.
If I wanted to save a project, a "transient parent has another exclusive child" error appeared on the console. That's why I called the issue like that.
Well... That was what I reported firstly.
But now I've deleted every "godot" file in the computer, so maybe an older version was creating that issue.
And now... I see that the FBX2glTF appears again (with no reason) and on the little window now I've been able to read something....

The bigger window appeared again after the smaller one, and those windows remained there eternally.
But at least I had something new for further investigation.
So, I looked for the file "ufojbixl_1K_Specular.jpg" and this is what I've found:

The same thing happened in another test I did. In Godot, 15 seconds after opening, a FBX2glTF window appeared, and when canceling, the "(Re)importing assets" appeared, this time trying to importing a file called "slnnfac_Popup_3840_sp.jpg"
All these images come from a software called Quixel Mixer.
In summary.... for any reason, Godot insists on importing files from Quixel Mixer even if I haven't wanted to do that.
Why? I don't know. Do you know? I guess the solution is not difficult now: Uninstall QuixelMixer.
Surely that will make Godot to work as it should. But the root of the problem is still there: Why does it want to import images from third softwares which don't have anything to do with Godot?
I have to say that on the console, it also has some errors trying to read files from other softwares. Here the console log:

There are some issues with Unigine or CryEngine, but the big problem is the "Cannot open file ... cross_stitching.glsl" or "Cannot open file ... radial_blur.glsl".... Those were files from Albatross3D. I had to remove that software in order to get out of those errors.
But that's the main issue: Why do Godot try to open third parties files at the start, with no reason?
Please, save me from this nightmare! I want to test the new Godot 4.0! Thanks.
Steps to reproduce
Since there are third softwares implied, I don't know how it would be reproducible for people who want to find a solution for this issue.
Minimal reproduction project
N/A

The FBX issue is already reported and a fix will be in 4.0.1.
As for the rest - I think you made a project in your documents folder, not in a subfolder, therefore Godot is trying to import EVERYTHING in Documents folder

Thanks a lot @Zireael07 You're a lifesaver! :)
You're totally right. The project was located in the Documents folder. As feedback, I would propose (for dummies like me) some kind of "Hey... you're going to create a project in the Documents/Desktop folder... are you really sure?" Or a second option would be a console info saying "importing assets from C:\Users\username\documents", so if Godot freezes, at least you can see that problem goes from importing a huge amount of assets from Documents. But without help, it was a little hard to discover where the error comes from.
Thanks again! :)

IIRC it was suggested that Documents be totally disallowed as a project folder, but I can't find the issue #

@Zireael07 I support that proposal about disallowing Documents as a project folder (or if you select Documents, it may create a default folder inside Documents, kind of "New_Godot_Project_01" or something like that).


[VL] Include Velox code as git submodule

Description
We could include Velox codes as git submodule in Gluten like Presto-native-engine, benefits are:

easily change/lookup velox code in one project as well as one editor,
modify build type in one place.
make IDE debug works.

We initially plan to use submodule when we move to upstream Velox.
But since oap/Velox has less and less outstanding PRs. We can move earlier. @zhouyuan
@zhli1142015 @ulysses-you @jackylee-ch @kecookier @WangGuangxin

+1 to use git submodule


Home: Set overflow-y to auto for scrolling on small windows

For example, my cell phone screen is not big enough to see the whole intro.  There's a bit of shuffling around to set an explicit height and width, without which Firefox doesn't seem to want to set the scrollbar.

Pushed fd18956 → 98ef1b8 with a coverage fix.

I think a merge caused a conflict

I'll rebase tonight.

Rebased onto master with 98ef1b8 → 07f3086.


Error checks for showToast() calls in the README can result in silent failure.

There are several small bugs in your README sample code of error check regarding showToast() that causes a silent failure so there will never be an error message.
INT64 WinToast::showToast(_In_ const WinToastTemplate& toast, _In_  IWinToastHandler* handler, _Out_ WinToastError* error)
{
    // Code removed for brevity.
    return FAILED(hr) ? -1 : id;
}

Then you are checking for an error with:
if (!WinToast::instance()->showToast(templ, &m_WinToastHandler))
{
    std::wcout << L"Error: Could not launch your toast notification!" << std::endl;
}

The -1 is not equal to zero.

Updated the documentation to fix this on the latest version, thanks:
https://github.com/mohabouje/WinToast/commit/bbbb0bfa4554e4055b2e7e78c068031848db5296


bladebit and other "included in 2.0" plotters are not included in the docker image

I transferred this Issue over. Currently chia-docker doesn't have the plotters installed on purpose. Though we have considered adding it as an optional component that can be installed on container startup with an environment variable. We don't really plan on adding support for scripting the plotters actually creating plots. Though we have also considered allowing for something like an environment variable that defines the path to a script that you could make yourself and mount inside the container.

The kubernetes operator has no plans at this time to support generating plots within it. It is the intention of the operator to be a good place for farms to operate, but generating the plots for a farm would be a detail left to the end user, likely on a baremetal installation of chia. As is the case for the majority of people plotting today.