dropUnusedLevels! throws ErrorException("type cannot be constructed") because of Uint8 conversion in julia 0.3.8

Hi,
I encountered an error in statsmodels/formulas.jl:dropUnusedLevels! when using pooled data arrays in julia 0.3.8 (output from IJulia here):
type cannot be constructed
while loading In[45], in expression starting on line 4
in map at abstractarray.jl:1328
in dropUnusedLevels! at /usr3/graduate/labadorf/.julia/v0.3/DataFrames/src/statsmodels/formula.jl:230
in ModelFrame at /usr3/graduate/labadorf/.julia/v0.3/DataFrames/src/statsmodels/formula.jl:240
in fit at /usr3/graduate/labadorf/.julia/v0.3/DataFrames/src/statsmodels/statsmodel.jl:52
in glm at /usr3/graduate/labadorf/.julia/v0.3/GLM/src/glmfit.jl:228
in anonymous at no file:9
This issue is caused by the line 230:
dict = Dict(su, map(T, 1:length(uu)))
where T::Uint8 and Uint8(x::Int64) is not supported. If I change this line to
dict = Dict(su, map(x -> convert(T,x), 1:length(uu)))
the issue seems to be resolved. In julia 0.4.0 this error does not occur, as Uint8(x::Int64) is now supported. My proposed fix using convert works on both 0.3.8 and 0.4.0. I haven't forked the repo to test this or generate a pull request, if you agree this fixes the issue should I do that?
Thanks.

Sounds good to me.  I too had encountered the problem but hadn't yet taken the time to investigate.  Thanks for looking into this.

The Julia 0.3 release series is no longer supported by DataFrames. As you said, this works as expected in Julia 0.4, which is currently the minimum required version for the package, which mean this issue no longer applies.


protocol: adding requestHttpJob method

Fixes #1793

:heart:

@deepak1556 does it work for https too?

Its incomplete PR, just added http scheme for now, can be allowed for other schemes too but need to confirm on how the api will be used. What would be parameters passed apart from URL , request headers maybe ?

URL would be enough for my use case, but Yeah. requestHeaders would be cool. Also, if I rewrite the url by interception and doing requestHttpJob, will the http request contain all the cookies and stuff?

will the http request contain all the cookies and stuff?

Nope its a completely new request context, if those data are needed then have to provision them in request object passed to interceptor handler, which is not done currently..

Ouch. How difficult would it be to pass that data in the request object? Can it be done in this PR or a separate PR?

@zcbenz instead of relying on creating a job from Http factory, took a more generic approach. Thoughts ?

Hey @deepak1556, is it possible to modify the new request to send client certificates? That would go a long way in helping with my issue (https://github.com/atom/electron/issues/1221). I'm not sure if I'm following what this change would allow you to do, so I could be wrong!

@kjlaw89 yeah it is possible as there are hooks on the request object to provide certificates. But that would be just a workaround to the proper solution.

@deepak1556 I wouldn't mind a workaround if it got me client certificates! Haha. What would be the proper solution?
Just to note, my need for client certificates is a little different. I don't want the standard browser popup for them. We're going to supply the certificate with our application and I want to be able to use the local certificate directly instead of from the system store to make things simpler for our clients.

@kjlaw89 does the nodejs request module support client certificates? 'cause If it does, the new async job in the other PR will do that for ya.

https.request does, I believe, I don't know if http.request does or not.

The request module is built on top of the native http module, so if the native one supports that, I am pretty sure it does too.

Are we talking about https://github.com/request/request? If so, yes it does support it, so that would work. I guess I'll just have to wait for the PR to go through and see if it works for me! Thanks!

You can use URLFetcher for simpler and safer implementation, current implementation leaks net::URLRequest object.

@zcbenz what type of writer should be used for URLFetcher ? I am thinking of using a file writer to a temporary location and start a file job with it. Or get the response as string and start a buffer job ?

@deepak1556 :-1: for writing the file to a temp location and starting a file job with it, and :+1: for the buffer job. As we can get events like did-get-response-details and stuff on time with it. We won't have to wait for the whole file to load.

You can implement a custom URLFetcherResponseWriter and read data into some buffer like DrainableIOBuffer, and then implement ReadRawData to stream the data. It is important to stream data instead of reading all data at once, otherwise it won't be able to handle requests to large files.
Another option is to implement with URLRequestHttpJob::Factory, but you have to also override at least follow methods in AdapterRequestJob to make it work:
https://code.google.com/p/chromium/codesearch#chromium/src/net/url_request/url_request_http_job.h&sq=package:chromium&type=cs&l=52
https://code.google.com/p/chromium/codesearch#chromium/src/net/url_request/url_request_http_job.h&sq=package:chromium&type=cs&l=103

Its incomplete PR, just added http scheme for now, can be allowed for other schemes too but need to confirm on how the api will be used. What would be parameters passed apart from URL , request headers maybe ?

For me, I would just use this as a URL redirect type of thing, nothing fancy

@paulcbetts that is my basic use case as well.
Guys, it would be great to have this implemented sooner than later as it's a blocker for a project of mine.

Closed in favor of #1995.


The empty record type can be declared but not instantiated

This works:
type t = { };

This doesn't
let t = { };

Right, it's ambiguous with the empty block. We should probably disallow the type as well, then.


Placing pkg-config.exe file to this git if possible

For windows system, is it possible to put a pkg-config.exe file on this git? When building on windows, you can select the exe file to use according to the environment variable PKG_CONFIG, if there is no such environment variable, use the exe placed on git ? No need for users to find this program by themselves, and the exe file is not big

Probably better to build/install as needed, as #103 suggest. Other option would be to reimplement pkg-config in rust and drop the need for an extra executable ;)

Other option would be to reimplement pkg-config in rust and drop the need for an extra executable ;)

I have another idea: compile the pkgconf library (different from pkg-config!) with the cc crate, create Rust bindings for it, and use those in this crate. That would make it simple to use this crate reliably across platforms.


Implement copy/paste support

This adds a useClipboard hook which can be used to implement cut/copy/paste support. This is very similar to drag and drop - in fact, they share the same underlying native API (DataTransfer). For this reason, I've added it to the dnd package and examples. I've made copy/paste support use the same API as our dnd API as well, which should make it easy to adopt.
This uses the beforecopy/beforecut/beforepaste events to enable the browser's actions in the Edit menu, but this is only supported in Safari. In other browsers, those options are always enabled. But in Safari this means that only the relevant actions will be enabled when you are focused on an element, which is kinda cool. In addition, cmd/ctrl + c/x/v work as expected and as handled by the browser. You can also trigger these actions with the document.execCommand function (after ensuring the element you want it to fire on is focused). Paste can only be triggered in Safari though - in other browsers you'll have to use the browser Edit menu or keyboard shortcuts to paste.
Questions:

It's potentially confusing to have copy/paste in the dnd package. Do we want to rename it package to something more generic, e.g. @react-aria/datatransfer, or is that also confusing? Another option is to move useClipboard to its own package, but then we'd have to export the internal readFromDataTransfer and writeToDataTransfer functions from the dnd package.
Should we rename the DragItem and DropItem types to something more general as well? Any name suggestions?

If you don't mind having three, we could have
@react-aria/datatransfer
@react-aria/dnd
@react-aria/clipboard
where dnd and clipboard both use datatransfer

Any ideas on what the screenreader only accessibility experience for copy and paste would be like?

It's a good point. Well, at least on devices with keyboards, you'd be able to use Ctrl + C/Ctrl + V etc., and of course the browser's edit menu would work as well. On touch devices it may be more challenging. I tested on iOS using VoiceOver, and unfortunately the usual way of doing copy and paste via the rotor only seems to work with text selection and editable form controls. The buttons I added to the one story do seem to work, but it's a bit clunky because you have to navigate to the list, select something, then all the way back to those buttons to copy, then over to the other list to select something, then all the way back to the buttons to paste. And this may only work in some browsers - as I noted the document.execCommand('paste') only appears to work in Safari, so idk what we'd do in TalkBack on Android.
cc. @majornista @jnurthen wdyt?


[CT-973] [Feature] Support view materialization for python model

Describe the feature
Snowflake dataframe operations actually compile down to sql when it is executing, this created a unique functionality to express logic in snowflake dataframe operation then create a view out of that logic, see create_or_replace_view, overview of snowpark.
With this function, python model in snowflake can be materialized as view sometimes(if all of the logics are snowpark dataframe transformation, maybe something else?). We should support this in dbt-snowflake
Outcome:
Python model that only have snowpark dataframe transformation logic can be materialized as view, and being used by downstream dbt models

can this feasibly be supported for all adapters? if so, we should also open a general issue. my impression is this will be most straightforward on Snowflake
given my current understanding, going to classify this as a spike with acceptance criteria:

understand technical feasibility of supporting view materialization for Snowflake (and ideally other adapters)
rough outline of future work needed to support


[ENH] Dependency handling

While reading the docs: we probably want to think about dependencies. Some points:

this is a "base" style package, so we probably want to minimize dependencies absolutely, possibly to zero! So, typing-extensions and pytest out from the core dependency set.
not sure about typing-extensions, is that really necessary?
pytest is necessary for the test framwork, but I would also think about making it optional, now that I looked at it
re soft dependencies, I think we may even want to adopt a policy that there won't be any! We also don't want to add any estimators to the package with the python verison tags etc, but we may like to provide users with that feature.

(not for 0.1.0)

I would just stick it into a dev dependency set like we do in sktime - users don't need it, and it's nice for developers.
Although without typing-extensions the code would break, I think? Or can it be isolated?

@fkiraly I actually realized that it would break the code. I think in version 0.4.0 or 0.5.0 we can consider moving away from TypedDict return in get_package_metadata.
Also note that TypedDict was introduced in version 3.8, so the need for typing-extensions is specific to our support for Python=3.7.*. The end of life for that Python version is in about 5 months, so we could also choose to wait this out and the need to have typing-extensions as a dependency goes away.

The end of life for that Python version is in about 5 months

Python 3.7 is moribund? How sad. You were so familiar, good friend...
But it's good news we can get away from typing-extensions then. Perhaps we can just drop it now, then?

I've removed the dependencies now, there are no more dependencies.


Add inverse_normal_cdf Presto Function

Add Presto function inverse_normal_cdf following the Java implementation(source)
Resolves: https://github.com/facebookincubator/velox/issues/5476

@aditi-pandit @amitkdutta @Yuhta
The branch for https://github.com/facebookincubator/velox/pull/5477 is stale and is unable to be cleanly rebased.
This PR contains the same changes and is up-to-date with the main branch.

Fuzzer output from original PR

