Issues loading a DXF file with splines with flag SplineTypeFlags.ClosedPeriodicSpline

I'm having difficulties loading a Dxf file that contains some splines, with the flag SplineTypeFlags.ClosedPeriodicSpline on.
I've found that, during DxfReader.ReadSpline(), in this case, the code tries to remove a range of elements from two lists: controlPoints and weights. This RemoveRange fails when performed on the weights list, because it's empty.
I've analyzed the dxf and in fact found a spline that adds control points (code 30) but not weights (code 41), and the dxf is read by other programs but also old versions of netDxf (v. <IP_ADDRESS>).
Reading some autodesk documentation, it seems like the weights on a spline are optional, with a default value of 1, so maybe the weights list should be filled along with the control points (with value 1) and then, eventually, overwritten if values are present.
Here is the spline
SPLINE
  5
4BE32
330
1F
100
AcDbEntity
  8
Note
100
AcDbSpline
210
0.0
220
0.0
230
1.0
 70
  3339
 71
     3
 72
    42
 73
    38
 74
     0
 42
0.000000001
 43
0.0000000001
 40
0.0
 40
0.0
 40
0.0
 40
0.0
 40
1.0
 40
2.0
 40
3.0
 40
4.0
 40
5.0
 40
6.0
 40
7.0
 40
8.0
 40
9.0
 40
10.0
 40
11.0
 40
12.0
 40
13.0
 40
14.0
 40
15.0
 40
16.0
 40
17.0
 40
18.0
 40
19.0
 40
20.0
 40
21.0
 40
22.0
 40
23.0
 40
24.0
 40
25.0
 40
26.0
 40
27.0
 40
28.0
 40
29.0
 40
30.0
 40
31.0
 40
32.0
 40
33.0
 40
34.0
 40
35.0
 40
35.0
 40
35.0
 40
35.0
 10
22489.92457403875
 20
187.5575489194193
 30
0.0
 10
22490.96023380807
 20
187.5382063233122
 30
0.0
 10
22492.21655333421
 20
188.3696976943009
 30
0.0
 10
22492.62031925205
 20
191.0616158650734
 30
0.0
 10
22492.46746187785
 20
196.1413299450243
 30
0.0
 10
22492.67512545683
 20
199.8873509123875
 30
0.0
 10
22491.62545949212
 20
209.5533367689147
 30
0.0
 10
22491.14933905796
 20
228.2491554893151
 30
0.0
 10
22492.24419589264
 20
224.8135375564376
 30
0.0
 10
22496.15333909237
 20
227.7881221177799
 30
0.0
 10
22495.41157222155
 20
233.4470497360686
 30
0.0
 10
22499.67544583439
 20
233.1070622151373
 30
0.0
 10
22512.36625433979
 20
232.1526825554123
 30
0.0
 10
22517.95119354178
 20
232.5939688543125
 30
0.0
 10
22521.59335205098
 20
232.5264472906245
 30
0.0
 10
22532.30357864085
 20
232.7268692325692
 30
0.0
 10
22537.87992569295
 20
233.4791909728486
 30
0.0
 10
22540.19034913067
 20
232.1275920002521
 30
0.0
 10
22539.87457637065
 20
238.2681540947291
 30
0.0
 10
22539.94279679389
 20
238.4697022725207
 30
0.0
 10
22535.15160755459
 20
239.6986436201711
 30
0.0
 10
22523.75618615891
 20
238.6691718987989
 30
0.0
 10
22512.77333034654
 20
238.5851415478941
 30
0.0
 10
22499.30736226225
 20
238.0926247424222
 30
0.0
 10
22491.27088117407
 20
237.9169903986567
 30
0.0
 10
22487.79817825399
 20
238.3688006070051
 30
0.0
 10
22482.46701053683
 20
236.0906712863705
 30
0.0
 10
22482.35094997013
 20
234.7456429622477
 30
0.0
 10
22481.62696164127
 20
229.6058707641098
 30
0.0
 10
22483.09009086371
 20
227.7642313138189
 30
0.0
 10
22483.16748450814
 20
219.0880956465761
 30
0.0
 10
22483.99775537258
 20
217.728822725111
 30
0.0
 10
22483.5741219579
 20
217.3487801613413
 30
0.0
 10
22485.92577947209
 20
201.2754895878984
 30
0.0
 10
22486.60370135442
 20
196.6509807783038
 30
0.0
 10
22486.00259471833
 20
188.4857532709435
 30
0.0
 10
22488.88891426944
 20
187.5768915155264
 30
0.0
 10
22489.92457403875
 20
187.5575489194193
 30
0.0

I will fix this in the next update. Next time upload the full DXF instead of just a piece of it, it makes my life a lot easier.

Thank you very much.
I'm sorry for the partial dxf file but it is not mine and I prefer to not share the whole file.


errors in beliefPropStereo.m

blockmatching and dynamcc programming is wroking fine but there are some errors in this beliefPropStereo.m
i have given parameters in main.m for img iter ...
thanks,

I just rerun it an there is no error. Just run main.m script and let me know what error do you get. just copy all error messages here.

https://drive.google.com/file/d/1UCUcXZWCKLtp46O2X2wHMnhQaXKVybMs/view?usp=sharing
i attached the error message in the link above

ok it is because of old version Matlab's matrix dimension problem . I fixed it please donwload and test it again.

still same issue
https://drive.google.com/file/d/1kfJktAG_05STBbhxB9XJEkwiCWYzs8Z6/view?usp=sharing

which version of matlab required??

check again please. I just updated it

Thanks a lot now it's working fine!


What to do when there is a lack of machine-assigned terms for a research topic?

I took action item today to include in the research topic descriptions the best low-level terms.
I started with "Cybersecurity" as a topic. I don't know if they didn't have cybersecurity or security risks back in the dark agest when the terms for this database were developed, but I just searched and came up empty with "security" and "Cybersecurity."
What am I missing?

Seems that I didn't have the search settings right... I've found the group of 25 terms that we assigned to the group "Security"
But I'm not confident that this issue is closed.

These a human-driven judgements.  If you do not believe that the existing machine-assigned terms properly reflect your concept's keyword, then place the keyword in the research concept as you wish.

business
number of groups: 7
number of machine-generated terms: 158
displays
number of groups: 4
number of machine-generated terms: 124
end users and user experience
number of groups: 5
number of machine-generated terms: 89
industries
number of groups: 21
number of machine-generated terms: 943
other
number of groups: 1
number of machine-generated terms: 2
standards
number of groups: 1
number of machine-generated terms: 16
technology
number of groups: 17
number of machine-generated terms: 1080
use cases
number of groups: 6
number of machine-generated terms: 149


Ba role rando v2

Added UI for randomizing teams.
Preferences can be selected via checkboxes.

You need to remove your nav button from the client toolbar on plugin shutDown.

Ah okay will update it when I get a chance. Thanks.

Have removed the navButton from the client toolbar on shutdown.


Custom proxy domain support

Hi @mariusbalcytis,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!


Hot fix: Virtual Pets timezone

Description
Now calculates the current time based on the user's timezone (previously was always UTC time)
Copilot

copilot:all

