rls textCodument/declaration not implemented

nvim --version: v0.5.0-583-g7b529e791
nvim-lsp version(commit hash): 8e97833
:checkhealth result: all OK
What language server(If the problem is related to a specific language server): rls
Operating system/version: Arch, upgraded
Terminal name/version: termite
$TERM: screen xterm-termite

How to reproduce the problem from neovim startup
Load up any .rs file
Stand on variable
hit :lua vim.lsp.buf.declaration()
Actual behaviour
Throws error E5108: Error executing lua /usr/share/nvim/runtime/lua/vim/lsp/callbacks.lua:259: RPC[Error] code_name = MethodNotFound, message = "server doesn't support  textDocument/declaration"
Expected behaviour
Jumps to declaration
Other
:lua print(vim.inspect(vim.lsp.buf_get_clients())) yields
{ {
    _on_attach = <function 1>,
    callbacks = <1>{
      ["window/logMessage"] = <function 2>,
      ["window/showMessage"] = <function 3>,
      ["workspace/configuration"] = <function 4>
    },
    cancel_request = <function 5>,
    config = {
      callbacks = <table 1>,
      capabilities = {
        textDocument = {
          codeAction = {
            codeActionLiteralSupport = {
              codeActionKind = {
                valueSet = {},
                <metatable> = <2>{
                  __tostring = <function 6>
                }
              },
              <metatable> = <table 2>
            },
            dynamicRegistration = false,
            <metatable> = <table 2>
          },
          completion = {
            completionItem = {
              commitCharactersSupport = false,
              deprecatedSupport = false,
              documentationFormat = { "markdown", "plaintext" },
              preselectSupport = false,
              snippetSupport = true,
              <metatable> = <table 2>
            },
            completionItemKind = {
              valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 },
              <metatable> = <table 2>
            },
            contextSupport = false,
            dynamicRegistration = false,
            <metatable> = <table 2>
          },
          declaration = {
            linkSupport = true,
            <metatable> = <table 2>
          },
          definition = {
            linkSupport = true,
            <metatable> = <table 2>
          },
          documentHighlight = {
            dynamicRegistration = false,
            <metatable> = <table 2>
          },
          documentSymbol = {
            dynamicRegistration = false,
            hierarchicalDocumentSymbolSupport = true,
            symbolKind = {
              valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },
              <metatable> = <table 2>
            },
            <metatable> = <table 2>
          },
          hover = {
            contentFormat = { "markdown", "plaintext" },
            dynamicRegistration = false,
            <metatable> = <table 2>
          },
          implementation = {
            linkSupport = true,
            <metatable> = <table 2>
          },
          references = {
            dynamicRegistration = false,
            <metatable> = <table 2>
          },
          signatureHelp = {
            dynamicRegistration = false,
            signatureInformation = {
              documentationFormat = { "markdown", "plaintext" },
              <metatable> = <table 2>
            },
            <metatable> = <table 2>
          },
          synchronization = {
            didSave = true,
            dynamicRegistration = false,
            willSave = false,
            willSaveWaitUntil = false,
            <metatable> = <table 2>
          },
          typeDefinition = {
            linkSupport = true,
            <metatable> = <table 2>
          },
          <metatable> = <table 2>
        },
        workspace = {
          applyEdit = true,
          configuration = true,
          symbol = {
            dynamicRegistration = false,
            hierarchicalWorkspaceSymbolSupport = true,
            symbolKind = {
              valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },
              <metatable> = <table 2>
            },
            <metatable> = <table 2>
          },
          <metatable> = <table 2>
        }
      },
      cmd = { "rls" },
      filetypes = { "rust" },
      init_options = vim.empty_dict(),
      log_level = 2,
      message_level = 2,
      name = "rls",
      on_attach = <function 7>,
      on_exit = <function 8>,
      on_init = <function 9>,
      root_dir = "/home/peter/dev/rbe",
      settings = vim.empty_dict(),
      <metatable> = <table 2>
    },
    id = 1,
    initialized = true,
    is_stopped = <function 10>,
    name = "rls",
    notify = <function 11>,
    offset_encoding = "utf-16",
    request = <function 12>,
    resolved_capabilities = {
      code_action = true,
      declaration = false,
      document_formatting = true,
      document_highlight = true,
      document_range_formatting = false,
      document_symbol = true,
      find_references = true,
      goto_definition = true,
      hover = true,
      implementation = true,
      signature_help = false,
      signature_help_trigger_characters = {},
      text_document_did_change = 2,
      text_document_open_close = true,
      text_document_save = false,
      text_document_save_include_text = false,
      text_document_will_save = false,
      text_document_will_save_wait_until = false,
      type_definition = false,
      workspace_symbol = true
    },
    rpc = {
      handle = <userdata 1>,
      notify = <function 13>,
      pid = 581908,
      request = <function 14>
    },
    server_capabilities = {
      codeActionProvider = true,
      codeLensProvider = {
        resolveProvider = false
      },
      completionProvider = {
        resolveProvider = true,
        triggerCharacters = { ".", ":" }
      },
      definitionProvider = true,
      documentFormattingProvider = true,
      documentHighlightProvider = true,
      documentRangeFormattingProvider = false,
      documentSymbolProvider = true,
      executeCommandProvider = {
        commands = { "rls.applySuggestion-581908", "rls.deglobImports-581908" }
      },
      hoverProvider = true,
      implementationProvider = true,
      referencesProvider = true,
      renameProvider = true,
      textDocumentSync = 2,
      workspaceSymbolProvider = true
    },
    stop = <function 15>,
    workspace_did_change_configuration = <function 16>
  } }

I just switched to rust-analyzer :)

Thanks for your report. The configs here are best-effort:

It is hoped that these configurations serve as a "source of truth", but they are strictly best effort. If something doesn't work, these configs are useful as a starting point, which you can adjust to fit your environment.

If you have an improvement or fix, please send a PR!
If you have a specific question we'll try to answer it (keeping in mind the configs in this repo are best-effort and unsupported).
If you found a bug in the core lsp module, the best way to get it fixed is to describe steps to reproduce it without the particular LSP server and other factors particular to your environment. Or better, by adding a failing test case to lsp_spec.lua, which has code to setup a fake LSP server to simulate various scenarios.

Hi got the same issue but with rust-analyzer


Added SHAPE website details.

This is a useful link to the PHE Strategic Health Asset Planning and Evaluation mapping tool.

Looks good


node.js app with static dir does not serve index.html

Prerequisites

[x] I am running the latest version. (up upgrade)
[x] I searched to see if the issue already exists.
[x] I inspected the verbose debug output with the -v, --verbose flag.
[ ] Are you an Up Pro subscriber?

Description
I have a node.js app with a public directory containing index.html - however visiting / does not serve index.html. All the other files in my public directory are served fine.
My up.json looks like this:
{
  "name": "test-app",
  "static": {
    "dir": "public"
  }
}

If I add "type": "static" to my config, index.html is served fine

A static site is one that has no runtime. It's just a file server. Because you have an app.js (assumption), Up disregards your "static" config, knowing you have a node.js runtime.
If that's the case, you either need to include something like serve-static within your Node.js app, or remove the Node portion and just make it a static server... Depends what you need / are doing of course!

The documentation says it's possible to combine serving static files with a dynamic app. Everything except index.html is being served fine. For now I have copied index.html to app.html and have a redirect in my node app from / to app.html but that's not ideal

Hmm yea I'd like to hear more about the use-case! Currently if you add "type": "static", it will serve index.html files and redirect from /contact/index.html to /contact/ for example, but not when it's used with a dynamic app since your app likely wants to control the contents of /

I tried using the redirects config to serve index.html when hitting "/" but that didn't seem to work either. My use case is that I have a static site already generated that I want to enhance with a few extra dynamic URLs.
I guess I could use serve-static as Luke suggested, just for index.html

Ah, cool, combining static & dynamic is news to me. When was that added? 😅
I would give preference to file existence over route execution. That'll probably be more of a performance hit, but that's what other services (like Firebase hosting) and serve-static do.
@nick If you just need that one file, I'd not use serve-static since it's pretty hefty for a single need. You can do something like this until the feature has been added:
const index = fs.readFileSync('./public/index.html', 'utf8'); // read it early

app.get('/', (req, res) => {
  res.setHeader('content-type', 'text/html');
  res.end(index);
});

Or res.sendFile if using Express.

Ah yea, using res.sendFile works great. Will use that for now...

@lukeed pretty recent :D — I'd like to do what koa-static does with options for both


[Rubocop] Layout Cop Offenses

Begins to address #1202
This is just the first stack of the 'Layout' cops corrected. I broke up the changes into a set of commits that should be able to easily digest.
I also decided to not move on the Layout/IndentHeredoc cop, since I was a bit unsure how you would prefer to have HEREDOC spacing enforced (there is no rubocop default). I didn't notice anything in the greater thoughtbot policy on this either. See: https://github.com/rubocop-hq/rubocop/blob/master/manual/cops_layout.md#layoutindentheredoc

Also, I'll be avoiding any @houndci-bot issues unless I introduced them in order to not muck up the waters too much.

Ignored the gemfiles/;  feel free to squash merge.
I'll 'tackle' the HEREDOCs in a later PR. Since we do have a hard dep on activesupport (in the gemspec) I'm leaning towards enforcing the active support style, which would be the MESSAGE.strip_heredoc style since it would be rude to bump the ruby version requirement to 2.3 just for enforcing squiggly style <<~MESSAGE.

fb 5 won't officially support anything before Ruby 2.3, so the squiggly HEREDOC is a possibility.


modify ExportedAt  to include date + time

This closes #8
I've modified the ExportedAt attribute to include the date and time in the following format:
October 18, 2023 12:49:37 AM
Let me know if you need me to modify it in any way.
I would also kindly ask you to add the hacktoberfest-accepted label to this pull request please.
Thank you

@Yousef-Majidi I issued a PR into your branch with a suggested change.

@frankkilcommins Thanks for the feedback. I've merged your suggestion.


Getting some more DBs than MySQL and H2

MySQL and H2 are hard coded. Getting some more DBs supported by JDBC

We have discontinued any further development in jaggery and hence closing this PR.


Tags in Posts

We need to have an empty "tags":[] returned in post objects to match the spec.

Closed by #154


AttributeError when passwords do not match on user creation form

Wagtail will crash with the following error if the two passwords don't match on the user creation form:
AttributeError at /admin/users/add/

'UserCreationForm' object has no attribute 'error_messages'

On this line: https://github.com/torchbox/wagtail/blob/master/wagtail/wagtailusers/forms.py#L92

Looks like this was introduced in 1.0 when we changed around the forms to support users without usernames


Replace deprecated API to eliminate warning

