Add explicit tensor data malloc via NewTensor.

NewTensor is a backend-defined memory allocation operation.

Use NewTensor instead of NewArray for allocating tensor data.

Add TensorNew, TensorApply, TensorUpdate operations.

For Scala and C code generators, these forward to ArrayNew,
ArrayApply, and ArrayUpdate. GPU code generator implements
its own codegen logic for these ops using CUDA primitives/kernels.

TODO: Investigate TensorApply and TensorUpdate for GPU.

TensorApply currently launches a 1-block, 1-thread arrayApply
kernel. This is probably not ideal.
TensorUpdate currently doesn't work.

Addresses feedback from @TiarkRompf.

Merging to unblock progress, happy to address feedback later.
I hope this is a step in the right direction.

I anticipate that we'll need to generate custom CUDA at some point, but for now we should do something simpler:

only access GPU data in bulk, never element-wise -- this removes need for Apply and Update
if data needs to be shipped to the CPU, make it an explicit transfer operation (array.transferToCPU()).

For this, we don't need IR nodes for TensorNew, TensorApply, TensorUpdate, but a simple unchecked("..") should suffice. I'd also prefer the to call it something like NewGPUArray since it's returning an Array, not a Tensor object.
I do expect that we'll evolve this design but I'd like to do the simplest thing that enables us to run benchmarks.

@TiarkRompf Are you suggesting the following design?

Do not make tensor data allocation backend-dependent. Always allocate tensors on CPU.
Implement transfer operations to copy tensors between backends.

Example programs:
def snippet() {
  // backend: BackendCublas

  // Allocate tensor on CPU.
  val x = Tensor.ones(2, 2)
  // Doing `x+x` right now would result in an error because `x` lives on CPU
  // but codegen produces cuBLAS ops.

  // Transfer tensor to GPU.
  x = x.transferToGPU()
  // Now, `x+x` is valid.
  val y = x + x
}

def snippet2() {
  // backend: BackendCublas
  val x = Tensor.ones(2, 2)
  // We can use `withGPU` to eliminate manual transfer operations.
  // However, doing `x+x` here outside `withGPU` still produces an error.
  withGPU(x) {
    val y = x + x
  }
}

I propose an alternative design (nearly implemented):

Make tensor data allocation backend-dependent, to be consistent with tensor operations. This means that it is always valid to perform tensor ops, regardless of current backend.
Rename IR nodes to TensorDataNew, TensorDataApply, TensorDataUpdate. These nodes forward operations to the current backend.
Rename NewTensor to NewTensorData. NewTensorData[T] should be used instead of NewArray[T] in tensor op implementations to initialize tensor data.
Whether or not to fully support TensorDataApply and TensorDataUpdate on GPU is an orthogonal question. Since "Apply" doesn't work on GPU yet, we can throw a compile-time error if it's invoked. This is also necessary in the first design becausee it's possible to perform tensor(i) in a withGPU block.

Example program:
def snippet() {
  // backend: BackendCublas

  // Allocate tensor on GPU. Doing `x+x` is valid right now.
  val x = Tensor.ones(2, 2)
  val y = x + x

  withCPU(y) {
    // Transfer `y` to CPU and perform ops (`+` and `print`).
    val z = y + y
    z.print()
  }
}

TensorFlow's programming model is similar to my idea:
with tf.device('/device:GPU:2'):
  a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
  b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
  c = tf.matmul(a, b)

PyTorch's programming model is similar to the first idea, but eliminates the potential error in the example because ops are generated based on the device placement of tensors. This is actually a more robust model than either of our designs.
x = Tensor(...) # CPU
x + x # Performed on CPU.
x = x.cuda() # GPU
x + x # Performed on GPU.

I suppose the differences between the two designs doesn't matter for benchmarks, because most tensor programs start on the CPU (to do data loading, etc) and then compute on the GPU.
The two designs are different only when the backend is not the CPU. A small limitation of the first design is that it's not possible to allocate memory directly on GPU. Copying from CPU is always necessary, even if unnecessary.
I lean towards the second design because there are fewer holes in the abstraction. If you want to push for the first design for simplicity/pragmatism, I'm fine with that, and will implement it. Please let me know.

@TiarkRompf Are you suggesting the following design?

Do not make tensor data allocation backend-dependent. Always allocate tensors on CPU.
Implement transfer operations to copy tensors between backends.

Slightly different -- what I'm suggesting is to think in two layers, Arrays and Tensors:

Arrays can be allocated on CPU (standard NewArray) or GPU (NewArrayGPU)
Arrays can be transferred between CPU and GPU using explicit calls
CPU and GPU arrays share the same type Rep[Array[T]] just like pointers in C (T*). Apply and Update will cause bus errors for GPU-backed arrays, which we accept, since we assume that higher-level APIs do the right thing
Tensor storage is back-end dependent, i.e., the Tensor backend trait decides whether to allocate the backing arrays on the CPU or GPU
The GPU Tensor back-end takes care to only access backing arrays through GPU kernels, and may transfer data to the CPU, e.g., for printing

Does that makes sense?
I do think the design with device scopes (withCPU and withGPU) has merit but it's more complex, and the additional complexity doesn't seem on the critical path for benchmarks right now.

Aha, that makes sense!
Previously, I had a misunderstanding, which is that tensor math operations and allocation operations were somehow distinct. In reality, they’re not at all: both are backend defined. Tensor constructors like Tensor.fill and Tensor.fromData should call backend.mallocArray, which allocates memory either on CPU or GPU.
The complexity of the second design above is entirely avoidable. Thanks for your clarifications!


Fix the bug that caused the visitor counter to increase by two

Fixed the bug that caused the visitor counters to increase by two.
solves the issue #61 .

Perfect, thank you!!


[RUNTIME] Remove Extension VTable in favor of Unified Object system.

Before the unified object protocol, we support pass
additional extension objects around by declaring a type as an extension type.
The old extension mechanism requires the types to register their
constructor and deleter to a VTable and does not enjoy the benefit of the
self-contained deletion property of the new Object system.
This PR upgrades the extension example to make use of the new object system
and removed the old Extension VTable.
Note that the register_extension funtion in the python side continues to work
when the passed argument does not require explicit container copy/deletion,
which covers the current usecases of the extension mechanism.

cc @junrushao1994

RFC https://github.com/apache/incubator-tvm/issues/4579

Do we have a tutorial for this somewhere around? If so, shall we also delete this tutorial?

the example(apps/extension) has been updated

Is this good to merge?


[Feature] Add a about section

In this section you have to give information about the the idea behind our project and the needs .

please assign me this issue #14

Sure go ahead  and implement your idea


pull request for e2e test at 12/03/2016 05:45:04

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

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


App crashes in the background with The calling thread must be STA

