rssguard: 4.1.2 -> 4.2.3

Description of changes

https://github.com/martinrotter/rssguard/releases/tag/4.2.0
https://github.com/martinrotter/rssguard/releases/tag/4.2.1
https://github.com/martinrotter/rssguard/releases/tag/4.2.2
https://github.com/martinrotter/rssguard/releases/tag/4.2.3

Upstream now uses cmake instead of qmake.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 184527 run on x86_64-linux 1

1 package built:

rssguard

Would be cool to fix double wrapping of the binary in a further PR :) Thank you for this contribution!


Unity > Heavy > PD >Heavy >Unity

Hi, I'm working on my 1st software communication project between Unity & PD.
I found a tutorial on You Tube that I thought would be helpful. But the video is almost a year old and possibly dated. The video came with some sample code and how to get the code to function with unity.  How ever the code that was supplied has various errors. one or two I solved but the rest I've no idea.
The 1st problem I have discovered with this code is on line 6 Hv_Test_1_LibWrapper HeavyScript;
instead it should read Hv_Test_1_audioLib HeavyScript;.
Secondly after i solve this error
HeavyScript.SendBangToReceiver ("onOff");
HeavyScript.SendBangToReceiver ("waveToggle");
These heavy scripts aren't recognised by the code supplied from heavy.
Can anyone help me please?

They there @storey89. Have you looked at our Unity documentation yet? It goes over how to create Unity plugins and hook them up to objects (for Audio Libraries).

Hi, I have been looking through the documentation. To gain some knowledge of what the code does. However I've used the code from the heavy website and it returns an error to me.
I want to expose and send an event. However when I run the code supplied. It states that send event has "no extension method" with in my hv_example_audiolib.
I've searched through hv_example_audiolib to see if i could find the corresponding code for send event.
But I was unable. I thought that maybe sendevent may be incorrect and tried a title from the hv_example_audiolib that I though might work such as SendBandToReceiver, but this returned a similar error.
I apologise as I am a newbie to this.
Also not that I'm no longer using the code from the above pic.

Hi,
I think the problem I'm not understanding from the code for events & Parameters is
script.SendEvent
script.GetFloatParameter
script.SetFloatParameter
In each of these cases they return an error related to the .type (If this is the correct term)
Assets/Scripts/Pure_Data.cs(21,24): error CS1061: Type Hv_final_01_AudioLib' does not contain a definition for SendEvent' and no extension method SendEvent' of type Hv_final_01_AudioLib' could be found (are you missing a using directive or an assembly reference?)
Does this mean that in the File supplied from the Heavy site itself should have these types in its script or am I missing something in front of me??

Hi @storey89 to be to be clear are you exposing the parameters and events from within the Pd patch?
A Pd receiver object [r param1 @hv_param 0 1 0.5] will be exposed as a parameter in heavy, so you can use the Get/Set methods in the AudioLib.cs wrapper.
If you add [r event1 @hv_event] that receiver will be exposed as an event, and will be sent bang messages if you call SendEventor click on the relative button in the Unity Inspector interface for the script.
The docs here go into more detail: https://enzienaudio.com/docs/index.html#02.getting_started#exposing-parameters

Hi diplojocus,
I have my pd patch set like this (see attached). I've used the code that your site has provided from the getting started and getting started with Unity pages.
If I just use the code from the heavy download. When press play in Unity I can hear the test sound I created in PD.
But when I try to expose the parameters or Events the code doesn't recognise the code form heavy.
Final_.01.zip

@storey89 I looked at your project but I wasn't sure which patch you were testing with. The _main.pd in the top-level directory throws an error when you compiling it in heavy --> Conflicting min/max/default values for 'freq' parameter. There are two instances of the [r freq @hv_param] object, where you usually only need one.

Diplodocus, I've edited my PD patch so that there is only one event & freq receive object and uploaded it to my heavy folder. There doesn't seem to be any errors now.
However when I return to Unity I have the same problem with the script / wrapper.
Also I'm wondering should I be able to see the effects from heavy in realtime within PD?
Final_.01.zip

Can you send me a link to your patch on the heavy site?
Are you sure you're replacing all the files you download from the site into your Unity project?

Here it is https://enzienaudio.com/h/storey89/final_01/
I've been working with the unity osx64 zip and that I've brought the bundle files from the zip folder into my plugins folder within Unity. along with the hv_example_auidolib file

I've re-uploaded the files again to heavy and downloaded the updated version of the mac OS X. I seems to have done the trick.
But I've another question. Every time I edit my PD patch. I will have to upload to heavy then download an updated version of the mac zip to be reimported to unity?
Thank you for your patience and help. Much appreciated.

But I've another question. Every time I edit my PD patch. I will have to upload to heavy then download an updated version of the mac zip to be reimported to unity?

Yes, you'll also have to restart Unity as it won't release the dll/bundle file after it's launched. The Fabric target negates that issue currently.


Formatting a moment object breaks equality comparisons

When a moment object is formatted, the equality of the object with a clone of the unformatted object becomes false. This is unexpected, as formatting operations should be nullipotent (not change the underlying object).
Small example:
foo = moment();
bar = foo.clone();
_.isEqual(foo, bar); //true
angular.equals(foo, bar); //true
foo.format();
_.isEqual(foo, bar); //false
angular.equals(foo, bar); //false

See https://jsfiddle.net/x4hr9qmq/1/for fiddle
Note that === will always fail, but this is expected as moment.clone() should return a different object, but equality comparitors like lodash's _.isEqual and angular angular.equals should return true as they compare properties not object identity.

The reason for this is that .format() checks the isValid property for the first time. That property is evaluated and set. You're basically seeing the same issue that is described in #2894.
I'm curious though, why do you want to do this sort of comparison? There are tons of properties on a moment that really have nothing to do with the actual date value. For instance, because moment has an internal property _i that tracks the original input value, the following two moments won't be the same in that sort of equality comparison, even though they are the exact same point in time:
moment('2016-01-01')
moment('01/01/2016', 'MM/DD/YYYY')

If you want to know whether two moments are at the same point in time, .isSame() is the proper way to do it.

@maggiepint the reason this is a problem is for tracking changes to a model. In my example I have a User model with an updatedAt property. When I check the model if it has changed so I can see if a save is needed, my checker is reporting that the updatedAt property has changed even though all that has happened is the property has been formatted by moment.
As you can see this is less of a comparison of two different objects, more of a comparison in time of the same object.

I'll have to think about the best solution for your situation, but I think it's worth mentioning that moments have a lot of internal properties. Run moment() in the REPL and check it out.
That being the case, I don't know if a deep comparison of the sort you are attempting is the right thing to do with a moment, even if it did work. It's not going to result in great performance.
You maybe want to preserve either moment().valueOf() or just the formatted string on your model for comparison purposes.

@maggiepint yea I understand there are lots of internal properties, and that the deep checking is probably not performant, but for the needs I have, performance is nearly irrelevant as it is a on-save event, so very infrequent and client-side.
I think a better solution would be to store the internal moment properties as non-enumerable, as both lodash _.isEqual and angular .equals both only check enumerable properties.

@maggiepint to resolve my immediate problem, I can just define in my angular filters/formatting to first run a .clone() on the moment object before formatting, but this is not an intuitive solution

You make an interesting point. FWIW, I'm the new kid on the maintainers team. I'd be curious if @ichernev, @timrwood  or @icambron had an opinion.

I suspect you should usually call valueOf() on it for comparison purposes. IIRC, we don't use non-enumerable properties because they're not really supported in IE8. I think dropping support for that is on the table, in which case, yeah, we should totally hide those "private" fields.

Should we drop support for IE8? This escalated quickly!

I'm +1 on dropping IE8, but it should be on a major version change.

I think this works now. Just tested on Chrome.
Please re-open if it's still a problem.


ISPN-10292 Add a schemas directory to the server from which "schemas"…

https://issues.redhat.com/browse/ISPN-10292

The schemas directory approach does not work with server images so it is just half-useful.
But there are many other issues with this approach which make it a bit dangerous

Unless the schema directory is mounted on a persistent volume, similar to how the data directory is

As commented in the JIRA, I think posting a .proto via REST or HotRod is better. Having it on disk is redundant, since the protobuf cache is already persistent and replicated, and this will create an extra knob adding unnecessary complexity

Schemas can also be ingested into a server using a CLI batch file.


⚠ Bofrost.at has degraded performance

In 353fc2f, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1555 ms

Resolved: Bofrost.at performance has improved in def638f after 38 minutes.


Xcode7

Please fix that:  'stringByAddingPercentEscapesUsingEncoding' is deprecated: Use stringByAddingPercentEncodingWithAllowedCharacters(_:) instead
See ligne 888
Xcode 7 b5

Tried to build it with carthage, but got this error: target 'SwiftyJSON watchOS' has bitcode disabled (ENABLE_BITCODE = NO), but it is required for the 'watchos' platform Help?

@tangplin Should this be merged into master (with a new Cocoapods version) now that Xcode 7 GM is out?

Please do so - I'm can't add swiftyjson as a dependency in my pod spec before you do.

I think it's time to merge Xcode 7 branch in master. Alternatively you guys can consider using CocoaSeeds to specify branch.


Elasticsearch

Highly experimental code.
DO NOT MERGE!

this has been carried over with it to the intranet-v3 branch so I'll close this so we don't have multi branches.

this has been carried over with it to the intranet-v3 branch so I'll close this so we don't have multi branches.


Fatal error appears when SetOmap is called

I call SetOmap like below:
func (r *Rados) SetOmap(pool string, oid string, pairs map[string][]byte) error {
	ioctx, err := r.Conn.OpenIOContext(pool)
	if err != nil {
		return err
	}
	defer ioctx.Destroy()
	err = ioctx.SetOmap(oid, pairs)
	return err
}

When I call SetOmap, it shows:
fatal error: runtime.SetFinalizer: cannot pass *        github.x2ecom..z2fceph..z2fgo..z2dceph..z2frados        rados.setOmapStep to finalizer func(    github.x2ecom..z2fceph..z2fgo..z2dceph..z2frados  rados.opStep)