Eliminates that irritating warning in our gradle build log that we are using a deprecated API.

LGTM


Duplicate interface definition for class 'RCTLinkingManager'

I've followed the README letter by letter and I'm getting this error when I try to build with XCode:
node_modules/react-native/Libraries/LinkingIOS/RCTLinkingManager.h:14:1::

I presume this could be a conflict with the react-navigation library, similar to https://github.com/fullstackreact/react-native-oauth/issues/144. Thoughts / help?

Alright, incase anyone else hits this issue, it is indeed a conflict with the setup instructions for react-navigation. React Navigation wants you to add this to your AppDelegate.m:
/* React Navigation */
#import <React/RCTLinkingManager.h>
/* React Navigation */

But it looks like [this is already done for you in OAuthManager.h)[https://github.com/fullstackreact/react-native-oauth/blob/3fdcb4c88671e2ad8e4fb311ba772294b3455c4a/ios/OAuthManager/OAuthManager.h#L19]. I commented this line out and the build succeeded.


Replace ODC with Kupo for its core functionality

Without support for getting whole transactions by hash, Kupo can't replace ODC in its entirety. What's the plan with regards to that?

@jy14898 we can drop tx-by-hash from the API (actually we only need to check for transaction presence in awaitTxConfirmed, we do not need to get the contents).
We can do that using https://cardanosolutions.github.io/kupo/#operation/getMetadataBySlot - query for first slot of every block before the chain tip continuously


Allow reading from multiple redis servers

Original request: https://github.com/elasticsearch/logstash/issues/1418
Proposed interface:
input {
  redis {
    host => [ "host1", "host2", ... ]
    ...
  }
}

+1

Is this not better served with multiple redis inputs, one per host? Each getting their own thread for instance.

If you have a redis cluster then you want the ability to failover to another host.

+1

I have setup an ELK with redis cluster. I forked the plugin and modified a little bit to cater to my need which let logstash connect to redis cluster as input.
https://github.com/raycw/logstash-input-redis


Unit of measurement for visceral fat missing

It probably is in kg or %.
Thanks for your great addition to home assistant :)

Official Xiaomi app for Mi body composition scale describes Visceral fat value as a "level". So it is not a kg or percent, but a some internal unit of measurement.


Xdebug 3 doesn't work with PHP 7.4

OS type
Linux
Drupal version
8
Codebase
Mounted codebase
Describe the bug
XDebug doesn't work on
image: wodby/drupal-php:7.4-dev-4.21.0
but works fine on
image: wodby/drupal-php:7.4-dev-4.17.0
Output of docker info
Client:
 Debug Mode: false

Server:
 Containers: 28
  Running: 11
  Paused: 0
  Stopped: 17
 Images: 1365
 Server Version: 19.03.13-ce
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 269548fa27e0089a8b8278fc4fc781d7f65a939b.m
 runc version: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 init version: fec3683
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.9.11-3-MANJARO
 Operating System: Manjaro Linux
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 23.18GiB
 Name: veryha-vostro5581
 ID: GSIC:HWV4:5CNU:M7QM:E6WR:XB5L:ASLE:CZ4W:Z57L:MOEP:POIA:3JRX
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Username: veriga
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  <IP_ADDRESS>/8
 Live Restore Enabled: false

Contents of your docker-compose.yml
  php:
    image: wodby/drupal-php:7.4-dev-4.21.0
    container_name: "${PROJECT_NAME}_php"
    environment:
      SIMPLETEST_BASE_URL: "http://nginx"
      SIMPLETEST_DB: "${DB_DRIVER}://${DB_USER}:${DB_PASSWORD}@${DB_HOST}/${DB_NAME}#tests_"
      MINK_DRIVER_ARGS_WEBDRIVER: '["chrome", {"browserName":"chrome","goog:chromeOptions":{"args":["--disable-gpu","--headless"]}}, "http://chrome:9515"]'
      PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
      DB_HOST: $DB_HOST
      DB_PORT: $DB_PORT
      DB_USER: $DB_USER
      DB_PASSWORD: $DB_PASSWORD
      DB_NAME: $DB_NAME
      DB_DRIVER: $DB_DRIVER
      PHP_FPM_USER: wodby
      PHP_FPM_GROUP: wodby
      COLUMNS: 80
      PHP_XDEBUG: 1
      PHP_XDEBUG_MODE: debug
      PHP_IDE_CONFIG: serverName=default
      PHP_XDEBUG_IDEKEY: "PHPSTORM"
      PHP_XDEBUG_REMOTE_HOST: <IP_ADDRESS> # Linux
    volumes:
      - ./www:/var/www/html

What wrong I did? Seems the configurations are not correct.

Same, I hope somebody will answer.

Same, I hope somebody will answer.

I am having problem getting xdebug working on current docker4drupal release on Mac Mojave. Did configs as indicated in the docs and I get (php-debug.log):
"[Step Debug] WARN: Creating socket for '<IP_ADDRESS>:9003', poll success, but error: Operation in progress (29).
[130] "
Is this the same error others are seeing?

