How to compile Vim 8 under Windows without asked to run link.sh?

Hello,
 Today when I try to compile Vim 8 as before using the build command. But immediately the build process will ask to find a program to run link.sh. I think this link.sh is no need for Windows. How to compile Vim 8 without asked to run link.sh?

please give exact steps to reproduce. Also please note, this is not a support forum but used for specific bug reports for Vim.

Hello @chrisbra ,
My operation system is Windows 7 sp1 x64. When I use the compiler inside Windows SDK v7.0 to build Vim 8.0 by the build.cmd I wrote. During the build process, it will throw out the pop up window to ask to find a program to run link.sh.

Here is the build.cmd I'm using. It work.

------------------------- start : build.cmd ----------------------
@echo off
@rem to build big Vim with OLE, Perl, Python, Ruby and Tcl
set INCLUDE=D:\GnuWin64\include;D:\Lua\include;D:\Ruby\include;%INCLUDE%
set LIB=D:\GnuWin64\lib;D:\Lua\lib;D:\Ruby\lib;%LIB%
set TOOLDIR=D:
set INSTALL_DIR=D:\Vim
set VIM_SRC_DIR=E:\Gits\vim
set PLUG_MGR=D:\Vim\vimfiles\autoload\plug.vim
::set SDK_INCLUDE_DIR=C:\Program Files\Microsoft SDKs\Windows\v7.0\Include
cd /d %~dp0
@rem uninstall previous version if it exist
if exist %INSTALL_DIR%\Vim80 (
cd /d %INSTALL_DIR%\Vim80
uninstal
)
if exist %VIM_SRC_DIR% (
cd /d %VIM_SRC_DIR%
git fetch --all
git reset --hard origin/master
) else (
echo "Downloading Vim ..."
git clone https://github.com/vim/vim.git E:\Gits\vim
)
cd /d %VIM_SRC_DIR%\src
if exist .\ObjCULYHTRAMD64 rmdir /s /q .\ObjCULYHTRAMD64
if exist .\ObjGOULYHTRAMD64 rmdir /s /q .\ObjGOULYHTRAMD64
@rem build for no-GUI version
nmake -f Make_mvc.mak CPU=AMD64 FEATURES=HUGE debug=no GUI=no MBYTE=yes IME=yes DYNAMIC_IME=yes GIME=yes CSCOPE=yes ICONV=yes GETTEXT=yes NETBEANS=yes OPTIMIZE=MAXSPEED SNIFF=yes POSCRIPT=yes PERL=%TOOLDIR%Perl DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35 LUA=%TOOLDIR%Lua DYNAMIC_LUA=yes LUA_VER=53 RUBY=%TOOLDIR%Ruby DYNAMIC_RUBY=yes RUBY_VER=25 RUBY_VER_LONG=2.4.0 RUBY_PLATFORM=x64-mswin64_90 TCL=%TOOLDIR%Tcl TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes %1
@rem build for GUI version
nmake -f Make_mvc.mak CPU=AMD64 FEATURES=HUGE debug=no GUI=yes OLE=yes MBYTE=yes IME=yes DYNAMIC_IME=yes GIME=yes CSCOPE=yes ICONV=yes GETTEXT=yes NETBEANS=yes OPTIMIZE=MAXSPEED SNIFF=yes POSCRIPT=yes PERL=%TOOLDIR%Perl DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35 LUA=%TOOLDIR%Lua DYNAMIC_LUA=yes LUA_VER=53 RUBY=%TOOLDIR%Ruby DYNAMIC_RUBY=yes RUBY_VER=25 RUBY_VER_LONG=2.4.0 RUBY_PLATFORM=x64-mswin64_90 TCL=%TOOLDIR%Tcl TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes %1
@rem Copy the "runtime" files into "Vim80"
xcopy /I /Y /F /E ...\runtime* %INSTALL_DIR%\Vim80
@rem Copy the new binaries into the "Vim80" directory
xcopy /I /Y /F *.exe %INSTALL_DIR%\Vim80
xcopy /I /Y /F vimtbar.dll %INSTALL_DIR%\Vim80
xcopy /I /Y /F .\GvimExt\gvimext.dll %INSTALL_DIR%\Vim80\GvimExt64
xcopy /I /Y /F .\xxd\xxd.exe %INSTALL_DIR%\Vim80
@rem Copy vimtutor into "Vim80"
xcopy /I /Y /F ..\vimtutor.* %INSTALL_DIR%\Vim80
@rem install vim
cd /d %INSTALL_DIR%\Vim80
::install -install-popup -install-openwith -add-start-menu -install-icons -create-directories vim -register-OLE
::del /F /S /Q "C:\Users\public\Desktop\gVim Easy 8.0.lnk"
::del /F /S /Q "C:\Users\public\Desktop\gVim Read only 8.0.lnk"
install
xcopy /F /Y E:\Releases_vimrc %INSTALL_DIR%
xcopy /F /Y E:\Releases.ycm_extra_conf.py %INSTALL_DIR%
@rem Update the plugins
if exist %PLUG_MGR% (
vim +PlugUpgrade +qall
vim +PlugUpdate +qall
) else (
curl -fLo %INSTALL_DIR%\vimfiles\autoload\plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
vim +PlugInstall +qall
)
cd /d %~dp0
-------------------------- end : build.cmd -------------------------

Hello @chrisbra ,
The reason maybe the Makefile include the below line "sh $(srcdir)/link.sh". I think it should be excluded at Windows system or using another way to do the same job.

Maybe your PATH setting is wrong. If you prepend a directory of GNU-like tools before the MSVC directories, it might cause the trouble.

@jiangjianshan : the line you showed (starting $(VIMTARGET): and ending sh $(srcdir)/link.sh is not from the Make_mvc.mak which your earlier post shows as being in use (and which is the correct one to use for MS Visual Studio). The corresponding line (at Make_mvc.mak lines 1204-1213) goes as follows:
$(VIM).exe: $(OUTDIR) $(OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) \
		$(LUA_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) $(TCL_OBJ) \
		$(CSCOPE_OBJ) $(TERM_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) \
		version.c version.h
	$(CC) $(CFLAGS_OUTDIR) version.c
	$(link) $(LINKARGS1) -out:$(VIM).exe $(OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) \
		$(LUA_OBJ) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) \
		$(TCL_OBJ) $(CSCOPE_OBJ) $(TERM_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) \
		$(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
	if exist $(VIM).exe.manifest mt.exe -nologo -manifest $(VIM).exe.manifest -updateresource:$(VIM).exe;1

As you can see, it is totally different. The makefile extract you showed (with -o objects/version.o ending in .o) is for a Unix-like platform. So how come that Unix-like makefile got invoked?
Best regards,
Tony.

hello @tonymec ,
 I have just look very careful for the Mak_mvc.mak, when it want to generate the gvimext.dll, it will invoke src/Makefile, which I think will invoke the command "sh $(srcdir)/link.sh". This should be a bug for Mak_mvc.mak.

No, it's wrong.
See the line 1245. It changes the current directory to GvimExt. So, the Makefile is actrually src\GvimExt\Makefile.
Again, please check your PATH setting.

Could you also show the results of the following commands?
echo %PATHEXT%
where link

Then, what does echo %LINK% show?

Hello @k-takata ,
Here is the command output:

It seems like the %LINK% is not defined.

Hello @k-takata
This “build.cmd” I have use since Vim 7 until Vim 8.1645, it work.
For the build process output when pop up the window to ask a program to run link.sh, it is here:

What does happen when you execute link from command prompt manually?

Hello @k-takata ,
When I type “link” from Windows SDK v7.0 x64 command prompt, it is exactly the linker from msvc.

Even if you executed it in the src directory?

Hello @k-takata ,
If I execute it in the src directory, I have found it has different behavior. It is look like

The pop up windows ask to find a program to run link.sh will be directly appear.

How can I solve it?

Ah, okay. That is what I expected.
It is caused by the setting of PATHEXT.
Please try removing .sh from PATHEXT.
E.g.
set PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW

Hello @k-takata ,
I put one line into “build.cmd” as below showing:

It works fine.

Thanks very much @k-takata . Also thanks @tonymec .

Best regards,
jiangjianshan

set PATHEXT=%PATHEXT:.sh;=%

might be better for removing an extra ;.
Anyway, I close this because it is solved.

Hello @k-takata
OK, thank for hint.

I suppose the MS SDK supported link is actually a link.exe? So why not use link.exe in the Makefile directly so we do not depend on the %PATHEXT% setting?

BTW: shouldn't the first entry .exe in %PATHEXT% have priority over the .sh extension? Why does it use then link.sh and not link.exe? Is that because of the case sensitivity?

Well, the following patch should work when Win32.mak is not included.
However, it is defined as link = link when Win32.mak is included.
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -272,7 +272,7 @@ MAKEFLAGS_GVIMEXT = DEBUG=yes
 !elseif "$(USE_WIN32MAK)"=="yes"
 !include <Win32.mak>
 !else
-link = link
+link = link.exe
 !endif

Not sure whether this patch is worth to be included.


Config mode to shadow-dom and include @unocss-placeholder magic placeholder only output preflights css and no other written css

UnoCSS version
0.51.12
Describe the bug
In console log  @unocss-placeholder only include  /* layer: preflights */ ....  without  other written class
Reproduction
https://stackblitz.com/edit/vitejs-vite-nabuxt?file=src/main.tsx
System Info
No response
Validations

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

To inline the generated css, you only need to configure the plugin mode to shadow-dom and include @unocss-placeholder magic placeholder on each web component style css block.
Refer the shadow-dom documentation

Yes I have configured mode 'shadow-dom' and use @unocss-placeholder magic placeholder. Can help me see the difference between my reproduction and the document description?

Notice: include @unocss-placeholder magic placeholder on each web component style css block
So, you need to use @unocss-placeholder on `App.tsx' to make it work.

Notice: include @unocss-placeholder magic placeholder on each web component style css block注意：在每个 Web 组件样式 css 块上包括@unocss占位符魔术占位符
So, you need to use @unocss-placeholder on App.tsx' to make it work.因此，您需要在“App.tsx”上使用 @unocss-placeholder` 才能使其正常工作。

Is sth wrong?

Any news on this?

it seems we need to add @unocss-placeholder to every single react component, despite these react components not being individual web components? any way to have it automatically search the entire shadow dom and inject all the styles into App.tsx?

it seems we need to add @unocss-placeholder to every single react component, despite these react components not being individual web components? any way to have it automatically search the entire shadow dom and inject all the styles into App.tsx?看来我们需要将 @unocss-placeholder 添加到每个单独的 React 组件中，尽管这些 React 组件不是单独的 Web 组件？有什么办法让它自动搜索整个 Shadow dom 并将所有样式注入 App.tsx 吗？

Waiting for import unocssText from 'virtual:uno.css?inline' https://github.com/unocss/unocss/pull/2570

There is a problem with rendering inline CSS from unoCSS
https://stackblitz.com/edit/unocss-unocss-r5bbsa?file=package.json,src%2FApp.tsx,vite.config.ts,src%2Findex.tsx
The logo here should have a green background. [&>div]:bg-green-500 should compile to:
/* layer: default */
.\[\&\>div\]\:bg-green-500 > div {
  --un-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--un-bg-opacity)) /* #22c55e */;
}