goroutine 1 [running]:
runtime.dopanic_m
        ../../../libgo/go/runtime/panic.go:1208
runtime.fatalthrow
        ../../../libgo/go/runtime/panic.go:1071
runtime.throw
        ../../../libgo/go/runtime/panic.go:1042
runtime.SetFinalizer
        ../../../libgo/go/runtime/mfinal.go:367
rados.newSetOmapStep
        /root/go/pkg/mod/github.com/ceph/go-ceph@v0.8.0/rados/omap.go:77
github.x2ecom..z2fceph..z2fgo..z2dceph..z2frados.WriteOp.SetOmap
        /root/go/pkg/mod/github.com/ceph/go-ceph@v0.8.0/rados/write_op.go:94
github.x2ecom..z2fceph..z2fgo..z2dceph..z2frados.IOContext.SetOmap
        /root/go/pkg/mod/github.com/ceph/go-ceph@v0.8.0/rados/omap.go:226
octopus..z2fconnection.Rados.SetOmap
        /root/go/src/octopus/connection/ceph.go:197
main.main
        /root/go/src/octopus/main.go:19
runtime.main
        ../../../libgo/go/runtime/proc.go:235
exit status 2

ceph version: nautilus

Thanks for the report. That certainly does not look like intended behavior.
What Go (golang) version are you using?
If you are able and willing to patch your local copy of go-ceph, can you try applying the following patch and reporting if the behavior changes?
diff --git a/rados/omap.go b/rados/omap.go
index 79b4c8e..4d530ea 100644
--- a/rados/omap.go
+++ b/rados/omap.go
@@ -74,7 +74,7 @@ func newSetOmapStep(pairs map[string][]byte) *setOmapStep {
                i++
        }

-       runtime.SetFinalizer(sos, opStepFinalizer)
+       runtime.SetFinalizer(sos, (*setOmapStep).free)
        return sos
 }

This is my go version: go version go1.14.2 gccgo (GCC) 10.1.0 linux/amd64
I will try to do it, thanks.

I find that it is a problem about go version. When I use go1.16.2 linux/amd64, it could run successfully.

Ah, thanks for looking into that. We have not tested with gccgo, and do not have plans to support it at the moment. If you can stick with Go's default compiler (gc) and supported versions of Go, may we close this issue?
Thanks!

Yeah, thanks a lot.


Install count of an extension is not same as what it is shown in Marketplace

From Marketplace team:
Hello,
We enabled a feature to log install and update counts separately for VS Code extensions. However, when extensions are sorted by downloads, we are still considering the sum of install and update count (as we still show this added value on the marketplace item tile). But VS Code looks at only install count while displaying extension in the search pane. Due to this, order of extensions may appear distorted. Check below screenshot for reference:


URLs being escaped after upgrade to 0.5.3

Our PDF generation broke after update to 0.5.3
The URL we're opening is something like
PDFKit.new("http://localhost/?some_param=1", {})