Assigning ports in the PHP service in docker-compose.yml seems to work?
I use Mac OS Mojave latest...
in my docker-compose.yml - if I add ports to the PHP service like such:
PHP     ...     ports:        - 9003:9000
AND I DO NOT un-comment 'PHP_XDEBUG_CLIENT_HOST: host.docker.internal"
(so my phpInfo() tells me my 'xdebug.client_host' is '<IP_ADDRESS>'
this is what my Xdebug log looks like:
`[130] Log opened at 2021-02-12 00:43:57.447524
[130] [Step Debug] INFO: Connecting to configured address/port: <IP_ADDRESS>:9003.
[130] [Step Debug] INFO: Connected to debugging client: <IP_ADDRESS>:9003 (through xdebug.client_host/xdebug.client_port). :-)
[130] [Step Debug] -> XdebugDerick Rethanshttps://xdebug.orgCopyright (c) 2002-2021 by Derick Rethans
[130] [Step Debug] ->
[130] Log closed at 2021-02-12 00:43:57.543533
`
SO it looks like I am connecting to my client (my IDE).
My IDE still fails to stop at the breakpoints, but that trouble is most likely on my IDE - sill mashing around on that.

How I fixed this in my environment:
I use a Mac/Mojave current
In my case I noticed that the php container could not resolve 'host.docker.internal'
To address this issue I removed Docker from my Mac and re-installed it. And now Bob's my uncle. (it works as expected)

@Mykola-Veryha You may try the following setup that works for me in Linux, PhpStrom 2020.3.2
PHP Xdebug-related env vars:
Since Xdebug v3 we need only a few env vars:
      PHP_XDEBUG: 1
      PHP_XDEBUG_MODE: debug
      PHP_XDEBUG_START_WITH_REQUEST: "yes"
      PHP_IDE_CONFIG: "serverName=default" # required for debugging of CLI requests

PhpStorm PHP server config

Server Name must be the same as in PHP_IDE_CONFIG env var, default in my case
Map remote docroot (dir with Drupals index.php`) to docroot in your project

PhpStorm Xdebug config
It's default for me except Force break at first line when no path mapping specified checkbox. In combination with PHP_XDEBUG_START_WITH_REQUEST I see 500 HTTP error response sometimes. It caused by Drupal that checking Drush version by executing CLI Drush command during HTTP request.  But Drush files located in a container, not visible for PhpStorm and thus cannot be debugged. Once Force break at first line when no path mapping specified checkbox enabled in that case, you see that PhpStorm broke the execution and 500 error response in the browser.

Doesn't work for me. All I get is:
[03-Mar-2021 01:25:08 UTC] Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(
[03-Mar-2021 12:25:09 Australia/Sydney] Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(
[03-Mar-2021 12:25:09 Australia/Sydney] Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(

Whoops, got it. Needed the latest 4.24.0 image release.

Thank you @PavelPrischepa the PHP_XDEBUG_START_WITH_REQUEST: "yes" was the missing piece

For myself (on MacOS), I had to add the following to the docker-compose file for PHP:
PHP_XDEBUG_CLIENT_HOST: "host.docker.internal"
This seems to have replaced the previous value setting of PHP_XDEBUG_REMOTE_HOST that was used before Xdebug3.


Controller specs which are generated by scaffolds do not pass under vanilla Rails 5

This is because they use assigns, and by default the rails-controller-testing gem doesn't exist.

I'd like to give fixing this one a shot! I'm investigating now.


why the resolution won't change sprite size

If I change the game.resolution = 2, the sprite size always be 50x50，which is small in new canvas, I think it should be 100x100.....

Like https://codepen.io/samme/pen/QvpBpM?

In pixi.js when I change the resolution, the sprite would auto calculate to fit it. So l wonder how could I use it property? And what the meaning of resolution in phaser?

I'm not sure. In https://codepen.io/samme/pen/QvpBpM it seems to me that the texture size (64 × 64 game pixels) is correct but the sprite size (128 × 128 game pixels) is not.

It worked properly in Phaser v2.6.2 and is broken since at least Phaser CE v2.7.3.


[eventlog] Old error log event and association deprecate

tests/test_association.robot
tests/test_eventlog.robot
Remove or deprecate these suites once they removed the old org interface for errorlog
https://github.com/openbmc/openbmc/issues/1327 (error log delete interface)

Errorlog is gone in.. we can deprecate this one now.. the eventlog


Fix rustdoc .json files overwriting each other

Fixes https://github.com/obi1kenobi/cargo-semver-checks/issues/269
When target-dir is specified in .cargo/config.toml, the path for generated rustdoc .json file is the same for the baseline and current crate version. When generating the .json files both in advance, and them processing them later, this is obviously a problem, as one of them gets overwritten.
I don't know if the solution I have came up with is the best one, as we might load too much data into memory when processing multiple crates at once. On the other hand, this way we are sure, overwritting is not an issue.

Nice catch!
Would it be possible to reorganize the code to do this instead:

for each crate that needs to be checked:

generate the current rustdoc, then load it
generate the baseline, then load it
check that crate
move on to the next one

This way, we both don't have to worry about the files colliding or disappearing, and also we give the user feedback sooner on whether their crate passed or failed. I've recently been running cargo-semver-checks on some pretty large workspaces (dozens of crates), and I didn't love that I had to wait for all the crates' rustdocs to be generated (half an hour or more!) before any crate got checked.

for each crate that needs to be checked: generate the current rustdoc, then load it, generate the baseline, then load it, check that crate, move on to the next one

Done.

The fix looks good overall. Just a small refactoring idea to look into to make it even better.
Is there a test case we could reasonably add for this? Perhaps an integration-style test on the clap release with the UnwindSafe semver issue, with a custom target dir, requiring that the semver issue be found and reported? (I.e. not just "exit 1" but also a grep in the output for the failing lint and the name of the affected type.)

Sounds good. From what I remember, the semver break is exactly between clap's v3.1.18 and v3.2.0.


Deepsleep causes segfault when WiFi fails

Made sketch with going to Deep Sleep when WiFi connection fails (like here)
When homie triggers READY_TO_SLEEP event with
case HomieEventType::READY_TO_SLEEP:
  Homie.getLogger() << "Ready to sleep." << endl;
  ESP.deepSleep(sleepSetting.get() * 1000000);
break;

it tries to connect once more and crashes.

↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
Wi-Fi disconnected, reason: 15
Could not connect to WIFI. Event 1.
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
Wi-Fi disconnected, reason: 2
Could not connect to WIFI. Event 2.
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
Wi-Fi disconnected, reason: 15
Could not connect to WIFI. Event 3.
Could not connect to WLAN. Preparing for deep sleep...
Triggering READY_TO_SLEEP event...
Ready to sleep.
↕ Attempting to connect to Wi-Fi...
Exception (28):
epc1=0x4000df2f epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000033 depc=0x00000000
ctx: sys
sp: 3ffffa90 end: 3fffffb0 offset: 01a0

Tried WiFi.disconnect() before firing ESP.deepSleep but it didn's worked.
Using dev version of Homie.

I observed this final "↕ Attempting to connect to Wi-Fi..." after "Ready to sleep." as well, but didn't get that exception yet. Must be related to failed WiFi connection.

Yes, for testing purposes i've set wrong password. I need to go to Deepsleep if I unable to connect to WiFi.

yes, fairly legit for battery powered devices. But as I'm just a user and not a developer of this library, I don't know what causes this exception. We have to wait for @marvinroger or somebody else with more in-sight.

Same problem here on reboot after successful OTA update:
Receiving OTA firmware (357024/357024)...
✔ OTA succeeded
Triggering OTA_SUCCESSFUL event...
Device is idle
↻ Rebooting...

✖ MQTT disconnected
Triggering MQTT_DISCONNECTED event...
↕ Attempting to connect to MQTT...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...

Exception (28):
epc1=0x4000df2f epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000033 depc=0x00000000

ctx: sys
sp: 3ffffa90 end: 3fffffb0 offset: 01a0

>>>stack>>>
3ffffc30:  00000000 3fff340c 4024d7c0 40107604
3ffffc40:  4023112b 00000000 00000000 4023fa41
3ffffc50:  00000033 00000010 402319c5 3ffe9fe4
3ffffc60:  3fff340c 00000000 3ffe9fe4 3fff242c
3ffffc70:  3fff340c 40231911 3ffe9fe4 00000000
3ffffc80:  3ffe89e6 3ffeac0c 3ffea790 00000064
3ffffc90:  3fff36e4 3ffea704 3ffe89e6 3ffe89e6
3ffffca0:  00000033 3ffea010 3fff2184 00000006
3ffffcb0:  40233547 3ffea6b8 3ffea790 0000010f
3ffffcc0:  00000001 00040000 7fffffff 00000000
3ffffcd0:  402331fc 402331d0 00040000 000000fd
3ffffce0:  40234f99 402331d0 40104836 3ffeb800
3ffffcf0:  3ffea068 40234f60 00000001 00000012
3ffffd00:  402331c6 4023312d 00000002 3ffea6b8
3ffffd10:  4023316d 00000001 00000012 0000010f
3ffffd20:  40233660 00000001 3ffea6b8 0000010f
3ffffd30:  402330e8 3ffea158 0000000d 007f8000
3ffffd40:  3ffea074 00000000 402355c0 4023537c
3ffffd50:  0000010f 3fff17f2 00000000 00000004
3ffffd60:  40235256 3fff1813 3fff17f2 00000000
3ffffd70:  40220c34 3fff1813 3fff17f2 007f8000
3ffffd80:  3fff2184 40213b89 3fff1813 40213a73
3ffffd90:  4c57424a 10004e41 21fe8e40 0003ff40
3ffffda0:  24a3e000 21feab40 ff295c40 21ff513f
3ffffdb0:  62726f4b 33686361 37393434 73617242

3ffffdc0:  61696c69 36373037 39372d30 ff1d0035
3ffffdd0:  ff17703f 1004d83f 21fb7640 ff177040
3ffffde0:  ff1df83f 1076003f 220b9940 00000140
3ffffdf0:  cd8b7000 4a9036ad 414c5742 0000004e
3ffffe00:  40201081 00000000 00000076 0000007f
3ffffe10:  0000007e 4b00001c 6162726f 34336863
3ffffe20:  42373934 69736172 3761696c 30363730
3ffffe30:  3539372d 3fff1e00 3fff17d0 401004d8
3ffffe40:  4021fe92 3fff17d0 3fff1e58 40107604
3ffffe50:  40220eb5 00ff27a0 00000001 40220e9a
3ffffe60:  00000000 3fff1e58 00000001 00000000
3ffffe70:  40213320 000000e0 3fff178c 3ffe9ce8
3ffffe80:  3fff17f2 3fff1e58 00000000 402070e6
3ffffe90:  3ffffea0 00000000 3fff3934 40107614
3ffffea0:  401009f4 01097235 3fff369c 00000000
3ffffeb0:  3ffe9b50 00000001 3ffe859d 4021c794
3ffffec0:  00000001 0104ad81 40217300 3ffe9ce8
3ffffed0:  3fffff40 3fff178c 3fff178c 4021ce34
3ffffee0:  40203ebc 3fffff58 3fffff58 40201305
3ffffef0:  3ffe859c 00000024 4024cb1c 4021ce16
3fffff00:  3fff1c20 3f800000 3fff0cf8 3ffe9ce8
3fffff10:  3fffff40 3fff1c20 3fff0cf8 4020789d
3fffff20:  3fff1e5c 3fff3304 3fff376c 4021ccc5
3fffff30:  000005e0 00000000 3fff376c 40213274
3fffff40:  3fff279c 0000000f 00000006 adcd8b70
3fffff50:  00009036 00000008 00000000 00000000
3fffff60:  00000000 40104c16 3fff0e4c 40214521
3fffff70:  3ffeaf58 3fff376c 3fff332c 4021347f
3fffff80:  40104a22 00000000 00000002 3ffe9ce8
3fffff90:  3fffdc10 00000000 3fff376c 4022205c
3fffffa0:  40000f49 3fffdab0 3fffdab0 40000f49
<<<stack<<<

 ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d

csum 0x2d
v3ffe8558
@cp:0
ld

💡 Firmware bare-minimum (1.0.9)
🔌 Booting into normal mode 🔌
{} Stored configuration
  • Hardware device ID: 5ccf7f82f8e5
  • Device ID: 5ccf7f82f8e5
  • Name: Homie-1
  • Wi-Fi:
    ◦ SSID: JBWLAN
    ◦ Password not shown
  • MQTT:
    ◦ Host: <IP_ADDRESS>
    ◦ Port: 1883
    ◦ Base topic: homie/
    ◦ Auth? no
  • OTA:
    ◦ Enabled? yes
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...

↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...
✔ Wi-Fi connected, IP: <IP_ADDRESS>
Triggering WIFI_CONNECTED event...
↕ Attempting to connect to MQTT...
Sending initial information...
✔ MQTT ready
Triggering MQTT_READY event...
Calling setup function...
〽 Sending statistics...
  • Wi-Fi signal quality: 100%
  • Uptime: 20s

Decoded stack trace:
Exception Cause: 28  [LoadProhibited: A load referenced a page mapped with an attribute that does not permit loads]

0x4000df2f: ?? ??:0
0x4024d7c0: chip_v6_unset_chanfreq at ??:?
0x40107604: pvPortMalloc at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/heap.c:13
0x4023112b: ieee80211_send_setup at ??:?
0x4023fa41: esf_buf_alloc at ??:?
0x402319c5: ieee80211_send_probereq at ??:?
0x40231911: ieee80211_send_probereq at ??:?
0x40233547: scan_remove_probe_ssid at ??:?
0x402331fc: scan_pm_channel_op_cb at ??:?
0x402331d0: scan_pm_channel_op_cb at ??:?
0x40234f99: chm_start_op at ??:?
0x402331d0: scan_pm_channel_op_cb at ??:?
0x40104836: lmacTxFrame at ??:?
0x40234f60: chm_start_op at ??:?
0x402331c6: scan_pm_channel_op_cb at ??:?
0x4023312d: scan_start at ??:?
0x4023316d: scan_pm_channel_op_cb at ??:?
0x40233660: scan_clear_channles at ??:?
0x402330e8: scan_start at ??:?
0x402355c0: cnx_start_handoff_cb at ??:?
0x4023537c: cnx_sta_scan_cmd at ??:?
0x40235256: cnx_sta_connect_cmd at ??:?
0x40220c34: wifi_station_connect at ??:?
0x40213b89: ESP8266WiFiSTAClass::begin(char const*, char const*, int, unsigned char const*, bool) at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp:510
0x40213a73: ESP8266WiFiSTAClass::begin(char const*, char const*, int, unsigned char const*, bool) at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp:510
0x40201081: HardwareSerial::write(unsigned char) at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/HardwareSerial.cpp:193
0x401004d8: malloc at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/umm_malloc/umm_malloc.c:1664
0x4021fe92: wifi_get_opmode at ??:?
0x40107604: pvPortMalloc at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/heap.c:13
0x40220eb5: wifi_station_set_hostname at ??:?
0x40220e9a: wifi_station_set_hostname at ??:?
0x40213320: ESP8266WiFiGenericClass::getMode() at /home/jbliesener/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include/c++/4.8.2/functional:1954
0x402070e6: HomieInternals::BootNormal::_wifiConnect() at /home/jbliesener/platformio/src/homietest/.piolibdeps/Homie/src/Homie/Boot/BootNormal.cpp:149
0x40107614: vPortFree at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/heap.c:18
0x401009f4: ets_timer_arm_new at ??:?
0x4021c794: Print::write(unsigned char const*, unsigned int) at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/Print.cpp:38
0x40217300: _M_manager at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/ESP8266mDNS.cpp:384
0x4021ce34: HomieInternals::Logger::write(unsigned char const*, unsigned int) at /home/jbliesener/platformio/src/homietest/.piolibdeps/Homie/src/Homie/Logger.cpp:24
0x40203ebc: HomieInternals::Blinker::_tick(unsigned char) at /home/jbliesener/platformio/src/homietest/.piolibdeps/Homie/src/Homie/Blinker.cpp:24
0x40201305: Print::write(char const*) at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/Print.cpp:188
0x4024cb1c: chip_v6_unset_chanfreq at ??:?
0x4021ce16: HomieInternals::Logger::write(unsigned char) at /home/jbliesener/platformio/src/homietest/.piolibdeps/Homie/src/Homie/Logger.cpp:20
0x4020789d: HomieInternals::BootNormal::_onWifiDisconnected(WiFiEventStationModeDisconnected const&) at /home/jbliesener/platformio/src/homietest/.piolibdeps/Homie/src/Homie/Boot/BootNormal.cpp:179
0x4021ccc5: std::_Function_handler<void (WiFiEventStationModeDisconnected const&), std::_Bind<std::_Mem_fn<void (HomieInternals::BootNormal::*)(WiFiEventStationModeDisconnected const&)> (HomieInternals::BootNormal*, std::_Placeholder<1>)> >::_M_invoke(std::_Any_data const&, WiFiEventStationModeDisconnected const&) at /home/jbliesener/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include/c++/4.8.2/functional:2073
0x40213274: ~WiFiEventStationModeDisconnected at /home/jbliesener/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include/c++/4.8.2/functional:1954
 (inlined by) operator() at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:121
 (inlined by) _M_invoke at /home/jbliesener/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include/c++/4.8.2/functional:2071
0x40104c16: ppEnqueueRxq at ??:?
0x40214521: WiFiClient::stopAll() at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/WiFiClient.cpp:149
0x4021347f: std::_List_iterator<std::shared_ptr<WiFiEventHandlerOpaque> >::operator++() at /home/jbliesener/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include/c++/4.8.2/functional:1954
 (inlined by) ESP8266WiFiGenericClass::_eventCallback(void*) at /home/jbliesener/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:219
0x40104a22: ppProcessTxQ at ??:?
0x4022205c: wifi_set_status_led_output_level at ??:?
0x40000f49: ?? ??:0
0x40000f49: ?? ??:0

I ran into the same problem when making my node go to sleep if it can't connect to wifi after a short amount of time. What happens is ESP.deepSleep() triggers WiFi.onStationModeDisconnected() event as part of its shutdown routine (even though the wifi never connected). This calls BootNormal::_onWifiDisconnected which immediately calls BootNormal::_wifiConnect which bombs out when it starts trying to reconnect WiFi while preparing to enter deep sleep, I don't believe the ESP core is designed to be re-entrant while entering deep sleep.
One problem is that Homie triggers the READY_TO_SLEEP event immediately if not connected but does not set the flaggedForSleep member which allows it to try to reconnect even as it is shutting down. This can be avoided by changing HomieClass::prepareToSleep to always set flaggedForSleep instead of just when connected:
void HomieClass::prepareToSleep() {
  Interface::get().flaggedForSleep = true;
  if (!Interface::get().connected) {
    Interface::get().getLogger() << F("Triggering READY_TO_SLEEP event...") << endl;
    Interface::get().event.type = HomieEventType::READY_TO_SLEEP;
    Interface::get().eventHandler(Interface::get().event);
  }
}

That prevents the exception but you still get the logging that says that it is reconnecting, so I also changed _onWifiDisconnected to bail if flaggedForSleep is set:
void BootNormal::_onWifiDisconnected(const WiFiEventStationModeDisconnected& event) {
  Interface::get().connected = false;
  if (Interface::get().flaggedForSleep)
    return;
  if (Interface::get().led.enabled) Interface::get().getBlinker().start(LED_WIFI_DELAY);
....
Note I've included that last line about the LED because it is **redundant** with the one in `_wifiConnect()` which is always called so I believe it should be removed.

I should add that this is also a problem when you flag for reset by holding down the reset trigger button in much the same way as @jbliesener mentioned about rebooting after OTA.
Flagged for reset by pin
Device is idle
Configuration erased
Triggering ABOUT_TO_RESET event...
↻ Rebooting into config mode...
✖ Wi-Fi disconnected
Triggering WIFI_DISCONNECTED event...
↕ Attempting to connect to Wi-Fi...

Exception (28):
epc1=0x4000df2f epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000033 depc=0x00000000

Homie tries to reconnect wifi even though it is flagged for reset and reboot so it seems that in _onWifiDisconnected it should check HomieClass::_flaggedForReboot as well somehow. It also is odd that _wifiConnect sets WiFi.setAutoconnect(true) and WiFi.setAutoReconnect(true) because Homie forces connect on setup() so it shouldn't autoconnect, and Homie does its own manual reconnect on disconnect so it shouldn't auto reconnect. I'm not sure if these cause problems if the ESP core is trying to do its own connect and Homie is setting wifi parameters at the same time.

I also see this problem. Is there any update on how to fix it?
Is this relevant: Most of the times, I see such an exception, there is this in the log:
Offline message acknowledged. Disconnecting MQTT...

I never see this offline message log output if there is no crash in case of a deepSleep

I have also been fighting with this problem.
My solution was to revert to 0.8.1 of  AsyncMqtt: https://github.com/marvinroger/async-mqtt-client/releases/tag/v0.8.1 (remember to build clean and rebuild everything)

Same problem here.
@timpur @marvinroger any solution ?
This is my workaround for going into deep sleep
void onHomieEvent(const HomieEvent& event) {
  static bool readyToSleep = false;
  switch (event.type) {
    case HomieEventType::READY_TO_SLEEP:
      WiFi.disconnect();    // Calling doDeepSleep() at this point sometimes causes exceptions due to asynchronous arrival
                            // of WIFI_DISCONNECTED. WDT wakes up the Device immediatly after the exception. So deep sleep does not work.
                            // To work around this, I decided to inherit this task to the WIFI_DISCONNECTED event.
      readyToSleep = true;
      break;
    case HomieEventType::WIFI_DISCONNECTED:
      if(readyToSleep)
        Homie.doDeepSleep(publishIntervalSetting.get() * 1000000);
      break;
  }
}

I can confirm the WiFi is not correctly stopped and @nuccleon patch helps. Is a PR with the proposed workaround welcomed? I'm happy to change the two lines.
I got a Exception Cause: 28 as well:
0x4024f89e: tcp_output at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/tcp_out.c:1262
0x40100211: std::function<void (void*, AsyncClient*)>::operator()(void*, AsyncClient*) const at ??:?
0x40228780: AsyncClient::close(bool) at ??:?
0x402287ad: AsyncClient::close(bool) at ??:?
0x402284bd: AsyncClient::send() at ??:?
0x4021a121: AsyncMqttClient::subscribe(char const*, unsigned char) at ??:?
0x4020689a: HomieInternals::BootNormal::_onMqttPublish(unsigned short) at ??:?
0x40229492: std::_Function_handler<void (char*, char*, AsyncMqttClientMessageProperties, unsigned int, unsigned int, unsigned int), std::_Bind<std::_Mem_fn<void (HomieInternals::BootNormal::*)(char*, char*, AsyncMqttClientMessageProperties, unsigned int, unsigned int, unsigned int)> (HomieInternals::BootNormal*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>, std::_Placeholder<4>, std::_Placeholder<5>, std::_Placeholder<6>)> >::_M_invoke(std::_Any_data const&, char*, char*, AsyncMqttClientMessageProperties, unsigned int, unsigned int, unsigned int) at ??:?
0x40100103: std::function<void (unsigned short)>::operator()(unsigned short) const at ??:?
0x4021a975: AsyncMqttClient::_onPubAck(unsigned short) at ??:?
0x40204ebc: std::_Function_base::_Base_manager<std::_Bind<std::_Mem_fn<void (HomieInternals::BootNormal::*)(char*, char*, AsyncMqttClientMessageProperties, unsigned int, unsigned int, unsigned int)> (HomieInternals::BootNormal*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>, std::_Placeholder<4>, std::_Placeholder<5>, std::_Placeholder<6>)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at ??:?

which is related to a double send() on close and fixed in async-mqtt-client: https://github.com/marvinroger/async-mqtt-client/commit/8bd918bfeb2f197afa8b0cb5d278ab2942c62ccb
But the commit before that changes the behavior of onDisconnect callback: https://github.com/marvinroger/async-mqtt-client/issues/160 and homie is stuck at Offline message acknowledged. Disconnecting MQTT...

A PR is always welcome. Please make it against develop-v3, because we decided to stop development on the develop (v2.x) branch.

.. In my case, the same issue was solved in that way:
wifi_set_opmode(NULL_MODE);
delay(100);
ESP.deepSleep(sleep_duration * 1000, WAKE_RF_DEFAULT);

A PR is always welcome. Please make it against develop-v3, because we decided to stop development on the develop (v2.x) branch.

we have refactored the repository currently. #develop is now as expected the latest development. Please create PR against develop now.


OCPBUGS-34699: Allow access to root-ca configmap in cluster-network-operator role

What this PR does / why we need it:
Adds root-ca to the resourceNames in the cluster-network-operator role to provide the access required.
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
https://issues.redhat.com/browse/OCPBUGS-34699

/ok-to-test

/jira refresh

/jira refresh

/retest-required

/retest-required

/retest-required

/retest-required

/retest-required

/retest-required

/assign davidvossel

/approve

/approve

/retest-required

/cherry-pick release-4.16


Module 03 Identity Presentation Needs Updating

The presentation for Module 03 (Module03-Identity-0365Apis.pptx) is quite out of date and needs to be updated.  There are numerous issues, such as references to Microsoft Graph v2.0 (I believe the deck means AAD v2.0 endpoint instead of Graph v2.0, which doesn't exist).  The graph slides can be updated in light of the build 2018 announcements.  References to Live Connect are using outdated terminology.  The order of the slides mixes up content in a confusing way (mixing endpoint issues with flow issues with graph issues).  I've put together a deck that I feel introduces the topic in a more accurate, up to date way here: http://aka.ms/mel-devcamp.

the whole content is being re-done... so this will be addressed


Update WebSocket API Resource ID

Issue #, if available: n/a
Description of changes:
The resource ID seems like a copy and pasta, lets update it.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v2
Commit ID: 806407397af52bb494f089fe2d468cf41fae564b
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Changing the resource id will destroy existing resource. I'll learn to live with it, I suppose 😢


afpacket: handle vlan packet and fix test accordingly

rerun tests

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@cc5ad79). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #780   +/-   ##
=========================================
  Coverage          ?   34.75%
=========================================
  Files             ?       59
  Lines             ?     8387
  Branches          ?        0
=========================================
  Hits              ?     2915
  Misses            ?     5164
  Partials          ?      308

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 cc5ad79...0247d6c. Read the comment docs.

rerun tests


feat: add DocDict

Context
DocDict is a python dict of Document
class InerDoc(BaseDoc):
    text: str

class NestedDoc(BaseDoc):
    doc: InerDoc

docs_nested =  DocDict[NestedDoc](
        x=NestedDoc(id='a', doc=InerDoc(id='a', text='a')),
        y=NestedDoc(id='b', doc=InerDoc(id='b', text='b')),
)

assert docs_nested.id == {'x': 'a', 'y': 'b'}
nested = docs_nested.doc
assert isinstance(nested, DocDict[InerDoc])
assert nested.text == {'x': 'a', 'y': 'b'}

docs_nested.doc = {'x': InerDoc(id='c', text='c'), 'y': InerDoc(id='d', text='d')}
assert docs_nested.doc.text == {'x': 'c', 'y': 'd'}

TODO

[ ] add protobuf
[ ] add json
[ ] add more test
[ ] add documentation

Are we planning to have full support for the IO mixin?
Also, I think we should have to_doclist and to_docvec, and doclist and docvec should have to_docdict (in that case using id's as keys).

Good point I will do

Also, I think we should have to_doclist and to_docvec

in this case, what should happened when converting to DocList ? We just don't care about the dict key ? Or we override the key as the id of the Document ?
I would say option 1 but then I am not sure that this function is that usefull

I would ignore the key, yes. I guess that would make it identical to l = DocList[MyDoc](doc_dict.keys())? I think l = doc_dict.to_doclist() is a bit less verbose, especially bc of the [] notation, but yeah, the utility is not huge


Wiki page link not working

Make sure you are not opening a duplicate.

[X] I have searched the issue tracker and did not find an issue describing my bug/feature.

Description of your suggestion.
The wiki page link on modrinth is not working. It just keeps saying that the Site can't be reached. Please fix this because I want to know how to get the thallous sword.
Thanks.

Fixed the link


Fix infinite scroll

References

Fixes #2767

Description
Fix for infinite scroll.
Instructions for Reviewers
The selector for the infinite scroll wasn't targeting the right infinitescroll container.
List of changes in this PR:
Changed infinitescrollcontainer to use id
Added a random seed made of alphanumerical character to avoid duplicated id
Include guidance for how to test or review your PR.

Go into MyDSpace
Then try to add for example a new publication
When the list of collections is shown scroll down
Make sure the infinite scrolldown works

Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
[x] My PR passes ESLint validation using yarn lint
[x] My PR doesn't introduce circular dependencies (verified via yarn check-circ-deps)
[x] My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
[x] My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.

I have tested this PR using the sandbox.dspace.org as DSpace backend.
At the time of my test (2024.04.10 22:30 CET Time) there were 66 collection in the system.
I could reproduced the problem in the sandbox frontend (sandbox.dspace.org) , so I could confirm this PR solved me the problem tested with locally run frontend:

when I click on the "All of DSpace" button, the displayed collection dropdown shows all element and if I am scrolling down and it is loading the new elements until all the collection is loaded.
when I click on the Plus icon to create a new publication is also working. If you choose to create new item there are 17 collections whic are also loaded totally and displayed.


Can't it download pictures now even the limit below 100?

Error like this:
Evaluating...
Could not open URL. Please check your internet connection and/or ssl settings
If you are using proxy, make sure your proxy settings is configured correctly

There's some solutions. You can look here. Hope it help.


Caching for alignments

If the sequence set was not changed and the alignment program parameters are still the same a cached version of the alignments can be used.

Not implemented so far,
It can be achieved by importing existing alignments and later filtering by alitv-filter.pl


create initial UA code and design

Decide and design:

How it relates to a http client, ssl client, etc...
The types needed etc

Define the types and state etc...
Also decide what to do about header configs... Separate headers per usage?! or what? whatever is probably easiest for modular usage.

Relates to #16 , #20


Upgrade android-lottie to 6.0.0

There was an issue in lottie-android which is fixed in lottie-android-6.0.0, so I updated in lottie-react-native as well

+1 -> this fixed on React Native 0.71 new Archietecture.

@ntcong91 when will be new release is gonna roll out?

1+


Add var.dns_prefix_private_cluster

Describe your changes
Issue number
#568
Checklist before requesting a review

[ ] The pr title can be used to describe what this pr did in CHANGELOG.md file
[ ] I have executed pre-commit on my machine
[ ] I have passed pr-check on my machine

Thanks for your cooperation!

Warning dns_prefix or dns_prefix_private_cluster are exclusive.
We do have a prefix variable that is not nullable:
variable "prefix" {
  type        = string
  default     = ""
  description = "(Optional) The prefix for the resources created in the specified Azure Resource Group. Omitting this variable requires both `var.cluster_log_analytics_workspace_name` and `var.cluster_name` have been set."
  nullable    = false
}

Would it be okay to have dns_prefix as empty string "" and dns_prefix_private_cluster as a string ?

Thanks for your review @zioproto , quite good catch! I've removed nullable=false from var.prefix now we can set it to null explicitly.
An empty string for var.prefix and non-empty string for var.dns_prefix_private_cluster would trigger a schema validation error so I think it's enough for those two variables. WDYT?

During the testing I figure out we need more code. I pushed 2 commits with more preconditions.
https://learn.microsoft.com/en-us/azure/aks/private-clusters?tabs=azure-portal#configure-a-private-dns-zone
There is another problem.
the private dns zone name should be in either of these formats:

private.eastus.azmk8s.io
privatelink.eastus.azmk8s.io
[a-zA-Z0-9-]{1,32}.private.eastus.azmk8s.io
[a-zA-Z0-9-]{1,32}.privatelink.eastus.azmk8s.io

Should we also create the necessary role assignments ?
The docs say:
"You also need a user-assigned identity or service principal with the Private DNS Zone Contributor and Network Contributor roles."
I enforced the identities with the precondition but I did not create the assignments yet

Another problem. The default value for var.prefix is "". In my tests I had to pass an explicit var.prefix = null. At one point we could introduce a braking change making the default value for var.prefix = null ?


Bad performance of _Reader created by 'then' method

I do not know if this is a bug or correct behaviour. This is what I observed:
from pymonad.reader import Compose

def inc(x: int) -> int:
    print("inc:", x)
    return x + 1

def dec(x: int) -> int:
    print("dec:", x)
    return x - 1

iid = Compose(inc).then(inc).then(dec)
print(iid(0))

The result of execution is:
inc: 0
inc: 1
inc: 0
inc: 1
dec: 2
inc: 0
inc: 1
inc: 0
inc: 1
dec: 2
1

I expected to see this:
inc: 0
inc: 1
dec: 2
1

Implementation of _bind_or_map is responsible for this:
@pymonad.tools.curry(3)
def _bind_or_map(function_f, function_g, read_only):
    try:
        return _bind(function_f, function_g, read_only)
    except TypeError:
        return _map(function_f, function_g, read_only)

First _bind is used to compute the result. Bind do mapping and fails on actual binding.
Then everything is computed again by _map. This has exponential complexity.
I believe fix could do 'map' then try to 'bind':
@pymonad.tools.curry(3)
def _bind_or_map(function_f, function_g, read_only):
    ret = _map(function_f, function_g, read_only)
    try:
        return ret(read_only)
    except TypeError:
        return ret

Hey, thanks for bringing this to my attention. Especially since it's something I should have noticed myself ages ago. Safe to say that exponential complexity is definitely not the intended behaviour.
So I've had a quick look at this and, unfortunately, won't have time to really dig into it until at least the weekend. But the good news is your solution appears to work for Reader. The bad news is other monad have similar constructions and therefore suffer the same complexity problem. And a similar solution doesn't appear to work for those. State in particular has even bigger problems which I'll need to figure out. Hopefully I can find a general solution to fix the problem across the board.
I'll keep you posted. In the meantime, using map and bind directly instead of deferring to then should avoid performance problems in most cases.

So, I've fixed the exponential complexity problem in every monad where it was a problem and also fixed Promise which, it turns out, was really broken.
I haven't pushed the code yet because I need to test it thoroughly and clean it up some first which at this point will happen some time tomorrow afternoon my time (EST). New version should be on PyPi around the same time.
Thanks again for bringing this to my attention.


x/website: explain "first sentence" in golang.org/doc/comment and go.dev/blog/godoc

What did you do?
Wrote a package doc comment such as "Package foo frobulates things e.g. red frobs and green frobs. It can also unfrobulate things." and used (directly, or indirectly e.g. examining output on the pkg website) go/doc.Synopsis to return the first sentence of the text.
What did you expect to see?
go/doc.Synopsis formats this text as "Package foo frobulates things e.g. red frobs and green frobs."
What did you see instead?
go/doc.Synopsis formats this text as "Package foo frobulates things e.g."

The problem is likely not one we want to solve by changing the behaviour of go/doc.Synopsis (see discussion on #59189).
The problem is that the documentation refers to "first sentence", it does so with a specific meaning as defined by go/doc.Synopsis, and not with the meaning a reader would have in mind, of natural language in whatever language the comment is written in. This can be surprising.
The solution should be for the main points of reference for learning how to document Go code to explain this better at the first instance of the phrase "first sentence", perhaps by inserting a footnote.
In https://go.dev/blog/godoc:

When writing package comments of any size, keep in mind that their first sentence[1] will appear in godoc’s package list.

In https://tip.golang.org/doc/comment:

As can be seen in this example, Go doc comments use complete sentences. For a package comment, that means the first sentence[1] begins with “Package”.

With a footnote such as:
1: The meaning of "first sentence" here is specified exactly by [go.doc/Synopsis].

Is anyone working on this? I'm doing a talk tomorrow and I'm looking for a good example to make a very small contribution and this seems perfect for what I want to do. Considering this is just improving the documentation, I suspect we have the consensus that this is the right approach? (LGTM)
Please let me know!

Sorry for the delay responding, but we would welcome a CL to make the documentation more clear on this point. Thanks!

No worries, I ended up not having time to do during my talk, but I'll do it over the weekend since now I committed to it :)
I'm just curious about the comment on the first document: "Note, June 2022: For updated guidelines about documenting Go code, see “Go Doc Comments.”
Does this mean that the document is not actively being updated? I still think we should though...

I don't think we should change the wording of the blog post (I don't think they are living documents in quite the same way as most of our others), but I think it would be fine to add a link from "first sentence" to the doc comment for doc.Synopsis, which already explains in detail what is meant.


Make the llvm.ident lit test more meaningful

Update the test to specifically look for a commit hash instead of any characters
Signed-off-by: Stella Stamenova<EMAIL_ADDRESS>

Jenkins Linux s390x Build #4504 [push] Make the llvm.ident lit ... started at 07:38

Jenkins Linux amd64 Build #4492 [push] Make the llvm.ident lit ... started at 06:38

Jenkins Linux s390x Build #4504 [push] Make the llvm.ident lit ... passed after 1 hr 0 min

Jenkins Linux ppc64le Build #3622 [push] Make the llvm.ident lit ... passed after 1 hr 4 min

Jenkins Linux amd64 Build #4492 [push] Make the llvm.ident lit ... passed after 1 hr 5 min


Unable to build from source

Describe the bug
Hi, I'm trying to build from source but it fails because doesn't find a go resource zap v11
To Reproduce
Steps to reproduce the behavior:

Just follow the instruction in the readme file for build from source and when you run "go get -u github.com/JustaPenguin/assetto-server-manager/..." you will have the following error:

dark-vex@somehost:~$ go get -u github.com/JustaPenguin/assetto-server-manager/...
package github.com/JustaPenguin/assetto-server-manager
        imports github.com/blevesearch/zap/v11: cannot find package "github.com/blevesearch/zap/v11" in any of:
        /usr/local/go/src/github.com/blevesearch/zap/v11 (from $GOROOT)
        /home/dark-vex/go/src/github.com/blevesearch/zap/v11 (from $GOPATH)

I have tried to build also with the provided Dockerfile but it fails too
root@docker-test:~/build# docker build .
Sending build context to Docker daemon  6.144kB
Step 1/41 : FROM golang:1.14 AS build
1.14: Pulling from library/golang
376057ac6fa1: Pull complete
5a63a0a859d8: Pull complete
496548a8c952: Pull complete
2adae3950d4d: Pull complete
039b991354af: Pull complete
0cca3cbecb14: Pull complete
59c34b3f33f3: Pull complete
Digest: sha256:b5114a530de5817bcc9b9b5f7b523b0424b75c78dd2f68d2b6d79dc858d98c9f
Status: Downloaded newer image for golang:1.14
 ---> 7e5e8028e8ec
Step 2/41 : ARG SM_VERSION
 ---> Running in f8b62491b802
Removing intermediate container f8b62491b802
 ---> c61ea17af0a4
Step 3/41 : ENV DEBIAN_FRONTEND noninteractive
 ---> Running in cef7d5d1353e
Removing intermediate container cef7d5d1353e
 ---> cfcb3a886545
Step 4/41 : ENV BUILD_DIR ${GOPATH}/src/github.com/JustaPenguin/assetto-server-manager
 ---> Running in d839d4045009
Removing intermediate container d839d4045009
 ---> 8cd1b4f9cb85
Step 5/41 : ENV GO111MODULE on
 ---> Running in 0685c473487b
Removing intermediate container 0685c473487b
 ---> caec38a0115f
Step 6/41 : RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
 ---> Running in 8019cae35ae1

## Installing the NodeSource Node.js 12.x repo...

## Populating apt-get cache...

+ apt-get update
Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:2 http://deb.debian.org/debian buster InRelease [121 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [49.3 kB]
Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [198 kB]
Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7905 kB]
Get:6 http://deb.debian.org/debian buster-updates/main amd64 Packages [7380 B]
Fetched 8347 kB in 2s (4154 kB/s)
Reading package lists...

## Installing packages required for setup: lsb-release...
Removing intermediate container 8019cae35ae1
 ---> e2bebc5d3667
Step 7/41 : RUN apt-get update && apt-get install -y build-essential libssl-dev curl nodejs tofrodos dos2unix zip
 ---> Running in 4f31e6a5ab64
Hit:1 http://security.debian.org/debian-security buster/updates InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Hit:4 https://deb.nodesource.com/node_12.x buster InRelease
Reading package lists...
Removing intermediate container 4f31e6a5ab64
 ---> 68ce9c00de57
Step 8/41 : ADD . ${BUILD_DIR}
 ---> 252187dbfaad
Step 9/41 : WORKDIR ${BUILD_DIR}
 ---> Running in 9417a4f5b8d9
Removing intermediate container 9417a4f5b8d9
 ---> a313792f3cf7
Step 10/41 : RUN rm -rf cmd/server-manager/typescript/node_modules
 ---> Running in a7e996db4da0
Removing intermediate container a7e996db4da0
 ---> 9d5e328c0fd1
Step 11/41 : RUN VERSION=${SM_VERSION} make deploy
 ---> Running in d26c28c4f47c
make: *** No rule to make target 'deploy'.  Stop.
The command '/bin/sh -c VERSION=${SM_VERSION} make deploy' returned a non-zero code: 2

Expected behavior
I'm expecting to be able to build from source
Desktop (please complete the following information):

OS: Debian 10
Docker version 19.03.8, build afacb8b7f0
Node version 12.16.3
go version go1.13.11 linux/amd64

Bleve changed something. go mod init github.com/blevesearch/bleve-explorer before go get... worked for me.

Thanks @fergie4000 it worked but now I have another error with bbolt
go get<EMAIL_ADDRESS>updating to
<EMAIL_ADDRESS>parsing go.mod:
        module declares its path as: go.etcd.io/bbolt
                but was required as: github.com/etcd-io/bbolt

Ignore it, it builds fine.


PyMAPDL nodal stress averaging

From Costas Vogiatzis at Honeywell,
Note two separate questions below (one in each paragraph):
"I am using the PyMAPDL reader to access stress/strain results in RST files. It appears that the nodal stresses are the reader returns are the equivalent of APDL “Full graphics”, i.e. they are the averaged values over all the elements that share that node, not only surface elements (which is the case in “Power Graphics” in APDL). Is there a way to get the equivalent of “Power graphics” nodal stresses/strains with the PyMAPDL reader? If not, can it be done with DPF?
Somewhat related to this… For a cyclic symmetric solution it is possible to get nodal stresses as complex numbers or at a user defined phase. Is there a way to do that for element stresses either with the PyMAPDL reader or DPF?"
Alex Grishin
<EMAIL_ADDRESS>PADT

Editing to hide some personal data.

Hi @agrishin,
please could you try the script below using pyDPF to reproduce power graphics stress nodal averaging:
from ansys.dpf import core as dpf
model = dpf.Model(r"D:\temp\file.rst")
mesh = model.metadata.meshed_region
skinOp = dpf.operators.mesh.skin(mesh)
skin_mesh = skinOp.outputs.mesh()
stress = model.results.stress()
solidToSkin = dpf.operators.mapping.solid_to_skin(field=stress.outputs.fields_container, mesh_scoping=skin_mesh)
field = solidToSkin.eval()
toNodal = dpf.operators.averaging.to_nodal(solidToSkin.outputs.field)
fieldN = toNodal.eval()
print(fieldN)

#plot SX
compselector = dpf.operators.logic.component_selector(field = toNodal.outputs.field, component_number=0)
fieldSX = compselector.eval()
mesh.plot(fieldSX, notebook=False)

Regards

That works for me, but unfortunately, I don’t have a model ready at-hand that shows an obvious difference full and power graphics in MAPDL. I’ll forward to the customer and see what he thinks…
Alex Grishin, PhD
Consulting Engineer
PADT, Inc.
www.padtinc.com
480-813-4884 x133
@.***
Simulation – Product Development – Rapid Prototyping
CONFIDENTIALITY NOTICE: This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain confidential and/or privileged information.  Unless you are the intended recipient, you are hereby notified that copying, forwarding, printing or otherwise disseminating the information contained in or attached to this e-mail is strictly prohibited. If you are not the intended recipient, please notify the sender by telephone, and immediately and permanently delete and destroy all copies and printouts of this e-mail message and/or attachments.
From: rlagha @.>
Sent: Friday, March 3, 2023 10:12 AM
To: pyansys/pymapdl @.>
Cc: Alex Grishin @.>; Mention @.>
Subject: Re: [pyansys/pymapdl] PyMAPDL nodal stress averaging (Issue #1896)
Hi @agrishinhttps://github.com/agrishin,
please could you try the script below using pyDPF to reproduce power graphics stress nodal averaging:
from ansys.dpf import core as dpf
model = dpf.Model(r"D:\temp\file.rst")
mesh = model.metadata.meshed_region
skinOp = dpf.operators.mesh.skin(mesh)
skin_mesh = skinOp.outputs.mesh()
stress = model.results.stress()
solidToSkin = dpf.operators.mapping.solid_to_skin(field=stress.outputs.fields_container, mesh_scoping=skin_mesh)
field = solidToSkin.eval()
toNodal = dpf.operators.averaging.to_nodal(solidToSkin.outputs.field)
fieldN = toNodal.eval()
print(fieldN)
#plot SX
compselector = dpf.operators.logic.component_selector(field = toNodal.outputs.field, component_number=0)
fieldSX = compselector.eval()
mesh.plot(fieldSX, notebook=False)
Regards
—
Reply to this email directly, view it on GitHubhttps://github.com/pyansys/pymapdl/issues/1896#issuecomment-1453844124, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AB4ZO2Y3QMPAOXWHVIWGMLTW2IQ6BANCNFSM6AAAAAAVLFTTGQ.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

@agrishin please find bellow a new example in ansys-dpf-core showing how to get the cyclic results wrt base/duplicate sectors and also how to get results at a given cyclic phases:
https://dpf.docs.pyansys.com/release/0.7/examples/11-cyclic-symmetry/02-modal_cyclic_no_expansion.html#sphx-glr-examples-11-cyclic-symmetry-02-modal-cyclic-no-expansion-py
Regards

Thanks, Ramdane!
I’ll forward to the customer…
Alex Grishin, PhD
Consulting Engineer
PADT, Inc.
www.padtinc.com
480-813-4884 x133
@.***
Simulation – Product Development – Rapid Prototyping
CONFIDENTIALITY NOTICE: This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain confidential and/or privileged information.  Unless you are the intended recipient, you are hereby notified that copying, forwarding, printing or otherwise disseminating the information contained in or attached to this e-mail is strictly prohibited. If you are not the intended recipient, please notify the sender by telephone, and immediately and permanently delete and destroy all copies and printouts of this e-mail message and/or attachments.
From: rlagha @.>
Sent: Tuesday, March 7, 2023 1:11 AM
To: pyansys/pymapdl @.>
Cc: Alex Grishin @.>; Mention @.>
Subject: Re: [pyansys/pymapdl] PyMAPDL nodal stress averaging (Issue #1896)
@agrishinhttps://github.com/agrishin please find bellow a new example in ansys-dpf-core showing how to get the cyclic results wrt base/duplicate sectors and also how to get results at a given cyclic phases:
https://dpf.docs.pyansys.com/release/0.7/examples/11-cyclic-symmetry/02-modal_cyclic_no_expansion.html#sphx-glr-examples-11-cyclic-symmetry-02-modal-cyclic-no-expansion-py
Regards
—
Reply to this email directly, view it on GitHubhttps://github.com/pyansys/pymapdl/issues/1896#issuecomment-1457732083, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AB4ZO25NAPPQTDGLNP7QGCLW23US5ANCNFSM6AAAAAAVLFTTGQ.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Once I have an got-to-go from Alex and/or Ramdame I will proceeded to close this issue.

@germa89 , for the cyclic symmetry question, this is completely done.
For the power graphics question, the proposed script allows to average the stresses taking into account only the elements having faces on the skin. In MAPDL we add an other criteria which avoids averaging cross sharp edges. we should add this capability but I'd like to have the feedback from @agrishin .
We can close this one and create an enhancement issue in DPF side for the sharp edges.


Elevated Privileges as User

Category

[ x ] Question
[ ] Bug
[ ] Enhancement

Authors
@joelfmrodrigues
@VesaJuvonen
@waldekmastykarz
Expected or Desired Behavior / Question

I have followed the code sample for elevated privileges from here: react-sp-elevatedprivileges which makes http requests from the spfx webpart to a rest api (aspnet webapi) which uses app-only permissions. The permissions are gained in the webapi using:

OfficeDevPnP.Core.AuthenticationManager authMgr = new OfficeDevPnP.Core.AuthenticationManager();
ClientContext ctx = authMgr.GetAppOnlyAuthenticatedContext(siteUrl, clientID, clientSecret);

It works fine and I can see items are modified with the user "SharePoint App".
I wanted to perform the same sorts of operation but on behalf of a user. Is this something that is possible?
I have tried the same using AddIns however I've run into a block because I need to call the appredirect.aspx on sharepoint with a httpContext to create the 'SPAppToken' which gets sent to the provider hosted addin.
Would you be able to provide any guidance on achieving my use-case?
Many Thanks,
Gary

To perform an operation on behalf of a user, you would have to have that user's credentials and either create a CSOM context or get an OAuth access token.


NOISSUE - small edits of typos and sentence structure

Pull request title should be MF-XXX - description or NOISSUE - description where XXX is ID of issue that this PR relate to.
Please review the CONTRIBUTING.md file for detailed contributing guidelines.
What does this do?
small edits of typos and sentence structure
List any changes that modify/break current functionality
n/a
Have you included tests for your changes?
n/a
Did you document any new/modified functionality?
n/a
Notes

What is this DCO action required?

Codecov Report

Merging #764 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #764   +/-   ##
=====================================
  Coverage      85%    85%
=====================================
  Files          69     69
  Lines        4467   4467
=====================================
  Hits         3797   3797
  Misses        444    444
  Partials      226    226

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 b539791...80a8adc. Read the comment docs.

@Ravenwater please go through CONTRIBUTING.md.

Closid due to inactivity. Please reopen if needed.


Issues with AD LDAP and ADFS

When I try to log in with a user using AD LDAP, I get a red box: 'LDAP_ADMIN_USERNAME' and nothing happens.   What I really want is User and Admin groups assigned by LDAP group membership.  Do the accounts need to be pre-created, or will it take care of creating the accounts?
LDAP_ENABLED = True
AD CONFIG
LDAP_TYPE = 'ad'
LDAP_URI = 'ldap://la-2pdom01:389'
LDAP_USERNAME = 'CN=SVC_LDAP_RO,OU=General,OU=Service,OU=Accounts,DC=internal,DC=domain,DC=com'
LDAP_PASSWORD = 'password'
LDAP_SEARCH_BASE = 'DC=internal,DC=domain,DC=com'
You may prefer 'userPrincipalName' instead
LDAP_USERNAMEFIELD = 'sAMAccountName'
AD Group that you would like to have accesss to web app
#LDAP_FILTER = 'CN=PowerDNS_Users,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=domain,DC=com'
LDAP_FILTER = '(objectClass=user)'
LDAP_GROUP_SECURITY = True # True or False
LDAP_ADMIN_GROUP = 'CN=PowerDNS_Admins,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=ieeeglobalspec,DC=com'
LDAP_USER_GROUP = 'CN=PowerDNS_Users,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=ieeeglobalspec,DC=com'
ALSO
Does anyone have a clue how to get ADFS working properly with this?  We really need a WIKI article, and by rights, LDAP and ADFS should be integrated into the admin UI configuration with test buttons.

I'll tag on to this - I think I have it almost working properly now.  Turns out your config-template.py appears to be wrong.  The app is looking for LDAP_ADMIN_USERNAME as the attribute to search the ldap directory.  The config-template.py doesn't have this variable in there, it uses LDAP_USERNAME.  I copied the template out of development.py and am using that with appropriate changes.
But now I'm getting:  2018-08-21 16:42:16,593 - app.models - ERROR - User mdiorio is not part of the "CN=PowerDNS_Admins,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=domain,DC=com" or "CN=PowerDNS_Users,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=domain,DC=com" groups that allow access to PowerDNS-Admin
I believe this is the same as #335
Here's my new setup that at least is getting me most of the way there.  I believe LDAP_FILTER should just filter for any user, then let the LDAP_GROUP_SECURITY section handle which group to put them in.  If they don't fall into either group, they should be getting denied access.
But why isn't it looking up group membership correctly?  I'm guessing there's a missing field needed for AD group membership.  Something like here in my Rancher config.  I feel like it's not search with distinguishedName which AD uses for group membership.

LDAP CONFIG
LDAP_ENABLED = True
LDAP_ADMIN_USERNAME = 'CN=SVC_LDAP_RO,OU=General,OU=Service,OU=Accounts,DC=internal,DC=domain,DC=com'
LDAP_ADMIN_PASSWORD = 'password'
LDAP_GROUP_SECURITY = True # True or False
LDAP_ADMIN_GROUP = 'CN=PowerDNS_Admins,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=domain,DC=com'
LDAP_USER_GROUP = 'CN=PowerDNS_Users,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=domain,DC=com'
AD CONFIG
LDAP_TYPE = 'ad'
LDAP_URI = 'ldaps://la-2pdom01.internal.domain.com:636'
LDAP_USERNAME = 'CN=SVC_LDAP_RO,OU=General,OU=Service,OU=Accounts,DC=internal,DC=domain,DC=com'
LDAP_PASSWORD = 'password'
LDAP_SEARCH_BASE = 'DC=internal,DC=domainc,DC=com'
You may prefer 'userPrincipalName' instead
LDAP_USERNAMEFIELD = 'sAMAccountName'
AD Group that you would like to have accesss to web app
LDAP_FILTER = '(&(objectClass=user))'

Your are right, theconfig_template.py wasn't updated after renaming the variables for LDAP. I am working on branch app_config_adjustment to manage all these configs from database side to avoid the outdate. I will also take a look at your AD integration issue. Are you sure that your user is belong to CN=PowerDNS_Admins,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=domain,DC=com or CN=PowerDNS_Users,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=domain,DC=comgroup?

Yes, absolutely sure. I created the group and added myself to it. I have one account in each of those groups and it give the same error when logging in with either account. I verified the full distinguished name from the AD property.

The current group filter doesn't work with AD. I did some adjustment on #339 . Can you try it ? It worked fine in my test with Azure AD secure LDAP.

I pulled #339, which said I needed to do a DB migration.  I started the migration, but it got stuck at INFO  [alembic.runtime.migration] Running upgrade 787bdba9e147 -> 59729e468045, Add view column to setting table
I left it for hours with no change in status, eventually having to kill it and reboot the server.  Upon trying again:
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade 787bdba9e147 -> 59729e468045, Add view column to setting table
Traceback (most recent call last):
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
context)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute
cursor.execute(statement, parameters)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/cursors.py", line 247, in execute
res = self._query(query)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/cursors.py", line 411, in _query
rowcount = self._do_query(q)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/cursors.py", line 374, in _do_query
db.query(q)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (1060, "Duplicate column name 'view'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/web/powerdns-admin/flask/bin/flask", line 11, in
sys.exit(main())
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask/cli.py", line 513, in main
cli.main(args=args, prog_name=name)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask/cli.py", line 380, in main
return AppGroup.main(self, *args, **kwargs)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask/cli.py", line 257, in decorator
return __ctx.invoke(f, *args, **kwargs)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask_migrate/cli.py", line 134, in upgrade
_upgrade(directory, revision, sql, tag, x_arg)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask_migrate/init.py", line 259, in upgrade
command.upgrade(config, revision, sql=sql, tag=tag)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/command.py", line 254, in upgrade
script.run_env()
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/script/base.py", line 427, in run_env
util.load_python_file(self.dir, 'env.py')
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/util/pyfiles.py", line 81, in load_python_file
module = load_module_py(module_id, path)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/util/compat.py", line 96, in load_module_py
module_id, path).load_module(module_id)
File "", line 539, in _check_name_wrapper
File "", line 1614, in load_module
File "", line 596, in _load_module_shim
File "", line 1220, in load
File "", line 1200, in _load_unlocked
File "", line 1129, in _exec
File "", line 1471, in exec_module
File "", line 321, in _call_with_frames_removed
File "migrations/env.py", line 87, in
run_migrations_online()
File "migrations/env.py", line 80, in run_migrations_online
context.run_migrations()
File "", line 8, in run_migrations
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/runtime/environment.py", line 836, in run_migrations
self.get_context().run_migrations(**kw)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/runtime/migration.py", line 330, in run_migrations
step.migration_fn(**kw)
File "/opt/web/powerdns-admin/migrations/versions/59729e468045_add_view_column_to_setting_table.py", line 74, in upgrade
op.add_column('setting', sa.Column('view', sa.String(length=64), nullable=True))
File "", line 8, in add_column
File "", line 3, in add_column
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/operations/ops.py", line 1565, in add_column
return operations.invoke(op)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/operations/base.py", line 319, in invoke
return fn(self, operation)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/operations/toimpl.py", line 123, in add_column
schema=schema
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/ddl/impl.py", line 169, in add_column
self._exec(base.AddColumn(table_name, column, schema=schema))
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/alembic/ddl/impl.py", line 115, in _exec
return conn.execute(construct, *multiparams, **params)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 948, in execute
return meth(self, multiparams, params)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/sql/ddl.py", line 68, in _execute_on_connection
return connection._execute_ddl(self, multiparams, params)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1009, in _execute_ddl
compiled
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
context)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
exc_info
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
raise value.with_traceback(tb)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
context)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute
cursor.execute(statement, parameters)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/cursors.py", line 247, in execute
res = self._query(query)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/cursors.py", line 411, in _query
rowcount = self._do_query(q)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/cursors.py", line 374, in _do_query
db.query(q)
File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1060, "Duplicate column name 'view'") [SQL: 'ALTER TABLE setting ADD COLUMN view VARCHAR(64)'] (Background on this error at: http://sqlalche.me/e/e3q8)

So after a failed DB upgrade, I redeployed everything from scratch using the app_config_adjustment branch, but now getting:
Traceback (most recent call last):
File "./run.py", line 3, in
from config import PORT
ImportError: cannot import name 'PORT'
when trying to do a ./run.py

Missing the PORT variable in the config.py.    Could I stick with basing my config off of the config_template.py in this branch?

Good grief - the config_template.py file in this branch doesn't have any LDAP configuration in it at all.  Only SAML.  Getting:
2018-08-22 17:00:17,682 - app.models - WARNING - User "mdiorio" does not exist. Authentication request from <IP_ADDRESS>

LDAP configuration has been managed in the DB. You have to sign up the first local user to login and configure the LDAP setting at: Setting > Authentication > LDAP

Getting closer!  I can log in with my admin level account via LDAP AD auth and it works fine.  Creates the account in PDNS-Admin as an administrator, perfect.
When I go to log in as a regular user, I'm getting:
2018-08-23 09:28:47,193 - app.models - INFO - User mdiorio is part of the "CN=PowerDNS_Users,OU=Infrastructure,OU=SecurityGroups,DC=internal,DC=domain,DC=com" group that allows user access to PowerDNS-Admin
2018-08-23 09:28:47,204 - app.models - ERROR - {'info': '80090308: LdapErr: DSID-0C09042F, comment: AcceptSecurityContext error, data 52e, v2580', 'desc': 'Invalid credentials'}
2018-08-23 09:28:47,204 - app.models - ERROR - User "mdiorio" input a wrong LDAP password. Authentication request from <IP_ADDRESS>
I guarantee with 100% certainty that the password is correct.  I even changed it and tried again, same thing.  I'm not seeing an authentication request come through that DC either, whether it be a success or failure.  There's no attempt to authenticate the account, and definitely no bad password attempt logged in AD.

So I have had two co-workers try to log in with regular domain accounts and they don't work with the same wrong LDAP password error.  However the logs do show it is pulling the correct user account and matches the user account to the correct security group.
If I log into an account that is a member of the Admins group, it works perfectly fine.
I tried moving the regular account into the Admin's security group, I've tried moving the regular admin account into the same OU as the a- account, nothing works.
It's the strangest thing.

The code 52e clearly shows that it was "Invalid credentials" error. If the password is correct, i guess the bind dn was wrong. What did you configure for the Basic filter and Username field ?
FIYL: I don't know which kind of AD are you using, in my case, i am using Azure AD which requires Enable password hash synchronization to allow 3rd application authenticate the user with password.

We're using on-prem AD running on Server 2012.
My bind dn is correct. We use it across the entire org for all our ldap lookups.
Basic filter I used organizationalPerson
Username is sAMAccountName
I have this exact config working in about a dozen other ldap setups without issue.

Any thoughts on this - we're really close to getting this working?  It's holding up rolling this out to our development team for Kubernetes integration.  Thanks!

Unfortunately I don't have any idea for this issue at the moment. It looks weird to me too. If you are able to login with some users but not others, so i guess there are differences in your AD user's attributes. You can try to dump your LDAP data to check.
Also, try with userPrincipalName for username field to use full usern

My LDAP is fine, there really should be no Attributes being read other than UPN, the password, and email.  Not sure why, when I have debugging turned on, it's logging every single AD attribute.  Completely unnecessary.  UPN does the same thing by the way.

Got it!  The CN for our non-admin level users is CN=Last, First
As soon as I changed the CN to First Last it worked fine.  So whatever the process is doing isn't properly handling the comma in the CN, unlike every other LDAP setup that we've happened to come across.

So the comma need to be escaped i think. Just a quick test, can you put \\ in front of commas when login ?

Changing the CN in Active Directory to escape the comma doesn't help.

Hello,
This request is stale for too long. Regarding our policy to cleanup this project, I'm closing it. Feel free to open a new issue later.
Regards
PowerDNS Admin Team
See https://github.com/PowerDNS-Admin/PowerDNS-Admin/issues/1153 for the policy


Patch Vite and update dependencies

:warning: This would only work on Linux and MacOS for now.
Test with:

[x] npm
[x] yarn1
pnpm -> will test after releasing

Close #96
Close #111
Close #114

I think the beat solution is waiting for upstream give a patch version.

We waited for several months and it seems to take more time.
This has stopped us developing/testing things. Rather than stopping, we should move forward.

Since waku is a library, we cannot control let user to install the patch automatically.

I would actually like to establish the patch solution with libraries. So, happy to learn the cases where the patch isn't applied automatically. For now, pnpm is challenging and if users don't use create-waku it fails. I wonder if there's a better idea.

@Tobbe said they also patched it: https://github.com/vitejs/vite/pull/13487#issuecomment-1695295029
And, I just found https://github.com/vitejs/vite/pull/14498

Let's merge this and wait a new release from Vite.


pull request for e2e test at 01/18/2017 19:56:12

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Fix issue with Windows multi-threaded applications not being able to correctly get the GLFW_FOCUSED attribute from outside the main thread

Multi-threaded Windows applications that attempt to get the GLFW_FOCUSED attribute from one of their worker threads will always be returned 0.
This issue is being caused by the GetActiveWindow() calls in win32_window.c:1791, which returns a nullptr if it is called by a worker thread, even if glfwMakeContextCurrent() is correctly set.
Replacing this call with GetForegroundWindow() fixes this issue, because it always returns the foreground window's handle, even from worker threads.
By the way, the Travis builds that are configured with USE_WAYLAND are failling to git clone the wayland-protocols repository, thus failing the check.

References:

GetActiveWindow: https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getactivewindow
GetForegroundWindow: https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getforegroundwindow
Relevant Microsoft devblog post: https://devblogs.microsoft.com/oldnewthing/?p=20643

FWIW we have encountered this issue. It also affects glfwSetCursorPos which internally uses _glfwPlatformWindowFocused. So glfwSetCursorPos won't work when used from a thread different from the window creation thread. I can also confirm the proposed solution fixes the problem.
We are using ImGui with GLFW, ImGui fails in a multithreaded application because it internally uses both glfwGetWindowAttrib with GLFW_FOCUSED and glfwSetCursorPos.

Can anyone think of anything that might cause any issues with this? Is there any reason this hasn't been put in?


Update GPT4All/llama.cpp

GPT4All uses a newer version of llama.cpp which can handle the new ggml formats. Currently this throws an error similar to the following if you attempt to load a model of a newer version:
error loading model: unknown (magic, version) combination: 67676a74, 00000002; is this really a GGML file?

Thanks for this!
I looked it up and tried to build the new gpt4all-backend.
From quick look it seems it only supports dynamic linking unlike this project. There's a good reason for dynamic linking because then one does not have to have separate builds for avx1 and avx2. And it supports multiple llama versions at the same time. But that also means the binary cannot be compiled on one machine and just trust it works on another.
With this project one is now unfortunately stuck with the old format.


Project mission and product vision

Purpose

As a team member
I want / need the mission and vision
So that I am guided and motivated

Involved team members

PO
SD

Touched or interesting artifacs

planning document
Readme.md in Github

Expected result

Mission and vision defined

I have added a first draft for the product vision and project mission. Please feel free to add or refactor the draft - or we discuss in the chat (signal, teams, or comments here ;) cheers


Questions about the Settings

Hey, a couple of questions and a possible issue.
Q: I can't find the setting for "unpaused menus" anymore. There seems to be some changes recently about this, so the option may be back.
Q: What does Interactive Interface>Enable weapons do?
Issue: In Settings>UI, the option "Exit on last window close" doesn't seem to work anymore after disabling it once.
Using latest preview build.

With latest preview, I meant the 1.7.0, without the experimental loader thing.

Many more changes were made, github just happens to show the most recent commit if the description is left empty. In the top right corner, click compare and select the first tag to see all new commits from the previous version.

Yeah, I didn't check the build from 3 days ago before posting, my mistake.
I installed the newest version and it doesn't have the Interactive Interface anymore.
Anyway, about the option, "Physics debug renderer" was enabled under View. I just don't remember enabling this setting after messing with "Exit on last window close". I couldn't disable the renderer while "Exit on last window close" was on as it was closing the UI before unchecking, but I now I got the options working again properly.
Thanks.

The window that was last open will always show the next time the interface is activated. Since the renderer overlay counts as a window, this applies to it as well.


Pass options are environment variable

Hi,
Carlo is used by programs like ndb. It currently allows for chrome to be set via CHROME_PATH, but it does not allow for any way to pass other options to the launched chrome via environment variables. While all options may be a good idea, the one I care the most about is being able to pass args.
I am happy to implement this this feature by adding another environment variable CARLO_OPTIONS and doing a merge of the passed options and JSON.parse(process.env.CARLO_OPTIONS) here: https://github.com/GoogleChromeLabs/carlo/blob/master/lib/carlo.js#L589.
What do you think?

@pavelfeldman Is this something you think should go into ndb?


Fix slm training bug (https://github.com/yl4579/StyleTTS2/issues/72)

SLM joint training bug in finetuning code: https://github.com/yl4579/StyleTTS2/issues/72#issuecomment-1825092101

It’s probably related to this: https://github.com/yl4579/StyleTTS2/pull/15
I couldn’t reproduce because my pytorch version doesn’t have this problem. Does the order of backward matter though? Do you also have to change the order of the generator loss backward?

Sorry you are correct! The order of backwards also needs to be changed. The run now works on my setup.
For completeness, this if my setup:
> python -c "import torch; print(torch.version.cuda)"
12.1
> python -c "import torch; print(torch.__version__)"
2.1.1
> nvidia-smi
Fri Nov 24 04:49:56 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.06              Driver Version: 545.23.06    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA RTX A6000               On  | 00000000:05:00.0 Off |                  Off |
| 30%   51C    P2             118W / 300W |  32545MiB / 49140MiB |     28%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA RTX A6000               On  | 00000000:45:00.0 Off |                  Off |
| 30%   53C    P2             111W / 300W |  27637MiB / 49140MiB |     30%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   2  NVIDIA RTX A6000               On  | 00000000:85:00.0 Off |                  Off |
| 30%   55C    P2             113W / 300W |  27617MiB / 49140MiB |     22%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   3  NVIDIA RTX A6000               On  | 00000000:C5:00.0 Off |                  Off |
| 30%   52C    P2             107W / 300W |  27529MiB / 49140MiB |     26%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

I actually found a bug in this fix. It calls optimizer.zero_grad() twice when the discriminator loss isn’t 0, so it implicitly overwrites the gradient in that iteration and optimizes against the generator loss. I think we have to bring optimizer steps lines before the discriminator line as well.

Can you please make the change and test if it doesn’t cause any problems in your settings?

Ah, another good catch. Trying...

Yes, so if you could verify it has no problems running on your system I’ll change that too. I couldn’t reproduce in my environment.