fix(build-cli): policy-check should only run on main by default

Updates the release command to run policy-check by default for the main branch, but not on other branches. This can be overridden by passing --policyCheck or --no-policyCheck.
Fixes AB#1962

Why are we not running policy-check against next?

@markfields To keep me honest. :)
@sonalivdeshpande Policy-check still runs in CI -- this change only affects when it's invoked automatically as part of doing a release. Because it runs in CI, it's theoretically impossible for violations to be checked in EXCEPT for untagged asserts. That's really the reason it's run as part of the release process -- to tag the asserts before release so telemetry is usable. Everything else in policy-check should always be passing thanks to CI.
Per discussions with the team, we prefer to use a policy of "tag only in main" and accept that there may be untagged asserts in release and other branches because code sometimes goes directly into those branches. We think that's an easier policy to follow and apply, and the rare cases of untagged asserts are not a disaster.
With this change, when running against main, the tools should check for violations and require them to be fixed in order to continue. But when doing a patch release, for example, they'll be skipped by default. Passing --policyCheck or --no-policyCheck will override the default behavior.
Separately I am thinking about somehow separating assert tagging from policy-check because we use them very differently.

we prefer to use a policy of "tag only in main" and accept that there may be untagged asserts in release and other branches because code sometimes goes directly into those branches. We think that's an easier policy to follow and apply, and the rare cases of untagged asserts are not a disaster.

@markfields Thoughts about where this policy should be documented?

Why are we not running policy-check against next?

@sonalivdeshpande I should read more closely... you asked about next specifically. Sorry! In that case, we don't ever release from next. We always converge next to main during major releases and then tag the converged code before forking next. (I forgot to do that this time, so I had to tag asserts in main and cherry-pick to next -- fortunately I caught it early so main and next were still really close so the merge was trivial.)

@markfields Thoughts about where this policy should be documented?

I think the whole assert/hexcodes/mapping/policy topic merits a new page in eng.ms.


Only build changed images

