Looks like we have another one like Issue #837

Looks like we have another one like Issue  #837 here called Entilement
Used the latest BCContainerHelper version 2.07.
After adding the "Entitlement" into the list it throws an error:
BcContainerHelper version 2.0.7
Copying Al Source Files from C:\ProgramData\BcContainerHelper\Extensions\Original-18.0.23013.23532-NL-al\* to C:\Users\\*******\Documents\AL\BaseApp-BC180
WARNING: Unexpected error while handling AzureADApplicationAutomationBaseApp.Entitlement.al
Exception calling "Invoke" with "3" argument(s): "Cannot convert value ""Azure" to type "System.Int32". Error: "Input string was not in a correct format.""
At C:\Users\\*****\Documents\WindowsPowerShell\Modules\BcContainerHelper\2.0.7\AppHandling\Copy-AlSourceFiles.ps1:87 char:39
+ ...        $newFilename = "$($alFileStructure.Invoke($type, $id, $name))"
+                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : PSInvalidCastException

Using the script:
Clear-Host
Set-Location (Split-Path $MyInvocation.MyCommand.Path)
. '..\Tools\es2ContainerHelperFunctions.ps1'

Write-Host  -ForegroundColor green "Installing Latest version of the Module BCContainerHelper"
Get-LatestVersionBCContainerHelper

<# Set Business Central Instance and tenant data #>
$BCServerInstance = Read-Host -Prompt 'Input the name of the new instance'
$alProjectFolder = "C:\Users\\*****\Documents\AL\BaseApp-" + $BCServerInstance

Write-Host "Pulling Base App and create new Project"
$myModifiedObjects = @()
$alFileStructure = { Param ([string] $type, [int] $id, [string] $name)
    if ($myModifiedObjects.Contains("$type$id")) {
        $folder = "Modified"
    }
    elseif (($id -ge 50000 -and $id -le 59999) -or ($id -gt<PHONE_NUMBER>)) {
        $folder = "My Code"
    }
    else {
        $folder = "src"
    }

    switch ($type) {
        "enum"              { "$folder\Enum\$($name).Enum.al" }
        "page"              { "$folder\Page\$($name).Page.al" }
        "table"             { "$folder\Table\$($name).Table.al" }
        "codeunit"          { "$folder\Codeunit\$($name).Codeunit.al" }
        "report"            { "$folder\Report\$($name).Report.al" }
        "query"             { "$folder\Query\$($name).Query.al" }
        "xmlport"           { "$folder\XmlPort\$($name).xmlPort.al" }
        "profile"           { "$folder\Profile\$($name).Profile.al" }
        "dotnet"            { "$folder\Dotnet\$($name).Dotnet.al" }
        "enumextension"     { "$folder\Enumext\$($name).EnumExt.al" }
        "pageextension"     { "$folder\Pageext\$($name).PageExt.al" }
        "tableextension"    { "$folder\Tableext\$($name).TableExt.al" }
        "interface"         { "$folder\Interface\$($name).Interface.al" }
        "pagecustomization" { "$folder\Pageeext\$($name).PageCust.al" }
        "entitlement"       { "$folder\Entitlement\$($name).PageCust.al" }
        "controladdin"      { "$folder\Controladdin\$($name).al" }
        "requestpage"       { "$folder\Report\$($name).al" }
        ".rdlc"             { "$folder\Report\$name$type" }
        ".docx"             { "$folder\Report\$name$type" }
        ".xlf"              { "$folder\Translations\$($name).xlf" }
        default { throw "Unknown type '$type'" }
    }
}

If ($BCServerInstance) {
    Create-AlProjectFolderFromBcContainer -containerName $BCserverInstance `
                                          -alProjectFolder $alProjectFolder  `
                                          -useBaseLine `
                                          -useBaseAppProperties  `
                                          -addGIT `
                                          -alFileStructure $alFileStructure

}
else {
        write-Host -ForegroundColor red "D365 BC Server Instance $BCServerInstance not found!"
}
Pop-Location

You can try to grab the Copy-AlSourceFiles from here: https://raw.githubusercontent.com/microsoft/navcontainerhelper/dev/AppHandling/Copy-AlSourceFiles.ps1 and see if that works.

Copying Al Source Files from C:\ProgramData\BcContainerHelper\Extensions\Original-18.0.23013.23532-NL-al* to C:\Users\RickBlom\Documents\AL\BaseApp-BC180
WARNING: Unexpected error while handling BaseAppObjectsExec.PermissionSet.al
Exception calling "Invoke" with "3" argument(s): "Cannot convert value "*" to type "System.Int32". Error: "Input string was not in a correct format.""
At C:\Users\RickBlom\Documents\WindowsPowerShell\Modules\BcContainerHelper\2.0.7\AppHandling\Copy-AlSourceFiles.ps1:87 char:39

...        $newFilename = "$($alFileStructure.Invoke($type, $id, $name))"

                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
FullyQualifiedErrorId : PSInvalidCastException

Apparently 18 also has permissionset and permissionsetextension.

Works like a charm using following script:
------------------------------------------------------------------------------------------------
Copyright 2020 (c) EasyStep2 BV. All rights reserved.
This file is part of EasyStep2 Powershell Tools.

EasyStep2 Powershell Tools is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

EasyStep2 software is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with EasyStep2 software. If not, see https://www.gnu.org/licenses/.
------------------------------------------------------------------------------------------------
Clear-Host
Set-Location (Split-Path $MyInvocation.MyCommand.Path)
. '..\Tools\es2ContainerHelperFunctions.ps1'
Write-Host  -ForegroundColor green "Installing Latest version of the Module BCContainerHelper"
Get-LatestVersionBCContainerHelper
<# Set Business Central Instance and tenant data #>
$BCServerInstance = Read-Host -Prompt 'Input the name of the new instance'
$alProjectFolder = "C:\Users\RickBlom\Documents\AL\BaseApp-" + $BCServerInstance
Write-Host "Pulling Base App and create new Project"
$myModifiedObjects = @()
$alFileStructure = { Param ([string] $type, [int] $id, [string] $name)
if ($myModifiedObjects.Contains("$type$id")) {
$folder = "Modified"
}
elseif (($id -ge 50000 -and $id -le 59999) -or ($id -gt<PHONE_NUMBER>)) {
$folder = "My Code"
}
else {
$folder = "src"
}
switch ($type) {
    "enum"                   { "$folder\Enum\$($name).Enum.al" }
    "page"                   { "$folder\Page\$($name).Page.al" }
    "table"                  { "$folder\Table\$($name).Table.al" }
    "codeunit"               { "$folder\Codeunit\$($name).Codeunit.al" }
    "report"                 { "$folder\Report\$($name).Report.al" }
    "query"                  { "$folder\Query\$($name).Query.al" }
    "xmlport"                { "$folder\XmlPort\$($name).xmlPort.al" }
    "profile"                { "$folder\Profile\$($name).Profile.al" }
    "dotnet"                 { "$folder\Dotnet\$($name).Dotnet.al" }
    "enumextension"          { "$folder\Enumext\$($name).EnumExt.al" }
    "pageextension"          { "$folder\Pageext\$($name).PageExt.al" }
    "tableextension"         { "$folder\Tableext\$($name).TableExt.al" }
    "interface"              { "$folder\Interface\$($name).Interface.al" }
    "pagecustomization"      { "$folder\Pageeext\$($name).PageCust.al" }
    "requestpage"            { "$folder\Report\$($name).RequestPage.al" }
    "controladdin"           { "$folder\Controladdin\$($name).ControlAddin.al" }
    "permissionsetextension" { "$folder\Permisionsetext\$($name).PermissionsetExt.al" }
    "permissionset"          { "$folder\Permisions\\$($name).xml" }
    "entitlement"            { "$folder\Entitlements\$($name).json" }
    ".xlf"                   { "$folder\Translations\$($name).xlf" }
    ".rdlc"                  { "$folder\Report\$name$type" }
    ".docx"                  { "$folder\Report\$name$type" }
    default { throw "Unknown type '$type'" }
}

}
If ($BCServerInstance) {
Create-AlProjectFolderFromBcContainer -containerName $BCserverInstance                                           -alProjectFolder $alProjectFolder
-useBaseLine                                           -useBaseAppProperties
-addGIT `
-alFileStructure $alFileStructure
}
else {
write-Host -ForegroundColor red "D365 BC Server Instance $BCServerInstance not found!"
}
Pop-Location

Shipped in 2.0.9


[e2e]: nodejs release main default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/8000144762
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.release.main.default.slsa3.yml
Trigger: schedule
Branch: main
Date: Thu Feb 22 06:04:10 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/8015324707
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.release.main.default.slsa3.yml
Trigger: schedule
Branch: main
Date: Fri Feb 23 06:03:05 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/8028655671
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.release.main.default.slsa3.yml
Trigger: schedule
Branch: main
Date: Sat Feb 24 06:04:27 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/8035930569
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.release.main.default.slsa3.yml
Trigger: schedule
Branch: main
Date: Sun Feb 25 06:03:17 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/8042893735
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.release.main.default.slsa3.yml
Trigger: workflow_dispatch
Branch: main
Date: Mon Feb 26 02:36:31 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/8042907069
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.release.main.default.slsa3.yml
Trigger: workflow_dispatch
Branch: main
Date: Mon Feb 26 02:38:23 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/v40.0.200
Run: https://github.com/slsa-framework/example-package/actions/runs/8042929513
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.release.main.default.slsa3.yml
Trigger: release
Branch: v40.0.200
Date: Mon Feb 26 02:44:48 UTC 2024
Tests are passing now. Closing this issue.


Add erlang 20.3.8 for couchdb

The Apache couchdb team recommend to use erlang <IP_ADDRESS> for couchdb 3.1.1.
https://github.com/apache/couchdb/issues/3115#issuecomment-683849187
https://github.com/apache/couchdb/issues/3273#issuecomment-729030867

Alright, I'm going to add that erlang version as well.

Done.
Remember to add the following configuration (nativesdk might be optional):
PREFERRED_VERSION_erlang = "<IP_ADDRESS>"
PREFERRED_VERSION_erlang-native = "<IP_ADDRESS>"
PREFERRED_VERSION_nativesdk-erlang = "<IP_ADDRESS>"