I20230630 13:18:33.328297 845386 ExpressionVerifier.cpp:56] ===================
I20230630 13:18:33.328333 845386 ExpressionVerifier.cpp:67] All results match.
I20230630 13:18:33.328408 845386 ExpressionFuzzer.cpp:1357] ==============================> Done with iteration 411
I20230630 13:18:33.328904 845386 ExpressionFuzzer.cpp:1092] ==============================> Top 1 by number of rows processed
I20230630 13:18:33.328928 845386 ExpressionFuzzer.cpp:1094] Format: functionName numTimesSelected proportionOfTimesSelected numProcessedRows
I20230630 13:18:33.328948 845386 ExpressionFuzzer.cpp:1098] inverse_normal_cdf 43268 100.00% 4947
I20230630 13:18:33.328974 845386 ExpressionFuzzer.cpp:1104] ==============================> Bottom 1 by number of rows processed
I20230630 13:18:33.328992 845386 ExpressionFuzzer.cpp:1106] Format: functionName numTimesSelected proportionOfTimesSelected numProcessedRows
I20230630 13:18:33.329011 845386 ExpressionFuzzer.cpp:1111] inverse_normal_cdf 43268 100.00% 4947
I20230630 13:18:33.329033 845386 ExpressionFuzzer.cpp:1124] ==============================> All stats sorted by number of times the function was chosen
I20230630 13:18:33.329053 845386 ExpressionFuzzer.cpp:1126] Format: functionName numTimesSelected proportionOfTimesSelected numProcessedRows
I20230630 13:18:33.329073 845386 ExpressionFuzzer.cpp:1130] inverse_normal_cdf 43268 100.00% 4947
[==========] Running 0 tests from 0 test suites.
[==========] 0 tests from 0 test suites ran. (0 ms total)
[  PASSED  ] 0 tests.


BUCC Deployment with AWS Cred Service SSL support

Greetings,
Background
I've been using and liking BUCC for a while, but now have a situation where I want to deploy a new instance, and set it up so that I can test SAML integration between UAA (acting as Service Provider (SP) and several Identity Providers (IDP).
Rationale
I think that in order to do that I need to have a UAA with a real SSL Certificate, and therefore that I'd like to provision my UAA so that it's front-ended by an ELB/ALB that's using certs issued by AWS Certificate Manager.  Rationale: I'm in testing, don't want to incur the cost of certs, and AWS Certificate Manager will issue them for free...
Request
I've been bashing my brains out trying to RTFM, and not getting very far.  So - a couple of questions:

How would I go about modifying Bucc configuration so that it's configured to work with the load balancer.  All of the config files that I see and documentation that I've found assume self-signed certs that are embedded in the YML files.  With AWS Certificate Manager, I'm pretty sure I can't get a copy of that information - it's buried inside the service and then provided behind the scenes to "Selected AWS Services" (like load balancer)
Does this make sense - setting up UAA with a load balancer that's using an AWS-issued cert to handle the SSL connection
Assuming that my UAA server is at: https://mycompany.net, what would the URL look liked to download the SAML metadata that I have to provide to my IDP's.  I'm thinking: https://mycompany.net:8443/metadata/saml.  Does that sound correct?

Sorry for the length of this description.  Post back if you need add'l detail.  Any advice greatly appreciated!!!

@tek-morphos I have actually experimenting with UAA oauth providers for: https://github.com/starkandwayne/bucc/issues/59, also a bit related is https://github.com/starkandwayne/bucc/issues/58 which integrates concourse with UAA (which was not yet the case before). As to needing real certificates, are you sure on this, because most systems allow you to provide a cacert. You can get the ca cert fo uaa by running bosh int state/creds.yml --path /uaa_ssl/ca.

@rkoster - thanks for the quick response!  From what I know (admittedly limited), I thought that the SAML connection required the SP and IDP to have 'real' SSL certs in order to prove their identity to each other.  I thought that certs corresponded to FQDNs for the IDP and SP and had to be verifiable in order for the SAML connection to function.
I put metadata into the IDP for the SP and vice versa.  Can you confirm that's incorrect?

In the SAML 2.0 Errata in E69 it states there are no implied semantics on the type on the KeyInfo field used.   So it should be possible to use a self-signed certificate.
http://docs.oasis-open.org/security/saml/v2.0/errata05/os/saml-v2.0-errata05-os.pdf
E69  Line 1299

Thank you @norman-abramovitz!!!

@norman-abramovitz thanks!!

@tek-morphos did you get it working?
if so can we close this issue?

Yes - let’s close the issue and I’ll just keep an eye on the repo for updates.
Thanks all!
t-m


When I keep accessing the service, I delete iptables from the Pod, and the traffic behavior is abnormal. Is it a bug in envoy or iptables?

Bug Description

I have two services A and B. Both A and B are injected with sidecars. On the service side of A, I constantly use the following command while true; do curl api-B;sleep 1;done;(http protocol)  to visit B at an interval of 1 second.
Then I manually deleted iptables (pilot-agent istio-clean-iptables) in service B, and found that the traffic passing through service B still passes through envoy.
Later, I   stop   while true; do curl api-B;sleep 1;done;  and after a break of 5s or more, execute this command again, and the traffic will not go through the envoy of service B.  why?

Version
istio : 1.8.0

kubernetes: Server Version: v1.16.8

Additional Information
No response
Affected product area

[ ] Docs
[ ] Installation
[X] Networking
[X] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Control Plane Revisions

Is this the right place to submit this?

[X] This is not a security vulnerability
[X] This is not a question about how to use Istio

Cleaning up iptables on running pod is not something that is supported. That being said, its probably because clean-iptables command needs a bunch of arguments (matching the original construction command) to actually work.

@howardjohn    When I stop the curl or sleep for a few seconds and then visit again, cleaning up the iptables rules works, but the traffic is not envoy. If I don't stop the visit, the traffic will always go through envoy.

@tanjunchen Hello，has the problem been solved? I found that closing iptables don't take effect to establish connection.

@tanjunchen Hello，has the problem been solved? I found that closing iptables don't take effect to established connection.

@adairxie  hello, I haven't solved this problem。you can see  https://listman.redhat.com/archives/rhl-list/2006-January/msg03380.html   If you solve it, remember to sync it with me. thanks.


Reading from remote location fails if relative refs are involved

Reading a Swagger definition from a remote location fails if it contains relative refs (at the same location). This seems very much related to what @fehguy addressed in #338. I'm on v1.0.34.
I've got a Swagger file at https://somehost/src/main/resources/services/broker-monitor/v1/broker-monitor-service.yaml.
It contains the following snippet
...
definitions:
  SomeObject:
    type: object
    ...
      message:
        $ref: '../../../technical-definitions/error-handling/v2/error-model.yaml#/definitions/GeneralError'

That referenced definition resides at https://somehost/src/main/resources/technical-definitions/error-handling/v2/error-model.yaml.
If both files are on the local file system then all is well, but reading from the remote location fails with
Caused by: java.lang.ArrayIndexOutOfBoundsException
	at java.lang.System.arraycopy(Native Method)
	at io.swagger.parser.util.RefUtils.buildUrl(RefUtils.java:113)
	at io.swagger.parser.util.RefUtils.readExternalUrlRef(RefUtils.java:68)

The comment at
https://github.com/swagger-api/swagger-parser/blob/e8cb13e0f1be80328565e8052c09792cc261c1e8/modules/swagger-parser/src/main/java/io/swagger/parser/util/RefUtils.java#L62 is correct: it is a relative reference. The problem is that it's treated like a local relative reference.

Hi, the urls are broken, can you please add the files. thanks!

Seems like a duplicate of https://github.com/swagger-api/swagger-parser/issues/750

fixed by https://github.com/swagger-api/swagger-parser/pull/2082


No error when creating a table named "tables"

Which service (blob, file, queue, table) does this issue concern?
Table
Which version of the Azurite was used?
3.14.3
Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
npm
What's the Node.js version?
16.13.1
What problem was encountered?
Azurite does not return an error when attempting to create a table named "tables".
Steps to reproduce the issue

Start Azurite
Using @azure/data-tables, create a client object connecting to the local emulator.
Use the client to create a table named "tables".

Have you found a mitigation/solution?
No. Azure proper returns an error response. The documentation also clearly states that "tables" is a reserved table name.

Service alignment issue.


refactor: Move UpdateAndGet/Select implementations to API

I have tested this in a project but have yet to write any unit tests. We will eventually write unit tests.

LGTM Note: In api.go on line#: 35, 36, the comment references a "scanapi", it looks like this may have been left over from an earlier iteration?

@bswaney-ccc Fixed. Ready for review again.


homomorphisms and isomorphisms

null
Closes #114

Out of the last four definitions, we don't want all of them.
Please tell me which one or two we should keep.

I perhaps shouldn't call them "isomorphisms" when the equalities are preserved only in one direction...

propose PR #114

awaiting-review

I guess we should follow whatever Mathlib does for the analogous [Mul] and [Add] homomorphisms with regards to making equivalences.
By the way, if you could also update the top-level equational_theories.lean to include your new file, and also add a description of your file to the core lean files listed in CONTRIBUTING.md, that would be great.

You could add a poll to the zulip poll thread to see if there are any strong feelings on this issue

I will add more API tomorrow.

Actually with the likely refactor in which Magma may become closer to Mul this PR may become obsolete.  Stay tuned...

There wasn't enough consensus to move from Magma to Mul, so I think we will go ahead with your PR after all.  It looks like you selected a MagmaHom.toMagmaEquiv, so all we need to do now is fix the conflict with CONTRIBUTING.md and we are good to merge!

All right, the PR is ready for review now.
Since I don't want to block the issues that depend on this one for longer than need to be, I'll add the remaining API in a separate PR.


A problem with new version of MPQ Editor

Hello!
Well, I've found another problem, with another Chinese Map that has another silly protection, that just pretty much corrupts the header and hides it at the end of the file, the real problem is, that the version 799 is able to open it, but only sees the files after you apply the listfile.
Map Link: https://vk.com/doc-79267218_437543487
However, it opens in a Read-Only mode, but this time it's not able to even extract files, it just gives a problem "Failed to extract the file "XXXX". The Request is not supported.

The newer version, that you have updated, is straight up crashing on this map (64 bit version though), the 32 bit version is opening in the same way as the 799 version, which is strange.
Now it's time to go into detail.

As you can see the offset 200/210/220 don't have any indication about MPQ Header, possibly they are just a "ripped" part and the real header was moved somewhere else