Annoyingly the last commits makes CI fail on my fork (https://github.com/brianhlin/osg-images/runs/4869618075?check_suite_focus=true). Maybe I should just give up on the cleverness and checkout a max depth repo?

Sure, checkouts are cheap compared to all the other stuff you're doing.


Rename specdris.iqkg to specdris.ipkg!

Impossible to install via idris --install if the file is not renamed.

Ah right, didn't notice it as I used ./project all the time. Will fix it, thanks.

By the way plain idris --install doesn't work anyway (at least for me). You have to pass the file name explicitly.

Yes, but the filename has to have the .ipkg extension or else idris complains.

No it does not:
idris --install specdris.iqkg
Entering directory `./src'
Leaving directory `./src'
Entering directory `./src'
Installing Specdris/Spec.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris
Installing Specdris/SpecIO.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris
Installing Specdris/Core.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris
Installing Specdris/Data/ConsoleColor.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris/Data
Installing Specdris/Expectations.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris
Installing Specdris/Data/SpecInfo.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris/Data
Installing Specdris/Data/SpecResult.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris/Data
Installing Specdris/Data/SpecState.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris/Data
Installing 00specdris-idx.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris
Leaving directory `./src'

You also can see that it worked in this Travis build which installs specdris before running the tests:
https://travis-ci.org/ziman/lightyear/builds/253687741?utm_source=github_status&utm_medium=notification

What version of idris do you use? It doesn't work on master branch on git.

I work with 1.0 and I used master when running install as shown above. I just renamed the package file again.

Made a clean clone and install:
nb-pheymann:tmp paul.heymann$ git clone https://github.com/pheymann/specdris.git
Cloning into 'specdris'...
remote: Counting objects: 260, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 260 (delta 3), reused 10 (delta 3), pack-reused 249
Receiving objects: 100% (260/260), 40.78 KiB | 0 bytes/s, done.
Resolving deltas: 100% (123/123), done.
Checking connectivity... done.
nb-pheymann:tmp paul.heymann$ cd specdris
nb-pheymann:specdris paul.heymann$ ./project --install
install project
clean project
Entering directory `./src'
Leaving directory `./src'
test project
Type checking ./Specdris/TestUtil.idr
Type checking ../src/Specdris/Data/ConsoleColor.idr
Type checking ../src/Specdris/Data/SpecState.idr
Type checking ../src/Specdris/Data/SpecResult.idr
Type checking ../src/Specdris/Data/SpecInfo.idr
Type checking ../src/Specdris/Core.idr
Type checking ../src/Specdris/Expectations.idr
Type checking ../src/Specdris/Spec.idr
Type checking ./Specdris/OutputTest.idr
Type checking ./Specdris/ExpectationsTest.idr
Type checking ../src/Specdris/SpecIO.idr
Type checking ./Specdris/SpecIOTest.idr
Type checking ./Specdris/SpecTest.idr
Type checking /var/folders/5h/hb6px6zs3_n4wry170bn9fnrp21ctv/T/idris14587779232007237709.idr

  expectations:
  expectation_pending
     [] pending
  expectation_pendingWith
     [] pending: test
  expectation_shouldBe
  expectation_===
     [x] not equal
         actual:   1
         expected: 2
  expectation_shouldNotBe
  expectation_/==
     [x] equal
         actual:   1
         expected: 1
  expectation_sat
  expectation_!sat
     [x] doesn't satisfy predicate
         actual: 1

  spec:
  context 1
    context 1.1
      + context 1.1.1
         [x] not equal
             actual:   1
             expected: 2
    + context 1.2
       [x] doesn't satisfy predicate
           actual: "hello"
    + context 1.3
       [x] not equal
           actual:   1
           expected: 2
    + context 1.4
       [] pending: for some reason

  Failed: Total = 4, Failed = 3, Pending = 1

  spec-io:
  context 1
    context 1.1
      + context 1.1.1
         [x] not equal
             actual:   1
             expected: 2
    + context 1.2
       [x] doesn't satisfy predicate
           actual: "hello"
    + context 1.3
       [x] not equal
           actual:   1
           expected: 2
    + context 1.4
       [] pending: for some reason

  Failed: Total = 4, Failed = 3, Pending = 1
beforeAll
  context 1
    + context 1.1
afterAll

  Passed: Total = 1, Failed = 0, Pending = 0
  context 1
    + context 1.1
before
      => expectation
after

  Passed: Total = 1, Failed = 0, Pending = 0

  output:

  Failed: Total = 3, Failed = 2, Pending = 1
SUCCESSFUL
Entering directory `./src'
Leaving directory `./src'
Entering directory `./src'
Installing Specdris/Spec.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris
Installing Specdris/SpecIO.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris
Installing Specdris/Core.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris
Installing Specdris/Data/ConsoleColor.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris/Data
Installing Specdris/Expectations.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris
Installing Specdris/Data/SpecInfo.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris/Data
Installing Specdris/Data/SpecResult.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris/Data
Installing Specdris/Data/SpecState.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris/Specdris/Data
Installing 00specdris-idx.ibc to /usr/local/Cellar/idris/1.0/share/x86_64-osx-ghc-8.0.2/idris-1.0/libs/specdris
Leaving directory `./src'

Weird. It says to me The presented iPKG file does not have a '.ipkg' extension

Which version of idris do you use and on which OS do you work?

And is this the only error message or does Idris say something else?

OS: Fedora 26
Idris version: 1.0-git:05fbd119
The only message.

Found the problem: tag v1.0 does not have this check. But I fixed the file name so it should work now. So I don't get why you still see this problem, because this shouldn't fail any longer:
https://github.com/idris-lang/Idris-dev/blob/master/src/Idris/Package/Parser.hs#L64

Could you clone and install this project again, just to be sure that it isn't some weird problem in your current clone?

I don't. I cloned the repository before the change, noticed the problem, and fixed it. So I don't see the problem.


Replaced FormView.get_form_kwargs with a super-call in modeladmin/vie…

@gasman Rebased after the modules have been reorganized. I was thinking to use super() but it's probably better to update all of them in one go.


[SPARK-16588][SQL] Missed API fix for a function name mismatched between FunctionRegistry and functions.scala

What changes were proposed in this pull request?
It seems the function monotonicallyIncreasingId was missed in https://issues.apache.org/jira/browse/SPARK-10621
The registered name is monotonically_increasing_id but monotonicallyIncreasingId was still not deprecated and removed.
So, this was also missed in https://issues.apache.org/jira/browse/SPARK-12600 (removing deprecated APIs).
How was this patch tested?
N/A

Test build #62427 has started for PR 14236 at commit d947be6.

FYI, there is one more usage in ColumnExpressionSuite.scala#L517 which is dedicated test for this one.

cc @rxin

Test build #62427 has finished for PR 14236 at commit d947be6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/62427/
Test PASSed.

Merged build finished. Test PASSed.

 Thanks for noticing it.

@rxin Sure, Thank you very much.


Recovery from bad input (syntax errors)

I've been testing forgex and so far it works well. My main issue is how it recovers from bad input. There are quite a few error_stops for bad input which is inconvenient when embedded in a larger program. I also found an infinite loop in syntax_tree_graph_m.F90 line 344-348 when an opening [ is not matched by a closing one ].  You also need to check something like self%tape%token_char.ne.'' to avoid this.

I confirmed the infinite loop problem and would like to work on fixing this as soon as possible.
As for other bad patterns, I would like to consider a plan for error handling. Specifically, I thought of the following:

Provide an is_valid_regex function that determines whether a regular expression is valid or invalid, allowing for advance error handling.
For the .in. and .match. operators, return false for bad input patterns.
For the regex subroutine, add an optional argument to store the error code.

Here, we must be aware that these procedures are restricted by the pure attribute. Therefore, there is almost no way to communicate errors to the outside for these functions. Only the regex subroutine has the possibility of handling errors through arguments.
If you have any other ideas, I would be happy if you could share them.

I think a PURE function can return a derived type. So you could make one something like
type match_result
logical :: match
integer :: start
integer :: end
logical :: error
character(:), allocatable :: error_message
end type match_result

This idea is a good insight for me, but I prefer the simplicity of operators returning a logical type, so I would like to use it in a regex subroutine. This is because we cannot use a generic named procedure for functions that compose operators with the same type of arguments.
Furthermore, in a function that returns this derived type, I want to preserve the option to implement it with operator overloads for string operations (//, /=, ==, etc.) for the type.


Testing on Mac (Intel)

For some reason, the decoding test fails on MacOS. Everything else is OK though.

Works now


KAFKA-3950: kafka mirror maker tool is not respecting whitelist option

Thanks for the updates @omkreddy. I think I wasn't clear on one of my comments, so here's a PR explaining what I meant: https://github.com/omkreddy/kafka/pull/1
Please merge the changes in that PR to your branch if you agree with them.

@ijuma  Thanks for the changes. your changes looks good.  merged your PR.

Thanks for the PR, merged to the 0.10.0 branch. Please close the PR since the auto-close only works for branches merged to trunk. For reference, #1687 (which has trunk as the target) contains additional discussion and reviews.


set style

'set style' command may be used several times to set different options. Currently it's not handled by gem
example:
set style data histograms
set style fill ...

Do you have a list of such commands? Or is this the only case?

Currently I faced with only 'set style' option.
Usually I consider options as set [key] [value] and here I think key is 'style data' or 'style function' or 'style fill' (they are considered different in gnuplot docs too) Thus I'm going to allow option keys like :style_function and :style_fill and replace '_' with space before unputting it to gnuplot.
This will allow to use plot.options(style_data: 'histograms', style_fill: '...') in this case for example.
What do you think?

Are there any commands in gnuplot which are separated similarly? Maybe there is an option called awesome_option which would also be separated and we might not want that.
An alternative could be plot.options(style: { data: 'histograms', fill: '...' })
I think we should get some more opinions on the topic @agisga @agarie

The point is that this command can't be used this way.
plot.options(style: { data: 'histograms', fill: '...' })
will produce
set style data histograms fill ...
but gnuplot waits for
set style data histograms
set style fill ...

So this will require to make exception for style in hash-as-option treatment.
I also looked through gnuplot docs and found that there are some other separated options ('set object |index|' for example) and found no underline separated options. Of course they may appear later.

I am not very familiar with gnuplot yet, so I might be wrong, but I think that most of the time the user will not use style multiple times (like style data ... and style fill ... simultaneously). Therefore, I think that the syntax with the underscore is less cumbersome and more straight forward:
style_data: 'histograms' vs style: {data: 'histograms'}
You should also keep in mind that, based on how other options work, the user might expect that she can write:
style: 'data histograms'
to produce
set style data histograms
for gnuplot, if she does not need to specify multiple style options simultaneously.
Do you want to allow or forbid that behaviour?

Yes, it's really possible case and all following options are the same:
plot.style('data histograms')
plot.style_data('histograms')
plot.style(data: 'histograms')
plot.style_data_histograms(true)
plot.options(style: 'data histograms')
etc...


Fix: Spelling

Codecov Report

Merging #260 (b2d2ad2) into main (4afaacf) will not change coverage.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main     #260   +/-   ##
=======================================
  Coverage   97.43%   97.43%
=======================================
  Files          17       17
  Lines        1403     1403
=======================================
  Hits         1367     1367
  Misses         36       36

Impacted Files
Coverage Δ

src/bar.rs
94.52% <ø> (ø)

src/question.rs
100.00% <ø> (ø)

src/ftp.rs
99.02% <100.00%> (ø)

src/io.rs
100.00% <100.00%> (ø)

src/sftp.rs
90.81% <100.00%> (ø)


[New game]: SAVE THE FOREST 👾

🎮 Game Request
Game logic and basic description

A fully canvas based HTML5 game where a player has to extinguish fire on tress using his magical water tank in order to save the Burning Forests.

Point down the features
Game points

Press Space or tap to keep jumping the player.
Land on trees to save them and earn karma.
Don't let the glitches hinder the journey.

Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @0xabdulkhalid !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @0xabdulkhalid ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Add center weighted face detection

Closing this pull request intended for version 0.6.5 pre-FaceDetectorYN
It can detect only single faces so a center weighted filter was the only method available. I was intending to preserve this functionality in ImageProcessor for 0.6.5. as a fork but github only allows a single fork so it will be preserved as a branch instead.
After I "pulled from origin" for version 0.6.6 in order to commit the changes for center weighted FaceDetectorYN, both changes were combined in the merge requests. Github doesn't seem to provide the capability to delete a single change from the merge request, so I will close this one and re-open another specifically for version 0.6.6.


Seed format compatibility

I am trying to recover portfolio with seed from Agama and Ethereum wallet but HyperDex shows zero balance despite I see it in those wallets.
Is there something different seeds format with "portfolio" wallet in HyperDex?

HyperDEX uses the same key derivation algorithm as Agama. It probably doesn't use the same algorithm as your Ethereum wallet, you should send the funds over instead.


Refactor WinDbg install

I rework WinDbg install to improve it (versioned + icon support #997)
Closes https://github.com/mandiant/VM-Packages/issues/997

So I'm looking into this and it looks like the same issue I ran into when I was trying to do the windows-terminal package for wt.exe (https://github.com/mandiant/VM-Packages/issues/934#issuecomment-1977815578) where it installed to the correct location for Windows Server 2022, but not for Windows Server 2019. Unfortunately, I never found a solution to do it properly for Windows Apps, and instead, I went the route of using a Github package, which doesn't seem to exist for WindbgX.
It seems that the Windows Server 2019 either installs the Windows Apps to a different location than the standard one (or installs it differently in general), or it's failing to install for some reason. But the fact that $iconLocation  = Join-Path $installDir "DbgX.Shell.exe" -Resolve actually resolves leads me to believe that it is installing, just not how we expect.
Now the issue with not being able use that as the executable location is because it's a highly protected folder, so @Ana06 is likely correct in that the shortcut to that as the executablePath in the catch statement is very unlikely to actually be working and I'm not sure if that's the route we want to take. There seems to be ways that we can possibly change the ownership of the directory and be able to potentially make it run, as noted here, but I don't think that's the best route to take.
I'm thinking that the better route might be what @Ana06 suggested with https://github.com/mandiant/VM-Packages/pull/1058#discussion_r1644253183 where we use a Console App.
I will try to do a little more testing to see if I can find an alternative, but that's my current take at the moment. :)

Judging from this post, it sounds like the WinDbgX.exe and similar executables in Microsoft\WindowsApps are considered an "Execution Alias", which is not supported in Windows Server 2019: https://stackoverflow.com/questions/67495731/how-do-i-make-an-execution-alias-work-on-windows-server-2019
This is why it's not created when we do Add-AppxPackage for the windows-2019 github runner.
A suggested alternative that may work for us would be to create a command similar to Explorer.Exe Shell:AppsFolder:<ApplicationID>!<AppID> which looks like it can potentially be done programmatically: https://www.andreasnick.com/106-starting-msix-and-appx-packages-with-powershell-from-the-command-line.html
Or a powershell command Invoke-CommandInDesktopPackage: https://learn.microsoft.com/en-us/powershell/module/appx/invoke-commandindesktoppackage?view=windowsserver2019-ps
I'm not sure what the best solution really is, but for it to truly work on Windows Server 2019 we'd likely need one of these options, as VM-Install-Shortcut -toolName $toolName -category $category -executablePath "$toolName.exe" -iconLocation $iconLocation -RunAsAdmin is merely making a shortcut to something that may not actually be working. Unfortunately I do not have this sort of setup at the moment to test this.
I'd be willing to accept VM-Install-Shortcut -toolName $toolName -category $category -executablePath "$toolName.exe" -iconLocation $iconLocation -RunAsAdmin, as it seems that there have not been any complaints as of yet for it.
@Ana06 thoughts?

Now the issue with not being able use DbgX.Shell.exe as the executable location is because it's in a highly protected folder, so @Ana06 is likely correct in that the shortcut to that as the executablePath in the catch statement is very unlikely to actually be working and I'm not sure if that's the route we want to take. There seems to be ways that we can possibly change the ownership of the directory and be able to potentially make it run, as noted here, but I don't think that's the best route.

I don't think changing permission of the directory will solve anything, because on my side it's working with DbgX.Shell.exe without modifying the permission of the protected folder. However, I agree that it's unlikely to work on Windows Server 2019.

I'd be willing to accept VM-Install-Shortcut -toolName $toolName -category $category -executablePath "$toolName.exe" -iconLocation $iconLocation -RunAsAdmin, as it seems that there have not been any complaints as of yet for it.

So we merge this PR with the line provided and create an issue to find a better way with Explorer.Exe Shell:AppsFolder:<ApplicationID>!<AppID> or Invoke-CommandInDesktopPackage ?

@naacbin sorry that it took that long to review the PR, I am not sure which the best solution is. @d35ha thanks for sharing your feedback, hopefully we can soon find a good solution. :wink:


Fix acronym and panic warnings

Rust and Clippy 1.51.0 have new default warnings:

clippy::upper_case_acronyms enforces RFC 430 naming guidelines.
rustc_lint::non_fmt_panic warns against non-format strings as first
argument to panic! and related macros. In Rust 2021, this will become a hard
error.

This includes breaking changes in the signature of some public types.

The public API has changed already since the last release (0.1.0), so as long as there is no objection to following RFC 430, we should be good to break.


enable tracking of C memory allocations

This change was previously done in the internal zoslib to investigate a memory leak in a customer app running Node.js.
Previously, tracking of memory [de]allocations was only performed on memory from virtual storage (iarv64) and __malloc31, by using a std::unordered_map to store each allocated pointer and its size, and that was always performed regardless of any compiler option.
In this PR each allocation from malloc, calloc, realloc, strdup, strndup, iarv64 and __malloc31 is stored as a node (__taddr_t) in a binary search tree that stores, for each allocation, the allocated address (key), its size, source (filename:linenum) from which the allocation call was made, and the address space (31-bit, 64-bit heap or 64-bit virtual storage). This is enabled only when zoslib and the app are built with CFLAGS=CXXFLAGS=-DZOSLIB_TRACE_ALLOCS
Another binary search tree keeps track of all source locations (filename:linenum) that allocated memory, storing details such as the filename:linenum (key), num of bytes currently still allocated from this location, max num of bytes allocated from this location, num of times an allocation has been called from this location, num of times an allocation from this location has been freed, and the address space for the allocation from this source.
It's possible to display the allocations report (e.g. below) by calling __display_alloc_stats(false, false); whenever some signal is received (e.g. SIGUSR2), where the 2nd arg is false so the report only contains those allocations that changed since the last report. This would be useful to monitor the memory status for a long-running app.
As a test, I ran zoslib's cctest_a; the report shows all C allocations it makes, as well as a few memory leaks:
$ ./build.sh -c -r -t
$ export __MEMORY_USAGE_LOG_FILE=`pwd`/dbg.logs/dbg.%PPID%.%PID%.log
$ export __MEMORY_USAGE_LOG_LEVEL=0
$ mkdir dbg.logs
$ build/test/cctest_a
$ cat dbg.logs/dbg.*.log

__heaprpt() at 2024-02-28 13:54:04:
  Total amount of user heap storage    : 1048576
  Amount of user heap storage in use   : 397024
  Amount of available user heap storage: 651552

p=16780326 t=1 bash(16780838)-CHILD PROCESS STARTED: build/test/cctest_a
p=16780326 t=1 bash(16780838)-CHILD PROCESS TERMINATING: build/test/cctest_a

MEMORY ALLOCATIONS at 2024-02-28 13:54:08:
DEBRIS from zos.cc:2858-1 addr=5040E068D0 size=8
DEBRIS from zos-bpx.cc:88-1 addr=5040E06E90 size=1024
DEBRIS from zos-bpx.cc:88-2 addr=5040E072F0 size=1024
DEBRIS from test-strnlen.cc:7-1 addr=5040E08130 size=102
DEBRIS from test-strnlen.cc:15-1 addr=5040E08DB0 size=102
DEBRIS from test-strnlen.cc:23-1 addr=5040E09190 size=102
DEBRIS from zos-mount.c:54-1 addr=5040E1E2F0 size=23944
DEBRIS from test-strnlen.cc:31-1 addr=5040E241B0 size=100002
DEBRIS from test-strnlen.cc:39-1 addr=5040E3C870 size=100002
DEBRIS from test-strnlen.cc:47-1 addr=5040E54F30 size=100002
64        test-allocs.cc:18: unfreed=0 max-allocated=104862550 count-allocations=100 count-frees=100 count-diff=0
64        test-allocs.cc:21: unfreed=0 max-allocated=419490200 count-allocations=100 count-frees=100 count-diff=0
64        test-allocs.cc:24: unfreed=0 max-allocated=1048576 count-allocations=50 count-frees=50 count-diff=0
64        test-allocs.cc:25: unfreed=0 max-allocated=104882550 count-allocations=100 count-frees=100 count-diff=0
64        test-allocs.cc:30: unfreed=0 max-allocated=1800 count-allocations=100 count-frees=100 count-diff=0
64        test-allocs.cc:36: unfreed=0 max-allocated=900 count-allocations=100 count-frees=100 count-diff=0
31        test-allocs.cc:47: unfreed=0 max-allocated=104862550 count-allocations=100 count-frees=100 count-diff=0
31        test-allocs.cc:57: unfreed=0 max-allocated=105273308 count-allocations=100 count-frees=100 count-diff=0
VS        test-allocs.cc:67: unfreed=0 max-allocated=104857600 count-allocations=100 count-frees=100 count-diff=0
64 test-clib-override.cc:57: unfreed=0 max-allocated=15 count-allocations=1 count-frees=1 count-diff=0
64       test-strings.cc:13: unfreed=0 max-allocated=6 count-allocations=1 count-frees=1 count-diff=0
64       test-strings.cc:23: unfreed=0 max-allocated=14 count-allocations=1 count-frees=1 count-diff=0
64       test-strings.cc:32: unfreed=0 max-allocated=1 count-allocations=1 count-frees=1 count-diff=0
64       test-strnlen.cc:15: unfreed=102 max-allocated=102 count-allocations=1 count-frees=0 count-diff=1
64       test-strnlen.cc:23: unfreed=102 max-allocated=102 count-allocations=1 count-frees=0 count-diff=1
64       test-strnlen.cc:31: unfreed=100002 max-allocated=100002 count-allocations=1 count-frees=0 count-diff=1
64       test-strnlen.cc:39: unfreed=100002 max-allocated=100002 count-allocations=1 count-frees=0 count-diff=1
64       test-strnlen.cc:47: unfreed=100002 max-allocated=100002 count-allocations=1 count-frees=0 count-diff=1
64        test-strnlen.cc:7: unfreed=102 max-allocated=102 count-allocations=1 count-frees=0 count-diff=1
64            zos-bpx.cc:88: unfreed=2048 max-allocated=2048 count-allocations=2 count-frees=0 count-diff=2
64           zos-mount.c:50: unfreed=0 max-allocated=96976 count-allocations=1 count-frees=1 count-diff=0
64           zos-mount.c:54: unfreed=23944 max-allocated=23944 count-allocations=1 count-frees=0 count-diff=1
64              zos.cc:2858: unfreed=8 max-allocated=8 count-allocations=1 count-frees=0 count-diff=1
64               zos.cc:850: unfreed=0 max-allocated=106 count-allocations=2 count-frees=2 count-diff=0

TOTAL     64-heap: unfreed=326312 max-allocated=630283912 count-allocations=567 count-frees=557 count-diff=10
TOTAL       64-vs: unfreed=0 max-allocated=104857600 count-allocations=100 count-frees=100 count-diff=0
TOTAL      31-bit: unfreed=0 max-allocated=105273308 count-allocations=200 count-frees=200 count-diff=0

SUMMARY: unfreed64=326312, max64=630283912, unfreed64v=0, max64v=104857600, unfreed31=0, max31=105273308
BTREE unfreed64=0, max64=29636
__heaprpt() at 2024-02-28 13:54:08:
  Total amount of user heap storage    : 946864128
  Amount of user heap storage in use   : 760576(+363552 vs start 397024)
  Amount of available user heap storage: 946103552

The new internal environment variable __MEMORY_USAGE_ALLOC_TB_WARNING is effective only if __MEMORY_USAGE_LOG_LEVEL is 1 or 2, and results in a traceback whenever a warning is encountered (e.g. address being freed is not in cache, or address allocated is already in cache, or realloc called with ptr=0 and new-size=0).
and the following with example settings:
__MEMORY_USAGE_ALLOC_TB_SOURCE=foo.cc:40
__MEMORY_USAGE_ALLOC_TB_SOURCE_I=20
__MEMORY_USAGE_ALLOC_TB_SOURCE_J=60

result in a source traceback displayed whenever an allocation is made from the given __MEMORY_USAGE_ALLOC_TB_SOURCE,
or if __MEMORY_USAGE_ALLOC_TB_SOURCE_I is set, then when only the i'th allocation from the given source is made,
or if __MEMORY_USAGE_ALLOC_TB_SOURCE_J is also set, then when only the allocation occurrence from the given
location is between the given range. A range will almost always be required because the order of allocations usually differs between different runs for the same test.

Nice stuff. Rather than putting this into zoslib, can you explore putting it into the clang address analyzer (https://clang.llvm.org/docs/AddressSanitizer.html). More people know about this.

Thanks. Wouldn't that require adding support for those features (AddressSanitizer, LeakSanitizer, ?) to z/OS clang, using the same implementation as done for the other supported platforms? Here we also track allocations from iarv64 and 31-bit, and support an app to call __display_alloc_stats() on demand (now mentioned in the PR's description).


NoMorePendingEventCbHelper needs to be called when flush empty updates

--When application calls FlushUpdate, if no updated item is set,
mPendingSetState is kPendingSetEmpty, NoMorePendingEventCbHelper()
needs to be called, and notify application there is no more pending
updates.

Codecov Report

Merging #402 into master will decrease coverage by 0.05%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #402      +/-   ##
==========================================
- Coverage   54.51%   54.46%   -0.06%
==========================================
  Files         341      340       -1
  Lines       58548    58431     -117
==========================================
- Hits        31919    31825      -94
+ Misses      26629    26606      -23

Impacted Files
Coverage Δ

...les/data-management/Current/SubscriptionClient.cpp
7.49% <0%> (-0.04%)
:arrow_down:

src/lib/profiles/security/WeaveCert.cpp
88.5% <0%> (-0.46%)
:arrow_down:

src/test-apps/TestCASE.cpp
95.89% <0%> (-0.23%)
:arrow_down:

src/tools/weave/GeneralUtils.cpp

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 9132f4c...ff5b3a5. Read the comment docs.

This logic isn't correct. FlushUpdate() is designed to be idempotent.
Thanks for the comments, yes, FlushUpdate should be idempotent here. I think, when application calls FlushUpdate, if no updated item is set, mPendingSetState is kPendingSetEmpty, NoMorePendingEventCbHelper() needs to be called, and notify application there is no more pending updates. I have updated the pull request, please help review. thank you!

Should we notify app the error state via OnComplete or OnError callback when IsUpdateInFlight  or mUpdateRetryScheduled or mUpdateFlushScheduled is true?
I feel multiple call on FlushUpdate should be fine for the above cases.

Done, thanks


Fibaro Dimmer 2 (FGD212) can't be control from ZWAVE-JS or ZWAVE-JS-UI

Before submitting a bug please read: https://zwave-js.github.io/zwave-js-ui/#/troubleshooting/bug_report
If you are using the Home Assistant Z-Wave JS integration, please add a full dump:
Home Assistant --> settings --> Integrations --> Z-Wave JS --> Configure --> Create dump --> zip the json file and post it here.
Version
config_entry-zwave_js-01JDBBH88EZ790386QK5NVWEC6.zip
Build/Run method:
[ ] Docker
[ ] Git Clone + npm install + npm run build + npm start
[ ] Pkg
Z-Wave JS UI version: 3.17.0
Z-Wave JS version: 0.9.0
Describe the bug
Fibaro Dimmer 2 (FGD212) is found by there is no control to change light level.
The Fibaro Walli Dimmer (FGWDEU) have not this problem and show controls for light level changing.
The Dimmer 2 work fine with Domoticz and the same controller (Z-Wave.me UZB).

I have 20+ of these devices, not having any problem controlling the light level.
zwave-js-ui: <IP_ADDRESS>f4c89
zwave-js: 13.10.3

@chdelaba could you tell me the correct zui/zjs version please? The ones you reported are wrong, I think you reported the integration and addon versions. In order to get versions just click on the blue ? icon on zui topbar and paste here the content.
Also giving that those devices are working well for @dffffffff could you tell me the fw version of your device?

The both add-ons don't run at the same time. As the ZJS don't work for the FDG212, I stopped the ZJS, install and stated the ZUI to test.
Z-Wave JS UI : 9.26.0
Z-Wave JS : 13.10.3

Also giving that that device is working well for @dffffffff could you tell me the fw version of your device?

FWIW I have two FGD212 (EU) FW 3.5 working just fine in z-wave-js-ui 9.27.7, and they've worked since at least 9.2.3.

FW 3.5 for my FGD212.
The FGD212 have no 'Multilevel Switch V4' as the FGWDEU.
Screenshots of ZUI for FGD212 and FGWDEU :

I would try re-interviewing the node, (Advanced->Re-interview Node) and see if the missing CCs show up

I have interviewed the node and still no switches/dimmer.
Running zui/mqtt.

Also giving that that device is working well for @dffffffff could you tell me the fw version of your device?

3.5
Screenshot of configuration


implement constrained restore that only walks paths specified in the --include pattern

If the user is doing restore using "--include" paths, and all of the
given paths are absolute (begin with '/'), and no glob match chars are
present, we can prevent walking the entire restore tree, and instead
visit only subdirs that match the given "--include" paths.
This is a huge speedup for large/remote repos. In my testing with s3,
I went 53m18s to 1m17s. Prior to this patch, the restore often failed
to complete at all due to timeouts.

There are a couple of Printf() calls at in cmd_restore.go @ L146 and L150 you might want to elide, or send to logging. I'm not totally sure what the preferred conventions are in restic.

Hey, thanks for trying to make restic more efficient. I'm not sure if you're aware that a similar PR is still open (and I need to find time to review it) here: #1044 Would you mind having a look over there?

My bad, I guess I didn't do a good job checking for similar issues. The proposed solution by @lloeki is much better than mine. In fact I tried to go down that route ("childMayMatch"), but punted on the difficulty, and so my PR only tries to handle absolute, non-globbed paths. Happy to close my PR, thanks!


fix: cookie naming for short cookies

Previously, cookie names always had a suffix of the form "-{i}" appended to them. With this change, the suffix is omitted if the cookie is short enough (< 4 KB) to not be split into multiple chunks.
If the cookie is so big that it is split into several chunks, the chunk number suffix is appended, as before.
Fixes #3090

@all-contributors add @betaprior for code


Commit Breakdown by Repo Card

It would be nice to show what repos are getting all the commits of a user, reflecting effort breakdown by proportion.

closed via https://github.com/sedouard/gittrack/commit/720ff32997ce40781a9ecd509cbe2f6ea26e3276


chore(main): release 0.4.0

:robot: I have created a release beep boop
0.4.0 (2023-03-03)
Features

enhance release action (51f5d78)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/samuele-cozzi/obsidian-marp-slides/releases/tag/v0.4.0 :sunflower:


Move parsers out of cardano-cli.hs and into Cardano.CLI.Parsers

cardano-cli.hs has become cluttered with way too many parsers. It now makes more sense to house these in a separate module Cardano.CLI.Parsers. This PR does not change any functionality, it only moves code.

bors r+


[DPE-2182] Fix allowed units relation data field

Issue
Solution

@marceloneppel is it still topical?

It still topical. I'm updating the branch and re-running the CI to later move this to review.

Closed as some other fixes are needed first.


Fix some invalid generated YAML.

Excessive chomping on Helm templates was causing the YAML divider --- to end up appended to the end of the previous line.

Sorry, this has been merged... it's been squashed and the remote branch has been deleted so it looked like the branch wasn't pushed at all.


Bug -  TeamView is not mobile responsive

Not Responsive for specially IPAD

is anyone assigned this issue? if not, can I?

@MadhushaPrasad No problem, You can assign the issue to yourself.

@MadhushaPrasad No problem, You can assign the issue to yourself.

ok i will


Explain different default contexts (fx with and without branch protection)

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches
What part(s) of the article would you like to see updated?
Some note regarding "default" behavior explicitly, would be helpful.
The documentation may be strictly correct, but certain assumed or non-obvious interpretation of "default" is likely confusing (it was for me). I assume "default" means "always without any overriding setting there is one and only one presumed value". To my surprise, "default" is contextual and may mean the exact opposite in different contexts.
The specific example I ran into (though there are numerous examples):
By default, in both git and github, 'git push --force' is allowed, even to master.
However, with branch protection enabled, then by default 'git push --force' is not allowed, by default.
The documentation clearly states that allow_force_pushes = false is default.
But it's only default in that context and not default (opposite default) in the default context (no branch protection).
Additional information
No response

All easy and quickly parts

Closing this issue as it was resolved with the closing of PR 18935


Feature Request: Accept only two themes: dark and light

Hi there,
I hope you're doing well.
I wanted to suggest that the extension limit its theme options to just two when the user requests it: light and dark. This would allow users to choose their preferred theme based on the website they are visiting.
Personally, I usually prefer the light theme, but I switch to dark for sites like GitHub and Pocket Casts, which works well for me.
However, I've noticed that some websites incorporate yellow elements, particularly in their banners, which causes Firefox to adopt a yellow hue as well. This is something I really dislike. I would much prefer to have only light and dark themes available.
Is there a way to use this with the current options, or can we look into adding these specific options?
Thank you for considering my request.

Closed in favour to "Discussions" tab


Changed CloudMapper operator file selection to match other operator file selection

Allows users to select files from the uploaded datasets, mimicking the functionality of other file selectors.

Can you check if the Cloudmapper operator is working before the change? If so, test to see if it works with your change.

Looks good! Thank you!


How to visualize the test results

Could you help me solve the problem?
My<EMAIL_ADDRESS>

Any point cloud visualization tool should work. You can try mayavi.


GEODE-4712 GEODE-5943: bounce vm after each test to fix flaky test

Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

@kirklund I talked to Eric about this. He thinks bouncing the VM should be the approach here. But I think there may be other ways as well. maybe we can pair on this to find a better approach. I know why this happened, but I am not sure what's the correct way to fix the flakiness.

Yesterday, Jinmei and I discovered that the JVM which goes critical and causes the failure has 12 GemFireCacheImpl instances in it. So this test seems to be hitting some sort of memory leak that needs to be fixed (not sure if it's a test or product leak).


Question about chat-like apps

Hey, just found out this package, nice one!
I am making a Message Logs system for my app, which works very similarly to a messaging app. I came to an issue that I hope someone can point me a faster solution than me creating a new from the scratch.
I will have a Flatlist to display the messages, and the messages may be added to the end of the array/object or somewhere in the middle, on demand if the client doesn't own it.
This package looks to solve part of my issue, but I still don't know how to handle the FlatList data, that may be really long. I want to have some sort of pagination, so I won't have a 10000 length array in the RAM and a long time to update it on new data fetched.
Does any one here have experience on that? Thanks!

@ammarahm-ed I had the idea of having an object of
{ [logId: string]: { logData: Log } }, which in Log I have a server timestamp property.
When fetching new data from the server, besides adding the data to this object, I want to have an array of the order of those messages [logId, logId...].
To know if I own or not a fetched data, I lookup on the object. To know the order and position of it, I compare the timestamps using the array and the expected position. If it have an equal timestamp, I will then order it by logId.
This looks good, but, as it uses an array, looks bad having to use setArray for an entire array of 10000 items, for example, for each new data fetched, even if using an timeout to write in batches.
How could I finish this system to have the best performance? Could be there a way to smartly work with this array without having to rewrite it entirely the time?
I saw that there is a Query system. Could it help?


Testing server found

Where do we deploy the test website?

Heroku seems like a good candidate

Maybe look into AWS or Google Cloud?

Work together with Susan on this


expose embedAs object key for twitter video embeds

referenced micnews/embeds#24 - expose embedAs object key for twitter video embeds.
Depends on PR#30

@nazar can you update this to use the latest embeds so that CI can pass? Thanks

Hey @kesla - done and sorry for the delay :D

@iefserge any comments? This LGTM!

looks great 👍


extension slows down intellisense features

Actual Behavior
When this extension is enabled intellisense features such as go-to-definition and hovering for type info are noticeably slower than usual, taking several seconds when they would normally be close to instantaneous. This includes for symbols that are not part of a GraphQl query such as TypeScript variables.
Expected Behavior
Steps to Reproduce the Problem Or Description
Specifications

GraphQL for VSCode Extension Version: 0.3.18
VSCode Version: 1.61.1
OS Name: Mac OS
OS Version: 11.6

Logs Of TS Server || GraphQL Language Service
10/15/2021, 4:28:05 PM [4] (pid: 10297) graphql-language-service-usage-logs: {"type":"usage","messageType":"initialize"}
10/15/2021, 4:28:24 PM [4] (pid: 10297) graphql-language-service-usage-logs: {"type":"usage","messageType":"textDocument/didOpen","projectName":"default","fileName":"file:///Users/nathanielpalmer/simplisafe/projects/ss-ecomm-frontend/src/templates/PartnerPage.tsx"}
10/15/2021, 4:31:50 PM [4] (pid: 10297) graphql-language-service-usage-logs: {"type":"usage","messageType":"textDocument/didOpen","projectName":"default","fileName":"file:///Users/nathanielpalmer/simplisafe/projects/ss-ecomm-frontend/src/componentMappings.ts"}
[Error - 4:31:50 PM] Request textDocument/documentSymbol failed.
  Message: Request textDocument/documentSymbol failed with message: A cached document cannot be found.
  Code: -32603 ```

I have a similar issue, when i open a project in vscode, my mac goes nuts spawning a "rg" process that totally kill performance and battery. As soon as i interrupt those processes, Graphql: Language Feature Support crashes.

handleWorkspaceSymbolRequest is extremely slow. With some manually injected logging lines, using vscode's quick pick menu (ctrl/cmd+p) to search for a file results in the following:
[Info  - 12:47:04 AM] handleWorkspaceSymbolRequest {"query":"server"}
[Info  - 12:47:08 AM] handleWorkspaceSymbolRequest file:///redacted/13000-lines-long/schema.graphql 3496ms docSymbols 10543
[Info  - 12:47:08 AM] handleWorkspaceSymbolRequest 3497ms 3 documents 10543 symbols of 0
[Info  - 12:47:08 AM] handleWorkspaceSymbolRequest {"query":"server/tests"}
[Info  - 12:47:11 AM] handleWorkspaceSymbolRequest file:///Redacted/13000-lines-long/schema.graphql 3326ms docSymbols 10543
[Info  - 12:47:11 AM] handleWorkspaceSymbolRequest 3327ms 3 documents 10543 symbols of 0

This indicates to me that caching needs to be improved for workspace symbol requests. For now, i'm just disabling that feature by manually commenting out the feature in my local extensions folder.

logging code
      async handleWorkspaceSymbolRequest(params) {
        if (!this._isInitialized) {
          return [];
        }
        this._logger.info(`handleWorkspaceSymbolRequest ${JSON.stringify(params)}`)
        if (params.query !== "") {
          const start = Date.now();
          const documents = this._getTextDocuments();
          const symbols = [];
          await Promise.all(documents.map(async ([uri]) => {
            const cachedDocument = this._getCachedDocument(uri);
            if (!cachedDocument?.contents[0]?.query) {
              return [];
            }
            const start = Date.now();
            const docSymbols = await this._languageService.getDocumentSymbols(cachedDocument.contents[0].query, uri);
            const duration = Date.now() - start;
            this._logger.info(`handleWorkspaceSymbolRequest ${uri} ${duration}ms docSymbols ${docSymbols.length}`)
            symbols.push(...docSymbols);
          }));
          const results = symbols.filter((symbol) => (symbol === null || symbol === void 0 ? void 0 : symbol.name) && symbol.name.includes(params.query));
          const duration = Date.now() - start;
          this._logger.info(`handleWorkspaceSymbolRequest ${duration}ms ${documents.length} documents ${symbols.length} symbols of ${results.length}`)
          return results;
        }
        return [];
      }

Hello!
I have a similar issue with one of my projects. But can't reproduce it with exact steps.
Sometimes it takes more than 10-20 seconds to display intellisense features (and 100% cpu load). Today I tried to debug this extention, but it worked well. Maybe the graphql-codegen in watch mode can cause an issue in my case
Can someone share example and steps to repro?


JsonPackage is not setting refinedDeclaration for members of top-level objects

In loadDeclarations(), refineMembers() is called for each declaration in order to set Declaration.refinedDeclaration on all members, but this is not happening for top-level values like true.
I don't know how correct this is, but adding the following seems to work:
                } else if (m.get(MetamodelGenerator.KEY_METATYPE) instanceof Value) {
                    TypeDeclaration td = ((Value)m.get(MetamodelGenerator.KEY_METATYPE)).getTypeDeclaration();
                    if (td != null) {
                        refineMembers((ClassOrInterface)td);
                    }
                }

as the last else if at https://github.com/ceylon/ceylon-js/blob/master/src/main/java/com/redhat/ceylon/compiler/js/loader/JsonPackage.java#L146

@chochos can you take a look at this please? Fight it out with @jvasileff if this is for 1.2.3 or 1.3 :)

I've been using this patch in Dart's JsonPackage.java for ages. It's completely up to @chochos if he want's this for JS  😄


Refine example

@navalani, here's an updated Debugger and if nobody watching objects, I'll merge it soon.  You might notice the TestDebugger file that shows the debugger working on actual rules, documents, and Odin.  Changes in Extractor and ExtractorEngine show what I hope is a minimally invasive way to incorporate the debugger into the Odin code.  Then the hard part is getting it to debug, of course.  FYI @MihaiSurdeanu.


ValueError: Invalid cache_implementation (dynamic). Choose one of: ['static', 'offloaded_static', 'sliding_window', 'hybrid', 'mamba', 'quantized', 'static']

After FT  "AnatoliiPotapov/T-lite-instruct-0.1" model, I tried to generate something via:
model = FastLanguageModel.for_inference(model)
messages = [
{"role": "from","from": "human", "value": "Is 9.11 larger than 9.9?"},
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt"
).to("cuda")
text_streamer = TextStreamer(tokenizer)
_ = model.generate(input_ids=inputs
, streamer=text_streamer
, max_new_tokens=128)
But it raised:
ValueError: Invalid cache_implementation (dynamic). Choose one of: ['static', 'offloaded_static', 'sliding_window', 'hybrid', 'mamba', 'quantized', 'static']
Adding
cache_implementation = 'WHATEVER from the list above'.  doesn't change anything!
Please help)))

Hi, Please update unsloth library.
pip install -U unsloth

@AzinY Yep please reinstall and update Unsloth - sorry on the issue!
pip uninstall unsloth -y
pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"

Thanks guys! After Unsloth reinstallation and transformers upgrade -> 4.45.0 it works!


Using Drools or some business-rule and flow-system

We could perhaps use Drools (drools.org) (or something similar to it) to let modders make complicated actions that also require human interaction. Such as complicated Magic: The Gathering cards where the opponent has to separate cards into two piles, and then the current user should choose one of the piles, and then plenty of effects happens afterwards.
http://chat.stackexchange.com/transcript/message/28429459#28429459

This is a bad idea and would only lead to insane complexity.


Python and Dependency Upgrades

This issue is for upgrading all dependencies as high as possible and targeting Python 3.9.
While Python 3.9 will be targeted, we will review other Python versions 3.7-3.10 to see if they past the test procedure detailed below.
Steps:

Upgrade dependencies as high as possible for a Python 3.9 environment.

Set dependencies to allow version changes at the build level (1.1.X)

Test

Run unit tests
Run all examples
Document where the package will or will not work

Repeat Test procedure for other Python environments and document in this issue for now.

Notes:

Python.NET dependency may be our bottleneck (https://github.com/pythonnet/pythonnet/releases)

Results:
Python version support

Platform
Python 3.7
Python 3.8
Python 3.9
Python 3.10

Windows Server 2022
✅
✅
✅
✅

macOS Monterey (12.6)
✅
✅
✅
⏳

Ubuntu 20.04
✅
✅
✅
✅

⏳ = Pending
✅ = Supported
❌ = Not supported
🤷 = No plans to check

Closed with #7.
GitHub actions workflow now tests installation across a variety of platforms and python versions - see table in issue description above.
Python3.10 with MacOS 12.6 is excluded (for now) due to grpcio taking abnormally long to install.
I will recheck this in the future in hopes to include this particular pair.


Update dotnet-isolated-process-guide.md

Correct EnableUserCodeExceptions to EnableUserCodeException

@ggailey777

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Great catch...thanks for the fix! 👍
#sign-off


AddFeatureManagement in xUnit fixture?

I've figured out how to use AddAzureAppConfiguration in my xUnit fixture, when setting up configuration, but I can't figure out how to call AddFeatureManagement since I don't have a service collection.
I want to use IFeatureManager via DI, in my unit tests, but it doesn't seem like there's any way to build an instance without using services.AddFeatureManagement?
Am I missing something, or anyone have a suggestion on how to do this within a unit test?

@kirk-marple you may like to check out the step 3 of this document
https://docs.microsoft.com/en-us/azure/azure-app-configuration/quickstart-feature-flag-dotnet#connect-to-an-app-configuration-store
I know the title of the document is about .NET Framework, but since all relevant libraries are .NET Standard libraries, the code works in .NET Core as well. It shows an example of how to create your own IServiceCollection instance and you can use it in your xunit.

Ah perfect, thanks @zhenlan .  I'll try that out. I skipped over that page since it said .NET Framework.

@kirk-marple
It looks like this was resolved. Please feel free to re-open if not.

how did you used AddAzureAppConfiguration in your xUnit fixture? Can you give an example please?


Roll Chromium 44.0.2403.81.

This is the latest Linux beta release so far. Thanks to Olli Raula for
starting the work.
FFMPEG had to be temporarily rolled forward so that we can continue
building it as a shared library for the time being.
See https://codereview.chromium.org/1141703002 and
https://codereview.chromium.org/1198653005/ for more information.
A few commits in chromium-crosswalk were also dropped because of this
change, as the code which loaded additional ffmpeg libraries via
--proprietary-codec-lib-path does not work anymore. Users wishing to
provide a different ffmpeg version with additional codecs now need to
replace the version built by Crosswalk instead of adding it alongside
the existing library.
Related to: XWALK-3705
Related to: XWALK-4574

LGTM


[Bug]: V8 coverage shows wrong result with native ESM and TS source mapping

Version
27.3.1
Steps to reproduce
jest-coverage.zip

Download and extract jest-coverage.zip
Run yarn && yarn build to build ts files
Run yarn test to test with jest
Run yarn testc8 to test with c8

Expected behavior
Functions in src/foo/bar.ts are never get called, and should be marked as uncovered
Actual behavior
JEST
$ cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage
(node:3040) ExperimentalWarning: VM Modules is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 PASS  tests/test.js
  √ baz (3 ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files |     100 |      100 |     100 |     100 |
 src      |     100 |      100 |     100 |     100 |
  baz.ts  |     100 |      100 |     100 |     100 |
 src/foo  |     100 |      100 |     100 |     100 |
  bar.ts  |     100 |      100 |     100 |     100 |
----------|---------|----------|---------|---------|-------------------

c8
$ c8 node ./c8/test.js
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files |   78.26 |      100 |      50 |   78.26 |
 c8       |     100 |      100 |     100 |     100 |
  test.js |     100 |      100 |     100 |     100 |
 src      |     100 |      100 |     100 |     100 |
  baz.ts  |     100 |      100 |     100 |     100 |
 src/foo  |   64.28 |      100 |       0 |   64.28 |
  bar.ts  |   64.28 |      100 |       0 |   64.28 | 10-14
----------|---------|----------|---------|---------|-------------------
Done in 0.91s.

Additional context
An interesting fact is that if you changed " in src/foo/bar.ts to ', you'll got:
$ cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage
(node:3392) ExperimentalWarning: VM Modules is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 PASS  tests/test.js
  √ baz (1 ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files |     100 |      100 |      50 |     100 |
 src      |     100 |      100 |     100 |     100 |
  baz.ts  |     100 |      100 |     100 |     100 |
 src/foo  |     100 |      100 |       0 |     100 |
  bar.ts  |     100 |      100 |       0 |     100 |
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        0.52 s, estimated 1 s
Ran all test suites.
Done in 2.08s.

The result of c8 is unchanged.
Related: #11891
Environment
System:
    OS: Windows 10 10.0.19044
    CPU: (8) x64 Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
  Binaries:
    Node: 16.13.0 - ~\AppData\Local\Temp\yarn--1637827544795-0.8935630452007528\node.CMD
    Yarn: 1.22.15 - ~\AppData\Local\Temp\yarn--1637827544795-0.8935630452007528\yarn.CMD
    npm: 8.1.0 - ~\Storage\Data\nvs\default\npm.CMD
  npmPackages:
    jest: ^27.3.1 => 27.3.1

Could you check if adding transform: {} to jest.config is helping? See ECMAScript Modules guide.
Disabling transforms might fix this issue. At least it worked for me.

You are right, I missed this point.


Logout is not working

use Event;
is missing at the beginning of file. I'll do a PR

this have been already fixed by
https://github.com/rainlab/user-plugin/commit/c78654895a0aed1b0877c825ca87702536270f69


Request Scan V1 (MVP)- Request Network Explorer

Problem
There is near-zero visibility into requests being created in the Request Network.
Proposed Solution
Create a Request Network explorer "RequestScan", inspired by block explorers like Etherscan, Blockscout, or OnDora, successor to request-explorer
It could offer live feeds of requests being created, real-time dashboards of requests created segmented by each builder, and request creations vs updates.
Definition of Done

[x] #8
[x] Backend - https://github.com/RequestNetwork/private-issues/issues/103
[x] #4
[x] #5
[x] #6
[x] #7

Deployed at https://scan.request.network


chore: document GitHub issues flow

What:

Documents GitHub flows for bugs and feature requests
Recommends communities for asking questions instead of filing issues

Why:
https://twitter.com/samselikoff/status/991395669016436736
One difference I'm proposing is not closing new feature requests to make it easier to use the GitHub UI to sort/filter/browse open requests. But closing issues and adding a "votes needed" is a valid idea, too.

How:

Checklist:

[ ] Documentation
[ ] Tests
[ ] Ready to be merged
[ ] Added myself to contributors table

I set up a community on spectrum. Why don't we add a badge at the top. Probably the last badge on the 2nd line of badges:

[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/react-testing-lib)

:tada: This PR is included in version 2.4.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[FEATURE] Include RDS Proxy Metrics in the RDS namespace

Is there an existing issue for this?

[X] I have searched the existing issues

Feature description
RDS Proxy metrics show up in AWS under the AWS/RDS namespace in Cloudwatch Metrics.
Currently they aren't retrieved when including the relevant RDS Proxy metric name in our config under the RDS namespace with the correct search tags.
This is due to the db-proxy resource filter not being supported, given it is supported in the resourcegroupstagging api supporting this filter under the RDS namespace should allow us to retrieve these metrics
What might the configuration look like?
{
	Namespace: "AWS/RDS",
	Alias:     "rds",
	ResourceFilters: []*string{
		aws.String("rds:db"),
		aws.String("rds:cluster"),
		aws.String("rds:db-proxy"),
	},
	DimensionRegexps: []*regexp.Regexp{
		regexp.MustCompile(":cluster:(?P<DBClusterIdentifier>[^/]+)"),
		regexp.MustCompile(":db:(?P<DBInstanceIdentifier>[^/]+)"),
		regexp.MustCompile(":db-proxy:(?P<ProxyIdentifier>[^/]+)"),
	},
},

Anything else?
No response

I've tested this locally and works as expected, and this passes all existing service tests.
DB proxy metrics appear in local prometheus container running against our AWS account and had no issues.
I would raise a PR for this as it's a 2 line change in the services.go file but am unable to push.
Could you have a look at this when you get a chance please @cristiangreco


Performance of CuPy cp.random.rand and other ufuncs when run on a new stream

Description
Hi!
When profiling a threaded version of an app, I noticed that I was getting significantly slower random number gen when running with a newly created user (non-null) stream.
At first I thought this was just the overhead of creating the stream but the overhead scales with problem size.
n = 1M
On New:  0.00053140998352319
On Default:  0.00011886999709531665

n = 10M
On New:  0.0020523089915513992
On Default:  0.0002732370048761368

Whats going on here?
To Reproduce
import cupy as cp
import time

n = 10000000

for i in range(10):
    with cp.cuda.Device(0) as device:
        A = cp.zeros([n, 1])
        B = cp.zeros([n, 1])

        stream = cp.cuda.Stream()

        device.synchronize()

        start = time.perf_counter()
        with stream as stream:
            A[:] = cp.random.rand(n, 1)
        device.synchronize()

        end = time.perf_counter()
        print("On New: ", end - start)

        start = time.perf_counter()
        A[:] = cp.random.rand(n, 1)
        device.synchronize()
        end = time.perf_counter()

        print("On Default: ", end - start)

Installation
Conda-Forge (conda install ...)
Environment
OS                           : Linux-4.14.0-<IP_ADDRESS>chaos.ch6a.ppc64le-ppc64le-with-glibc2.17
Python Version               : 3.8.13
CuPy Version                 : 11.1.0
CuPy Platform                : NVIDIA CUDA
NumPy Version                : 1.22.4
SciPy Version                : 1.9.1
Cython Build Version         : 0.29.32
Cython Runtime Version       : 0.29.32
CUDA Root                    : /user/.conda/envs/test
nvcc PATH                    : None
CUDA Build Version           : 10020
CUDA Driver Version          : 11060
CUDA Runtime Version         : 10020
cuBLAS Version               : (available)
cuFFT Version                : 10102
cuRAND Version               : 10102
cuSOLVER Version             : (10, 3, 0)
cuSPARSE Version             : (available)
NVRTC Version                : (10, 2)
Thrust Version               : 100907
CUB Build Version            : <unknown>
Jitify Build Version         : 3ecec55
cuDNN Build Version          : None
cuDNN Version                : None
NCCL Build Version           : None
NCCL Runtime Version         : None
cuTENSOR Version             : None
cuSPARSELt Build Version     : None
Device 0 Name                : Tesla V100-SXM2-16GB
Device 0 Compute Capability  : 70
Device 0 PCI Bus ID          : 0004:04:00.0
Device 1 Name                : Tesla V100-SXM2-16GB
Device 1 Compute Capability  : 70
Device 1 PCI Bus ID          : 0004:05:00.0
Device 2 Name                : Tesla V100-SXM2-16GB
Device 2 Compute Capability  : 70
Device 2 PCI Bus ID          : 0035:03:00.0
Device 3 Name                : Tesla V100-SXM2-16GB
Device 3 Compute Capability  : 70
Device 3 PCI Bus ID          : 0035:04:00.0

Additional Information
No response

Can you try the following?
import cupy as cp
import time

n = 10000000
stream = cp.cuda.Stream()

for i in range(10):
    with cp.cuda.Device(0) as device:
        A = cp.zeros([n, 1])
        B = cp.zeros([n, 1])

        device.synchronize()

        start = time.perf_counter()
        with stream as stream:
            A[:] = cp.random.rand(n, 1)
        device.synchronize()

        end = time.perf_counter()
        print("On New: ", end - start)

        start = time.perf_counter()
        A[:] = cp.random.rand(n, 1)
        device.synchronize()
        end = time.perf_counter()

        print("On Default: ", end - start)

You are creating a new stream every iteration, and I think that the first time you use a stream, there is some CUDA hidden overhead. If you create the user stream only once and reuse it, the overhead seems to disappear.
On New:  0.0008554210653528571
On Default:  0.0008539689006283879
On New:  0.0008570010541006923
On Default:  0.0008550890488550067
On New:  0.0008548949845135212
On Default:  0.0008554150117561221
On New:  0.000854428973980248
On Default:  0.0008547489996999502
On New:  0.0008549680933356285
On Default:  0.0008536850800737739
On New:  0.0008594229584559798

If you are creating a stream for each thread, enabling a per-thread default stream could be handy. This way you don't have to manage a stream on your own.
https://docs.cupy.dev/en/stable/reference/environment.html#envvar-CUPY_CUDA_PER_THREAD_DEFAULT_STREAM

Unfortunately, we have to manage the streams explicitly ourselves for our use case (to track events on queues which may not map 1-1 with the threads used to launch them).
While pre-initializing and maintaining a pool of streams is ...possible and worth looking into (although a frightening refactor), I'm more curious about why this overhead exists and especially why it (1) depends on the input size and (2) depends on the kernel itself.  As this behavior is odd and definitely unexpected.

It is not overhead directly from the CUDA stream initialization. I've used this pattern in C++ effectively in the past, and repeating a similar experiment directly there with a busy sleep kernel shows that the creation overhead is in the microseconds at most.

The overhead depends on the cupy function. Repeating the python experiment by running a BLAS call of the same granularity (n=600 on my machine) shows a significantly smaller overhead. Running with a cython wrapped version of the busy sleep kernel on the cupy created stream in Python shows no large overhead at all.

It shouldn't be any kind of CUDA handle first-initialization as that's mostly taken by the first loop.
Although it could potentially be resetting any workspaces associated with the handle (https://github.com/cupy/cupy/issues/4676)?
For the random example, the stream version does show 9 more calls to cudaMalloc which accounts for 0.016 seconds and the bulk of the overhead.
Why do random generation (and other ufuncs like A[:] = A + B or A = A + B) need such a large stream specific workspace?
Python Timings
Random Fill (n=10M)
On New:  0.0020523089915513992
On Default:  0.0002732370048761368

A = A @ B.T (n=600, m=600)
On Stream:  0.0005923854187130928
On Default:  0.0002869432792067528

Cython Busy Sleep on Cupy Thread
On Stream:  0.000256367027759552
On Default:  0.00025435350835323334

C++ Experiment
#include<unistd.h>
#include<stdio.h>
#include<cuda.h>
#include<sys/time.h>
#include<chrono>
#include<cuda_runtime_api.h>
#include<cstdio>
#include<cstdint>

using namespace std;
using namespace chrono;

__device__ void gpu_sleep_impl(unsigned long sleep_cycles)
{
    unsigned long start = clock64();
    unsigned long cycles_elapsed;
    do { cycles_elapsed = clock64() - start; }
    while (cycles_elapsed < sleep_cycles);
}

__global__ void gpu_sleep(clock_t clock_count){
    gpu_sleep_impl(clock_count);
}

void sleeper(const int device, const unsigned long t, cudaStream_t stream){
    gpu_sleep<<<1, 1, device, stream>>>(t);
}

void sleeper_default(const int device, const unsigned long t){
    gpu_sleep<<<1, 1, device>>>(t);
}

int main(int argc, char* argv[]){

    float t = atof(argv[1]);

    long cycles_per_second =<PHONE_NUMBER>.5;

    for(int i = 0; i < 10; ++i){

        cudaDeviceSynchronize();

        auto time_start = chrono::high_resolution_clock::now();
        cudaStream_t stream;
        cudaStreamCreate(&stream);
        sleeper(0, (int)(t*cycles_per_second), stream);
        cudaDeviceSynchronize();
        auto time_stop = chrono::high_resolution_clock::now();

        printf("On New: %f \n", chrono::duration<double>(time_stop - time_start));

        time_start = chrono::high_resolution_clock::now();
        sleeper_default(0, (int)(t*cycles_per_second));
        cudaDeviceSynchronize();
        time_stop = chrono::high_resolution_clock::now();

        printf("On Default: %f \n", chrono::duration<double>(time_stop - time_start));
    }
}

Although it could potentially be resetting any workspaces associated with the handle (https://github.com/cupy/cupy/issues/4676)?

CuPy manages cuBALS handles per-thread, so this should be a penalty only for the first iteration.
https://github.com/cupy/cupy/blob/9d3bf3f208e40eff8bea14a7b0b2b3bf14fb488e/cupy/cuda/device.pyx#L259-L285

For the Random Fill example, the stream version does show 9 more calls to cudaMalloc which (I think) accounts for 0.0016 seconds and the bulk of the overhead.

This sounds like a cause. CuPy has a separate memory pool per stream to avoid invalid reallocation across streams, so recreating a stream will not benefit from the pool.

Ok yep, that each stream has a separate memory pool appears to be it. Explicitly clearing all active memory pools before the kernels leads to the same time (0.002 seconds) for all regardless of where and how they are launched. Thanks!
Using the new/experimental MemoryAsyncPool is also a workaround. For the random kernel it can closely match performance:
On Stream:  0.0003380347043275833
On Default:  0.00033360160887241364

Thanks for reporting @dialecticDolt. We can consider removing the experimental status in the near future now that the CUDA support is stabilized.


General updates to the data node management and configuration pages

Description
While adding documentation for Parquet to the DN management and configuration pages (#298), some other improvements may be made to these pages.
Expected change

The phrasing "described in the previous section Data node configuration" in data-node-config.md should be reworded. Consistency across all data nodes (currently I notice Parquet and JSON to be using updated phrasing).
Remove the data_node.write({"date": "12/24/2018", "nb_sales": 1550}) example for CSVDataNode. It would currently throw an error from the pd.DataFrame constructor. The argument needs to be wrapped in a list.
Other general phrasing/typo changes.

Hello Zac,
I saw a draft PR on that topic. Are you working on this ?
Thx,

Hi @jrobinAV. Sorry, it shouldn't be draft - it's ready for review

Oh, even better!
Thx!


Add more F77/deprecated/obsolescent features

Several more features and edge cases required to get good F77/fixed-form compatibility. Main two are:

array-spec in common blocks: COMMON /block/ V(10)
capturing end do when used with label-do blocks: do 100 i = 1, 10

With this PR, we can now parse 99.70% of >7000 .f90 files from about 60 projects.
@stadelmanma After merging this, please could you make a new release? Then I can update the fixed-form grammar

Merged and cut a v0.2.0 release, did this fix #103?

Not a proper fix, but just a workaround for the most common case


Improve the onboarding flow for a user creating a collective and selecting a fiscal host

User story

I  would like to create a new collective on the platform, but I am not quite sure what that means and what are the implications of doing this, especially when it comes to handling money.

Best solution for this problem
A step-by-step onboarding experience that guides me through decisions I need to make on that path to creating a new collective. The critical path for this user experience:

I first join the platform as an individual user.
I am presented with the possibility of creating a collective.
I create a collective profile that I can flesh out.
When I would like to be able to receive funds I am given information about fiscal hosting and how to choose a fiscal host that is suitable for my collective.
I can then apply to a fiscal host (or become an independent collective) so that I can start receiving contributions and submitting expenses.

MVP
The initial drivers for this effort were:

Remove the current junction where a user is prompted to choose between an "open-source" or "community" collective (and address this later on in the critical path).
Clearly surface 1st party hosts.
Downplay  the option to become an independent collective.

During the shaping of this pitch the scope was expanded to include a low-cost change that would address additional high-value usecases that may be driving a user to join the platform:

Create a collective remains the critical path (and priority for this effort).
Contribute to a collective (which leads to some kind of search/discover experience).
Submit an expense in which it is assumed that the user knows to which collective they wish to submit the expense (and is supported in finding the collective and being directed to the submit-expense capability.
Create an organization (which leads to the existing create organization capability).

The following demo from @toomuchinformation captures the scope of work intended for this effort:
https://www.loom.com/share/0ca0a9328b7a4e3c8c7e18ed3329ed37
Boundaries
The shaping work that went into this pitch clearly indicated that there is a lot of potential for scope-creep in this project. There is a lot more that can be done to improve the onboarding experience. We anticipate that #6385 will create favorable conditions for moving forward with this work.
The objective for this effort should stay focused on the critical path for creating a collective and the secondary paths which redirect a user to other places on the platform.
The user-interfaces that are instantiated in this effort lack clear placement on the platform. For any of these screens one can ask: "Where I am? How did I get here? How can I get back here if I stop now and resume later?" to which we do not provide clear answers. When the workplace is established, we will be able to direct the user to the individual workplace where these options and potentially other resources can be made available. The personal workplace (instantly available upon creating a personal user account) will be the place to introduce the user to the potentials of the platform and guide them in their first steps.
We therefore, anticipate that the work we do in this effort will be later integrated into the workplace experience.
Priority: P1 high frequency, high impact

Summary of shared understandings from kickoff meeting:

This single issue actually represents two parallel efforts:

The first is to implement onboarding improvements based on the critical path of creating a collective as outlined in the pitch above.
The second is to continue to iterate in research and design on further potential improvements to the onboarding experience. This effort will also lean into the "workspace" experience #6385 that has also been prioritized for this cycle.

We are focusing on the  critical path involved in creating a collective. Any additional improvements (for alternative onboarding scenarios) are contingent on both availability of engineering resources and clarity about desired outcomes we want to achieve.
We are starting work with the "find a fiscal host" screen (and wiring it into "apply to fiscal hosts" screens) because:

it is currently weak (both in terms of function and performance)
it is clearly shaped and understood
it is the most expensive part of this effort
it can be easily wired into the existing parts of the collective-path onboarding experience.

We will continue (based on time and availability) with rewiring the onboarding experience based on this sequence:

Create user account
Create a collective (minimal information without having to decide "open-source or community").
Add admins (there was a conversation about possibly removing this step).
Leading to a new collective profile from which the new "find a fiscal host" screen can be launched.

Impressions from the firs implementation round:
https://www.loom.com/share/85acb08295494bd8ad2d0353c81c2496
@hdiniz @aminakazi @Betree @iamronen

Onboarding flow MVP
@hdiniz @aminakazi @Betree @iamronen

@Memo-Es Yes, I feel that the "narrowing" down is going to be more usable given:

The current "menu of fiscal hosts"
and the still unresolved questions around what collective admins know and need in order to approach the question of how to find and select a fiscal host.

I feel this design as an improvement over what we have, but we still have a way to go in understanding user needs and addressing them well.
In the last part of the demo you showed a "fiscal host services" filter and I think this underestimates the challenge in creating a meaningful offering that enables:

Fiscal hosts to announce services
Collective admins to understand what it possible and what they need
and finally the option to find fiscal hosts that can offer what they need

related assessment.

Update week 6

[ ] Review the latest version of the "Join a Fiscal Host" page
[ ] Connect the latest version with the version in production
[ ] Leave a set of next steps based on the latest UX review

cc @hdiniz

2023 Cycle 3
Just a quick not to say that we're moving back to a more design-led project for the next cycle, from the pitch:

We want to research a new experience embedded in the “Collective onboarding” that helps our users learn by doing what they can do with the platform. A "Sandbox experience" i.e., testing the main features of the platform (Manage contributions, paying expenses, setting-up projects and managing a transparent budget with.

Tomas putting together a test for internal demo's initially followed by outreach to external users.

Leaving here the evidence of the design work for the onboarding on top of #6385
@BenJam @iamronen @tomsusemihl
https://www.loom.com/share/720019218ffd453292fe59afc1b01934

@Memo-Es some feedback on your demo
Before getting into the contents of the demo, back in the beginning of the cycle you began a research initiative which I thought was a good start and would like to see continued (my reflections on that research are here). I feel that while the changes you are proposing here are generally OK, but we still do not have a clear "bigger picture" of how we want to approach onboarding. I would like to see that research move forward.
The feedback on what you presented was a bit too much to put in writing so a short loom:
https://www.loom.com/share/b2e63bae6550479aae068d04143f24fa

@iamronen @Memo-Es I'm going to fold this into the 'parent' issue #4829


Issue running single-host-cpu profile on docker Windows

Currently getting this error in inference:
I checked the container and it uses 3.12.x for libprotoc (which should be fine as shown in the message?)

Updating the container to 3.20 via:
pip install protobuf==3.20
just opened a whole new can of worms:

Did a dirty hack of downgrading the container again:
pip install numpy==1.23.4
This time it shows:

On the UI, it start after clicking 'create peer connection', but then disconnects after 15 second-ish:

.env remains default except for this change:
`

`
All these issues aside, have you by any chance, implemented an inference that uses RT-DETR?

Hi, thanks for your detailed report. I remember that I've intentionally downgraded one or more library versions to make it work during development. Some changes might be made on dependencies since a long time, so maybe it needs upgrading some dependency versions.
I need a few days to try to reproduce your issue on Windows machine.
About RT-DETR, no, I haven't tried it.

Thanks @adalkiran!

Hi @jericko-ag , sorry for late update. I checked out the problem, and found that there are some problems with inference (Python) and mediabridge (Go) sides.

Inference side: YOLOX's used version seems deprecated, because there are big changes in its dependencies. They've published newer version, but it can't be downloaded from PyPI, we need to download it from github.
Then, there's another issue with the latest version, one dependency version of YOLOX's new version must be downgraded (https://github.com/Megvii-BaseDetection/YOLOX/issues/1781#issuecomment-2243360660)
So, I need to do these fixes in Dockerfile

Mediabridge side: After my latest commit (a long time ago), it seems browsers started to prioritize IPv6 addresses for local addresses. But the browser and the mediabridge can't match on a candidate pair.
I've solved this issue with a trick, but the end user must wait until all other candidates have failed. I've achieved to process frames successfully, but with these tricks, this is unacceptable to wait so long time to start.

I'll be working on this issue, I'm sure I'll find better method to fix.
Thanks for your patience!

@jericko-ag , could you please pull the latest version and try again?


Homepage cards can be customized

As ...
Austin - Network Automation Engineer
I want ...
to have the option to choose which family cards are showed in the Nautobot homepage, to provide a more relevant view of Nautobot status.

Eventually, it would be great to also be able to add new cards from a plugin (it would go to a different issue if this makes sense)

So that ...
the Nautobot homepage would show only relevant information
I know this is done when...
I have an option to customize the homepage via settings, ideally per user, but it could also work defining it globally in the nautobot_config.py
Optional - Feature groups this request pertains to.

[ ] Automation
[ ] Circuits
[ ] DCIM
[ ] IPAM
[ ] Misc (including Data Sources)
[ ] Organization
[ ] Plugins (and other Extensibility)
[ ] Security (Secrets, etc)
[ ] Image Management
[X] UI/UX
[ ] Documentation
[ ] Other (not directly a platform feature)

Database Changes
don't think so
External Dependencies
No response

Plugins can already add new homepage content (https://nautobot.readthedocs.io/en/stable/development/homepage/) and you can use the HIDE_RESTRICTED_UI config setting if you want content that a user doesn't have access to to be removed from the home page.
Is the request here to be able to remove/hide homepage content that core provides, and that the user has permissions to access?

Is the request here to be able to remove/hide homepage content that core provides, and that the user has permissions to access?

Yes, the request is to remove/hide content not limited to the permissions to access

Initial implementation in #4908. We can refine further in future.


http-trace: the "exclude /pyctuator/**" option is not available in UI

The "exclude /pyctuator/**" checkbox is missing from the http-trace UI - it is needed to hide all the requests SBA is issuing to the managed service.

In order for the "Http Traces" tab to be able to hide requests sent by Spring Boot Admin to the Pyctuator endpoint, pyctuator_endpoint_url must be using the same host and port as app_url.
I've updated the examples accordingly and added a section explaining this in the doc.


Fix event listener leak

When request handles a redirect, extra event listeners for the pipe and end events are erroneously attached to the request object.  This causes a few problems:

When the request finally completes and end is fired, the cleanup function ends up running multiple times (1 + number of redirects).  This doesn't actually hurt anything, but it is wasteful.
If someone were to pipe to the request after a redirect had occurred (which is an error), the pipe event handler will run multiple times, thus emitting the error event multiple times.
If there are 7 or more redirects, node will print leak warnings to stderr:

(node) warning: possible EventEmitter memory leak detected. 11 pipe listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
    at Request.addListener (events.js:239:17)
    at Request.init (./node_modules/request.js:507:8)
    at Redirect.onResponse (./node_modules/lib/redirect.js:148:11)
    at Request.onRequestResponse (./node_modules/request.js:898:22)
    at emitOne (events.js:77:13)
    at ClientRequest.emit (events.js:169:7)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:415:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)
    at Socket.socketOnData (_http_client.js:305:20)
    at emitOne (events.js:77:13)
(node) warning: possible EventEmitter memory leak detected. 11 end listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
    at Request.addListener (events.js:239:17)
    at Request.start (./node_modules/request.js:797:8)
    at Request.end (./node_modules/request.js:1358:10)
    at end (./node_modules/request.js:575:14)
    at Immediate._onImmediate (./node_modules/request.js:589:7)
    at processImmediate [as _immediateCallback] (timers.js:383:17)

These warnings have been reported many, many times (#107, #281, #311, #585, #622, #673, #708,
#842, #870, #1497, #1809) but the underlying issue has never actually been properly resolved.
This fixes the leak for good by not attaching additional handlers if they're already there.
The diff makes it look like there are more changes than there actually are due to changes in indentation.  The only actual change is to wrap the event listeners:
+  if (EventEmitter.listenerCount(self, '...') === 0) {
     ...
+  }

The small client & server I used to demonstrate this issue can be found here.

I'm just here to confirm that this issue is still not fixed, a simple way to test is to put this:
<?php

$n = (int) @$_GET['n'];

if ($n == 10) {
	echo 'RESULT';
} else {
	header('Location: '.$_SERVER['SCRIPT_NAME'].'?n='.($n+1));
}

script on localhost and fetch with request it to see the annoying warning.

Are there any plans to resolve this issue for good? We're seeing this memory leak as well and would appreciate the resolution.

We're still waiting for this to be resolved.  @mikeal @nylen @FredKSchott @simov?

So is it time to merge this or what? :-)

+1 waiting on this.

+1

:+1:

+1

Is anyone maintaining this repo anymore?

This PR has been closed as "abandoned" as a part of an automated cleanup. If this is a mistake and you are still interested in merging this PR, please do the following:

[ ] Rebase your changes onto the master branch (even if there are no merge conflicts, we want to make sure your change is under the most recent tests).
[ ] Push your updated branch to Github to update this PR.
[ ] Make sure this PR's Travis tests are still passing. (Run npm test locally if tests are still failing).
[ ] Comment here to let us know that you've updated the PR and are still interested in getting it merged. Somebody from the project will respond and work with you to review.

Thank you for your understanding. If you have any questions, please check out https://github.com/request/request/issues/2556 and feel free to comment / ask anything there.

@daguej would love to get this merged, sorry I'm only just seeing this now. In addition to the above, we'll also need a test to confirm this issue / confirm this fix / make sure it never regresses again.


Prevent a crash when the find cursor is not defined.

For some reason currently unknown to me, I am seeing numerous crashes occur in Publication.prototype._getCursor due the the find cursor becoming invalidated (typically on a restart of Meteor or when a user logs out). This fix makes the function return null instead of trying to call apply on an undefined value.

Okay, turns out the problem was self-induced, but I think I can rework this patch to make it useful. I have a case where I want to return an empty publication instead of a composite publication when the user isn't logged in (and I don't want to create a composite publication with the user query at the top query since I want to perform some permissions checks first). So, I originally wrote my code like this:
Meteor.publishComposite 'MyPublication', ->
    user = Meteor.users.findOne(@userId)
    if not user? return {}
    checkPermissions(user) # This can throw an exception and cause a redirect to a 403 page.
    {
        find: # ....
    }

When a user wasn't logged in, it returned an empty blob, causing a crash in Publication._getCursor().
So, I can return an empty publication instead:
Meteor.publishComposite 'MyPublication', ->
    user = Meteor.users.findOne(@userId)
    if not user?
        return {
            find: ->
                null
            children: []
        }
    checkPermissions(user)
    {
        find: # ....
    }

But that is a lot of extra syntax for little gain. Could we make it so that null or undefined option blobs make Publication._getCursor() return null and short-circuit all of the logic?

This is already possible by returning null or undefined in the top level find function. This is discussed in this blog post about halfway down the page (search for "membersOnly"). Sorry you jumped through all these hoops.


build-sys improvement, golangci-lint integration and github build workflow

<EMAIL_ADDRESS>tagged


Add support for Kavita naming convention

The idea
If possible, I'd like to request that the output name follows the Kavita naming convention, similar to how magadex's --save-as "tachiyomi" works.
In general, Kavita uses the following format:
Library Root
  ┖── Series Name
      ┖── Series Name.cbz

You can find more information in their documentation here.
I've been using your work for a while to download mangadex to tachiyomi, but currently, I'm using Kavita on my desktop. It would be really helpful if this downloader also supported their naming conventions.
Why this feature should be added to the app ?
Tachiyomi is widely used on mobile devices, but for desktop platforms, I believe Kavita is more user-friendly.

If possible, I'd like to request that the output name follows the Kavita naming convention, similar to how magadex's --save-as "tachiyomi" works.

Yes it's possible with --filename and --path options with placeholders support. But, this features are not ready yet, and i really don't have free time to working on it. See #80 for progress
Btw, do not use --save-as tachiyomi anymore, it's deprecated and you should use --write-tachiyomi-info

Hello, sorry for taking so long, i got too busy in real life things.
Anyways, this feature has been added in v3.0.0 branch (commit https://github.com/mansuf/mangadex-downloader/commit/3698cf10aa22c14e1225000bffbff4f2a3b55c2e)
You can start trying it now by installing development version (v3.0.0 branch)
Installation with git + pip:
pip uninstall mangadex-downloader
pip install git+https://github.com/mansuf/mangadex-downloader.git@3698cf10aa22c14e1225000bffbff4f2a3b55c2e

If you're installing mangadex-downloader from github releases, you can download the development version in here:
The download files are available in "artifacts" section
https://github.com/mansuf/mangadex-downloader/actions/runs/7249594589/

You can now customize path to kavita naming convetion, like the example below:
Example usage:
# This will download to directory "/home/sussyuser/Library Root/Some manga title/"
# with filename "Some manga title Vol. 0 Ch. 12.cbz"
mangadex-dl "URL" --path "/home/sussyuser/manga/{manga.title}" -f cbz --filename-chapter "{chapter.manga_title} Vol.{chapter.volume} Ch.{chapter.chapter}{file_ext}"

For more information about path placeholders, you can read the documentation here -> https://mangadex-dl.mansuf.link/en/v3.0.0/cli_ref/path_placeholders.html
If you have a problem, issue or bug, you can re-open and comment in this issue tracker here.


when doing a code comparison display equality is not required

Currently when a code comparison is being done, even the display equality is being checked. Incase of a different language, even though the code, system and  version will remain the same but the display will differ. In such cases the code comparison will fail.

Hi @vishnuyar
The CQL language specification distinguishes between "equal" and "equivalent" in part for this reason:
https://cql.hl7.org/09-b-cqlreference.html#equivalent

For Code values, equivalence is defined based on the code and system elements only. The version and display elements are ignored for the purposes of determining Code equivalence.

So the current implementation is compliant with the spec as far as I can tell. That said, I know there's been some discussion about changing with the definition of the equals operator for Codes due to other similar use cases.

Hi @vishnuyar,
Did my last comment resolve your question?

Hi JPercival,
 Yes, it did. We have now modified our way of writing cql to invoke

code equivalence.
Thank you.
Regards,
Vishnu
On Sat, Nov 21, 2020, 03:12 JPercival<EMAIL_ADDRESS>wrote:

Hi @vishnuyar https://github.com/vishnuyar,
Did my last comment resolve your question?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/DBCG/cql_engine/pull/389#issuecomment-731421841, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2HCSIBEY7TBC3FDBSZ7L3SQ3PC3ANCNFSM4PLHGPRQ
.


Upgraded to V5+ but still getting swagger 1.2

Verified the version is 5.3.2 and expect to the below link to return json for the apis:
https://www.website.com/app/swagger/docs/v1
But i got a 404 from above, below link works but returns swaggerVersion 1.2
http://www.website.com/app/swagger/api-docs
I thought V5+ uses swagger 2.0, what am I missing?

Are you still experiencing this issue? There's no code in SB that produces a 1.2 version of the Swagger JSON so there must be something else going on. Could you provide a little more details - perhaps some screenshots would help

Closing due to inactivity


'Play using...' does not work

Related to my feature request #88.
There is a problem with Pulsar playing to another instance of Kodi on the same network via UPnP. The problem is that Pulsar somehow loses the link to the remote player and stops streaming locally. The remote player will continue to play whatever has already been buffered, but then hangs. You can see on the Pulsar machine that no network activity is taking place by the Pulsar daemon. This can be reproduced two ways:

Start a stream with Pulsar. During playback, press the 'Y' key on the keyboard to bring up a dialog to change the playback device, and pick the network player. The playback controls will disappear from Kodi, above sequence of events takes place.

Modify the advancedsettings.xml file to change the default local playback device to the remote player:

<video>
    <defaultplayer>upnp_device_name</defaultplayer>
</video>

Now, anything played locally defaults to play on the remote UPnP device (neat huh?). However the bug above still applies. Playback starts, the local Kodi mini playback controls disappear, and remote playback continues until the buffer runs out.
Both of these scenarios work with XBMCtorrent / KMediaTorrent. However those have some trouble with some weird torrents. And I prefer to be on an actively developed code base anyway.
Let me know if you have any further questions.

im experiencing the same issue here! hope it get fixxed soon