However, when rendering in a <style> tag, it gets escaped to:
.\[\&\>div\]\:bg-green-500>div{--un-bg-opacity:1;background-color:rgb(34 197 94 / var(--un-bg-opacity)) /* #22c55e */;}

same issue, when using compile class no shortcuts are generated.


Enable a "Test" mode that allows package reuploads

Test PyPI is designed to be able to test packages, it should be treated as a sandbox and people shouldn't be "punished" for using it as such. We'll need some way to allow package reuploads in Test PyPI (but not in regular PyPI).

I think it could be valuable to lock packages in test that are registered in the production pypi, so that the package maintainer can continue to test without issue. But until it is locked in production, it should be able to be freely deleted and recreated in test.

Honestly, I don't have a problem just freely allowing reuploads/deletions in test. The only catch is we'll need to restructure the URLs a bit to handle it sanely, but that's something I wanted to do anyways. The main reasons to lock packages on the "real" PyPI don't really apply to test at all once we restructure the URLs.

First of all, I really appreciate your work! The Python community (and therefor you guys) is pretty awesome, I love it :)
I already suggested the same thing here, but apparently you already know about this issue. I like the fact that packages uploaded on the live repo are locked. It will result in a more "secure", consistent, reliable and clean repo. It's great that an existing version can no longer be replaced by the developer and therefor data integrity is enforced. I suppose without this feature it can lead to a lot of confusion, if an active version will silently be replaced.
However, as you already wrote above, it would be great to get a sandbox without punishment as soon as possible. Especially for new users to test their their first package. I created my first PyPI package a few days ago and had to learn it the "hard way" ;)
Can I help and support you guys somehow? I want to give something back to the community and I especially want the get more active in the Python community. Let me know if I can support you guys in any way!
Thanks guys!

@domibarton Sorry for the lack of response here! We unfortunately haven't been particular good in the past couple of years when it comes to harnessing the enthusiasm of folks that express interest in contributing :(
Some notes on possible design directions here:

something users are interested in is knowing whether the projects they use might have existing releases "unpublished", or have new artifacts (such as wheel files) added
as maintainers, we're not interested in forcing existing publishers to change the way they manage their releases. Since many publishers and their users are happy with the current "immediate publication" model, we're going to continue supporting it
however, we'd like to offer a potentially smoother "Stage releases prior to publication" model, which allows folks to prepare the full artifact set for a release in a staging index, and then have a single "Publish Release" operation that moves the entire staged release into the main index as a coherent unit, rather than as individually uploaded files
as an opt-in mechanism, the staged release model could have additional publisher constraints associated with it. Specifically, it would at least prohibit adding any new artifacts to previous releases, and it could potentially even prohibit unpublishing old releases without contacting the PyPI administrators.
the information on whether or not a particular release has been locked against future changes would be made available as part of the index server's project metadata API, allowing users and tools to make informed decisions about their dependency pinning
we would also consider whether or not to make the staged release model the default for new projects, since it's far more user friendly when it comes to testing your artifacts prior to publishing them

At a technical level, the key capability that Warehouse would need in order to support this is the ability to publish two separate indices: the regular index that it already publishes, and a separate staging index for not-yet-published staging releases.
It would also need to model (and make available via a metadata API) the distinction between the somewhat mutable immediately published releases (i.e. unpublishing and addition of binary artifacts permitted), completely mutable staging releases, and completely locked published releases.
The upload API would also need to be adjusted such that it handled the 3 kinds of release state differently.

For the folks in this thread who don't already know the context: The folks working on Warehouse have gotten funding to concentrate on improving and deploying Warehouse, and have kicked off work towards our development roadmap -- the most urgent task is to improve Warehouse to the point where we can redirect pypi.python.org to pypi.org so the site is more sustainable and reliable.
Since this feature isn't something that the legacy site has, I've moved it to a future milestone. But I have opened #2891 for a related feature that we might be able to do in the next few months. And @domibarton we'd love your help contributing to the Warehouse project -- Ernest, one of the core developers, is specifically looking to do one-on-one videochat mentoring with new Warehouse contributors and has slots available every week for the next few months!
Thanks and sorry again for the wait.


document.write

Mdn Web Docs

I saw you're using document.write in your code, it appears that this is strongly discouraged.
So maybe you want to use a spanner with an id instead :

And then put a little script at the bottom of the page :
const el = document.getElementById('current-year');
// Set the innerText instead of innerHTML for safety.
el.innerText = new Date().getFullYear();

Hope this helps you a little 😄

Oops! forgot to include a perma link :P
https://github.com/iPwnds/Portfolio-Website/blob/47e99dcffb1ced825e282c11794d8de5a681cf9b/index.html#L92

Good one, thanks for pointing that out. I wrote that at the complete beginning when I first made the website and didn't think twice. I'll make sure to implement what you said.👍
Thanks for taking a look at my code, appreciate it 😁


Fix #1049, replace OS_fsBlocksFree

Describe the contribution
Use OS_FileSysStatVolume() instead of OS_fsBlocksFree() which will be deprecated in the future.
This also enables the check to be more appropriate as this call reports the number of total blocks, not just the free blocks, so no workaround for desktop machines is needed.
Fixes #1049
Testing performed
Build and run all unit tests
Sanity check CFE
Expected behavior changes
No impact to behavior.
System(s) tested on
Ubuntu 20.04
RTEMS 4.11
Additional context
No longer needs a workaround for running on desktop system, since the new API also returns the total blocks, not just free blocks.
Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.

Depends on nasa/osal#717

Depends on nasa/osal#717

CCB 2021-01-06 APPROVED
depends on https://github.com/nasa/osal/pull/717

CCB 2021-01-06 APPROVED
depends on https://github.com/nasa/osal/pull/717


image/recorded video as input

@mrzl
@genekogan
Hi,
In the sample code, the default is a connected webcam or camera with device ID=0.
What about if we decided to process an image/recorded video instead of live video?