Note that you can also get users timezone (or their device's, more specifically) from the magic $tz config variable.


.Net: Saving information to WeaviateMemoryStore throwing a 422 error (Unprocessable Entity)

The bug:
I am trying to save some strings to my WeaviateMemoryStore via textMemory.SaveInformationAsync(memoryCollectionName, text, id); where textMemory is a SemanticTextMemory object.  The WeaviateMemoryStore I'm using is a locally ran docker container, but I tested my code on a Weaviate hosted client as well to no avail. Whenever the save information line runs, I get the following error stack:
fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
      An unhandled exception has occurred while executing the request.
      Microsoft.SemanticKernel.Diagnostics.HttpOperationException: Response status code does not indicate success: 422 (Unprocessable Entity).
       ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 422 (Unprocessable Entity).
         at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
         at HttpClientExtensions.SendWithSuccessCheckAsync(HttpClient client, HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
         --- End of inner exception stack trace ---
         at HttpClientExtensions.SendWithSuccessCheckAsync(HttpClient client, HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
         at HttpClientExtensions.SendWithSuccessCheckAsync(HttpClient client, HttpRequestMessage request, CancellationToken cancellationToken)
         at Microsoft.SemanticKernel.Connectors.Memory.Weaviate.WeaviateMemoryStore.ExecuteHttpRequestAsync(HttpRequestMessage request, CancellationToken cancel)
         at Microsoft.SemanticKernel.Connectors.Memory.Weaviate.WeaviateMemoryStore.UpsertBatchAsync(String collectionName, IEnumerable`1 records, CancellationToken cancellationToken)+MoveNext()
         at Microsoft.SemanticKernel.Connectors.Memory.Weaviate.WeaviateMemoryStore.UpsertBatchAsync(String collectionName, IEnumerable`1 records, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
         at System.Linq.AsyncEnumerable.FirstOrDefaultAsync[T](IAsyncEnumerable`1 source, CancellationToken cancellationToken)
         at System.Linq.AsyncEnumerable.FirstOrDefaultAsync[T](IAsyncEnumerable`1 source, CancellationToken cancellationToken)
         at Microsoft.SemanticKernel.Connectors.Memory.Weaviate.WeaviateMemoryStore.UpsertAsync(String collectionName, MemoryRecord record, CancellationToken cancellationToken)
         at Microsoft.SemanticKernel.Memory.SemanticTextMemory.SaveInformationAsync(String collection, String text, String id, String description, String additionalMetadata, CancellationToken cancellationToken)
         at StudentHub.Server.Services.KernelService.SaveMemoryAsync(ISemanticTextMemory textMemory, String memoryCollectionName, String text, String id, String sourceFile) in /Users/RiderProjects/StudentHub/StudentHub/Server/Services/KernelService.cs:line 73
         at StudentHub.Server.Services.KernelService.<>c__DisplayClass7_0.<<GetKernel>b__0>d.MoveNext() in /Users/RiderProjects/StudentHub/StudentHub/Server/Services/KernelService.cs:line 64

Expected Behavior:
I expect the text to just save to my weaviate db in the schema defined my memoryCollectionName. I tested my code with a VolatileMemoryStore and that worked no problem.
The extent of my personal investigation
According to the breakpoints hit via Rider's debugger, I've found the following:

SK successfully creates a Weaviate schema if none exists
SK successfully creates a MemoryRecord object of the string I'm trying to upload
SK successfully adds said MemoryRecord to the RequestBuilder (L261 of WeaviateMemoryStore.cs)
Here is where I'm not sure exactly what happens. The Weaviate API Curl example sends a json of the object in the -d (data) parameter, but I think SK sends a bytearray if anything, in the request.

Platform

OS: M1 Mac running Ventura
IDE: Rider 2023.2.3
Language: C#
Source: Both Microsoft.SemanticKernel and Microsoft.SemanticKernel.Connectors.Memory.Weaviate v. 1.0.0-beta8

Additional Context
I inquired about this on the Discord, and @dluc recommended I reach out here and to @codebrain because he added WeaviateMemoryStore to SK.

Seeing the same issue here with Qdrant as the memoryStore.

I've encountered the same issue; the issue was the id param in SaveInformationAsync is expected to be a guid as described here #2793

All .Net issues prior to 1-Dec-2023 are being closed. Please re-open, if this issue is still relevant to the .Net Semantic Kernel 1.x release. In the future all issues that are inactive for more than 90 days will be labelled as 'stale' and closed 14 days later.


Clean up the C++ indexer's main() [phab:D425]

Created by zarko at 2015-07-24 20:13:42:
This diff pulls logic out of main() to a
separate utility function. The only behavioral
change intended is to provide builtin headers
if the CompilationUnit under analysis doesn't
offer a header search block.

shahms commented inline (context lost during migration) at 2015-07-24 20:36:30:
Prefer anonymous namespace to lots of static functions?

shahms commented inline (context lost during migration) at 2015-07-24 20:36:30:
I would think:
Info.paths.emplace_back(Dir.path(), ....);

shahms commented inline (context lost during migration) at 2015-07-24 20:36:30:
Ditto.

shahms commented inline (context lost during migration) at 2015-07-24 20:36:30:
just use the return value.

shahms commented inline (context lost during migration) at 2015-07-24 20:36:30:
If it takes ownership, update it to take a std::unique_ptr<>

zarko wrote at 2015-07-24 20:56:12:

Address comments

jdennett accepted this revision at 2015-07-24 21:48:17

zarko closed via commit 27b4f2c6d05178fad923b5aeb87af9593f16b923 at 2015-07-24 21:54:47


Add @callbacks to allow mocking Req interface

Hi there. I'm considering using Req for a project, however I found that there is no clean way to mock the API via the Mox Library. The ability to mock an HTTP client is important for testing various cases. The solution for this seems simple: define @callbacks for a ReqApi, and have Req implement that behaviour.
What do you think? Thanks for your hard work.

Hey, thank you for considering Req for your project. I'm not planning to add such ReqApi contract as it's easy enough to add it on a per-project basis. Especially that I think different projects would use different subsets of Req (e.g. just Req.request/1 function.)
FWIW in my projects I'd either introduce mocks:

"above" Req, by having domain-specific contract e.g. MyApp.Twitter and a MyApp.Twitter.Req implementation. See https://dashbit.co/blog/mocks-and-explicit-contracts.
"below" Req by having a mock for the network (by using Bypass or built-in features of Req: :adapter and :plug options.)


Remove more Python 2 artifacts

This removes most code from the nltk/compat.py file including the Unicode compatibility handling.
This means if external code called e. g. FreqDist().unicode_repr() it needs to be changed to repr(FreqDist()).
Additionally I removed most names from the compat.py file but as they did not appear in the documentation I doubt external code relies on them.
If you are concerned about maybe breaking some users code we can discuss which names I still need to export for retaining compatibility.

Thanks @pyfisch. I'm happy for people using internal names to update their code.

Thanks @pyfisch!! This is so awesome that we can remove compat.py and all the try-excepts !!!


🐛 Reduce indirectly required versions

Summary
This PR reduces the versions of indirectly required dependencies in go.mod to what the go tooling determines are the minimum required versions according to the direct requirements and the local Go code. I do not know why any of the versions were higher, and one of them was causing a problem (see #22).
Related issue(s)
Fixes #22

/lgtm

As far as I know (https://github.com/kubestellar/kubestellar/issues/2125), we have no easy way to test this.


Problem with coc-nvim

Hi,
I've had some problem making omnisharp-vim and coc work together. Both of them seem to work fine (:OmniSharpGoToDefinition is working as expected), but for some reason, whenever trying to "call" a coc directive (coc-implementation for example), I get this error message:
[coc.nvim] Error on notification "jumpImplementation": implementation provider not found for current buffer
, your language server doesn't support it.

As I'm just starting working with (Neo)Vim, I may have setup something wrong.
Here are some parts of my init.vim that may be the source of the problem.
call plug#begin()
...
Plug 'OmniSharp/omnisharp-vim'
...
Plug 'neoclide/coc.nvim', { 'branch': 'release' }
...
call plug#end()

...

nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
...

Since I stole that init.vim from someone else (credit goes to jdh) and I just added the Plug 'OmniSharp/omnisharp-vim' line, I don't really see where the problem could come from..
Thanks for your time !

That error is on the coc side, did doesn't have anything to do with this plugin.
Be aware that if you are configuring coc to handle LSP actions such as go-to definition find references etc., then coc and omnisharp-vim will both be running their own separate servers in the background. I don't know if coc automatically configures C# to use the OmniSharp-roslyn server, if it doesn't you might need to configure that part, that may be where your issue is.

If you just want to use coc for the auto-completion functionality with C#, then I'd recommend keeping your configuration as it is but override the coc mappings with their omnisharp equivalents in C# buffers:
augroup omnisharp_commands
  autocmd!

  " The following commands are contextual, based on the cursor position.
  autocmd FileType cs nmap <silent> <buffer> gd <Plug>(omnisharp_go_to_definition)
  " ... other omnisharp-vim mappings
augroup END

Making your mappings <buffer> local like this means that they only apply to C# buffers, so in other filetypes gd will still fall back to your coc mapping.
The coc autocompletion is in this case still using omnisharp-vim to handle the completions via the standard vim omnifunc, so there is only a single language server running (which omnisharp-vim is handling, not coc).

Thanks a lot for your response !
I'll override the bindings to directly use Omni Sharp in C# buffers then.
Cheers !

@JDECOMBE Do you happen to have a list of the bindings you've made to support that? I'm running into the same issue now where I'm trying to jump to a definition via <Plug>(coc-definition) but it's throwing the same error as yours.

@tankorsmash the omnisharp equivalent of <Plug>(coc-definition) is what I included in my last comment.
The definitive list of all omnisharp <Plug>(...) mappings is here: https://github.com/OmniSharp/omnisharp-vim/blob/master/ftplugin/cs/OmniSharp.vim#L90-L127

My solution is to stop using omnisharp... I've switch to csharp-ls which, in my opinion is more reliable than omnisharp.
Once installed, here's what you need to add to your coc configuration file (:CocConfig):
{
  "languageserver": {
    "csharp-ls": {
      "command": "csharp-ls",
      "filetypes": ["cs"],
      "rootPatterns": ["*.csproj", ".vim/", ".git/", ".hg/"]
    }
  }
}

While looking into my coc configuration for you, I've found that I have csharpls-extended-lsp.nvim installed so you may want to look into it as well.
Sorry for not having a working configuration with omnisharp, hope this still helps you !

I've switch to csharp-ls which, in my opinion is more reliable than omnisharp.

Can you please give examples of what you mean by this?

I switched to csharp-ls about a year ago because I was working on several projects, each of which had a different .NET version (from .NET6 to .netstandard2.1) and I couldn't find a way to make omnisharp work with all of them at the same time. iirc, I had to toggle a global variable (something like g:omnisharp_use_dotnet_6) every time. Maybe that have been solved every since but I never found the need to stop using csharp-ls.

To anybody who comes across this thread at some point in the future and was looking for a ctrl+c ctrl+v solution, you have to override your coc keybindings with a call to the corresponding omnisharp function, as nickspoons pointed out earlier.
More specifically, I solved the issue on my end by creating a ~/.config/nvim/after/plugin/coc.vim file and putting in the following code.
augroup omnisharp_commands
  autocmd!

  autocmd FileType cs nmap <silent> <buffer> gd <Plug>(omnisharp_go_to_definition)
  autocmd FileType cs nmap <silent> <buffer> gy <Plug>(omnisharp_go_to_type_definition)
  autocmd FileType cs nmap <silent> <buffer> gi <Plug>(omnisharp_find_implementations)
  autocmd FileType cs nmap <silent> <buffer> gr <Plug>(omnisharp_find_usages)
  autocmd FileType cs nmap <silent> <buffer> K  <Plug>(omnisharp_documentation)
  autocmd FileType cs nmap <silent> <buffer> <leader>f <Plug>(omnisharp_code_format)
  autocmd FileType cs nmap <silent> <buffer> <leader>ac <Plug>(omnisharp_code_actions)
  autocmd FileType cs nmap <silent> <buffer> <leader>re <Plug>(omnisharp_rename)
  " ... other omnisharp-vim mappings
augroup END

There are probably a few keybinds I forgot to add, but I'm not that familiar with vim yet and was going off the coc example configuration, so this seemed satisfactory for my needs. I thought I'd leave this here though because comparing the coc and omnisharp bindings to see which ones need to be replaced, and then figuring out where these settings are supposed to go, is not exactly an exciting process.

@BagelSeasoning234 if you're putting config in separate files (which is a good idea), it makes more sense in this case to use a ~/.config/nvim/after/ftplugin/cs.vim script, which is automatically sourced whenever you open a .cs file so doesn't need the autocmds, it just becomes:
nmap <silent> <buffer> gd <Plug>(omnisharp_go_to_definition)
nmap <silent> <buffer> gy <Plug>(omnisharp_go_to_type_definition)
nmap <silent> <buffer> gi <Plug>(omnisharp_find_implementations)
nmap <silent> <buffer> gr <Plug>(omnisharp_find_usages)
nmap <silent> <buffer> K  <Plug>(omnisharp_documentation)
nmap <silent> <buffer> <leader>f <Plug>(omnisharp_code_format)
nmap <silent> <buffer> <leader>ac <Plug>(omnisharp_code_actions)
nmap <silent> <buffer> <leader>re <Plug>(omnisharp_rename)

I see. Thanks! I only put the code there at first because it wasn't working when I directly added it to init.vim, and I saw someone else do something similar in another dotfiles repo.

The difference is that /plugin/ scripts are only sourced once, on startup, after .vimrc/init.vim. So in those you need autocmds to tell vim that the following applies to all .cs files. Whereas the /ftplugin/ scripts basically already have that autocmd Filetype cs logic baked in.

@nickspoons @BagelSeasoning234 Thank you guys!
After a long struggle I finally made it work on linux with Neovim + COC + OmniSharp + Roslyn + Mono.


main update

https://github.com/totto2727-org/result/pull/26
https://github.com/totto2727-org/result/pull/27

https://github.com/totto2727-org/result/pull/29


Add option to exclude documentation pages from search indexing

Was playing around with adding the changelog, but don't feel like the entire search index should be weighted down by such a massive file with relatively low search relevance.

My first idea was to add this as a front matter property, but that would require parsing the file earlier on, instead I'll add a config option to diff exclude them.


Prevent zoom in more than natural width/height of image

Zooming in too much causes problems. I've added a small fix.

We allow to zoom in more than natural size. Sorry!

Then why dont add it as a option? Like @ongun-kanat there are more people that could use this, including me

This should be an option.

Why? If you do this, then when you choose an small image as 10 x 10 pixels, you will be hard to see it.


unused bitstream_restriction_struct

https://github.com/MediaArea/MediaInfoLib/search?utf8=✓&q=bitstream_restriction_struct
https://github.com/MediaArea/MediaInfoLib/search?utf8=✓&q=bitstream_restriction
Remove?

It is used by a non open source code, but right it could be removed from the open source version.

Remove or #ifdef MEDIAINFO_... for simple merge?

remove, it will be in the diff for them.


install issues

Hi,
happy new year :)
I tried to install via homebrew, but got the next error:
$ brew install vitobotta/tap/hetzner_k3s
Error: formulae require at least a URL
Please report this issue:
  https://docs.brew.sh/Troubleshooting
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formula.rb:282:in `determine_active_spec'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formula.rb:213:in `initialize'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formulary.rb:308:in `new'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formulary.rb:308:in `get_formula'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formulary.rb:469:in `get_formula'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formulary.rb:561:in `factory'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cli/parser.rb:634:in `block in formulae'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cli/parser.rb:630:in `map'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cli/parser.rb:630:in `formulae'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cli/parser.rb:307:in `parse'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cmd/install.rb:147:in `install'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb:97:in `<main>'

After it, I tried to manually setup the latest binary but got another error:
$ ./hetzner-k3s-linux-x86_64
./hetzner-k3s-linux-x86_64: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory

but Im sure latest libssl-dev is installed:
libssl-dev is already the newest version (1.1.1n-0+deb11u3).
libevent-dev is already the newest version (2.1.12-stable-1).
libssh2-1-dev is already the newest version (1.9.0-2).

What's is the correct way to install via brew?
And what debian packages needed to use the binary packages?
Thanks

Oops, I had forgotten that Homebrew also exists for Linux. The binaries you can install with brew are Mac only at the moment, will update this to include Linux. So for now you need to download the binary.
Weird though, I didn't need to install anything else at least on Ubuntu. You are on Debian I guess?

yes, debian bullseye with those packages:
dpkg -l | grep ssl
ii  libevent-openssl-2.1-7:amd64      2.1.12-stable-1                amd64        Asynchronous event notification library (openssl)
ii  libssl-dev:amd64                  1.1.1n-0+deb11u3               amd64        Secure Sockets Layer toolkit - development files
ii  libssl1.1:amd64                   1.1.1n-0+deb11u3               amd64        Secure Sockets Layer toolkit - shared libraries
ii  libzstd1:amd64                    1.4.8+dfsg-2.1                 amd64        fast lossless compression algorithm

Which libssl.so.* files do you have in your system?

locate libssl.so | grep usr | grep -v docker
/usr/lib/x86_64-linux-gnu/libssl.so
/usr/lib/x86_64-linux-gnu/libssl.so.1.1

I'll test with DEbian Bullseye VM so I can investigate the issue more easily. In the future I will try and compile to a static binary so that you don't need to install these dependencies anymore.

thanks!

Are you using Bullseye server or desktop?

Im using debian server (its a virtualized machine). Tomorrow I will try to complite openssl 3

OK, thx. Will update as soon as I have news. I am gonna try now

Hi, I managed to create a statically compiled binary, so you should no longer need to install dependencies. It works for me. Can you please try the v0.6.6 binary? Thanks

@vitobotta is it expected that it is required to install libevent and bdw-gc as dependencies via homebrew to get v0.6.7 running (at least on Monterey)?

@vitobotta is it expected that it is required to install libevent and bdw-gc as dependencies via homebrew to get v0.6.7 running (at least on Monterey)?

I didn't need to on my two Macs. Only libssh2. Looks like I forgot to add it to the README, will do it now.

Tried to run it, got an error for both:
dyld[93244]: Library not loaded: '/opt/homebrew/opt/bdw-gc/lib/libgc.1.dylib'
  Referenced from: '/opt/homebrew/Cellar/hetzner_k3s/0.6.7/bin/hetzner-k3s'
  Reason: tried: '/opt/homebrew/opt/bdw-gc/lib/libgc.1.dylib' (no such file), '/usr/local/lib/libgc.1.dylib' (no such file), '/usr/lib/libgc.1.dylib' (no such file)

and
dyld[93206]: Library not loaded: '/opt/homebrew/opt/bdw-gc/lib/libgc.1.dylib'
  Referenced from: '/opt/homebrew/Cellar/hetzner_k3s/0.6.7/bin/hetzner-k3s'
  Reason: tried: '/opt/homebrew/opt/bdw-gc/lib/libgc.1.dylib' (no such file), '/usr/local/lib/libgc.1.dylib' (no such file), '/usr/lib/libgc.1.dylib' (no such file)

Tried to run it, got an error for both:

dyld[93244]: Library not loaded: '/opt/homebrew/opt/bdw-gc/lib/libgc.1.dylib'

  Referenced from: '/opt/homebrew/Cellar/hetzner_k3s/0.6.7/bin/hetzner-k3s'

  Reason: tried: '/opt/homebrew/opt/bdw-gc/lib/libgc.1.dylib' (no such file), '/usr/local/lib/libgc.1.dylib' (no such file), '/usr/lib/libgc.1.dylib' (no such file)

and

dyld[93679]: Library not loaded: '/opt/homebrew/opt/libevent/lib/libevent-2.1.7.dylib'

  Referenced from: '/opt/homebrew/Cellar/hetzner_k3s/0.6.7/bin/hetzner-k3s'

  Reason: tried: '/opt/homebrew/opt/libevent/lib/libevent-2.1.7.dylib' (no such file), '/usr/local/lib/libevent-2.1.7.dylib' (no such file), '/usr/lib/libevent-2.1.7.dylib' (no such file)

Probably I have some dependencies already installed. Can you try installing glibc? I need to set up macOS from scratch in a VM to test this

Probably I have some dependencies already installed. Can you try installing glibc? I need to set up macOS from scratch in a VM to test this

I installed libevent and bdw-gc via brew install which fixes it and the tool runs fine (had to change the cli-syntax and update my cluster-config though.. ;)
Do you still want me to install glibc (to test what exactly)?

Probably I have some dependencies already installed. Can you try installing glibc? I need to set up macOS from scratch in a VM to test this

I installed libevent and bdw-gc via brew install which fixes it and the tool runs fine (had to change the cli-syntax and update my cluster-config though.. ;)
I.e: I was just asking to see if we need to add this to the Readme OR if you plan to solve these dependencies differently.
Do you still want me to install glibc (to test what exactly)?

Awesome, I will update the README with your finding, thanks!

Tested, and its working, thanks for fast response!


Kotlin: Updated driver metadata

Updated the driver name to include which driver type. Added Kotlin version to the platform metadata.
JAVA-5539

I reverted the changes to the driver name as they were implicit. Here is an example of the metadata:


S3 waitFor adding extra delay which changes application behavior

Self-service

[ ] I'd be willing to implement a fix

Describe the bug
SDK V2 to V3 migration using codemod is adding extra time which is causing performance issues.
await s3.waitFor('objectExists', param).promise();

transformed by codemod
await waitUntilObjectExists({
           client: s3,
           maxWaitTime: 200
       }, param)

The codemod adds maxWaitTime: 200 which is changing the code behavior and causing performance issues
Steps to reproduce
Try to reproduce using the provided description for command.
Observed behavior
The command waits for 200 seconds which is adding significant delay.
Expected behavior
The code would execute instantly before.
Environment
aws-sdk-js-codemod: 0.26.3
- jscodeshift: 0.15.0
- recast: 0.23.4

Additional context
No response

The maxWaitTime does not cause any performance issues. It's just a default value which is required in JS SDK v3 waiters.
More details in https://github.com/awslabs/aws-sdk-js-codemod/issues/53#issuecomment-1366081340
Would adding the following comment help?
await waitUntilObjectExists({
   client: s3,
   // Maximum wait time is required in waiters.
   // Codemod uses 200 seconds as default.
   maxWaitTime: 200
 }, params)

The performance issues in waiters, if any, may be caused by retry behavior of waiters.
Please create a bug report on aws-sdk-js-v3 repo if you're seeing some concrete differences between v2 and v3 waiters with a minimal repro.

Could you observe difference with SDK V2 and V3 when no object exists? I notice it still waits for 200 seconds which was not case before.

The comment you mentioned would help.

Today, I was able to see that SDK V2 exists immediately when file doesn't exist. Reproduced with "aws-sdk": "^2.1505.0".
const region = 'us-east-1'
const { S3Client, waitUntilObjectExists } = require('@aws-sdk/client-s3');

async function sdkv3(params) {
    const { Bucket, Key } = params;
    const s3 = new S3Client({ region });
    try {
        await waitUntilObjectExists({
            client: s3,
            maxWaitTime: 200
        }, {Bucket, Key})
    } catch (error) {
        console.log("Done with V3")
    }
}

async function sdkv2(params) {
    const { Bucket, Key } = params;
    const AWS = require('aws-sdk');
    AWS.config.region = region;
    const s3 = new AWS.S3();
    try {
        await s3.waitFor('objectExists',{Bucket, Key}).promise()
    } catch (error) {
        console.log('Done with V2')
    }
}

const param = {
    Bucket: 'dev-exportbucket-1nvs7qmdel',
    Key: 'filedoesntexist.json'
  };

sdkv2(param)
// sdkv3(param)


(Pending) support QoS in OVS within Mininet's TCLinks

hi,
this pull request introduces two new switch classes: OVSHtbQosSwitch and OVSHfscQosSwitch which allow one to use Open vSwitch's HTB or HFSC QoS support as well as Mininet's TCLink / TCIntf classes. By using one of these two switch classes, a Linux tc hierarchy is pre-created for Open vSwitch under the TCLink / TCIntf hierarchy. Future Open vSwitch QoS calls then create new queues at an appropriate point in the hierarchy.
Andrew

Hi Andrew, nice job!
Is it possible to merge this branch into mininet master?
I cloned the master branch, insert the OVSBaseQosSwitch, OVSHtbQosSwitch and the OVSHfscQosSwitch classes into the node.py file, and it is working.
The only problem I encountered is if I use Mininet Mid-level API. The mininet.start method calls the OVSSwitch.batchStartup() that reapply link configuration, removing the tc classes. I added batchStartup classmethod to the OVSBaseQosSwitch to skip the link configuration reapply part. Now, it seems to work as expected: I can add queues to the switch with ovs-vsctl commands after Mininet is started.
node.py.txt

Hi，
I try to add qos queue in switch port and use TCLink as well, and I use your added code in Mininet, and it works. However, you say that it doesn't crash when link is TCLink but without options, which means that I can not still define the bandwidth of a given link, such as link = custom(TCLink, bw=10, max_queue_size=100) ? I want to know is there some method for me to use qos queues and TCLink with options. Thanks.
Bo Liu

Hi,
I just use the TCLink to emulate links with restricted bandwidth (10 Mbps in my case).
net.addLink( h1, s1, cls=TCLink, bw=10 )
Then, after the mininet network is started with net.start(), I configure the qos queues with ovs-vsctl:
`
Configure Priority queues in ovs-switch
qos_id = s1.cmd('ovs-vsctl create qos type=linux-htb
queues=0=@be,1=@af,2=@ef -- --id=@be create queue other-config:priority=5
-- --id=@af create queue dscp=10 other-config:priority=2
-- --id=@ef create queue dscp=46 other-config:priority=1').splitlines()[0]
for link in links:
s1.cmd('ovs-vsctl set Port %s qos=%s' % (link.intf1.name, qos_id))
s1.cmd('ovs-vsctl set Port %s qos=%s' % (link.intf2.name, qos_id))
In my case I have three queues with different priorities but not traffic shapping. Then I use openflow to assign the flows to the corresponding queue, for example to use the high priority queue: sudo ovs-ofctl add-flow s1 -OOpenFlow13 priority=10,ip,dl_src=00:00:00:00:00:03,dl_dst=00:00:00:00:00:01,nw_src=<IP_ADDRESS>,nw_dst=<IP_ADDRESS>,actions=set_queue:2,output:1`
I hope that helps.

@cgiraldo hi,
i have downloaded your node.py.txt but it does not work , maybe there is somethig else  i need to modify in other file? i hope that you can show me the details. thank you very much.

Today I found the same problem with QoS in OVS on TCLinks
and found this pull could solve the problem.
But after I added the code in node.py, executed install.sh -n and found the problem still occurred.
I use ovs-ofctl queue-stats it still replied no queues on switch.
It were some wrong on my steps?
If some solved this problem plz let me know, ths!!


xfer https://github.com/users/GregSweats/projects/1/views/1

https://github.com/users/GregSweats/projects/1/views/1

https://github.com/orgs/trxn8r/projects/1


Generated group by clauses fail for some subquery uses

In PostgreSQL the following SQL query that we generate fails:
select
    case when exists (select 1 from tbl_b b where b.a = a.id) then 'A' else 'B' end,
    count(*)
from tbl_a a
group by
    case when exists (select 1 from tbl_b b where b.a = a.id) then 'A' else 'B' end

saying that one has to group by a.id although it already groups by the whole case when statement that contains the column. We already have code in place that can decompose correlated expressions, but up until now this always worked for PostgreSQL. We will have to investigate what goes wrong here.

It appears that PostgreSQL's detection for expression equivalency doesn't work on subqueries... In Hibernate 5.4 you could work around this using group by alias (for dialects that support it), but for other ORM's I am not sure how this could be done. Maybe add another wrapping subquery?
i.e.
select a, count(*) from (
select
    case when exists (select 1 from tbl_b b where b.a = a.id) then 'A' else 'B' end as a,
    *
from tbl_a a
)
group by
    case when exists (select 1 from tbl_b b where b.a = a.id) then 'A' else 'B' end

Hmm, there must be a bug somewhere as we seem to handle this already... https://github.com/Blazebit/blaze-persistence/blob/master/core/impl/src/main/java/com/blazebit/persistence/impl/GroupByExpressionGatheringVisitor.java#L232

Indeed, we messed up here... https://github.com/Blazebit/blaze-persistence/blob/master/core/parser/src/main/java/com/blazebit/persistence/parser/expression/AbortableVisitorAdapter.java#L353


factsource crontab PATH conflicting with other cronjobs

https://github.com/puppet-community/puppet-mcollective/blob/master/manifests/server/config/factsource/yaml.pp#L20
apparently, ENV variables set in crontab are global for all cronjobs. I actually run puppet via cron (https://github.com/theforeman/puppet-puppet/blob/master/manifests/agent/service.pp#L38)
now every Puppet run bloats my PATH variable a little more until it looks like this:
X-Cron-Env: <PATH=/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin:/opt/puppet/bin...

I've always wanted native cron.d support in Puppet, now I have another technical reason for why I think cron.d is superior to crontab -e. I'm personally going to look into using https://forge.puppetlabs.com/torrancew/cron for my in-house modules that use cron declarations. I can't have 1 job declaration polluting another job declaration, it destroys the composability of Puppet modules.

here's an example demonstrating env var handling for multiple cronjobs.
https://gist.github.com/neoice/c482659253b187ad91ba

This is a serious limitation of cron, yes.
But I would argue that the implementation here is flawed. It assumes that refresh-mcollective-metadata should always use a mutation of the PATH as used by the agent. This is a fairly safe assumption, but doesn't necessarily make sense.
Currently not sure how to handle this more cleanly.

the Dell srvadmin tools use this in /etc/profile.d/srvadmin-path.sh:
if ! echo ${PATH} | /bin/grep -q /opt/dell/srvadmin/bin ; then
	PATH=${PATH}:/opt/dell/srvadmin/bin
fi
if ! echo ${PATH} | /bin/grep -q /opt/dell/srvadmin/sbin ; then
	if [ `/usr/bin/id -u` = 0 ] ; then
		PATH=${PATH}:/opt/dell/srvadmin/sbin
	fi
fi

I use a modified script to set an in-house Ruby path, as I was having obnoxious $PATH bloat:
RUBY_PATH=/usr/ruby/2.1.2/bin

if [ -d ${RUBY_PATH} ]; then
  if ! echo ${PATH} | /bin/grep -q ${RUBY_PATH}; then
    PATH=${RUBY_PATH}:${PATH}
  fi
fi

you might be able to do some kind of trickery with a helper script or a custom fact?
is there any reason to not set it explicitly? mcollectived sets it's own PATH environment very strictly. here's the results of env when run via mco:
{:stdout=>      ["TERM=dumb",       "PATH=/sbin:/usr/sbin:/bin:/usr/bin",       "PWD=/",       "LANG=en_US.UTF-8",       "SHLVL=2",       "_=/usr/sbin/mcollectived",       "HOME=/"],     :stderr=>[]}

proposed fix would be:
environment => "PATH=/opt/puppet/bin:/sbin:/usr/sbin:/bin:/usr/bin",

Are you saying we should hardcode it? That would be an approach, and quite pragmatic at that.
Here's my order of preference though:

Follow the script example from your above comment - the manifest can apply pretty much the same logic to decide whether the ${::path} value needs a prefix
Expose the path as a parameter, so that the user can opt to override the default suffix of ${::path}
Actually hardcode a sane value

The original code is by @reidmv apparently. Any thoughts? Pinging @richardc as well.

I assume the intent is so this shebang line https://github.com/puppet-community/puppet-mcollective/blob/master/templates/refresh-mcollective-metadata.erb#L1 which is written in terms of /usr/bin/env finds a ruby from puppet, which only holds valid for PE.
I think it's a bad idea and should be just hardcoded to the $path fact

The intent probably was to make sure the shebang found the right ruby, as @richardc suggests. If that's all it does, maybe the fix would be to remove the environment => parameter from the cron resource and templatize the refresh-mcollective-metadata script to drop a puppet-version-appropriate shebang.
  $ruby_shebang = $is_pe ? {
    true    => '/opt/puppet/bin/ruby',
    default => '/usr/bin/env ruby',
  }

  # Template uses:
  #   - $yaml_fact_path_real
  #   - $ruby_shebang
  file { "${mcollective::site_libdir}/refresh-mcollective-metadata":
    owner   => '0',
    group   => '0',
    mode    => '0755',
    content => template('mcollective/refresh-mcollective-metadata.erb'),
    before  => Cron['refresh-mcollective-metadata'],
  }
  cron { 'refresh-mcollective-metadata':
    command => "${mcollective::site_libdir}/refresh-mcollective-metadata >/dev/null 2>&1",
    user    => 'root',
    minute  => [ '0', '15', '30', '45' ],
  }

That doesn't feel right at all, for non-PE PATH may still need to be set as cron generally runs with a reduced environment.
I think the correct thing here is leave the template alone, and just set PATH to $::path, with no attempt to extend it.
  cron { 'refresh-mcollective-metadata':
    command => "${mcollective::site_libdir}/refresh-mcollective-metadata >/dev/null 2>&1",
    user    => 'root',
    path    => $::path,
    minute  => [ '0', '15', '30', '45' ],
  }

Agree, but do add a parameter for this. It is very likely that mco should use the same path as puppet but I would not like to commit this assumption to actual module logic.

Even if mco and puppet are in the same directory, it doesn't hold that ruby is, and that's what it's important for the either the cron to find or the template to be parameterised in terms of.
Under puppet-agent mco and puppet are in both /etc/puppetlabs/bin and /etc/puppetlabs/puppet/bin but only the latter exposes a ruby binary (precisely so you can safely add /etc/puppetlabs/bin to a shell without getting a surprise ruby)

Which gives me another idea: There are facts to identify PE, right? Should the module respect those and do the "right" thing to the best of its knowledge?

I think the template munging is the correct way forward, since it doesn't pollute the environment of the cron. It is a limitation of standard unix cron for sure.

Can we set the path for the cron job (which it sounds like is desirable) using something that doesn't leak into other jobs? e.g.
cron { 'refresh-mcollective-metadata':
    command => "PATH=${path} {mcollective::site_libdir}/refresh-mcollective-metadata >/dev/null 2>&1",
    user    => 'root',
    path    => $::path,
    minute  => [ '0', '15', '30', '45' ],
  }

It feels like we have two issues we're trying to solve for.

Ensure that a correct path environment variable is set for the script to use while running
Ensure the correct ruby executable is used when invoking the script

In the previous implementation the path was munged to try and increase the odds the right ruby version was used, and it was set globally. This was messy and inelegant and the side effects of that are I believe what prompted the issue to be opened.
Although I'm open to alternatives, right now it seems to me like the best path forward (if it's technically valid) would be to add a path to the individual cron command as given above, and separately determine which shebang line to use to ensure the correct version of ruby is used to invoke the script.

So I merged this, https://github.com/puppet-community/puppet-mcollective/pull/217 maybe that was a mistake? Should we revert and get consensus?

I added another proposed PR. #218 re-implements a PATH variable as part of the refresh-mcollective-metadata invocation, but in a manner that won't leak outside of this cron job.
The PR leaves in place for now the shebang line templating, which causes the shebang to be #!/opt/puppet/bin/ruby when running under Puppet Enterprise and #!/usr/bin/env ruby otherwise.
Open for feedback.

closing with the  merge of #218


[no-unused-modules] Error with ESLint configuration non-standard name

The import/no-unused-modules rule doesn't work when the ESLint configuration file doesn't have a standard name. In my projects, I group the configuration files in a directory to avoid having too many files in the root (example with Cast Kodi).

index.js:
console.log("foo");

my_eslint.json:
{
    "plugins": ["import"],
    "parserOptions": {
        "sourceType": "module",
        "ecmaVersion": 2022
    },

    "rules": {
        "import/no-unused-modules": [2, { "unusedExports": true }]
    }
}

package.json:
{
    "name": "testcase",
    "version": "1.0.0",
    "type": "module",
    "private": true,
    "dependencies": {
        "eslint-plugin-import": "2.27.4",
        "eslint": "8.31.0"
    }
}

Run this command: npx eslint -c my_eslint.json index.js
Oops! Something went wrong! :(

ESLint: 8.31.0

ESLint couldn't find a configuration file. To set up a configuration file for this project, please run:

    npm init @eslint/config

ESLint looked for configuration files in /home/regseb/testcase and its ancestors. If it found none, it then looked in your home directory.

If you think you already have a configuration file or if you need more help, please stop by the ESLint chat room: https://eslint.org/chat/help

This seems like an issue with eslint itself, and not with eslint-plugin-import - this plugin doesn't do anything with eslint config.
(typically you'd only ever have one eslint config file in any repo, at the root, and you'd use overrides to configure subdirectories, but either way it's specific to eslint)

@ljharb I created an issue at ESLint and eslint-plugin-import use indirectly ESLint config:

https://github.com/eslint/eslint/issues/16787

The import/no-unused-modules rule indirectly loads eslint configs by using eslint's internal module FileEnumerator. This module isn't intended to be used outside eslint package. When used by eslint, FileEnumerator receives full execution context that includes processed CLI options. The error you're getting is caused by the rule not providing the context to the FileEnumerator instance it's using, so it works as if -c my_eslint.json is not specified and therefore looks for .eslintrc.* config files. We can discuss in https://github.com/eslint/eslint/issues/13481 how this rule could work with the new config system, but until then it seems incompatible with the -c usage.

Yes, everything uses it indirectly - the bug is only with something that uses it directly.

Reopening per the comment on the linked issue.

This also seems to be an issue with the new eslint flat config file. When I enable this rule, I get the message:
Oops! Something went wrong! :(

ESLint: 8.38.0

ESLint couldn't find a configuration file. To set up a configuration file for this project, please run:

    npm init @eslint/config

ESLint looked for configuration files in [<rootDir>]/[<childDir>] and its ancestors. If it found none, it then looked in your home directory.

If you think you already have a configuration file or if you need more help, please stop by the ESLint Discord server: https://eslint.org/chat

Flat config is in the root directory of the project, with no -c flag provided in the eslint command. Without this rule, everything runs fine, but as soon as I enable it, the above error flags up.


HTML comments can carry block labels

Fix #205
I kept the syntax of the , separating each label.
But when printing block I chose to only print the labels according to this HTML comment syntax, otherwise we would have to remember what was the original syntax (for each set of label) and keep it somewhere in the block type, which is not very pretty. Hence the huge diff in the tests.
Changelog to be written later, depending on what we agree to keep/change from the current behavior.

Changing the default printing of blocks is a breaking change so we can't get that in. Eventually we will deprecate the inline labels but in the meantime both should be supported and printed as they were parsed.

Changing the default printing of blocks is a breaking change so we can't get that in. Eventually we will deprecate the inline labels but in the meantime both should be supported and printed as they were parsed.

I now keep the old labels (called legacy_labels in the code)


CVE-2022-1471-Fix

Updated Tests For YAML Changes CVE-2022-1471

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


Changed all mp2t strings to MP2T

Pull request followed up by Issue #1991

I haven't yet pushed all final changes. Last commit is not good because it involves transforming codecs with mime type to lowerCase. I didn't have enough time these few days to work on this because of personal obligations. Hopefully will do it on the weekends.

Closed in favor of another fix, out soon.


wrong Troubleshooter path

In article there is a path to Troubleshooter tool on Windows machines shown - "C:/Packages/Plugins/Microsoft.Azure.Monitor.AzureMonitorWindowsAgent/{version}/Troubleshooter". But on my test Windows 11 machine the path is diferent - "C:\Program Files\Azure Monitor Agent\Troubleshooter".

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

ID: 07749c1a-667f-289d-3da0-ff81494ae439
Version Independent ID: b022dc31-6f1d-a35d-5ffb-0535dad9dbda
Content: Use Azure Monitor Troubleshooter - Azure Monitor
Content Source: articles/azure-monitor/agents/use-azure-monitor-agent-troubleshooter.md
Service: azure-monitor
Sub-service: agents
GitHub Login: @guywi-ms
Microsoft Alias: guywild

@ksagala Thanks for your comment! We will review and provide an update as appropriate.

@ksagala Thanks for sharing this feedback! I was not able to reproduce the issue. Did you install the agent from the portal? Is the agent installed in this path on your machine? C:/Packages/Plugins/Microsoft.Azure.Monitor.AzureMonitorWindowsAgent  @JeffreyWolford do you have any insights?

We recently change the documentation to include a script to help find the right version of the trouble shooter to use, since it is version sensitive.  That script uses the RegKey to find the location of the agent.  See here https://learn.microsoft.com/en-us/azure/azure-monitor/agents/use-azure-monitor-agent-troubleshooter#run-windows-troubleshooter
here is the full script.
$currentVersion = ((Get-ChildItem -Path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Azure\HandlerState"  | where Name -like "*AzureMonitorWindowsAgent*"
| ForEach-Object {$_ | Get-ItemProperty} `
| where InstallState -eq "Enabled").PSChildName -split('_'))[1]
$troubleshooterPath = "C:\Packages\Plugins\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent$currentVersion\Troubleshooter"
Start-Process -FilePath $troubleshooterPath\AgentTroubleshooter.exe -ArgumentList "--ama"
Invoke-Item $troubleshooterPath

@ksagala Thanks again for your feedback and thanks @JeffreyWolford for addressing this issue.
#please-close


Allow CorrelationalDecoder to use pre-generated statmaps

Currently, to do decoding, you need to provide a coordinate based dataset, and generate statistical maps for each annotation, prior to being able to decode your image of interest.
Given that generating the stat maps for each annotation is highly time consuming, and could be re-used across users, we should allow CorrelationalDecoder to use pre-generated maps, which could be made publicly available for different versions of NeuroSynth, to allow faster decoding of target images.
This essentially allows people to run Neurosynth's online decoding locally, but also w/ newer datasets

in Neurovault, instead of using images as the source for pre-generated decoding, they used a re-sampled set of images saved into a single hd5 file, with each column being a different image.
I initally thought we might want to support this, but unless there are major performance or space advantages, I don't think its urgent


unable to finish transform, error:  Failed to parse declaration "boxShadow: 1px 1px 5px 2px rgba(188,183,183,0.15)"

trying to parse my css file and got the above error.
Here is the section of my css file:
.Schedule_Export_Img {
padding: 40px;
cursor: pointer;
background-color: #FFFFFF;
box-shadow: 1px 1px 5px 2px rgba(188,183,183,0.15);
opacity: 0.5;
}
.Schedule_Export_Img_Selected {
opacity: 1;
box-shadow: 1px 1px 5px 2px rgba(188,183,183,0.5);
border: 1px solid #F1EFEF;
}

Please check the documentation for css-to-react-native-transform and css-to-react-native. You can open an issue there if needed, this tool is just wrapping up those and doesn't hold the logic for the parsing.


Allow dpkg-shlibdeps flags or Debian rules file

Hello,
I can't build a Debian package with private shared libraries. I wish to put them in a separate /usr/lib/mylibraries directory.
dpkg-shlibdeps: warning: cannot find library library.so needed by /workspaces/src/myplugin/bin/library2.so dpkg-shlibdeps: error: cannot continue due to the error above Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file. To help dpkg-shlibdeps find private libraries, you might need to use -l.
With a regular debhelper package, you can give dpkg-shlibdeps the path of the private libraries:

With rules file:
#!/usr/bin/make -f #export DH_VERBOSE = 1 %:   	dh $@ override_dh_shlibdeps:   dh_shlibdeps -l /usr/lib/my-libraries

With flags:
dpkg-shlibdeps -l /usr/lib/my-libraries
A way to implement a Debian Rules file would be really useful.

Any fixes, upcoming features and etc?
Thank you in advance. :)

If I understand correctly, the rules file is for dh build, and it's typically a makefile. I don't see how that would be used for Cargo builds. Cargo-deb doesn't use dh, and it's more rooted in the side of Rust/Cargo, than Debian's packaging tooling.
If you're familiar with Debian's package tooling, maybe debcargo would work better?

Ideally I'd love cargo deb work automagically out of the box, without extra flags or config. Does your library2.so contain references to /usr/lib/my-libraries that something like ldd could read? It'd be cool if the path could be auto-detected.
Or maybe you're setting LD_LIBRARY_PATH that I could forward to dpkg-shlibdeps?


PROD test environment gets stuck sometimes at block heights for Coinbase payouts

Agora version v0.24.0 was deployed and first got stuck at block height 3743, this is the block before payout cycle 26.
After 3 days it started generating blocks until getting stuck again as payout cycle 69 was about to end at height 9935.

PROD environment is stuck again at block 2303.
As 2304 is 16th payout block there must still be something wrong with reaching consensus during the payout blocks.

Fixed it seems!


Bootstrap Aggregation

Following on from the discussion in issue #199 here is an implementation of Bootstrap Aggregation following the approach laid out there. There is also an example showing how the provided methods can be used together with the existing linfa-trees package to implement a Random Forest.
Outside of the linfa-ensemble package the only required change was to factor the trait FromTargetArray to create an additional trait FromTargetArrayOwned. This was done to allow owned data to be used without needing to specify a lifetime, which was impossible under the previous FromTargetArray trait.

Codecov Report

Merging #229 (d4c8658) into master (d4bd9c9) will decrease coverage by 0.49%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #229      +/-   ##
==========================================
- Coverage   55.44%   54.95%   -0.50%
==========================================
  Files          95       96       +1
  Lines        8774     8800      +26
==========================================
- Hits         4865     4836      -29
- Misses       3909     3964      +55

Impacted Files
Coverage Δ

algorithms/linfa-ensemble/src/ensemble.rs
0.00% <0.00%> (ø)

src/dataset/impl_dataset.rs
41.60% <ø> (-0.35%)
:arrow_down:

src/dataset/impl_targets.rs
21.31% <ø> (ø)

src/dataset/mod.rs
88.31% <ø> (-0.65%)
:arrow_down:

...gorithms/linfa-preprocessing/src/linear_scaling.rs
72.03% <0.00%> (-4.24%)
:arrow_down:

algorithms/linfa-bayes/src/base_nb.rs
62.96% <0.00%> (-3.71%)
:arrow_down:

src/composing/multi_target_model.rs
64.44% <0.00%> (-3.00%)
:arrow_down:

algorithms/linfa-kernel/src/lib.rs
60.43% <0.00%> (-2.84%)
:arrow_down:

algorithms/linfa-svm/src/permutable_kernel.rs
45.12% <0.00%> (-1.87%)
:arrow_down:

...lgorithms/linfa-clustering/src/optics/algorithm.rs
48.53% <0.00%> (-1.76%)
:arrow_down:

... and 27 more

Continue to review full report at Codecov.

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

Hi!
Could you please guide me as to what is remaining in this?
Thank You!

Merge/rebase with the latest master and address the open review comments. That's pretty much it.


the following arguments are required: users

hi
i have this problen for any scipts work with users.
like example : like_users.py: error: the following arguments are required: users
how can i fix it?

this needs to be launched from command window. I use bats IE
like_users.py  -u "username" -p "password" user1 user2

like_users.py -u "mortezaer" -p "morison12390" user1 user2
Traceback (most recent call last):
File "C:\Users\user\Desktop\bot4\instabot-master\examples\like_users.py", line 14, in
from instabot import Bot
File "C:\Users\user\Desktop\bot4\instabot-master\examples../instabot_init_.py", line 1, in
from .api import API
File "C:\Users\user\Desktop\bot4\instabot-master\examples../instabot\api_init_.py", line 1, in
from .api import API
File "C:\Users\user\Desktop\bot4\instabot-master\examples../instabot\api\api.py", line 11, in
from tqdm import tqdm
ImportError: No module named tqdm
this error will be show.i import tqdm
and i use python 3.6.2

Pip install -r requirements.txt
On Sep 2, 2017 2:01 AM, "morier"<EMAIL_ADDRESS>wrote:

like_users.py -u "mortezaer" -p "morison12390" user1 user2
Traceback (most recent call last):
File "C:\Users\user\Desktop\bot4\instabot-master\examples\like_users.py",
line 14, in
from instabot import Bot
File "C:\Users\user\Desktop\bot4\instabot-master\examples../instabot_
init.py", line 1, in
from .api import API
File "C:\Users\user\Desktop\bot4\instabot-master\examples../instabot\api
init_.py", line 1, in
from .api import API
File "C:\Users\user\Desktop\bot4\instabot-master\examples../instabot\api\api.py",
line 11, in
from tqdm import tqdm
ImportError: No module named tqdm
this error will be show.i import tqdm
and i use python 3.6.2
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/instagrambot/instabot/issues/321#issuecomment-326732221,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AT_enUQgJ6GnZT3YnfAm-6MyXUfiM4ODks5seRlrgaJpZM4PJ8pH
.

I'm running in the Python shell and I have the same issue. tqdm is installed with sudo pip, and I've also run sudo pip install -r requirements to double-check.
Dependancies are installed, but I get the same error above from @morier
ImportError: No module named tqdm

me too

May be your pip and python was bonded to different python versions. Try to use e.g. pip2 and python2


string.pickle makes some bad assumptions

I wonder whether we should have a special metamethod for pickle?  The assumption that tostring (object) will generate a string that can be passed to functional.eval doesn't even hold true for the objects we provide in stdlib.
Two options:

Objects that can be pickled have a __pickle metamethod (analogous to Python's __repr) that outputs a constructor for the object being pickled (including a require "appropriate.module".constructor {args} rather than assuming "appropriate.module" is already loaded).
We have to be careful that __tostring does double duty with the above.

I'm leaning heavily towards (1) because, among others, it makes a cannot pickle error easy to determine and produce.

Bad assumptions are gone.  But the API requires too much gymnastics between __pickle and __tostring when creating new object prototypes... more work required.


Errors from root aren't bubbled to root <ErrorBoundary>

What version of Remix are you using?
1.3.1
Steps to Reproduce

Create a new Remix app.
Define a component that has a useFetcher() that calls an API that throws an error.
Import and use that component in app/root.tsx.
Define an <ErrorBoundary> function in app/routes/index.tsx.
Open the app.
Open the browser console and see how the app continuously requests that API.

I've created a repro of this using create-remix@latest:

Clone it:

$ git clone https://github.com/nicholaschiang/fetcher-error.git

Install deps:

$ cd fetcher-error && yarn install

Start dev server:

$ yarn dev

See error:

Expected Behavior
Errors from components within <Root> should bubble up to the <ErrorBoundary> defined and exported from app/root.tsx.
Actual Behavior
Errors from components within app/root.tsx are shown in the nested <ErrorBoundary> defined in app/routes/index.tsx which causes an infinite loop (as <Root> continues to be rendered) that endlessly calls the erroring API.

Temporary fix is to just move that component outside of app/root.tsx and into app/routes/index.tsx.

Hi @nicholaschiang, would it be possible to create a failing PR, as described in the issue template?
This will help the team tremendously!

I can reproduce this problem on my side. But there is not <ErrorBoundary> defined in root.tsx @nicholaschiang

@F3n67u even if you do put an <ErrorBoundary> there, it won't be called (the nested one will be called).

@nicholaschiang Tested on 1.11.1, not reproducible anymore 👍🏼


Add customMessage field for each rule in detekt-config.yaml

Expected Behavior
add a customMessage field in the configuration file for each lint rule; allow substitution variables for the URL links to the original Detekt help pages.
Current Behavior
Detekt's line error messages are static to the rule.
Context
Sometimes we want to add additional context to an error related to the codebase or maybe a more detailed comparison about how to use it in our codebase.  E.g., the coroutine dispatcher inject rule...we would be able to add an example of how to use it in our codebase.

Are you referring to custom rule? If so, you can achieve this exact behavior by using valuesWithReason in your config fields:
https://github.com/detekt/detekt/blob/e41f9f23d5b5c86f86f41d512563eea8931665e3/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/ForbiddenMethodCall.kt#L71
Some of the Detekt rules use this feature like ForbiddenMethodCall

And if you mean to change the description for a current rule on detekt that could be made with a plugin. ReportingExtension is what you are looking for. That API gives you all the findings that detekt found and let you manipulate them.
I wouldn't implement something like that on detekt because I think that few people will use it but it should be doable with an extension and we could link it on our marketplace if someone else want to use it.

I mean for current rules, not custom ones (hence the InjectDispatcher example).
The ReportingExtension looks like it might be useful.
Any docs or examples?  I couldn't find anything on the doc site or a test sample on how to use it...

You are right, we don't have too much documentation about that. Luckly the baseline mechanism on detekt is made using it so there are examples.

https://github.com/detekt/detekt/blob/main/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/baseline/BaselineResultMapping.kt
https://github.com/detekt/detekt/blob/main/detekt-core/src/main/resources/META-INF/services/io.gitlab.arturbosch.detekt.api.ReportingExtension

Those are the two key files that make this work. The complete implementation of baseline is here: https://github.com/detekt/detekt/tree/main/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/baseline
I must say that I never used this API so any help with the documentation is also welcome.

This issue is stale because it has been open 90 days with no activity. Please comment or this will be closed in 7 days.

Closing as this can be archived with a third party plugin. If you end up implementing it, please add it to our marketplace so anyone can use it.
Also we are more than happy to receive PRs or issues to improve specific rule messages.


Multiple redefinition errors still occurring

Hi, sorry to be a pain but I'm still getting multiple redefinition errors in C++. Unfortunately your test does not catch these because you aren't including all of your includes in them, only the top level.
If you update the tests/redef_X.cpp files to include all headers, the test breaks again:
#include <libcouchbase/couchbase++.h>
#include <libcouchbase/couchbase++/views.h>
#include <libcouchbase/couchbase++/query.h>
#include <libcouchbase/couchbase++/endure.h>
#include <libcouchbase/couchbase++/logging.h>
#include <libcouchbase/couchbase++/row_common.h>
#include <libcouchbase/couchbase++/status.h>

Hi, I also have the same problem, by define those function in headfile such as views.inl.h with inline the problem was solved.

Such as:
inline ViewRow::ViewRow(Client& c, const lcb_RESPVIEWQUERY *resp) {     assert(! (resp->rflags & LCB_RESP_F_FINAL) );     m_key = Buffer(resp->key, resp->nkey);


Please add to design category: Photo Multiverse

https://chat.openai.com/g/g-ZctQCI6MG-photo-multiverse

Addressed


MGMT-18103: Modify existing go code to support api and worker servers

Note: this PR doesn't contain any changes in Makefile, Dockerfile, and deployment scripts.
The main idea of this PR is to separate the existing server to api, worker, and periodic.  It is based on the flow in TaskManager.  All logic behind the channel listeneres is now handled by the worker server. The api server is the one listening to web interface and executes the API commands.
The periodic server periodically wakes up and executes periodic tasks.
Currently some of the code is duplicated.  Eventually the duplicated old code will
be removed.
As mentioned, the server was split to 3 servers:

api: It runs the api.  Provides rest api endpoint to the system based on the swagger defined api.
worker: provides worker(s) handling tasks initiated by any of the components in flightctl.  It is a process that runs thread(s) listening to AMQP queue.
periodic: runs periodic tasks.  The plan is that it will be invoked by a CronJob.

The cut-off point between api and worker is what is currently implemented in TaskManager as channels.  So TaskManager was split between the processes.  TaskManager will eventually be removed.
Some of the code was partially duplicated. Mainly:

The initiation of the processes.
The callbacks in TaskManager were copied and modified to a struct which implements only these callbacks.  This struct called callbackManager.
Currently, each of the threads handling the channels contains handling when a message arrives.  The code was extracted to a different function only handling the message.  Example:
https://github.com/flightctl/flightctl/blob/58b7cf41fcc565a8996ddf8a5ec2806b0e7b470e/internal/tasks/fleet_rollout.go#L42-L73

And
https://github.com/flightctl/flightctl/blob/58b7cf41fcc565a8996ddf8a5ec2806b0e7b470e/internal/tasks/fleet_rollout.go#L17-L39
Eventually the first will be removed.

why separate processes vs separate goroutines and what are the tradeoffs?

In general you can see the reasoning for it here: https://issues.redhat.com/browse/MGMT-17935 .  There two main reasons for it:

Scalability: handle more load and split it across multiple node (if available).
Persistence: Using AMQP queues will enable us to avoid messages in flight loss in case that server goes down when there are still messages in flight.

why now?

The reasoning was that now will be easier than later when there will be much more code involved.

@avishayt do you want to add your opinion?

My main motivation was to nail down the system architecture earlier rather than later. @hexfusion, what complexity concerns you?

My main motivation was to nail down the system architecture earlier rather than later. @hexfusion, what complexity concerns you?

Just high level I am asking why :), this is a fairly large architectural change without a lot of context. I am probably missing the design doc which would answer these questions. From the top of my head adding separate processes potentially adds.

health,liveness checks (how do you start this safely)
graceful termination synchronization concerns (how do you shut this down safely)
upgrade complexity (version skew of components)
testing/debug/demo complexity involved with any multi-process system
additional metrics endpoints

Now this could all be justified it's just hard to review that without more details, differing to @fzdarsky

I need to review with more care, just had a diagonal read (Friday afternoon ...) I looks good in general to me. I would like to see this deployed in helm + e2e, containers built etc.
A comment about the CronJobs, the design was made so K8s is an optional comment. How can we make that work without CronJobs?

A comment about the CronJobs, the design was made so K8s is an optional comment. How can we make that work without CronJobs?

I will move to regular deployment

Based on hexfusion concerns. Could we make this design run inside the flightctl-server for now. We could start them as multiple co-routines (i.e. https://github.com/flightctl/flightctl/pull/303/files#diff-c3691d43252f14347ffb6d535b0a739859e0031a33d3bfefcfe552a7d626e5ccR98) . Then after we have our demo we would be ready to separate in multiple deployments.

Could we make this design run inside the flightctl-server for now

Actually it works for me with multiple processes.  I also wanted to keep the server with old functionality until we decide it is not needed.
Changing the mechanism might introduce other problems that we wouldn't face otherwise.  So my preference is to keep it as is.  We will be able to run both configurations until we decide the the new is ready to be used.

Could we make this design run inside the flightctl-server for now

Actually it works for me with multiple processes. I also wanted to keep the server with old functionality until we decide it is not needed. Changing the mechanism might introduce other problems that we wouldn't face otherwise. So my preference is to keep it as is. We will be able to run both architectures until we decide the the new is ready to be used.

Ack, I understand what you mean. I am good as long as we create the new helm charts/e2e/bash scripts and remove the old server code to maintain proof in e2e that this continues to work. I am fine if we do that part in a 2nd PR

If anyone wants to play with it, here is a branch containing deployment scripts:
https://github.com/ori-amizur/flightctl/tree/testing
The deployment scripts will be added in the next PR

/retest

You need to rebase I believe

/lgtm

/retest


Consider publishing format_changeset as a crate

I just copied format_changeset.rs verbatim into a repo (cf. https://github.com/rust-lang-nursery/rust-clippy/pull/2384) to get your fancy diff output without the assert/panic part :)
Maybe it'd make sense to create at difference-formatters crate that contains, well, some formatters for text diffs using difference?

Sorry for answering late. Sounds reasonable, but so don't want to maintain another crate right now.
But if anyone else out there does, I would consider using this as a dependency. :-)

Note to all: why is this useful? Because unit tests can now return Results, not only panick.


Performance counters and stats

Migrated from earlier discussions. See #30.
Replicated below (from @pervazea ):
I don't think the design in this PR is suitable for building upon. In other words, I'm saying we should not merge this PR. So, rather than comment on the implementation, I'm going to step back to design, requirements and use cases. I don't have answers for everything.
Questions

Do we want statistics only in debug mode or also in release mode? IMO even in release mode you need stats for monitoring and understanding what the system is doing. Depending on the amount of overhead in debug mode, the behavior can be quite a bit different in release mode. Further, it would possible and reasonable to feed stats into the self-learning portion, if we so chose.

How are stats collected, reported, used? IMO the current design is lacking in this area.

How are stats aggregated?

Do we need to clear stats? Normally yes, you'd want a method to clear stats. You can cheat and build in something to collect and diff stats. Not as nice though.

Do we want only counters, or also also include support for time durations? One could usefully start with just the former.

Requirements

Cost of keeping stats should be minimized.
If stats are "disabled" or compiled out, the resulting overhead on the system should be zero.
Stats should be available in human friendly form as well as in API / machine consumable form.
A mechanism should be provided for determining available stats.
A mechanism should be provided for dumping selected stats.
It is preferred that stats aggregation is part of the design and built into the system rather than bolted on externally.

Examples of stats usage

Codegen cache. Stats kept for this might include:

No. of inserts into cache
No. of deletions from the cache
Lookup in cache
Found in cache (so one can determine cache hit rate)

There would (I assume) be a single instance of the codegen cache class, so no stats aggregation would be needed.

Network module stats. First, my assumption would be that the system has multiple network threads, so aggregation of stats would be needed. Each network thread or network class instance might keep:

No. of requests received
No. of requests completed
No. of JDBC requests
No. of prepared statements handled
Text mode / marshaling request
Binary mode / marshaling request

A possible scenario might be that one has a test that uses prepared statements:

Run the test
Query for and dump out aggregate network stats. These display that we successfully execute the expected number of JDBC, prepared statement requests. All of them text mode.
Clear the stats.
Modify the test and increase the number of prepared statement invocations. Run the test.
Dump network aggregate stats again. Expected result would be that now you see some number of text mode requests and some number of binary mode requests.

Design outline
How stats might be implemented. Not necessarily complete or optimal.
Declaring and keeping stats

Stats variables are defined in the class declaration. (Omit discussion of public, private, friend etc). These should be separated from the other declarations, so it is clear what variables are stats versus what is internal state. Examples would be needed on how declarations should look.

Stats are maintained by the class methods. Increment might be simply, var++.  Therefore if you have multiple instances of a class, they each keep their own stats.

Class constructor

Would need to initialize stats (e.g. to zero)
Would need to register stats with "stats registry". See later.

Class destructor

Would need to synchronize with stats collection, prior to completing destructor. Details to be fleshed out.

We'd need to group stats logically in some way. Could be:

stats per class, e.g. codegen_cache_stats, network_stats, worker_stats etc.
Could have some notion of module. This adds some layering / complexity.

Stats collection

There needs to be a way of getting stats. If there is a central registry of stats, stats collection could iterate or lookup the registered stats and retrieve the desired set. Where multiple instances exist, collection would aggregate the stats for you.

Stats collection needs to be made thread safe. Need to ensure that stats are not deallocated while the collector is trying to read them, therefore synchronization is needed between class destructors and stats collection.  Possible sync. on class constructors too.

The goal is that keeping stats should have absolutely minimal overhead, so you can afford to have stats be always on. Collecting stats can be more expensive. Collection only done on demand, so it is OK if this is a bit expensive. It is OK if synchronization is needed here, as long as it doesn't affect stats keeping in normal operation.

Stats registry
Haven't thought through all the details...

You need some way to ask, what stats does the system have?
Retrieve and give me back a set of stats of type "x".
Upon creating a class instance, it would register the stats it keeps. Maybe register the type and address of its' stats.
When a class is destroyed, it would de-register its stats structure.
This might be a suitable map structure...

@yangjuns will evaluate #82 and #107 to pick the one we want to use.

@yangjuns came back reporting #107 is better. Will close #82.


Manually deactivate dropdown with new hide() method

In https://github.com/thelounge/thelounge/issues/2209 we ran into a case where we want to deactivate the dropdown manually with an event external to textcomplete. This change adds a public hide() method to do just that.

LGTM

I'm going to release next version after #140

v0.17.0 was released


Nearest route insert

This PR:

[x] Is part of #307.
[x] Adds and passes relevant tests.
[x] Has well-formatted code and documentation.

Benchmarks on VRPTW
This PR (35822ce2c521af6e16c05361d7fb2b9593d3f080; job ID 4312717):
                MEAN      MIN       MAX   COV
      inst
obj   C1     41382.8  41359.0   41417.6   0.1
      C2     16205.4  16202.1   16208.6   0.0
      R1     47242.3  47201.0   47261.5   0.0
      R2     27834.7  27784.9   27867.9   0.1
      RC1    44209.9  44175.7   44226.0   0.0
      RC2    23352.6  23340.9   23361.3   0.0
iters C1     68355.8  60014.2   78929.3   8.6
      C2    115047.8  98367.5  128450.3   7.4
      R1     37874.7  34500.8   42683.1   6.5
      R2     55673.0  46289.7   69694.0  12.3
      RC1    45200.2  40464.6   58835.6  12.4
      RC2    57592.4  51078.2   65492.7   6.8

More or less main (the table below is from #376):
                MEAN       MIN       MAX  COV
      inst
obj   C1     41380.7   41352.0   41401.0  0.0
      C2     16198.2   16194.4   16205.4  0.0
      R1     47254.0   47213.0   47271.1  0.0
      R2     27800.3   27773.5   27849.7  0.1
      RC1    44214.4   44186.6   44237.6  0.0
      RC2    23306.1   23282.3   23329.2  0.1
iters C1     66974.7   64859.8   69946.0  2.7
      C2    113820.2  110464.3  117223.8  2.0
      R1     40993.1   39720.0   42365.3  2.6
      R2     55481.5   51315.4   61336.5  5.5
      RC1    43842.9   41395.4   48010.0  4.8
      RC2    56753.7   49863.6   59919.6  5.7

Notes:

It is essential that you add a test when making code changes.
This keeps the code coverage level up, and helps ensure the changes work as intended.
When fixing a bug, you must add a test that would produce the bug in the master branch, and then show that it is fixed with the new code.
New code additions must be well formatted. Changes should pass the pre-commit workflow, which you can set up locally using pre-commit.
Docstring additions must render correctly, including escapes and LaTeX.

@leonlan I think we should support repair operators that take lists of routes, not whole solutions. I've been thinking about this a bit, and that seems to me the most general approach: let users provide the routes. If they want to pass the routes beloning to a solution, then sol.get_routes() still lets them do that; and in other cases, routes give them more flexibility because then empty routes can explicitly be passed.
I'm not going to change greedy repair in this PR, but I think we should do so.

I'm not adding this back into SREX, because it doesn't seem to matter much and the current implementation is simpler.

I would like Solution -> Solution, but we need the ability to at least increase the number of routes somehow. Else we're unnecessarily limiting any LNS to never increase the number of routes, which seems weird to me (if the vehicles are available, why not?).
But Solution currently isn't equipped to do that. So we'd have to change that first, and then settle on a single interface for the repair operators.


progress output during final liveness check

In a model with a large state space and a non-trivial liveness property, the final liveness check is lengthy and checking appears to stall while it is going on. We could alleviate some user confusion here by outputting progress during this time.
Note that there is a compounded problem going on here:

we don't have an efficient algorithm for liveness checking
the final liveness check is done single threaded
there is no progress output at present

The output commit in ce162be is still not useful. On the given model, this still results in a 5+ hour stall with no output. Re-opening.

As of eef60ad5cf61d1a8cac2d1dbcf63581da2590e24 this is done.


android-apt is officially obsolete

https://bitbucket.org/hvisser/android-apt/wiki/Migration

Added notice in readme


Fix misplaced spread operators that cause NEDB operations to throw a TypeError

Resolves #23
This was due to some spread operators being used on Map<string, object> to set values that later code uses like an Iterable<object>. But Map<string, object> is actually Iterable<[string, object]>, so the CLI was attempting to read Array#name.
Would it be useful for me to write a PR that improves the detail of the JSDoc type annotations of this package? In other words -- to get it to the point where a static type check can nip this sort of thing in the bud, even without a build step. (and, I mean, I don't think that would take me much longer than I spent puzzling over this bug :wink: )
EDIT: Oh, whoops, looks like it's addressed in #15 :facepalm: Honestly didn't occur to me to look for a fix for a "showstopper" bug in a PR for a new feature. Might still be of some use if you want to do a bugfix release ahead of the new feature, though?
My question about submitting a PR for deeper JSDoc annotations still stands, regardless :slightly_smiling_face:

Thank you for your contribution. Unfortunately there were some additional issues:

The proposed change on line 260 breaks the use of discoverPackageDirectory in _handleWorkon.
Some packages do not have a packs array, so the resulting flattened packs structure could contain undefined elements, causing errors to still be thrown in _unpackNedb.

The issue has been resolved separately, here: e7bb3ab85a5f815432ca3df1adec505ec4010311


Support submodule rubygem which hosted on github enterprise

I'm trying to introduce dependabot into my ruby project on github enterprise, but it didn't work for my project.
The project is using internal rubygem which hosted on github enterprise. The gem is installed by using git submodule.
When I execute dependabot-script, I got Dependabot::PathDependenciesNotReachable error. There is my code structure example below.
Project tree
project
├── app
├── mygem
├── Gemfile
└── .gitmodules

Gemfile
gem 'mygem', path: './mygem'

.gitmodules
[submodule "mygem"]
        path = mygem
        url = git@ghe.example.com:iguchi1124/mygem.git

Now, I find out that DependaBot::Source class doesn't supports github enterprise source, and so that why my submodule gem isn't processed as submodule source.

https://github.com/dependabot/dependabot-core/blob/08c679d/common/lib/dependabot/source.rb
https://github.com/dependabot/dependabot-core/blob/d5240b0/common/lib/dependabot/file_fetchers/base.rb#L181

Then I wrote a patch that to be able to pass github enterprise url to Dependabot::Source.from_url method.
https://github.com/dependabot/dependabot-core/compare/master...iguchi1124:support-github-enterprise-submodule
But there are a lot of codes using Dependabot::Source.from_url class, so I'm not sure this is a correct way to resolve this problem.
I'd like to get a piece of advice from authors for this issue.

👋 Sorry for the super slow response here. The team has been buried for a while, so we're just now finally starting to dig through our backlog.
This is a really old issue, and we've since shipped much better support for GHES. So I'm going to close, assuming this is resolved. If it's not, please comment and we can reopen.


Unicode font support

Hi, is it possible to render unicode strings containing e.g. emojis somehow? I tried loading a typeface containing emojis but they are not rendered at all, I also tried using that typeface as a fallback for another one but that also didn't work. Any help would be appreciated :^)

Sorry we currently do not support emojis.
Its some thing we want to add in the future.

Ok, thanks anyways


Display final feerate to user in confirmation dialog before broadcasting

We currently do not display the final feerate to the user before broadcasting.
This would have to be done by signing the psbt before showing the feerate to the user. The signing and broadcasting are currently both done in broadcastTransaction in the WalletBuild fragment:
private fun broadcastTransaction() {
    var txidString: String = "string of txid"

    try {
        Wallet.sign(psbt)
        val transaction = Wallet.broadcast(psbt)
    // ...

Fixed with 06348fd.


libretro.fbneo: unstable-2024-02-22 -> unstable-2024-03-03

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for libretro.fbneo is: Port of FBNeo to libretro
meta.homepage for libretro.fbneo is: https://www.libretro.com/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found unstable-2024-02-27 in filename of file in /nix/store/bm1lfxjx53ckbmk05k9ljzap7h5b9aag-libretro-fbneo-unstable-2024-02-27

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
libretro.fbneo
retroarchFull

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/bm1lfxjx53ckbmk05k9ljzap7h5b9aag-libretro-fbneo-unstable-2024-02-27 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libretro.fbneo https://github.com/r-ryantm/nixpkgs/archive/02742075a636fdb1993abbc10924a4f2328a54c4.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/02742075a636fdb1993abbc10924a4f2328a54c4#libretro.fbneo

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/bm1lfxjx53ckbmk05k9ljzap7h5b9aag-libretro-fbneo-unstable-2024-02-27
ls -la /nix/store/bm1lfxjx53ckbmk05k9ljzap7h5b9aag-libretro-fbneo-unstable-2024-02-27/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

libretro.fbneo
retroarchFull

Maintainer pings
cc @aanderse @edwtjo @MP2E @thiagokokada @hrdinka for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for libretro.fbneo is: Port of FBNeo to libretro
meta.homepage for libretro.fbneo is: https://www.libretro.com/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found unstable-2024-03-03 in filename of file in /nix/store/0j6fbb41iyxwynhvb74a7ki5g4dbnzfm-libretro-fbneo-unstable-2024-03-03

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
libretro.fbneo
retroarchFull

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/0j6fbb41iyxwynhvb74a7ki5g4dbnzfm-libretro-fbneo-unstable-2024-03-03 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libretro.fbneo https://github.com/r-ryantm/nixpkgs/archive/9018456959fa4ad3172fabd185eb8502c7a33c27.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/9018456959fa4ad3172fabd185eb8502c7a33c27#libretro.fbneo

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/0j6fbb41iyxwynhvb74a7ki5g4dbnzfm-libretro-fbneo-unstable-2024-03-03
ls -la /nix/store/0j6fbb41iyxwynhvb74a7ki5g4dbnzfm-libretro-fbneo-unstable-2024-03-03/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

2 packages built:

libretro.fbneo
retroarchFull

Maintainer pings
cc @aanderse @edwtjo @MP2E @thiagokokada @hrdinka for testing.


Obtain strongly typed header class

How do you obtain a strongly typed header class from the namespace System.Net.Http.Headers from an ASP.NET Core controller? In a controller derived from Controller, Request.Headers is available, but it just returns IHeaderDictionary. There is also an extension method HeaderDictionaryTypeExtensions.GetTypedHeaders, but it returns RequestHeaders, which has only certain headers. The class HttpRequestHeaders has the most comprehensive list of headers, but it's not clear how to access it.
For example, how would you get a AuthenticationHeaderValue? One option is AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]), but that requires hard coding the header name. Perhaps there is a non-hard-coded way to get to HttpRequestHeaders.Authorization.

This has been a stumper on StackOverflow since October. Is this possible? Is it perhaps something that should be improved in the project?

@Tratcher thoughts on this? I'm guessing the answer is that there's no simple way...

 GetTypedHeaders is the recommended way, though it doesn't include AuthenticationHeaderValue. We excluded AuthenticationHeaderValue because it did not provide meaningful parsing beyond the normal header comma splitting GetCommaSeperatedValues. Do you actually need a AuthenticationHeaderValue instance?
If you're worried about hard coding the header names we have constants for those. See HeaderNames.Authorization:
https://github.com/aspnet/HttpAbstractions/blob/87cd79d6fc54bb4abf07c1e380cd7a9498a78612/src/Microsoft.Net.Http.Headers/HeaderNames.cs

HeaderNames solves the hard coded string problem. For some reason, IntelliSense is really bad at guessing what I'm going to type into a string. :-)
The cherry picking in RequestHeaders still seems disjointed. It's not clear why AuthenticationHeaderValue is valuable enough to exist, but not valuable enough to include in RequestHeaders. Perhaps the parse method has more worth than its first seems: just knowing that the parts are comma delimited is a nice detail to encapsulate.
You asked if I needed AuthenticationHeaderValue. In my code, I knew I had an authentication header coming in that could have an X-ApiKey scheme or could have a Basic scheme. I appreciated how with AuthenticationHeaderValue I didn't have to look at the RFC; I simply used Scheme and Parameter, and it did the right thing. If there was a similar helper for parsing the Basic scheme's parameter, I would have used that, too.

We are closing this issue because no further action is planned for this issue. If you still have any issues or questions, please log a new issue with any additional details that you have.


Build Fails on fresh machine ubuthu 20.04 / Docker . On latest code base

Describe the bug

Task :conductor-os-persistence:spotlessJavaCheck FAILED
256.4
256.4 FAILURE: Build failed with an exception.
256.4
256.4 * What went wrong:
256.4 Execution failed for task ':conductor-os-persistence:spotlessJavaCheck'.
256.4 > The following files had format violations:
256.4       src/test/java/com/netflix/conductor/os/dao/index/OpenSearchRestDaoBaseTest.java
256.4           @@ -16,15 +16,14 @@
256.4            import·java.io.IOException;
256.4            import·java.io.InputStreamReader;
256.4            import·java.io.Reader;
256.4           -import·java.util.regex.Pattern;
256.4
256.4            import·org.apache.http.HttpHost;
256.4           +import·org.junit.After;
256.4           +import·org.junit.Before;
256.4            import·org.opensearch.client.Request;
256.4            import·org.opensearch.client.Response;
256.4            import·org.opensearch.client.RestClient;
256.4            import·org.opensearch.client.RestClientBuilder;
256.4           -import·org.junit.After;
256.4           -import·org.junit.Before;
256.4            import·org.springframework.retry.support.RetryTemplate;
256.4
256.4            public·abstract·class·OpenSearchRestDaoBaseTest·extends·OpenSearchTest·{
256.4       src/test/java/com/netflix/conductor/os/dao/index/OpenSearchTest.java
256.4           @@ -12,22 +12,22 @@
256.4            ·*/
256.4            package·com.netflix.conductor.os.dao.index;
256.4
256.4           -import·com.netflix.conductor.os.config.OpenSearchProperties;
256.4            import·org.junit.AfterClass;
256.4            import·org.junit.BeforeClass;
256.4            import·org.junit.runner.RunWith;
256.4           +import·org.opensearch.testcontainers.OpensearchContainer;
256.4            import·org.springframework.beans.factory.annotation.Autowired;
256.4            import·org.springframework.context.annotation.Bean;
256.4            import·org.springframework.context.annotation.Configuration;
256.4            import·org.springframework.test.context.ContextConfiguration;
256.4            import·org.springframework.test.context.TestPropertySource;
256.4            import·org.springframework.test.context.junit4.SpringRunner;
256.4           -import·org.opensearch.testcontainers.OpensearchContainer;
256.4           +import·org.testcontainers.utility.DockerImageName;
256.4
256.4            import·com.netflix.conductor.common.config.TestObjectMapperConfiguration;
256.4           +import·com.netflix.conductor.os.config.OpenSearchProperties;
256.4
256.4            import·com.fasterxml.jackson.databind.ObjectMapper;
256.4           -import·org.testcontainers.utility.DockerImageName;
256.4
256.4            @ContextConfiguration(
256.4            ········classes·=·{TestObjectMapperConfiguration.class,·OpenSearchTest.TestConfiguration.class})
256.4           @@ -46,7 +46,10 @@
256.4            ····}
256.4
256.4            ····protected·static·OpensearchContainer<?>·container·=
256.4       ... (8 more lines that didn't fit)
256.4   Violations also present in:
256.4       src/test/java/com/netflix/conductor/os/dao/index/TestBulkRequestBuilderWrapper.java
256.4   Run './gradlew :conductor-os-persistence:spotlessApply' to fix these violations.
256.4
256.4 * Try:
256.4 > Run with --stacktrace option to get the stack trace.
256.4 > Run with --info or --debug option to get more log output.
256.4 > Get more help at https://help.gradle.org.
256.4
256.4 Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
256.4
256.4 You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
256.5
256.5 For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
256.5
256.5 BUILD FAILED in 4m 16s
256.5 196 actionable tasks: 196 executed
256.7
256.7 Publishing build scan...
257.4 https://gradle.com/s/toqeestjbgmha
257.4

failed to solve: process "/bin/sh -c ./gradlew build -x test" did not complete successfully: exit code: 1
Details
Conductor version: Latest
Not building using  docker-compose -f docker/docker-compose.yaml up
In the readme it is mentioned as docker composer , i changed it to "docker-compose"
To Reproduce
Steps to reproduce the behavior:

Go to '...'
https://conductor-oss.org/
git clone https://github.com/conductor-oss/conductor.git

cd conductor
docker-compose -f docker/docker-compose.yaml up

Pull the latest release tag instead and it will work.
Or you can try to run ./gradlew spotlessApply and it should fix the issue and then build your image.