Here is the MPQ header at the bottom, but its data is corrupted, the FF FF FF FF isn't a normal hex code for any MPQ, so I guess it's masked?
And another map with a protection that crashes MPQ Editor.
AnotherProtectedMap.zip
Most probably it uses other flags, I will try opening it with 32 bit version, maybe that was the case.
EDIT: Yes, 32 bit was able to open and even extract the files, so the main problem lays somehow in 64 bit version, as the protection is being read in a different manner, I guess?
On a side note, are you able to make the possibility of removing and replacing internal files:
(attributes)
(listfile)
Meaning, if for example the map doesn't have a (listfile), that was removed with Vexorian or WinMPQ, we could add it back, or just add one to other files like .mix This would help me a lot, I hope you can do it.
Thank you for your time, I hope this was helpful ;)

Map Link: https://vk.com/doc-79267218_437543487

This map is (amongst others) abusing the fact that block index gets shifted by 0x04 (aka multiplied by 16), which, in 32-bit Warcraft III, means they get ignored. 64-bit MPQEditor went out of bounds and thus crashed. All block indexes in the hash table are like 0x8000xxxx

AnotherProtectedMap.zip

The same like before. Except that all block indexes in the hash table are like 0x4000xxxx.
Both fixed in commit 47b6b6eb4addd82a89d6bcd8fa92f9c0a09a5781.

As for the (listfile) thing:
It is hard-set that the listfile is maintained by StormLib. As for adding listfile back, it is not possible to add a listfile to those corrupted maps. It's next to impossible to make such MPQs editable, without knowing all file names.
If we would speak about a non-corrupted MPQs, it should be possible to add the listfile to the MPQ (MPQEditor: Operations\Use Additional Listfile) and then compact the MPQ.


Textmate grammar: prevent unwanted interpolation scopes

Fixes the issues noted by @matklad after merging #6248.

prevent accidental interpolation scopes when { is used in a string
prevent interpolations from extending beyond the end of a string

bors r+

Works perfectly here, thanks!

Hm, I think I am still seeing this in a more complex case here:

https://github.com/steveklabnik/semver-parser/blob/0602220b388198c6e99b328751af7c660de74636/tests/genpest.rs

I will have a look this eve. Raw strings shouldn't be allowing any other scopes, but I may need to split them out into their own section of the TM repository.
Nested raw strings are difficult to define in regex, because the number of # need to match, rather than [#]+ simply being present. If necessary, this can be brute-forced with a special case for each number of # up to some reasonable limit, but it's a little inelegant. Either way the scopes shouldn't be continuing past the end of the string.
You just want me to get that Hacktoberfest T-shirt 😄

It does appear that the nested raw strings are the issue. The simplest fix for this would simply be to allow raw strings to include other raw strings. This is a slight compromise, but it avoids a lot of regex spaghetti that would serve only to address this one use case.
The compromise is that themes that have a separate color for raw string punctuation would show that punctuation even for the nested raw string. Probably better shown with an example:
Default Dark+ (no issue, punctuation matches the raw string anyway:

Yarra Valley (technically, only the outer raw string delimiters should be visible, but the inner set shows also):

This really doesn't bother me very much. I can split the raw strings into a separate group from string literals so that at least the raw strings will only show punctuation for this exact scenario, where another raw string is nested.
Are you happy with that, @matklad? If so, just ping me and I'll put together the PR.

I don't have strong opinion here, as long as things outside of string literals are not classified as string literals :-)


Add packages into requirements.txt needed by G2Tools

See https://github.com/Senzing/g2-python/issues/125

Pull requests

https://github.com/Senzing/docker-xterm/pull/61


added new currency bkx-bankex, tests attached

@PavelVoronov brilliant :) Thank you for taking time to add tests and make all of the additional changes like adding Bankex to Readme file etc. Appreciate that :)

@PavelVoronov released to npm as 0.2.1. Sorry for taking so long.


Closes #69. Allow .yml file extension for content files.

I enhanced the regular expression a little.

Nice and easy, thanks!


Switch to cmake for build

Major changes

Instead of torch.utils.cpp_extension.CppExtension use cmake to build extension (default to Ninja build)

Accompanying changes for CI

Change the Linux GPU test base Docker image to the one with cuDNN. (otherwise cmake fails.)

Possible fix for macOS packaging
https://cmake.org/pipermail/cmake/2018-January/066963.html
https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-relocatable-packages

Possible fix for macOS packaging
https://cmake.org/pipermail/cmake/2018-January/066963.html
https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-relocatable-packages

or https://github.com/HawkAaron/warp-transducer/blob/master/CMakeLists.txt#L77-L91

or https://github.com/HawkAaron/warp-transducer/blob/master/CMakeLists.txt#L77-L91

Superseded by https://github.com/pytorch/audio/pull/1189


Create agastya-challenge-4.md

Added File

Linked to PR: https://github.com/skill-a-thon/.github/pull/26
Linked to PR: https://github.com/skill-a-thon/.github/pull/19


Title Menu Entries Stay Hovered

Windows, first seen last year. Happens at least once per day.

This happens randomly, but can be reproduced easily:

Thank a lot!! 🎉


JOB: Product and community lead

This is a draft post + job description for our new role, the Product and Community Lead. We'll plan to post this sometime next week, but I'm opening up a draft for now in case others would like to take a look and provide feedback.
Preview

Our jobs page is here
This job posting is here
The blog post is here

To do

[x] Finish blog post
[x] Include the job posting and update the /jobs page
[x] Finish the CS&S application portal
[ ] Agree on a date to post
[ ] Post the job!

closes https://github.com/2i2c-org/meta/issues/261

I did a quick iteration and I really like the way it is written, @choldgraf.
It actually looks like a tempting position!! Great job!

Update: most content is ready
I've got most of the content ready for a review. I think there's still more to update, but I would love feedback from folks if they have any thoughts in the meantime.
Our goal should be to post this by the end of the week, unless something major happens in the news that means we should bump it to next week.

Just a quick note, although the jobs page summary states it is a fully remote position, the job posting itself doesn't, and it might be useful.

Good point @celsobessa - I have clarified this in the new info box at the top of the job posting, and also provided a link to the main "jobs" page to make that content more discoverable.

The job posting has a _know _ that should be know.
The blog post has a sentence: "However, the reality is that this role will ultimately get to shape the nature of this work within 2i2c themselves. " that I think should read: "However, the reality is that the person in this role will ultimately get to shape the nature of their work within 2i2c."
Apart from those two small edits, this looks excellent!

OK, I believe I've addressed all of the comments people have given, and made some minor clean-ups to the language. I think that we are ready to go here.
If I do not hear any objections, then I plan to post this job on Tuesday around 8:00AM US/Pacific. 🚀
Either way, I still welcome feedback, comments, and suggestions!


Feature: PluginFS API

Community devs often need to access the file system to complete certain operations, such as opening a folder for users to add or delete files, outputting logs to a file, and so on.
So a PluginFS API is needed, and it should be plugin scoped meaning that a plugin only have permission on it's own folder.
In this case top-level js will not have any permission because it don't have its own folder.
Actually I've done some job on that using std::filesystem from C++17, so I think if is ok we can move to C++17 to gain more convenience and improved cross-platform compatibility.

[x] PluginFS.read
[x] PluginFS.write
[x] PluginFS.mkdir
[x] PluginFS.stat
[x] PluginFS.ls
[x] PluginFS.rm

We have added a sync-blocking PluginFS implementation in #75
API Docs: https://beta.pengu.lol/runtime-api/plugin-fs

There's a way to isolate the PluginFS for scoped plugin folder.
First remove the global PluginFS and turn it into a class.
class PluginFS {
  constructor(name) { }
  read(path) { /*do path check*/ }
  // ...
}

Pass an instance for each plugin init call.
function loadPlugin(name) {
  // ...
  ctx.fs = new PluginFS(name)
  // ...
}

export function init(ctx) {
  ctx.read('some/path/to/file')
}

[!IMPORTANT]
With top-level JS files (aka single file plugins), they should not access fs and skip this prop.


Trying to understand the pycobertura diff report

Hi, @aconrad
I’ve recently started to use pycobertura for my on-going project at work. This is definitely a great tool and I’m already a big fan of this tool.  I just have a few questions regarding the pycobertura diff command and its output diff report.
I’m not sure if I fully understand all the columns in the diff report (html format).
Take the dummy files mentioned in README for example. The following is the screenshot:

I didn’t find more details on the definition for each column that I highlighted above, so I was trying to interpret each column in my own understanding. Please correct me if I’m wrong.
Column Stmts:
My understanding is this column indicates how many lines were added or deleted in the new coverage file. For instance, if 2 new lines were added, use “+2” to indicate it. Similarly, if 2 lines were deleted, use “-2”. If no lines added or deleted, use “-“. Let me know if my understanding is correct.
Column Miss:
This column is somewhat confusing. My understanding is that it is a delta part that shows the number of lines from covered to uncovered (or from uncovered to covered) in the new coverage file.
For the file dummy/dummy, it is straightforward to understand “-2”, which means two lines (Line 5 & 6) changed from uncovered to covered.
However, I’m NOT able to make sense of the number “+1” for the file dummy/dummy2. There are two lines (Line 2 & 4) that changed from uncovered to covered, which is -2. There is one line (Line 5) that changed from covered to uncovered, which is +1. In my opinion, it should be “-1” here (-2 + 1 = -1), instead of “+1”. Did I miss anything here?
For the file dummy/dummy3, I’m able to understand the “+2”, as two new lines (Line 1 & 2) were added and not covered. So it is marked as “+2”.
Column Cover:
I also find this column is kinda confusing. I assume this also reflects a delta part that is presented in a percentage form. For the file dummy/dummy, I’m able to understand how +40% is calculated: 2 (lines coverage increase)/ 5 (total lines) = 0.4.
For the file dummy/dummy2, I cannot get how “-25%” was calculated. Can you explain?
For the file dummy/dummy3, it is marked as “-”, and I cannot get it either. What does “-” mean here? Does it mean 0%? And why is it 0%?
Column Missing:
I assume this column also only shows the delta part. In other words, only the lines that have coverage increase/decrease will be listed here. If the same line gets covered (or uncovered) in both old and new coverage file, it won’t appear in the column, correct?
Thanks for your time in advance.
Looking forward to hearing from you soon!
Best,
Chixiang

Can anyone take a look at this issue?

@chixiangzhou, thanks for your question.

Column Stmts: My understanding is this column indicates how many lines were added or deleted in the new coverage file. For instance, if 2 new lines were added, use “+2” to indicate it. Similarly, if 2 lines were deleted, use “-2”. If no lines added or deleted, use “-“. Let me know if my understanding is correct.

Yes.

Column Miss: This column is somewhat confusing. My understanding is that it is a delta part that shows the number of lines from covered to uncovered (or from uncovered to covered) in the new coverage file.

"Miss" is the number of missed (uncovered) lines introduced. We don't actually take covered lines into account, however much were covered. So as long as Miss is negative, there's still testing work that can be done on the PR. Does that make sense?

