proposal: allow net/http server to fail on panic instead of recovering

I would like to have the ability to turn off net/http server's current behavior to recover on panic.
My proposal is to add a new package variable http.ServerRecoverOnPanic that has a default value of True which is then checked in server.go before the recover is issued. By making the default value of http.ServerRecoverOnPanic True, the current behavior to recover would be maintained for backwards compatibility.
It is my feeling that the software designer should be able to determine when, and when not to recover from a panic, to allow for existing tools like supervisord to handle service crashes and to provide visibility and notification when a panic occurs.

There's no way to have a default value of true so it would need to be DisableRecoverOnPanic instead.
Otherwise this sounds like a good idea to me.

For a package level variable, its initialization value could be true.
However, I think this should be a http.Server specific setting instead.

@minux @HasAusten sorry, I didn't notice that you were proposing a package-level variable. I agree that it should be a Server-level configuration setting.

/cc @bradfitz

If we did this (per-Server), we would still need a way to retain the ability for handlers to abort a handler and send an intentional stream break to the peer. Currently the defacto way to do that is to panic, which works in both http2 (by sending a RST_STREAM) and http1 (by closing the TCP connection which breaks any chunked encoding and the peer never sees the EOF 0-byte final chunk).
I would almost say that adding the knob is a backwards incompatible change, since Handlers might then have a new meaning of panic, but the panic-to-close-stream behavior is not very documented or used, and this would be opt-in, so maybe it's okay.
But we'd need to bless & document an official way to break streams.

Agreed, server configuration makes more sense.

+1
The current behavior of managing panics does not follow the traditional Go intuition about how things work

While I agree that this would be useful, I agree with @bradfitz that it is difficult to see how it might be done without breaking backward compatibility.
If you want your program to crash when a panic happens, you can wrap your handlers (or even the root ServeMux) in something like the panicHandler type I have included below:
package main

import (
        "fmt"
        "log"
        "net/http"
        "os"
        "runtime"
)

type panicHandler struct {
        http.Handler
}

func (h panicHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
        defer func() {
                err := recover()
                if err != nil {
                        buf := make([]byte, 1<<20)
                        n := runtime.Stack(buf, true)
                        fmt.Fprintf(os.Stderr, "panic: %v\n\n%s", err, buf[:n])
                        os.Exit(1)
                }
        }()
        h.Handler.ServeHTTP(w, r)
}

func handler(w http.ResponseWriter, r *http.Request) {
        panic("oh no!")
}

func main() {
        http.Handle("/", panicHandler{http.HandlerFunc(handler)})
        log.Fatal(http.ListenAndServe("localhost:8080", nil))
}

Given the workaround and the difficulty of implementing the change, I am going to decline this proposal. Thanks≥


Testing, please ignore

Ignore me

Current dependencies on/for this PR:

main

PR #254   👈

This stack of pull requests is managed by Graphite.


Improved EditorProps type

Hi there,
At the moment this is just a proof-of-concept. When following the documentation example for creating an upload image plugin, I found typescript complaining for the placeholderPlugin on this line:
  },
  props: {
    decorations(state) { return this.getState(state) }
  }
})

The issue is that, here, this is typed as belonging to the props object (which only has one property: decorations). Looking at the source code, I can see that props is typed as expecting the EditorProps interface and that, internally, all methods defined in Plugin#props receive the Plugin object as their this argument. So the typing here is currently a little off and I'm wondering if you'd accept a PR to fix the typing of EditorProps to accept an optional ThisType type argument.
This PR contains a small example of what I mean. Currently, I've only changed the minimum amount to demonstrate what I'm talking about.
This would allow the Plugin class to define its readonly props property as EditorProps<this> and receive proper typing of this in the example code (as well as other code, obviously).
E.g. simple typescript playground
export class Plugin<PluginState = any> {
  /* ...other stuff */

  readonly props: EditorProps<this> = {}

  /* ...other stuff */
}

Do attached patches look like they provide what you are looking for here?

Or maybe extending Plugin is explicitly not supported

It isn't.

Changes the default this type for EditorState methods from this to any

These are specs that define a set of props, outside of plugins there is very little reason to ever access this in them.

I don't want to clutter up the public types with the "default" hack you used in this PR.

Gotcha. I wouldn't call it a hack. I'd call it a perfectly valid use of types and conditional types, but I can appreciate if you disagree / think it's ugly.


big gap in performance between graph APIs and CL functions

hi,
I have been working on accelerating a CNN network with Mali GPU. I noticed that two versions of mobilenetV1 were implemented in ACL, "examples/graph_mobilenet.cpp" and "tests/networks/MobileNetV1Network.h". When testing them on an MTK platform using mali gpu, "graph_mobilenet" finished in 120ms while "MobileNetV1Network" (as part of tests/benchmark/CL/SYSTEM) cost 224ms.
Why there's such big gap in performance between calling graph APIs and CL functions?
arm_compute_version=v18.05
Build options: {'embed_kernels': '1', 'arch': 'arm64-v8a', 'opencl': '1', 'neon': '1', 'asserts': '1', 'debug': '0', 'os': 'linux', 'Werror': '1'}
Git hash=b3a371bc429d2ba45e56baaf239d8200c2662a74
Platform: Mediatek - MT2712
OS: linux

Hi,
The test in SYSTEM is a legacy test (It will be removed in the next release), it was created when we didn't have a Graph API in order for people to have an idea of what the performance would be like when running the entire network.
Nowadays we've got Graph support which contains several optimisations (Like heuristics to select the right algorithms, some layer fusion, etc.) so the Graph example is what should be used to measure performance.
Hope this helps,

Thanks, it helps. Further question is that is it possible to insert a concat layer or add layer for constructing a residual block (which is common in Resnet and Mobilenet V2) with Graph APIs since they are used in kind of streaming manner?

Hello @yoyo-zhao,
Yes there is. Look at the resnet_50 example to check how its done.


The font "NodestoCapsCondensed Bold" cannot be found.

Following the readme, the execution of xelatex book.tex report the following error :
(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg)))kpathsea:make_tex: Invalid fontname [lib/book/fonts/NodestoCapsCondensed Bold.otf]/OT', contains '['

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "NodestoCapsCondensed Bold" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................

l.29 ]{NodestoCapsCondensed}

It's not a blocking error as soon as we stripe space in the following paragraph in /lib/book/rpg-fonts.sty :
\newfontfamily\nodesto[
  Path = lib/book/fonts/,
  Extension = .otf,
  UprightFont = *,
  BoldFont = * Bold,
  ItalicFont = * Italic,
  BoldItalicFont = * Bold Italic,
]{NodestoCapsCondensed}

Resulting in :
\newfontfamily\nodesto[
  Path = lib/book/fonts/,
  Extension = .otf,
  UprightFont = *,
  BoldFont = *Bold,
  ItalicFont = *Italic,
  BoldItalicFont = *BoldItalic,
]{NodestoCapsCondensed}

I think that this section should target font file, waiting for a space before the the font type, where font file are camelCase. However my knowledge in latex are not good.

Thank's for the issue. I've fix it.


Linkouts under Pangolin results do not work

Hi,
Under all results there are linkouts to various other services (OMIM, etc). The links under the SpliceAI results work, but the ones under the Pangolin results are broken.
https://spliceailookup.broadinstitute.org/#variant=NM_001165963.4(SCN1A)%3Ac.383C>T&hg=37&distance=500&mask=1
Thanks!

It would also be helpful if these results called out the gene that matched the Ensembl transcript - like it does for the SpliceAI results - please.

This has been fixed.


In Curses driver, ESC has a built-in 200ms pause, which makes it hard to make ESC responsive

This is really noticeable in UI Catalog (sync latest to PR) where ESC is used to exit a Scenario.
On Linux (with Curses) it takes 1-2 seconds for the Scenario to close.
I looked at the Unix.MainLoop and Cruses code, but I can't tell why this is.

I have also detected that. I think the cause is this on CursesDriver.
// Special handling for ESC, we want to try to catch ESC+letter to simulate alt-letter as well as Alt-Fkey
if (wch == 27) {
	Curses.timeout (200);

Ahhh..
I've confirmed changing my code to look for Key.F1 works around this. So confirmed.
Updated bug description.

On what systems does alt-letter and alt-fkey not work?
I think it's only very esoteric old stuff, right?
IOW, can we just remove this behavior or make it an opt-in option?

@bdisp asked in #387: "Did you try that removing the timeout in #439 to see if it works without problems?"
Yes, and it removes the delay, but would break the "ESC-F" == "Alt-F" functionality.

Assigning to @migueldeicaza since I think only he can make the call on whether this functionality is still needed in this day and age.

I still rely entirely on ESC-letter on Mac, as generally those keyboard have the F keys needing Fn-Key, which is not easy to hit as ESC-letter :-)

Man, you're old and rigid.
But, I guess you're probably not alone. I didn't realize folks still had those muscle-memories.
I think we're ok leaving this functionality in then. I already established that using ESC as the way to exit an app/screen can be replaced by CTRL-Q so I think we can just adopt that as the standard.
Right?

This should not affect anyone on Windows, there I think we should make ESC immediate, as you typically have working F keys that have not been abused.
For Unix, the idiom is to use "ESC ESC" for a quick response.

This should not affect anyone on Windows, there I think we should make ESC immediate, as you typically have working F keys that have not been abused.
For Unix, the idiom is to use "ESC ESC" for a quick response.

The problem is WSL. Via it, many people use Unix ON Windows.
If you run a Terminal.Gui app under WSL on Windows and you are not familiar with the "ESC as Control key" idiom, it just seems like hitting ESC is slow.

@migueldeicaza it's really true what @tig is saying.