error: metadata-generation-failed

Issue summary
For some reason am trying to install stable-retro through CMD and pycharm, but for some reason it's not working. I've updated setuptools and pip, reinstall them, unistalled everyone thing (Python and Pycharm) restart my computer few times install Cmake, Microsoft C++ build tools, and even have the require version of python to be compatiable for stable-retro I need your help.
C:\Windows\System32>pip install stable-retro
Collecting stable-retro
Using cached stable-retro-0.9.1.tar.gz (111.4 MB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [6 lines of output]
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "C:\Users\skyle\AppData\Local\Temp\pip-install-k9ez_2cs\stable-retro_1a174f8f15d44d96800ab359d52b65cb\setup.py", line 88, in
version=open(VERSION_PATH).read().strip(),
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\skyle\AppData\Local\Temp\pip-install-k9ez_2cs\stable-retro_1a174f8f15d44d96800ab359d52b65cb\retro/VERSION.txt'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
System information
GPU
NVIDIA GeForce RTX 2070
Processor
Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz, 2592 Mhz, 6 Core(s), 12 Logical Processor(s)
Window 11
Python 3.8
stable-retro v0.9.1

'C:\Users\skyle\AppData\Local\Temp\pip-install-k9ez_2cs\stable-retro_1a174f8f15d44d96800ab359d52b65cb\retro/VERSION.txt' due to window using \ rather than / in the path is wrong.
I suspect we should use os.path.join rather than string concatenation
@zbeucler2018 would you be able to investigate?

hmm if that's the issue What can I do to change it or another method to install it?

Without you / us fixing it or you changing a linux based system then I don't think there is anything you can do.

Also having the same issue, is there a quick fix for the slash going the wrong way?

'C:\Users\skyle\AppData\Local\Temp\pip-install-k9ez_2cs\stable-retro_1a174f8f15d44d96800ab359d52b65cb\retro/VERSION.txt' due to window using \ rather than /, the path is wrong.
I suspect we should use os.path.join rather than string concatenation
@zbeucler2018 would you be able to investigate?

I'm happy to investigate this and I think using os.join us a much better solution. However, I am not sure if we support windows

However, I am not sure if we support windows

Yes, is the simplest solution and Gymnasium doesn't officially support windows.
Our general rule has been if we can make simple changes to support windows then we will otherwise no

So far, I've tried pip install stable-retro --pre, pip3 install stable-retro, and pip install stable-retro --use-pep517 with no luck. still showing the error.

hmm if that's the issue What can I do to change it or another method to install it?

You can use WSL2 (Windows sur Subsystem for Linux) on Windows with Ubuntu 22.04 virtual machine and install stable-retro in the VM. It's works quite well and will be much less painful than running directly on Windows.
Here is a simple video for that:
https://www.youtube.com/watch?v=28Ei63qtquQ

Issue summary
For some reason am trying to install stable-retro through CMD and pycharm, but for some reason it's not working. I've updated setuptools and pip, reinstall them, unistalled everyone thing (Python and Pycharm) restart my computer few times install Cmake, Microsoft C++ build tools, and even have the require version of python to be compatiable for stable-retro I need your help.
C:\Windows\System32>pip install stable-retro Collecting stable-retro Using cached stable-retro-0.9.1.tar.gz (111.4 MB) Preparing metadata (setup.py) ... error error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [6 lines of output] Traceback (most recent call last): File "", line 2, in File "", line 34, in File "C:\Users\skyle\AppData\Local\Temp\pip-install-k9ez_2cs\stable-retro_1a174f8f15d44d96800ab359d52b65cb\setup.py", line 88, in version=open(VERSION_PATH).read().strip(), FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\skyle\AppData\Local\Temp\pip-install-k9ez_2cs\stable-retro_1a174f8f15d44d96800ab359d52b65cb\retro/VERSION.txt' [end of output]
note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed
× Encountered error while generating package metadata. ╰─> See above for output.
note: This is an issue with the package mentioned above, not pip. hint: See above for details.
System information
GPU NVIDIA GeForce RTX 2070
Processor Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz, 2592 Mhz, 6 Core(s), 12 Logical Processor(s)
Window 11 Python 3.8 stable-retro v0.9.1

For me:
CMake Warning:
Ignoring empty string ("") provided on the command line.
  CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.

  -- The C compiler identification is GNU 14.1.0
  -- The CXX compiler identification is GNU 14.1.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: C:/MinGW/bin/gcc.exe - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: C:/MinGW/bin/c++.exe - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Could NOT find Python (missing: Development.Module) (found suitable version "3.10.0", minimum required is "3")
  -- Found ZLIB: C:/Program Files/zlib/lib/zlib.lib (found version "1.3.1")
  -- Found PkgConfig: C:/msys64/usr/bin/pkg-config.exe (found version "2.3.0")
  CMake Deprecation Warning at third-party/capnproto/c++/CMakeLists.txt:2 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.

  -- Looking for C++ include initializer_list
  -- Looking for C++ include initializer_list - found
  CMake Warning at CMakeLists.txt:306 (message):
    Could not find CapnProto, disabling search save/load

  CMake Deprecation Warning at third-party/libzip/CMakeLists.txt:5 (CMAKE_MINIMUM_REQUIRED):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.

  -- Looking for _chmod
  -- Looking for _chmod - found
  -- Looking for _close
  -- Looking for _close - found
  -- Looking for _dup
  -- Looking for _dup - found
  -- Looking for _fdopen
  -- Looking for _fdopen - found
  -- Looking for _fileno
  -- Looking for _fileno - found
  -- Looking for _open
  -- Looking for _open - found
  -- Looking for _setmode
  -- Looking for _setmode - found
  -- Looking for _snprintf
  -- Looking for _snprintf - found
  -- Looking for _strdup
  -- Looking for _strdup - found
  -- Looking for _stricmp
  -- Looking for _stricmp - found
  -- Looking for _strtoi64
  -- Looking for _strtoi64 - found
  -- Looking for _strtoui64
  -- Looking for _strtoui64 - found
  -- Looking for _umask
  -- Looking for _umask - found
  -- Looking for _unlink
  -- Looking for _unlink - found
  -- Looking for clonefile
  -- Looking for clonefile - not found
  -- Looking for explict_bzero
  -- Looking for explict_bzero - not found
  -- Looking for explicit_memset
  -- Looking for explicit_memset - not found
  -- Looking for fileno
  -- Looking for fileno - found
  -- Looking for fseeko
  -- Looking for fseeko - found
  -- Looking for ftello
  -- Looking for ftello - found
  -- Looking for getprogname
  -- Looking for getprogname - not found
  -- Looking for open
  -- Looking for open - found
  -- Looking for mkstemp
  -- Looking for mkstemp - found
  -- Looking for setmode
  -- Looking for setmode - found
  -- Looking for snprintf
  -- Looking for snprintf - found
  -- Looking for strcasecmp
  -- Looking for strcasecmp - found
  -- Looking for strdup
  -- Looking for strdup - found
  -- Looking for stricmp
  -- Looking for stricmp - found
  -- Looking for strtoll
  -- Looking for strtoll - found
  -- Looking for strtoull
  -- Looking for strtoull - found
  -- Looking for include file fts.h
  -- Looking for include file fts.h - not found
  -- Looking for include file stdbool.h
  -- Looking for include file stdbool.h - found
  -- Looking for include file strings.h
  -- Looking for include file strings.h - found
  -- Looking for include file unistd.h
  -- Looking for include file unistd.h - found
  -- Looking for include file inttypes.h
  -- Looking for include file inttypes.h - found
  -- Looking for include file stdint.h
  -- Looking for include file stdint.h - found
  -- Looking for include file sys/types.h
  -- Looking for include file sys/types.h - found
  -- Looking for sys/types.h
  -- Looking for sys/types.h - found
  -- Looking for stdint.h
  -- Looking for stdint.h - found
  -- Looking for stddef.h
  -- Looking for stddef.h - found
  -- Check size of __int8
  -- Check size of __int8 - done
  -- Check size of int8_t
  -- Check size of int8_t - done
  -- Check size of uint8_t
  -- Check size of uint8_t - done
  -- Check size of __int16
  -- Check size of __int16 - done
  -- Check size of int16_t
  -- Check size of int16_t - done
  -- Check size of uint16_t
  -- Check size of uint16_t - done
  -- Check size of __int32
  -- Check size of __int32 - done
  -- Check size of int32_t
  -- Check size of int32_t - done
  -- Check size of uint32_t
  -- Check size of uint32_t - done
  -- Check size of __int64
  -- Check size of __int64 - done
  -- Check size of int64_t
  -- Check size of int64_t - done
  -- Check size of uint64_t
  -- Check size of uint64_t - done
  -- Check size of short
  -- Check size of short - done
  -- Check size of int
  -- Check size of int - done
  -- Check size of long
  -- Check size of long - done
  -- Check size of long long
  -- Check size of long long - done
  -- Check size of off_t
  -- Check size of off_t - done
  -- Check size of size_t
  -- Check size of size_t - done
  -- Check size of ssize_t
  -- Check size of ssize_t - done
  -- Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR)
  -- Looking for getopt
  -- Looking for getopt - found
  CMake Deprecation Warning at third-party/gtest/googlemock/CMakeLists.txt:46 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.

  CMake Deprecation Warning at third-party/gtest/googletest/CMakeLists.txt:53 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.

  CMake Warning (dev) at third-party/gtest/googletest/cmake/internal_utils.cmake:213 (find_package):
    Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
    are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
    the cmake_policy command to set the policy and suppress this warning.

  Call Stack (most recent call first):
    third-party/gtest/googletest/CMakeLists.txt:65 (include)
  This warning is for project developers.  Use -Wno-dev to suppress it.

  -- Found PythonInterp: D:/projects/chess-environment/my-env/Scripts/python.exe (found version "3.10")
  CMake Error at CMakeLists.txt:387 (add_subdirectory):
    add_subdirectory given source "tests" which is not an existing directory.

  -- Configuring incomplete, errors occurred!
  Traceback (most recent call last):
    File "D:\projects\chess-environment\my-env\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
      main()
    File "D:\projects\chess-environment\my-env\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "D:\projects\chess-environment\my-env\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 251, in build_wheel
      return _build_backend().build_wheel(wheel_directory, config_settings,
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\build_meta.py", line 421, in build_wheel
      return self._build_with_temp_dir(
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\build_meta.py", line 403, in _build_with_temp_dir
      self.run_setup()
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\build_meta.py", line 503, in run_setup
      super().run_setup(setup_script=setup_script)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\build_meta.py", line 318, in run_setup
      exec(code, locals())
    File "<string>", line 84, in <module>
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\__init__.py", line 117, in setup
      return distutils.core.setup(**attrs)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 183, in setup
      return run_commands(dist)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 199, in run_commands
      dist.run_commands()
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 954, in run_commands
      self.run_command(cmd)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\dist.py", line 950, in run_command
      super().run_command(command)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 973, in run_command
      cmd_obj.run()
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\command\bdist_wheel.py", line 398, in run
      self.run_command("build")
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 316, in run_command
      self.distribution.run_command(command)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\dist.py", line 950, in run_command
      super().run_command(command)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 973, in run_command
      cmd_obj.run()
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\_distutils\command\build.py", line 135, in run
      self.run_command(cmd_name)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 316, in run_command
      self.distribution.run_command(command)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\dist.py", line 950, in run_command
      super().run_command(command)
    File "C:\Users\paulo\AppData\Local\Temp\pip-build-env-hhg5an6d\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 973, in run_command
      cmd_obj.run()
    File "<string>", line 39, in run
    File "D:\Python310\lib\subprocess.py", line 369, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['cmake', '.', '-G', 'Unix Makefiles', '', '-DPYEXT_SUFFIX=.cp310-win_amd64.pyd', '-DPYLIB_DIRECTORY=build\\lib.win-amd64-cpython-310', '-DPython_ROOT_DIR=D:\\projects\\chess-environment\\my-env\\Scripts', '-DPython_FIND_STRATEGY=LOCATION', '-DPython_EXECUTABLE=D:\\projects\\chess-environment\\my-env\\Scripts\\python.exe', '-DPython_INCLUDE_DIR=D:\\Python310\\Include', '-DPython_LIBRARY=D:\\projects\\chess-environment\\my-env\\Lib\\site-packages']' returned non-zero exit status 1.
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for stable-retro
Failed to build stable-retro
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (stable-retro)


Reset activeIcon to null when Search button is clicked while search is already open

Currently, clicking the Search button while search is already open will close the search bar, but will not revert the activeIcon state to null.
This PR will toggle the click method of the Search button based on the showSearch state property so that clicking the button while search is open will close the search bar and revert the icon.

Coverage increased (+0.4%) to 77.742% when pulling 82677ffcf00efbfda469c1a65fc36d8792d63552 on pgoforth:bugfix/activeIcon-for-search-not-reset-on-toggle into 2d37c383beeebb039fae2b6e0b531ddb7959e2ce on gregnb:master.


Playwright-style automatic fixtures

Clear and concise description of the problem
Playwright has a notion of automatic fixtures, where the fixture is executed even if it is not part of the fixture dependency list in a test. This enables test writers to implicitly set up fixtures that are common to all tests of a type.
I would like to use automatic fixtures in vitest to establish database connections in my integration tests rather than having to explicitly specify { testDb } as a fixture dependency in all of my tests.
Suggested solution
Playwright has a nice API for this, where you pass a tuple of [fixtureBody, config] instead of directly passing only the fixture body, something like:
export const myTest = test.extend({
  testDb: [

    async ({}, use) => { await setUpDb(); await use(); await tearDownDb(); },

    { auto: true } // <-- config object

  ],
 someOtherFixture: ...
})

It looks like the idea of fixture config was also present in the original vitest-fixtures package, but may have only been for fixture scope.
This aligns nicely with playwright's API and gives a path for future expansions of fixture-specific config (scopes, etc as playwright does).
Alternative
Maybe we could expose a way to access the fixtures themselves, and then wrap our tests / before* calls in some helper method that calls the fixtures manually, but this seems like it'd be very confusing.
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Is this essentially equivalent to having beforeEach(({ testDb }: any) => {}) for each file? I made small example here:
https://stackblitz.com/edit/vitest-dev-vitest-zkknqx?file=test%2Ffixture.test.ts
It might be still clumsy to do for each test file, but I guess it's less tedious than doing so in each test with { testDb }.

Yeah that's a good point @hi-ogawa. The timing is a bit different since fixtures generally all complete before the beforeEach or it calls that rely on them, but you can get pretty far with a beforeEach in the test or the vitest.setup.ts file.


Remove outdated HashToG2 tests

Finally removes outdated, disabled Hash2G2 tests based on FIPS data that looks like it isn't going to be updated - it's been 7 months now. We have sufficient test scenarios without these tests, so no great loss.
Fixed Issue(s)
Closes #2409
Documentation

[x] I thought about documentation and added the documentation label to this PR if updates are required.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


How can i make it work with Nuxt Content v2 ?

Details

i can't make it work can someone help me or if guys have any working example ?
Thank you
I'm using "nuxt-simple-sitemap": "^2.4.22",

Hey @furkanavc. You can should use the  serverQueryContent util like so:
const docs = await serverQueryContent(event).find()
return docs.map(d => ({
   loc: '/news/' + d._path // might be something other than _path
}))

You can see an example on fetching the data here: https://content.nuxtjs.org/guide/recipes/sitemap

I can look at making this easier, the module would just need to have an idea on your route mapping

@harlan-zw  Thank you for the help :)
https://stackblitz.com/edit/nuxt-starter-dwj6e5?file=server%2Fapi%2F_sitemap-urls.ts
this works perfect


CAS-574 and CAS-509  Refactored e2e disconnect tests

Refactored e2e disconnect tests for more reliable clean up on error and reduction of duplicated code.
Three-node tests combined into single test. Four-node test remains separate.
Disconnect setup and teardown are no longer tests on their own.
Static variables moved into a struct.

Please fixup the commit message @chriswldenyer

bors merge


Build failure: python311Packages.pyqt6

Steps To Reproduce
Steps to reproduce the behavior:

add python311Packages.orange3 to NixOS configuration system
Rebuild system
Get error build

Build log
[anifyuli@ThinkPad-X280:/etc/nixos]$ sudo nixos-rebuild switch
building the system configuration...
evaluation warning: CUDA versions older than 12.0 will be removed in Nixpkgs 25.05; see the 24.11 release notes for more information
error: builder for '/nix/store/8b01w19ymf8w9grnbsr7vhd1vccgxax2-python3.11-pyqt6-6.7.0.dev2404081550.drv' failed with exit code 1;
       last 25 log lines:
       >       |                                                                       ^~
       > /build/tmpk9b84pv2/QtCore/sipQtCoreQXmlStreamNamespaceDeclaration.cpp: In function ‘PyObject* slot_QXmlStreamNamespaceDeclaration___ne__(PyObject*, PyObject*)’:
       > /build/tmpk9b84pv2/QtCore/sipQtCoreQXmlStreamNamespaceDeclaration.cpp:107:72: error: ‘class QXmlStreamNamespaceDeclaration’ has no member named ‘operator!=’
       >   107 |             sipRes = sipCpp->::QXmlStreamNamespaceDeclaration::operator!=(*a0);
       >       |                                                                        ^~
       > /build/tmpk9b84pv2/QtCore/sipQtCoreQXmlStreamNamespaceDeclaration.cpp: In function ‘PyObject* slot_QXmlStreamNamespaceDeclaration___eq__(PyObject*, PyObject*)’:
       > /build/tmpk9b84pv2/QtCore/sipQtCoreQXmlStreamNamespaceDeclaration.cpp:136:72: error: ‘class QXmlStreamNamespaceDeclaration’ has no member named ‘operator==’
       >   136 |             sipRes = sipCpp->::QXmlStreamNamespaceDeclaration::operator==(*a0);
       >       |                                                                        ^~
       > make[1]: *** [Makefile:2481: sipQtCoreQXmlStreamNotationDeclaration.o] Error 1
       > /build/tmpk9b84pv2/QtCore/sipQtCoreQXmlStreamAttribute.cpp: In function ‘PyObject* slot_QXmlStreamAttribute___ne__(PyObject*, PyObject*)’:
       > /build/tmpk9b84pv2/QtCore/sipQtCoreQXmlStreamAttribute.cpp:211:61: error: ‘class QXmlStreamAttribute’ has no member named ‘operator!=’
       >   211 |             sipRes = sipCpp->::QXmlStreamAttribute::operator!=(*a0);
       >       |                                                             ^~
       > /build/tmpk9b84pv2/QtCore/sipQtCoreQXmlStreamAttribute.cpp: In function ‘PyObject* slot_QXmlStreamAttribute___eq__(PyObject*, PyObject*)’:
       > /build/tmpk9b84pv2/QtCore/sipQtCoreQXmlStreamAttribute.cpp:240:61: error: ‘class QXmlStreamAttribute’ has no member named ‘operator==’
       >   240 |             sipRes = sipCpp->::QXmlStreamAttribute::operator==(*a0);
       >       |                                                             ^~
       > make[1]: *** [Makefile:2488: sipQtCoreQXmlStreamNamespaceDeclaration.o] Error 1
       > make[1]: *** [Makefile:2495: sipQtCoreQXmlStreamAttribute.o] Error 1
       > make[1]: Leaving directory '/build/tmpk9b84pv2/QtCore'
       > make: *** [Makefile:68: sub-QtCore-make_first-ordered] Error 2
       > _in_process.py: 'make' failed returning 2
       >
       > ERROR Backend subprocess exited when trying to invoke build_wheel
       For full logs, run 'nix log /nix/store/8b01w19ymf8w9grnbsr7vhd1vccgxax2-python3.11-pyqt6-6.7.0.dev2404081550.drv'.
error: 1 dependencies of derivation '/nix/store/xrdpcsb2c9csyz2l1z7lviwd3h7zyrkp-python3.11-pyqtgraph-0.13.7.drv' failed to build
error: 1 dependencies of derivation '/nix/store/715aq3sx4r5qnzkb9xmdaz9szl66wm83-python3.11-orange3-3.37.0.drv' failed to build
error: 1 dependencies of derivation '/nix/store/j5i8dzb3n7dazdb3ldcvl5apamy215ci-user-environment.drv' failed to build
error: 1 dependencies of derivation '/nix/store/b6f6avxm1r2x0h69wvhgklwjdg41gdih-etc.drv' failed to build
error: 1 dependencies of derivation '/nix/store/pcjlg31ysw15i4k2xb25v96sp4hmc3ld-nixos-system-ThinkPad-X280-24.11.20241016.5785b6b.drv' failed to build

Additional context
I haven't idea how to fix it
Notify maintainers
@lucasew @mweinelt

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[anifyuli@ThinkPad-X280:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.56, NixOS, 24.11 (Vicuna), 24.11.20241016.5785b6b`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.24.9`
 - channels(root): `"home-manager, nixos, nixos-hardware"`
 - nixpkgs: `/nix/store/xnjw9gmfmpppdj6bxpw6cfkspc3h6xwl-source`

Add a :+1: reaction to issues you find important.

Sorry I think I get typo on my title

This is proabably related to:
https://github.com/NixOS/nixpkgs/pull/348697
and
https://discourse.nixos.org/t/build-failure-python312packages-pyqt6-calibre-dependency/54405
I also stepped into the exact same error. For me, pyqt6 was a dependency to Anki, which now fails to build.

No. I build from nixos-unstable and there is a build fail.


ISSUE:226 Add Oracle Migration Scripts

ISSUE:226 Add Oracle Migration Scripts

This pull request address issue #226

Yes, I had tested the migration script against Oracle 11g and 12c.

@raju-saravanan +1 after changing details type to BLOB.

@satishd : Changed CLOB to BLOB and tested it against Oracle 12c and 11g.


proposal: runtime: allow N goroutines to be simultaneously locked to the same OS thread

Summary
The aim of this proposal is to extend the LockOSThread mechanism so that it is possible to create a N:1 association between N goroutines and 1 OS thread, by adding the following function to the runtime package
func LockToRecvOSThread[T any](ch <- chan T)

When LockToRecvOSThread is called the calling goroutine will be locked to the same thread as the goroutine receiving on ch, which is assumed to be already locked to a OS thread.
Programs could use this interface to work around the performance problems described in issue #21827, in some cases.
Motivation
Operating systems and C libraries will sometimes insist that all calls be made from the same OS thread. Examples of this include macOS's GUI API, OpenGL and ptrace on Linux.
This is introduces some difficulties in Go, where goroutines are normally scheduled randomly on a pool of OS threads. The recommended way to deal with such APIs is to call LockOSThread, which will create a 1:1 association between a goroutine and a thread.
Users of LockOSThread however also opt out of Go's concurrency paradigm, all calls to the special API have to happen in the same goroutine and the solution to the problem has to be written in a sequential style, even if a concurrent solution would be otherwise easier to implement.
This leads users of LockOSThread to sometime create what I will call a "syscall server" goroutine:
func syscallServer() chan <- func() {
	ch := make(chan func())
	go func() {
		runtime.LockOSThread()
		defer runtime.UnlockOSThread()
		for fn := range ch {
			fn()
		}
	}()
	return ch
}

This arrangement allows programs that need to use LockOSThread to be written in a normal concurrent style. For example, Delve has one such facility and github.com/faiface/mainthread is a library implementing this technique in a general way.
The problem with this approach is that the interaction of LockOSThread and channel send imposes a much greater performance penalty in the program than it would be expected from simply using a channel: normal use of a channel is fast because it doesn't involve the OS scheduler and the Go scheduler has special optimized paths for it. But when LockOSThread is involved both the full cost of Go scheduler and the full cost of the OS scheduler are paid every time a send on the channel happens.
On some workloads this overhead can be as high as 60% of the execution time.
The proposed LockToRecvOSThread API would eliminate the need of a syscall server and allow programs that need to use a API that needs LockOSThread to place as many goroutines as they need on the blessed thread, improving their performance.
Case study: Delve
It could be argued that the syscall server is simply a common anti-pattern: you picked the wrong level of granularity for a costly operation (which you could have reasonably expected to be costly).
However I have one example, Delve, where (I think) getting rid of the syscall server would reduce the code quality.
Delve supports call injection, it's possible for the user to write something like:
(dlv) call f(x) + i

and Delve will evaluate the f(x) + i expression by resuming execution of the target program as needed to evaluate the call to functionf. When this happens three goroutines are primarily involved:

the aforementioned "syscall server" goroutine
a goroutine running the event loop of Delve, which takes care of stop, resume and breakpoint handling (which could happen concurrently to the call injection)
a goroutine running a recursive AST interpreter for the expression passed to call, this goroutine will occasionally ask the "event loop" goroutine to resume the target process to progress call injections.

Both the event loop goroutine and interpreter goroutine will issue requests to the syscall server to read and write memory and to resume execution of the target program.
To rewrite this so that there is no need for a syscall server the expression interpreter would have to be rewritten, likely in a continuation passing style, which would make it considerably less understandable.
Behavior of LockToRecvOSThread
The goroutine calling LockToRecvOSThread will be locked to the same goroutine as the goroutine that is currently receiving on ch:

if ch is nil or closed LockToRecvOSThread will panic
if no goroutine is receiving from ch LockToRecvOSThread will wait until one appears
if the goroutine calling LockToRecvOSThread is already locked to a thread LockToRecvOSThread will panic
if the goroutine receiving from ch did not call LockOSThread, LockToRecvOSThread will panic

The thread lock acquired by LockToRecvOSThread can be released by calling UnlockOSThread.
Possible problems / notes

Because of how LockOSThread is currently implemented this proposal requires a non-trivial change to Go scheduler, a complex, performance sensitive piece of code that few people understand well.

It could be that this change will degrade the performance of other programs.

It could be that the assumptions about what causes the negative interaction between channel operations and LockOSThread are wrong and this does not solve the problem.

It could be that most programs that have the problem described in issue #21827 can be easily refactored to have a different granularity of requests to the "syscall server" goroutine and this is only actually useful to Delve.

It could be that the problem in issue #21827 can be solved by other optimizations, that do not require new API and user program changes.

The proposed API requires programs that wish to use LockToRecvOSThread to "leak" one channel and one goroutine. It is possible to imagine different APIs, for example:
  GetLockedOSThread() *OSThread
  LockToSpecificOSThread(*OSThread)

In my opinion the proposed API has a smaller surface area and is less ambiguous as to what happens to the OS thread when UnlockOSThread is called, and the resource loss of one goroutine and one channel is negligible.

When LockToRecvOSThread is called the calling goroutine will be locked to the same thread as the goroutine receiving on ch,

There is in general no guarantee that any goroutine is currently “receiving on” ch. (For example, one might have just received a value and unparked.) How would you specify the behavior in that case?
More generally, though, I think this API is too channel-specific. There are also valid synchronization patterns one might want to use with a thread-local API that do not involve channels: for example, one could use an atomic.Value or sync.Mutex wrapping a queue of callbacks, along with a channel or sync.Cond that is closed or signaled when the queue becomes non-empty.

The problem with this approach is that the interaction of LockOSThread and channel send imposes a much greater performance penalty in the program than it would be expected from simply using a channel: normal use of a channel is fast because it doesn't involve the OS scheduler and the Go scheduler has special optimized paths for it. But when LockOSThread is involved both the full cost of Go scheduler and the full cost of the OS scheduler are paid every time a send on the channel happens.

Can you give some more detail on this? Would it be feasible to optimize the compiler and/or runtime to avoid this cost?

In your example of Delve, it's not obvious to me that forcing the event loop and the AST interpreter to share a thread will be an overall win.  It means that while the AST interpreter is running the program will not pay attention to events.  I'm concerned that the performance will not be as desired, and that the next step will be a request for some sort of goroutine prioritization.
That said, like @bcmills I don't think an API based on channels makes sense here.  What about something more like
// A ThreadLocker permits multiple goroutines to be locked to a single thread.
// Values of type ThreadLocker must be obtained by calling MakeThreadLocker.
type ThreadLocker struct { /* unexported fields */ }

// MakeThreadLocker returns a new ThreadLocker.
func MakeThreadLocker() *ThreadLocker

// Lock the currently running goroutine to the ThreadLocker. If this is the first goroutine to be locked to
// this ThreadLocker, then the goroutine will be locked to the currently running thread, and the currently
// running thread will be associated with this ThreadLocker.
// Otherwise, the goroutine will be locked to the thread associated with this ThreadLocker,
// meaning that it will be immediately preempted, and that when the method returns the goroutine
// will be running on the thread.
// A thread associated with a ThreadLocker will only run goroutines locked to that thread;
// if there are no such goroutines ready to run, the thread will wait until one is available.
// This panics if the ThreadLocker was not created by MakeThreadLocker.
func (*ThreadLocker) Lock()

// Unlock the currently running goroutine from the ThreadLocker. The goroutine will be immediately
// preempted, and when the method returns the goroutine will be running on a different thread.
// If this is the last goroutine running on the associated thread, that thread will exit.
// The same happens when the last locked goroutine returns or calls Goexit.
// This panics if the current goroutine is not locked to this ThreadLocker.
func (*ThreadLocker) Unlock()

When LockToRecvOSThread is called the calling goroutine will be locked to the same thread as the goroutine receiving on ch,

There is in general no guarantee that any goroutine is currently “receiving on” ch. (For example, one might have just received a value and unparked.) How would you specify the behavior in that case?

It would wait until there is one. Other details of the behavior are in the "Behavior of LockToRecvOSThread" section.

More generally, though, I think this API is too channel-specific. There are also valid synchronization patterns one might want to use with a thread-local API that do not involve channels: for example, one could use an atomic.Value or sync.Mutex wrapping a queue of callbacks, along with a channel or sync.Cond that is closed or signaled when the queue becomes non-empty.

Nothing in this proposal, that I can see, prevents other synchronization from being used by goroutines locked to the same OS thread. The LockToRecvOSThread call is just a way to extend the OS thread lock to more goroutines. Also, I'm not particularly married to this specific API, as far as I am concerned it is just one of several reasonable ones.

The problem with this approach is that the interaction of LockOSThread and channel send imposes a much greater performance penalty in the program than it would be expected from simply using a channel: normal use of a channel is fast because it doesn't involve the OS scheduler and the Go scheduler has special optimized paths for it. But when LockOSThread is involved both the full cost of Go scheduler and the full cost of the OS scheduler are paid every time a send on the channel happens.

Can you give some more detail on this? Would it be feasible to optimize the compiler and/or runtime to avoid this cost?

See:

https://github.com/golang/go/issues/21827
https://github.com/golang/go/issues/18023

I find the assessment in #18023 convincing.

In your example of Delve, it's not obvious to me that forcing the event loop and the AST interpreter to share a thread will be an overall win. It means that while the AST interpreter is running the program will not pay attention to events. I'm concerned that the performance will not be as desired, and that the next step will be a request for some sort of goroutine prioritization.

There is no parallelism between the even loop and the AST interpreter: the event loop only runs when the target process is running and the AST interpreter only runs when it isn't. I have experimented with running the event loop entirely inside the LockOSThread goroutine and I do get the expected performance improvement (as long as there is no AST interpreter, otherwise it will deadlock when it needs to communicate with it).

That said, like @bcmills I don't think an API based on channels makes sense here. What about something more like

This looks fine to me too.

I used to program in a system that let you arrange programs this way, and it was easy to end up with deadlocks, because the one "goroutine" in a thread was blocked in a system call and stopping the other from running (and maybe it was going to wake up the system call by its actions).
We designed LockOSThread to avoid this problem by making it a single goroutine.
If there are performance issues, it sounds like we should fix the runtime scheduler, not introduce new API that might lead to worse problems.

Would this opinion change if the performance issue was an inevitable consequence of the design of LockOSThread?

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

I made a simple experiment, I rewrote the benchmark of #21827 in go and a rough equivalent in C with pthreads. With Go, using a LockOSThread server I get 8µs per server request with C I get 5µs per ping/pong.
So there is some optimization that could be done in the scheduler (or in the channel implementation), but even assuming it could be as fast as the C implementation it would still be much slower than the version that does not use LockOSThread, which runs at 0.5µs per request.

It's unfortunate if LockOSThread has a performance problem, but the vast majority of programs don't need LockOSThread, and there are significant semantic problems with this, so it doesn't seem like we should do this.

Based on the discussion above, this proposal seems like a likely decline.
— rsc for the proposal review group

I think it's worth pointing out that the system call server, which this is aiming to replace, is just as much prone to deadlocks. So this would replace slow deadlock prone code with fast deadlock prone code.
Also asynchronous preemption is a mitigating factor here, that didn't exist when LockOSThread was originally added to the language.

I think it's worth pointing out that the system call server, which this is aiming to replace, is just as much prone to deadlocks. So this would replace slow deadlock prone code with fast deadlock prone code.

That may be true, but debuggability is also a concern: today it is viable to use goroutine dumps and/or static or dynamic analyzers to diagnose a deadlock involving channel communication, whereas debugging the proposed API would require substantial new debugging tools.

That may be true, but debuggability is also a concern: today it is viable to use goroutine dumps and/or static or dynamic analyzers to diagnose a deadlock involving channel communication, whereas debugging the proposed API would require substantial new debugging tools.

I think detecting this already requires a substantial amount of application specific investigation. What you would see is the server goroutine blocked on a system call and one or more other goroutines waiting to to send on the server's channel.
This is normal, every time you look at the program you will see something like this, what you need to know is what's going to make the blocked syscall return and what the goroutines waiting for the server are going to do.
If anything it's going to be easier to determine which goroutines are waiting to run on the locked thread, compared to having to examine the caller frames of runtime.chansend.

No change in consensus, so declined.
— rsc for the proposal review group


The big C++ wallet port

I've ported enough code to run the C# Wallet Sample in pure C++ land :D
The structure and layout of the files tries to be as close to the C# versions as practical, so that they can be re-ported or even directly diff'ed (between the .h and .cs files) as maintenance/changes/fixes are added in the future.
Instead of implementing any of the Crypto stuff myself, I've allowed the user to provide their own implementations, and included a helper to plug in libSodium as a default solution.

Awesome work Brooke 💪


Use is-string-blank

🌴 We should use the new https://github.com/plotly/is-string-blank here (and propagate this to plotly.js)
cc @archmoj

@etpinard we need Github (& possibly NPM) permissions to push to this repository.
Thanks.

done and done :ok_hand:

I still get this error: Permission to plotly/fast-isnumeric.git denied to archmoj.

My bad, Try again.

Now it finally worked! Thank you @etpinard .


Pattern: simple overview band specs

Wonil-Suh1 created the following on Aug 06:
User story
As a user of IBM.com, I need a way to take a high level overview of the content/product presented on the page that I am looking at.
Acceptance criteria

[ ] specs are available

Original issue: https://github.ibm.com/webstandards/digital-design/issues/1398

On Oct 09, Wonil-Suh1 commented:
The latest specs are here:

On Oct 09, Wonil-Suh1 commented:
@chsanche @larahanlon @Olivia-Flory @Jacob-Ottesen @spbokma please review and comment.

On Oct 09, Olivia-Flory commented:
Looks pretty good!
Would it be helpful to see the same label content from max and xl on the large, medium and small breakpoints? Wondering if the 80% width will be cause problems on the medium breakpoint specifically. Unless we are proposing changing content per breakpoint?

On Oct 09, chsanche commented:
Looks good! One nitpicky thing is I wish the space indicator can be shown on the content area but not on the side.
Question: Is the pink color the color we are going to use for all the spac kind of documents? I asked bc if that is the case, we need to make sure we all do the same thing.

Updated specs per discussion on Oct 14th.

Latest specs
Sketch


Javascript objects defined in .NET don't Stringify correctly

If I define a Javascript object in C# code using the pattern shown here: Building an instance class, and I call JSON.stringify on an instance of that object, none of the expected fields are shown in the output. However, I am still able to access those fields in the same Javascript code (i.e I can use their values, etc). If I set an 'invisible' field from Javascript code and then perform the stringify, it appears in the output as I would expect.
C# class (C# code formatting appears to be broken - sorry)

using Jurassic;
using Jurassic.Library;
public class MyJsObjectConstructor : ClrFunction
{
public MyJsObjectConstructor(ScriptEngine js)
: base(js.Function.InstancePrototype, "MyJsObject", new MyJsObjectInstance(js.Object.InstancePrototype))
{
}
[JSConstructorFunction]
public MyJsObjectInstance Construct(int i)
{
return new MyJsObjectInstance(this.InstancePrototype, i);
}
}
public class MyJsObjectInstance : ObjectInstance
{
public MyJsObjectInstance(ObjectInstance prototype)
: base(prototype)
{
this.PopulateFields();
this.PopulateFunctions();
}
public MyJsObjectInstance(ObjectInstance prototype, int i)
: base(prototype)
{
}
[JSField]
public string myString = "This is my string";
}

Javascript
var myJsObject = new MyJsObject(); console.log(JSON.stringify(myJsObject)); myJsObject.myString = "Updated the string"; console.log(JSON.stringify(myJsObject));
Javascript console output
This is my string {} {"myString":"Updated the string"}

Don't use [JsField] -- it is not generally useful.  Instead, you should use one of two approaches:
Simple property method
public class MyJsObjectInstance : ObjectInstance
{
    public MyJsObjectInstance(ObjectInstance prototype) : base(prototype)
    {
        // No need to call PopulateFunctions().
        MyString = "This is my string";
    }

    public string MyString
    {
        get { return this["myString"]; }
        set { this["myString"] = value; }
    }
}

Pros:

Reading and writing myString from Javascript is relatively fast.

Cons:

Setting the property in Javascript does not call the MyString setter.
Reading and writing MyString from .NET is slow.

Accessor property method
public class MyJsObjectInstance : ObjectInstance
{
    private string myString;

    public MyJsObjectInstance(ObjectInstance prototype) : base(prototype)
    {
        this.PopulateFunctions();
        this.myString = "This is my string";
    }

    [JsProperty(Name = "myString", IsEnumerable = true)]
    public string MyString
    {
        get { return this.myString; }
        set { this.myString = value; }
    }
}

Pros:

Reading and writing MyString from .NET is fast.
Setting the property in JavaScript does call the MyString setter.

Cons:

Reading and writing myString from JavaScript is slow.

By the way, the behaviour with JSON.stringify is not a bug.  JSON.stringify simply does not serialize properties which are marked as non-enumerable.  If you want a property to appear in the serialized output, it needs to be enumerable.

Hi Paul, thanks for the response.
I'm afraid that I was only able to get the first method working (simple property method) and showing up in the output of JSON.stringify - the second method does not seem to work despite the IsEnumerable parameter being set.
Performing propertyIsEnumerable() on an instance of the object returns true for the first method, but false for the second - so I think the IsEnumerable flag is being ignored for some reason.
public class MyJsObjectInstance : ObjectInstance
{

	private string mySecondString;

	public MyJsObjectInstance(ObjectInstance prototype)
		: base(prototype)
	{
		this.PopulateFunctions();
		this.PopulateFields();
	}

	public MyJsObjectInstance(ObjectInstance prototype, int i)
		: base(prototype)
	{
		this.MyFirstString = "my first string";
		this.MySecondString = "my second string";
	}

	// Works fine
	public string MyFirstString
	{
		get { return (string)this["myFirstString"]; }
		set { this["myFirstString"] = value; }
	}

	// Does not show up in JSON.stringify()
	[JSProperty(Name = "mySecondString", IsEnumerable = true)]
	public string MySecondString
	{
		get { return this.mySecondString; }
		set { this.mySecondString = value; }
	}
}

Oh, that's because JSON.stringify doesn't serialize properties in the prototype.  mySecondString is in the prototype but myFirstString is not; it's set directly on the object.
Try this:
console.log(JSON.stringify(myJsObject));  // doesn't show mySecondString
console.log(JSON.stringify(Object.getPrototypeOf(myJsObject)));  // does show mySecondString

I checked, and according to the spec this behaviour (not serializing properties in the prototype) is correct.


Handle case unstake when active stake = 0

User report that the unstake button is not disabled even after unstaking everything

Expect:

If "Withdraw action" available -> Show button Withdraw on details screen (Move unstake action on "... button)
User click on "Unstake"

"Active stake" > 0 => Show unstake screen
"Active stake" = 0 and "Withdraw action is available" => Move unstake action on "... button" and disable button Unstake
"Active stake" = 0 and "Withdraw action not available" => Show popup with content:

Header: Unstaking not available
Message: You don't have any staked funds left to unstake. Check withdrawal status (how long left until the unstaking period ends) by scrolling down in the Details screen. Keep in mind that you need to withdraw manually.
Button: Check withdraw status

Click button -> Back to details screen (automatically open see more and scroll to bottom)

Version test: Mobile - v1.1.15 - Build: 261
Device test: IP 8 Plus (15.5)
Validation passed
https://konistudio-my.sharepoint.com/:v:/g/personal/nhungphung_koni_studio/EVCcBWSb_N1JulKrGhmAK6oBCS4XJprwzhT7lleHTCzfEA?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&e=OFbJCS


Fix date column always shown in english

Changes the use of Carbon's format for translatedFormat so Text columns containing dates are shown in the correct language when changing locales.

Thanks!


Method parseTwoDigitYear missing from typescript definitions

Description of the Issue and Steps to Reproduce:
parseTwoDigitYear is not present in the published moment.d.ts definition.
Please include the values of all variables used.
N/A
Environment:
moment version 2.17.1

You're welcome to add it, or you can wait for my (slightly larger) TS changeset later this week :)

Hello,
Has it been added? I am currently using the version 2.18.1. Will a new version be released soon?
Thanks,
Ashley

This hasn't been added - is it worth me opening a PR for this?

Go for it.

@marwahaha I'm looking forward to this. Will it be added to the next release?

With this change, how do you overwrite the function (as recommended everywhere to add a new cutoff year ?!?!?) without TypeScript complaining about doing that?


Osiris/reth compatibility

Overview

This PR removes the assumption that the build process id of the builder matches the build process id of the l2 client.

When testing with a reth builder the process id's didn't match which downstream caused issues in get_payload_v3 when trying to grab the payload from the builder.
Solution

Ephemerally map the build process id of the l2 client to the build process id of the builder in fork_choice_update_v3 when a build process has been started.
The downside here is we now need to wait for both futures to resolve in fork_choice_update_v3

Note: This has been load tested with both a Reth builder, and a op-geth builder in a rollup devnet.

Closing as this is being addressed: https://github.com/paradigmxyz/reth/pull/11730


Add support for OTel events

See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/semantic_conventions/events.md

@svrnm As per the OTel convention, adding the event.name and event.domain attributes to a LogRecord makes it an event. I know AppD is not yet following this as we have our own conventions which were setup before OTel added events conventions. We have the following ways of handling this:

Add a type field in log definition which allows values - logs & events. When events is set, we add these 2 attributes automatically.
Just add some examples for OTel events based log definitions as well as AppD events based log definitions in examples with some details in the corresponding wiki.
Do nothing since the OTel events convention can be read and appropriate attributes added by our users.

TIA.

Just add some examples for OTel events based log definitions as well as AppD events based log definitions in examples with some details in the corresponding wiki.

I would prefer that one, because it gives the most clarity. if we (appd) decide to move to the official way of doing things we still can remove those examples


Connecting to K8s cluster

I already have Prometheus configured seperately and when I try to connect K8s plugin with the Prometheus URL (via browser) it says cant deploy as the data source already exists.
Thats understood as the deployment of Prometheus is already done, but then none of the dashboards work as they Data source not configured.
How is it possible to attach an existing datasource to the K8s plugin dashboards ?

Any news ?

Any news ?


Intellisense popup appear and disappear on every keystroke

VSCode Version: Code 1.13.0 (376c52b955428d205459bea6619fc161fc8faacf, 2017-06-08T16:34:53.678Z)
OS Version: Darwin x64 16.6.0
Extensions:

Extension
Author
Version

theme-monokai-dark-soda
AdamCaviness
0.0.5

unity-debug
Unity
1.2.0

code-runner
formulahendry
0.6.18

graphql-for-vscode
kumar-harsh
1.4.1

HTMLHint
mkaufman
0.3.3

cpptools
ms-vscode
0.11.4

csharp
ms-vscode
1.10.0

java
redhat
0.5.0

PostCSS
ricard
1.0.1

stylelint
shinnn
0.24.8

ink
tommisundstrom
0.1.0

vim
vscodevim
0.8.5

Steps to Reproduce:

Update from previous version to 1.13.0
On SOME files, the intellisense would flicker on and off when typing. When I mean some files, this means even if I have vertical split screen on, sometimes the one on the left will be ok, but the one on the right will flicker.

Please look at this GIF I made.
https://gfycat.com/GloriousFabulousAmazondolphin

It's the same issue as this: https://github.com/Microsoft/vscode/issues/28559
This is related to VSCodeVim, but it is due to some breaking change with the new VSCode release.
I posted my question here: https://github.com/Microsoft/vscode/issues/28559#issuecomment-308294379

Thanks @Chillee
@5argon Can you disable all extensions (Run code --disable-extensions to start VS Code in an disabled extension mode) and see if you still see the issue?

@ramya-rao-a This issue is fixed on our end. You can close this issue.

Thanks @Chillee


Connecting the Disney BRDF to the material output breaks rendering

Reported here: https://blenderartists.org/forum/showthread.php?441610-Appleseed-1-8-0-beta-Released&p=3261844&viewfull=1#post3261844

I have same issue.
Following is the error report from the console:

Traceback (most recent call last):
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\render.py", line 70, in render
self.__render_scene(scene)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\render.py", line 91, in __render_scene
exporter.export(scene, project_filepath)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 119, in export
self.__emit_project(scene)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 144, in __emit_project
self.__emit_scene(scene)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 157, in __emit_scene
self.__emit_assembly(scene)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 169, in __emit_assembly
self.__emit_objects(scene)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 301, in __emit_objects
self.__emit_geometric_object(scene, object, False)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 335, in __emit_geometric_object
self.__emit_dupli_object(scene, dupli_object[0], dupli_object[1], ob_mblur)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 418, in __emit_dupli_object
self.__emit_mesh_object_instance(scene, object, object_matrix, new_assembly)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 631, in __emit_mesh_object_instance
self._emitted_materials[material] = self.__emit_material(material, scene)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 745, in __emit_material
self.__emit_front_material(material, front_material_name, scene, layers, material_node, node_list)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 758, in __emit_front_material
bsdf_name = self.__emit_front_material_bsdf_tree(material, material_name, scene, layers, material_node, node_list)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 801, in __emit_front_material_bsdf_tree
self.__emit_disney_brdf(material, bsdf_name, 'front', None, node)
File "C:\Users\ejnar\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\blenderseed\project_file_writer.py", line 1133, in __emit_disney_brdf
base_coat_name = inputs["Base Coat"].get_socket_value(True)
KeyError: 'bpy_prop_collection[key]: key "Base Coat" not found'
location: :-1
Attached is my system info.
system-info.txt

Thanks @ejnaren, this issue will be fixed in the next beta that we will release shortly.

#114

Base color is called base coat in node parameter pull. Correcting names fixes issue.

#118


[devtools] update sessionstorage content

What's changed, or what was fixed?

update session storage content

Fixes: N/A
Target Live Date: 2019-03-15

[x] This has been reviewed and approved by @kaycebasques
[x] I have run npm test locally and all tests pass.
[x] I have added the appropriate type-something label.
[x] I've staged the site and manually verified that my content displays correctly.

CC: @petele

Whoops!
There were 2 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/tools/chrome-devtools/manage-data/local-storage.md#L20 - Common typo found: 'Service Worker' Should it be 'service worker'? Capitalize Service if it's the first word in the sentence.
src/content/en/tools/chrome-devtools/manage-data/local-storage.md#L141 - Common typo found: 'Service Worker' Should it be 'service worker'? Capitalize Service if it's the first word in the sentence.

:tada: This has been pushed live to https://developers.google.com/web/


Assumption about TBasket byte for JaggedArray was wrong

Replace assumption with dummy value that reproduces correct behaviour

I don't see where in that reference "3" is revealed to be a safe value, but okay.

The primary reason for this PR is to remove the false assumption and instead hardcode a value that we know works. (Even if all values > 2 work, we probably do not want to keep the old items.shape[0] + 1 in the codebase because it makes no sense and might lead to potential confusion when understanding the code or debugging in the future)
Also, all of my assumptions (for eg. about fEntryOffset and fNevBuf) were tested with the byte in question being set to a value that triggers this - https://github.com/root-project/root/blob/master/tree/tree/src/TBasket.cxx#L926-L928. I tested some values manually, and saw that 3 worked so I decided to go with 3.

Does this have anything to do with the int8/char problem?

Unforunately no.

That's definitely a good reason to do it. Misleading code is worse.

@jpivarski Should we merge this? The travis tests are being shown as pending here, but if you click on them (go to the travis website), you will find that all the tests are green.

@jpivarski Should we merge this? The travis tests are being shown as pending here, but if you click on them (go to the travis website), you will find that all the tests are green.

Yeah, they are. I'm getting tired of Travis's quirks—Uproot 4 will either use Azure or GitHub Actions.


actualizando diagramas

Codecov Report

Merging #25 into develop will increase coverage by 1.13%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             develop      #25      +/-   ##
=============================================
+ Coverage      84.34%   85.48%   +1.13%
- Complexity        56       62       +6
=============================================
  Files             17       17
  Lines            115      124       +9
  Branches           7        8       +1
=============================================
+ Hits              97      106       +9
  Misses            17       17
  Partials           1        1

Impacted Files
Coverage Δ
Complexity Δ

...pregunta/multiplechoice/MultipleChoiceParcial.java
93.33% <0.00%> (+10.00%)
7.00% <0.00%> (+6.00%)

Continue to review full report at Codecov.

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


ImportError: cannot import name '_get_field_description'

DRF OpenAPI version: 1.0.0
Python version: 3.5
Operating System: OSX

Description
Trying to implement DRF OpenAPI on a Python 3.5 django project.
Ran into error: ImportError: cannot import name '_get_field_description'
Requirements do not say anything about supported Python versions but I'm guessing now 3.6 is required.
What I Did
Followed instructions as described.
Ran into trouble due to example using Python f-strings which are unsupported on Python 3.5 .
Attempted to correct example to supported Python 3.5.
Ran into the error.
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x107465a60>
Traceback (most recent call last):
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 121, in inner_run
    self.check(display_num_errors=True)
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/core/management/base.py", line 374, in check
    include_deployment_checks=include_deployment_checks,
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/core/management/base.py", line 361, in _run_checks
    return checks.run_checks(**kwargs)
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/core/checks/registry.py", line 81, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/core/checks/urls.py", line 14, in check_url_config
    return check_resolver(resolver)
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/core/checks/urls.py", line 24, in check_resolver
    for pattern in resolver.url_patterns:
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/urls/resolvers.py", line 313, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/django/urls/resolvers.py", line 306, in urlconf_module
    return import_module(self.urlconf_name)
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/Users/admin/Documents/GIT/workflows_service/workflows/urls.py", line 18, in <module>
    from drf_openapi import urls
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/drf_openapi/urls.py", line 3, in <module>
    from drf_openapi.views import SchemaView
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/drf_openapi/views.py", line 6, in <module>
    from drf_openapi.codec import OpenAPIRenderer, SwaggerUIRenderer
  File "/Users/admin/Documents/GIT/virtualenvs/workflows/lib/python3.5/site-packages/drf_openapi/codec.py", line 12, in <module>
    from openapi_codec.encode import _get_links, _get_field_description
ImportError: cannot import name '_get_field_description'

I can confirm, that Python 3.6 is not required; maybe to run the example. But this is only due to the format-string thing.
This looks like you are missing the openapi_codec python package. Please do a
pip install openapi-codec with your virtual env pip.
You may also need the django rest framework (pip install djangorestframework) and the Swagger package (pip install django-rest-swagger).

Hi,
I have openapi-codec==1.2.1, djangorestframework==3.5.3, django-rest-swagger==2.1.0 in my requirements.txt (and double checked that they're already installed). I see there's a new openapi-codec 1.3.2, is that required?

Hey, I am not sure if this is really required but I also use 1.3.2. Maybe try this.
My current configuration for running drf_openapi is:
django-rest-swagger==2.1.2
djangorestframework==3.6.4
openapi-codec==1.3.2

This should have been fixed on the latest version.


Passing a Root CA into bettertls export-tests?

First of all, thanks for creating this test suite!
I'm currently poking around to see if I can embed your tests into x509-limbo, which covers non-TLS testcases as well.
To do that, I'm currently running bettertls export-tests to generate the testcase JSON, and then check it into the repository via CI automation (to prevent a runtime dependency on Go in our own automation).
At the moment, it looks like bettertls export-tests always recreates the Root CA, meaning lots of cascading changes whenever we re-generate the JSON. So, my feature request: would it be possible to have bettertls export-tests take a -rootCA option, similar to the bettertls server subcommand?
Thanks in advance! If this seems reasonable to you, I'd be happy to attempt a PR for this.

Yea, I think this would make sense. If you want to factor the code in run_server.go for loading a passed-in root CA and share that between run_server.go and export_tests.go I think that would be great.

Sounds good! I'll attempt that tomorrow.


Review 's Profile

GitHub Profile Link
https://github.com/MrKrishnaAgarwal

This issue was for testing.
Thanks


Support for Multi-Word Tokens Such as "TO DO" and "FIX ME"

It would be nice to see support for multi-word tokens such as "TO DO" and "FIX ME", whether by default or in custom lists.

@bdsexton It would be nice, but complexity is my enemy here.  It does allow - and _, anything that conforms to this regex [\w\-]+?.  One thing worth investigating though might be to allow a custom name for a single word token.  So the list name could be "TO DO" for the token TODO.

I am not sure this really conforms to standard practices but can see the appeal in having such a feature.

@piascikj My apologies for the very late reply. I have not used imdone in quite a while except to check what it would do after I rejected the xcodebuild prompt it triggers when updating, but thank you for your efforts and your consideration.
@nblackburn I am not aware of any standard practice for such comments. I have often used "TO DO" and tools such as the various JetBrains IDEs support that.


Fix panic when creating the ConfigMap watch fails

What and why?
(*K8sConfigMapWatcher).Watch panics when creating the ConfigMap watcher fails, as it attempts to call Stop() on nil (returned by client-go) when creating the watch returns an error.  This is pretty simply fixed by only deferring the call once the error check has occurred. Fixing this issue will cause errors returned from the Kubernetes API to be properly logged, rather than causing a panic.
Testing Steps
I added a test for this behavior, and confirmed that the test causes a panic without the relevant code change.

[X] Added unit tests for this feature (make test)

Reviewers
Required reviewers: @byxorna

Thank you for submitting this pull request, however I do not see a valid CLA on file for you. Before we can merge this request please visit https://yahoocla.herokuapp.com/ and agree to the terms. Thanks! :smile:

@noahgoldman thanks for the contribution, and for signing the CLA so quickly! This looks perfect - great catch, great PR description, great test coverage!
I see no reason to not merge this immediately :)

Sure! Appreciate the fast response 😄

@byxorna Any chance you all could tag a new release? Would love to pull in this fix, but I'd prefer to not have to build it myself. 😄

@noahgoldman sure thing - FYI https://hub.docker.com/r/tumblr/k8s-sidecar-injector/tags latest contains this commit already.

Good point, I didn't think to check latest.  Thanks!


No module named kmerdb in the bin script from pyproject.toml's entry_point.

Traceback (most recent call last):
  File "path/to/python-version/bin/kmerdb", line 5, in <module>
    from kmerdb import cli
ModuleNotFoundError: No module named 'kmerdb'

Looks related to this StackOverflow post.
https://stackoverflow.com/questions/73958714/python-error-when-creating-cli-entry-point-configuration-for-my-project-what-am

What is my environment?
Python 3.10.1
pip 22.3.1
What have I tried?
cd kmerdb
python -m build
pip install -I dist/kmerdb-0.7.2-py3-none-any.whl

Install completes successfully.
pyproject.toml
[build-system]
requires = ["setuptools", "wheel", "numpy>=1.19.0", "Cython>=0.29.21"]
build-backend = "setuptools.build_meta"

[project]
name = "kmerdb"
version = "0.7.2"
description = "Yet another kmer library for Python"

#...

[project.entry-points]
console_scripts = {kmerdb = "kmerdb:cli"}

Expected
I expect the installed bin script to not produce the following.
(kdb) [matt@argo] git:pyprojecttoml_build_twine+ </ffast2/kdb>>kmerdb -h
Traceback (most recent call last):
  File "/home/matt/.pyenv/versions/kdb/bin/kmerdb", line 5, in <module>
    from kmerdb import cli
ModuleNotFoundError: No module named 'kmerdb'
(kdb) [matt@argo] git:pyprojecttoml_build_twine+ </ffast2/kdb>>python
Python 3.10.1 (main, Jan  1 2022, 21:28:19) [GCC 11.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import kmerdb
>>> # Imports successfully
(kdb) [matt@argo] git:pyprojecttoml_build_twine+ </ffast2/kdb>>cat ~/.pyenv/versions/kdb/bin/kmerdb
#!/home/matt/.pyenv/versions/3.10.1/envs/kdb/bin/python3.10
# -*- coding: utf-8 -*-
import re
import sys
from kmerdb import cli
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(cli())

Issue borking the debug process on my end:  https://github.com/pyenv/pyenv/issues/2572

It seems that this is a generic issue regardless of the virtualenv strategy I'm using. For PyPI folks who may come here, know that I've ruled out a middleware-specific issue by using both classical virtualenv and pyenv virtualenv scenarios to instantiate my Python virtual environment.
The issue is that regardless of whether my python package kmerdb command is invoked from a pyenv shim, or classically with the bin script produced by setup on installation of my wheel, built with python -m build, it has an invalid pythonpath somehow in the shell script.
Virtualenv, pip, setuptools, and python versions can all be found in the relevant issues in your repository.
But again,
pip 22.3.1
virtualenv 20.17.1
python 3.10.1
setuptools 61.0 (specified in pyproject.toml)
The legacy setup.py which did produce the correct bin script can be found here

What's interesting is that the virtualenv seems to be setting my pythonpath correctly, so i can still import and invoke the module independently, just can use the kmerdb bin script. For example, the one found at .venv/bin/kmerdb, with the contents as described previously:
#!path/to/.venv/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from kmerdb import cli
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(cli())

Which again produces the output as above, regarding the kmerdb module not being available to the bin script.
Thanks again for your help!


Helm unset value seems not working

I wanted to upgrade my Rook installation with unset CPU limitation, but after the upgrade, the limitation still exists with the default value (500m).
Am I doing something wrong, or it's maybe a bug?
Helm Controller version: v0.11.1
Chart: https://github.com/rook/rook/tree/v1.6.9/cluster/charts/rook-ceph
HelmRelease:
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: rook-ceph
spec:
  chart:
    spec:
      chart: rook-ceph
      version: v1.6.9
      sourceRef:
        kind: HelmRepository
        name: rook
  interval: 24h
  maxHistory: 3
  releaseName: rook-ceph
  storageNamespace: rook-ceph
  targetNamespace: rook-ceph
  values:
    csi:
      enableCephfsSnapshotter: false
      enableRBDSnapshotter: false
      kubeletDirPath: /opt/rke/var/lib/kubelet
      pluginTolerations:
        - key: node.netfone.hu/environment
          operator: Exists
    pspEnable: false
    resources:
      limits:
        cpu: null
        memory: 256Mi
      requests:
        memory: 128Mi

Helm values (got with helm CLI v3.2.4):
# helm -n rook-ceph get values rook-ceph
USER-SUPPLIED VALUES:
csi:
  enableCephfsSnapshotter: false
  enableRBDSnapshotter: false
  kubeletDirPath: /opt/rke/var/lib/kubelet
  pluginTolerations:
  - key: node.netfone.hu/environment
    operator: Exists
pspEnable: false
resources:
  limits:
    memory: 256Mi
  requests:
    memory: 128Mi

Helm as a pretty rich history around this bug, and there is a possibility that the merging code we borrowed and/or drew inspiration from for our own merging operations wasn't patched at the time.

Hey @mecseid , I have been unable to reproduce this on the latest version of flux.
flux: v0.20.1
helm-controller: v0.12.1

Can you try upgrading to flux?

Hi @SomtochiAma . Sorry for late response, I didn't have so much time to upgrade flux, until now. :)
After upgraded to v0.22.1 and helm-controller to v0.12.2, I don't see any difference in helm values.
To check maybe an upgrade helps it, I pushed my chart to next patch version (rook v1.6.10), but I got the same result for
helm -n rook-ceph get values rook-ceph.
Maybe am I doing something wrong?

Hey @mecseid, I have been able to reproduce this on my end and currently looking for a fix.

Cannot reproduce on helm-controller: v0.20.1
Steps used:

Deployed a rook HelmRelease with CPU/Memory values override
After the HelmRelease is in Ready state, updated the HelmRelease object so that values = "" -- this triggered Helm Upgrade
Ran helm -n rook-ceph get values rook-ceph to verify and get

USER-SUPPLIED VALUES:
null

@somtochiama was you able to look into this further?

also waiting for a fix of this

Still happening with flux version 0.38.3 and helm-controller v0.28.1.
Managed to workaround this by using postRenderers with delete patches.

Still happening with flux version 0.38.3 and helm-controller v0.28.1. Managed to workaround this by using postRenderers with delete patches.

@Xplouder can you give a short example of how you did this?
@somtochiama any news on a potential fix for this? I also got bitten by a value that didn't fall back to the Chart default when I removed my override from the values list in my HelmRelease definition

@torbjornvatn sure, needed to do this to remove the annotations, the chart did not allow to disable them in my use case:
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: matomo
spec:
  releaseName: matomo
  chart:
    spec:
      chart: matomo
      version: 0.2.18
      sourceRef:
        kind: HelmRepository
        name: bitnami
        namespace: flux-system
  interval: 5m0s
  postRenderers:
    - kustomize:
        patches:
          - target:
              name: matomo
              kind: Deployment
            patch: |-
              - op: remove
                path: /spec/template/metadata/annotations/prometheus.io~1port
              - op: remove
                path: /spec/template/metadata/annotations/prometheus.io~1scrape

...

Also run into this issue when trying to override an object like the security context:
I tried the following options:
securityContext: {}

securityContext: ~

securityContext: null

Workaround (I know that a postRenderer also works but I want to post that option here, too):
securityContext:
  fsGroup: 0
  runAsGroup: 0
  runAsNonRoot: false
  runAsUser: 0

Can we do something to get this solved? It's very hard to figure out that this a issue with the helm-controller.

It's a bit sad to see this issue not being popular enough because the use case seams to be pretty common.
@somtochiama @hiddeco can we do something to get this fixed after >2 years?

I suspect this will be solved in the next minor release, as Helm v3.13.x included changes to properly reset values when they have been set to null.

I believe you have more problems here. Currently, if you set a key under values to null it will get stripped because the CRD has preserve-unknown-fields but that still prunes unknown fields with a null value.  I think you would need another way to indicate that a value needs to be replaced with a null when helm is invoked.


The arguments and returns of tf.keras.layers.GRUCell.call() make no sense at all

URL(s) with the issue: https://github.com/tensorflow/tensorflow/blob/r1.14/tensorflow/python/keras/layers/recurrent.py#L1615 https://github.com/tensorflow/tensorflow/blob/r1.14/tensorflow/python/keras/layers/recurrent.py#L1718
Please provide a link to the documentation entry, for example:
https://www.tensorflow.org/api_docs/python/tf/keras/layers/GRUCell
Description of issue (what needs changing):
The states argument to tf.keras.layers.GRUCell.call() is indexed with h_tm1 = states[0]  # previous memory, and the function returns h and [h], which is the same value?
Clear description
Why does this occur? Its inconsistent with the pytorch torch.nn.GRUCell implementation (https://pytorch.org/docs/stable/nn.html#grucell).
I noticed the states issue when I was converting a project from pytorch to tf.keras and the same code, with just the GRUCell swapped from pytorch to tf.keras, did not work. The error message was tensorflow.python.framework.errors_impl.InvalidArgumentError: In[0] is not a matrix. Instead it has shape [200] [Op:MatMul] name: transition/gru_cell/MatMul/, and the solution was to replace my hidden with [hidden] for the states parameter.
Furthermore, when I got my return types, they were a tuple rather than the output. Upon further inspection, the tuple CONTAINED THE SAME VALUE TWICE.
Is there any reason it does this? In the doc this is not explained AT ALL.
Correct links
https://github.com/tensorflow/tensorflow/blob/r1.14/tensorflow/python/keras/layers/recurrent.py#L1615
https://github.com/tensorflow/tensorflow/blob/r1.14/tensorflow/python/keras/layers/recurrent.py#L1718
Parameters defined
states parameter is the confusing one in question.
Returns defined
return h, [h] makes no sense
Raises listed and defined
Irrelevant
Usage example
self.rnn = tf.keras.layers.GRUCell(num_units)
self.rnn(input, hidden)
where input, hidden = shape(N, num_units) doesn't work. Needs to be changed to:
self.rnn(input, [hidden]) to execute.
Furthermore, on the LHS of self.rnn, rather than just an x = self.rnn(...), I need to do x, _ = self.rnn(...)
Why?
Submit a pull request?
I would gladly change this if someone would confirm this is an issue.

Hi @jpatts,
Thanks for reporting this, but I believe this code is correct.
The keras rnn api is: You write a layer that returns an output, and a list of internal states.
The list of internal states is what the layer passes to the next timestep as states.
Compare to LSTM
GRUCell returns h,[h]: the first h is the output. [h] is the list of internal states to pass to the next timestep. This makes sense because a GRU has one recurrent connection. That connection is its output from the last timestep.
See the Keras RNN API for more detail.

Currently, this issue is the best documentation on GRUCell usage. GRUCell could really do with some improved documentation.

@kevindoran Yes you're right, also it took me a while to find this page and understand the outputs of GRUCell


support for signing of delegation signatures

Describe the solution you'd like
As discussed in multiple chats already we need to support signing of delegation signatures via SH wallet. The absense of this feature currently doesn't allow average users to make use of the AENS wrapping solution I am developing right now.
For me personally this is a blocker to advertise the AENS wrapping solution.
Additional context

https://forum.aeternity.com/t/active-wrapping-aens-names-into-aex-141-nfts/11214/1
https://github.com/aeternity/aepp-sdk-js/issues/1758
https://github.com/aeternity/aepp-sdk-js/pull/1867

if there is a workaround for that with signing raw data in SH wallet let me know 🙏

any ETA for this? 🙏 @subhod-i @paolomolo

ping 😬


Use the new API features

Requires rwmt/MultiplayerAPI#9 and rwmt/Multiplayer#381
The gastronomy change is only to prevent the obsolete method warning

https://github.com/rwmt/Multiplayer-Compatibility/pull/297 needs update when API is available as well

Gastronomy change is obsolete, Vanilla Psycasts Expanded needs to be changed (moved to VEF). Closing, a different PR (with more features updated) coming soon.


App startup time

I've read docs here. And have also watched the \build form 2015 on using the performance profiler. Neither give me sufficient guidance on how to diagnose startup performance for issues that the profiler can't find.
I'm having a major startup performance problem. Using VS 2017 Performance Profiler is shows about 56 seconds in App Code during startup where there is no CPU activity at all. The 56 seconds are in Layout of only 19 elements. When I expand the triangle to see what elements are there, I see only 2 entries, one with 9 elements and a layout time of 0.38 ms and the other of 8 elements with a layout time of 3.42 ms. So it lists only 17 of the 19 elements; the other 2 elements taking the lion share of the time are not shown! In my xaml I don't even see evidence of two other elements, so these must be something .NET is injecting somehow. Where and what are the two elements that are not reported in the profiler that are taking up so much of the startup layout time? How to I determine the cause of this poor startup time?
My app uses Windows Template Studio,

Microsoft.EntityFrameworkCore.Sqlite 2.1.4,
Microsoft.NETCore.UniversalWindowsPlatform 6.1.7,
Microsoft.Services.Store.Engagement 10.1711.28001,
Microsoft.Services.Store.SDK 10.1705.16001,
Microsoft.Toolkit.Uwp.UI.Controls 4.0.0,
Microsoft.Xaml.Behaviors.Uwp.Managed 2.0.0,
MyToolkit.Extended 2.5.16,
Newtonsoft.Json 11.0.2,
Prism.Unity 6.3.0,

See linked WindowsTemplateStudio issue #2621.


DateTime Properties Are Not Localized

The confirmation for activated roles displays the StartDateTime and EndDateTime properties as UTC instead of local time. This makes it unclear what the actual start/end time is.
PS > Get-Date; Get-Date -AsUTC

Wednesday, July 27, 2022 1:23:00 PM
Wednesday, July 27, 2022 5:23:00 PM

PS > Enable-ADRole 'Global Reader (LJnv8vs6uUa3z6Em7nTEUZY-Uygeo0pJj_wBT3Lkhj8-1-e)' -Justification 'foo' -Hours 1

Action       Status      PrincipalDisplayName RoleName      Scope     StartDateTime        EndDateTime
------       ------      -------------------- --------      -----     -------------        -----------
selfActivate Provisioned bmkaiser             Global Reader Directory 7/27/2022 5:23:30 PM 7/27/2022 6:23:00 PM

@bmkaiser most things in Azure are done as UTC but I can look into localizing it, thanks for the submission!