Column Cover: I also find this column is kinda confusing. I assume this also reflects a delta part that is presented in a percentage form. For the file dummy/dummy, I’m able to understand how +40% is calculated: 2 (lines coverage increase)/ 5 (total lines) = 0.4.

"Cover" takes the overall coverage before and after the change and shows the difference. It doesn't really take into account which lines were newly covered or not.

For the file dummy/dummy2, I cannot get how “-25%” was calculated. Can you explain?

So for dummy/dummy2, we have a total of 4 statements (over 5 lines).
In the previous version, the file dummy/dummy2 had 100% coverage and looked like this:
def baz():  # line 1, covered
    pass    # line2, covered

Then we introduced changes and now have a file with 4 statements, as per the screenshot. 3 statements are covered (on lines 1, 2, 4) and then 1 statement uncovered (line 5). So that's 75% coverage. And 75% - 100% is -25%. I hope that makes sense now.

For the file dummy/dummy3, it is marked as “-”, and I cannot get it either. What does “-” mean here? Does it mean 0%? And why is it 0%?

For dummy/dummy3, it's a new file. Since that file didn't exist before, we can't do a delta, and thus we show "-". Whether that's the right thing to display is debatable. Would we rather see "-100%" with the assumption that the inexistence of the file equals 0%? That's totally up for discussion. 😄

Column Missing: I assume this column also only shows the delta part. In other words, only the lines that have coverage increase/decrease will be listed here. If the same line gets covered (or uncovered) in both old and new coverage file, it won’t appear in the column, correct?

Yes. If pycobertura didn't have access to the source (which is possible since they can be optional), it would be a way to see which statements have been covered/uncovered and let the user refer back to their source code to understand the report is referring to.
We should definitely dedicate a section in the README to explain what each of those are. Would you be interested in contributing in such way?

Also...

I’ve recently started to use pycobertura for my on-going project at work. This is definitely a great tool and I’m already a big fan of this tool.

Thanks for your kind words, I'm glad pycobertura is useful to other people out there! 🥰

Hi @aconrad,
Thank you so much for your detailed reply. I really appreciated it!
I absolutely have a much better understanding now. :)
Still have a couple doubts that need your clarification.

"Miss" is the number of missed (uncovered) lines introduced. We don't actually take covered lines into account, however much were covered.

Still a bit confused about the definition of Column "Miss".
If "Miss" only cares about the uncovered lines introduced, then take the dummy/dummy file for example.

Miss should show "0" in this column, since there were NO uncovered lines introduced and no red lines are highlighted. However, it shows "-2" (in green) here, which refers to the 2 green lines 5 & 6. I assume green means coverage increased? If so, looks like it is contradictory to the definition that Miss is the number of uncovered lines introduced?

So as long as Miss is negative, there's still testing work that can be done on the PR. Does that make sense?

I might miss something here. Correct me if I'm wrong.
Did you mean to say "So as long as Miss is positive" here, instead of "negative"?
As in the example dummy/dummy, two lines (Lines 5 & 6) changed from uncovered to covered, and "Miss" is marked as -2. So I assume "negative" means coverage increased? If so, the developer did a good job on testing work to improve the coverage.

In the previous version, the file dummy/dummy2 had 100% coverage and looked like this:
def baz():  # line 1, covered
pass    # line2, covered

The above definitely is a very useful piece of information to help the readers understand how it resulted in "-25%" in Column "Cover". Without this info as a context, it's really hard to know we should use 100% as the previous coverage in the formula.

For dummy/dummy3, it's a new file. Since that file didn't exist before, we can't do a delta, and thus we show "-". Whether that's the right thing to display is debatable. Would we rather see "-100%" with the assumption that the inexistence of the file equals 0%? That's totally up for discussion. 😄

Adding a new file is a fairly common use case in software development. IMO, we should do a delta here, with the assumption that the inexistence of the file equals 100%. When the developer adds that new file later and didn't cover any lines (exactly the case in the example dummy/dummy3), the coverage is 0% now. So the column "Cover" indicates 0% - 100% = -100%. In other words, those uncovered new lines caused the legacy N (tech debt) uncovered lines to go up. Does this make sense to you?

We should definitely dedicate a section in the README to explain what each of those are. Would you be interested in contributing in such way?

Sure. I'd be happy to contribute to this diff command section in the README. I strongly recommend to show the coverage info (before and after the changes introduced) in the diff dummy files examples, which will definitely clear a lot of confusions.

Still a bit confused about the definition of Column "Miss". If "Miss" only cares about the uncovered lines introduced, then take the dummy/dummy file for example.
Miss should show "0" in this column, since there were NO uncovered lines introduced and no red lines are highlighted. However, it shows "-2" (in green) here, which refers to the 2 green lines 5 & 6. I assume green means coverage increased? If so, looks like it is contradictory to the definition that Miss is the number of uncovered lines introduced?

In dummy/dummy, we have 1 new statement introduced (line 6 with the + sign) which was covered (1 less miss), and then line 5 was previously uncovered but is now covered (1 less miss, totaling to -2 misses).
Imagine a different scenario for dummy/dummy: if we didn't have a test to call bar() then we'd have "+1" in the Miss column because the new statement on line 6 would have not been covered so we would introduce 1 new miss. Line 5 would have remained uncovered and thus we wouldn't account for any change in coverage status.

So as long as Miss is negative, there's still testing work that can be done on the PR. Does that make sense?

I might miss something here. Correct me if I'm wrong. Did you mean to say "So as long as Miss is positive" here, instead of "negative"?

Oh whoops, yes you are right. 😅

As in the example dummy/dummy, two lines (Lines 5 & 6) changed from uncovered to covered, and "Miss" is marked as -2. So I assume "negative" means coverage increased? If so, the developer did a good job on testing work to improve the coverage.

That's right. If it's green, it's good, and Miss "-2" would be green, which means that the developer wrote tests to help decrease the number of missed (uncovered) lines.

The above definitely is a very useful piece of information to help the readers understand how it resulted in "-25%" in Column "Cover". Without this info as a context, it's really hard to know we should use 100% as the previous coverage in the formula.

I wrote a paragraph in the README where we shouldn't rely on coverage rate, which is why we don't color it green or red. You can read about it here. When I wrote pycobertura, I was on the fence about whether I should even keep the coverage rate column or drop it because it can be misleading.

Adding a new file is a fairly common use case in software development. IMO, we should do a delta here, with the assumption that the inexistence of the file equals 100%. When the developer adds that new file later and didn't cover any lines (exactly the case in the example dummy/dummy3), the coverage is 0% now. So the column "Cover" indicates 0% - 100% = -100%. In other words, those uncovered new lines caused the legacy N (tech debt) uncovered lines to go up. Does this make sense to you?

Yes. So if we didn't show - then I think -100% makes the most sense to me. Wanna submit a PR for that? 😄

Sure. I'd be happy to contribute to this diff command section in the README.

Thanks!

I strongly recommend to show the coverage info (before and after the changes introduced) in the diff dummy files examples, which will definitely clear a lot of confusions.

Yes, that's another improvement we could do as well. Can you file a ticket for that?

In dummy/dummy, we have 1 new statement introduced (line 6 with the + sign) which was covered (1 less miss), and then line 5 was previously uncovered but is now covered (1 less miss, totaling to -2 misses).

Thanks for your explanation, @aconrad ! Now it makes sense to me. 😄
Okay, on top of this understanding, I found the number for Column Miss in dummy/dummy2 doesn't seem right to me.
Please refer to the screenshot below:

We have 2 new statements introduced (Lines 2 & 4 with + sign), which are covered now (2 less misses).  And line 5 was previously covered but now is NOT covered (1 more miss), which is totaling to -2 + 1 = -1 miss.
Did I miss anything here?

Yes. So if we didn't show - then I think -100% makes the most sense to me. Wanna submit a PR for that? 😄

I'd be happy to submit a PR. However, I'm a python newbie and it might take me some time to learn and ramp up. Also, given my current workload, I might not be able to promise any timeline about when I can finish this. I'll try my best, but just wanted to let you know there is no commitment for now. Hope you understand. 😅

Yes, that's another improvement we could do as well. Can you file a ticket for that?

Sorry, this is my first time to use github to ask questions. Can you please let me know where to file a ticket? 😅

Okay, on top of this understanding, I found the number for Column Miss in dummy/dummy2 doesn't seem right to me. Please refer to the screenshot below:

We have 2 new statements introduced (Lines 2 & 4 with + sign), which are covered now (2 less misses). And line 5 was previously covered but now is NOT covered (1 more miss), which is totaling to -2 + 1 = -1 miss.

I understand the confusion here, and that might be more of a UI issue than a data issue (see explanation below). Technically speaking, we don't manipulate the "Miss" number, besides subtracting the total number of missed statements between the new and old coverage reports.
To better explain, I think it's best if we look at how the code was executed for dummy/dummy2:
# old code
def baz():  # line 1 (hit)
    pass    # line 2 (hit)

# old test
def test_baz():
    from dummy.dummy2 import baz
    baz()

Coverage result – Miss: 0 (we hit all statements)
# new code
def baz():   # line 1 (hit)
    c = 'c'  # line 2 (hit)
             # line 3
def bat():   # line 4 (hit)
    pass     # line 5 (miss)

# new test (unchanged)
def test_baz():
    from dummy.dummy2 import baz
    baz()

Coverage result – Miss: 1 (we hit 3/4 statements)
Diff miss: +1
The confusion you are running into is because when we render the source code and overlay the coverage information, we might "double-highlight" lines that were changed. In the example above, line 2 was already covered, only the code changed. Technically speaking, since line 2 was already covered, we could consider "this line was already covered, let's not report/highlight it". But pycobertura diff reports changes in coverage AND code changes at the same time! That's intended for a better user experience.
I think if the diff report showed a before/after for each column, things would make more sense when you look at it like you do.

I'd be happy to submit a PR. However, I'm a python newbie and it might take me some time to learn and ramp up. Also, given my current workload, I might not be able to promise any timeline about when I can finish this. I'll try my best, but just wanted to let you know there is no commitment for now. Hope you understand. 😅

No worries then, at the very least a ticket would be nice, so someone can attempt to work on it when they have time. 😉

Sorry, this is my first time to use github to ask questions. Can you please let me know where to file a ticket? 😅

I meant to create an issue (issue == ticket), just like you did here. The reason to create a new ticket instead of reusing this one is that this one was more a discussion than a bug/feature request. I hope this helps.

Maybe "Missing" should only display the individual missing lines (no green lines, just red ones). My intention was to show a change of coverage/code status across lines but it might be more confusing than useful.

I meant to create an issue (issue == ticket), just like you did here. The reason to create a new ticket instead of reusing this one is that this one was more a discussion than a bug/feature request. I hope this helps.

Done. Created two tickets #144 and #145