Application: ModernFlyouts.exe
CoreCLR Version: <IP_ADDRESS>114
.NET Version: 5.0.0-rc.1.20451.14
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException: The calling thread must be STA, because many UI components require this.
   at System.Windows.Input.InputManager..ctor()
   at System.Windows.Input.InputManager.GetCurrentInputManagerImpl()
   at System.Windows.Input.InputManager.get_Current()
   at System.Windows.Input.KeyboardNavigation..ctor()
   at System.Windows.FrameworkElement.FrameworkServices..ctor()
   at System.Windows.FrameworkElement.EnsureFrameworkServices()
   at System.Windows.FrameworkElement..ctor()
   at System.Windows.Controls.Control..ctor()
   at System.Windows.Window..ctor()
   at ModernFlyouts.SettingsWindow..ctor()
   at ModernFlyouts.FlyoutHandler.ShowSettingsWindow()
   at ModernFlyouts.Program.RunCommand(CommandType commandType)
   at ModernFlyouts.Program.ProcessCommandLineArgs(IList`1 args, Boolean isFirstInstance)
   at ModernFlyouts.Program.CreateRemoteService(String channelName)
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__140_1(Object state)
   at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Faulting application name: ModernFlyouts.exe, version: <IP_ADDRESS>, time stamp: 0x5f4ed7fa
Faulting module name: KERNELBASE.dll, version: 10.0.19041.488, time stamp: 0x42f14898
Exception code: 0xe0434352
Fault offset: 0x00129962
Faulting process id: 0x4c98
Faulting application start time: 0x01d6a12377ac641a
Faulting application path: C:\Program Files\WindowsApps\32669SamG.ModernFlyouts_<IP_ADDRESS>_x86__pcy8vm99wrpcg\ModernFlyouts\ModernFlyouts.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 79313b1b-9b3e-46ef-a5a2-09c751e38f6f
Faulting package full name: 32669SamG.ModernFlyouts_<IP_ADDRESS>_x86__pcy8vm99wrpcg
Faulting package-relative application ID: App

Thanks for the report 😄.
I'll look into this.

@vhatsura, Thanks for reporting this bug.
This is indeed a serious issue. Found the cause and fixed it in 1063dd4f27318ec0b913a5340ee86b19182b1e71

Hey @Samuel12321, don't forget to include this in v0.7

😉 will do


Repository standardization

Hi @the-zero885, we need to adjust a few things first to move forward, ok? ✨
First, we need to update the screenshot! Can you take a single capture at the closest possible resolution to 1728x1117?
And remove that capture info just below the current readme?
We also need a separate .md with installation instructions to show the theme on the site.
I ask for these changes to standardize with the other repositories, see an example; this is also important because it helps other potential users who would like to contribute too! 😁
Let me know if something isn't possible or if you have any questions! 🙂

@the-zero885 this is blocking Openbox to the draculatheme.com website. Can you take a look? Thanks!


Implement maximumCacheDurationMs as a required policy

AB#1068
Makes maximumCacheDurationMs a required policy implemented by drivers. This is part of the GC Sweep Timeout calculation. Further tasks will more strongly link the GC Sweep Timeout and the maximumCacheDurationMs.
Further documentation about GC Sweep Timeout: https://microsoft.sharepoint-df.com/:fl:/s/54e45b67-b090-4b62-ba82-a7be9987bef7/Eb6oKRezF89GjP2xebcTYvYBSTnbSSafA0wKlW6h2hLl3w?e=KI19T9

@tyler-cai-microsoft I think we can close this for now, we deprioritized AB#1068 until we can get a more cohesive plan for snapshot cache managements between the layers.


Fix the Webpack5 deprecation warning

Hello,
this project uses the outdated webpack-fix-style-only-entries plugin that is incompatible with Webpack 5.
The author of the webpack-fix-style-only-entries plugin recommends using the webpack-remove-empty-scripts plugin for Webpack 5.
When using the webpack-fix-style-only-entries plugin with Webpack 5 appear the deprecation warnings:
webpack-fix-style-only-entries:
(node:18462) [DEP_WEBPACK_CHUNK_ENTRY_MODULE] DeprecationWarning: Chunk.entryModule: Use new ChunkGraph API
(node:18462) [DEP_WEBPACK_MODULE_INDEX] DeprecationWarning: Module.index: Use new ModuleGraph API
(node:18462) [DEP_WEBPACK_DEPRECATION_ARRAY_TO_SET] DeprecationWarning: chunk.files was changed from Array to Set (using Array method 'filter' is deprecated)

This PR just replaces the outdated plugin with the actual version.

Thanks, it's perfect.


exposing http client for web sockets

Solution for certificate pinning for web sockets.
Solves #34284

Please rebase your commits on master and push again. We can only accept PRs on the master branch. The dev branch is autogenerated.

@athomas do you mean making the changes from master and pushing to master?

@athomas do you mean making the changes from master and pushing to master?

I mean roughly this (I use fork as the remote name for your own repo and upstream as the remote referring to dart-lang/sdk here):
git rebase upstream/master
git push # might need -f here

Or alternatively:
git reset upstream/master --hard # be careful and check that you don't have other changes.
git cherry-pick <hash of commit>
git push # might need -f here

Otherwise you can create a new branch tracking master and apply your changes there and open a new PR.

Looks like you attempted to merge from dev to master which doesn't work because the merge will include all the commits on dev that aren't on master (and we don't want those).
Let me know if you need help with this and I can try and fix this up.


Create: Garnished trees decay despite compatibility with Separated Leaves post-0.5.1f Fabric Update

After updating Create: Garnished and Create to 0.5.1f and the working respective version, compatibility with Separated Leaves broke. The previous compatibility issue is on #41.

What version of Garnished are you on? I'm not sure why it broke considering that nothing changed with the related tags or features in this update.

I'm on Garnished 1.7.2.

Ah, after further examination of both the Garnished and Separated Leaves repositories, I think I missed an entry in the original pull request. I'll go ahead and submit that shortly and hopefully, they can merge soon after.

Updated pull request made https://github.com/TeamDiopside/SeparatedLeaves/pull/12

I'm gonna go ahead and close this issue, since there's not much else that I can do on my end, since the above pull request has not been merged yet. Let me know if you come across any other issues or if this one persists once/if Separated Leaves has updated

Pull request seems to have been merged now. Once Separated Leaves officially releases an update, let me know if you still experience this issue!


Possibly more robust data passing instead of delimiting with nbsp

Hi,
I'm more than satisfied with this great plugin. Thank you so much.
Recently, I was working with some files and found that fzf-lua didn't handle them correctly while fzf.vim did.
I checked and it turned out that those files had the nbsp (" ", 00a0) character in their names.
I'm not that familiar with the internals of fzf-lua yet, but do you think there can be another way to achieve the same thing without using some character as a delimiter?

Thanks for the suggestion.
That sounds good as a workaround. If it allows specifying a string as a delimiter (e.g., concatenation of two different invisible characters), then I would be able to lower the possibility of the delimiter appearing in random files enough.

Thanks for the suggestion.
That sounds good as a workaround. If it allows specifying a string as a delimiter (e.g., concatenation of two different invisible characters), then I would be able to lower the possibility of the delimiter appearing in random files enough.

I’ll give it some more thought, two invisible chars might work but it will look bad as you’ll have an extra “space” between the icons and the filename.

Or, how about splitting the result only on the first occurrence of the nbsp character?
There may be some cases that the splitting should be done on the first n occurrences (e.g., buffers?), but it will still work, I guess?

Or, how about splitting the result only on the first occurrence of the nbsp character? There may be some cases that the splitting should be done on the first n occurrences (e.g., buffers?), but it will still work, I guess?

It's not only buffers, it's also the spacing between the file icon and the git icon.
I was busy with a pretty big change that was just committed so I can now attend to this issue, why don't we also look into where exactly does it fail perhaps we can apply the fix there rather than changing the internal logic.
I would assume this only affects the previewer and actions for the files that has 0xA0 in their names? Are there any other issues this causes?
I'm assuming the below line is what causes the entire issue, which does a "greedy match" of "anything after the last occurrence of nbsp":
https://github.com/ibhagwan/fzf-lua/blob/f947669dec0612644ff58afec28e003c97e1c733/lua/fzf-lua/path.lua#L142

Yes, for the nbsp issue, I think it is the exact cause.
A different but somewhat similar issue: I think files with ":" in their names cause a similar problem.

Well the assumption is that : is the rg|grep separator for the context (file.extension:line:col:text), obviously anything can be solved but is this really a legit use case? does anyone willingly use : within their filenames?
As for the nbsp I'm thinking to just add a counter per function of the number of nbsp's and then strip the strip the string up to the nth nbsp.

does anyone willingly use : within their filenames?

Maybe not. I haven't seen such cases yet.
(For future reference, I did a quick check on vim's getqflist function. It works like scanf and handles some more cases where ":" is in the filenames but not all.)

As for the nbsp I'm thinking to just add a counter per function of the number of nbsp's and then strip the string up to the nth nbsp.

That sounds like a good way to go!

The problem here is not just : in the filename, that's pretty easy to solve when it's only a filename, the problem is on more complex output similar to what rg matches print, there you have : in both the filename and as a separator, at which point you need to split at :.

Yes, that's why I looked into getqflist to see how it handles such things. It turned out it also fails when filenames contain things like ":10:3".

it's not just fzf-lua functions, some users also wrote extensions and other cool stuff, requiring them to set it isn't very clean nor intuitive IMO.

A fair point, I was not aware of that.
Thanks for your effort.

The problem here is not just : in the filename, that's pretty easy to solve when it's only a filename, the problem is on more complex output similar to what rg matches print, there you have : in both the filename and as a separator, at which point you need to split at :.

Yes, that's why I looked into getqflist to see how it handles such things. It turned out it also fails when filenames contain things like ":10:3".

If the quickfix functions also fail with such names I'm feeling alright about not having the extra complexity to support this :-)

it's not just fzf-lua functions, some users also wrote extensions and other cool stuff, requiring them to set it isn't very clean nor intuitive IMO.

A fair point, I was not aware of that. Thanks for your effort.

I'm exploring 2 different options:

Striping the nbsp sequences only when they appear at the start of the string: this seems pretty good except that the git icons cause this to fail when the file name starts with a git icon indicator followed by nbsp (i.e. the file is named M name.ext) - I would assume this is extremely rare, but still, if I'm about to solve it why leave a case where it could fail

Adding an ansi escape sequence to mark the start of the filename, need to find the right one for that since rg --color=always also uses ansi escape sequences around the filename for coloring.

Good to know, thank you so much.

I wonder why fzf doesn't like ZWS, if we can find a way to display this character in fzf properly (and not show <200b>) this will be the solution.

Alright, good news, I was finally able to solve this properly, used Unicode character 2060, aka "Word Joiner".
Try the latest commit and lmk if it works well for you?

I've just tried it and experienced the same thing. Fzf showed some weird behaviors matching files.. 😢

Good to hear!
Closing.


Documentation - links to GetAccountDetail

Signed-off-by: Igor Egorov<EMAIL_ADDRESS>Description of the Change
There were no links on permissions page to GetAccountDetail query.
Also, we thought that the description of the query was missing too, but it was created some time ago. Thus, this pr adds only the links to the command description.
Benefits
The consistency of the documentation is increased.
Possible Drawbacks
None
Usage Examples or Tests
cd docs/source
make permissions
make html
firefox _build/html/maintenance/permissions.html

# or on macos
open -a firefox _build/html/maintenance/permissions.html

DEMO


Migration from MicrosoftDocs/EdgeEnterprise to MicrosoftDocs/Edge-Enterprise Broke all GitHub Links from the core documentation

@dstrome The change over from MicrosoftDocs/EdgeEnterprise to the new project MicrosoftDocs/Edge-Enterprise has broken all of the github links from the bottom of the Microsoft Documentation pages.
For example:
https://docs.microsoft.com/en-us/DeployEdge/edge-ie-mode-policies
The github link at the bottom of the page goes to:
Github Link for prior documentation
That link doesn't work and needs to be modified to:
Correct Link
The sub-links that are created by the linking for MSDocs to Github also need to be updated to Edge-Enterprise as well.
Note: This affects any of the linking/feedback that goes back to GitHub
(note: Content Source: link updated to allow proper linking to new page)
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: add98763-6344-6d9e-b1f4-39c995100050
Version Independent ID: 5a9ac6ef-92ff-edfc-b3a6-af758642210f
Content: Configure IE mode Policies
Content Source: edge-enterprise/edge-ie-mode-policies.md
Product: microsoft-edge
GitHub Login: @cjacks
Microsoft Alias: cjacks

@cjacks. Verify this PR #58 and merge if looks good.

The link from https://docs.microsoft.com/en-us/deployedge/microsoft-edge-sysupdate-access-old-edge still is broken

@kingma-sbw , In which article, did you found  broken link, , and specify the location

Thank you for catching this. I've updated the configuration so I'm closing this issue. The updated configuration will be live shortly.


Limits?

What are the limits on how many tenants (via Lighthouse) / subscriptions / Recovery Services Vaults that Backup Reports can support?
For example, if I'm an MSP with 600 customers, each with their own tenant and potentially multiple subscriptions/vaults, can I still use Backup Reports to get a single view across this entire estate?
I note that Backup Reports are based on Log Analytics. According to https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/cross-workspace-query there is a limit of 100 workspaces per query. Does that mean Backup Reports are also limited to 100 workspaces, or does some other limit apply?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7f109cc3-2133-7a38-841b-4d3063497305
Version Independent ID: ae8019ca-2832-0f1e-abcb-e5678d6b0f61
Content: Configure Azure Backup reports - Azure Backup
Content Source: articles/backup/configure-reports.md
Service: backup
GitHub Login: @dcurwin
Microsoft Alias: dacurwin

Thanks for your comment. We are actively investigating and will get back to you shortly. Thanks for your patience.

@mepand & @dcurwin - any input please?

#reassign:adityabalaji-msft

@jtuliani - you are correct. The limit is 100 workspaces (across tenants). Have now added it under the penultimate point in the supported scenarios section: https://docs.microsoft.com/azure/backup/configure-reports#supported-scenarios

Closing this issue for now.. please write back in case of any other questions

#please-close


poll is not showing in the app

At the moment it's not possible to see the poll in the app on Android.
It would be really helpful if this could be implemented.
Our usecase: we have poll templates for different takeaway food shops. One member of our team drives to the food shop and orders the requested food. Unfortunately he can't use the app and has to make a screen shot everytime.
So please add participating and viewing for polls to the app.

Thanks @hmr-it-jr -- that description of your use case is helpful context!
We already have issue #3205 for tracking this feature. Would you make this comment there instead?


ANIMATIONS: animate-bounce-in-down/animate-bounce-in-up has an annoying delay.

UnoCSS version
0.57.0
Describe the bug
'bounce-in-down': '{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:translate3d(0,0,0)}}',
The -3000px is taking nearly (1) second to appear on the screen. Is there anyway to offer the bounce-in just off the top of the page/body? We are using it for notifications and the delay makes it unusable. Is there any work around?
Reproduction
https://uno.antfu.me/play/?html=DwEwlgbgBAFgtAMwK4BsVQC4FMAeG4DGWAdtgE5QIq5QDOW1B%2BxA9sVlAIZoBcGZnYrTAYwbOABYADFIB8AKChRQkKAFtOCpUpXRseOAFYc6BAHcAjDK7EwG7HABGLJMSJwwxOCBZniNu04HECQBUXEAJlotbSUAVVYAYQBlZMVtYAB6cAgYnRyoFgAHAGYpTFx8FABzSjMy8rULPO0AFRgOT1oMQQxCrxAsDWIQKABBDBY1MAIoFOSoEmrPLAA6dJ1syBbddQjKahwoACskbrAEAE9CEnIKgwiTQtLymBYILDIAXgAiYoAOKQ-Fo6TgbWJQMCEThkZxeFAsaosODLDAwJCOcGxfT4TwdMgiLHaGBkLAIX4wDAYIq0HiZTKo9GOVYEKaZVwsAi0Wjs1hc2g-IlKHpkapYDC-AD6jhQggA1oKIVBZFlNOCsjkYhrtvJtbldQVOI5aCwUEhsFBnFSpkYoATqpS4OVqAh8OUcTdSJ9nmU6g0YuJBsNRgB2yFCHqkKBh5BoS5QAhnSbTABeRuouq2uSAA&config=PTAEFMGcBsEsDsAuBaAJrSBDARtcz5wAPFOQ0eAe2QCcpEbYBjRcVZWAWwAdKbFIAKC69%2BoAN6DQoVOABmCcAGFK8BQHMANFNDc6kcIgCCiBrGwBXRLDkBPbdL1RDASSarID3fsMBVKtoAvqByNJScoADkFlRMkJCRgoLEoogy8pgW0GmyCoQqarDqABSS0jRZUABcoADaOtK1kUwWkIjhtJWRmhKg7tB8NZF0qJGggQC6XlM6kAAWfIgtAjVl0lEtbR3zi8uRQ6wkyNDqoIcofJjw6uCgCwBu4DRV58ismNDdOoFeTgYrdQa3mciH8lGKAEovI4fMZTIxLNY7JDocD-m4PKUgdJIEwPuAagBGAB0ACZUdImKh4EM5qZuJAqiAoJxifNgF91uMoToZoEIYIgA&css=PQKgBA6gTglgLgUzAYwK4Gc4HsC2YDCAyoWABYJQIA0YAhgHYAmYcUD6AZllDhWOqgAOg7nAB0YAGLcwCAB60cggDYIAXGBDAAUKDBi0mXGADe2sGC704AWgDuCGAHNScDQFYADJ4Dc5sAACtMLKAJ5gggCMLPK2ABR2pPBIcsoAlH4WAEa0yADWTlBYqEw2yFjK3Bpw5LxxAOTllVDoYpSMYgAs3vUZ2gC%2BmsBAA&options=N4IgLgTghgdgzgMwPYQLYgFwKgGzgUwBpxp5k0AJMVHTbPfAXyA
System Info
Windows11/Chrome
Validations

[X] Read the Contributing Guidelines.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

You can create a custom animation pretty easily, in your uno.config.js/ts add this
theme: {
	animation: {
		keyframes: {
			"in-out-custom":
				"{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(0,-100px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:translate3d(0,0,0)}}",
		},
		durations: {
			"in-out-custom": "1s",
		},
		timingFns: {
			"in-out-custom": "ease-in-out",
		},
		counts: {
			"in-out-custom": "infinite",
		},
	},
},

and you can use your animation with animate-in-out-custom. After that you can tweak your keyframes, duration, pixel transform value, percentages and so on until you get something you like. You may have to restart the server for the animation to update, if you find that annoying you can use the playground until you get something that looks good.
When you're happy with the animation you can set the counts to 1.

I was thinking more like bounce-in-down-[-100px] where you can pick an arbitrary starting point. The -3000px drop is only useful in very limited situations. Of course I can override the existing animation. But I'd rather use the built-in one if possible. That's why I entered the issue.

I was thinking more like bounce-in-down-[-100px] where you can pick an arbitrary starting point. The -3000px drop is only useful in very limited situations. Of course I can override the existing animation. But I'd rather use the built-in one if possible. That's why I entered the issue.

Yes but changing this existing animation would break the animation for everyone who is using it right now and who wanted the 3000px drop. I think it's easier to start with some animation, copy its properties from the source and refine it until you've got what you need.
Dynamic animation rules like bounce-in-down-[-100px] would be interesting but I'm not sure if that's even possible right now, it's probably best to just create custom animations for now. If you create a nice one and would like to have have it in base UnoCSS it may be possible to just add it as a new animation (or in some kind of animation preset).

Adding arbitrary values would probably be useful for all animations not just this one. Things such as duration, counts, easing functions, etc. Nearly all Uno classes allow for arbitrary values already so it's not that out of the realm. I appreciate the feedback. I have a workaround that is what I need. Thank you.

Animations were extracted from WindiCSS plugins: https://github.com/windicss/plugins/blob/main/packages/animations/animate/keyframes/bounceIn.js
Check the original issue: https://github.com/unocss/unocss/issues/89


Optimize SCWE

https://github.com/QuCoNot/QuCoNot/blob/reorganize_folders/quconot/verifications/functions_testing.py#L267 This is correct for Toffoli but not in general I think (but please check for yourself!) if it is inverse_matrix, then you would compute pi^{-1}(b) instead of pi(b). so you should multiple from the left side, or multiply times conjugate transpose
https://github.com/QuCoNot/QuCoNot/blob/reorganize_folders/quconot/verifications/functions_testing.py#L273C11-L273C11 This is not good. Should be np.allclose, not np.round (and syntax changed accordingly). Note that np.round(0.55) would be accepted

fix in #38


Can't depend on non-cc_library libraries in libs

It's unclear why Bazel forbids depending on rules that are not instances of the builtin cc_library for libs inputs to other rules. This would allow, among other things, a C++ version of genproto. (The Java version works because the code explicitly allows it: see bazel/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java:118).

ulf, can we close this, or is there something left to do?

I'm closing this as there's no short term action item here. Longer term, we may want to audit the rules and lock down the semantics (but then again, we may never get to that because so much else is important). :-(

I'm just wondering - what's the status on this? I've found proto_library (http://bazel.io/docs/be/protocol-buffer.html) but it has little to no documentation, and I can't seem to get it to work with cc_library. What's the current protocol (no pun intended) for building and using proto messages with a cc_library?

We don't have an out-of-the-box solution for proto messages with cc_library, yet. proto_library is undocumented because it's not ready yet, and it won't work the same way as proto_library works inside Google (in case you have knowledge of that). Sorry, this is all very vague and handwavy - we should really publish our plans around proto_library support.
Maybe file a feature request for C++ protobuf support?


fix: event types mixed up

from chatgpt, looks correct, we want to make sure we have the detail to make decisions to recreate a docker pull secret based on them changing remotely (ECR). The code currently gives you the correct object, but typed to the old object type causing mismatching.

Differences between CoreV1Event and EventV1Event in Kubernetes
CoreV1Event and EventV1Event in Kubernetes refer to different versions and structures of events. Below is a comparison of the two:
CoreV1Event (v1.Event):

Part of the core/v1 API group.
The original event resource type, present since early Kubernetes versions.
Commonly used and interacted with via kubectl get events.
Events are used primarily for debugging and do not guarantee comprehensive information about the cluster state.

EventV1Event (events.k8s.io/v1.Event):

Introduced in later Kubernetes versions, starting as events.k8s.io/v1beta1 in Kubernetes 1.10 and graduating to events.k8s.io/v1 in Kubernetes 1.19.
Provides an improved structure and additional features over CoreV1Event.
Aims to offer more context and detailed information about events, enhancing the understanding of the cluster state.
Features include event de-duplication and better event aggregation.

Key Differences:

The primary differences lie in the API version and the details and structure of the event information.
EventV1Event is preferable for more detailed event information and newer Kubernetes clusters.
CoreV1Event is widely used for basic event information and is compatible with older Kubernetes versions.

Considerations:

Choose based on the Kubernetes cluster version and the level of event detail required.
For basic use cases, CoreV1Event is generally sufficient.
For advanced event tracking and analysis, EventV1Event might be more suitable.

You can use this Markdown-formatted response for documentation purposes or any other suitable application.

if we decide to expose both as we should, how do you like this?
...
CoreV1Event as CoreEvent,
EventsV1Event as Event,

more recent event (now called Event)  you can see here kubectl explain --api-version='events.k8s.io/v1' event
older event (now called CoreEvent) you can see here: kubectl explain event


Custom elements and drawer functionality, ES6 compatibility

With the ECMAScript 2015 (ES6) Standard it will be normal to built pages from components. These componentes are usualy injected via custom elements. With aurelia.io for example you could utilize your own custom element called <nav-bar></nav-bar>. At runtime this element will be filled with the navigation elements coming from the template of the nav-bar element. So after the injection it will contain the mdl header and drawer.
However by having the mdl elements wrapped in the custom element the drawer functionality will break. The hamburger icon will not be injected by mdl and with small screens the header will just disappear.
This codepen demonstrates the issue:
http://codepen.io/steamonimo/pen/OyBWrP
Just remove the <nav-bar> element in the codepen and the drawer will work again.

We don't directly support integration with other projects. These kinds of issues are up to you to solve. If you need help, sites such as StackOverflow can provide it. This issue tracker is only for direct problems related to the code it provides.

I understand that you need to keep the focus. But this is about the concept of custom elements and not the aurelia project. I just wanted to suggest that the elements "mdl-layout__header" and "mdl-layout__drawer" are not working if they are embedded in another element. For example replace the custom element <nav-bar> in my codepen with a <div> and again the drawer will break. This is likely just because the selectors addressing these elements are expecting a fixed structure. With more general selectors you could support more scenarios.

@steamonimo That is because we expect nodes with .mdl-layout__header and .mdl-layout__drawer to be direct descendants of .mdl-layout. <nav-bar> is currently sitting inbetween.
In any case, layout is getting a major rework so things are going work differently in v2


2017 Kia Candenza Missing Car Stream in Exit Android Auto

I first started recently by installing 1.7.3 Carstream. I installed and followed directions for a month it worked perfect. Then one day i connected my phone to the USB and Carstream app is no longer shows up when pressing the last Exit Android Auto button on AU car display. It shows up in the Music and Audio button but it doesnt work there. I uninstalled Carstream from my phone and installed the latest 1.8.3 version and same thing. No go. Please help as this is the best app ever!!

See issue #116
Or
Uninstall Android Auto 3.0, Install Android Auto 2.9 or below, disable automatic updates on Play Store's Android Auto Page, re-enable unknown sources


orm(engine): support self-defined logger for orm

Is your feature request related to a problem?
No
Describe the feature you'd like
support self-defined logger for orm
Describe alternatives you've considered
support self-defined logger for orm
Teachability, Documentation, Adoption, Migration Strategy
No response

/area engine
/assign @maxshuang


ArgumentError: comparison of Float with Float failed

Check full details on Airbrake: #1590559725226277518
Backtrace:
[PROJECT_ROOT]/app/models/network/path.rb:58:in each
[PROJECT_ROOT]/app/models/network/path.rb:58:in min
[PROJECT_ROOT]/app/models/network/path.rb:58:in available_capacity_at
[PROJECT_ROOT]/app/models/network/technology_path.rb:82:in constrain
[PROJECT_ROOT]/app/models/network/technology_path.rb:31:in conditional_consumption_at
[PROJECT_ROOT]/app/models/calculation/pull_consumption.rb:44:in block in non_excess_conditional_consumption!
[PROJECT_ROOT]/app/models/network/path_collection.rb:20:in each
[PROJECT_ROOT]/app/models/network/path_collection.rb:20:in each
[PROJECT_ROOT]/app/models/calculation/pull_consumption.rb:42:in non_excess_conditional_consumption!


One-click deployment docs updates

Some polishing ;
Added warning on production deployment;
Added command for checking staking state for both v0.5.2 and v0.5.3 client-cli .
(Note: The cil version contained in the current image is v0.5.2)

/staging


WIP: Skia backend cleanup. Gpu support on Win32 via OpenGL.

What does the pull request do?
Idea for this PR was to support Skia gpu backends (OpenGL currently), this caused other changes in the backend that in the end resulted in quite massive refactoring. The goal is to have clean and maintainable render backend with architecture supporting gpu acceleration.
What is the current behavior?
There is no Skia gpu support, all the drawing is done through bitmaps. Also a lot of code parts were not easily readable, as some paths were more or less convoluted in their behavior.
What is the updated/expected behavior with this PR?
You can now enable OpenGL backend support on Windows. Most of the rendering will go through the gpu when enabled.

Due to refactoring I have also found and fixed some bugs:

TileBrush rendering with tiling set to none produces correct renders now
Line drawing with dashes actually renders dashes now
More Skia Render Tests are now active as more of them pass

How was the solution implemented (if it's not obvious)?

Geometry

GeometryImpl now hosts the bulk of the geometry implementation
Hit testing now works as intended (fill and stroke)
Path intersection is now supported

Media

BitmapImpl was split into multiple parts:

WriteableBitmap - the only purely cpu writable bitmap (backed by SkBitmap)
ImmutableBitmap - read-only bitmap (backed by SkImage, can be gpu accelerated)

FramebufferRenderTarget is used in Raster backend, added surface caching

WindowRenderTarget - used in Gpu backend, usually backed by a window. Creates gpu accelerated SkSurface to handle drawing.

SurfaceRenderTarget - universal render target, can be either gpu or cpu based.

DrawingContextImpl is now the only drawing context, propagates gpu or cpu traits to layers it creates.

Platform

Added IOpenGLPlatform and IOpenGLContext interface to main Avalonia platform. Idea for this is to provide OpenGL context to a user (I have seen some issues when people wanted to render via OpenGL to Avalonia window). Will need more work to support correctly, but I think this is step in this direction. Currently only Win32 has implementation for it (using OpenTK), as I am not that familiar with OpenGL on Linux or macOS.
Skia has IGpuRenderBackend and IGpuRenderContext, Skia by itself is not aware of real rendering backend and I want to keep it this way, so this basically hides platform specifics from it.

Renderers

I found (the hard way) that Avalonia is not cleaning up render targets when renderer is disposed. That means eventually GC will kick in and finalize Skia resources which leads to a crash (as finalizer thread does not have a OpenGL context current). To fix that I have added extra render target cleanup in both renderers.

Misc

Updated SkiaSharp version to latest stable (1.60.0)
Added XML doc comments to almost everything (didn't touch FormattedTextImpl yet as it has some incoming PRs).

Checklist:

[x] Added unit tests (if possible)?
[x] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Avaloniaui.net with user documentation

I have tested this with both Core2D and AvalonStudio and I have not noticed any regression.
I still need to setup extra render tests project that will use gpu acceleration, as now all render tests are running against raster backend.
I would like people to try this PR with their own projects, and report if anything is wrong.
Related to #985
cc: @kekekeks I see that SkiaSharp.props is referencing Avalonia.Skia.Linux.Natives package from you that has no repo, or info how to distribute it.

I see that SkiaSharp.props is referencing Avalonia.Skia.Linux.Natives package from you that has no repo, or info how to distribute it.

The package is built manually, because of the number of tricks that are required for a portable Linux binary. I will update it to 1.60.0 soon(-ish) since there also were several requests for it.
I haven't read the entire PR yet, but I have some comments regarding IOpenGlContext and IOpenGLPlatform.
You need to pass the list of "platform surfaces" instead of just IPlatformHandle. HWND is not a uniform concept.  For example, on Linux the source of the OpenGL context and the ways of obtaining it heavily depend on the actual windowing platform and (in case of GTK) on the underlying backend. In case of X11 we should be using GLX, in case of Wayland we should be using wayland-specific eglCreateWindowSurface call, in case of DRI/KMS/DRM we need some magic to actually get said "window".
Another problem is that there could be different OpenGL implementations installed in the system. Even on Windows there is a "native" OpenGL support provided by the OS via vendor drivers and ANGLE that translates OpenGL calls to DirectX. The problem with the native one is that we basically can not rely on it, because it might be not available because of the lack of vendor-provided drivers installed in the system (ones from Windows Update usually don't have OpenGL support). Another issue with "native" OpenGL is interopability. We can't properly interop with DirectX code, which is required for GPU-accelerated rendering to non-windows surfaces backed by DirectX (e. g. our WPF compatibility layer that uses System.Windows.Interop.D3DImage for rendering).
So we need to keep OpenGL implementation selection logic on windowing backend, which should provide a pointer to glGetProcAddress. SkiaSharp has support for constructing GrGlInterface from said pointer, I've specifically asked to add that a year ago.
It gets even more weird on Android/OSX/iOS, because there are restrictions on the thread that can make OpenGL calls to the render target. For efficient rendering we might need to render to a FBO first and transfer that FBO to the proper thread later. This logic might get tightly coupled with GLKViewController in case of iOS.

You are also managing OpenGL contexts in a wrong way. In case of EGL everything is using the same context, render target determined by the second argument of eglSwapBuffers. Also, the way of creating ResourceRender context is not portable. Some windowing platforms don't even have a concept of a window. CreateWindow just throws an exception.
See our old GPU rendering implementation in C++. It's a complete mess, but it takes into account the platform differences and has worked across Windows/Linux/iOS/Android.

Thanks for the feedback. I am aware that current implementation is not portable, hence the WIP prefix. I will take a look at your c++ code and adjust the new implementation.
For OpenGL context creation I completely agree that this is up to the windowing platform, and even currently I access it through an interface. But ultimately I would also like to give the user some way to control it, so we allow for customization in advanced scenario.

If only GPU part is "controversial" I could cut it out from this PR and reintroduce it in another PR. As the gpu support is optional, and raster backend works just fine without it.

Unfortunately, we can't merge it until Avalonia.Skia.Linux.Natives package is updated, since it needs to be built for a particular version of SkiaSharp. I'll do that this week.
It might be worth to merge GPU support as is and modify it as we add support for other platforms. I also still need to thoroughly read the rest of the PR, again, hopefully somewhere this week.

I have started working on EGL based context creation that should be much more portable. Should have something ready this week.

Another update. I am already done with basic EGL implementation (still Win32, but more open right now). I have discussed with @kekekeks about Windows, and it seems we want to bundle ANGLE (https://github.com/google/angle) binaries to make sure everything works smoothly on all platforms. I already pinged @kekekeks about details, but I received no response yet. So in case somebody else can chime in and give some suggestion:

we have x64 and x86 binaries for windows (can be built using Clang or MSVC)
Avalonia.Win32 is supposed to provide those to the user

I read some info about nuget runtimes, etc, but I would like to get more details info so I don't waste too much time trying to figure that out.

Updated the branch with new EGL based implementation.

Progress update: Managed to iron out most of the bugs thanks to @danwalmsley testing. There is still some minor issue with resizing (when D3D11 is used as EGL backend) that I will try to track down.

Seems the resizing issue happens on D2D backend as well. Due to window resize happening on other thread than actual rendering the sizes get out of sync and flickering/black borders happen. IMO fix for that should be done as a another PR.

@jkoritzinsky Moved the classes from Avalonia.Base to Avalonia.Visuals as requested. Right now I am also using natives package uploaded by @danwalmsley (https://www.nuget.org/packages/AvaloniaUI.Win32.Natives/), this could be replaced by official package (if it gets uploaded at some point).
Also summoning @kekekeks as I am more or less done with this PR.


Add support for repository code generation

Description
Please explain the changes you made here.
Checklist

[x] Code compiles correctly
[x] Created tests which fail without the change (if possible)
[x] All tests passing
[x] Extended the README.md / documentation, if necessary
[x] Added myself / the copyright holder to the CONTRIBUTORS file

Codecov Report

Merging #1 into master will decrease coverage by 3.42%.
The diff coverage is 88.36%.

@@            Coverage Diff             @@
##           master       #1      +/-   ##
==========================================
- Coverage     100%   96.57%   -3.43%
==========================================
  Files          18       19       +1
  Lines        1170     1315     +145
==========================================
+ Hits         1170     1270     +100
- Misses          0       33      +33
- Partials        0       12      +12

Impacted Files
Coverage Δ

sqlmodel/model.go
100% <ø> (ø)
:arrow_up:

sqlexec/runner.go
45.45% <0%> (-54.55%)
:arrow_down:

sqlmodel/builder.go
96% <0%> (-4%)
:arrow_down:

sqlmodel/resource.go
100% <100%> (ø)

sqlmodel/generator.go
65.78% <68.75%> (-34.22%)
:arrow_down:

sqlmodel/executor.go
93.22% <76.47%> (-6.78%)
:arrow_down:

sqlmodel/provider.go
98.21% <93.22%> (-1.79%)
:arrow_down:

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 a75a7d3...601f133. Read the comment docs.

Codecov Report

Merging #1 into master will decrease coverage by 3.42%.
The diff coverage is 88.36%.

@@            Coverage Diff             @@
##           master       #1      +/-   ##
==========================================
- Coverage     100%   96.57%   -3.43%
==========================================
  Files          18       19       +1
  Lines        1170     1315     +145
==========================================
+ Hits         1170     1270     +100
- Misses          0       33      +33
- Partials        0       12      +12

Impacted Files
Coverage Δ

sqlmodel/model.go
100% <ø> (ø)
:arrow_up:

sqlexec/runner.go
45.45% <0%> (-54.55%)
:arrow_down:

sqlmodel/builder.go
96% <0%> (-4%)
:arrow_down:

sqlmodel/resource.go
100% <100%> (ø)

sqlmodel/generator.go
65.78% <68.75%> (-34.22%)
:arrow_down:

sqlmodel/executor.go
93.22% <76.47%> (-6.78%)
:arrow_down:

sqlmodel/provider.go
98.21% <93.22%> (-1.79%)
:arrow_down:

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 a75a7d3...601f133. Read the comment docs.


text after alert shortcode does no render markdown properties

I am writing
{{% alert theme="danger" %}} Important ! abc

item 1
item 2

bold-text  {{% /alert %}}
The danger alert box is being used, but non of the other markdown properties is interpreted.
result is like:
Important ! abc * item 1* item 2 bold-text
within the alert box.
Any idea?
I have tried this with different files and boxes. Also installed hugo and Docdock on another Mac, but with the same result.
using
Hugo Static Site Generator v0.55.4/extended darwin/amd64 BuildDate: unknown

Applies to Panel as well

This thread helps clarify things: https://discourse.gohugo.io/t/misunderstanding-of-shortcode-syntax-in-0-55/18538
The problem is caused by the alert shortcode containing HTML tags.
Changing the shortcode to use
{{.Inner | markdownify}}

instead of just {{.Inner}} will fix the problem. The other shortcodes are likely to be impacted the same way

Fixed by 9e7631c69770


How can i change snapPoints ?

Good day, i'm sorry, thats the last question - How can i change snapPoints dynamical? I have already created RideauView and made addSubview. And i need to change snapPoints while user started to work with Rideau. Thank you!

Also, how can i close Rideau programmatically?


Add namespace option to pgvector

Allow passing a namespace to pgvector client init
Use exec_prepared for PG queries

@bborn What are your thoughts on converting this pgvector integration to use Squel? 😇
PG is turning out to be super low-level and I'm not sure we want to go all out and introduce ActiveRecord on the other side of the spectrum yet.

I love it. I don't like write SQL anywhere. Only kept going that way because that was what was there.

The build is green on the main branch.

@andreibondarev can you take a look here? Tests keep failing on CI, while locally they pass about 50% of the time. No clue why the flakiness.

@bborn The PR looks good on paper, I'd like to just test it a bit more by running the whole end-to-end locally. Need a bit more time.

@andreibondarev updated - made namespace column name hard coded. Still failing tests on CI (passing locally: https://d.pr/i/bNKNz7)

@andreibondarev updates here?

@andreibondarev bump.

Hey @bborn ! I merge this PR first because I figured it was going to be easier for you to resolve the merge conflicts here vs the other way around.
Also -- do you have any clue why the specs are failing? I'm okay with merge this PR after these changes/fixes though.

@andreibondarev updated (using Sequel for upserts) and tests passing (at least locally)

@bborn Hmm, yeah, I've got the specs passing locally as well. Not too sure about why they're failing on CI.

@andreibondarev yeah, weird. method content= doesn't exist could this be because the products table hasn't been created in CI, but locally it got created on a previous test run and never dropped?

@bborn I guess this could be easily tested by dropping the products table locally and then re-running the test suite.

@bborn Hey! If you're able to fix the specs by any chance -- I'm happy to merge! I just haven't had the time to look into it.

@andreibondarev CI is passing

@bborn Thank you for getting this over the finish line!


Doesn't show up when running on any iPad with iOS 13.6

Hi @tjvantoll  on the current version of iOS (13.6) on any iPad, the share window doesn't appear. It pops up just the border/shadow of the window in the top left corner. I'm using the latest version of Nativescript stack with Angular.
On any other device is working perfectly fine.

@tjvantoll do you accept pull requests?
In case if there are any other people facing the same issue I manage to fix it by providing the sourceRect for presentViewController.
After line 15, I added in social-share.ios.ts:
presentViewController.sourceRect = CGRectMake(100,500,100,100);
The sharing window will pop-up in the middle on the screen for Ipads.


run llama 3.1 405B with multi node has tp server error [Bug]

Checklist

[ ] 1. I have searched related issues but cannot get the expected help.
[X] 2. The bug has not been fixed in the latest version.
[ ] 3. Please note that if the bug-related issue you submitted lacks corresponding environment info and a minimal reproducible demo, it will be challenging for us to reproduce and resolve the issue, reducing the likelihood of receiving feedback.

Describe the bug
I have two node,node1 and node2,every node eth set is
eth0 is the controller network
eth1 to eth8 is the GPU IB network,
I  run llama 3.1 405B by sglang,like that

the error is

Reproduction
sglang:latest
Environment
two node,node1 and node2,every node eth set is
eth0 is the controller network
eth1 to eth8 is the GPU IB network

ref https://github.com/sgl-project/sglang?tab=readme-ov-file#run-llama-31-405b

I have seen this error (gloo mesh connection failed) with vllm too. I think it is related to your network setup. I wasn't able to find a solution other than using a different set of machines. For me, using H100s from AWS didn't work but using A100s from AWS did work (with exact same OS software and vllm code).
You might want to specific GLOO_SOCKET_IFNAME to your nic interface but it didn't help for me. Other than that, you might want to disable all but the network interface you are using.

In your case, perhaps gloo only needs eth0 since my understanding is that gloo is only used for some low bandwidth coordination between the nodes using a CPU process group (at least for vllm).

In your case, perhaps gloo only needs eth0 since my understanding is that gloo is only used for some low bandwidth coordination between the nodes using a CPU process group (at least for vllm).

--nccl-init-addr    this ip is what?

ref https://github.com/sgl-project/sglang?tab=readme-ov-file#run-llama-31-405b

that can't solve my question

Readme says GLOO, but most like you should set NCCL_SOCKET_IFNAME= instead.

I solved by running docker with args "--shm-size=1g --ulimit memlock=-1"
ref: https://help.aliyun.com/zh/egs/support/faq-1
I guess it relevant to salang, purely nccl issue


Update README.md to reflect the fact this is not OSHW

Corrected inaccurate statements in readme.

Thanks. Unfortunately your comment does not correct the inaccurate information. See more here https://github.com/MatthewJeffson/OSHW-WioTerminal/issues/1


Can your framework process the 2D vessel graph?

Hi, can your framework process the 2D vessel graph?

Hi @ZDstandup,
all our segmentations of the whole mouse brain originate from 3D imaging methods and subsequently, we utilize the graph extraction algorithm by Drees et. al. to extract the 3D spatial graph and utilize this representation for all graph learning algorithms.
In general, the processing of 2D vessel graphs is currently not supported by our dataset. Depending on which steps you would like to utilize, perhaps you can use some of the pipeline steps we implemented, for example the general concepts for link prediction and the dataset loaders.
If you can provide some details what specifically you are interested in / looking for, I might be able to point you to other research in 2D vessel graphs that I know of :)
Thanks again for your interest!

Hi @jqmcginnis , thanks a lot for your detailed response to my question. I'm looking for some research about how to represent the vessel tree using a graph, such as the coronary artery in 2D angiography. Could you please point out some research you know of?
Thanks a lot again!

Hi @ZDstandup,
I discussed the matter with @jocpae and there might be multiple interesting things for you to check:

If you reshape your current segmentation (NxM) to (NxMx1) you could use our existing graph extraction algorithm by Drees et.al. and check if this new representation is insightful for you. For this, you can use the Voreen Tool from University of Münster or look at the repository we used for the generation of our dataset c.f. CustomRepo.

If you would like to look into 2D graph generation, perhaps the following papers and research is helpful:

Chapman, Brian E., Holly P. Berty, and Stuart L. Schulthies. "Automated generation of directed graphs from vascular segmentations." Journal of biomedical informatics 56 (2015): 395-405.

Aanjaneya, Mridul, et al. "Metric graph reconstruction from noisy data." Proceedings of the twenty-seventh annual symposium on Computational geometry. 2011.

Check these implementations on github:

Metric Graph Reconstruction

Chapman et al.

Hi, @jqmcginnis
Wow, your response helps me a lot. Many thanks for your kind response. Thank jocpae, too.


Fix description for Blessing of Defiance

Fix the description for the 1-action version of Blessing of Defiance.

There might be a cleaner way to merge them, but this was the most obvious and it works. I haven't looked into localization yet.

Thanks as always y'all. Let me know if anything else needs fixing.


Feature - TRSV2-351 - Create queries TRS KPIs master

Codecov Report
Base: 51.40% // Head: 51.41% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (9843ba1) compared to base (d0c9d96).
Patch coverage: 77.77% of modified lines in pull request are covered.

:exclamation: Current head 9843ba1 differs from pull request most recent head 60fe604. Consider uploading reports for the commit 60fe604 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #300   +/-   ##
=======================================
  Coverage   51.40%   51.41%
=======================================
  Files         198      198
  Lines       11089    11095    +6
  Branches     1443     1443
=======================================
+ Hits         5700     5704    +4
- Misses       5389     5391    +2

Impacted Files
Coverage Δ

trade_remedies_api/config/settings/base.py
85.25% <50.00%> (-1.02%)
:arrow_down:

...remedies_api/audit/management/commands/trs_kpis.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Can't import Cloudflare Origin Certs to NPM

Trying to upload Cloudflare origin certs to NPM for the root domain.
Selecting the files in Explorer doesn't show itself in the UI, and I get an Upload failed: 400 message:
https://ramstik.pictures/5530-30750.gif
Logs show the following:
[9/5/2019] [12:53:34 AM] [Express  ] › ⚠  warning   Certificate Key is not valid (Command failed: openssl rsa -in /tmp/dd4705a3-a3ea-4aee-aa4c-f19dcf0a98d6/tmp -check -noout
139767292129344:error:0607907F:digital envelope routines:EVP_PKEY_get0_RSA:expecting an rsa key:../crypto/evp/p_lib.c:284:
)

From my limited experience with SSL stuff, it looks like you've coded it to only accept RSA keys. My key is ECDSA.
Is there a workaround for this, or do I just need to generate a new origin cert?

I'm having the same issue right now.  I was thinking it was a permissions issue possibly?

Same~

See #759 this will fix it!


App crashing right after start

I created my app with this command: ng new --collection=@nativescript/schematics ProjectFit
After that I run npm install, then tns run ios --bundle. The app loads on my emulator and start. After showing the splashscreen for a few secounds it crashes. I don't get any errors in my console. The last message I got is 'Successfully synced application org.nativescript.ProjectFit on device C7A71CC6-7A76-47DE-B442-93463199840C.'
ng serve works just fine...
EDIT: I just tried installing the .apk on android. Here I atleast get an error:
An uncaught Exception occurred on "main" thread. java.lang.RuntimeException: Unable to create application com.tns.NativeScriptApplication: com.tns.NativeScriptException: Application entry point file not found. Please specify the file in package.json otherwise make sure the file index.js or bootstrap.js exists.\nIf using typescript make sure your entry point file is transpiled to javascript. 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5934) 	at android.app.ActivityThread.-wrap1(Unknown Source:0) 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1680) 	at android.os.Handler.dispatchMessage(Handler.java:105) 	at android.os.Looper.loop(Looper.java:164) 	at android.app.ActivityThread.main(ActivityThread.java:6710) 	at java.lang.reflect.Method.invoke(Native Method) 	at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770) Caused by: com.tns.NativeScriptException: Application entry point file not found. Please specify the file in package.json otherwise make sure the file index.js or bootstrap.js exists.\nIf using typescript make sure your entry point file is transpiled to javascript. 	at com.tns.Module.bootstrapApp(Module.java:311) 	at com.tns.Runtime.run(Runtime.java:544) 	at com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:21) 	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119) 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5931) 	... 8 more Caused by: com.tns.NativeScriptException: Failed to find module: "./", relative to: app// 	at com.tns.Module.resolvePathHelper(Module.java:146) 	at com.tns.Module.bootstrapApp(Module.java:309) 	... 12 more

I have exactly the same problem.
In my case I have noticed that typescript files are not being transpiled, so I think this is because the error "No entry point file...."

Yep I have no Idea where this is coming from but there are other people with the same issue. Here is a stackoverflow post: https://stackoverflow.com/questions/53196685/nativescript-angular-code-sharing-project

We are investigating the issue and hopefully will be able to provide a fix soon

Likely the same issue as 6552.  Solution posted there.


Summit Event record types all default to Graduate Event Layout

There are 3 record types that come with the Summit Events object:

Graduate
UDAR
Undergraduate

There are 3 page layouts that come with the Summit Events object:

Graduate Event Layout
UDAR Event Layout
UG Event Layout

Will the process of assigning the correct page layouts be included as part of setup/configuration documentation?

This is being completed in #35


Data script

Change Description

[x] My PR includes a link to the issue that I am addressing

Solution Description

A script to check for existence of data files and curl what is missing.
Required for rail_attic's #372 (fixing goldenspike pipeline); addresses rail_attic #356 (moving data) and rail #26 (moving demo files).
Notebooks that require data can curl directly within a cell, but additional care is needed in cases such as running a pipeline from command line.
This solution is proposed as a centralized and readable method to handle external data without requiring users to copy and paste a list of curl commands into their command line.
Code Quality

[x] I have read the Contribution Guide
[x] My code follows the code style of this project
[x] My code builds (or compiles) cleanly without any errors or warnings
[x] My code contains relevant comments and necessary documentation

Project-Specific Pull Request Checklists
New Feature Checklist

[x] I have added or updated the docstrings associated with my feature using the NumPy docstring format
(Will complete following, pending discussion resolution):
[ ] I have updated the tutorial to highlight my new feature (if appropriate)
[ ] I have added unit/End-to-End (E2E) test cases to cover my new feature

Maybe make this a part of the rail command line interface?  On Jun 27, 2023, at 6:24 PM, Olivia R. Lynn @.***> wrote:
Change Description
My PR includes a link to the issue that I am addressing
Solution Description
A script to check for existence of data files and curl what is missing.
Required for rail_attic's #372 (fixing goldenspike pipeline); addresses rail_attic #356 (moving data) and rail #26 (moving demo files).
Notebooks that require data can curl directly within a cell, but additional care is needed in cases such as running a pipeline from command line.
This solution is proposed as a centralized and readable method to handle external data without requiring users to copy and paste a list of curl commands into their command line.
Code Quality
I have read the Contribution Guide
My code follows the code style of this project
My code builds (or compiles) cleanly without any errors or warnings
My code contains relevant comments and necessary documentation
Project-Specific Pull Request Checklists
New Feature Checklist
I have added or updated the docstrings associated with my feature using the NumPy docstring format
(Will complete following, pending discussion resolution):
I have updated the tutorial to highlight my new feature (if appropriate)
I have added unit/End-to-End (E2E) test cases to cover my new feature
You can view, comment on, or merge this pull request online at:
  https://github.com/LSSTDESC/rail/pull/43
Commit Summary
f782621  Initial script (with one file)
File Changes  (1 file)
A
get_data.py
(35)

Patch Links:
https://github.com/LSSTDESC/rail/pull/43.patch
https://github.com/LSSTDESC/rail/pull/43.diff
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

Maybe make this part of the rail command line interface?On Jun 27, 2023, at 7:43 PM, Drew Oldag @.***> wrote:
@drewoldag approved this pull request.
This looks really useful!
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

Thanks for the idea @eacharles, translated to a cli script in rail_base (PR #20)


Brand/Company name change in Global settings doesn't persist

Setup

Tested with master version: 9705d3ab9025fe7bb3a742151911a03af4887c88

Describe the bug
Brand name change from Global settings doesn't persist.
To Reproduce

Navigate to global settings
Change the brand name and apply changes
Click through to home page. You should see the new brand name
Refresh the page

Result
5. Brand name reverts back to default Rancher
Expected Result
6. New brandname should persist
Screenshots
https://user-images.githubusercontent.com/1387263/140485302-f3e8707b-d1f2-4959-bce4-d95892e200d9.mov

Could not reproduce in 2.7-head (cusp of 2.7.0 release)


401 Unauthorized Error for Implicit flow client example while accessing Web Api

Hi,
Here is my scenario:

A configured instance of Identity Server 3 is running.
From the "Clients" solution, ran the SampleAspNetWebApi (as Relying Party)
Ran the client (https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Clients/JavaScriptImplicitClient-Simple) for implicit flow
I click on "Get Token" in the UI from point 3 above.  I am presented the login screen.  I login.  I receive the access token and is shown in the page.
I click on "Use Token".  I receive the following.
{
"status": 401,
"statusText": "Unauthorized",
"wwwAuthenticate": "Bearer"
}

Note:  I tried running the following sample as well.
http://identityserver.github.io/Documentation/docs/overview/simplestOAuth.html
got same 401 Unauthorized while accessing the Web Api.
Please suggest.

Hmm, not sure. You'd need to debug some more into why the API is rejecting the token.

Can you check if the authority property of the IdentityServerBearerTokenAuthenticationOptions class is correctly configured with your IdentityServer url?

@RahulNET any update?


Ensure single source of truth for generated values.

Summary
We need to ensure that when we generate facts, say for example the pod name, we only do so once.
Use Cases
This would significantly reduce the number of bugs we have.
For example, when investigating this issue: https://github.com/argoproj/argo-workflows/issues/10124
Something I noticed was that the output between  ./argo get -json and the UI were slightly different.
I've had similar issue with a Mutex issue linked here.
This generation of facts every time we need them has been quite problematic in my opinion and we should refactor the codebase to eliminate this behaviour.  I believe doing so will eliminate an entire class of bugs from our codebase.

@isubasinghe can we have a holistic approach to solve the POD_NAME issue for all scenarios? Can you propose the solutions?

Related issues https://github.com/argoproj/argo-workflows/issues/7646, https://github.com/argoproj/argo-workflows/issues/9906, https://github.com/argoproj/argo-workflows/issues/10107, https://github.com/argoproj/argo-workflows/issues/10124, https://github.com/argoproj/argo-workflows/issues/11250

@sarabala1979 we really need some data store, configmaps can be used but obviously have the 1MB limit imposed by etcd.
Even dealing with the configmap limit is still a better option than what we are doing now, because there are quite a lot of bugs relating to the node names alone.
Then there is also the mutex issue, which is ultimately the same problem.
Either we make mysql or postgres mandatory and we rely on that to store everything or we use something like this:
https://github.com/dgraph-io/badger on the controller side running as an embedded data store.
They way badger works and they way our workflows work, I do not foresee any scaling problems running this as an embedded datastore.
I personally like the option of using badger because it doesn't require any architectural changes or requirements and I am fairly experienced in the use of these key value datastores since I have used RocksDB in the past when building a custom database.
That is my conclusion, use badger and store everything we need in it.
I do not think patching these bugs as they appear is a good solution, we need to extinguish this problem at the source.

Also pinging @terrytangyuan and @juliev0 so that they can have a read.

Actually correct me if I am wrong about Postgres| MySql not being mandatory, if it is mandatory, makes more sense to just use that.

@sarabala1979 we really need some data store, configmaps can be used but obviously have the 1MB limit imposed by etcd.
Even dealing with the configmap limit is still a better option than what we are doing now, because there are quite a lot of bugs relating to the node names alone.
Then there is also the mutex issue, which is ultimately the same problem.
Either we make mysql or postgres mandatory and we rely on that to store everything or we use something like this: https://github.com/dgraph-io/badger on the controller side running as an embedded data store.
The way badger works and the way our workflows work, I do not foresee any scaling problems running this as an embedded datastore.
I personally like the option of using badger because it doesn't require any architectural changes or requirements and I am fairly experienced in the use of these key value datastores since I have used RocksDB in the past when building a custom database.
That is my conclusion, use badger or (postgres|mysql) and store everything we need in it.
I do not think patching these bugs as they appear is a good solution, we need to extinguish this problem at the source.

Can you summarize Mutex issues? is it because of node id/name mismatch causing the issue or anything else?
I believe if we fix the nodeID/Name issue that will fix the all mutex and status mismatch issues.

Actually correct me if I am wrong about Postgres| MySql not being mandatory, if it is mandatory, makes more sense to just use that.

It's only required when persistence/workflow archiving is enabled.

Then there is also the mutex issue, which is ultimately the same problem.

Could you clarify what you meant by this? Any context?

I personally like the option of using badger because it doesn't require any architectural changes or requirements and I am fairly experienced in the use of these key value datastores since I have used RocksDB in the past when building a custom database.

We should stay away from any external dependencies like DB unless really necessary and leverage any cloud-native solutions whenever possible.

So, this is related to re-generating information over and over, right? Is there a reason we prefer a ConfigMap over using the Workflow Status? Is it because the information is too verbose and more likely to hit the size limit?

We should stay away from any external dependencies like DB unless really necessary and leverage any cloud-native solutions whenever possible.

@terrytangyuan
I generally agree on this, but I think this is a tradeoff, storing items will give higher confidence than generating them.
I prefer the higher confidence even though I know introducing any sort of persistence on k8s is asking for pain (especially in the context of multi-zone clusters).
I do know a workaround for etcd that will allow us to store items of any size on it, it will require additional work on my end to do so though. We can essentially break a single entry into multiple keys and use etcd directly, this is safe because it supports transactional writes/reads. Obviously increases the maintenance cost on our end.

@juliev0 Yeah I believe this is correct, we generate information over and over to avoid dealing with configmap limitations (1MB).

As a concluding remark: I think we can improve the current re-generation of facts and reduce the number of these type of bugs.
However, I do not think we can reduce these bugs to absolute zero, for example, the typescript and Go have their own implementations of node names.
It's better to tackle the root problem, because I think it will bring greater stability to the project, putting out these sorts of bugs is frankly quite demoralizing (for me at least). And I am not sure the advantages brought by being stateless are worth the costs of being stateless, as evidence to this I will point to this issue: https://github.com/argoproj/argo-workflows/issues/8684

I agree with this. For pod names, we should store them in status.node[*].podName rather than looking at the annotation.
The pod name can be fixed when the NodeStatus is created.

@JPZ13 do you want to create a separate issue for pod names?

adding my comment here from the other issue..

We use Argo heavily at ZG and when upgrading to v3.4 of argo workflows we noticed breaking changes this causes outside of the nodeId in the workflow. This v2 naming convention also breaks upstream k8s HOSTNAME env variable for the pod. For instance, we get the HOSTNAME in the workflow pod and run the kubernetes api call to get_namespace_pod with that HOSTNAME the pod name returned from the kubernetes api server does not match the pod name in the actual pod metadata.name. Not sure if there is some weird concatenation going on that is not persisting to etcd but the downard API does not match what is in etcd. I reverted the env var POD_NAMES to v1 and everything works in v3.4. I feel with all the bugs this v2 pod name should be reverted becuase the scope of breaking changes persists beyond argo itself and into kubernetes.

@aaron-arellano could you post the pod name to host name mappings that you're seeing? I've also sent you an email and copied @isubasinghe. If you would prefer to keep those values private, you can share with us via email. This will help clue us in to concatenation issues

So here is an example of the error I saw with pod v2 name. You can see in the log file attached we call the kubernetes python library function read_namespaced_pod. in the workflow itself we call the below code:
current_pod_name = os.environ.get("HOSTNAME", None)
current_pod_namespace = os.environ.get("POD_NAMESPACE", None)
    if current_pod_name and current_pod_namespace:
        return self.v1.read_namespaced_pod(
            namespace=current_pod_namespace, name=current_pod_name
        )

HOTSNAME as you know is derived from default kubernetes API functionality in the container to the pod it is hosted on, refhttps://kubernetes.io/docs/concepts/containers/container-environment/#container-information. With pod name v1 everything works fine but on v2 name this fails with the logs attached. The actual pod name was aip-toleration-integration-test-zlntf-nvidia-tesla-v100-4115184276
when getting HOSTNAME from within the v2name pod  we see the last 3 chars of the real pod name are not there. This consistenly happens when running get_namespaced_pod in a workflow pod generated under the v2 name feature. Again, when I revert POD_NAMES in workflow-controller and arg-server to v1 this scenario works fine.
Container Environmenthttps://kubernetes.io/docs/concepts/containers/container-environment/#container-information
This page describes the resources available to Containers in the Container environment. Container environment The Kubernetes Container environment provides several important resources to Containers: A filesystem, which is a combination of an image and one or more volumes. Information about the Container itself. Information about other objects in the cluster. Container information The hostname of a Container is the name of the Pod in which the Container is running. It is available through the hostname command or the gethostname function call in libc.
kubernetes.io

From: J.P. Zivalich @.>
Sent: Tuesday, August 22, 2023 1:20 PM
To: argoproj/argo-workflows @.>
Cc: Aaron Arellano @.>; Mention @.>
Subject: Re: [argoproj/argo-workflows] Ensure single source of truth for generated values. (Issue #10267)
@aaron-arellanohttps://github.com/aaron-arellano could you post the pod name to host name mappings that you're seeing? I've also sent you an email and copied @isubasinghehttps://github.com/isubasinghe. If you would prefer to keep those values private, you can share with us via email. This will help clue us in to concatenation issues
—
Reply to this email directly, view it on GitHubhttps://github.com/argoproj/argo-workflows/issues/10267#issuecomment-1688868470, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMNFEQ2FWI2AQGP64LAMGLLXWUIB5ANCNFSM6AAAAAATFC4HFY.
You are receiving this because you were mentioned.Message ID: @.***>
for toleration in self.pod.spec.tolerations:

File "/opt/zillow/aip_toleration_integration_test/toleration_flow.py", line 27, in pod
return self.v1.read_namespaced_pod(
File "/opt/zillow/.venv/lib/python3.9/site-packages/kubernetes/client/api/core_v1_api.py", line 23483, in read_namespaced_pod
return self.read_namespaced_pod_with_http_info(name, namespace, kwargs)  # noqa: E501
File "/opt/zillow/.venv/lib/python3.9/site-packages/kubernetes/client/api/core_v1_api.py", line 23570, in read_namespaced_pod_with_http_info
return self.api_client.call_api(
File "/opt/zillow/.venv/lib/python3.9/site-packages/kubernetes/client/api_client.py", line 348, in call_api
return self.__call_api(resource_path, method,
File "/opt/zillow/.venv/lib/python3.9/site-packages/kubernetes/client/api_client.py", line 180, in __call_api
response_data = self.request(
File "/opt/zillow/.venv/lib/python3.9/site-packages/kubernetes/client/api_client.py", line 373, in request
return self.rest_client.GET(url,
File "/opt/zillow/.venv/lib/python3.9/site-packages/kubernetes/client/rest.py", line 240, in GET
return self.request("GET", url,
File "/opt/zillow/.venv/lib/python3.9/site-packages/kubernetes/client/rest.py", line 234, in request
raise ApiException(http_resp=r)
kubernetes.client.exceptions.ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Audit-Id': 'd8d31fa9-c3b1-4a40-be9a-d7ec0c92de0d', 'Cache-Control': 'no-cache, private', 'Content-Type': 'application/json', 'X-Kubernetes-Pf-Flowschema-Uid': 'a40fedec-55f4-49e6-b7d1-11f5aff032b9', 'X-Kubernetes-Pf-Prioritylevel-Uid': '02552a5c-d35c-4c86-be13-947e86a691ef', 'Date': 'Mon, 21 Aug 2023 19:41:34 GMT', 'Content-Length': '294'})
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods "aip-toleration-integration-test-zlntf-nvidia-tesla-v100-4115184" not found","reason":"NotFound","details":{"name":"aip-toleration-integration-test-zlntf-nvidia-tesla-v100-4115184","kind":"pods"},"code":404}


Add version to cmake install files

So for example
find_package(hyprwayland-scanner 0.3.2 REQUIRED)

will be success if 0.3.3 is installed but failure in case of 0.3.1

This installs the files with 700 on my system, for some reason. It should be 755? Am I missing anythign?

This installs the files with 700 on my system, for some reason. It should be 755? Am I missing anythign?

700 is weird. According to cmake documentation

Files installed by this form are by default given permissions OWNER_WRITE, OWNER_READ, GROUP_READ, and WORLD_READ if no PERMISSIONS argument is given

i.e. 644, which is exactly what I got on my system after
$ cmake -Bbuild
$ cmake --build build
$ cmake --install build --prefix install

755 for the executable, 644 for everything else.

I got 700... my fs is generally weird since a while back. When I cp executable files with sudo to /usr/bin I sometimes have to chmod them cuz they are 700 owned by root.


Merge upstream

Codecov Report

Merging #533 into 4.2.1 will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##            4.2.1     #533   +/-   ##
=======================================
  Coverage   57.85%   57.85%
=======================================
  Files        1062     1062
  Lines       34453    34453
  Branches     4904     4904
=======================================
  Hits        19932    19932
  Misses      14521    14521


Notification is failed to send emails

🐞 Bug Report
Affected Services

 The issue is located in: edgex-support-notification
Description and Minimal Reproduction
Following the document(https://docs.edgexfoundry.org/Ch-AlertsNotifications.html), I tried both methods to configure the mail service for yahoo. However, it's failed to send notifications.
🔥 Exception or Error

Got the error:
level=ERROR ts=2019-10-30T09:01:15.749333Z app=edgex-support-notifications source=sending_service.go:98 msg="Problems sending message to<EMAIL_ADDRESS>issue: x509: certificate signed by unknown authority

🌍  Your Environment
Deployment Environment:
**EdgeX Version: Fuji
**Smtp Host: smtp.mail.yahoo.com
**Smtp Port: 587
**Smtp Sender<EMAIL_ADDRESS>**Smtp Password: mypassword
**Smtp Username<EMAIL_ADDRESS>

That error is stating that the SSL/TLS certificate cannot be verified. Try using the alternative port for yahoo 465 which might result in a different cert. Also, there is an option for allowing self-signed certs:
https://github.com/edgexfoundry/edgex-go/blob/c40a34afce665ae82bc9b9a09141ac70659bf280/cmd/support-notifications/res/configuration.toml#L47
I would try this against another SMTP service provider like Google to verify the client works with SSL/TLS transport.

We need to either create an issue or let the group in charge of that documentation that the EnableSelfSignedCert configuration property is missing from that list

@AnthonyMBonafide I just saw your comment(s) above, and appreciated your volunteering the helpful info, thanks 👍
While digging into this thus far, I came across some earlier work done in this area: Enable skipping verification of certs for emails and Email notification should allow sending to non authenticated smtp servers as well as If password is empty, do not assume Plain Auth
Meanwhile, I continue to get my local environment setup to first recreate the reported issue.

I continue to dig into this: At this time, the logging message(s) I get are different from those reported in this issue. I get:
level=ERROR ts=2019-10-31T15:59:55.207204Z app=edgex-support-notifications source=sending_service.go:110 msg="Problems sending message to: http://abc.def/alert"
level=ERROR ts=2019-10-31T15:59:55.207445Z app=edgex-support-notifications source=sending_service.go:111 msg="Error indication was:  Post http://abc.def/alert: dial tcp: lookup abc.def: no such host"
level=ERROR ts=2019-10-31T15:59:56.173904Z app=edgex-support-notifications source=sending_service.go:98 msg="Problems sending message to<EMAIL_ADDRESS>issue: 535 5.7.0 (#AUTH005) Too many bad auth attempts."

@akramtexas Sending notifications through REST channel works properly. The service correctly sent the messages to a REST API I built.

@akramtexas Sending notifications through REST channel works properly. The service correctly sent the messages to a REST API I built.

@jinlinGuan Thanks for the response. It would make things go quicker if we could please chat in realtime, and exchanged our (respective) observations. I have reached out to you (in the past few minutes) via EdgeX Foundry Slack. Please let me know, thanks 👍

@jinlinGuan At the outset (and we can discuss in realtime once you can please respond to my EdgeX Slack chat message) I want to compare notes with you regarding <IP_ADDRESS>. Configure Mail Server in connection with the Yahoo Mail setup (in relation with the setting(s)EnableSelfSignedCert = false and  EnableSelfSignedCert = true) . I am now going through the corresponding setup for Gmail...

@jinlinGuan I saw your brief, hello response to my reaching out to you (in 1x1 Slack channel) timestamped 9:58 PM (Sunday).
To facilitate us connecting (I'm in US Central Time zone), could you please let me know a time-of-day that would be convenient for you, so we can connect via Zoom? 👍

@jinlinGuan I'm glad that the two of us have coordinated (via Slack) a time to meet and discuss, thanking your for the confirmation: Let’s reschedule the meeting to 8am (your time) on 11/06.

@jinlinGuan Thank you for joining our meeting this past 30 minutes 👍
At this time, we've compared our respective setup thoroughly, including the Consul settings as in screenshot above.
The logging error message(s) I get are still different from those reported in this issue and which you are seeing still. I am investigating further, thanks.

@jinlinGuan Thank you again for joining me for another troubleshooting session!
At this time, we have eliminated all differences in the setup (on our respective environment), and yet we see a difference in the results regarding the scenario captured in this issue.

Adding to the ⬆ note that the REST notification works for both of us, using the following update to the JSON collection, but email  notification works for neither of us:

						"body": {
							"mode": "raw",
							"raw": "{\n\t\"slug\": \"sys-admin\",\n\t\"receiver\": \"System Administrator\",\n\t\"subscribedCategories\": [\n\t\t\"HW_HEALTH\"\n\t],\n\t\"subscribedLabels\": [\n\t\t\"temperature\",\n\t\t\"humidity\"\n    ],\n\t\"channels\": [\n\t\t{\n\t\t\t\"type\": \"REST\",\n\t\t\t\"url\": \"REST_CHANNEL\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"EMAIL\",\n\t\t\t\"mailAddresses\": [\n\t\t\t\t\"AKRAM_yahoo_account\"\n\t    \t]\n\t\t}\n\t]\n}"
						},

To help identify when (and hopefully, how) this issue arose, I asked @jinlinGuan regarding when was the last time that notifications email was working properly? She confirmed that it was working last at the time when the following PRs were approved and merged:
PR-1535 (If password is empty, do not assume Plain Auth)
PR-1565 (Enable skipping verification of certs for emails)

https://github.com/edgexfoundry/edgex-go/pull/1565

@akramtexas @jinlinGuan @michaelestrin
I have just run a successful test of this functionality in the Fuji branch. Here are the steps I went through after setting up a password for applications to use in sending email to me through GMail. Instructions here.
1.) Checkout Fuji branch in edgex-go
2.) Build services locally (I did not use Docker. I am running Mac OSX.)
3.) Clean out Mongo database
4.) Change the [Smtp] configuration in support-notifications like so (password omitted)
[Smtp]
  Host = 'smtp.gmail.com'
  Username =<EMAIL_ADDRESS>  Password = '<omitted>'
  Port = 25
  Sender =<EMAIL_ADDRESS>  EnableSelfSignedCert = false
  Subject = 'EdgeX Notification'

5.) Execute make run in edgex-go to bring services up.
6.) Create a subscription
POST http://localhost:48060/api/v1/subscription
{
    "slug": "critical-test",
    "receiver": "System Administrator",
    "subscribedCategories": ["SW_HEALTH"],
    "subscribedLabels": ["metadata"],
    "channels": [
        {
            "type": "EMAIL",
            "mailAddresses"<EMAIL_ADDRESS>        }
    ]
}

7.) Create a notification with the Severity property set to CRITICAL. This is important. Emails will not get sent unless the notification is of critical severity.
{
    "created":<PHONE_NUMBER>066,
    "modified":<PHONE_NUMBER>066,
    "id": "bce1e973-ce93-48ed-823f-be8411285c0e",
    "slug": "critical-notification",
    "sender": "core-metadata",
    "category": "SW_HEALTH",
    "severity": "CRITICAL",
    "content": "Testing the notification service",
    "description": "Metadata device notice",
    "status": "NEW",
    "labels": ["metadata"]
}

I received the notification at my Gmail account. See below.

As you can see the value of the content property on the notification I created is what's in the body of the email.
Based on this successful test, please provide more information about your testing methodology if you believe a bug does exist.

@tsconn23 Thanks for the feedback, much appreciated 👍
During the several troubleshooting sessions this past week with @jinlinGuan, we've compared our respective setup thoroughly (@jinlinGuan, please feel free to add, clarify in this regard.)
Comparing what we have, in terms of testing methodology, with what you've most helpfully outlined in detail above, @tsconn23, here are the differences:
We are running support-notifications locally, native, which meant having the support-notifications entry in the yaml (developer-scripts/releases/nightly-build/compose-files/docker-compose-nexus-no-secty.yml) commented-out.
Likewise, we create a notification with the Severity property set to CRITICAL as follows:

curl -X POST \
  http://localhost:48060/api/v1/subscription \
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Length: 343' \
  -H 'Content-Type: application/json' \
  -H 'Host: localhost:48060' \
  -H 'Postman-Token: 0f31f111-9333-4ca7-8903-160e0465c9c8,db92ad75-0198-4584-bccd-11d910365ea2' \
  -H 'User-Agent: PostmanRuntime/7.18.0' \
  -H 'cache-control: no-cache' \
  -d '{
	"slug": "sys-admin",
	"receiver": "System Administrator",
	"subscribedCategories": [
		"HW_HEALTH"
	],
	"subscribedLabels": [
		"temperature",
		"humidity"
    ],
	"channels": [
		{
			"type": "REST",
			"url": "abc.def"
		},
		{
			"type": "EMAIL",
			"mailAddresses": [
<EMAIL_ADDRESS>	    	]
		}
	]
}'

Followed by this:

curl -X POST \
  http://localhost:48060/api/v1/notification \
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Length: 269' \
  -H 'Content-Type: application/json' \
  -H 'Host: localhost:48060' \
  -H 'Postman-Token: 8b39007a-f879-4aca-87d8-010bd405a1e6,d86ec8aa-39ff-45f2-aff5-9c8d74631717' \
  -H 'User-Agent: PostmanRuntime/7.18.0' \
  -H 'cache-control: no-cache' \
  -d '{
    "slug": "notice-007",
    "sender": "System Management",
    "category": "HW_HEALTH",
    "severity": "CRITICAL",
    "content": " [ WARNING ] Room'\''s temperature is 103 °F , it'\''s over upper limit 100 °F.",
    "labels": [
			"temperature",
			"humidity"
    ]
}'

The part of setup that does not work for either @jinlinGuan or me has to to with what's documented in the screenshots above.

And likewise, we changed the [Smtp] configuration in support-notifications like so (password omitted)

[Smtp]
  Host = 'smtp.mail.yahoo.com'
  Username =<EMAIL_ADDRESS>  Password = '...'
  Port = 587
  Sender =<EMAIL_ADDRESS>  EnableSelfSignedCert = false
  Subject = 'EdgeX Notification'

@akramtexas In your reply https://github.com/edgexfoundry/edgex-go/issues/2041#issuecomment-552192978 your steps indicate you're creating a notification followed by a subscription. Create the subscription first. If there's no subscription, you won't receive a notification.

@tsconn23 Good catch. Actually, that was an oversight on my part in capturing the steps (as presented in the notes above from earlier this morning), and which I later corrected (after submitting that Comment) - i.e. I had created the subscription first, followed by step that should have resulted in receiving a notification.

I was finally able to reproduce this by running the whole environment in Docker.
level=ERROR ts=2019-11-10T21:04:11.7886936Z app=edgex-support-notifications source=sending_service.go:98 msg="Problems sending message to<EMAIL_ADDRESS>issue: x509: certificate signed by unknown authority"

The error above is caused by the root certificates not being in the docker image. Once I made the Dockerfile changes to get that done, I encountered another error.
level=ERROR ts=2019-11-10T22:11:34.3823424Z app=edgex-support-notifications source=sending_service.go:99 msg="Problems sending message to<EMAIL_ADDRESS>issue: line 203: 530 5.5.1 Authentication Required. Learn more at\n5.5.1  https://support.google.com/mail/?p=WantAuthError o203sm4389876oia.4 - gsmtp"

This is confusing to me because I copied my credentials into the docker configuration.toml from the local configuration.toml, so I know they're present and correct. I don't know why this wouldn't work in a Docker-ized deployment, however it works natively. I suppose it could have something to do with how the data is being encrypted by the container that the destination server can't read it.
@AnthonyMBonafide @rudderfree It looks like this issue is related to https://github.com/edgexfoundry/edgex-go/pull/1565. Your help in resolving would be appreciated.

To help identify when (and hopefully, how) this issue arose, I asked @jinlinGuan regarding when was the last time that notifications email was working properly? She confirmed that the last it was working was at the time when the following PRs were approved and merged:

PR-1535 (If password is empty, do not assume Plain Auth)
PR-1565 (Enable skipping verification of certs for emails)

I had been part of the initial look each at the related issues (1382 and 1469) and the proposed PR back then, before Anthony continued that work. @AnthonyMBonafide Do you recall any details from that time (or since then) that may help shed light? Thanks.

@tsconn23 Your volunteering to investigate this issue and provide detailed feedback is greatly appreciated 👍
Referring to an earlier comment I had made (⬆), I fully agree that enlisting help from @AnthonyMBonafide and @rudderfree would help expedite resolution of the issue.

After working session with myself, @AnthonyMBonafide, @akramtexas and @michaelestrin we found that the root issue is the unavailability of the SSL certs in the support-notifications Dockerfile. The recommended (and tested) additions have been provided in the linked file above.
The latter issue related to the inability to authenticate upon send from only within Docker was due to a missed step during testing. It was necessary to also rebuild the config-seed image in order to include docker/configuration.toml changes so they would be populated properly in Consul.
@akramtexas Will be creating a PR in both fuji and master with the required Dockerfile changes.

Hi,
Sorry, I didn't see the messages in time, otherwise would have enjoyed
helping out.
Regards,
Amit
On 12/11/19 6:26 PM, Akram Ahmad wrote:

Closed #2041 https://github.com/edgexfoundry/edgex-go/issues/2041.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/edgexfoundry/edgex-go/issues/2041?email_source=notifications&email_token=AMBZYZMJD37G4VERVNDIZE3QTKRZPA5CNFSM4JGWVDTKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOUZQLXXI#event-2791357405,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMBZYZM2W5AKUP4NOVEVPLDQTKRZPANCNFSM4JGWVDTA.

--
gofer wants mango!


informer: fix lost event handlers

The function copy copies slice elements from a source src to a destination dst and returns the number of elements copied. The core types of both arguments must be slices with identical element type. The number of elements copied is the minimum of len(src) and len(dst).

/cherry-pick release-0.6