try:
ofVideoPlayer movie;
darknet.yolo(movie.getPixels(), yoloThreshold

You mean I should modify inside ofApp.cpp ?

This is all code inside that file:
#include "ofApp.h"

void ofApp::setup()
{
	std::string cfgfile = ofToDataPath( "cfg/yolo-obj.cfg" );
	std::string weightfile = ofToDataPath( "yolo-obj_2000.weights" );
	std::string namesfile = ofToDataPath( "cfg/obj.names" );

	darknet.init( cfgfile, weightfile, namesfile );

	video.setDeviceID( 0 );
	video.setDesiredFrameRate( 30 );
	video.initGrabber( 640, 480 );
}

void ofApp::update()
{
	video.update();
}

void ofApp::draw()
{
	float thresh = ofMap( ofGetMouseX(), 0, ofGetWidth(), 0, 1 );

	ofSetColor( 255 );
	video.draw( 0, 0 );

	if( video.isFrameNew() ) {
		std::vector< detected_object > detections = darknet.yolo( video.getPixels(), thresh );

		ofNoFill();
		for( detected_object d : detections )
		{
			ofSetColor( d.color );
			glLineWidth( ofMap( d.probability, 0, 1, 0, 8 ) );
			ofNoFill();
			ofDrawRectangle( d.rect );
			ofDrawBitmapStringHighlight( d.label + ": " + ofToString(d.probability), d.rect.x, d.rect.y + 20 );
		}
	}
}

you can swap ofVideoGrabber for ofVideoPlayer into darknet. anything that has pixels can be run through.  see ofVideoPlayer documentation on how to use the movie player.

Thank you. so as I understood, a single image will go through this either, yes?

yes.

Fine.


Align subscription-APIs with guidelines for error scenarios

Problem description
Current version still does not follow the recent guidelines.
Possible evolution
Align codes and examples as indicated in:
https://github.com/camaraproject/Commonalities/blob/main/documentation/API-design-guidelines.md#6-error-responses
https://github.com/camaraproject/Commonalities/blob/main/artifacts/CAMARA_common.yaml

We've aligned with the event-subscription-template.yaml, shouldn't that be first aligned with the guideline? @bigludo7

We've aligned with the event-subscription-template.yaml, shouldn't that be first aligned with the guideline? @bigludo7

Yes! we need to align our template yaml with the commonalities.
@maxl2287 have you already done the gap list?


"$ref" not implemented in object/properties

A reference within object properties does currently not work:
"type": "object",
"properties": {
    "$ref": "base.json#/definitions/typedString/properties"
}

Related to #77 and #13.

Closed with https://github.com/justinrainbow/json-schema/pull/174

I don't think that this is fixed by updating phpunit.

@cweiske good catch! Copy/paste FTW


Support for filtering records by reference-* relationships

If I have a customer and bookings database, when I am viewing bookings, I want to be able to filter by customer.
I want to be able to select the customer I am filtering easily, probably via a typeahead

Indexing will help here, we can load all customers via typeahead.

Its kind of weird that I defined this as drop down of customers to select from, as previous implementations just did text search.  In any case, its now possible to just type part of a customer name, and bookings will be filtered by that string.  That is sufficient for our needs.


Fix source resource type tests

jaffle_shop does not have a source so let's point the example_source_rendering.py to use the altered_jaffle_shop project.

Created a follow-up issue to see if we can avoid using outdated manifest file


RequestLayout() improperly called

I've got these warnings whenever the Tab Bar activity is launched.
W/View: requestLayout() improperly called by android.support.v7.widget.AppCompatTextView{2af626cd V.ED.... ......ID 109,111-215,168 #7f0e0075 app:id/bb_bottom_bar_title} during layout: running second layout pass
W/View: requestLayout() improperly called by android.support.v7.widget.AppCompatTextView{1a2f2b82 V.ED.... ......ID 32,120-161,177 #7f0e0075 app:id/bb_bottom_bar_title} during layout: running second layout pass
W/View: requestLayout() improperly called by android.support.v7.widget.AppCompatTextView{2de35293 V.ED.... ......ID 9,120-185,177 #7f0e0075 app:id/bb_bottom_bar_title} during layout: running second layout pass
W/View: requestLayout() improperly called by android.support.v7.widget.AppCompatTextView{3da522d0 V.ED.... ......ID 0,120-194,177 #7f0e0075 app:id/bb_bottom_bar_title} during layout: running second layout pass
W/View: requestLayout() improperly called by android.support.v7.widget.AppCompatTextView{ccb62c9 V.ED.... ......ID 37,120-157,177 #7f0e0075 app:id/bb_bottom_bar_title} during layout: running second layout pass

Any idea on what might be the problem?

I have the same issue, it doesn't seem to be affecting performance in any way but it shows up in the logger. I'm attaching the BottomBar with five items that have Drawables for icons if that helps.

I am also getting these warnings.

I am also getting these, with 5 icons.

Me too

+1

+1 and the textView it's being cut on every click

+1 and text is not showing on Android L

trying to figure this out too... any solution yet?

Yeah I have the same issue.

thumb up! Still in Ver. 2.1.1

i have the same issue with ver. 2.1.1

+1

+1 the same here with the same scenario. BottomBar with 5 itens all with icons and labels.

+1

I have the same issue.

Same issue here

is this happening on the latest version? 2.2.0

Confirmed on the latest dev branch, looking into it.

@roughike this is because we trigger a layout phase while on the layout phase, i think what we are missing is that we are not leveraging the measuring phase to calculate the sizes and just lay them out on the payout phase.

Yep. There was no manual requestLayout method calls that were out of place, so I guess the system calls that for us whenever we update the width / height, paddings, etc. while the onMeasure method hasn't finished.
There's a lot of optimizations to be done through the library. The weird updateTitleBottomPadding() method for example should be absolutely unnecessary. It was introduced when merging some PR like almost a year ago and to this day, I don't know why it needs to be here at all.

https://github.com/roughike/BottomBar/blob/master/bottom-bar/src/main/java/com/roughike/bottombar/BottomBarBadge.java#L32
I resolved this using android.support.v7.widget.AppCompatTextView:
class BottomBarBadge extends android.support.v7.widget.AppCompatTextView {

@burhanaksendir if that's teh fix, then it will be coming in the next days because that's part of the change i'm working on

Its still bugged, any eta on fix?

when will this bug be fixed? this bug will cause UI stop when app open for long time.

Its been 1 year and no one fixed it, I'd say they don't know how to, or can't. I'll just use a different bottom bar.

@nextdimension @JDDJJ well this library wasn't maintained for a while, And i just started helping about like 2 months ago, but, this is just like a side thing, i'm like 60% done with a huge refactoring in how the BottomBar works, which would make it better while still being backwards compatible. But, i'm super swamped with work this weeks that i haven't been able to finish it. But, don't worry @nextdimension i know how to do it, is already solved, the missing thing is not that is other things before the next release is ready. But, you are always free to use other libraries, or if you want you can contribute Pull Request to improve it as well, i try to take a look to PR as they arrive.

I tried the fix recommended @burhanaksendir but the warnings and the 1-2sec lag on rotation remains

Why do you need this updateTitleBottomPadding ?
What if just add to bb_bottom_bar_item_shifting.xml
<TextView
.....
android:paddingBottom="10dp"
..../>

Fixed in pull request
https://github.com/roughike/BottomBar/pull/866
Working fine in my project.


[N04] Simplify identity heuristic calculation

The passesIdentityHeuristic function of the IdentityProxyHub contract evaluates multiple independent conditions, including a compound condition, and then evaluates whether or not they are all satisfied. For simplicity, consider returning immediately when any of the conditions fail. This would make the function easier to reason about, and would also increase efficiency.

Created PR to address this comment https://github.com/celo-org/celo-monorepo/pull/8016
I considered splitting out the rules into multiple functions, but decided that it would not greatly improve readability. I've added some more comments to mark each of the three rule checks both in the doc string and in the function body.
Additionally, I've added a note on why we choose not to return early on a rule failure: To avoid extra conditional checks and (mildly) optimize for the passing case, at the expense of the failing case. This was suggested in the following PR comment https://github.com/celo-org/celo-monorepo/pull/7363#discussion_r614428367


Add more configuration validation to token/authorize pipeline

initiated by https://github.com/IdentityServer/IdentityServer4/issues/2072
let's collect more config checks here and then implement them in one go.

AccessTokenLifetime is 0

what else?

Browser enabled with no redirect URI set?
Using JavaScript without setting cors
RequireClientSecret missing a secret?

I don't think its worth invaliding the max tokenlifetime,  being that its an int the potential age of the access token is greater then the epoch time.   I think you and I discussed this on stack. link

Ideas:

maybe add a check to IClientStoreExtensions.FindEnabledClientByIdAsync since most (if not all) of our code should be funneling thru that API to load a client
maybe add a new service in DI to do the validation. possibly devs could replace to add their own checks? On the values in Properties for example?

On the values in Properties for example?  <---- Love that idea since i am using properties.

Are you guys looking to implement specific default rules for 2.x or would that be a 3.0 thing (saw the comment from @leastprivilege in the above PR)?

I will merge the base infrastructure today. But it will be no-op by default. Then we can "crowd source" validation rules to be used optionally. They will then become the default in 3.0

OK - here's the new validator:
https://github.com/IdentityServer/IdentityServer4/blob/dev/src/IdentityServer4/Validation/DefaultClientConfigurationValidator.cs
It's not enabled by default - but in the host it is:
https://github.com/IdentityServer/IdentityServer4/blob/dev/src/Host/Startup.cs#L52
I added a bunch of validation checks already. Feel free to PR to add new ones!
Each check should have a corresponding test here:
https://github.com/IdentityServer/IdentityServer4/blob/dev/test/IdentityServer.UnitTests/Validation/ClientConfigurationValidation.cs

What happens if no context.Client.PostLogoutRedirectUris is supplied?

Well - that's an optional setting.

https://github.com/IdentityServer/IdentityServer4/issues/2317

When, for example, using an int.MaxValue (a valid configuration value) for SlidingRefreshTokenLifetime, the result of below line can mean the integer becomes a negative value. This is relevant for scenario's with, for example, the AbsoluteRefreshTokenLifetime set to 0 and a Sliding expiration, where people expect them to be valid forever (or at least significantly long enough to not matter).
https://github.com/IdentityServer/IdentityServer4/blob/325ea0e67b1de2c836f26eb38436ff07177028d4/src/IdentityServer4/Services/DefaultRefreshTokenService.cs#L120
There's a couple of options here:

Ensure the configuration can never exceed int.MaxValue / 2 when configuring a client (but what about database changes?)
Change the processing code to ensure this won't happen (either on load of client settings limit it to int.MaxValue / 2 and log it, or when issuing a new lifetime ensure it doesn't pass it and go negative)
Change it to a uint and if exceeding set it to uint.MaxValue
Ignore 😄

Happy to submit a PR once we know the option.


SymbolModality bottom_simple improvements

I think this change better describes intention of the code. Also a bit of code reuse.

I signed it!

Thanks for this refactor @v-shmyhlo. We actually have a significant refactor coming out in the next few days, so model_builder will actually be completely gone and the model_fn code will move into T2TModel. If after the refactor you think it could still use some cleanup, please feel free to submit a PR. Very sorry that not communicating that plan led to duplicated effort.

Thank you for this information @rsepassi, i am actually very glad that you guys are doing this refactoring, right now it is pretty hard for me to navigate through model_builder source code, looking forward to see your improvements.


Add a new load balance to improve the vector search performance when tiflash replica >1

What problem does this PR solve?

Issue Number: close #xxx
Problem Summary:
when tiflash replica=2, the vector search qps is only 60% of the case when tiflash replica=1
What changed and how does it work?
add a bool paramater centralized_schedule for Client::buildBatchCopTasks
centralized_schedule is a parameter that controls the distribution of regions across BatchCopTasks.
When set to false (default):

Regions are distributed as evenly as possible among BatchCopTasks
This balances the workload across tasks

When set to true:

Regions are concentrated into as few BatchCopTasks as possible
This is currently only used for ANN (Approximate Nearest Neighbor) queries in vector search

The centralized scheduling approach can potentially improve performance for certain types of queries
by reducing the number of tasks and minimizing coordination overhead.
Check List
Tests

[ ] Unit test
[ ] Integration test
[x] Manual test (add detailed scripts or steps below)

[x] tiflash replica = 1, 2, ,3 , both all regions on one tiflash and none-single tiflash has all segmetns
[x] called by an ANN request and non-ann reuqest
[x] kill the requested tiflash

[ ] No need to test

[ ] I checked and no code files have been changed.

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.
release-note
None

/cc @gengliqi


Update build info to include SQL Server 2019 RC builds

Type of Change

[x] Bug fix (non-breaking change, fixes #6059 )
[x] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[x] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] If new file reference added for test, has is been added to github.com/sqlcollaborative/appveyor-lab ?
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose
Adding RC builds for 2019. This required changing the test a bit because the version numbering for RCs is not the same as previous versions of SQL Server. It is not a 4-part build number (e.g. 15.0.1900.34). I also had to add a place holder for RTM due to how are test is done, and I want to keep that test in place to catch things like this. So the RTM build for 2019 is set to 15.0.9999.0. (It should be pretty clear to users that this is just a place holder.)
Against local system the test for Get-DbaBuildReference passes with the changes made in this PR.

Can we trust users to know 15.0.9999 isn't real? Also what if someone is using this within code to get the latest available RTM or something along those lines?

Nothing really we can do if you want it to be added.

This is also data on a version of SQL Server that is not even released yet. So if they have code that is looking for RTM of SQL Server 2019 there are other issues with that out of our control.

looks great! 😍


Allow continuation after comments

This fix is to address #29005 where continuation after comments are not allowed after #24725.
This fix made the change so that #29005 could be addressed.
An integration test has been added. Other related tests have been udpated to conform to the behavior changes.
Please feel free for any suggestions.
This fix fixes #29005.
/cc @tianon @duglin @thaJeztah

I think this PR is one possible solution, I'll add some points to https://github.com/docker/docker/issues/29005 so that we can discuss the best option

LGTM

LGTM

This fix is not legit/ proper solution for "Allow continuation after comments".#29006  given by #yongtang

I would tend to prefer reverting it for 1.13 (#29064) and re-adding back with warning and depreciation notice later :angel:.


Uri object can't be serialized

I want to store Request objects in the db, so I have to serialize it. Request internally uses Uri.
serialization of Uri fails with error "Serialization of 'Closure' is not allowed ". Could you add a method for urlencoding url fragments instead of assigning Closure to $urlEnode?
<?php
$uri = new Phly\Http\Uri('http://google.com/foo/bar');
serialize($uri);

@dzentota Are you think Stream could be serializable as object ?

Requesting implements toString() - represent HTTP Message as string. (like.
https://github.com/zendframework/zf2/blob/master/library/Zend/Http/Request.php#L525 ) makes sense than serializing.

@sasezaki don't get what are you talking about. I've already fixed this issue and provided a pull request


fix: updated figma links in issue template

Description
This PR fixes #527
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@thisiskaransgit Can you review it once.

@thisiskaransgit DCO resolve done

@thisiskaransgit if everything is good, then we should merge this pr?

@Yana-Gupta, rest assured, any of the maintainers will hit the merge button.


Wrong 'static bound on derived Deserialize

I've been trying to deserialize a file into a Tree, with its contents leaked to be static.
#[derive(Deserialize)]
struct Tree {
    #[serde(deserialize_with = "deserialize_leaked")]
    node: &'static str,
    #[serde(deserialize_with = "deserialize_leaked")]
    children: &'static [Tree],
}

fn deserialize_leaked<'de, D, T>(d: D) -> Result<&'static T, D::Error>
where
    T: ?Sized,
    Box<T>: Deserialize<'de>,
    D: Deserializer<'de>,
{
    Box::<T>::deserialize(d).map(|b| Box::leak(b) as &'static _)
}

This works fine in principle, but the macro code then generates a
impl Deserialize<'static> for Tree { ... }

but I need it to be
impl<'de> Deserialize<'de> for Tree { ... }

I have found a workaround by using a type alias
type StaticStr = &'static str;

#[derive(Deserialize)]
struct Tree {
    #[serde(deserialize_with = "deserialize_leaked")]
    node: StaticStr,
    #[serde(deserialize_with = "deserialize_leaked")]
    children: &'static [Tree],
}

fn deserialize_leaked<'de, D, T>(d: D) -> Result<&'static T, D::Error>
where
    T: ?Sized,
    Box<T>: Deserialize<'de>,
    D: Deserializer<'de>,
{
    Box::<T>::deserialize(d).map(|b| Box::leak(b) as &'static _)
}

which has the expected behavior, but it's not very nice.
While browsing the the internet, I found the borrow attribute, but unfortunately this doesn't allow me to specify zero lifetime arguments. While that seems like a reasonable restriction, in this case that is precisely what I want:
#[derive(Deserialize)]
struct Tree {
    #[serde(borrow="", deserialize_with = "deserialize_leaked")]
    node: &'static str,
    #[serde(deserialize_with = "deserialize_leaked")]
    children: &'static [Tree],
}

fn deserialize_leaked<'de, D, T>(d: D) -> Result<&'static T, D::Error>
where
    T: ?Sized,
    Box<T>: Deserialize<'de>,
    D: Deserializer<'de>,
{
    Box::<T>::deserialize(d).map(|b| Box::leak(b) as &'static _)
}

Though it's also interesting, why is the type alias only required on the &'static str but not the &'static [Tree]?
I wanted to simply suggest to allow #[serde(borrow = ""), but something else feels off here.

serde(bound = ""), either on the node field or on the whole struct, should do the trick. That supersedes all built-in inference of trait bounds and lifetime bounds.
There is a difference between &'static str and &'static [Tree] due to the first sentence in https://serde.rs/lifetimes.html#borrowing-data-in-a-derived-impl: only &'a str and &'a [u8] result in 'de: 'a lifetime bound implicitly being added by serde to the derived impl. Other field types add no lifetime bound implicitly and one must use a borrow or bound serde attribute to get a lifetime bound.

Thank you for the explanation. Using serde(bound = "") does indeed work.
I suppose if more complex (generic) types don't have this inferred borrow anyway, then this is equivalent to the serde(borrow="").
Though I'd think the borrow attribute would be more intuitive.
Feel free to close this if you think using bound is good enough!


BLIP2 process batch of text for image-text matching

Hi,
Following the example here:
https://github.com/salesforce/LAVIS/blob/main/examples/blip2_image_text_matching.ipynb
How can I use self.text_processors["eval"](text) to process a batch of text without writing a for loop?
Previous BLIP has it and was curious if I can achieve the same effect with BLIP2.
Error:

ValueError: Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' 'truncation=True' to have batched tensors with the same length. Perhaps your features (input_ids in this case) have excessive nesting (inputs type list where type int is expected).

Basically the error means that because the length of the text isn't the same I need somewhere to use padding and truncation to true, I still didn't find that appropriate place I should use it. But I don't want to enable truncation to true because I don't want to lose characters in the text I feed. Hence, increase the number of tokens to feed the tokenizer can be a good solution but I'm not sure how to achieve it. Any ideas?
Here's my code:
from PIL import Image
import requests
import torch
import os
from pathlib import Path
import wget
from lavis.models import load_model_and_preprocess

class BLIP_Captioner():

    def __init__(self):
        self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
        self.model, self.vis_processors, self.text_processors = load_model_and_preprocess("blip2_image_text_matching", "pretrain", device=self.device, is_eval=True)

    def generate_matching(self, image, caption):

        with torch.no_grad():
            img = self.vis_processors["eval"](image).unsqueeze(0).to(self.device))
            itc_scores = self.model({"image": img.repeat(150, 1, 1, 1), "text_input": text}, match_head='itc')

def main():

    blip_instance = BLIP_Captioner()

    img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'
    raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')

    blip_instance.generate_matching(raw_image, text = ["A picture of woman", "A picture of man", "A picture of dog"] * 50)

if __name__ == '__main__':
    main()

Hi， I wonder if you have solved the problem since I also encounter this issue

Hi, has either of you found a solution?


feat(storage): support for configuring the S3 endpoint

part of https://github.com/teamhephy/workflow/issues/52
Guess I start here - whether you want to keep this open until everything else is done, or merge right away, your call 😄

This is a good start – so, we support some other storage endpoints already, and they don't use the "s3" configuration section
Does this change work by itself? (with the other updates that you placed in https://github.com/teamhephy/distribution/pull/1 , of course I mean)
I'm trying to decide if we should actually add a section for non-s3 storage systems that are not supported by name, and if we need to go down the road of adding each new storage system we want to support so that users are not manually setting endpoint knobs on systems that are (or should be) defined in an upstream s3 library supporting repo somewhere...

I am pretty sure they are all basically using S3 API, I just don't know how the components all support this quite inside-and-out.
The teamhephy/s3-uploader repo, for one I think, would have to be used and supporting all three... as AIUI this is the component that handles WAL backups from the postgres component, and the capability of running on-cluster postgres is a requirement of every supported platform.
I haven't looked deeply enough at this to say for sure, but I have every intention of digging deeper inside of the next 7 days or thereabouts!  We are excited to add support for DigitalOcean Spaces at least in the near future.
We want to do this for Spaces so that we can add them to the list of supported platforms quickly after their managed Kubernetes goes into general availability.  (And IBM Cloud has had most of these and all of this kind of supporting infrastructure available in GA already for at least 6 months.)

Well if it's all s3 anyway, we can simplify a lot there 👍

[ DigitalOcean Spaces ]

from a quick glance at the docs, that should indeed just work by setting that new endpoint param to https://nyc3.digitaloceanspaces.com (once all the components know about the parameter, ofc)

Definitely seems like there are some opportunities to simplify the config, but I think for first-class support like we have with the other storage APIs, it would be better to save the user from needing to know about endpoint...
In other words, if it's true that there's only one region and only one possible setting for endpoint in the configuration of a DigitalOcean Spaces-backed workflow then a user who selects digitalocean as the storage backend by setting global.storage, not have any more work to do other than setting access keys and secrets.
It should be just the same as someone who is configuring azure or gcs backends, which I think have the same characteristic of a single region, ... well that doesn't sound right, but I don't see a setting for region in either GCS or Azure storage sections.  (Actually I think for AZ the region is an innate characteristic of the AccountName/AccountKey pair.  Maybe the same for key_json in GCS.)
Regardless, if there are no regions in Spaces, then we can make the config just as easy.
Anyway if your patch enables some users who know what they're doing to use these other storage backends by setting endpoint, without any "first-class support," then I don't see any reason why it shouldn't be merged first, ahead of all that.

Ah, that makes sense - yeah, that should be easy then, just some helm chart stuff to make that work.

I think for now it would be good to merge this in and allow users to set the endpoint of S3 to whatever they need it to be. After all the API of S3 is called S3 and the idea of S3 does not have to be connected to AWS in any way even though it is right now. That's what S3-compatible means anyways.
Eventually I agree with @kingdonb  that separating the configurations out would be a good idea.

part of #52
Guess I start here - whether you want to keep this open until everything else is done, or merge right away, your call smile

Can you submit all the PRs and then give me links in Slack to what needs to be merged all at once? I would want to do some commenting and testing before we merge everything.

Yeah we can merge this in for v2.20 as far as I'm concerned

Yeah we can merge this in for v2.20 as far as I'm concerned

I'm ready to start making v2.20 release and I'm not sure @rwos is ready with all the PRs. Are all the PRs for this feature ready @rwos ?

@Cryptophobia yes, they're all linked to https://github.com/teamhephy/workflow/issues/52
Additionally, slugbuilder, slugrunner, and dockerbuilder will need the new object-storage-cli once that is merged and built.


torch version inference logic broken when torchvision is specified

If I start an experiment with the following requirements defined in the UI:
torch==1.3.1

The installation works well, But if I use the following requirements:
torch==1.3.1
torchvision==0.2.1

Then it fails trying to install torch==0.2.1 after installing torch==1.3.1. Probably the parsing of the version of torchvision has an error?
Here is the full log of the error:
Requirement already up-to-date: pip==20.1 in /home/H4dr1en/.trains/venvs-builds/3.7/lib/python3.7/site-packages (20.1)
Collecting Cython
  Using cached Cython-0.29.17-cp37-cp37m-manylinux1_x86_64.whl (2.1 MB)
Installing collected packages: Cython
Successfully installed Cython-0.29.17
Collecting torch==1.3.1+cpu
  File was already downloaded /home/H4dr1en/.trains/pip-download-cache/cu0/torch-1.3.1+cpu-cp37-cp37m-linux_x86_64.whl
Successfully downloaded torch
Collecting torch==0.2.1
  ERROR: HTTP error 403 while getting http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl
  ERROR: Could not install requirement torch==0.2.1 from http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl because of error 403 Client Error: Forbidden for url: http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl
ERROR: Could not install requirement torch==0.2.1 from http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl because of HTTP error 403 Client Error: Forbidden for url: http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl for URL http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl
trains_agent: ERROR: Could not download wheel name of "http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl"
ERROR: Double requirement given: torch==0.2.1 from http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl (from -r /tmp/cached-reqsipcp8nfs.txt (line 2)) (already in torch==1.3.1+cpu from file:///home/H4dr1en/.trains/pip-download-cache/cu0/torch-1.3.1%2Bcpu-cp37-cp37m-linux_x86_64.whl (from -r /tmp/cached-reqsipcp8nfs.txt (line 1)), name='torch')
trains_agent: ERROR: Could not install task requirements!
Command '['/home/H4dr1en/.trains/venvs-builds/3.7/bin/python', '-m', 'pip', '--disable-pip-version-check', 'install', '-r', '/tmp/cached-reqsipcp8nfs.txt']' returned non-zero exit status 1.
DONE: Running task 'c63fc150ff5049c4939cd6a37f3d30a8', exit status 1

System: Linux Debian 9
Cuda: not installed (no gpu)

Hi @H4dr1en
Torch is a special case for trains-agent, since the good people of pytorch are actually maintaining packages for different CUDA versions, the trains-agent will automatically select the correct package based on the installed CUDA.
Specifically it seems that you are running without a GPU, so cuda version is 0.
It seems to find the correct package for torch==1.3.1, but fails on torchvision, the thing is it tries to download "torch" not "torchvision" ... Let me see if I can reproduce this behavior ..

Hi @H4dr1en
Could you test with trains-agent 0.14.2rc2
pip install trains-agent==0.14.2rc2

I think the problem is that there is no package for torchvision==0.2.0
You can see in the full list here: https://download.pytorch.org/whl/cpu/torch_stable.html
Notice that you can just reset the experiment and edit the requirements to the correct torchvision version :)

With trains-agent==0.14.2rc2 it also fails:
Collecting Cython
  Using cached Cython-0.29.17-cp37-cp37m-manylinux1_x86_64.whl (2.1 MB)
Installing collected packages: Cython
Successfully installed Cython-0.29.17
Collecting torch==1.3.1+cpu
  File was already downloaded /home/H4dr1en/.trains/pip-download-cache/cu0/torch-1.3.1+cpu-cp37-cp37m-linux_x86_64.whl
Successfully downloaded torch
Collecting torch==0.2.1
  ERROR: HTTP error 403 while getting http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl
  ERROR: Could not install requirement torch==0.2.1 from http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl because of error 403 Client Error: Forbidden for url: http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl
ERROR: Could not install requirement torch==0.2.1 from http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl because of HTTP error 403 Client Error: Forbidden for url: http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl for URL http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl
trains_agent: ERROR: Could not download wheel name of "http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl"
ERROR: Double requirement given: torch==0.2.1 from http://download.pytorch.org/whl/cu0/torch-0.2.1-cp37-cp37m-linux_x86_64.whl (from -r /tmp/cached-reqsx0eu_ber.txt (line 2)) (already in torch==1.5.0+cpu from file:///home/H4dr1en/.trains/pip-download-cache/cu0/torch-1.5.0%2Bcpu-cp37-cp37m-linux_x86_64.whl (from -r /tmp/cached-reqsx0eu_ber.txt (line 1)), name='torch')
trains_agent: ERROR: Could not install task requirements!
Command '['/home/H4dr1en/.trains/venvs-builds/3.7/bin/python', '-m', 'pip', '--disable-pip-version-check', 'install', '-r', '/tmp/cached-reqsx0eu_ber.txt']' returned non-zero exit status 1.
DONE: Running task '63d740ab6fbd4178ad55243df1c4cf07', exit status 1

I think the problem is that there is no package for torchvision==0.2.0

Why not simply install torch vision usiong pypi repo? It is available there, or am I missing something?

Yes you are correct, I'll make sure the error message will be corrected in the next RC.
Regrading using pypi with torch, the problem is, this is unstabe, for example there is no way of knowing whether the torchvision on pypi is the CPU or the GPU version...
Also for the GPU version, the CUDA version changes from one torch version to another, so you end up with driver mismatch with no good reason.
With all that said, if you know what's the correct version for your setup, you can simple replace the torchvision==0.2.1 with a direct https link to the wheel:
https://files.pythonhosted.org/packages/ca/0d/f00b2885711e08bd71242ebe7b96561e6f6d01fdb4b9dcf4d37e2e13c5e1/torchvision-0.2.1-py2.py3-none-any.whl
This would work, as long as it matches the CPU/CUDA version you are running .

Regrading using pypi with torch, the problem is, this is unstabe, for example there is no way of knowing whether the torchvision on pypi is the CPU or the GPU version...
Also for the GPU version, the CUDA version changes from one torch version to another, so you end up with driver mismatch with no good reason.

Thank you for pointing that out, this definitely makes sense!

With all that said, if you know what's the correct version for your setup, you can simple replace the torchvision==0.2.1 with a direct https link to the wheel:

Thanks for the workaround! I'll close as soon as the error is more explicit 👍

EDIT:
@H4dr1en, What is the trains-agent version you are using?
What is the package manager trains-agent is using ? see example here
What is the pip version limit configured in trains.conf? see example here

train-agent==0.14.2rc2
package manager = pip
pip version = 0.21


Can only connect to my own account

Thank you for writing this package!
This is my first time developing things with discord. I'm trying to build a macOS toy app with a rich presence integration. I added some code and the whole thing works with my own account, but it cannot even authenticate when testing with other accounts. says "OAuth2 Error: invalid_scope: The requested scope is invalid, unknown, or malformed." I dug around and it seems discord has to whitelist my app, and they stopped doing that long time ago?
I saw you mentioned using IPC, is that supposed to bypass this?
Thank you

I figured it out. I don't need authentication to have rich presence 😅. Thank you again for writing this great package

Hi,
Was wondering if you could show me how you managed to do this?


Flash card challenge using python

Aim

I want to add flash card challenge using python.

Can you please assign this task under gssoc'23 @avinashkranjan

Script Similar to it already Present in the Repo.


Error in driver ZWaveError: Failed to initialize the driver: core_1.shouldLogNode is not a function

Checklist:

[X] I am not using HomeAssistant. Or: a developer has told me to come here.
[X] I am not using ZWaveJS2MQTT. Or: a developer has told me to come here.
[X] I have checked the troubleshooting section and my problem is not described there.
[X] I have read the changelog problem was not mentioned there.

Describe the bug
After installing zwave-js-server and<EMAIL_ADDRESS>I get an error trying to run the server.
Device information
N/A
Did you change anything?

[ ] Yes: (please describe)
[X] No

Did this use to work before?

[ ] Don't know, this is a new device
[ ] No, it never worked anywhere
[X] Yes, in: (specify application with versions) 6.4.0 when installed about 4 days ago.

How are you using node-zwave-js

[ ] zwavejs2mqtt (latest) docker image
[ ] zwavejs2mqtt (dev) docker image
[ ] zwavejs2mqtt Manual Docker build

node-zwave-js branch:
zwavejs2mqtt branch:

[ ] ioBroker.zwave2 adapter
[ ] HomeAssistant version XYZ
[ ] Pkg
[X] Manual Docker build

node-zwave-js branch:
zwavejs2mqtt branch:  Any beta7-beta9.

[ ] Manually built (as described in the docs)
[X] Other:  Manually installed with npm or yarn

To Reproduce
Steps to reproduce the behavior:

Use npm or yarn to install the packages. Install<EMAIL_ADDRESS>or actually any older version. I have not tried 6.5.0.
Start the zwave-server.
Watch an exception.
See error

Additional context
I am building my own zwave-js-container. I build a beta8 container about 4 days ago with the same (?) 6.4.0 and it works fine. I am building a new container, beta9 with 6.4.0 and it no longer works. It doesn't matter whether I install 6.3.0 either.
Error in driver ZWaveError: Failed to initialize the driver: core_1.shouldLogNode is not a function
    at Immediate.<anonymous> (/app/node_modules/zwave-js/src/lib/driver/Driver.ts:739:6) {
  code: 5,
  context: undefined,
  transactionSource: undefined
}

Logfile:
zwave_js.log
I notice that npm list is showing the version 6.5.0 of zwave-js even though I installed 6.4.0, not sure if that means anything.
/app # npm list | grep zwave-js
+--<EMAIL_ADDRESS>`--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>deduped
  | +--<EMAIL_ADDRESS>deduped
  +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>deduped
  +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>deduped
  +--<EMAIL_ADDRESS>
If I search for shouldLogNode  in my good container vs. bad, I notice that the function used to be exported, and is not now. Again, I don't know if that actually means anything, but it's a difference. There was a change to this function in 6.5.0 and now it's no longer exported. Not sure why changes there should affect an install of 6.4.0.
Bad
<EMAIL_ADDRESS>282:    shouldLogNode(nodeId) {

Good
@zwave-js/core/build/log/shared.js
25:exports.restoreSilence = exports.unsilence = exports.tagify = exports.messageRecordToLines = exports.messageToLines = exports.messageFitsIntoOneLine = exports.shouldLogNode = exports.ZWaveLogContainer = exports.ZWaveLoggerBase = exports.getNodeTag = exports.LOG_PREFIX_WIDTH = exports.LOG_WIDTH = exports.directionPrefixPadding = exports.CONTROL_CHAR_WIDTH = exports.getDirectionPrefix = exports.timestampFormat = void 0;
281:function shouldLogNode(nodeId) {
290:exports.shouldLogNode = shouldLogNode;

If I install with yarn add<EMAIL_ADDRESS>the yarn.lock file shows:
"<EMAIL_ADDRESS>  version "6.5.0"
  resolved<EMAIL_ADDRESS>  integrity sha512-yY3HGrt5c5vTvbIIw5jKIMsT34CMl5r5YZw3NQ2XmPlJISgZPpZf1G7fzXrwz9oOlch5MTUL+8MGwU97YxGIGw==
  dependencies:
    "@zwave-js/core" "^6.5.0"
    "@zwave-js/shared" "^6.5.0"
    alcalzone-shared "^3.0.2"
    ansi-colors "^4.1.1"
    fs-extra "^9.0.1"
    json-logic-js "^2.0.0"
    json5 "^2.1.3"
    semver "^7.3.2"
    winston "^3.3.3"

"<EMAIL_ADDRESS>"<EMAIL_ADDRESS>  version "6.5.0"
  resolved<EMAIL_ADDRESS>  integrity sha512-2PmOz+q8aFZGZueSQVmJGCksczws5yuxNiDI5mrdsHYVhbuRYXoOQvDkm4ECSY/MLrC7KK6etJgqTO1n6lg43Q==
  dependencies:
    "@alcalzone/jsonl-db" "^1.2.3"
    "@zwave-js/shared" "^6.5.0"
    alcalzone-shared "^3.0.2"
    ansi-colors "^4.1.1"
    moment "^2.29.0"
    moment-timezone "^0.5.31"
    nrf-intel-hex "^1.3.0"
    winston "^3.3.3"

"<EMAIL_ADDRESS>  version "6.5.0"
  resolved<EMAIL_ADDRESS>  integrity sha512-/WU/ChpuvX1h7W2KyvgtxCbd3VgGFcvF2J7AKApnXFZ2/Rt9sH+BWP3u0OP6930fcZTQO4OQsg/F6oF9THKAvg==
  dependencies:
    "@zwave-js/core" "^6.5.0"
    alcalzone-shared "^3.0.2"
    serialport "^9.0.1"
    winston "^3.3.3"

"<EMAIL_ADDRESS>"<EMAIL_ADDRESS>  version "6.5.0"
  resolved<EMAIL_ADDRESS>  integrity sha512-1Ht/QXKL/WoqISqbVKlPLnmpMEQQG4Tdzf8jLjzW152NglJg7+4IY9uSTkECgGvPyUxTU/YFyniNbZ6ndvklAg==
  dependencies:
    alcalzone-shared "^3.0.2"

It wants 6.4.0 but it's installing 6.5.0 dependencies?

Ok, I didn't know the semver syntax until now, so ^6.4.0 is >= 6.4.0 and < 7.0.0-0. Did the dependencies at v6.5.0 break the public API?

The public API didn't change, but the internal one often breaks between releases. I guess I should configure the internal dependencies to use ~ ranges instead.

is that what caused the original issue in https://github.com/zwave-js/zwavejs2mqtt/issues/669 (which by the way the versioning issue seemed to disappear)

I don't think so - 6.5.0 didn't exist until a few hours ago.


Set class libraries for web apps to multi-target .net framework and .net standard

Summary
When the entrypoint is an ASP.NET web app the tool should handle class library projects differently. Instead of trying to transition to netstandard2.0 the class library should be multi-targeted to netstandard2.0 and to target a .Net framework version compatible with the web app.
Motivation and goals
Currently the tool will convert class libraries to netstandard2.0 as the default. This works for many scenarios but creates challenges for ASP.NET framework web apps that do not support PackageReference restore style. The two challenges are:

Transitive dependencies are not copied to the \bin directory which causes runtime errors
The full scope of dependencies is not made available to MSBUILD. This means Visual Studio cannot display warnings about BindingRedirects which are required for ASP.NET framework web apps when different dependency versions are required. Failing to add the the BindingRedirects also causes a runtime error in the ASP.NET framework web app.

Using multi-targeting to build a .net version of a class library retains the behavior of copying transitive dependencies to the \bin directory for class libraries that use the new SDK style .csproj format and PackageReference restore. Because the dependencies are copied to the \bin directory MSBUILD can also make BindingRedirect warnings.
Using multi-targeting to build the netstandard version of a class library retains the behavior desired going forward with the upgrade.
In scope

Changing the TargetFrameworkSelector so that it can understanding this scenario
Reviewing the way NuGet package minimum versions are evaluated to make best guess for compatibility when packages are upgraded

Out of scope

Modifying the csproj of the ASP.NET framework web app.
In some scenarios a compatible NuGet package may not be available for .NET Framework. Display the "no compatible packages" message we already use when necessary.
For class libraries with web dependencies: Creating an interface, and/or using preprocessor directives to make code conditional for .net framework or .net standard is out of scope.

Risks / unknowns

Class libraries with web dependencies may still encounter runtime errors after upgrade.
Switching a class library to multi-targeting is a temporary step. This is only recommended while the web solution is using the Strangler Pattern and deploying 2 web projects side-by-side. Once all features are fully migrated to ASP.NET core the multi-targeting should be removed. A comment in the csproj can help users understand this recommendation.
The compiler will have to build the same project twice which can lead to slower overall build time

One challenge here will be code fixers. If a code fix provider (used by the source updater step) would replace a .NET Framework-only API with a .NET Core or .NET Standard-only one, what does it do with multi-targeted projects? At the moment I think the only code fixers like that are for web scenarios and hopefully there aren't too many libraries with System.Web dependencies. But in cases where they are, we will need to think about what the code fixes should do.
The other challenges that come to mind, you already list - we'll need to update the NuGet package version update step so that it chooses versions that work with all targeted TFMs and we'll need to update the target framework selector so that it correctly handles projects with multi-targeted dependent projects.


squid:S2696 - Instance methods should not write to "static" fields

This pull request is focused on resolving occurrences of Sonar rule
squid:S2696 - Instance methods should not write to "static" fields.
This pull request removes technical debt of 60 minutes.
You can find more information about the issue here:
https://dev.eclipse.org/sonar/rules/show/squid:S2696
Please let me know if you have any questions.
George Kankava

Automated message from Dropbox CLA bot
@georgekankava, it looks like you've already signed the Dropbox CLA. Thanks!

Looks good to me. Thanks for the patch!

This has been merged.


Misleading statement under Cause

I work with the app services chat team and we have seen some cases where customers are led to believe that SNAT will not be used by app services communicating with services internal to Azure due to this statement under Cause:
"Azure uses source network address translation (SNAT) and a Load Balancer (not exposed to customers) to communicate with end points outside Azure in the public IP address space."
I suggest changing this to something like:
""Azure uses source network address translation (SNAT) and a Load Balancer (not exposed to customers) to communicate with end points outside Azure, as well end points internal to Azure that are not taking advantage of service end points, in the public IP address space"

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

ID: 4e8650b7-1fd8-8626-de01-73130af5f656
Version Independent ID: b1766fa1-9bf4-33ed-8bd7-9fee6cd0769e
Content: Troubleshooting intermittent outbound connection errors in Azure App Service - Azure App Service
Content Source: articles/app-service/troubleshoot-intermittent-outbound-connection-errors.md
Service: app-service
GitHub Login: @v-miegge
Microsoft Alias: ramakoni

@Corbinjb,  Thanks for the feedback! We are taking a look into this and will get back to you soon.

We have a PR pending release. Thanks @Corbinjb.


New module: Kraken2/Bracken on Unaligned Sequences for Contamination Detection

Closes #271. This contribution adds Kraken2/Bracken as an optional quality control step to the rnaseq pipeline for the HISAT2 and STAR/Salmon aligners. Contamination is a widely reported issue in rna-sequencing data, and the use of metagenomics tools can be used to address this. Kraken2 is particularly strong  at detecting low levels of pathogens, which makes it appropriate for this task. This PR adds the option of providing a Kraken2 database to perform taxonomic classifications on unaligned reads.
Note: If the --bracken-precision parameter is set to something other than 'S', the current MultiQC version does not work properly. In future versions of MultiQC, this will not be an issue (see this MultiQC bug fix).
PR checklist

[x] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!
[x] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
[ ] If necessary, also make a PR on the nf-core/rnaseq branch on the nf-core/test-datasets repository.
[x] Make sure your code lints (nf-core lint).
[x] Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
[x] Check for unexpected warnings in debug mode (nextflow run . -profile debug,test,docker --outdir <OUTDIR>).
[x] Usage Documentation in docs/usage.md is updated. [I do not think this is needed for my PR.]
[x] Output Documentation in docs/output.md is updated.
[x] CHANGELOG.md is updated.
[x] README.md is updated (including new tool citations and authors/contributors).

Impressive work! I think, that some users will indeed like that feature, but it may also produce false positive hits.
Without doing an in-depth review, I am therefore already missing some usage documentation on this feature. Since the quality of the reference database is paramount, pipeline users should be provided with some help how to generate an appropriate reference database:

The TCGA read data were analyzed with the Kraken program (13), a very fast algorithm that assigns reads to a taxon using exact matches of 31 base pairs (bp) or longer. The Kraken program is highly accurate, but it depends critically on the database of genomes to which it compares each read. Poore et al. used a database containing 59,974 microbial genomes, of which 5,503 were viruses and 54,471 were bacteria or archaea, including many draft genomes. Notably, their Kraken database did not include the human genome, nor did it include common vector sequences. This dramatically increased the odds for human DNA sequences present in the TCGA reads to be falsely reported as matching microbial genomes. This problem can be mitigated by including the human genome and using only complete bacterial genomes in the Kraken database.

(from Major data analysis errors invalidate cancer microbiome findings)
Also, I wonder if another tool like Sylph would have been sufficiently accurate for a fast screening, since a Kraken2/Bracken run is of course computationally heavy and this is not a metatranscriptomic pipeline.

I had not heard of Sylph specifically before, but while Kraken2/Bracken is one of the more computationally expensive options, it appears from the literature that it will have the best level of recall for contaminating species and is the fastest (amortized).

See Ye et al., 2019, where Kraken2 is shown to be the best performing k-mer method (and Metaphlan4 the best performing marker-based based method)
Kibegwa et al, 2020 that Kraken2 performs better than MG-RAST specifically
Lindgreen et al., 2016 for a bit older article where Kraken was the best of the tools at the time
And lastly the article that I mentioned in my first comment that shows Kraken2 performs much better than Metaphlan for detecting low levels of pathogens (Pereira-Marques et al., 2024).

As for Sylph, while the BioArxiv paper does look promising, since it is such a new tool, it would require more development to incorporate into the pipeline (we would have to code a new MultiQC module and a new nf-core module for it), and it may be worth waiting until there are more benchmarks of it against other tools/it is more widely established. Alternatively, in the long run, we could have two different options users can choose from, Kraken2 for a more expensive but higher recall tool and Sylph or something else for a less expensive tool. Still, Kraken2's computational expense is largely based on the database size, and there are various size-restricted databases available for those with that concern (see the pre-constructed indices).
In terms of the database, I agree that it can have a significant impact. I was presuming that people would primarily use the standard database or the PlusPF database from the pre-constructed databases mentioned above. Both of these include human and vector genomes, which would avoid some of the issues mentioned in Major data analysis errors invalidate cancer microbiome findings. I considered putting an option to build the Kraken2 standard database within the pipeline (primarily for an indexing-only run), but it seemed sort of silly given the computational expense and the availability of pre-constructed databases.
Another source for database construction could be the genomes in the OpenContami database. Since this consists of only known contaminants from a statistically rigorous contamination-detection procedure, this would probably avoid most of the bacteria from extreme environments (though one would have to make sure to also add in the human and vector genomes). (If you haven't seen OpenContami before, it is based on doing Bowtie2 alignments followed by Blasting unknown sequences. As a result, it is very computationally expensive, and also, the code for it isn't available on Github).
For some other discussions of database construction, see

In Smith et al., they discuss that  making sure to include pertinent genomes increases Kraken2's accuracy in rumen.

This however is primarily based on when uncommon species are present, as in metagenomics. I did some profiling of Kraken2 on common contaminants mentioned on the OpenContami website with datasets generated by InSilicoSeq, and the PlusPF database did a good job at the genus level of classifying almost all of them.

In Baud & Kennedy, 2024, they present an algorithm, Moonbase that constructs a Kraken2 database based on an initial run of Metaphlan3 in order to improve results.

This however would raise two issues in our situation. First, using Metaphlan to construct the database would likely void some of the advantages of Kraken2 over Metaphlan in terms of recall. Second, having to build the database rather than have it inputted pre-made would increase computational expense.

Some questions:
If we added a section on the database to be used, would that go in the usage.md file, output.md, or elsewhere? Lastly, for false positives, I was of the opinion that we should use a higher recall but lower precision tool like Kraken2 to error on the side of caution and leave it to the researchers to use their judgement with interpreting results. I think it may be worth simply putting a warning in the documentation that very small numbers of non-host reads should not necessarily be immediately accepted as truth. In my InSilicoSeq profiling I mentioned, there were generally (though not always) significant differences in the number of reads of actual contaminants vs false positives (and for pure human samples, at least with in silico data there were not false positives when HISAT2 followed by Kraken2 was performed).
One other note: I chose the --confidence-level 0.05 based on Pereira-Marques et al., 2024 and --minimum-hit-groups 3 based on Lu et al., 2022, a protocol paper for finding pathogens with Kraken2.

Thanks for the quick and comprehensive reply!

Alternatively, in the long run, we could have two different options users can choose from, Kraken2 for a more expensive but higher recall tool and Sylph or something else for a less expensive tool

Agree. That is exactly why I proposed the parameter contaminant_screening, so people could choose their favorite tool(s) easily, analogous to the aligner/pseudo-aligner in the pipeline.

In terms of the database, I agree that it can have a significant impact. I was presuming that people would primarily use the standard database or the PlusPF database from the pre-constructed databases mentioned above. Both of these include human and vector genomes, which would avoid some of the issues mentioned in Major data analysis errors invalidate cancer microbiome findings.

Wonderful, I was not aware. Building a custom reference database is indeed beyond the scope of this pipeline, but some documentation where to find recommended published ones and which criteria matter would be absolutely required. The usage.md would be the appropriate place for this information, as the output.md explains the outputs generated by the pipeline itself.

I think it may be worth simply putting a warning in the documentation that very small numbers of non-host reads should not necessarily be immediately accepted as truth.

I second that as well. Perfect!

One other note: I chose the --confidence-level 0.05 based on Pereira-Marques et al., 2024 and --minimum-hit-groups 3 based on Lu et al., 2022, a protocol paper for finding pathogens with Kraken2.

Very rigorous and excellent work. I suggest making a comment right in the config file pointing to the papers. Then the source and rationale is tightly linked to the custom parameter and readily available.

I am not going to approve the merge as I was a little too involved (unless everyone agrees its good), but I believe that with some minor updates to the documentation (as already discussed), this is ready for merge :)
If I have some time in the coming weeks, Ill gladly write some of the explaining documentation.

Just adding my two cents. I helped Ezra in-person so many of my comments are not here, but think what is here is fantastic and pretty close to being ready for merging. Totally agree on the default being not to run this, but think its inclusion is a positive change.

Absolutely! I have not yet re-reviewed the latest changes, but in general the two of you have already convinced me of the usefulness of having a contamination screening and I also support Kranken2/Bracken inclusion. So for me, it was just about a few details of the implementation, testing and documentation, but that can be or already is worked out. (I need to re-review)

I am not going to approve the merge as I was a little too involved (unless everyone agrees its good), but I believe that with some minor updates to the documentation (as already discussed), this is ready for merge :)

Same for me. I am also just helping out with the pipeline here and there, so I think the lead developers @drpatelh and @pinin4fjords should also review and approve the addition, as it is a fundamental change. Also, the timing might be an issue, since I am aware that the release 3.15 is long overdue, and I guess that there could be some skepticism regarding packing new features into that release in the last minute. Personally, I have been holding back an alternative UMI deduplication route because it seemed more appropriate for the 3.16 roadmap.  But if the contamination screening functionality is solid and needed, then I guess this can be discussed as well.

Overall, just want to write massive props to @egreenberg7 for his work. He has a bright future, and hopefully we can get his name on a couple cool papers in the near future :)

Absolutely. It is rare that somebody starts (?) their contribution to nf-core with such a massive PR and significant improvement! Kudos!

If I have some time in the coming weeks, Ill gladly write some of the explaining documentation.

That is very welcome! I am aware that writing documentation is always a bit annoying (also for myself), but we have parts of the pipeline, where the documentation is outdated since 10+ releases because we merged changes without accompanying documentation, so my experience is: If it is not done right away, it is never done.
So I would at least want to make sure that we have some guidance on picking the right reference database (since people are using this pipeline for a wide range of organisms, from plants to prokaryotes) and how to interpret the results.

Thanks for the contribution! Just to say we'll look harder at this for 3.16. 3.15 should be imminent, and is also a bit bloated already, so we're resisting new features before the next release.

While this is possibly not the right place to say it, I just wanted to note that I love this potential addition to the pipeline.  I have to check RNA-seq data for contaminants more often than I would like (currently I use nf-core taxprofiler for this purpose), but having this option within the rnaseq pipeline would be fabulous!

Congrats @egreenberg7 :) Truly awesome work!

New PR will be opened to show more clear version changes due to the merge issues. I'll also copy some of the comments over for the record

No need to copy over the comments, just mention this PR, that'll be enough


Not able to set style for paymentsheet on Android

Describe the bug
You expose the property style on the SetupParams of the paymentsheet. I found out that this only works on iOS but not on Android. I also dit check the Stripe Android sdk and cannot find an API that sets the style. Is this something that needs to be implemented?  Else it would be more clear we would call it iosStyle to prevent consumers from getting wrong expectations.
To Reproduce
Steps to reproduce the behavior:

On android create a paymentsheet and define the style to light in the setup params.
Present the sheet and noticed the paymentsheet is still dark.

Expected behavior
I would expect the sheet to be light like on iOS.
Smartphone (please complete the following information):

Device: Pixel4a
OS: Android11

Additional context
My android theme is of the app is: Theme.AppCompat.Light.NoActionBar
https://stripe.dev/stripe-react-native/api-reference/modules/paymentsheet.html#setupparams

@michelleb-stripe @yuki-stripe remind me, are we planning to allow to override of style on Android? IIRC currently it's based on system settings, right?

@thorsten-stripe Android will get this feature in an upcoming release!

I wonder if it's possible to change button colour or something like the pre-built UI for web element, I can customize the theme directly through my dashboard.

The Android SDK team looking into customization changes and will keep dark mode toggling in mind. In the mean time, it does seem possible that forcing dark mode at an application level is a solution for those that want to match. According to this you can put this line in your launcher activity's onCreate and force darkmode.
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);

I'm hoping that is a good solution/bandaid while we work on more sophisticated customization.

This is blocked on https://github.com/stripe/stripe-android/issues/4229

I think this is better addressed by the appearance param, which allows you to specify both light and dark mode colors, so I'm going to close this issue.
Here are the docs for payment sheet appearance: https://stripe.com/docs/elements/appearance-api?platform=react-native


Logstash "Docker Official" base image

Hi @tianon @yosifkit
As you know the Elastic Logstash "Docker Official" container image is based on ubuntu.
I have two quick questions related to updating this base image:
1- Can you please confirm that moving from ubuntu to an ubi base image would not be a problem for this workflow?
2- Could you point me to the list of supported and non-supported base images for "Docker Official" images please?
Thanks

Moving to UBI should be fine as long as it's one of:

FROM redhat/ubi9
FROM redhat/ubi9-minimal
FROM redhat/ubi8
FROM redhat/ubi8-minimal

(see https://github.com/docker-library/official-images/pull/13908)
Generally, the "list" is any other supported image in the program (with the notable exceptions of the above-listed UBI images and a handful of Windows images: mcr.microsoft.com/windows/{servercore,nanoserver}:{ltsc2022,1809}).

Thanks


Attempt at solving progress bar deadlock

Type of changes

[X] Bug fix
[ ] New feature
[ ] Documentation / docstrings
[ ] Tests
[ ] Other

Checklist

[X] I've run the latest black with default args on new code.
[ ] I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate.
[ ] I've added tests for new code.
[X] I accept that @willmcgugan may be pedantic in the code review.

Description
This is my attempt at solving #90 by controlling access to Progress._tasks and Progress._refresh_count with a separate lock. I haven't been able to reproduce a deadlock after applying this change, but it's hard to tell if there are any errors without more knowledge of which data races the original lock is meant to prevent (I noticed for instance that the Progress.tasks property didn't acquire the original lock, which leads me to believe read races on that data are permissible).

Thanks. I'll get back to you after I've looked in to the deadlock in more detail.


Benchmarks comparing against other FFT impls (FFTW etc)

FFTW is reportedly the fastest open source fast Fourier transform implementation so it would be interesting to see how RustFFT compares against it as well as Intel's MKL FFT and clFFT.

@daniel-emotech FFTS claims to be faster than FFTW: https://github.com/anthonix/ffts

There is also this paper comparing fftw and rustfft on a pi zero and Pi 4. I'm still trying to find the code for this if it's on the public web.


should function combinators return a FnMut?

some combinators return a impl FnMut(I) -> IResult<I,O,E> because a test was failing in tests/reborrow_fold.rs, but I'm not sure allowing mutability there is such a good idea. If people want to mutate data from inside a parser, using a Cell might be a better solution.

If I’m not mistaken, Fn can’t work in all cases. For instance, consider fold_many0. If it returned an Fn, we could run it as many times as we wanted and thereby multiply the init argument, which can’t be right.
But maybe I’m making a mistake somewhere, I’m no expert on Rust’s type system.

for fold_many0, we would need to make init Clone. In general, we have to assume any parser can be called multiple times, so they should at least return Fn or FnMut.
I added FnMut in delimited: https://github.com/Geal/nom/blob/master/src/sequence/mod.rs#L93-L94
to make this test compile: https://github.com/Geal/nom/blob/master/tests/reborrow_fold.rs#L12-L16
But now I'm not sure this is something that should be supported

all nom parsers are now Fn instead of FnOnce and FnMut. We should be able to call them multiple times, and they're not meant to modify their environment

I was upgrading a parser from 4.0 to 5.0 and ran into an issue with fold_many0. I used this function to accumulate parts of an arithmetic expression into an AST. I made a decision a while ago to make my AST nodes non-clonable (since I figured this should never need to happen and I didn't want to be able to circumvent the borrow checker). I was able to fix my issue by having a custom implementation of the fold_many0 function that returned impl FnOnce instead of impl Fn.
Is it worth polluting the multi namespace with fold_many*_once variants of the fold_many functions to avoid the Clone bound where it is not needed? I would be happy to make a PR for this if desired, otherwise I can stick to my custom implementations of the functions.


[JS] Manual port of aria link role fixes

Related Issue
Fixes #3914 in release/1.2 (this is also the PR)
Fixes #2240 in release/1.2 (PR #4059)
Description
Fix Action.OpenUrl links and buttons to have role="link"
How Verified

local build and inspection

Microsoft Reviewers: Open in CodeFlow

/azp run


Pagination Component (12/31)

We have the HTML/CSS version built. Now need to implement in frameworks.

[x] CSS
[x] React
[x] React Examples
Went ahead and published react 0.1.6
[x] Vue 3
[x] Vue Examples
Pagination docs page started (Vue 3 and React only of course)
[x] Angular
[x] Angular Examples
[x] Site Docs
[x] Svelte
[x] #93
[x] Publish frameworks

FInished


If we press logo it is not redirecting to home

Idea Contribution

[X] I have read all the feature request issues.
[X] I'm interested in working on this issue
[X] I'm part of GSSOC organization

Explain feature request
I we press logo or name we should redirect back to the home
Explain your solution
We should place a anchor tag so that it redirects
Any alternative approaches/features
No response
Additional Context
No response

/assign

/assign


Feature: add an extra endpoint for s3 storage backend

When we setup an internal s3 compatible storage backend and want to enable redirect for blobs pulling, registry distribution will use only one endpoint for pulling and pushing, that would make network for pushing. I hope to add a extra endpoint to separate the operation.
The setting can be added in config.yml
storage:
  s3:
     regionendpoint: https://<IP_ADDRESS>
     redirectendpoint: https://minio.harbor.xxx.com

or add in redirect section
storage:
  redirect:
     disable: false
     endpoint: https://minio.harbor.xxx.com
  s3:
     regionendpoint: https://<IP_ADDRESS>

We can bind these two issues? https://github.com/distribution/distribution/issues/3139