Maybe "Missing" should only display the individual missing lines (no green lines, just red ones). My intention was to show a change of coverage/code status across lines but it might be more confusing than useful.

Agreed. Developers usually care more about the red ones (lines that become uncovered), and work on the tests to address them.


e2e: fix potential race between controller and assertion check

In the current behavior, we're changing the LogLevel field under the CR and then checking the change results under the container.
There might be times when the reconciliation loop hasn't occurred yet (thus the pod didn't get updated) and we're already checking for the pod changes under the test.
With the new behavior using Eventually we'll have until timeout to check if the test condition were met.
Signed-off-by: Talor Itzhak<EMAIL_ADDRESS>

/retest
infra issue

I flipped the positions of the interval and timeout arguments under the Eventually function. it should be ok now


Fix contributing link and versions

Fix contributing link on website
Update contributing guide to correct version of node and pnpm

I was unsure about the importance of pnpm listed here: https://github.com/tajo/ladle/blob/main/packages/ladle/package.json#L15 so I didn't update it, but I can update that as well if it makes sense.

I was unsure about the importance of pnpm listed here: https://github.com/tajo/ladle/blob/main/packages/ladle/package.json#L15 so I didn't update it, but I can update that as well if it makes sense.

Yea, it should be updated everywhere

Alrighty I think this should be good to go!


Provide a mechanism to configure the weight of server, and a weighted-loadbalancing strategy

Is your feature request related to a problem? Please describe.
I want to configure my application's weight and the client load balancer could use
weighted-strategy to choose the ServiceInstance.
There is a common use case, we have three group ECS servers, having 1C4G, 2C4G and 4C4G
(assuming they have the same number of machines). With the diferent number of CPU cores,
the number of requests they can handle is different, so we would like to allocate 1/7 traffic to
the 1C4G group, 2/7 traffic to the 2C4G group and 4/7 traffic to the 4C4G group.
Describe the solution you'd like
I can accept both configuration methods

using spring.application.weight

spring:
  application:
    name: application
    weight: 100

using spring.cloud.{registry}.discovery.metadata.weight

spring:
  cloud:
    consul:
      discovery:
        metadata:
          weight: 100

If not configured, using 100 by default.
And then, in the loadbalancer we provide a new loadbalancer named as WeightedRoundRobinLoadBalancer
or just WeightedLoadBalancer using EDF scheduling algorithm.

There are a series of weighted selection algorithms

EDF(Earliest Deadline First) algorithm with PriorityQueue
It's using a PriorityQueue to maintain the next access sequence, the front of the queue is the next element. It's using O(nlogn) to build heap, every time a request is received using O(1) to peek the next element and using O(logn) to maintain the next access sequence (fixDown).
But it has a limitation, the elements must be stable. If elements was changed, we must add to or delete from the queue. In spring-cloud-loadbalancer, the actual ServiceInstance list from the supplier is related to the request, it's unstable and hard to known which one was added or deleted. So the another solution is drop the older queue and rebuild a new queue with given elements.

EDF(Earliest Deadline First) algorithm without PriorityQueue
It's not using any data struct to maintain the next access sequence, but visiting the ServiceInstance list and calculate the Earliest Deadline element. Every time a request is received using O(n) to peek the next element and O(1) to recalculate the deadline of the element.
It seems better in unstable condition, but should modify the ServiceInstance interface to record the deadline.

Random Binary Search algorithm
It doesn't need to record any state. Every time a request is received using O(n) to preprocess the prefix sum of the weights, and O(1) to generate a random number in range [0, total weight), then using O(logn) binary search to find the upper bound, the element at the upper bound index was selected element.
It' not using any other data structure and not recording any state, but the time cost is the largest.


Topic: Add Troubleshooting Section to README

Describe the types of topics you'd add in our Website
I suggest adding a troubleshooting section to the README file to assist users who may encounter common issues during setup or usage of the PlayCafe website.
This section could include:

Common Issues and Solutions
Debugging Tips
Resources

This addition will enhance user experience by providing immediate assistance and potentially reducing the number of issues reported.
I would love to work on this issue. Could you please assign it to me so I can start working on it?
Could you share some screenshots or a video of your previous work?
not relevant since my work is to improve the documentation
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC-24-extd contributor
[X] Soon, I'll complete it and create a Pull Request.

go for it @vaishnavipal1869

hello @RamakrushnaBiswal , have you assigned mw with the points yet? are they going to reflect on the leaderboard

Yh it's @vaishnavipal1869 i give level 1 means 10 point you will get

Yh it's @vaishnavipal1869 i give level 1 means 10 point you will get

thank you so much sir


Transform label to ordinal_regression label

System information.
TensorFlow version (you are using): 2.9
Are you willing to contribute it (Yes/No) : Yes
Describe the feature and the current behavior/state:
Currently, I couldn't find any good implementation for converting label to ordinal-regression/classification label. Either people use for loop to do it or they convert labels element-wise rather than batch-wise.
Describe the feature clearly here. Be sure to convey here why the requested feature is needed. Any brief description about the use-case would help.:
This feature is needed for Ordinal Regression / Classification task. In tf.keras.utils there is to_categorical to convert labels to one_hot labels for classification. But for ordinal regression / classification we need to transform the labels differently. But currently tf.keras doesn't have the support of this feature.
Here's an example of the feature with contrast to one_hot encoding,
One Hot
Input:
label = np.array([0, 1, 2, 3, 1])
one_hot = tf.keras.utils.to_categorical(label, num_classes=4)

Output:
[[1, 0, 0, 0],
 [0, 1, 0, 0],
 [0, 0, 1, 0],
 [0, 0, 0, 1],
 [0, 1, 0, 0]]

Ordinal Regression / Classification
Input:
label = np.array([0, 1, 2, 3, 1])
ordinal = to_ordinal(label, num_classes=4)

Output:
[[0, 0, 0],
 [1, 0, 0],
 [1, 1, 0],
 [1, 1, 1],
 [1, 0, 0]]

Will this change the current api? How?
This feature currently doesn't have any implementation.
Who will benefit from this feature?
All the members of the community. Ordinal regression/classification is quite interesting and getting popular day by day. But it is hardly mentioned in the literature how to transform the label for ordinal regression. I think this feature will be a nice addition to keras for everyone.
Contributing

Do you want to contribute a PR? (yes/no): Yes
If yes, please read this page for instructions
Briefly describe your candidate solution(if contributing):

Solution
Following is the Numpy implementation but the same code can be used for TensorFlow as well,
def to_ordinal(y, num_classes=None):
    if not num_classes:
        num_classes = np.max(y) + 1
    range_values = np.arange(num_classes-1)[None,:]
    range_values = np.tile(range_values, [y.shape[0], 1])
    ordinal_label = np.where(range_values < y[:, None], 1, 0)
    return ordinal_label

@tilakrayal any update on this?

Hi @awsaf49 ,
Sorry for the delay. Yes, this seems like a good addition.
Would you be able to send a Pull Request for this?
Thanks!

@hertschuh Yes, I would love to. Let me check all the requirements and I will open the PR soon.

@hertschuh I've created the PR #17419 for this issue. Please have a look

I am closing this issue as PR has been merged


Quality of life: Creating new task in a todo list should immediately jump to edit task's name

RIght now creating a new task requires:

click of a button (could also be a keyboard shortcut)
click on the title, preferably also select the "new_task" sample text
type the name of a task

Could be:

click a button
start typing the name of a task
enter to save, perhaps shift+enter to add a new one

agreed, this should improve usability indeed. unless you want to create 5 empty tasks first and then name them but that should be a more of a rarer case


add global Kerberos flag propagation

closes #228

Codecov Report

Merging #230 (2adf695) into master (a1a1dae) will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##           master    #230      +/-   ##
=========================================
- Coverage    1.27%   1.26%   -0.02%
=========================================
  Files          10      10
  Lines         549     554       +5
=========================================
  Hits            7       7
- Misses        542     547       +5

Impacted Files
Coverage Δ

reana_workflow_engine_cwl/config.py
0.00% <0.00%> (ø)

reana_workflow_engine_cwl/cwl_reana.py
0.00% <0.00%> (ø)


Errors caused by times not convertible to datetime

🐛 Bug Report

Time coordinates can sometimes have units which will cause an error when you try and convert thier points to datetimes. For example, when the units are in "years since date" format. This causes an error when plotting against this time axis or when printing a cube with a scalar coordinate of this form. In such cases, it might be appropriate to represent the raw points (and raising a warning) rather than failing outright.
This could potentially by solved by adding try/except in places like here:
https://github.com/SciTools/iris/blob/b2b4e3ba89a745f851c4d724c137b3f4e4641f92/lib/iris/coords.py#L2166-L2169

Think https://github.com/SciTools/cf-units/pull/279 may be relevant here.


Implement named provider and evaluation context merge

About

Implement binding a provider to a given name.
Implement binding named provider to corresponding named client. Client will pick up new provider after setting a new one.
Implement evaluation context merge.
Add more tests.

Notes
The type of FeatureProvider looks a bit scary. Arc<RwLock<T>> is used because the inner T needs to be both read and written, while the ownership is shared. Rust does not allow mutation for shared ownership stuff (Arc<T>).
If you can come up with a better idea or have any ideas, feel free to leave a comment. :-)
Follow-up Tasks
After detailed evaluation is done, the only remaining missing features would be hooks and events.
I think that will be a good time to publish a 0.1 version.
My estimation is that it will take 1-2 more PRs to achieve that milestone.

Implement detailed flag evaluation.
Provide comprehensive tests for exiting features.
Enhance README.

How to test
By UT.

Could anyone please help merge this PR? :-)

@sheepduke sorry for the delay! I'm back from my trip and should be able to help review future PRs more quickly.
It looks good to me from a concept and naming perspective.

No worry. I knew you were away last week. Hope you enjoyed your trip. :-)
Thanks for helping reviewing it and welcome back!


Adding IPMI_SERVER_HOST as configurable property

I've took the liberty to restructure the Integration slightly to allow for UI configuration of ipmi-server host.
This is necessary when HA is running within a docker container and the ipmi-server is set up as a separate docker container as well. In my setup they live on the same docker network, therefore I'm using hostname instead of localhost (i.e. http://ipmi_server with port 80), and I can achieve this by modifying the const.py but editing it in the UI feels apt.
The only concern is, since I'm not well versed with HA Integrations, is how to handle existing configs, maybe using https://developers.home-assistant.io/docs/core/platform/significant_change? I upped the version to 1.3.0 but if it'll be a breaking one it might be necessary to up to 2.0.0
Lastly, I took the liberty to cleanup some formatting to make it consistent, albeit it might not be "correct" as I don't have a linter, lmk if you'd like me to adjust it.

@MNeverOff Thank you for your contribution!

This change does not appear to be backwards compatible. Any recommendations to get this working again without starting from scratch?
I reverted to a backup but I am happy to test out a new version if you'd like.

@czuares I have fixed the issue and created a new release 1.3.1. Sorry for the invonvenience.

@ateodorescu I just upgraded without issue, thank you!

Yeah, apologies, I suspected something like this might happen but was lacking the knowledge to handle it, thank you @ateodorescu for fixing that and sorry for adding that extra bit of headace!


Bump Statamic version in composer.json to support v4

Thank you so much :) 🙏🏼

Hi @michaelr0,
I've just create #5 to fix this issue.
Can you please merge it and create the release?
Thank you 🙏🏼

Thanks @jimblue
This has been tagged as 2.0.0

Great, thank you for the release! 🎉


docs/developer: corrected java version 8>11 as mentioned here: https:…

…//docs.opencast.org/r/10.x/admin/#upgrade/#upgrade-java
Your pull request should…

[ ] have a concise title
[ ] close an accompanying issue if one exists
[ ] be against the correct branch
[ ] include migration scripts and documentation, if appropriate
[ ] pass automated tests
[ ] have a clean commit history
[ ] have proper commit messages (title and body) for all commits

Note that I changed the commit to have a "title" and a "body" after approval was given (and failed due to a missing ICLA Agreement)


[BUG] [Instability] ACI-CNI variables not configurable using Rancher server UI

Rancher Server Setup

Rancher version: v2.8.2, v2.7.6, v2.8.3
Installation option : Docker

Information about the Cluster

Kubernetes version: v1.26.11-rancher2-2 (All the k8s versions which are mapped with aci cni versions <IP_ADDRESS>, <IP_ADDRESS> and <IP_ADDRESS>), v1.26.14-rancher1-1, v1.27.11-rancher1-1 (All the k8s versions which are mapped with aci cni version <IP_ADDRESS>)
Cluster Type:  Downstream

Custom = Running a docker command on a node

User Information
What is the role of the user logged in?

Admin

Describe the bug
We are experiencing difficulties where the values we input for ACI fields are being discarded, and the default values are being used instead. This issue seems to be with the Rancher server. When we update the cluster configuration in the UI by inputting fields in the "Edit as YAML" option, the values we provide are being discarded/disappeared upon clicking the save button.
On the API level, the post request is sent out with our fields intact, but the response does not include them.
Also, the variables we added for <IP_ADDRESS> (RKE 1.4.9 which were successfully tested on Rancher 2.7.9), are not being picked up.
The variables introduced with ACI-CNI <IP_ADDRESS> are not being picked in by Rancher server v2.8.3.
To Reproduce
1.Go rancher server UI , Create a  Custom rke1 cluster
2. Give some name and select k8s version you want (v1.26.11-rancher2-2)
3. Go to the top, Select ‘Edit Yaml’ option
4. Copy the generated network provider file contents in the network section.
Add the custom values for aci cni as below:
network:
  plugin: "aci"
  aci_network_provider:
    opflex_device_delete_timeout: "101"                    # old field
    opflex_device_reconnect_wait_timeout: "15"             # new field added with <IP_ADDRESS>
    toleration_seconds: "111"                              # new field added with <IP_ADDRESS>

Edit: for v2.8.3 add the following fields:
network:
  plugin: "aci"
  aci_network_provider:
    opflex_device_delete_timeout: "101"                    # field added with <IP_ADDRESS>
    opflex_device_reconnect_wait_timeout: "15"             # field added with <IP_ADDRESS>
    toleration_seconds: "111"                              # field added with <IP_ADDRESS>
    taint_not_ready_node: 'true'                              # new field added with <IP_ADDRESS>
    apic_connection_retry_limit: "6"                           # new field added with <IP_ADDRESS>

Click on Next, and go to the node registration command page, check the roles you want and copy the command, run it on the node you want to register. Repeat for all the nodes you want in the cluster.

Result
We can verify aci values after creating cluster are missing by below:
a. Go to 'Edit Config'
b. Edit As YAML
c. Recheck the above added aci variables are present there.
we see missing aci values now:
  network:
    aci_network_provider:
      opflex_device_delete_timeout: '101'
    mtu: 0
    plugin: aci

Also if everything works fine then, we should be able to get these values from kubectl commands like:
kubectl describe deploy -n aci-containers-system   aci-containers-controller | grep toleration
Edit: for v2.8.3, just the <IP_ADDRESS> variables are being discarded:
  network:
    aci_network_provider:
          opflex_device_delete_timeout: '101'
          opflex_device_reconnect_wait_timeout: '15'
          toleration_seconds: '111'
    mtu: 0
    plugin: aci

Expected Result
Once the aci cni fields added in in Network section using 'Edit As YAML', it should reflect on Kubernetes resources and in UI's 'Edit As YAML' option as well.
(edited to include details pertaining similar issue on Rancher v2.8.3. separate issue created here: https://github.com/rancher/rancher/issues/45200)

@rancher/rancher-team-2-hostbusters-qa Need help with reproducing this issue. I am trying to reproduce with kinarashah/rancher:v2.8.2-linux which has additional logs that might help us debug further but unable to reproduce so far. @akhilesh-oc is able to see it on rancher/rancher image but not with my image so I trying to figure out how to get more info.

Able to reproduce the issue.
Steps to reproduce on Rancher v2.8.3:

Create RKE1 custom cluster
Under Edit as Yaml replace the network section with

  network:
    aci_network_provider:
      toleration_seconds: '111'
      taint_not_ready_node: 'true'
    plugin: aci

Save the cluster, no need to actually add nodes
Field taint_not_ready_node disappears from the config

Notes:

The same behavior is observed when editing cluster.management.cattle.io via kubectl
Logged marshaled objects in norman and the fields don't disappear until the final client PUT request for update goes through, which is consistent with the kubectl behavior mentioned above
Only the latest new fields seem to be affected
Reproducible with just the cluster creation, but sometimes also needed to update cluster post creation to see the issue

Debugging notes:
Looks like it's not connected with KDM or RKE or any ACI versions, but more of a Rancher issue. To verify this, I tried the following on latest upstream versions of Rancher and RKE for v2.6, v2.7 and v2.8.
Rancher v2.6 / RKE release/v1.3

Add FooName to types/rke_types.go under AciNetworkProvider struct.

FooName							 string              `yaml:"foo_name,omitempty" json:"fooName,omitempty"`

Vendor RKE to Rancher (go.mod and pkg/apis/go.mod + go mod tidy)
Run go generate and confirm zz_generated* file for ACI gets updated
Repeat the same steps above, with the following for aci config:

  network:
    aci_network_provider:
      apicUserName: testuser
      fooName: helloworld
    plugin: aci

fooName persists on the config with both API/kubectl.

Rancher v2.7 / RKE release/v1.4

Same steps as above, fooName disappears after saving the cluster.

Debugging notes:

Looks like it's not connected with KDM or RKE or any ACI versions, but more of a Rancher issue. To verify this, I tried the following on latest upstream versions of Rancher and RKE for v2.6, v2.7 and v2.8
The field always shows up when checked under v3/schemas/acinetworkprovider and v3/schemas/cluster

Rancher v2.6 / RKE release/v1.3

Add FooName to types/rke_types.go under AciNetworkProvider struct.

FooName							 string              `yaml:"foo_name,omitempty" json:"fooName,omitempty"`

Vendor RKE to Rancher (go.mod and pkg/apis/go.mod + go mod tidy)
Run go generate and confirm zz_generated* file for ACI gets updated
Repeat the same steps above, with the following for aci config:

  network:
    aci_network_provider:
      apicUserName: testuser
      fooName: helloworld
    plugin: aci

fooName persists on the config with both API/kubectl.

Rancher v2.7 / RKE release/v1.4

Same steps as above, fooName disappears after saving the cluster.

We've confirmed the root cause of this issue. rancher/webhook is vendoring an older version of RKE so the fields disappear if webhook doesn't have the right version of RKE. This also explains why editing cluster CRs via kubectl doesn't work because these requests also go through webhook.
Rancher v2.8.3 vendors RKE v1.5.7 and runs webhook v0.4.3 which vendors RKE v1.5.7-rc2. The new ACI field taint_not_ready doesn't exist in RKE v1.5.7-rc2 but does in RKE v1.5.7.

Available to test with Rancher v2.8.3-rc2 and v2.7.13-rc3.

Validated that the ACI values do not dissapear after provisioning the rke1 cluster on 2.8.4-rc4


Add --emulators option to explicitly choose to detect emulators in enumeration and device auto detection

This changes the default behavior to ignore emulators unless specified with --emulators. Since this is a backwards incompatible change, the major version number is bumped to 3.
Closes #653

cc @prusnak @craigraw

LGTM.
I tested:

Singlesig and multisig signing with a couple of hwws
With --emulators and without while separately opening a server on localhost:9999. With --emulators HWI hangs on enumeration, without it does not.


STRAC - Add properties to sender schema

Problem statement
STRAC results are failing for MA (Issue 3134).  This is caused by missing testing_lab_ entries in the schema.  The entries need to be added to the strac-covid-19.schema.
Acceptance criteria

[ ] OBX-24 XAD must contain Performing Organization Address

Testing

[ ] Tested Locally?
[ ] Ran deidentified file against local instance of Report Stream and verify OBX-24 XAD gets populated

Fixes

3134

Is the proposal that STRAC add these fields (which will not happen) or RS fill them in?

RS will fill them from the testing_lab fields.  Just need to update the schema.  I already tested locally.  Getting ready to do the pull request.

Double ticket.  Ticket 3134 covers this issue.  We'll be closing this ticket.


Add confirmation email support to non census thank-you page

What is the context of this PR?
This change needs to be implemented before we start removing census survey config class and census theme. At the moment, email confirmation is only available on census themed thank-you pages and only tested there, if we remove support for census theme, as a consequence of removing config, our coverage of confirmation email will drop to zero.
That's why we need to add email confirmation to different themed schemas and remove the logic around it in thank-you page py module.
How to review
Some tests had to be removed as a consequence of removing census theme email confirmation logic (census themed schemas use normal thank-you page template now).
Checklist

[ ] New static content marked up for translation
[ ] Newly defined schema content included in eq-translations repo

 Remove the Census survey configs (1 SP)

I think the schema test_feedback_email_confirmation also needs to be updated, not sure how the test are passing for that at the moment as it breaks when I run it locally 🤔

Fixed the schema, it uses "default" theme now, well spotted. I wouldn't worry about it too much as all census mentions are removed removed in the next PR anyway.

The file confirmation-email.html seems to be unused. If so, it should be removed.

Sort of answered here: https://github.com/ONSdigital/eq-questionnaire-runner/pull/1253#discussion_r1400772939

 Add confirmation email support to non census thank-you page (2 SP)


Add Salvage Expeditions research to R&D console

About the PR
This proposal is a compromise between a desire to keep the Expeditions feature from making Salvage an even more absent division than it already is and enabling players to work together to gain access to a fun feature of the game towards end-of-round.
Instead of simply mapping Expedition consoles, this PR would have them locked behind collaboration with Epistemics. Salvagers will also have to work hard to fund Cargo in order to purchase a shuttle with which to go on these expeditions. In short, a large fraction of the crew will be involved in the preparation for an Expedition, and be enriched themselves in the process (Cargo will have $$$, Epi will have some essential midgame research and favors earned from Engineering to get their devices upgraded).
Media

Changelog
:cl: Fireheart

add: Add Salvage Expeditions research to R&D console

I will be honest with you, this probably will not be added.

Personally I stand by the idea that if we're to add expeditions in some manner it would be something to purchase from the shipyard. This should be discussed further on the discord, but I don't think this is a clean solution.

Why does this PR modify RobustToolbox?

Ah, that's an oversight. Thanks for pointing that out. I'll update the commit tonight or tomorrow.

Not sure whether y'all would prefer I did a force-push or necessitate a later squash, but there ya go!

Personally I stand by the idea that if we're to add expeditions in some manner it would be something to purchase from the shipyard. This should be discussed further on the discord, but I don't think this is a clean solution.

Can you specify what exactly you mean by this @OldDanceJacket


admin approval module

It would be nice to have this besides the confirmable module.

There's some information on how you can implement it: https://github.com/plataformatec/devise/wiki/How-To%3A-Require-admin-to-activate-account-before-sign_in


Update Kokkos support

Old Kokkos helpers do not work with current versions of Kokkos.
'Kokkos_ArithTraits.hpp' file not found

Related to #2

Needs #11


Ask for releases

Hi,
can you please provide built releases (like for example: https://github.com/prometheus/blackbox_exporter/releases/)?
Regards,
Jarek

That's a good idea! (and I already set it up, just needed to tag one). Done!


Logger could block in thread at certain log message pool usage

Is your enhancement proposal related to a problem? Please describe.
#16194 introduces new feature to the logger which will allow blocking in threads when there is log message pool is empty (instead of dropping or overwritting the message). It happens when pool is empty so contexts which cannot block will start dropping messages at that point.
Describe the solution you'd like
Instead of blocking when pool is empty, it could block at certain availability level which would allow non-blockable context to use the logger (and not drop or overwrite messages). Currently, straight forward approach is used (timeout argument in mem slab alloc). Configurable threshold would require additional implementation.

@nordic-krch  can this be closed?

@nordic-krch  ping

It can be reopened when there is some interest.


Date mask accepting month greater than 12 and day greater than 31

Mask: Masks.DATE_DDMMYYY

Y

@joaolobao380 this is a generic mask component, its not intended to do such validation... you can create your own mask to do it if you like, would be something like below:
import { Mask } from 'react-native-mask-input';

const DATE_MASK: Mask = (text = '') => {
  const cleanText = text.replace(/\D+/g, '');

  let secondDigitDayMask = /\d/;
  if (cleanText.charAt(0) === '3') {
    secondDigitDayMask = /[0,1]/
  }

  let secondDigitMonth = /\d/
  if (cleanText.charAt(2) === '1') {
    secondDigitMonth = /[012]/
  }

  return [/[0-3]/, secondDigitDayMask, '/', /[0-1]/,secondDigitMonth, '/', /\d/, /\d/, /\d/, /\d/]
};

I consider this risky, I would rather just warn the user that he entered an invalid date and do any needed validation outside this component

Understand, thanks dude!! :D

Updated my comment, there was a mistake on the code, its not [0,1] but [01] for secondDigitDayMask

I modified it when I went to implement it, but thanks a lot <3

We can also add:
const DATE_MASK: Mask = (text = '') => {
const cleanText = text.replace(/\D+/g, '');
let secondDigitDayMask = /\d/;
// Avoid typing 00 for the day
if (cleanText.charAt(0) === '0') {
secondDigitDayMask = /[1-9]/;
}
if (cleanText.charAt(0) === '3') {
secondDigitDayMask = /[01]/
}
let secondDigitMonthMask = /\d/
// Avoid typing 00 for the month
if (cleanText.charAt(2) === '0') {
secondDigitMonthMask = /[1-9]/;
}
if (cleanText.charAt(2) === '1') {
secondDigitMonthMask = /[012]/
}
return [/[0-3]/, secondDigitDayMask, '/', /[0-1]/, secondDigitMonthMask, '/', /\d/, /\d/, /\d/, /\d/]
};


CORGI-634 generate links to manifests with hash

I think CORGI-634 file truncation is because we overwrite the file, but django doesn't re-read the file metadata from disk on every request unless you have WHITENOISE_AUTOREFRESH set. An alternative approach might be to add a WHITENOISE_IMMUTABLE_FILE_TEST  for the json files.
This switches back to whitenoise.storage.CompressedManifestStaticFilesStorage and generates manifest links like this:
such as openshift-4.13-efe620b4-e61d-4862-a632-81e320bdf6a4.a1f4f6010cda.json, notice the a1f4f6010cda hash in the filename. The next time we run collectstatic we'll get a new file and won't overwrite any files. Which should mean no mismatch between file metadata (content-length) and file contents. Those files can be cached forever by clients in the browsers, or anywhere in between the server and browser as the content won't change.
We'll have to keep an eye on the size of our staticfiles PVC and clean it up when it's getting close to capacity. I'll increase the size in an ops repo MR soon. All also see if I can find a metric to monitor the PVC disk usage.

While I was changing things related to manifest I also adjusted the code which generates and builds links to the manifest so that only streams with released products get generated.

@RedHatProductSecurity/corgi-devs please review. I've tested this in stage and it seems to be working well.

LGTM


Grass does not inherit biome colours

The grass seems to lack Cd

In 1.20.3, they renamed grass to short_grass and apparently I forgot to update the base_resource_pack/miex_config.json file to include short_grass in a couple of places. I'll update it in the next release, but you can easily open up the miex_config.json in the base_resource_pack and add short_grass to the following places: caveBlocks, randomOffset, randomYOffset, grassColormapBlocks, and doubleSided

This has now been fixed in the latest release, which you can find here: https://github.com/BramStoutProductions/MiEx/releases/tag/v1.3.0


Raise ArgumentError if multipart field is invalid.

I thought i'd tackle this one since https://github.com/teamon/tesla/pull/231/ may or may not be abandoned.
Fixes #230

This looks good!
I'd add some more tests, maybe even for every allowed value.

:+1: will take a second pass to add more tests.

While writing the test for Enumerable, i realized that the argument isn't actually an Enumerable, but iodata (binary or charlist). Should the docs be updated to reflect that? A map is actually not really supported.

Let's keep it simple and stick to the values we know work 100%

Okay i've updated it one last time to only support iodata and stream data. I believe it's ready now :+1:


animation-mixer duration ignored in 4.2.0

Hi @donmccurdy ,
I'm seeing a regression using these parameters : loop: once; duration: 20; clip:Standup;crossFadeDuration:0. The duration is ignored, the clip is played with base duration.
I had to revert to 4.0.3 to get back the correct behavior. Aframe v0.8.2.

Hm, I think the only recent change was https://github.com/donmccurdy/aframe-extras/commit/3ce78e662393c5a29462f151f94a00656acc6b73, and it's not obvious why that should break duration. Would you be able to share a demo?

Found the issue, thanks. This will be fixed in the next release. Meanwhile you can also use the timeScale property to get the same effect.

Ok, thanks for the good news :)


AWQ quantized model produces garbled output during multi-GPU inference

Dear Developer, I attempted to use AWQ to quantize the internlmxcomposer-4khd model. The results are normal during single-GPU inference, but when using multiple GPUs, the output is completely garbled. Could you please let me know if the reason is that multi-GPU inference is currently not supported?

Please update corresponding file like this.
https://github.com/InternLM/lmdeploy/pull/1932/commits/67f343dbfe23d24fbbb57348cae243b7f116d5a7

@irexyc Thank you for your quick response; it indeed solved the issue. However, I noticed that multi-GPU inference did not accelerate the quantized model. The bottleneck seems to be on the CPU, with all computations being handled by a single CPU, resulting in very high usage of that CPU while the others are at 0%. Do you have any suggestions?

The VLMs model have two parts: vision and llm. We have not optimize the vision part and only the llm part will be benefits by awq.
Currently, we combine the vision as llm as a pipeline for convenience. In the pipeline, only the preprocess of vision model require much cpu resource. It might be a better choice to split vision and llm into two services for productive use.
In my test on A100, the awq model with tp=2 use less time than tp=1. I don't know how you do the test, but for a fair comparison, you should use same max_new_tokens and set ignore_eos to True in GenerationConfig to make the models have same length of output.
There are some benchmark scripts https://github.com/InternLM/lmdeploy/tree/main/benchmark which you can test the llm part of the model.

Thank you for the response. It does indeed speed up, but not as significantly as the non-quantized model.


Customize load balanced requests according to the chosen ServiceInstance

Applications can define their own LoadBalancerFeignRequestTransformer beans
which can modify the Request to be executed. These beans can be
@Ordered in case of multiple transformers.
reference Transform the load-balanced HTTP request

@galaxy-sea Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@galaxy-sea Thank you for signing the Contributor License Agreement!

@OlgaMaciaszek
Can you check this PR.
I hope this function can be seen in the next release.

Hello, @galaxy-sea Thanks for submitting. Will review this week.

Hello @OlgaMaciaszek, I have submitted the Javadoc

hello @Buzzardo , I have re edited spring-cloud-openfeign.adoc.

Thank you. I approved the changes.

Thank @OlgaMaciaszek @Buzzardo

Thanks for the contribution @galaxy-sea


Different transition for routes

Hi, I'd like to use slideLeft/Right in my app, however I'd like to control which route uses which transition effect depending from where you access it.
Lets have four tabs A,B,C,D . Default is A.
From A to any other lets use slideLeft.
From B to C or D still slideLeft, but to A slideRight.
Now I'm using example from main 'wiki' of this repo:
<Route render={({location, history, match}) => {
  return (
    <RouteTransition pathname={location.pathname} {...presets.slideLeft} >
	<Switch key={location.key} location={location}>
		<Route exact path="/" component={Home}/>
		<Route path="/projects" component={ProjectsPage} />
		<Route exact path="/about" component={AboutPage}/>
	</Switch>
    </RouteTransition>
);}} />

I tried:
<Route render={({location, history, match}) => {
	return (
		<Switch key={location.key} location={location.pathname}>
			<RouteTransition  {...presets.slideRight}>
				<Route exact path="/" component={Home}/>
			</RouteTransition>,
			<RouteTransition  {...presets.slideLeft}>
				<Route path="/projects" component={ProjectsPage}/>
			</RouteTransition>,
			<RouteTransition {...presets.slideLeft}>
				<Route exact path="/about" component={AboutPage}/>
			</RouteTransition>
		</Switch>
);}}/>

Renders only first Route
And:
<Route render={({location, history, match}) => {
	return (
		<RouteTransition pathname={location.pathname} {...presets.slideRight}>
			<Route exact path="/" component={Home}/>
		</RouteTransition>
);}}/>
<Route render={({location, history, match}) => {
	return (
		<RouteTransition pathname={location.pathname} {...presets.slideLeft}>
			<Route path="/projects" component={ProjectsPage}/>
		</RouteTransition>
);}}/>
<Route render={({location, history, match}) => {
	return (
		<RouteTransition pathname={location.pathname} {...presets.slideLeft}>
			<Route exact path="/about" component={AboutPage}/>
		</RouteTransition>
);}}/>

Which works ok but feels redundant.
Is this the way to go?

I am trying to do the same thing. What I think we really need to do is dynamically change the transition depending on which page you are coming from. Have you figured out how to do this?

Finally I used this
and modified AnimattedWrapper HOC to get attribute style:
const AnimatedWrapper = (WrappedComponent,style) => class AnimatedWrapper
const Home = AnimatedWrapper(HomeComponent,'leftToRight');
It works nice. Last thing I need is to store previous route, but I didn't find a way to do that.

In react router you can pass in a custom state. It was a bit tricky because you dont give it to the route, but to the link or history.push function. I gave all the elements in my tab a state.tabindex from 0-4.
this.props.history.push({pathname: item.path, state: {tabIndex: item.tabIndex}});
Then in the route transition I can check whether or not the previous tab is bigger or smaller, indicating the direction.
The only issue now is that the location.state is undefined before you do any navigation. But for now I can assume that they start from the leftmost tab.
I also have some routes that are not going to have a left to right transition, eg. subpages.
 let prevTab = 0;         if (location.state !== undefined) {             if (location.state.tabIndex > prevTab) {                 animStyle = { e: 100, l: -100 };             } else {                 animStyle = { e: -100, l: 100 };             }             prevTab = location.state.tabIndex;         } else {             animStyle = { e: 0, l: 0, };         }
<RouteTransition                     pathname={location.pathname}                     atEnter={{ translateX: animStyle.e }}                     atLeave={{ translateX: animStyle.l }}                     atActive={{ translateX: 0 }}                     mapStyles={styles => ({ transform: translateX(${styles.translateX}%) })}                 >

@damianobarbati
I'm taking a break from that project. I left it with what I wrote in previous post.


Injection is incompatible with GNU Screen

Injecting into remote shells is the killer feature. It's what's going to enable everything else.
It's unfortunately not functional on screen, probably some non-eight-bit-clean goop.

I'm glad to hear that someone other than me is using that feature. I use it a lot.
The extra shell integration features are incompatible with things like GNU Screen and tmux because those two apps are actually terminal emulators themselves. They interpret the VT escapes codes and handle them before it reaches your real emulator (Extraterm etc). The extensions and custom escapes codes which I use for the integration don't survive the trip through Screen or tmux.
One possible way of improving the situation would be to add some kind of direct tmux support to Extraterm, just like what iTerm2 did. iTerm2 will let you connect to a remote tmux session and then you get all of your sessions back.

Hmm.  I'd interpose yourself into the shell's stdio, and run comms entirely over 7 bit clean text (base64, probably).  Native shell script if necessary, Python is not completely unreasonable to demand server side.  You'd be injecting a context manager and then looping back to the original shell's stdio, just having more channels too.
There's probably some way to turn the remote sshd binary into your own personal end to end context manager.

I believe that is kind of how the tmux detach/reattach functionality works, except that they run a kind of server process which then spawns and manages any needed shell sessions.
At some point in the long term some kind of special remote process or server would be needed to manage multiple processes and/or shells and to multiplex them over plain ssh. This would allow Extraterm to run commands in the background without messing up your shell prompt. Imagine for example the user being about tell a frame containing ls output to rerun the command and update the output in place, all without messing up the rest of your shell session below.

Would really like tmux support somehow as well. I love this terminal and want to switch from iTerm2.

Hello! I really like the injection feature and other features provided by it, but recently I mainly work across tmux(es) so the feature is unuseable. Also I didn't see this problem in the roadmap. I'm wondering if it is being solved?

I'm glad to hear that someone other than me is using that feature. I use it a lot.
The extra shell integration features are incompatible with things like GNU Screen and tmux because those two apps are actually terminal emulators themselves. They interpret the VT escapes codes and handle them before it reaches your real emulator (Extraterm etc). The extensions and custom escapes codes which I use for the integration don't survive the trip through Screen or tmux.
One possible way of improving the situation would be to add some kind of direct tmux support to Extraterm, just like what iTerm2 did. iTerm2 will let you connect to a remote tmux session and then you get all of your sessions back.

Hi @sedwards2009, is there any update on this feature which you were talking about?


CurrPage on PageEvents

Hi,
it would be great to have the posibility to access the object CurrPage on a page event.
E.g. to execute CurrPage.Update or to set parameters on a subpage of CurrPage.

@StanPesotskiy: is there any progress so far?


Envoy unable to be run as normal user after running as a superuser

To reproduce, using envoy 1.7.1,
#run envoy as privileged user
sudo ./envoy
#run envoy as non-privileged user
./envoy
[2018-08-17 12:05:37.523][12870][critical][assert] external/envoy/source/server/hot_restart_impl.cc:58] panic: cannot open shared memory region /envoy_shared_memory_0 check user permissions
[2018-08-17 12:05:37.523][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:125] Caught Aborted, suspect faulting address 0x3e900003246
[2018-08-17 12:05:37.536][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:94] Backtrace thr<0> obj</lib64/libc.so.6> (If unsymbolized, use tools/stack_decode.py):
[2018-08-17 12:05:37.611][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<0> #0 0x7f9e1805b207 raise
[2018-08-17 12:05:37.611][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<0> #1 0x7f9e1805c8f7 abort
[2018-08-17 12:05:37.611][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:104] thr<0> obj<./envoy_1_7_1_kerb>
[2018-08-17 12:05:38.450][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<0> #2 0x818d05 Envoy::Server::SharedMemory::initialize()
[2018-08-17 12:05:38.455][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<0> #3 0x8193e2 Envoy::Server::HotRestartImpl::HotRestartImpl()
[2018-08-17 12:05:38.459][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<0> #4 0x447697 Envoy::MainCommonBase::MainCommonBase()
[2018-08-17 12:05:38.472][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<0> #5 0x447d9d Envoy::MainCommon::MainCommon()
[2018-08-17 12:05:38.482][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<0> #6 0x4467d3 _ZSt11make_uniqueIN5Envoy10MainCommonEIRiRPPcEENSt9_MakeUniqIT_E15__single_objectEDpOT0_
[2018-08-17 12:05:38.486][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<0> #7 0x4455db main
[2018-08-17 12:05:38.486][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:104] thr<0> obj</lib64/libc.so.6>
[2018-08-17 12:05:38.486][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<0> #8 0x7f9e180473d4 __libc_start_main
[2018-08-17 12:05:38.486][12870][critical][backtrace] bazel-out/k8-dbg/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:121] end backtrace thread 0
Aborted (core dumped)

This might be related to https://github.com/envoyproxy/envoy/issues/4060

This is "expected" and I don't think we will aim to fix this. If you have suggestions on how to increase usability let us know. Perhaps a clean exit with a better error message?

I had that too! the fix was sudo rm /dev/shm/envoy_shared_memory_0.
I think the main gap for me was the understanding that shared memory region /envoy_shared_memory_0 is actually /dev/shm/envoy_shared_memory_0 in linux.

I had the exact same err, sudo rm /dev/shm/envoy_shared_memory_0 solved the problem as described by @yuval-k

Could the log message be updated to point to the exact absolute path so that users can easily delete to return to non superuser mode?


Bug:$step.title is giving eslint errors

Given
The below step
Then(
  'the {string} should( not) be displayed',
  async ({page,  $step, globalConfig}, elementKey: ElementKey) => {
    const negate = /should not/.test($step.title);
    const elementIdentifier = getElementLocator(page, elementKey, globalConfig)

        if (negate) {
          await expect(elementIdentifier).not.toBeVisible()
        } else if (negate == false) {
          await expect(elementIdentifier).toBeVisible()
        }
  }
)

When
I use const negate = /should not/.test($step.title);
Then
I get the following eslint error in IntelliJ
ESLint: Unsafe argument of type anyassigned to a parameter of typestring.(@typescript-eslint/no-unsafe-argument)

But I expect

to not have to ignore every instance of using $step.title
Isolated demo

Environment

Playwright-bdd environment info:

platform: darwin
node: v18.17.0
playwright-bdd: v6.2.0
@playwright/test: v1.41.1
@cucumber/cucumber: v10.3.1
Playwright config file: playwright.config.ts

issue seems to have resolved itself.

issue seems to have resolved itself.

Maybe some cache issues


Fix unittest

The unittest can work in local environment. However, it will fail in GitHub action.

Fixed in commit 240cde4b9f9f7fbf821e555e157571bf31591f1b.


[4.26] Startup movie not functional

With the default startup movie settings being null, this plugin's startup loading screen (in my case, a startup movie) is not running at all. It's not being triggered in a standalone launch or a packaged build. Using .mp4 as movie format.
Using the current marketplace version of the plugin.

Try to work around it by adding a black screen clip in the Startup settings to see if it helps?

Try to work around it by adding a black screen clip in the Startup settings to see if it helps?

Copy. Will try tonight. The thing is that the startup movie doesn't work even without the plugin. I looked up the encodings UE accepts and found that H.264 should work without any issues, but the video file that I use is also H.264 and it still didn't work.

Try to work around it by adding a black screen clip in the Startup settings to see if it helps?

Doesn't work. Getting a crash right on launch, though approx. 1 second of the intro movie does play. Haven't debugged it yet, but will try tonight. The crash is definitely caused by the plugin and the built-in startup movie paths being set.

Try to work around it by adding a black screen clip in the Startup settings to see if it helps?

UPDATE: So, now, it loads for about 2 - 3 seconds into the startup video and then hangs indefinitely. Seems like a problem in init or pre-init (not sure when exactly your plugin calls the video files). Logs are literally non-existent, which means that the logging hasn't even init-ed yet, which tells me that it's happening in pre-init, but then again, attaching a VS debugger and looking at the callstack, there isn't anything unexpected there.