+1 to this, or maybe making it configuration option? It took me significant time to figure out why it took so much time on my Mac, and I really believed whole app was slow (but my app wasn't much more than ESC).
So, if there was a way to set Terminal.GUI to stop waiting for ESC I'd call it quite good workaround, that would work for me 100%.

The problem is that it leaves no option for those that use the terminal remotely, or without F keys (most Mac users do not have the F keys around to be used).
A configuration option would just hide the problem for the tester.
What we could do is perhaps have some heuristics, like for example, if we detect that we are running under WSL, not over SSH, we could make the delay shorter.

@BDisp didn't you recently fix this?

Yes but I think saw some changes on the timeout recently by you.


git log Error: fatal: unknown date format iso8601-strict  Failed with exit code: 128

Hello,
I am getting this error message whenever I try to user gitlens on a file.
This is the output:
Add log cache for 'c:/users/...js' git log --follow --name-only --no-merges --date=iso8601-strict --format=%H -%nauthor %an%nauthor-date %ai%ncommitter %cn%ncommitter-date %ci%nsummary %s%nfilename ? ..js   cwd='c:/Users/...'    Error: fatal: unknown date format iso8601-strict  Failed with exit code: 128
Cheers

@junjs what version of git do you have installed? Also what OS are you on?

@eamodio hey!
before I had the version 1.8.3 on windows. I update the version I use the last one and now it seems to be working.
Thanks a lot for your great work!


Automated Testing Complete -- 946/946 Pass

I added new integration tests, so all expressions should work. I also fixed some of the old unit tests and added some more as needed.
Testing now can be automated (at least for the version made to run on a real machine, and not the C3). All 946 tests pass directly in CPython (verifying that all the test cases and expected outputs are valid), and these also pass in C3Python (again, at least for the version on the real-machine branch).

No merge conflicts...

I also fixed several bugs found in testing and added several features (chained comparison operators, not in and is not operators, etc.)


On windows 11 with Python 3.10.6, unable to load the database directory

Windows 11 Professional (64 bit), 32 GiB RAM
Python 3.10.6 (64 bit)
NVIDIA RTX-3060 (12GiB VRAM)
dataset-tag-editor-standalone checked out in D:/ai-tools/dataset-tag-editor-standalone

When I launch the program by double-clicking launch_user.bat in the checkout directory, it comes up with no errors on the console. I set the dataset directory to D:\ai-tagged, selected BLIP and DeepDanbooru as interrogators.
When I hit the "Load" key, I get the following in the console window (starting at the line Task exception was never retrieved):
Volume in drive D is Fast-Data
 Volume Serial Number is B05B-6006

 Directory of D:\ai-tools\dataset-tag-editor-standalone\venv\Scripts

09/23/2023  10:14 AM           266,664 python.exe
               1 File(s)        266,664 bytes
               0 Dir(s)  1,224,441,315,328 bytes free
PyTorch device: cuda
Running on local URL:  http://<IP_ADDRESS>:7860

To create a public link, set `share=True` in `launch()`.
Task exception was never retrieved
future: <Task finished name='e5iar4yhenj_5' coro=<Queue.process_events() done, defined at D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py:343> exception=1 validation error for PredictBody
event_id
  Field required [type=missing, input_value={'fn_index': 5, 'data': [...on_hash': 'e5iar4yhenj'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.3/v/missing>
Traceback (most recent call last):
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py", line 347, in process_events
    client_awake = await self.gather_event_data(event)
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py", line 220, in gather_event_data
    data, client_awake = await self.get_message(event, timeout=receive_timeout)
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py", line 456, in get_message
    return PredictBody(**data), True
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\pydantic\main.py", line 165, in __init__
    __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
pydantic_core._pydantic_core.ValidationError: 1 validation error for PredictBody
event_id
  Field required [type=missing, input_value={'fn_index': 5, 'data': [...on_hash': 'e5iar4yhenj'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.3/v/missing
Task exception was never retrieved
future: <Task finished name='e5iar4yhenj_7' coro=<Queue.process_events() done, defined at D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py:343> exception=1 validation error for PredictBody
event_id
  Field required [type=missing, input_value={'fn_index': 7, 'data': [...on_hash': 'e5iar4yhenj'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.3/v/missing>
Traceback (most recent call last):
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py", line 347, in process_events
    client_awake = await self.gather_event_data(event)
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py", line 220, in gather_event_data
    data, client_awake = await self.get_message(event, timeout=receive_timeout)
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py", line 456, in get_message
    return PredictBody(**data), True
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\pydantic\main.py", line 165, in __init__
    __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
pydantic_core._pydantic_core.ValidationError: 1 validation error for PredictBody
event_id
  Field required [type=missing, input_value={'fn_index': 7, 'data': [...on_hash': 'e5iar4yhenj'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.3/v/missing
Task exception was never retrieved
future: <Task finished name='e5iar4yhenj_44' coro=<Queue.process_events() done, defined at D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py:343> exception=1 validation error for PredictBody
event_id
  Field required [type=missing, input_value={'fn_index': 44, 'data': ...on_hash': 'e5iar4yhenj'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.3/v/missing>
Traceback (most recent call last):
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py", line 347, in process_events
    client_awake = await self.gather_event_data(event)
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py", line 220, in gather_event_data
    data, client_awake = await self.get_message(event, timeout=receive_timeout)
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\gradio\queueing.py", line 456, in get_message
    return PredictBody(**data), True
  File "D:\ai-tools\dataset-tag-editor-standalone\venv\lib\site-packages\pydantic\main.py", line 165, in __init__
    __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
pydantic_core._pydantic_core.ValidationError: 1 validation error for PredictBody
event_id
  Field required [type=missing, input_value={'fn_index': 44, 'data': ...on_hash': 'e5iar4yhenj'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.3/v/missing

It looks like there is an incompatibility in the parameters call to PredictBody but I'm not very well versed in Python and solving problems therein.
Is this a known problem?  Is it an issue with my installation, and if so, is there a way to configure my system to solve it?
edit
While reading imperfect matches in other open issues, I found a similar issue that had a reply (https://github.com/toshiaki1729/dataset-tag-editor-standalone/issues/22#issuecomment-1665399779) which said to install  fastapi==0.95.2, so I got farther along, however I have a new issue that I need to track down.  If I don't find a solution for that, I will create a new issue, since it's not the same problem.

installing fastapi==0.95.2 worked for me

I've updated gradio to 4.28.3 in >= ver0.0.6.
Version related issue may be solved.
I'm grad if you can check it.


[cache]cache show fails with stack trace if resource type is not specified

This is autogenerated. Please review and update as needed.
Describe the bug
az cache show -n {} -g {} fails...
az cache show -n {} -g {} -t {} succeeds...
Command Name
az cache show
Errors:
join() argument must be str or bytes, not 'NoneType'
Traceback (most recent call last):
python3.7/site-packages/knack/cli.py, ln 206, in invoke
    cmd_result = self.invocation.execute(args)
cli/core/commands/__init__.py, ln 523, in execute
    raise ex
cli/core/commands/__init__.py, ln 581, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
cli/core/commands/__init__.py, ln 574, in _run_job
    six.reraise(*sys.exc_info())
...
cli/command_modules/configure/custom.py, ln 194, in show_cache_contents
    item_path = os.path.join(directory, resource_group_name, resource_type, '{}.json'.format(item_name))
../lib/python3.7/posixpath.py, ln 94, in join
    genericpath._check_arg_types('join', a, *p)
../lib/python3.7/genericpath.py, ln 149, in _check_arg_types
    (funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'NoneType'

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az cache show -n {} -g {}

Expected Behavior
Environment Summary
Darwin-18.0.0-x86_64-i386-64bit
Python 3.7.3
Shell: bash

azure-cli 2.0.62 *

Extensions:
dev-spaces 1.0.0
alias 0.5.2
interactive 0.4.2

Additional Context

Full stack trace:
The command failed with an unexpected error. Here is the traceback:
join() argument must be str or bytes, not 'NoneType'
Traceback (most recent call last):
  File "/Users/tosin/Repos/cli-venv/lib/python3.7/site-packages/knack/cli.py", line 206, in invoke
    cmd_result = self.invocation.execute(args)
  File "/Users/tosin/Repos/azure-cli/src/azure-cli-core/azure/cli/core/commands/__init__.py", line 523, in execute
    raise ex
  File "/Users/tosin/Repos/azure-cli/src/azure-cli-core/azure/cli/core/commands/__init__.py", line 581, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
  File "/Users/tosin/Repos/azure-cli/src/azure-cli-core/azure/cli/core/commands/__init__.py", line 574, in _run_job
    six.reraise(*sys.exc_info())
  File "/Users/tosin/Repos/cli-venv/lib/python3.7/site-packages/six.py", line 693, in reraise
    raise value
  File "/Users/tosin/Repos/azure-cli/src/azure-cli-core/azure/cli/core/commands/__init__.py", line 551, in _run_job
    result = cmd_copy(params)
  File "/Users/tosin/Repos/azure-cli/src/azure-cli-core/azure/cli/core/commands/__init__.py", line 289, in __call__
    return self.handler(*args, **kwargs)
  File "/Users/tosin/Repos/azure-cli/src/azure-cli-core/azure/cli/core/__init__.py", line 453, in default_command_handler
    return op(**command_args)
  File "/Users/tosin/Repos/azure-cli/src/command_modules/azure-cli-configure/azure/cli/command_modules/configure/custom.py", line 194, in show_cache_contents
    item_path = os.path.join(directory, resource_group_name, resource_type, '{}.json'.format(item_name))
  File "/Users/tosin/Repos/cli-venv/bin/../lib/python3.7/posixpath.py", line 94, in join
    genericpath._check_arg_types('join', a, *p)
  File "/Users/tosin/Repos/cli-venv/bin/../lib/python3.7/genericpath.py", line 149, in _check_arg_types
    (funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'NoneType'

All three arguments should be required. Thanks for the report.

@tjprescott I also add two other issues:

cli_ctx.data['_cache'] is persisted between self.cmd() calls in scenariotests.
cacheObject.result() fails when the model is not in a API-versioned sdk.

cli_ctx.data['_cache'] is persisted between self.cmd() calls in scenariotests.
Yes, I found the same and that is fixed.

cacheObject.result() fails when the model is not in a API-versioned sdk.
What error do you get?

@tjprescott. Nice to hear it was fixed. I would pull in dev into my branch.

Yes, I found the same and that is fixed.

Has the fix been merged to dev? I am still having this issue

It is in the PR.


[Feature Request]: develop in C#

Is your feature request related to a problem? Please describe.
Why not develop in C# language?
Describe the solution you'd like
No response
Additional context
No response

It's WIP, Checkout #924


Error: expected "access_token" to not be an empty string when project provider is removed

Describe the bug
Artifactory Cloud version: 7.78.1
Terraform version: 1.3.6
Project provider version: 1.5.2
Upon removing the project provider, terraform plan fails with the following error:
Error: Invalid provider configuration

Provider "registry.terraform.io/jfrog/project" requires explicit
configuration. Add a provider block to the root module and configure the
provider's required arguments as described in the provider documentation.

Error: expected "access_token" to not be an empty string, got

  with provider["registry.terraform.io/jfrog/project"],
  on <empty> line 0:
  (source code not available)

Requirements for and issue

[ ] A fully functioning terraform snippet that can be copy&pasted (no outside files or ENV vars unless that's part of the issue)
[x] Your version of artifactory (you can curl it at $host/artifactory/api/system/version
[x] Your version of terraform

Expected behavior
The project provider can be removed without any errors.
This is similar to the issue for the artifactory provider: https://github.com/jfrog/terraform-provider-artifactory/issues/425

@hsiddiqui84 Please provide an example of your HCL. This error suggests you still have a resource/data source that reference the project provider but your no longer have the provider "project" block in your HCL.

I was getting the following error:
Error:
404 GET https://xxxx/access/api/v1/projects/projectxxx
{
  "errors" : [ {
    "code" : "NOT_FOUND",
    "message" : "Could not find project with key `projectxxx`"
  } ]
}

so I removed the project provider:
provider "project" {
  url          = "https://${var.artifactory_hostname}/artifactory"
  access_token = var.access_token
}

But I still had it declared as part of the required_providers block:
project = {
      source  = "registry.terraform.io/jfrog/project"
      version = "1.4.0"
    }

I went ahead and removed the above as well after which I got the original error reported in this issue:
Error: expected "access_token" to not be an empty string, got

  with provider["registry.terraform.io/jfrog/project"],
  on <empty> line 0:
  (source code not available)

I had to manually remove the projects from the state file to be able to successfully apply subsequent changes:
terragrunt state rm "module.project[\"projectxxx\"].project.this"

@hsiddiqui84 Your comment suggests that the project is removed out-of-band, i.e. not using terraform destroy --target "module.project[\"projectxxx\"].project.this".
I try to reproduce this by first creating a project:
alexh@alexh-mac terraform-provider-project % terraform apply

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # project.myproject will be created
  + resource "project" "myproject" {
      + block_deployments_on_limit      = false
      + description                     = "My Project"
      + display_name                    = "My Project"
      + email_notification              = true
      + id                              = (known after apply)
      + key                             = "myproj"
      + max_storage_in_gibibytes        = 10
      + use_project_group_resource      = true
      + use_project_repository_resource = true
      + use_project_role_resource       = true
      + use_project_user_resource       = true

      + admin_privileges {
          + index_resources  = true
          + manage_members   = true
          + manage_resources = true
        }
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

project.myproject: Creating...
project.myproject: Creation complete after 0s [id=myproj]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Then without changing the configuration, I delete the project in Artifactory web UI. Then run terraform plan which reports the correctly that it needs to recreate the project resource:
alexh@alexh-mac terraform-provider-project % terraform plan
project.myproject: Refreshing state... [id=myproj]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # project.myproject will be created
  + resource "project" "myproject" {
      + block_deployments_on_limit      = false
      + description                     = "My Project"
      + display_name                    = "My Project"
      + email_notification              = true
      + id                              = (known after apply)
      + key                             = "myproj"
      + max_storage_in_gibibytes        = 10
      + use_project_group_resource      = true
      + use_project_repository_resource = true
      + use_project_role_resource       = true
      + use_project_user_resource       = true

      + admin_privileges {
          + index_resources  = true
          + manage_members   = true
          + manage_resources = true
        }
    }

Plan: 1 to add, 0 to change, 0 to destroy.

─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.

Without applying the change, I remove resource "project" "myproject" from the configuration and run terraform plan again:
alexh@alexh-mac terraform-provider-project % terraform plan
project.myproject: Refreshing state... [id=myproj]

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.

Again TF & the provider is behaving correctly with no error.
I then remove the provider "project" block and run terraform plan. Again no error.
After running terraform apply, the project resource is removed from the TF state.

@hsiddiqui84 In your comment, you have the project provider version 1.4.0
project = {
  source  = "registry.terraform.io/jfrog/project"
  version = "1.4.0"
}

I suspect that is how you are getting that 404 error from the provider/API. Please upgrade to 1.5.2 and let me know if this issue still exists.

Your understanding is correct.  The functionality to add / modify projects on the edge nodes is no longer available so the projects were manually removed by the PE team. The existing remote repos needed to be detached from the existing projects before deleting them.
We no longer use te project provider for edge nodes so we are good for now.


Feat: limit pivot role S3 permissions

Feature or Bugfix

Feature

Detail
The guiding principle is that:

dataset IAM role is the role accessing data
pivot role is the role used by the central account to perform SDK calls in the environment account

In this PR we

Replace pivot role by dataset role in dataset Lake Formation registration
Use pivot role to trigger upload files feature and create folder feature, but use the dataset IAM role to perform the putObject operations-> removes the need for read and putObject permissions. for the pivot role
Redefine pivot role CDK stack to manage S3 buckets (bucket policies) for only the datasets S3 buckets that have been created or imported in the environment.
implement IAM policy utils to handle the new dynamic policies. We need to verify that the created policy statements do not exceed the maximum policy size. In addition we replace the previous "divide in chunks of 10 statements" by a function that divides in chunks based on the size of the policy statements. This way we optimize the policy size, which helps us in reducing the number of managed policies attached to the pivot role. --> it can be re-used in other "chunkenization" of policies
We did not implement force update of environments (pivot role nested stack) with new datasets added because it is already forced in backend/dataall/modules/datasets/services/dataset_service.py

Backwards compatibility Testing
Pre-update setup:

1 environment (auto-created pivot role)
2 datasets in environment, 1 created, 1 imported: with tables and folders
Run profiling jobs in tables

Update with the branch changes:

[X] CICD pipeline runs successfully
[X] Click update environment on environment -> successfully updated policy of pivot role with imported datasets in policy. Reduction of policies
[X] Click update datasets --> registration in Lake formation updated to dataset role
[X] Update files works
[X] Create folder works
[X] Crawler and profiling jobs work

Relates

#580

Security
Please answer the questions below briefly where applicable, or write N/A. Based on
OWASP 10.

Are you introducing any new policies/roles/users? Yes

Have you used the least-privilege principle? How? In this PR we restrict the permissions of the pivot role, a super role that handles SDK calls in the environment accounts. Instead of granting permissions to all S3 buckets, we restrict it to data.all handled S3 buckets only

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@noah-paige I tested locally importing 20, 200, 400 and 500 datasets to stress out the policy utilities.
Here is the result for the 500 imported datasets test:

When I tested in AWS I used 2 datasets only, do you think I should do more load testing?

Testing for 500 datasets locally is definitely sufficient in my view - wanted to make sure we had tested when reaching up to these edge cases that all works as expected
My understanding is that the functionality should be the exact same when forming the pivot role permission statements for either local or aws deployment so I think it is good!


Implement foldl and foldr for CNTK #12168

Summary
Implement functions K.foldl and K.foldr for CNTK
Related Issues
#12168
PR Overview
-[ ] This PR requires new unit tests [y/n] (make sure tests are included)
-[ ] This PR requires to update the documentation [y/n] (make sure the docs are up-to-date)
-[x] This PR is backwards compatible [y/n]
-[ ] This PR changes the current API [y/n] (all API changes need to be approved by fchollet)

Accumulator assignment in the loop has to be changed to accumulator.value = fn(...) instead of  accumulator = fn(...).


Custom Forms Drop Down

When a user selects an item in one of the custom form drop downs, it requires two more clicks on the drop down in order to change their selection to something different.
Using the latest builds of Chrome and Firefox for Mac.

I believe this has been fixed in the most recent release.


[FSDE-14215] Migrate Tabs component to vue documentation

You can check this PRs instance in https://8fe26d1d7d22e94f61b45de2727afc9134edbbea-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/3/. :white_check_mark:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/4/. :white_check_mark:

You can check this PRs instance in https://3e0084c12c03a583910a7e881a4c134514343e9f-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/5/. :white_check_mark:

You can check this PRs instance in https://6a3a282b24322d14d2e685db6f16af8ffd9a7e32-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/6/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/7/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/8/. :white_check_mark:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/9/. :white_check_mark:

You can check this PRs instance in https://5113f2fe136091745bebde4c8f2d1c98c9228d20-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/10/. :white_check_mark:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/11/. :white_check_mark:

You can check this PRs instance in https://ebe67e0a8c561fc826b343f542bfdf64aa6570fd-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/12/. :white_check_mark:

You can check this PRs instance in https://52199631ccaa3240420a1280d92e0ca750c5b28b-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/13/. :x:

You can check this PRs instance in https://4dc994a7ff881c1a9c9d86e4c4d1badd6a402d55-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/16/. :white_check_mark:

You can check this PRs instance in https://006bdd38098e1a02f0127b2bc43040de5baf37d2-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/17/. :white_check_mark:

You can check this PRs instance in https://684829c61c9c812a8b91b8827a77c59fc84eac74-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/18/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/19/. :white_check_mark:

You can check this PRs instance in https://f2f2917dad928d03a0c5cb679e3c946720310e0a-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/20/. :white_check_mark:

You can check this PRs instance in https://e768375dc2dd94a60614ce0ae68aee758a93a983-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/21/. :white_check_mark:

You can check this PRs instance in https://0cf715df9577ddf979face25fef547ed242c066f-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/22/. :white_check_mark:

You can check this PRs instance in https://a5044279e3ea3af671be8eb00bfd67c5835c5052-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/23/. :white_check_mark:

You can check this PRs instance in https://495d0c1675c9bad3a77e35a8c8765ffb0bf3bb6a-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/24/. :white_check_mark:

You can check this PRs instance in https://e6580e71dc7589791e373af431128e4ae6181666-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/25/. :white_check_mark:

You can check this PRs instance in https://20eff86e9970ccb6f8ab710e3e52b619c7581319-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/26/. :white_check_mark:

You can check this PRs instance in https://330be8cce1fd72397ef41edc2b71131b81ba832f-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/27/. :white_check_mark:

You can check this PRs instance in https://47af2cbcd8fd5b7c4d2e573109ec199978aecb0d-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline has run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/29/. :white_check_mark:

You can check this PRs instance in https://8f121658bef9f56139b87aab2f8cadfa004a7b9e-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline has run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/30/. :white_check_mark:

You can check this PRs instance in https://5dbf2177472f43ea18c30f602b4e2356849b7c09-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/31/. :x:

The CI pipeline has run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-321/32/. :white_check_mark:

You can check this PRs instance in https://4e19004249eed9889ea2d07f5fdbac0c0e59410f-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-321-ux-chi.kubeodc-test.corp.intranet/ (internal)

Closing this Pr as we are going to release the new tab wc and the new vue tab documentation will need to be updated


K8s v1.19.9 is Out of Support for Azure

See and the workaround that was required until this is resolved.
https://github.com/sassoftware/viya4-deployment/issues/168

This deployment issue has been addressed with our 1.1.1 release.


Upgrade actions/setup-java v3.6.0 -> v3.8.0

This PR contains the following updates:

Package
Type
Update
Change

actions/setup-java
action
minor
v3.6.0 -> v3.8.0

Release Notes

actions/setup-java
v3.8.0
Compare Source
In scope of this release we added logic to pass the token input through on GHES for Microsoft Build of OpenJDK (https://github.com/actions/setup-java/pull/395) and updated minimatch dependency.

[ ] If you want to rebase/retry this PR, check this box

The Java Platform team wishes you a happy festive period. Here is the suggested commit message:
Upgrade actions/setup-java v3.6.0 -> v3.8.0

Renovate be like

Header generated and modified from Sweaterify.


How to treat Actors as singletons?

I am trying to devise a system where I have a single actor per a given key, and that whenever I want to perform an action against a specific key, I would get_or_create the actor per that key. I was hoping this could be achieved purely by spawning the actor with a given name or aid however this just seems to spawn new actors over and over. Is there any other way, for instance retrieving actors by name from the arbiter / monitor or do I need to create my own registry dict of key:ActorProxy or something? Thanks!

Closing, will post on https://groups.google.com/forum/?fromgroups#!forum/python-pulsar instead


Autoplugin default settings applied after user defined settings

steps
Create an autoplugin:
object SamplePlugin extends AutoPlugin {
  override def trigger = allRequirements
  override def requires = JvmPlugin

  object autoImport {
    val myTask = taskKey[Seq[File]]("task files")

    def myPluginSettings(cond: Boolean) = {
      println(s"condition: $cond")

      inConfig(Compile)(Seq(myTask := Seq.empty)) ++ (
        if(!cond) Seq.empty
        else {
          val input = compileInputs in (Compile, compile)
          input := (input dependsOn (myTask in Compile)).value
        }
      )
    }
  }
  import autoImport._

  override def projectSettings = myPluginSettings(cond = true)
}

Use non-default settings in client build.sbt:
myPluginSettings(cond = false)
problem
Observe that reverse dependency on compile::compileInputs exists for myTask despite having set cond to false.
expectation
No reverse dependency on compile::compileInputs is set for myTask when cond is false. Furthermore, not even reload projectSettings, but I guess that's the effect of changing build settings.
notes
sbt version: 0.13.15
Example repo here illustrates the issue. Clone; then run sbt scripted to see above problem condition manifested.

Suppose sbt is working as expected, it should load
JvmPlugin, SamplePlugin, and then your build.sbt in the oder.
That would expand to:

myPluginSettings(cond = true)
myPluginSettings(cond = false)

That would expand to:
myTask := Seq.empty
val input = compileInputs in (Compile, compile)
input := (input dependsOn (myTask in Compile)).value
myTask := Seq.empty

Suppose sbt is working as expected

Let's not suppose anything, the ordering is exactly the reverse:

myPluginSettings(cond = false)
myPluginSettings(cond = true)

Illustrated here, the steps:

Add an AtomicBoolean flag, processed, with default false
Set processed to true within myPluginSettings
In projectSettings only invoke myPluginSettings when processed is false

With myPluginSettings(cond = false) the compileInputs setting is not initialized. If the ordering were as you say then compileInputs setting would be initialized.
Of course, without the atomic check ordering isn't important since projectSettings will be invoked no matter what, and the setting at hand is not shared, but rather presence or absence of a setting. The deeper issue is that there doesn't appear to be a way to encode Optionality into a setting. For example, if one could:
val input = compileInputs in (Compile, compile)
input := {
  if(myFlag.value) Some( (input dependsOn (myTask in Compile)).value )
  else None
}

then everything could be handled at build time.

The initialization of tasks I don't think is relevant to the semantics of build.sbt DSL.
At the project level, you can enable or disable an auto plugin.
Within a task, you can use dynamic task to use the result of another task or setting to branch your execution - http://www.scala-sbt.org/0.13/docs/Tasks.html#Dynamic+Computations+with
In general build.sbt DSL represents graph (http://www.scala-sbt.org/0.13/docs/Task-Graph.html), not a procedural code.

At the project level, you can enable or disable an auto plugin

Thanks, but we're aiming for keeping the plugin enabled by while providing the user the ability to compile without invoking myTask. Disabling the plugin disables it entirely, so the user cannot manually invoke myTask.

Within a task, you can use dynamic task

I don't see how that helps resolve the problem of conditionally setting compileInputs. There doesn't appear to be a way to optionally set a setting, whether that happens at build time or run time via Def.taskDyn.
Def.sequential may work, haven't tried, but it looks like that may be one way to optionally "shim" in a task (or dummy task) based on some build time value.

@godenji The order is being applied correctly. If I have the following code:
def myPluginSettings(setName: Boolean) = {
 if (setName) Seq(name := "foo") else Nil
}

And then I apply it to the build like this:
myPluginSettings(true)
myPluginSettings(false)

I effectively get myPluginSettings(true) ++ myPluginSettings(false), which is Seq(name := "foo") + Nil, which is Seq(name := "foo"). It doesn't matter how many times I apply myPluginSettings(false), it will always return Nil, and so always have no effect. If you have an enabled autoplugin, its settings will always be applied, you can't unapply the settings, you can only override them, returning Nil from myPluginSettings overrides nothing.
If in contrast, I had this:
def myPluginSettings(setName: Boolean) = {
 if (setName) Seq(name := "foo") else Seq(name := "bar")
}

Then the result would be Seq(name := "foo") ++ Seq(name := "bar"), and the name := "bar" would win.


[tests/dispatcher] Factor the dispatcher tests to be easier to read and maintain

Counting how many changes there were supposed to be pushed down to the dispatcher is kind of ugly and hard to understand - instead, force the tests to enumerate exactly what all the changes are.
cc @riyazdf

Also: I haven't finished writing tests for #2305 yet, so I will rebase on top of this for the additional test cases.

The problem I've run into with these tests is that they break pretty badly when a new state is added, and are hard to update for this case. I think it would be really useful to remove assumptions about, for example, Running being index 7.

@aaronlehmann Hm... this may replicate some of the logic in assignments.go, but I've added filtering by task state, and dependency filtering by tasks.

LGTM


[Feature Request][Spark] Add test coverage for clustering on generated columns

Feature request
Which Delta project/connector is this regarding?

[x] Spark
[ ] Standalone
[ ] Flink
[ ] Kernel
[ ] Other (fill in here)

Overview

Clustered tables support columns with stats collected on them, so generated column should work. We should add testing to cover this scenario.
Further details

We can add tests for generated columns in ClusteredTableDDLSuite.scala
Willingness to contribute
The Delta Lake Community encourages new feature contributions. Would you or another member of your organization be willing to contribute an implementation of this feature?

[ ] Yes. I can contribute this feature independently.
[ ] Yes. I would be willing to contribute this feature with guidance from the Delta Lake community.
[x] No. I cannot contribute this feature at this time.

Hi @zedtang, could you please assign this task to me, I am new to delta and would like to take this to get warmed up.

Yeah, sure @wudanzy let me know if you have any questions!

@wudanzy Are you working on this still?

Yes, it is still ongoing, sorry for the delay.


To browse a web site and get dynamic text by launching a web browser using Bridge.net class

I have spent some time to learn Bridge.NET, I can see it is a good tools to run some JavaScript from C#.  However, I want to know if I can build a C# project (WinForm or WPF), which actively launch a web browser and visit some web site and inject some JavaScript to the web site and return the result from the JavaScript.
I have a simple HTML file, running from local web server:
http://localhost/index.html
`

index

`
This setups a HTML file with two JavaScript functions. The first one, count1() shows an increasing number from 1 with step of 1, sleeps one second each time.
The second one, count2(), shows an increasing number from 200 with step of 2, and sleeps two seconds each time.
The both functions generate dynamic text inside different elements, but they are both children from their parent node.
I can use JavaScript codes to catch the dynamic text generated by the JavaScript, the following codes work in DevTools of Chrome.
const numbers = document.querySelector('div.counters');
const config ={characterData: true, childList: true, subtree: true };
var observer = new MutationObserver(function(mutations){
for (var i=0; i < mutations.length; i++)
{ console.log(mutations[i].innerText); } })
observer.observe(numbers, config);
What I have seen in Bridge.NET documents is: write a class library with JavaScript/C# code, and open a browser to view a html file and see the output in the screen by hand.
What I want to do is: C# program launches a web browser (Chrome is better, as VS 2017 doesn't have other real web browsers) in C# project and visits http://localhost/index.html
And uses Bridge.NET to get the dynamic text from C#.
Please advice if it is possible.  To open a built-in html file by hand using open with web browser is not an option.  Since my final target is use this project to visit a real web site, and use Bridge.NET to detect the dynamic text generated by the JavaScript on that web site, which is totally out of my control.
If possible, please provide rather detailed steps, or refer to a working C# project (WinForm or WPF) which I can download from internet.
I am using VS 2017 Version 15.9.3 on Windows 10.
PS: some html formatting strings are missing, like " and " when posted here.
Thanks,

What you want to do is not possible with Bridge.

OK.  Thanks,


[WIP] feat(tracing): Make spans point to their transactions

This adds a pointer to the Span class which points the the Transaction instance from which the span is descended. (It doesn't do anything with it yet, though - that will come in a subsequent PR which allows unsampled transactions living on the scope to be found.)

For reference, the WIP Go implementation always records the span tree, no matter what the sampling decision is.
Would be curious if that has any negative implication, or otherwise we could do the same in Python and JS to eliminate having "yet-another-way" to store references to spans.

For reference, the WIP Go implementation always records the span tree, no matter what the sampling decision is.
Would be curious if that has any negative implication, or otherwise we could do the same in Python and JS to eliminate having "yet-another-way" to store references to spans.

This seems better to me for two reasons:

Why take up memory storing a span tree if we're not going to keep its data? This does make span trees we keep a teeny bit heavier while we're building them, but on the balance it's still a memory savings unless the sample rate is super high.

self._span_recorder[0] is a pretty darn opaque way to say "the transaction to which this span belongs," and feels more on the level of implementation detail than ideally even an internal API would be (IMHO).


Add support for '--syntax' flag in 'ocaml-mdx rule'

ocaml-mdx rule accepts some options solely in order to pass them to the ocaml-mdx test rule that it generates (--direction, --prelude etc.), but it doesn't allow for passing the --syntax flag. This adds the --syntax flag.
This is very similar to #176, making me think this logic probably warrants a refactor to make it easier to understand; a pass-through option like --test-options="--syntax=cram" might work.

This is tested by #178. I can add a test directly here, but if the tests are just about to be refactored then it doesn't seem worthwhile to me.

Rebased over #171.

Rebased over #163.

I prefer having rule take the same options as test. So there is no different syntaxes between options that rule use and the ones it does not. In the future, rule may need to known the syntax.
I think we can merge this :)
What do you think @NathanReb, @samoht ?

I prefer having rule take the same options as test.

FWIW, I don't like this very much for two reasons:

The doc-strings for those options explain the use in test but not in test.
There are existing collisions that make this impossible: --color, --quiet, --verbose interact directly with the rule command and cannot be passed to test AFAICS. I think collisions like this are inevitable.

The test exists in #178; I was trying to avoid writing it here only to immediately delete it. Would you like it here too?

I really prefer when the feature/fix comes with its tests, especially since there's not much to discuss here but there might be in #178 (haven't reviewed it yet).
I totally trust that #178 is an improvement but given that it doesn't change mdx's behaviour and that I'd like to release a new version soon, adding a test here would allow me to merge this with a free mind and be able to delay the review of #178 a bit (just a bit I promise)!
In short: if it's too much of a hassle don't bother, if it's easy enough that'd be great indeed!

Can you also add a changelog entry please?

Added test and changelog entry.


Synthesis of Receiver Research - New Mexico

Problem statement
Synthesize findings from calls to assess the baseline and need as a receiver of data including their need and opportunity for piloting a CSV upload feature.
What you need to know
What are they currently doing - what is the current process (practices and actions) for receiving data, what is the time and labor involved.
Acceptance criteria

Synthesis of

Current process including description of what they are doing, who is involved, the time, time, labor, technology, other resources and costs involved
Any current templates, list of fields, and validation rules
Needs and pain points
Common errors
List of senders that would speak with us and/or be good pilot/would they like to get a demo

To do

Tailor facilitation guide, notetaker, recoding (get notes clean and transcript), thematic and practice analysis, share here.

Review:
Share synthesis with designers and product for feedback

https://cdc.sharepoint.com/:w:/r/teams/USDSatCDC/Shared Documents/PRIME ReportStream/Pilots/CSV Uploader/Experience Research_CSV flat file upload December 2021 ongoing/New Mexico discovery research flat file upload December 2021/2022.1.4.NMDOH_discovery call_Carmela and Jordyn/New Mexico_discovery call %232_synthesis_1.4.21.docx?d=w420ca7b9a1a5441d82ca57e516ca958f&csf=1&web=1&e=l36oS8
Close this ticket. Can reopen if/when we re-engage with NM.


Restore container's ability to run locally (or create new dev container with heron client in it so new heron container can stay small)

I attempted to spin up a heron/heron:latest docker container, bashing into the container (0.17.2) with
docker exec -it container_name
and run a topology by issuing the heron command
heron submit local /usr/local/heron/examples/heron-streamlet-examples.jar com.twitter.heron.examples.ExclamationTopology ExclamationTopology
I get error when I try that? It is failing to find of load the main class from com.twitter.heron.examples.ExclamationTopology

I think this is solved now? I checked the container and it looks good.

Yes - this is solved!
Sent from my iPhone

On Feb 23, 2018, at 5:01 AM, Michael Schmidt<EMAIL_ADDRESS>wrote:
I think this is solved now? I checked the container and it looks good.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

This can be closed as resuloved :)


Update docs or functionality for same_key / different_key in jspsych-same-different plugin

Hello,
Based on these docs
http://docs.jspsych.org/plugins/jspsych-same-different/
it seems that same_key could be set to, for example, 'S'.   But at least on my machine this does not work and so this must be used instead:
jsPsych.pluginAPI.convertKeyCharacterToKeyCode('S')
Suggest either allowing a string or clarifying the documentation.
Thanks!

this is fixed by allowing the same-different plugin to correctly use string representations of keys


The component generator doesn't work without generator-react-webpack

This is a cross post from my redux generator but also affects this generator.
Fix is quite simple.
Let me know If I should supply a PR.

Hi @stylesuxx,
Just added your fix to the source. Did not even try to use it without the parent project installed globally :(.
Thank you for the fix and feedback!


Please upgrade to 6.4

dwm 6.4 is released and take care of fibonacci , that wont run...

oh boi

Most of the patches worked but do u have a diif of colortags? i want it...

@siduck i dont have its diff, check the readme and the original dwm build from where i got the patch

@siduck  do u have any plans to upgrade??

Yes but I'm a bit busy these days so I'll do it before next year for sure.

1 month already...

1 month already...

you can always create a pull request, you know?

unfortunately i dunno C and a couple of things... besides i am currently using bspwm

so why push for an update? siduck will do it when they have the time, or someone else will do a pull request, but let's have patience :)

1 month already...

if you look into dwm's git then you will find that there are no significant changes in 6.4, I will do update in this month

i love this dwm fork thanks for your work keep it up

I could make the update if you got no time @siduck.

sounds good @MinePro120

@sontaimnt done


Add Openshift properties.

I'm not sure if we need a new value for pod_name. The config in the test repo uses the openshift metadata.name field for the app name, but I wasn't sure if that is expected or not.

I'm not sure if we need a new value for pod_name. The config in the test repo uses the openshift metadata.name field for the app name, but I wasn't sure if that is expected or not.

It can be used for both. The pod name makes for a convenient app name, but it doesn't necessarily need to be.

The pod name can be used for both properties. The pod name makes for a convenient app name, but it doesn't necessarily need to be.

Yeah, and on thinking about it more, it is probably better to have a separate field for it, in case you did want them to be different.


memory leak? → ”image.GetPixels()”

I think that a memory leak has occurred in the following files.
"ImageMagickTransformer.cs"
return image.GetPixels().GetValues();
I tried to rewrite it as follows.
image.Format = MagickFormat.Gray;
return image.ToByteArray();
I think that memory leak has stopped.

I am a beginner.
I'm sorry if I made a mistake.
English is machine translation.

However you are right
I also have a memory leak and your solution helped.


[Bug] [OpenCL] Error on OpenCL when head_dim not divisible by 32

🐛 Bug
The issue with paged kvcache under a specific head_dim has been fixed for the cuda target, but there are still problems with the opencl target after after #1889
I'm trying to compile a compressed llama-like model with hidden_size=1536 and head_dim=48 onto opencl. After prefill, the first decoding resulted in an error Cannot sample from the given probability distribution due to unknown reason. The logits after softmax were all around 1e-37.
If I use the exact same parameter matrix but change to head_dim=64, there are no issues. Additionally, head_dim=48 works fine on cuda.
To Reproduce

Expected behavior
It is supposed to be fixed after #1889
Environment

Platform (e.g. WebGPU/Vulkan/IOS/Android/CUDA): Android
Operating system (e.g. Ubuntu/Windows/MacOS/...):
Device (e.g. iPhone 12 Pro, PC+RTX 3090, ...): qualcomm 8gen3
How you installed MLC-LLM (conda, source): source
How you installed TVM-Unity (pip, source): source
Python version (e.g. 3.10): 3.10
GPU driver version (if applicable):
CUDA/cuDNN version (if applicable):
TVM Unity Hash Tag (python -c "import tvm; print('\n'.join(f'{k}: {v}' for k, v in tvm.support.libinfo().items()))", applicable if you compile models): fbfa92658568428b27c6ee5762ab7fe2f7c0b415
Any other relevant information:

Additional context

Hi @sbwww Thank you for reporting this! Can you please provide more information about the model that you are trying to run?

Sorry for the late response. Would you please randomly init a Llama MHA model with hidden_size=1536, num_attention_heads=32 (-> head_dim=48)?
I tried to set num_attention_heads=24 (-> head_dim=64) and it works fine. So, I guess head_dim is the primary difference.


R-value qualified operator* for indirect

Also including a rational for why this is not supported on Polymorphic (i.e. because you don't know the underlying type to move).

Addressed in: https://github.com/jbcoe/value_types/pull/149


Round Robin ignores priority?

I have item conduit set to extract with round robin. It sends it to conduit with any priority level instead of  a higher priority first.

Counterpoint: It took me a long time to figure out my priorities and sticky input filters weren't working because I'd checked round robin. Prioritized RR would be a really useful feature and I strongly disagree that it would be "too confusing".

There's just no way to implement that in a way that makes sense. Let me give you an example:
4 outputs: A and B with prio 1, C and D with prio 0. All of them empty.

Conduit makes list of targets, (A, B) and sets "last target"=0
Item comes in, conduit increments "last target" to 1, then puts the item into A
Item comes in, conduit increments "last target" to 2, then puts the item into B
Items comes, conduit increments "last target" to 3, wraps back 1 one because the list only has 2 elements, then puts the item into A
continue at 3

Next run:

Conduit makes list of targets, (A, B) and sets "last target"=0
Item comes in, conduit increments "last target" to 1, then sees that A is full. Conduit increments "last target" to 2, then sees that B is full. Conduit notices that it failed to insert 2 times for a list of 2 targets. Conduit makes list of targets with next lower prio, (C, D) and sets "last target"=0. Conduit increments "last target" to 1, then puts the item into C.
Player removes one item from A
Item comes in, conduit increments "last target" to 2, then puts the item into D, but remembers the very last second that it is not on the highest prio. So it makes a list (A, B) and checks every inventory for free space. It finds one in A, so it puts the item there and sets "last target"=1
Item comes in, conduit increments "last target" to 2, then sees that B is full. Conduit increments "last target" to 3, wraps back to 1, then sees that A is full. Conduit notices that it failed to insert 2 times for a list of 2 targets. Conduit makes list of targets with next lower prio, (C, D) and sets "last target"=0. Conduit increments "last target" to 1, then puts the item into C.
Player opens bug report with us because round robin isn't robin around but put 2 items int C but none into D and also that conduits take ages to get things done lagging his server.

The problem being that there is one shared "last target" variable for all priority levels? Why not have one variable for each priority level with 2+ devices on it? Lag is a fair response though, if it's true.

Would you accept a PR that both let conduits sleep but still preferred higher priority targets?  It wouldn't be perfect round robin, but it would be less confusing than the behavior I was getting today (fluid trash can @ prio -10, fluid tank @ prio 10, nothing was getting into the tank; switching off round-robin fixed it)


Use dash encoding for table names and row primary keys in URLs

Refs #1439.

Change of plan: based on extensive conversations on Twitter - see https://github.com/simonw/datasette/issues/1439#issuecomment-1059851259 - I'm going to try a variant of this which is basically percent-encoding but with a hyphen instead of a percent symbol.
Reason being that the current scheme doesn't handle the case of % being part of the table name, which could cause weird breakage due to some proxies decoding percent encoding before it gets to Datasette.

Updated documentation:

For consistency, I'm going to change how ?_next= tokens work too. Right now they work like this:
https://github.com/simonw/datasette/blob/de810f49cc57a4f88e4a1553d26c579253ce4531/datasette/views/table.py#L501-L507
https://github.com/simonw/datasette/blob/de810f49cc57a4f88e4a1553d26c579253ce4531/datasette/utils/__init__.py#L114-L116
I'm going to change those to use dash-encoding instead.
I considered looking for % in those values and replacing that as - too, but since Datasette isn't 1.0 yet I'm going to risk breaking any pagination tokens that people might have saved away somewhere!

Just spotted this: https://github.com/simonw/datasette/blob/de810f49cc57a4f88e4a1553d26c579253ce4531/datasette/views/base.py#L203-L216
Maybe the db name should use dash encoding too?

* Maybe use dash encoding for database name too?

Yes, I'm going to do this. At the moment if a DB file is called fixx%tures.db when you run it in Datasette the path is /fix%2525tures - which is liable to break.

I may have to do extra work here
    def database(self, database, format=None):
        db = self.ds.databases[database]
        if self.ds.setting("hash_urls") and db.hash:
            path = self.path(
                f"{dash_encode(database)}-{db.hash[:HASH_LENGTH]}", format=format
            )
        else:
            path = self.path(dash_encode(database), format=format)
        return path

The URLs that incorporate a hash have a dbname-hash format - will that - in the middle there mess up the dash decoding mechanism? I think it will.


WIP master <- develop

Build log
Preview build with this PR (e1c58cb51ee91f0c79058685610ca62531e4b5e1)

more info:cloud: Storage Free space   5.01 GiB    33.42%:open_file_folder: 61.47 MiB  CI_WORK/GitHubActions/roki-web


Appstudio update test-component-pac-phsa

Pipelines as Code configuration proposal

Pipelines as Code CI/test-component-pac-phsa-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
12 seconds
init

✅ Succeeded
28 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
18 seconds
sanity-inspect-image

✅ Succeeded
22 seconds
deprecated-base-image-check

✅ Succeeded
51 seconds
clamav-scan

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
17 seconds
sbom-json-check

✅ Succeeded
9 seconds
sanity-label-check

✅ Succeeded
7 seconds
sanity-optional-label-check

✅ Succeeded
5 seconds
show-summary

Pipelines as Code CI/test-component-pac-phsa-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
12 seconds
init

✅ Succeeded
28 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
18 seconds
sanity-inspect-image

✅ Succeeded
22 seconds
deprecated-base-image-check

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
51 seconds
clamav-scan

✅ Succeeded
17 seconds
sbom-json-check

✅ Succeeded
9 seconds
sanity-label-check

✅ Succeeded
7 seconds
sanity-optional-label-check

✅ Succeeded
5 seconds
show-summary

Pipelines as Code CI/test-component-pac-phsa-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
7 seconds
init

✅ Succeeded
18 seconds
clone-repository

✅ Succeeded
29 seconds
build-container

✅ Succeeded
15 seconds
sanity-inspect-image

✅ Succeeded
16 seconds
deprecated-base-image-check

✅ Succeeded
8 seconds
clair-scan

✅ Succeeded
32 seconds
clamav-scan

✅ Succeeded
11 seconds
sbom-json-check

✅ Succeeded
8 seconds
sanity-label-check

✅ Succeeded
8 seconds
sanity-optional-label-check

✅ Succeeded
5 seconds
show-summary

Pipelines as Code CI/test-component-pac-phsa-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
7 seconds
init

✅ Succeeded
18 seconds
clone-repository

✅ Succeeded
29 seconds
build-container

✅ Succeeded
15 seconds
sanity-inspect-image

✅ Succeeded
8 seconds
clair-scan

✅ Succeeded
16 seconds
deprecated-base-image-check

✅ Succeeded
32 seconds
clamav-scan

✅ Succeeded
11 seconds
sbom-json-check

✅ Succeeded
8 seconds
sanity-optional-label-check

✅ Succeeded
8 seconds
sanity-label-check

✅ Succeeded
5 seconds
show-summary


release: helm chart to the prod environment when a git tag release is created

What
Publish the helm chart to the prod environment when a git tag release is created
Why
It was requested so no more manual actions to be done.
Issues
Similarly done for other projects, see https://github.com/elastic/integrations/pull/3658
Requires the CI changes to be in place

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-09-20T14:52:35.323+0000

Duration: 6 min 6 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
16

Skipped
0

Total
16

:robot: GitHub comments
Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)


speed up webpack

I can install an intermediate caching layer and I can also try to have them as one file instead of separate configs loading the same loaders over and over again.

This is the current time, its because we have 4 configs. I can make them mostly into one and will see if this improves time and then add intermediate cache on top
Time: 4648ms
Time: 5051ms
Time: 3658ms
Time: 4584ms

It adds up to 17s but they run in parallel so its really only 5 seconds. I don't think joining into one file will speed it up. Will look at adding caching layer

Look at that, now it runs really fast because its caching node_modules.
Time: 289ms
Time: 283ms
Time: 283ms
Time: 283ms

Meaning it loads in 1/5 of a second now since they run in parallel
Merry Christmas @Skytrias
If you still find it slow I can add DLLPlugin which speeds up Windows specifically.
https://webpack.js.org/plugins/dll-plugin/


Focus escapes to Chrome title bar

I can't really get this library to work. When testing in Chrome, and I tab out of the modal on which it was added, focus moves to the currently active Chrome tab at the top of the window. When this happens, no focusin event seems to be delivered.
Furthermore, if I keep tabbing, the focus eventually comes back to the actual web page content again, focusin does get delivered, but the focus still doesn't end up back in the modal. I can see that the code issues the firstFocusable.focus() call but it tries to set it on an element in the dialog that isn't actually focusable, and the focus remains on the first link in the content below the modal.

Thanks, is the issue also present for you on the demo page?
If not, can you please provide a minimal reproduction in a repo, stackblitz, or codesandbox?

Hmm, strange, in the demo page the focus stays trapped. Even with the modal closed, focus does not travel to Chrome's UI elements outside the page. Open any other site though, like www.google.com and start hitting Tab and you'll eventually end up in the tab bar.
I actually abandoned this lib and implemented my own action based on the approach used in https://github.com/ghosh/Micromodal instead (catching all Tab key presses instead of relying on focus events), which seems to work better for our use case. So I don't have a repro I'm afraid.

Okay, no worries


leiningen: 2.9.5 -> 2.9.6

Motivation for this change
Upgrade leiningen to 2.9.6
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 122960 at 11104d66 run on x86_64-linux 1

1 package built successfully:

leiningen

2 suggestions:

warning: fixup-phase
fixupPhase should not be overridden, use postFixup instead.
Near pkgs/development/tools/build-managers/leiningen/default.nix:35:3:
   |
35 |   fixupPhase = ''
   |   ^

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/development/tools/build-managers/leiningen/default.nix:29:3:
   |
29 |   installPhase = ''
   |   ^


Traffic not routed with docker 1.7

Did someone make it work with docker 1.7 ?
I followed the instruction but my traffic get stuck inside the proxy and display the nginx welcome page... while I correctly setup my container with -e VIRTUAL_HOST=mydomain.fr.
$ d version
Client version: 1.7.0
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 0baf609
OS/Arch (client): linux/amd64
Server version: 1.7.0
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 0baf609
OS/Arch (server): linux/amd64

The nginx docker returns this :
[localhost] local: docker run -ti --name nginx-proxy -p 80:80 jwilder/nginx-proxy
forego     | starting nginx.1 on port 5000
forego     | starting dockergen.1 on port 5100
dockergen.1 | 2015/06/26 18:26:14 error listing containers: dial unix /tmp/docker.sock: no such file or directory
dockergen.1 | 2015/06/26 18:26:14 Unable to ping docker daemon: dial unix /tmp/docker.sock: no such file or directory
dockergen.1 | 2015/06/26 18:26:24 Unable to ping docker daemon: dial unix /tmp/docker.sock: no such file or directory
dockergen.1 | 2015/06/26 18:26:34 Unable to ping docker daemon: dial unix /tmp/docker.sock: no such file or directory
dockergen.1 | 2015/06/26 18:26:44 Unable to ping docker daemon: dial unix /tmp/docker.sock: no such file or directory

I have the feeling it's related to #114. Can someone confirm ?
Any idea to fix it ? I am using lxc-docker-1.7 package on Linux Mint.

Aaaaahhhh I am sorry for the noise. I forgot to add -v /var/run/docker.sock:/tmp/docker.sock:ro to the nginx proxy launch command...
It works like a charm.
Thank you for this really awesome container !


fix: create downloader for each slug

The current downloader run in parallel but uses the same downloader for each slug, this causes important variables like _docsetPath to get set to whichever promise ran last. To fix this, I create a new downloader for each slug so that each has it's _docsetPath variable set correctly.

Hi! Thank you for making this PR. Huge apologies for taking so long to get to it!
This is a good change, however I think with it we should make the download method static, then we can also remove the Downloader instance from adapter.ts.
Would you please make these changes as well?

Sure! I've made the download method static and instead passed the storePath into the download method.

Perfect! Thanks again for the fix!


Add Dask related  packages to fairicube hub Jupyter - fairicubeuc2-torch kernel

In FAIRiCUBE Hub Jupyter there is a tab in JupyterLab for Dask, but when I try to import Dask packages in the fairicubeuc2-torch kernel they are not available. Can they please be added (perhaps also pertains to other kernels)?

And same for the 'retrying' and 'pyspark' packages.
Even though the server is a single node, it can help with writing/experimenting with distributed code and maybe make better use of the available CPU cores on the node.

[Stefan Achtsnit]1 hour ago
you need to install dask in the conda kernel
what you see on the left is just the extension allowing to open the dash dashboard

Ok, thanks for the reply.


Duplicates Detected Error

We are using the rollups which works really well except in the instance where the parent record is seen as a duplicate. The duplicate rules are set to allow but when the rollup triggers the field update we get an error.
Apex script unhandled trigger exception by user/organization: 0054I000005kghE/00D7E000000AMBf Source organization: 00D24000000d3xf (null)
dlrs_LeadTrigger: execution of AfterInsert
caused by: System.DmlException: Update failed. First exception on row 0 with id 0017E00001CiabXQAR; first error: DUPLICATES_DETECTED, Use one of these records?: []
Class.dlrs.RollupService.Updater.updateRecords: line 1381, column 1
Class.dlrs.RollupService.UpdateWithoutSharing.updateRecords: line 1424, column 1
Class.dlrs.RollupService.updateRecords: line 1352, column 1
Class.dlrs.RollupService.handleRollups: line 1000, column 1
Class.dlrs.RollupService.triggerHandler: line 311, column 1
Trigger.dlrs_LeadTrigger: line 7, column 1

Would you be able to share some steps to setup and reproduce?


Additional functionality for cxx::string

Brief feature description
We require additional methods so that cxx::string is usable like std::string
Detailed information

add method cxx::string::clear to clear the string

add method cxx::string::operator[]() to access a specific character of the string

assignment of cxx::string of different capacity
iox::cxx::string<100> a;
iox::cxx::string<29> b;
a = b; // this should work

iox::cxx::string<50> c(b); // this should work
iox::cxx::string<50> c(a); // this should not work

operator+= and operator+ for easy concatenation
iox::cxx::string<100> a("hello");
iox::cxx::string<100> b("world);

a += b; // this should work
iox::cxx::string<100> c = a + "world"; // this should work

substr
iox::cxx::string<100> a("hello world");
auto helloString = a.substr(0, 5); // should return iox::cxx::string<100> which contains "hello"
auto worldString = a.substr(6); // should return iox::cxx::string<100> which contains "world"

find, find_first_of, find_last_of optionally

Tasks

[x] find, find_first_of, find_last_of
[x] operator+=, operator+
[x] assignment of cxx::string of different capacity
[ ] comparision operator between cxx::string and string literal or char[]
[x] operator[]
[x] cxx::string::clear
[x] insert
[ ] append + concatenate of simple chars
[x] check if it's possible to have a constexpr cxx::string

Refactoring tasks

[ ] check if it makes sense to define using Self = string<Capacity> in the header and use it within methods
[ ] in tests: replace /// @note with // BEGIN tests for method xyz to enable code folding on some IDEs

@FerdinandSpitzschnueffler, does the c'tor automatically infer the length of string literals or do we have to use TruncateToCapacity?
It would be nice to be able to write cxx::string<10> minion("Larry"); instead of cxx::string<10> minion(TruncateToCapacity, "Larry");

@elBoberido, you're already able to write something like cxx::string<10> minion("Larry") as long as the size of the string literal is lesser than or equal than the cxx::string capacity.

@FerdinandSpitzschnueffler, nice. Maybe I overlooked it in the documentation.

Regarding operator[] and at():
Contrary to the std::string I would add a boundary check also to operator[]. The question is what should happen in case of an out of bounds access? I see only two options, 1) we terminate or 2) similar to the unsafe_assign we return a bool which indicates whether the access was successful. Thinking of something like someString[index] = 'x', option 2 would make this cumbersome. Therefore, I tend to option 1. @elBoberido @elfenpiff What do you think? Do you see another option?

@FerdinandSpitzschnueffler I think calling Expects is the right way to do here. The alternative would be to return a cxx::optional<T&> which could be accessed with and_then. This would be quite cumbersome but maybe an option for at(). So there are two options to chose from, a safe one and one which might terminate

@FerdinandSpitzschnueffler I second @elBoberido, Expects/Ensures is a good choice as we will later (#607) allow to disable the checks. You can have a look at this PR, where I adapted cxx::vector and cxx::list amongst other building blocks.

@FerdinandSpitzschnueffler @elfenpiff
Regarding:

check if it's possible to have a constexpr cxx::string

I had a look yesterday: For #1332 I wanted to replace a
constexpr char MYLOVELYSTRING[] = "Blubb";

with
constexpr cxx::string MYLOVELYSTRING("Blubb");

turns out with owning string implementations (e.g. std::memcpy) it is only possible from C++20 and onwards, but even GCC and clang do not support the feature for std::string in their current stable versions yet. You can find the background in this StackOverflow post.
To avoid the usage of plain char arrays we could create a non-owning cxx::string_view and wrap them to have a nicer API, which will work in C++14. However, I don't see a huge benefit as we could then just wrap the char array in a cxx::string during runtime. What do you think?

@mossmaurice I do not understand. The point of a view (e.g. string_view) not to own anything, but only reference the original and return a potentially transformed version to the user of the view, say only a substring or a reversed string etc.
Hence we still have to solve he problem that whatever the view references must exist and in your particular case also be constexpr. It is likely possible to have a view to a statically defined string constant (const char * c = "abc";). The view then needs to have constexpr constructor with this, which should work.
However, to be generic/useful enough the view also should be able to deal with cxx::string, and this is more involved due to the capacity template argument. The complexity of the task depends on what kind of operations the view needs to support. IMO as a first prototype read access with operator[] and creation of a copy of the referenced string (as a cxx::string) would be useful and easy to achieve. Supporting the full array of string operations requires a lot of work and is probably not worth it for now.
If there is interest in creating such a view we can discuss this in detail in a separate issue.
@FerdinandSpitzschnueffler

@csitarichie This is the issue I mentioned yesterday. Check out my comment above on a constexpr'able cxx::string. You can find the implementation here. If you see a possibility to implement it with C++14, I love to hear your idea :upside_down_face:


fix: Update CH openapi manifest URL

When the field Vcpu is 0, golang JSON encoder will ignore it, causing field vcpu missing in output file. So we should make field Vcpu required in CpuAffinity
https://github.com/smartxworks/virtink/blob/d7d5162c2d9fc3edc6ea264e58336d212d1fd752/pkg/cloudhypervisor/client.go#L752-L755
I have updated CH openapi manifest file, see patch. Currently we can use the openapi yaml in this commit, and nothing else has be changed compared to CH release v28.0

@carezkh The CH PR you mentioned has been merged, please change back the manifest URL and re-generate code


Major revamp gltf

@raysan5
Some major changes on GLTF model loading with the following highlights:

Removed some previously extracted functions
Added new GLTFReadValueAs function that will check and read accessors and allocate an array correctly. It is a bit long with a lot of switch cases but really simplifies the rest of the code. (Sadly no templated/generic functions in ANSI C)
Hierarchical loading - now only the scene is loaded and the scene tree is traversed recursively. This was a requirement because there are some node transforms (node is not to be mistaken with a bone, though bones are also nodes) that are applied on parent and child nodes.
Now models like the GearboxAssy are loaded correctly. Keep in mind that GearboxAssy is loaded in the example but has an offset from the center of the scene. This is not a bug - Godot loaded it the same way its just how the model is...

PS: Sadly animations are not yet fixed

Ugh. climits fails. I will replace the values.

@object71 Just took a quick look, it seems ok for the moment. I understand there are some bits missing, right? Please, let me know when it's ready to merge and test.

@raysan5 Should be ready at this point. I won't solve the animations in this PR I just wanted to commit some simplification of the whole GLTF loading so that it is a bit more accessible to more junior developers reading the code.

@object71 Thank you very much for this big review! :D

@raysan5 You didn't wait for me to fix the limit.h files? I will do that later.

@object71 I saw it after merging when reviewing the PR (I usually do a deeper review after merging). Just removed the includes and everything just compiled fine so I thought the usage was already reviewed.


Upgrade gradle

Match internally supported version
Upgrade plugins to latest released versions as well

Coverage remained the same at 92.924% when pulling d94176cef5b62c426f1b65a0dd5c0aa233ddbde7 on tgianos:upgradeGradle into fca239d56f569d4de5d2abf4c2dbffff044dc99c on Netflix:master.


Add Support for Cointracking.info new Liquidity Pool Transactions types

Cointracking now supports special transaction types for liquidity pool transaction (both for in, out and LP rewards) stake.tax should have an options to properly export LP transaction for cointracking using these new transaction types.

In my last tax report i tried to use these LP types, but i reverted back to treat LP transactions as trades. I guess this is the way to go especially for german taxes. At least we will need additional information here in how this feature will interact with the treat lp deposits/withdrawals as option.

LP trades are tricky - adding liquidity to a pool really shouldn't be a trade per-se, but just putting into a pool - and then upon withdrawal the extra fees gained would be additional tokens, as income, w/ cost basis set upon withdrawal.  Every country will vary but at least in the US, guidance is poor to nonexistent.

Fixed and deployed today with https://github.com/hodgerpodger/staketaxcsv/commit/894a8ef876fa35736ccbb2f7b4ab0c3857bb1e93


Error in 2.1

2.1 Calculating significant overlaps

[1] "Using results folder at /Users/cthoyt/dev/hbp/ps4dr/data"
[1] "GWAS to DEGs Gene Set Overlap Signifcance Calculation"
  |======================================================================| 100%
[1] "Drug to Disease_Gene Set Overlap Signifcance Calculation"
  |======================================================================| 100%
Error in drugPdisease_genes$chembl.id :
  $ operator is invalid for atomic vectors
Calls: sprintf -> unique
Execution halted

typo in the code...solved.


Ecto.Changeset.cast_relation/4 refactor into separate concerns

before:
Ecto.Changeset.cast_relation/4
after:
Ecto.Changeset.cast_relation/4
Ecto.Changeset.common_meta/3
Ecto.Changeset.relation_meta/4
Ecto.Changeset.do_cast_relation/6

Hi @bradhanks, as usual, we don't tend to accept refactoring, it can introduce subtle bugs, it messes up history, and often the benefit of the refactoring is down to personal preferences. Thanks!

Ok np.


[FIX] Documentation error about how to change log level

In the documentation says:
suppress warnings
winrm.logger.warn = :error
but the correct one is:
suppress warnings
winrm.logger.level = :error

Thanks!!


Running release without baseUrl set in trio.json should print warning to the console.

I decided to include it in the 1st release afterall. However, it won't be logged as a warning. Instead, it will be logged as a simple message stating that baseUrl is either empty or its actual value.


chore(package): update deps

** PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/ng-seed/universal/blob/master/CONTRIBUTING.md#commit
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

** PR Type
What kind of change does this PR introduce?

[x] Bugfix
[x] Feature
[x] Code style update (formatting, local variables)
[x] Refactoring (no functional changes, no api changes)
[x] Build related changes
[x] CI related changes
[x] Documentation content changes
[ ] Other... Please describe:

** What is the current behavior?

Issue Number: N/A
** What is the new behavior?
** Does this PR introduce a breaking change?
[ ] Yes
[x] No

** Other information

Codecov Report

Merging #737 into master will decrease coverage by 0.13%.
The diff coverage is 96.59%.

@@            Coverage Diff             @@
##           master     #737      +/-   ##
==========================================
- Coverage   94.87%   94.74%   -0.14%
==========================================
  Files         118      121       +3
  Lines        1131     1160      +29
  Branches      101      101
==========================================
+ Hits         1073     1099      +26
- Misses         58       61       +3

Impacted Files
Coverage Δ

...ps/universal/src/app/framework/core/core.module.ts
67.85% <ø> (ø)
:arrow_up:

.../app/shared/data-table/models/data-table-button.ts
100% <ø> (ø)
:arrow_up:

...ramework/core/testing/mocks/config-service.mock.ts
100% <ø> (ø)
:arrow_up:

...universal/src/app/framework/core/window.service.ts
50% <0%> (ø)
:arrow_up:

...rsal/airline/testing/mocks/airline-service.mock.ts
100% <100%> (ø)
:arrow_up:

...src/app/framework/ngrx/testing/mocks/store.mock.ts
100% <100%> (ø)
:arrow_up:

...app/store/air-universal/airline/airline.service.ts
100% <100%> (ø)
:arrow_up:

...l/src/app/framework/analytics/analytics.service.ts
100% <100%> (ø)
:arrow_up:

...red/common/components/menu/menu-group.component.ts
100% <100%> (ø)
:arrow_up:

...s/universal/src/app/framework/i18n/i18n.service.ts
100% <100%> (ø)
:arrow_up:

... and 26 more

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 d958b74...bcaa6be. Read the comment docs.


Data Accuracy and Consistency

•	Contradictory results about same information. The page  Analytic -> Report -> Mission Areas--Report: Mission Areas (https://uno-cpi.herokuapp.com/projectInfo/) Shows total Community partners 457 but the page  Map -> Community Partners-- Map: Community Partners ( https://uno-cpi.herokuapp.com/communityPartner ) shows 447. ( )click to see the screen shot
•	Contradictory results about same information. The page  Analytic -> Report -> Mission Areas--Report: Mission Areas (https://uno-cpi.herokuapp.com/projectInfo/) Shows 220 Community partners  for mission area: Educational Support but page  Map -> Community Partners-- Map: Community Partners ( https://uno-cpi.herokuapp.com/communityPartner )  filter by mission area: Education Development shows 210 community partners . ( )click to see the screen shot
•	Conflicting information about same community partner for example (Nebraska State Council for Social Studies). The page  Analytic -> Report -> Community Partners--Report: Community Partners  (https://uno-cpi.herokuapp.com/communitypublicreport/ ), in the search box enter the community  partner name : Nebraska State Council for Social Studies . The result shows 1 project associated to it but  the page  Map -> Community Partners-- Map: Community Partners ( https://uno-cpi.herokuapp.com/communityPartner ), search for same community partner : Nebraska State Council for Social Studies, it shows 0 project associated to it. ( ) click to see the screen shot
•	Conflicting report for same Community Partner: On the main page title bar click                      Analytics -> Reports -> Community Partners. Search a community partner (Lutheran Family Services) the report says 9 projects which conflict to the report generated by Maps. On main page title bar click on Maps -> Community Partners, from Top-left corner click on red button to show Filter menu and then filter with same community partner name (Lutheran Family Services ). On the map click on the marker. It shows 8 projects for same community partner (Lutheran Family Services). ( ) click for screenshot.
•	Conflicting report on Community Partner Type: On the main page title bar click                      Analytics -> Reports -> Community Partners. In the Filter section, filter the   Community Partner Type with Nonprofit  the report says 282 community partner  which conflict to the report generated by Maps. On main page title bar click on Maps -> Community Partners Type, from Top-left corner click on red button to show Filter menu and then filter with same Community Partner Type  (Nonprofit ). The map display 320 community partners having status of Nonprofit.  ( ) click for screenshot.  ( All options of community types are giving conflicting reports)

@dmishra2904 @manushah17 I am going to add feedback for consistency from the client in the ticket, including filters.
Fix alignment in filters.
Filters still require an all option to go back to.
Fix the Community Partner Type label to Community Partner.


add 他和

Due to the lack of a retry count and retry time interval for sending syn messages that establish links in the current TCP synSend state, an excessive number of syn link establishment messages will be sent during the link establishment process, and if there is no reply, it will cause messages to be sent continuously. Therefore, I have added the retry time interval (1, 2, 4...) for sending syn messages and the default maximum number of retransmissions (6 times) to the TCP socket timer


Fix SeekToRow on mergedRowGroupRows

When a Read is performed after SeekToRow on mergedRowGroups, the rowIndex is checked against the seek index and advanced until the rowIndex == seek index. Previously, the rowIndex was not advanced in the normal read path, resulting in mistakenly dropping unread rows when advancing the rowIndex.

cc @achille-roussel

CI should be green now. The issue was returning n == 0 on err == io.EOF.

Friendly ping @achille-roussel (I apologize if you're still on PTO)


Ability to customize Via and X-Kong* headers

I need to remove Via and X-Kong* headers (maybe adding them to a log field to keep debugging information somewhere.
HTTP/1.1 200 OK
Date: Tue, 14 Jun 2016 09:57:11 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 859
Connection: keep-alive
Server: nginx
Last-Modified: Fri, 10 Jun 2016 11:57:58 GMT
Vary: Accept-Encoding
ETag: "575aab46-35b"
Strict-Transport-Security: max-age=31536000; includeSubdomains;
Accept-Ranges: bytes
X-Kong-Upstream-Latency: 3
X-Kong-Proxy-Latency: 0
Via: kong/0.8.0

Is there a way to customize kong's response headers so that I can have better control over them?

Seems to be duplicate of #1009 - I am currently working around it by adding the following statements to the /etc/kong/kong.yml file to modify the nginx configuration.
        # Add additional response headers
        header_filter_by_lua_block {
           kong.header_filter()
           ngx.header["Server"] = nil
           ngx.header["Via"] = nil
           ngx.header["X-Kong-Proxy-Latency"] = nil
           ngx.header["X-Kong-Upstream-Latency"] = nil
        }

That solves my problem, thanks!


About the .npy file of the iCIFAR-20

Hi! Thanks for sharing the code. When I run the DARE, it shows that there is no {}CIFAR-100-D/Test/Domain{}.npy file. Could you please share the file or give an instruction on how to generate it?

+1, there is no {}CIFAR-100-D/Train/Domain{}.npy file