In 0.5.3, that URL is converted to something like (I checked in the server's access log):
http://localhost/\?some_param=1

and the request fails.

I believe this is related to #164, which lead to this commit: https://github.com/pdfkit/pdfkit/commit/ce37ffcdb223b34dd215971e2cd365e3a66cb5f1
We are now using shelljoin instead of shellescape, but I imagine the issue may still remain.


[Crash] this line  :  self.shareMenuScrollView.delegate = self; EXC_BAD_Instruction

objc[5776]: Cannot form weak reference to instance (0x7f836349cd80) of class XHShareMenuView. It is possible that this object was over-released, or is in the process of deallocation.
(lldb)

Hi! @alexliubj
Under what circumstances appear crash?
Jack

Experiencing the same problem here.
@xhzengAIB When leaving the chat view controller, it crashes
Base SDK: 9.0
Build System: El Capitan

这个错误之前有些低级啊。。。 - (void)dealloc {

self.shareMenuScrollView.delegate = self;


Shouldn't have to kill porch to get it to reload secrets

My github access token expired, so I updated my repo secrets. Porch didn't seem to notice until I killed its pod, but I only waited for about a minute.

Yeah, porch doesn't currently refetch the auth credentials even if the connection to the repository fails. I have a PR that fixes a similar problem with WI (https://github.com/GoogleContainerTools/kpt/pull/3410). I will do a follow-up to address this issue as well.


How would I use the footnotes plugin with md-block?

Everything's working great with md-block but I need footnotes, which seem to be supported with this github.com/xiaoliwang/markedjs-extra plugins. Is there any support for adding plugins to the rendering process?

Per #7 I've switched over to markdown-it so I don't need this any more but if you a minute to answer for others, please do so. Thanks the great ideas in this web component!


Open the info window outside the boundaries of the map.

Hi,
Is there a way to open the window outside the map? Instead of scrolling the map up or down depending of the position, let it open outside of the map area?
Thanks in advance.

I think you have to set the option panOnOpen to false


show after close

If showing alert immediately after it is closed, it will not be shown.
It is because of closing animation duration that removes views after it has been finished.
timeline:
----------------------------->
close() -> show() -> close anim finished and removed it from superview

No need to do that. I have changed the method close to include an extra parameter: void (^)(BOOL)completedHandler, so in close() method I have a callback, which I can use to show again.


rowSelected/selectionChanged events not triggered on deselecting a row

I'm submitting a ...  (check one with "x")
[ X] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, instead see https://github.com/ceolter/ag-grid/blob/master/CONTRIBUTING.md#question

Current behavior

I upgraded to version 8.0.0 of ag-grid from version 3.x and started seeing this issue.
The event handler for rowSelected and selectionChanged are not invoked when a selected row is clicked again to deselect
Expected behavior

The event handler for rowSelected and selectionChanged should be invoked when user clicks on the selected row again to unselect it.
Minimal reproduction of the problem with instructions
Created a simple ag-grid and set the options as
`onSelectionChanged = ->
selectedRows = $scope.options.api.getSelectedRows();
if selectedRows.length > 0
console.log 'selected one row'
else
console.log 'Unselected the row'
$scope.options =
    rowData:    data
    rowSelection: 'single'
    onSelectionChanged: onSelectionChanged`

In the grid, when a row is clicked first time the onSelectionChanged() in invoked. Click the same row again, the onSelectionChanged() is not invoked.
What is the motivation / use case for changing the behavior?

Please tell us about your environment:

MAC OS, IntelliJ, bower, jetty

ag-Grid version: X.X.X

Version 8.0.0.

Browser:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.37 Safari/537.36

Language: [all | TypeScript X.X | ES6/7 | ES5]
CoffeeScript

I see the issue in  onRowClick function in renderedRow.ts
if (this.rowNode.isSelected()) {             if (multiSelectKeyPressed) {                 if (gridOptionsWrapper.isRowDeselection()) {                     this.rowNode.setSelectedParams({newValue: false});                 }             } else {                 // selected with no multi key, must make sure anything else is unselected                 this.rowNode.setSelectedParams({newValue: true, clearSelection: true});             }         }
In the above else clause this.rowNode.setSelectedParams({newValue: true, clearSelection: true});, the newValue should  be set to false instead of true.

Hi @neha-nsharma, the behaviour is slightly different in later versions of ag-Grid. You now deselect using cmd & left click (or ctrl & left click on windows). But first you need to set rowDeselection to true in gridOptions:
rowDeselection: true,
If you want the old behaviour you will need to create your own listener & logic for this.

Thank you for clarifying the behavior. It would be nice if the documentation is updated for the Selection API. It currently says rowSelected: Gets called when a row is selected or deselected.


various Makefile.am missing $(EXEEXT) for running programs at compile time

Context: cross-compiling from Debian Buster Linux x86_64 (with i686 multiarch and Wine) to Microsoft Windows x86_64 and i686 using MINGW W64.
./configure reports checking for suffix of executables... .exe but this information is not used when invoking ./eLut (which is really in ./eLut.exe), thus the command is not found and the build fails.
AFAICT the solution is to put in $(EXEEXT) in all the Makefile.am everywhere after the names of programs that are run at compile time, for example ./eLut$(EXEEXT).  My count is 8 occurrences needed in IlmBase/Half/Makefile.am and 6 in OpenEXR/IlmImf/Makefile.am.
$ cd ~/code/github.com/openexr/openexr/IlmBase
$ ./bootstrap
running aclocal -I m4 ...
running libtoolize --automake --copy ...
running automake --add-missing --copy --foreign ...
configure.ac:33: installing './compile'
configure.ac:16: installing './config.guess'
configure.ac:16: installing './config.sub'
configure.ac:20: installing './install-sh'
configure.ac:20: installing './missing'
Half/Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
running autoconf ...

 BSD nm
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-w64-mingw32 format... func_convert_file_nix_to_w32
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/x86_64-w64-mingw32-ld option to reload object files... -r
checking for x86_64-w64-mingw32-objdump... x86_64-w64-mingw32-objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for x86_64-w64-mingw32-dlltool... x86_64-w64-mingw32-dlltool
checking how to associate runtime and link libraries... func_cygming_dll_for_implib
checking for x86_64-w64-mingw32-ar... x86_64-w64-mingw32-ar
checking for archiver @FILE support... @
checking for x86_64-w64-mingw32-strip... (cached) x86_64-w64-mingw32-strip
checking for x86_64-w64-mingw32-ranlib... x86_64-w64-mingw32-ranlib
checking command to parse /usr/bin/x86_64-w64-mingw32-nm -B output from x86_64-w64-mingw32-gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-w64-mingw32-mt... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... x86_64-w64-mingw32-gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... no
checking for objdir... .libs
checking if x86_64-w64-mingw32-gcc supports -fno-rtti -fno-exceptions... no
checking for x86_64-w64-mingw32-gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if x86_64-w64-mingw32-gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if x86_64-w64-mingw32-gcc static flag -static works... yes
checking if x86_64-w64-mingw32-gcc supports -c -o file.o... yes
checking if x86_64-w64-mingw32-gcc supports -c -o file.o... (cached) yes
checking whether the x86_64-w64-mingw32-gcc linker (/usr/bin/x86_64-w64-mingw32-ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... x86_64-w64-mingw32-g++ -E
checking for ld used by x86_64-w64-mingw32-g++... /usr/bin/x86_64-w64-mingw32-ld
checking if the linker (/usr/bin/x86_64-w64-mingw32-ld) is GNU ld... yes
checking whether the x86_64-w64-mingw32-g++ linker (/usr/bin/x86_64-w64-mingw32-ld) supports shared libraries... yes
checking for x86_64-w64-mingw32-g++ option to produce PIC... -DDLL_EXPORT -DPIC
checking if x86_64-w64-mingw32-g++ PIC flag -DDLL_EXPORT -DPIC works... yes
checking if x86_64-w64-mingw32-g++ static flag -static works... yes
checking if x86_64-w64-mingw32-g++ supports -c -o file.o... yes
checking if x86_64-w64-mingw32-g++ supports -c -o file.o... (cached) yes
checking whether the x86_64-w64-mingw32-g++ linker (/usr/bin/x86_64-w64-mingw32-ld) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether make sets $(MAKE)... (cached) yes
checking whether x86_64-w64-mingw32-g++ supports C++14 features by default... yes
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking for cc_r... x86_64-w64-mingw32-gcc
checking semaphore.h usability... yes
checking semaphore.h presence... yes
checking for semaphore.h... yes
checking for library containing sem_init... none required
checking whether to use POSIX unnamed semaphores... no (pshared not usable)
configure: multithread true, LIBS = -pthread , CC = x86_64-w64-mingw32-gcc, CXXFLAGS = -g -O2 -std=c++14 -pthread
checking for ANSI C header files... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for unistd.h... (cached) yes
checking ucontext.h usability... no
checking ucontext.h presence... no
checking for ucontext.h... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for size_t... yes
checking for strerror... yes
checking for complete iomanip support in C++ standard library... yes
checking for fpe support handling... no
checking for gcc optimization flags... -pipe
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating IlmBase.pc
config.status: creating config/Makefile
config.status: creating Half/Makefile
config.status: creating HalfTest/Makefile
config.status: creating Iex/Makefile
config.status: creating IexMath/Makefile
config.status: creating IexTest/Makefile
config.status: creating IlmThread/Makefile
config.status: creating Imath/Makefile
config.status: creating ImathTest/Makefile
config.status: creating config/IlmBaseConfig.h
config.status: creating config/IlmBaseConfigInternal.h
config.status: executing depfiles commands
config.status: executing libtool commands

---------------------------------------------
Summary for IlmBase features:
enable large stack optimizations             no
ISO C++ Standard                             14

internal library namespaces                  Imath_2_3
                                             Iex_2_3
                                             IlmThread_2_3

public namespaces                            Imath Iex IlmThread

---------------------------------------------

$ make
Making all in Half
make[1]: Entering directory '/home/claude/code/github.com/openexr/openexr/IlmBase/Half'
x86_64-w64-mingw32-g++ -g -O2 -std=c++14 -pthread    eLut.cpp   -o eLut
./eLut > eLut.h
/bin/bash: ./eLut: No such file or directory
make[1]: *** [Makefile:771: eLut.h] Error 127
make[1]: Leaving directory '/home/claude/code/github.com/openexr/openexr/IlmBase/Half'
make: *** [Makefile:470: all-recursive] Error 1
$ git describe
v2.1.0-463-gcd1b068

We are definitely focusing more effort on making sure the cmake path of compiling works in the current master, and going forward we may deprecate and remove the automake stuff, since the cmake path works to generate builds for more systems. That being said, what you say sounds like the correct change.
But if you could give a go at cross compiling the current master branch using the cmake toolchain mechanism (see the comment at the top of cmake/Toolchain-mingw.cmake), and let me know success / failure, I would appreciate it as I've only tested this under Arch. You may need to edit the file if you have different paths, or want different flags, and that is expected given it's a toolchain file.
One thing the cmake mechanism provides is the CMAKE_CROSSCOMPILING_EMULATOR setting, which can be set to wine, in case PE binaries are not registered as a binary type to launch with wine, or if you need to run an emulator. Do you think that would be needed as well for the automake setup?

It fails with a separate problem:
[  8%] Building CXX object IlmBase/IlmThread/CMakeFiles/IlmThread.dir/IlmThread.cpp.obj
In file included from /home/claude/tmp/bug544/openexr/IlmBase/IlmThread/IlmThread.cpp:45:
/home/claude/tmp/bug544/openexr/IlmBase/IlmThread/IlmThread.h:143:10: error: ‘thread’ in namespace ‘std’ does not name a type
     std::thread _thread;
          ^~~~~~

I have successfully built it by hacking out the #include <thread> and #include <mutex> and replacing them with references to the header-only library https://github.com/meganz/mingw-std-threads (by editing the source code to the full paths on my system).

$ x86_64-w64-mingw32-g++ --version
x86_64-w64-mingw32-g++ (GCC) 8.3-win32 20190406
Debian Buster.

I'm happy to add the $(EXEEXT) to the Makefile.am's, although you mention 6 and 8 references, I only see 2 in each file - eLut and toFloat in Half and b44ExpLogTable and dwaLookups in IlmImf, what am I missing?
I do notice that the automake-generated Makefiles already append the $(EXEEXT) to the program names, so it should be just the invocation lines in Makefile.am, right?
It's worth noting that our plan is to eliminate this build-time code-generation step from the build process entirely in the next release, because it's so fragile.

On 05/09/2019 18:08, Cary Phillips wrote:

I'm happy to add the $(EXEEXT) to the Makefile.am's, although you
mention 6 and 8 references, I only see 2 in each file - eLut and
toFloat in Half and b44ExpLogTable and dwaLookups in IlmImf, what am I
missing?

for each program: ./invocation,  CLEANFILES, right hand side of rule
dependencies, noinst_PROGRAMS - I added it to all of those, seemed to do
no harm, don't know if all are necessary or correct.

I do notice that the automake-generated Makefiles already append the
$(EXEEXT) to the program names, so it should be just the invocation
lines in Makefile.am, right?

I'm no automake expert, I just hacked this stuff to make it build (with
the previous release archives).  And if the autoconf build system is
deprecated in favour of cmake I don't know whether it's worth to fix it
before it goes away.

It's worth noting that our plan is to eliminate this build-time
code-generation step from the build process entirely in the next
release, because it's so fragile.

Great.

The  and  are part of libstdc++ and c++11, which says your gcc / g++ install is not complete for mingw, I have no such issues with those headers under arch.

We've now deprecated the build-time header generation entirely, the headers are now regular source files, to avoid this very kind of issue. Hopefully this resolves the matter.


Both 1.4.5 and 1.4.6 trigger root detection

Device: Samsung S9+
OS version: 14
env: kernelsu

1.4.4 all good

Try downloading 1.4.6 again

Can you describe in detail what you mean by triggering root detection?

Can you describe in detail what you mean by triggering root detection?

同一個app，1.4.4不會偵測到root，1.4.5、1.4.6都偵測到root
所有條件都一樣，只有MoveCertificate版本升級

666，👍👍👍，Is it all right now?

666，👍👍👍，Is it all right now?

新版1.4.6已解決


chore: reformat package.json with esy add

This should make using esy add in the future less noisy.

/azp run


Load Models on Request

Currently, the pre-trained models are part of the deepgaze library itself making it heavier than required. This feature allows the users to download required models on the fly. This is a draft pull request for feedback on how to structure it.
Current output
import deepgaze.load_model

l=load_model.Load_Model()

l.get_model("Haar Cascades")

The load model could also load a specific instance of the model, for instance.
filepath=l.get_model("Haar Cascades","profile face")
Downloads the Haar cascades model if not found in the current working directory and then returns the filepath which could be used for usage.
To Do:

Integrate Downloaded models with load models with right file path
Edit tutorials to indicate this feature.

Overall the new module looks good. There are just a few changes to do regarding the notation.
Classes such as class Load_Model must be defined without the underscore and first letter in capital: class LoadModel.
Methods inside the class must be defined without the underscore and without the first letter in capital. For instance, change check_exists() to checkExists().
A short comment under each method would be useful for documentation purposes. The comment should follow the same convention used in other modules. Give a look at this file for an example.
Once this has been fixed we can go on with the merge.


Hide collapsed::true

If one of the bullets is collapsed it displays as collapsed::true in the Kanban column.

Fixed in v1.6! Just do an update!


DSIFN dataset splits

          @wgcban I had another question regarding the DSIFN dataset that I downloaded from the link in your Readme:

Did you use the same train/val/test split for ChangeFormer when you compare its performance with other CD models like BIT?
I notice that majority of images used in test.txt are also present in train.txt (164/192) ~85%. Is this something that is an error or it was the same in previous CD works such as BIT? Is this the reason for huge difference in metrics from previous works on DSIFN?

Originally posted by @zaidbhat1234 in https://github.com/wgcban/ChangeFormer/issues/51#issuecomment-1466909895

@zaidbhat1234 Hello,

yes, if the train/val/test splits are given in the dataset like LEVIR-CD.
I think there is some bug while dividing DSIFN dataset into splits. Since they do not provide specific train/val/test splits, I created my own splits. I will examine this issue and try to reproduce the results again. Thanks for pointing out the bug.

@wgcban Thanks for your response.
Could you please update the new results in DSIFN dataset once you resolve the bug? Could you also please update the Readme file with the updated train/val/test splits?


⚠ T:Riza Docs has degraded performance

In a96a72f, T:Riza Docs (https://docs.triza.dev) experienced degraded performance:

HTTP code: 500
Response time: 18309 ms

Resolved: T:Riza Docs performance has improved in 50a6983.


Update doc.md

Added Python Intro, Syntax and how is it executed

I am a Hacktoberfest contributer


Guard against unmounted components

Hi!
We were getting some errors at https://www.timebillingapp.com/ trying to execute handleClickOutside on undefined. This patch has been on our production app for some time and it corrected the issue.
As a bonus, this fixes a react warning that showed on jest.

thanks!! much appreciated :)

released in 3.0.1


docs: addition of extra RVM notes for Windows Users

Signed-off-by: MoeRayo<EMAIL_ADDRESS>
Description
Addition of extra RVM notes for Windows users so as to provide more information on how to go about setting up their environment.
This PR fixes #
This PR fixes issue #1452 raised by @PluckyPrecious
Notes for Reviewers

Signed commits

[x] Yes, I signed my commits.

Welldone @MoeRayo 🥳  you can edit and clear the set up your dev environment in your description. The addition is already visible in the pushed code. 👍🏽

🎈 @MoeRayo !

Thank you for giving me the chance to contribute @leecalcote


Error in export_fig

export_fig worked fine until today (08-Jul-2020). This is the error I get:
export_fig error. Please ensure:

that the function you used (/Users/kamal_home/Box Sync/MATLAB/Utilities/altmany-export_fig-f762143/export_fig.m) is from the expected location
and that you did not made a mistake in export_fig's expected input arguments

If the problem persists, then please report a new issue.
Error using imwrite (line 541)
Unable to open file "export_fig_out.png" for writing.  You might not have write permission.
Error in export_fig (line 699)
imwrite(A, pngOptions{:});
Please advise. Thank you.

As the error clearly states, export_fig is "Unable to open file "export_fig_out.png" for writing. You might not have write permission" in the output folder.


Connection refused port 6000

Hi,
in my local dev env it works well. On my production system it fails.
Error message in shell:
connect <IP_ADDRESS> port 6000: Connection refused
connect <IP_ADDRESS> port 6000: Connection refused
connect <IP_ADDRESS> port 6000: Connection refused
connect <IP_ADDRESS> port 6000: Connection refused
.....

$browserFactory = new BrowserFactory('/usr/bin/google-chrome');

// starts headless chrome
$browser = $browserFactory->createBrowser([
    'noSandbox' => true
]);

// creates a new page and navigate to an url
$page = $browser->createPage();
$page->navigate('https://www.google.de/')->waitForNavigation();
$page->screenshot()->saveToFile('test.png');

// bye
$browser->close();

Any ideas what is going wrong here? Firewall is accepting any connection
Thx, Regards,
Kai

Apologize for the delay. I would say the port 6000 is already taken on the server. Are you still looking for a fix?

I'll assume the issue is fixed and I'm closing it. Please feel free to re-open if you're still experiencing it.


Remove Suspension cache to avoid memory leak

This removes the Suspension cache in AbstractDriver to avoid leaking memory if a fiber is never resumed. While this will cause a slight performance decrease, avoiding memory leaks from non-resumed fibers is a reasonable trade-off.

Alternative to #75.

Closing in favor of #82.


[websocket] Refactor everything

Thanks @SE7-KN8, I'll leave it up for a bit in case other people want to look it over.


[Debugger] Number of variables are wrong when variables with same name are declared in each block of Try statement

Issue:
When there are multiple variables declared inside a try-catch-finally block with the same name on debug it list down five variables in that name when there is only 3 variables declared. This is only happening for try-catch block.
Sample Code
import ballerina.lang.errors;

function main (string[] args) {
    string[] data = null;
    int[] i1 = [1, 2, 3];
    try {
        int i = 34;
    } catch (errors:NullReferenceError nul){
        int i = 34;
    }
    catch (errors:Error err){
            int i = 45;
    }
    finally{
            int i = 56;
    }
}

when debug variable listing shows 5 variables with the name "i"

Closing since the try-catch block is now removed from the language.


*: some optimizes for yamux cache and config

PR Details:

maybe m is unnecessary here:
var mux *yamux.Session
m, err := yamux.Server(conn, config)
if err != nil {
	log.Println(err)
	return
}
mux = m
defer mux.Close()

[client] create a new mux session when yamux cache miss or cache open failed, if the new one Open() succ, put it into cache.

set more log flags when selfbuild for easy debugging:

if VERSION == "SELFBUILD" {
// add more log flags for debugging
log.SetFlags(log.LstdFlags | log.Lshortfile)
}
```

[client] yamux config init out of the createConn() func.

[ ]   General Comment
 cool!
 ^_^
merged so quickly!
 > 2.[client] create a new mux session when yamux cache miss or cache open failed, if the new one Open() succ, put it into cache.
I think this is not necessary!

This pull request is now managed with CodeReviewHub. Refresh.

cool!

^_^
merged so quickly!

2.[client] create a new mux session when yamux cache miss or cache open failed, if the new one Open() succ, put it into cache.

I think this is not necessary!

Yes, these codes are dirty. Use or not, you deal it.

@buaazp I'll revert this part first,  if you have better idea,  feel free to PR.

OK, got it.


Update scalafmt-core to 3.1.1 in series/1.x

Updates org.scalameta:scalafmt-core from 2.7.5 to 3.1.1.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "scalafmt-core" } ]

labels: library-update, early-semver-major, semver-spec-major

Superseded by #529.


Add before_save_callback option.

I had a use case where I needed to examine values from the current set before saving. For this purpose I added a before_save_callback option. Maybe you find this useful.

This doesn't work as I expected. Will reopen when I found a proper solution for my use case.


Use 'MemAvailable' metric on Linux 3.x kernels

Hi guys,
Yesterday I raise a pull request to take the "Slab" memory into account when calculating available memory because mon-put-instance-stats.py on my RHEL 7. 3 system was showing 88% memory used, when "free" reported it was more like 22%.
This is needed because "man free" on RHEL 7:
       cache  Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)

However, after a bit more testing I noticed the behavior seems to be different on Linux 2.6 kernels (i.e. RHEL 6).
This new PR uses a new Linux 3.x metric in /proc/meminfo "MemAvailable" instead of trying to calculate the available memory.  "MemAvailable" also takes the reclaimable Slab memory into account which solves my problem of inaccurate reporting on RHEL7.
If the "MemAvailable" metric is not available, it reverts back to the old method.  This ensures 2.x kernels should work the same way as before, but 3.x kernels will take the Slab memory into account.
On my test system, before:
[root@ip-10-11-xxx-xxx cli]# free -k
              total        used        free      shared  buff/cache   available
Mem:        8008348     1960684      140660        3056     5907004     5626244
Swap:             0           0           0
[root@ip-10-11-xxx-xxx cli]#
[root@ip-10-11-xxx-xxx cli]# mon-put-instance-stats.py --mem-util --mem-used --verbose | grep ^Mem
MemoryUtilization: 86.3316629098 Percent ({'InstanceId': 'i-xxxxxxxxxxxxxxxxxx'})
MemoryUsed: 6751.69921875 Megabytes ({'InstanceId': 'i-xxxxxxxxxxxxxxxxx'})

After:
[root@ip-10-11-xxx-xxx cli]# grep Slab /proc/meminfo
Slab:            4919484 kB
[root@ip-10-11-xxx-xxx cli]# free -k
              total        used        free      shared  buff/cache   available
Mem:        8008348     1882452      193032        3056     5932864     5704376
Swap:             0           0           0
[root@ip-10-11-xxx-xxx cli]# mon-put-instance-stats.py --mem-util --mem-used --verbose | grep ^Mem
MemoryUtilization: 28.9638262473 Percent ({'InstanceId': 'i-xxxxxxxxxxxxxxxxxxx'})
MemoryUsed: 2265.16015625 Megabytes ({'InstanceId': 'i-xxxxxxxxxxxxxxxxxx'})

Thanks,
Tim.

Thanks for your contribution! Sorry for the late merge – I weren't notified via email.


Upload College

@HelloSeaNation Please provide us with a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.
You can provide us with any of the following:

A copy of instruction (a hard-copy or electronic one) given to you by the school that tells you to use an email address in this email domain
An URL of a page at the official school website that says that students use this email domain
A reference to a recognized journal where an article was published by someone from the school, with explicit affiliation to the school, and e-mail address from the email domain
A WHOIS data that link the email domain to the school somehow
A copy of official letter from the school representative saying that the school provides e-mail addresses in this domain to the students
Anything else that can prove this fact in similar way, i.e. can be verified independently.

@HelloSeaNation You might miss my previous comment. Please react.

@HelloSeaNation Thank you for your reply. Regrettably, situation became even worse. There are three domains now:

yoobee.ac.nz - the official College domain;
yoobeestudent.ac.nz - the domain that you wish to add to the repository;
yoobeecolleges.com - the domain that corresponds to a website hosted on Microsoft Azure and responds with very suspicious message now. The latter was used to send you a message that you intend to prove the eligibility of the second domain for the trusted list.

I'd suggest you to provide us with better verifiable proof, or just apply for free educational license with an official document which proves that you are a student. You can do it using "OFFICIAL DOCUMENT" tab at https://www.jetbrains.com/shop/eform/students.
Please close the request if you don't plan to update it with better proof of the domain recognition.

Wow, I didn't know it can cause that such trouble issues now. Don't worry, I'll close this request for now as I found another way to use Jetbrains already. Thanks for your time


Windows Defender报毒

版本<IP_ADDRESS> 开启了Hyper-V agent
病毒类型: Trojan:Win32/Occamy.CAA

Also on my system Windows Defender reports that the V1.1.0 WinCryptSSHAgent.exe
 contains a trojan

I had the same. @buptczq are you sure you are malware free? A lot of people report problems with released binaries. I compiled from source just to be safe.

I had the same. @buptczq are you sure you are malware free? A lot of people report problems with released binaries. I compiled from source just to be safe.

I'm sure my computer is malware free. Nevertheless, I will create a clean environment to build released binaries.

released binaries are built by github actions now


Add headless service for ingester to support memberlist ring store

This change adds an extra headless service to govern the StatefulSet and allows ingesters to use memberlist as the ring store.
It will need some tweaks to values.yaml:
config:
  ingester:
    lifecycler:
      join_after: 10s
      observe_period: 10s
      min_ready_duration: 0s
      final_sleep: 5s

Thanks, @eh-steve for the PR! This change is already covered in PR #75. Can you grab the latest from master and see if there is anything else you would suggest in addition to the merged change?

I think #75 has a bug in that the statefulSet is now governed by a non-existent service. The serviceName needs to be updated to refer to the new headless service.
Happy to close this PR once that's fixed

That's a great point @eh-steve regarding the service name in the stateful yaml. It's a good thing to tidy up even if it isn't breaking anything. I've done this in #90, so I'm going to close this PR for now.
Please continue to submit PRs!


Bug: Inconsistent newlines

This file has inconsistent newlines:
Core/ClassUtils.php (CRLF on lines 27-30)

@schmittjoh ping

see other ticket
On Fri, Mar 9, 2012 at 7:40 AM, Andrej Hudec <
<EMAIL_ADDRESS>
wrote:

@schmittjoh ping

Reply to this email directly or view it on GitHub:
https://github.com/schmittjoh/cg-library/issues/2#issuecomment-4416390


cmd: Add cilium map get history command

This change introduces a command with the following syntax:
cilium map get <name> history

It shows last 50 operations on the given BPF map.
Fixes: #8179
Signed-off-by: Michal Rostecki<EMAIL_ADDRESS>

This change is

Coverage decreased (-0.1%) to 41.897% when pulling 0e32c2bbe93d5ebb6c0d1ac8d6f2c25fd1d5b75c on mrostecki:bpf-map-history into 0b7f92a3df68fcad8ded552057c8a09e8fdd2d36 on cilium:master.

test-me-please


Return images in selection order (for android)

It's very useful for me. Thanks!!!

It works fine. Can we please merge it already? It's been 5 years.


No license

Hey @Flo-Schield-Bobby,
any chance you could add a license file? We would love to use your library :+1:

Hey !
Glad you use it, I add it right now :)

Fixed by #2

Awesome! Thanks a lot!

You're welcome :)
Do not hesitate to let me know if you appreciate it, or if you need anything !


async and await in example

I'm using ES6 on Windows and Electron.  I've never used async or await, but I tried your example and I got javascript errors.  Is there a better way of using it async?

@sgehrman please try this introduction in async/await
http://masnun.com/2015/11/11/using-es7-asyncawait-today-with-babel.html


Add language data for whether an actor is unable to speak, read, or write in a language that they know

A lot of actors have a note on languages such as "Understands Sylvan but cannot speak" or similar. Currently we input these in the languages.custom field, but this then appears as a language of its own. For example it would end up with both "Sylvan" and "(understands but cannot speak)". It would be good if each language had some further configuration available.
The data could possibly appear like,
"languages": {
  "value": [
    "common",
    "sylvan"
  ],
  "custom": "",
  "telepathy": {},
  "config": {}
}

where config would be an (extension of) ObjectField where users can define, for each language, whether they are unable to read, speak, and/or write it.
As for displaying it on the actor sheet, perhaps a similar method to what is currently done for physical damage bypasses (mgc, sil, ada) with icons rather than long-form notes.
Possibly related: https://github.com/foundryvtt/dnd5e/issues/1982

What mechanical benefit does this provide over the custom field? I ask since language on the character sheet is just informational.

What mechanical benefit does this provide over the custom field? I ask since language on the character sheet is just informational.

Improved display, easier and more uniform data-entry, and if the system or a module wants to make use of it in the future, that's an added bonus.


h3i: add example

The example can be run with cargo r --example content_length_mismatch. TLS keys will be generated at h3i/h3i-example, which can be used to decrypt a corresponding PCAP if one is captured separately.

Overall looks good. Thoughts on adding the same example into the crate docs too?

Good idea, done


Jupyter Files open as json

When opening a tabbed file that is an ipynb the file opens in json form instead of the standard notebook view

Hi @kennymcavoy
Huh, that is an interesting issue I never thought of 😄 I will add it to the backlog 👍

I came because of the same problem, but it's been almost one year since this was reported, and no action has been taken. Are you planning on fixing this issue? Let me know if there is anything I could do to help.


Consider adding support for createUiDefinition.json

I've found one of the most difficult and fiddly aspects of getting my Azure Application Offer into the Marketplace is authoring the createUiDefinition.json.  As someone with a lot of experience on how to design the authoring experience of  Web deployed UI, I can attest this is a terrible way to author a UI.
If we can conduct a survey about this to build support for adding this to the backlog, and the survey validates my hypothesis, and we implement it, we would be doing our customers a big favor.
For more on createUiDefinition.json see these mostly up to date docs.

Thanks @edburns - we will put this on the backlog and prioritize where it makes sense.


Switch to rust-secp256k1 from libsecp256k1

It seems that currently we use libsecp256k1 in sp_core::ecdsa implementation. As I've been told, the main reason for that was because rust-secp256k1 wouldn't compile for WASM/no_std.
It seems it's not the case any more and rust-secp256k1 is more performant, has been audited and is more commonly used, hence I see no reasons for not switching to this.

It seems that rust-secp256k1 might not have very good performance in intepreted WASM mode, so I think we should carefully benchmark this in both wasmtime and wasmi.

We don't use the crate anywhere natively in WASM. We always call into native for this.

If you're considering alternatives to libsecp256k1, perhaps consider k256:
https://github.com/RustCrypto/elliptic-curves/tree/master/k256
It's an optimized pure Rust library with performance closer to the bitcoin-core C library:

Also even better performance on WASM.
The k256 crate implements complete Weierstrass formulas, and also supports lazy normalization and endomorphism optimizations (which are now free of patents). You can read more about it here:
https://iqlusion.blog/k256-crate-pure-rust-projective-secp256k1-library

I see @bkchr's PR solving this (at least partially) but it was closed and the branch was deleted. Was this because it needs an audit or another high-overhead reason, or was it just stale and incomplete?

It seems libsecp256k1 doesn't implement RFC6979 which causes some issues for signature verification by ethereum libraries

We don't use the crate anywhere natively in WASM. We always call into native for this.

Except when compiling, with full-crypto, right? : https://github.com/paritytech/substrate/blob/25eb7ac459211d8f06a98713d9ef60a4f7dd6b69/primitives/core/Cargo.toml#L143

If you're considering alternatives to libsecp256k1, perhaps consider k256:
https://github.com/RustCrypto/elliptic-curves/tree/master/k256
It's an optimized pure Rust library with performance closer to the bitcoin-core C library:

I've done some benchmarking using the latest releases of all the libraries that we are considering for secp256k1 ecdsa signature.
The results ([here]https://github.com/davxy/crypto-benches)) are still aligned with the ones provided by tarcieri not so long ago.
So currently secp256k1 is faster by a factor of 3 compared to (compelling) the k256 pure Rust implementation.
@tarcieri are there any plans to reduce this gap?
I wonder if secp256k1 C implementation is faster because of some low level code trick or if the difference is more of algorithmical nature.
I see there is a (now closed) issue meant to address this here.

There are a few low hanging fruit optimizations left to pursue, like using wNAF form for verification, or precomputing basepoint tables. We have made some recent progress towards the latter.

What if both "libsecp256k1", "secp256k1" in , and we're still unable to achieve ECDSA state

@Srikarrao1 I don't get your question?

I want to acheive functionality of ECDSA crate by integrating functions such as Signer, Verifier and Signature traits in substrate based primitives, appreciate your response!

Still don't get it.


AttributeError: 'NoneType' object has no attribute 'shapes'

Done Everything for resolving this , but it didn't solved.
it gives me new error whenever i tried to change.
/* code ..
import minecart
pdffile = open('sample.pdf', 'rb')
doc = minecart.Document(pdffile)
page = doc.get_page(3)
for shape in page.shapes.iter_in_bbox((0, 0, 100, 200)):
print (shape.path, shape.fill.color.as_rgb())
im = page.images[0].as_pil()  # requires pillow
im.show()
*/

page is None, which indicates the PDF doesn't have a 4th page


NCCL version is always 2.7.3

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): v2.3.0-54-gfcc4b966f1 2.3.1
Python version: Python 3.8
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: 10.1 / cudnn7.6
GPU model and memory: Tesla V100-SXM3-32GB

Describe the current behavior
When I run image classification model from models repository with the following command:
NCCL_DEBUG=INFO NCCL_DEBUG_SUBSYS=COLL python3 mnist_main.py   --model_dir=modeldir   --data_dir=datadir   --train_epochs=10   --distribution_strategy=mirrored

I always get NCCL version as "2.7.3+cudaCUDA_MAJOR.CUDA_MINOR". The problem is that I don't have NCCL 2.7.3 but it still seems to be working because I can get ncclAllReduce calls with NCCL_DEBUG_SUBSYS=COLL. NCCL version of the machine that I am using is 2.7.8.
I also cannot intercept NCCL collectives such as ncclAllReduce with LD_PRELOAD trick. Does Tensorflow use a static library or something else because in normal case I should be able to intercept any nccl call with LD_PRELOAD. It works with PyTorch, C++ NCCL apps etc.
Describe the expected behavior
I expect to get NCCL version as 2.7.8
I expect to be able to intercept NCCL functions with a preloaded library (LD_PRELOAD trick)
Standalone code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate
the problem. If possible, please share a link to Colab/Jupyter/any notebook.
NCCL_DEBUG=INFO NCCL_DEBUG_SUBSYS=COLL python3 mnist_main.py   --model_dir=modeldir   --data_dir=datadir   --train_epochs=10   --distribution_strategy=mirrored

Other info / logs Include any logs or source code that would be helpful to
diagnose the problem.
2020-12-10 09:16:28.794595: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
2020-12-10 09:16:31.039310: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcuda.so.1
2020-12-10 09:16:31.360781: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties:
pciBusID: 0000:34:00.0 name: Tesla V100-SXM3-32GB computeCapability: 7.0
coreClock: 1.597GHz coreCount: 80 deviceMemorySize: 31.72GiB deviceMemoryBandwidth: 913.62GiB/s
2020-12-10 09:16:31.363748: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 1 with properties:
pciBusID: 0000:be:00.0 name: Tesla V100-SXM3-32GB computeCapability: 7.0
coreClock: 1.597GHz coreCount: 80 deviceMemorySize: 31.72GiB deviceMemoryBandwidth: 913.62GiB/s
2020-12-10 09:16:31.366700: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 2 with properties:
pciBusID: 0000:e0:00.0 name: Tesla V100-SXM3-32GB computeCapability: 7.0
coreClock: 1.597GHz coreCount: 80 deviceMemorySize: 31.72GiB deviceMemoryBandwidth: 913.62GiB/s
2020-12-10 09:16:31.369582: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 3 with properties:
pciBusID: 0000:e2:00.0 name: Tesla V100-SXM3-32GB computeCapability: 7.0
coreClock: 1.597GHz coreCount: 80 deviceMemorySize: 31.72GiB deviceMemoryBandwidth: 913.62GiB/s
2020-12-10 09:16:31.369617: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
2020-12-10 09:16:31.372516: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcublas.so.10
2020-12-10 09:16:31.374946: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcufft.so.10
2020-12-10 09:16:31.375800: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcurand.so.10
2020-12-10 09:16:31.378188: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusolver.so.10
2020-12-10 09:16:31.379703: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusparse.so.10
2020-12-10 09:16:31.384111: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudnn.so.7
2020-12-10 09:16:31.406596: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0, 1, 2, 3
2020-12-10 09:16:31.408615: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations:  AVX2 AVX512F FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2020-12-10 09:16:31.437675: I tensorflow/core/platform/profile_utils/cpu_utils.cc:104] CPU Frequency:<PHONE_NUMBER> Hz
2020-12-10 09:16:31.437913: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5555595fabf0 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-12-10 09:16:31.437935: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-12-10 09:16:32.895096: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x555558f709a0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:
2020-12-10 09:16:32.895130: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Tesla V100-SXM3-32GB, Compute Capability 7.0
2020-12-10 09:16:32.895136: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (1): Tesla V100-SXM3-32GB, Compute Capability 7.0
2020-12-10 09:16:32.895140: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (2): Tesla V100-SXM3-32GB, Compute Capability 7.0
2020-12-10 09:16:32.895145: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (3): Tesla V100-SXM3-32GB, Compute Capability 7.0
2020-12-10 09:16:32.898035: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties:
pciBusID: 0000:34:00.0 name: Tesla V100-SXM3-32GB computeCapability: 7.0
coreClock: 1.597GHz coreCount: 80 deviceMemorySize: 31.72GiB deviceMemoryBandwidth: 913.62GiB/s
2020-12-10 09:16:32.900943: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 1 with properties:
pciBusID: 0000:be:00.0 name: Tesla V100-SXM3-32GB computeCapability: 7.0
coreClock: 1.597GHz coreCount: 80 deviceMemorySize: 31.72GiB deviceMemoryBandwidth: 913.62GiB/s
2020-12-10 09:16:32.903831: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 2 with properties:
pciBusID: 0000:e0:00.0 name: Tesla V100-SXM3-32GB computeCapability: 7.0
coreClock: 1.597GHz coreCount: 80 deviceMemorySize: 31.72GiB deviceMemoryBandwidth: 913.62GiB/s
2020-12-10 09:16:32.906747: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 3 with properties:
pciBusID: 0000:e2:00.0 name: Tesla V100-SXM3-32GB computeCapability: 7.0
coreClock: 1.597GHz coreCount: 80 deviceMemorySize: 31.72GiB deviceMemoryBandwidth: 913.62GiB/s
2020-12-10 09:16:32.906777: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
2020-12-10 09:16:32.906803: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcublas.so.10
2020-12-10 09:16:32.906813: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcufft.so.10
2020-12-10 09:16:32.906823: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcurand.so.10
2020-12-10 09:16:32.906832: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusolver.so.10
2020-12-10 09:16:32.906853: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusparse.so.10
2020-12-10 09:16:32.906863: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudnn.so.7
2020-12-10 09:16:32.928663: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0, 1, 2, 3
2020-12-10 09:16:32.928717: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
2020-12-10 09:16:35.890042: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1257] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-12-10 09:16:35.890086: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1263]      0 1 2 3
2020-12-10 09:16:35.890095: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1276] 0:   N Y Y Y
2020-12-10 09:16:35.890101: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1276] 1:   Y N Y Y
2020-12-10 09:16:35.890106: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1276] 2:   Y Y N Y
2020-12-10 09:16:35.890112: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1276] 3:   Y Y Y N
2020-12-10 09:16:35.904988: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 3070 MB memory) -> physical GPU (device: 0, name: Tesla V100-SXM3-32GB, pci bus id: 0000:34:00.0, compute capability: 7.0)
2020-12-10 09:16:35.909256: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 30099 MB memory) -> physical GPU (device: 1, name: Tesla V100-SXM3-32GB, pci bus id: 0000:be:00.0, compute capability: 7.0)
2020-12-10 09:16:35.913101: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:2 with 30099 MB memory) -> physical GPU (device: 2, name: Tesla V100-SXM3-32GB, pci bus id: 0000:e0:00.0, compute capability: 7.0)
2020-12-10 09:16:35.916761: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:3 with 30099 MB memory) -> physical GPU (device: 3, name: Tesla V100-SXM3-32GB, pci bus id: 0000:e2:00.0, compute capability: 7.0)
INFO:tensorflow:Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0', '/job:localhost/replica:0/task:0/device:GPU:1', '/job:localhost/replica:0/task:0/device:GPU:2', '/job:localhost/replica:0/task:0/device:GPU:3')
I1210 09:16:35.924412<PHONE_NUMBER>3584 mirrored_strategy.py:341] Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0', '/job:localhost/replica:0/task:0/device:GPU:1', '/job:localhost/replica:0/task:0/device:GPU:2', '/job:localhost/replica:0/task:0/device:GPU:3')
I1210 09:16:35.927785<PHONE_NUMBER>3584 dataset_info.py:362] Load dataset info from datadir/mnist/3.0.1
I1210 09:16:35.930115<PHONE_NUMBER>3584 dataset_info.py:411] Field info.citation from disk and from code do not match. Keeping the one from code.
I1210 09:16:35.930334<PHONE_NUMBER>3584 dataset_builder.py:528] Constructing tf.data.Dataset for split ['train', 'test'], from datadir/mnist/3.0.1
2020-12-10 09:16:36.191140: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session started.
2020-12-10 09:16:36.191203: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1391] Profiler found 4 GPUs
2020-12-10 09:16:36.192815: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcupti.so.10.1
2020-12-10 09:16:37.043438: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1513] CUPTI activity buffer flushed
Epoch 1/10
WARNING:tensorflow:From /home/pakthar/.conda/envs/tfmodels/lib/python3.8/site-packages/tensorflow/python/data/ops/multi_device_iterator_ops.py:601: get_next_as_optional (from tensorflow.python.data.ops.iterator_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Iterator.get_next_as_optional()` instead.
W1210 09:16:37.291702<PHONE_NUMBER>3584 deprecation.py:317] From /home/pakthar/.conda/envs/tfmodels/lib/python3.8/site-packages/tensorflow/python/data/ops/multi_device_iterator_ops.py:601: get_next_as_optional (from tensorflow.python.data.ops.iterator_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Iterator.get_next_as_optional()` instead.
INFO:tensorflow:batch_all_reduce: 8 all-reduces with algorithm = nccl, num_packs = 1
I1210 09:16:37.575582<PHONE_NUMBER>3584 cross_device_ops.py:699] batch_all_reduce: 8 all-reduces with algorithm = nccl, num_packs = 1
INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
I1210 09:16:37.790755<PHONE_NUMBER>3584 cross_device_ops.py:441] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
I1210 09:16:37.793543<PHONE_NUMBER>3584 cross_device_ops.py:441] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
I1210 09:16:37.797662<PHONE_NUMBER>3584 cross_device_ops.py:441] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
I1210 09:16:37.800141<PHONE_NUMBER>3584 cross_device_ops.py:441] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
INFO:tensorflow:batch_all_reduce: 8 all-reduces with algorithm = nccl, num_packs = 1
I1210 09:16:39.279846<PHONE_NUMBER>3584 cross_device_ops.py:699] batch_all_reduce: 8 all-reduces with algorithm = nccl, num_packs = 1
INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
I1210 09:16:39.472889<PHONE_NUMBER>3584 cross_device_ops.py:441] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
I1210 09:16:39.475625<PHONE_NUMBER>3584 cross_device_ops.py:441] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
I1210 09:16:39.479524<PHONE_NUMBER>3584 cross_device_ops.py:441] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
I1210 09:16:39.482020<PHONE_NUMBER>3584 cross_device_ops.py:441] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).
2020-12-10 09:16:40.931919: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcublas.so.10
2020-12-10 09:16:45.904130: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudnn.so.7
NCCL version 2.7.3+cudaCUDA_MAJOR.CUDA_MINOR
g001:35039:35203 [0] NCCL INFO AllReduce: opCount 0 sendbuff 0x1553c2000000 recvbuff 0x1553c2000000 count 1643370 datatype 7 op 0 root 0 comm 0x154f80001340 [nranks=4] stream 0x15506756bc20
g001:35039:35205 [2] NCCL INFO AllReduce: opCount 0 sendbuff 0x1554192c6e00 recvbuff 0x1554192c6e00 count 1643370 datatype 7 op 0 root 0 comm 0x154f74001310 [nranks=4] stream 0x1550675b3630
g001:35039:35204 [1] NCCL INFO AllReduce: opCount 0 sendbuff 0x155108000000 recvbuff 0x155108000000 count 1643370 datatype 7 op 0 root 0 comm 0x154f78001310 [nranks=4] stream 0x1550672ff1a0
g001:35039:35206 [3] NCCL INFO AllReduce: opCount 0 sendbuff 0x155058000000 recvbuff 0x155058000000 count 1643370 datatype 7 op 0 root 0 comm 0x154f6c001310 [nranks=4] stream 0x15506756bca0

Hi @mabdullahsoyturk, can you try running the code with tf-nightly and let me know what NCCL version you see?

Hi @mabdullahsoyturk, can you try running the code with tf-nightly and let me know what NCCL version you see?
And to clarify, the code does run correctly even with the version mismatch?

Hi @nikitamaia, I did try running the code with  tf-nightly but apparently it requires cuda 11 and I have 10.1.
Yes, the code does run correctly even with the version mismatch. The weird thing is that if it does call the libnccl shared library functions, I should be able to intercept those calls with LD_PRELOAD but it doesn't seem to be working. That's why I am looking where tensorflow calls nccl functions.

Yes, Tensorflow uses a statically linked NCCL.


Auto completion is duplicating the already typed parts of string

I am using https://github.com/python-lsp/python-lsp-server installed with [all] option.
When I go to a Rune such as os.pa and hit Ctrl+Space I expected the autocomplete to give me os.pa[th] but is is giving me os.pa[path]
Is there any config I need to add?

Thanks again

same on rls

@rochacbruno I created a fix for the issue above. Can you check if this works for you?

@AndCake yes it works great! thanks again


[Enhance] make re2 driver-local to reduce contention (backport #8904)

(backport #8904)

run all

@Mergifyio backport branch-2.2


OIDC cleanup, feedback

Remove broken test classes. These were failing silently.
Allow post logout redirect uri to be relative.
Allow sharing the callback path. E.g. fall-through. Default to true.
Change CallbackPath default to "/".
Use the token issuer for claims
Default to AutomaticChallenge
Remove unused Audiance

@brentschmaltz @tushargupta51 @HaoK @PinpointTownes

Hi @Tratcher, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

@vibronet

Curious: what's the reason behind these two changes?

Allow sharing the callback path. E.g. fall-through. Default to true.
Change CallbackPath default to "/".

@PinpointTownes It's a compromise between the old Katana behavior (and common usage beyond that) that listened to everything, and the new infrastructure that encourages you to have a dedicated path.

FWIW, this new ShareCallbackPath looks absolutely horrifying and rather fragile.
For instance, what happens if I register 2 instances of the OIDC middleware and that they both skip an authorization response missing the state parameter. AFAICT, this error will never be logged, unless I explicitly set ShareCallbackPath on the second instance.

I think you're mixing two scenarios. Yes, invalid messages are harder to detect with ShareCallbackPath, but we want to avoid logging a misleading error for all non-OIDC requests. We'll have to find a balance.

Maybe this should be off by default since more often than not, there is not a callback path being shared correct?

It's a compromise between the old Katana behavior (and common usage beyond that) that listened to everything, and the new infrastructure that encourages you to have a dedicated path.

The old behavior was absolutely bad, why do you want to re-introduce it? Personally, I've never seen a serious implementation recommending to use the root path as the callback URL :smile:

@PinpointTownes we feel that the supportability of both new apps and for migrating existing apps would be better by defaulting to the root of the app, and allowing fall-through in case the request is not for auth. It ties in better with existing guidance on setting up this kind of auth, and works better with the Azure AD configuration experience as well.
Another scenario we think this would better support is IDP-initiated requests, where there's no extra bounce between the IDP, the client, and the server, there could be a direct request to a resource and we'd want to have the right infrastructure available to support capturing those requests (though we admittedly don't yet support that scenario).
Though several of us would agree that there are advantages to having a distinct URI (and that's why we had that code until now), we're concerned it would be too restrictive in the future, and more difficult to support as well.

@PinpointTownes we feel that the supportability of both new apps and for migrating existing apps would be better by defaulting to the root of the app, and allowing fall-through in case the request is not for auth. It ties in better with existing guidance on setting up this kind of auth, and works better with the Azure AD configuration experience as well.

So your plan is to punish all the poor people using standard servers just to make the Azure AD guys happy? If there's something wrong with the Azure AD implementation, it's up to the AD team to fix it :smile:
Curious: why not creating an Azure AD-specific OIDC middleware, as suggested by @leastprivilege recently?

Another scenario we think this would better support is IDP-initiated requests, where there's no extra bounce between the IDP, the client, and the server, there could be a direct request to a resource and we'd want to have the right infrastructure available to support capturing those requests (though we admittedly don't yet support that scenario).

This PR is all about OIDC, right? Not SAML, WS-Fed or any other thing? :smile:
Unless a whole new draft/RFC was just posted (maybe I'm living in a cave? :smile:), there's absolutely no such thing in OIDC, so I guess it will be some non-standard stuff...

Though several of us would agree that there are advantages to having a distinct URI (and that's why we had that code until now), we're concerned it would be too restrictive in the future, and more difficult to support as well.

What prevents you from setting the callback path to PathString.Empty to override the default value? If you're concerned about discoverability, why not reintroducing RedirectUri and set CallbackPath accordingly?

I'm trying to avoid reintroducing RedirectUri (even though AAD wants it) and deriving CallbackPath from it because it is error prone. RedirectUri is absolute, where CallbackPath is relative to the current PathBase and we can't determine that at startup.

@vibronet, care to comment?

Minor updates after comparing to the Katana flow.

Comments, mostly for @PinpointTownes

Ignoring the "serious implementation" zing - all defaults in Katana and VS2013/2015 use the app root as the default. The implementation before this PR made it impossible to use the root, which would have forced anybody who wants to upgrade to renegotiate their app registration with their provider. Having object model details have an impact on the protocol level is bad, and requiring customers to renegotiate their app registration at the IdP would be unacceptable. It cannot be harder to move from ASP.NET 4.6 to 5 than it would be to move from 4.6 to Node or Ruby, which is what would happen if the root would be disallowed as RedirectUri. In any case, my understanding is that you are free to override it with any URL of your choice any time you want.
Can you enumerate the "standard servers" you are referring to? Using the root URL does not appear to be violating any standard. Besides of the formal compliance, things also seem to work in practice. There is an enormous amount of apps currently using Azure AD today, and a large number of apps using pre-OpenId Connect authentication strategies which get back their tokens on the application's root. They are all in production, happily producing business. Can you substantiate what you are referring to with "something wrong with the Azure AD implementation"?
Re: IdP initiated flow, Chris is referring to http://openid.net/specs/openid-connect-core-1_0.html#ThirdPartyInitiatedLogin. This was more of a discussion about possible problems that might arise by not listening for auth messages for all possible app URLs at once, as we did in the past, and the IdP initiated flow was one example we threw around when considering possible problematic scenarios. Going back to the spec, for the way it works in OIDC it appears that won't be a problem. But again, the point wasn't about the root as the returnUri - it was about listening only to one URL, regardless of what such URL is.
I agree it would be great to have back RedirectUri. I would like it back mostly for usability purposes (the instructions for using the middleware are much simpler if the developer just needs to paste in a value he/she gets from the IdP, without havijg to do path math in his/her head) and consistency with both Katana and other auth components on other platforms (AFAIK they all admit passing the absolute RedirectUri).

Ignoring the "serious implementation" zing.

Don't take it personally, the reference to "serious implementations" was only to mention that other well-known OIDC client implementations didn't use the app root as the default callback path, it had nothing to do with Azure AD (e.g, phpOIDC only accepts the hardcoded /callback path)

The implementation before this PR made it impossible to use the root, which would have forced anybody who wants to upgrade to renegotiate their app registration with their provider. Having object model details have an impact on the protocol level is bad, and requiring customers to renegotiate their app registration at the IdP would be unacceptable.

Impacting the performance and logging experience for all the users of the OIDC middleware just to support app-root callbacks seems much worse than forcing people to explicitly turn a setting to true or to update the callback path in their app registration, IMHO. I'm not fundamentally opposed to the passthrough mode offered by this PR, but I'm convinced that enabling it by default is not a good idea.

Can you enumerate the "standard servers" you are referring to? Using the root URL does not appear to be violating any standard. Besides of the formal compliance, things also seem to work in practice. There is an enormous amount of apps currently using Azure AD today, and a large number of apps using pre-OpenId Connect authentication strategies which get back their tokens on the application's root.

I've never said using the app root was not standard, just that it has practical implications we can't ignore in a web server environment: if this PR is merged, the OIDC middleware will be triggered for every GET or POST call made to the app root (which is a hot path for many applications) and allocate useless OpenIdConnectMessage instances even if the request doesn't correspond to an OIDC response.
This new ShareCallbackPath also makes the default logging experience horrible, since invalid OIDC responses are skipped and never logged: with ShareCallbackPath being true by default, you'll never know that the OIDC response lacked the state parameter or that it was invalid (which may indicate a XSRF attack).

They are all in production, happily producing business. Can you substantiate what you are referring to with "something wrong with the Azure AD implementation"?

If Azure AD only supports or suggests using app-root callback paths, then you should probably change that for the practical reasons we're discussing: having to change the client implementation of a standard protocol to match what a single server implementation does seems wrong, IMHO. On the other hand, simply updating the app registration in Azure AD doesn't really seem like a big deal, specially when migrating an existing app to vNext, whose migration path is generally not trivial and involves many breaking changes.

Re: IdP initiated flow, Chris is referring to http://openid.net/specs/openid-connect-core-1_0.html#ThirdPartyInitiatedLogin. This was more of a discussion about possible problems that might arise by not listening for auth messages for all possible app URLs at once, as we did in the past, and the IdP initiated flow was one example we threw around when considering possible problematic scenarios.

Third-party initialization doesn't change anything to the fact the client application is still responsible for preparing the authorization request (with the mandatory redirect_uri): the third party has no influence on the callback path the client should or must use.
Going back to the spec, for the way it works in OIDC it appears that won't be a problem. But again, the point wasn't about the root as the returnUri - it was about listening only to one URL, regardless of what such URL is.
Note that this PR doesn't allow listening on every possible URL, it just makes the app-root the default callback path and the callback endpoint passthrough by default.

I'm really surprised nobody mentioned the security implications of this PR: if the state is missing or invalid, the OIDC middleware will skip the request if ShareCallbackPath = true.
In this case, the rest of the pipeline will be invoked and since the default callback path corresponds to the root path, there's a high chance the request will be handled by MVC (in practice, to render a view): the query string will be flowed as-is and will be potentially leaked in the referrer when clicking a link or rendering an external image. And if there's an authorization code in the query string... it will be terribad.

Updated. I've reverted the CallbackPath change and disabled SkipUnrecognizedRequests by default. I'm going to push this in the morning and then we'll do some app building to verify the usability and how this interacts with redirecturi.


TF2 Upgrader: add support of ipynb files

As discussed @martinwicke, since locally it was tested in isolated environment, I would be more than happy to run the required tests
Potentially I'd follow with updating readme and other docs related things

I think once, https://github.com/tensorflow/tensorflow/pull/25653 is in, I can rebase this one

@martinwicke Thanks for review, I've updated accordingly.
And with tree part, I would add it as a second PR potentially.

@martinwicke I fixed linter and other build issues. Please let me know if anything additional is missing.


aws region hard coded us-east-1

Let CDK default region to AWS CLI profile default region.

Hey @lsdeva,
To set the AWS CDK default region to the AWS CLI profile default region, you can use the environment variables provided by the AWS CDK CLI: CDK_DEFAULT_ACCOUNT and CDK_DEFAULT_REGION.
These variables are set based on the AWS profile specified using the --profile option, or the default AWS profile if you don’t specify one.
Here is an example of how you can set it:
export CDK_DEFAULT_REGION=$(aws configure get region)

This command will set the CDK_DEFAULT_REGION environment variable to the default region of your current AWS CLI profile.

Better not change the default region from us-east-1, otherwise you will have a mountain of trouble working out the TLS certificates that have to reside in us-east-1 for CloudFront to work.


Handling canceled contexts in Unlock in custom storage implementations

What is your question?
This relates to this piece of code:
https://github.com/caddyserver/certmagic/blob/51b31907aaa07f21e1bf2974193d11cdbf32802b/config.go#L504-L517
Basically: It is possible that locking works, but the context gets subsequently canceled for whatever reason. The deferred releaseLock call in line 511 will call our custom storage implementation's Unlock with the now-canceled context. Right now that leads to an error in our code, and eventually our lock will expire and we can continue.
Is there anything we can do better here? For instance, would it be reasonable to pass another context into releaseLock/Unlock that is not canceled? Or should we "ignore" the cancelation on our side?
For reference: Our storage uses DynamoDB, and Lock and Unlock basically modify a specific item in it. We pass the context through to the AWS SDK DynamoDB call, which will recognize it is canceled and not execute the actual request.

Is there anything we can do better here? For instance, would it be reasonable to pass another context into releaseLock/Unlock that is not canceled? Or should we "ignore" the cancelation on our side?

Good question! Hmm.
Part of me thinks, ignore the context because the point is to cleanup after the context is cancelled. The other part of me thinks, if the context is cancelled, it's important to abort to avoid a goroutine leak (or something).
Or maybe we SHOULD make a new context that isn't canceled, but has a timeout, so that unlock can still finish, but the time is set. Is that reasonable? Or do you think the storage implementation should have control of the timeout and set its own when it encounters an already-canceled context?

I found the underlying cause of the canceled context by now: The background renewal of a not-yet-expired certificate is using the same context as was given to GetCertificateWithContext, which in our case is actually the handshake context coming from https://pkg.go.dev/crypto/tls#ClientHelloInfo.Context.
See also https://github.com/caddyserver/certmagic/pull/248: The background renewal should use a different context, IMHO it is wrong to assume that it can use the one given to GetCertificate, which is supposed to be called inside the TLS handshake and as such does have a limited time to do things.

I think I agree. Hadn't really considered this, but a background routine indeed should not be confined to a single handshake.
But why haven't we encountered this problem before? :thinking:

Or maybe we SHOULD make a new context that isn't canceled, but has a timeout, so that unlock can still finish, but the time is set.

I think I have seen something when reading other golang code, but I cannot remember where and point to that pattern. In a way it sounds reasonable, and I don't think that I-as-storage should be allowed to take ages to cleanup.
But then again, I couldn't come up with a good timeout here -- 1s? 10s? 10% of the available timeout?

Incidentally, before I forget this yet again: https://github.com/caddyserver/certmagic/blob/8fac0d028d7483fe8fc84e7dfcc302fdced79d28/handshake.go#L49 the answer to the TODO is probably ctx := clientHello.Context(). Can file PR if that makes sense, but it has this risk that there's another place where this now would break because we missed something somewhere.

Go 1.21 adds context.WithoutCancel() that would be useful here. But we can't bump the minimum version for certmagic quite yet (not before Caddy does, and we usually wait till the next release so there's 2 versions supported at any given time)

@ankon

the answer to the TODO is probably ctx := clientHello.Context(). Can file PR if that makes sense, but it has this risk that there's another place where this now would break because we missed something somewhere.

I somehow missed that Go 1.17 added that.
Scanning the code, I think this is correct: the context should be limited to the handshake. If the client aborts the handshake, the server should abort whatever it's doing. UNLESS we start a background maintenance goroutine, in which case we should probably use a different context (done in #248).

As for the context used for locking...
I feel like the most correct thing to do is to pass a fresh new context with our own timeout. Of course, the obvious question is, what should the duration be?
I don't know of course... but maybe like 10s?
I made a Twitter poll just for fun: https://twitter.com/mholt6/status/1689331972114690048 -- but admittedly it's a niche/obscure question.
What do you think, would that work for your deployment?

Quoting myself a bit:

I think passing a canceled context is definitely wrong.
I did find this interesting discussion: https://github.com/golang/go/issues/54775. I'm almost leaning towards "don't pass a context to cleanup at all", or maybe: New context w/o any timeout unless it actually has a meaning in the operation.

I don't think there's any good timeout that certmagic would be able to define, and there's also no good sane way to ask for one in the configuration ("unlock-timeout-when-using-a-weird-storage"?), so it's probably the storage side that needs to know what makes sense.
The referenced discussion reads like "just stop and abandon properly, the context is now canceled and there's nothing wrong with that" -- and in that case I as storage should actually pass a new context to my functions that do funky I/O. Or in other words: If this would be not a function but inlined, then I would still have to call my I/O-y function, and I would have to pass a new context latest at that point.
(Disclaimer: Way out of my depth here, too, let's see what the audience joker gives :D)

Ok, actually, I think your logic makes sense.
I'll change our code to pass in a fresh context that is not canceled and has no timeout. If we encounter problems with hanging unlocks, we can enforce a timeout. (Or the implementation just needs to be fixed; either way.)


[bug]: Generating with Hi-Res fix generates different image than without Hi-Res fix

Is there an existing issue for this?

[X] I have searched the existing issues

OS
macOS
GPU
mps
VRAM
42GB (M1 MAX shared RAM)
What version did you experience this issue on?
3.4.0post2 (the lastest available via the commandline)
What happened?
I rendered an image in 512x768. Then I wanted to highres fix it.

Used the same seed.
turned on highres-fix
Ran the same prompt with the same seed
Set the denoising to 0.3

two different images appeard. It's not working as in auto1111 where you can highres fix an image.
I would expected to get the same image but with some highres-fix aplied. Similiar  as in when I do an img2img upscale with controlnet tile mode
Screenshots
512x768

same prompt and seed with highres-fix at 0.3

Additional context
No response
Contact Details
No response

This is interesting - I'm not able to replicate this at 512x512 but the issue appears at 512x768
cc: @marict any chance you're able to look into this?

I did some brief testing.
This is happening because the logic to choose the initial image size doesn't want to choose 512x768. It is trying to choose the closest initial size, in area, to 512x512. This is done with the assumption that 512x512=262144 pixels is the ideal area for the model, but 512x768 is often a fine size for sd 1.5 models.
When I set my size to 1024x1536 (twice 512x768), it chooses 416x624 as the initial dimensions.
Interestingly, 416x632 is closer to 512x512 than 416x624, so that calculation may be a bit off.
We are working on a refactor of model management, which will allow models to self-report their optimal dimensions. When that is ready, we can make the hires fix logic more sophisticated.
Maybe we can find ways to improve it before that time too.

From what I understand, this behavior is expected when using the high-resolution fix in tools like InvokeAI and similar ones that generate images at a lower resolution and then upscale them.
In the "automatic1111" tool, you specify a resolution that's higher than your current generation settings, like this:
1024x1024 (generation resolution) -> high res fix -> 2048x2048 (upscaled)
However, in tools like InvokeAI or DrawThings, it works like this:
512x512 (initial hidden resolution, chosen automatically) -> high res fix -> 1024x1024 (generation resolution)
The key difference is that the upscaled denoising step introduces less variability in the image compared to the initial generation step. So, in "automatic1111," you still get a different image, but the differences are mainly in the fine details rather than the overall structure of the image.
I hope this clarifies things for you.

This is interesting - I'm not able to replicate this at 512x512 but the issue appears at 512x768
cc: @marict any chance you're able to look into this?

The reason you weren't replicating this at 512x512 is because the resoultion being chosen is whatever is "closest" to 512x512, so in that case it wasn't upscaling at all, just running another couple denois steps.
This is one of the cons (there are pros) to having the initial generation resolution be hidden, since it can be unclear what the initial resolution is and what behavior that implies.


User progress backend

PR Checklist

[ ] I have reviewed the pull request myself
[ ] I have tested the feature myself manually
[ ] I have updated JIRA
[ ] I have added the description to PR which tells the reviewer what this PR is all about
[ ] I have made good commit messages
[ ] I am not mixing two different types of work in one PR. (Do not mix two different features into one PR, or refactoring and feature into one PR)

This PR includes Feature mark as read

[ ] Lesson completion functionality added
[ ]  Check box added
[ ] Backend routes added

@Gagan-Crownstack Before requesting a review, please make sure the lining is passed.


``is_binary'' often return wrong result when file encoding is not ASCII and UTF-8

att, so, sometimes, ag produce less output than grep
I have done a simple solution at https://github.com/wadarochi/the_silver_searcher/commit/fecaee2316440cd57bba2553c9ec2f2aa0e5accd
ag is really an awesome tool, thank you~

Can we use ag for other encodings such as EUC-JP?
I'd like to add a new option to skip is_binary. is_binary makes ag miss some results, even without any message such as some binary files found, but skipped.. I don't want to run egrep after running ag.
@ggreer If it's ok, I'll make a PR for this. Please kindly confirm this feature.


Run the base nodejs build before compiler in presubmit

Issue #, if available:
Description of changes:
The layer which contains the nodejs runtime/compiler is meant to be shared between the runtime image and the compiler images. This makes the presubmit build the nodejs runtime image first then builds the compiler images, which matches what would happen in a periodic update.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve