[WIP] feat(std): add monad transformer interface, StateT, and LazyT

Description
Adds a monad-transformer interface Transformer, a State monad transformer StateT, and a Lazy monad transformer LazyT to the standard library.
Related PRs
Lays groundwork for Streamlike and the new parser #687.
Status
In Development
Outstanding design questions

[x] Can and should StateT be replaced by the effects system? (not for the time being, at least)
[ ] Should Transformer require monad field?
[ ] Should StateT and LazyT (and other monad transformers) be merged with their non-transformer counterparts?

To Do

[x] Fix StateT's implicit parameter bugs (#688 & #689)
[ ] add tests
[ ] add inline docs

Prior Art

StateT

Haskell
Idris
Implementing Applicative (<*>) for StateT

MonadTrans

Haskell
Idris

Left some nits for some more idiomatic code but otherwise looks good 👍 . Some tests, (doc or in tests/pass) would be nice but maybe that can wait till later as State could be implemented in terms of StateT and it would then get tested by the current tests.

Thanks. I'll make those changes as soon as I get the chance. Any tests I add might take a bit longer, since that's another area I don't have much experience with.

Something I have been thinking about is that std's top level (https://gluon-lang.org/doc/nightly/std/std.html) has become rather crowded so for the next version I will likely try and move some stuff into sub-modules. Maybe it makes sense to put these under std.transformer or std.monad.transformer? Without being sure about where to put them it might make more sense to wait with that however.

I think it makes sense to merge std.statet with std.state and std.lazyt with std.lazy like in Haskell and Idris. Then they could be moved to std.monads with all the other monads and monad transformers.

Can and should StateT be replaced by the effects system?

It think there is still value in having monad transformers as they have their uses. If they end up being replaced by effects in 99% of cases monad transformers could still be factored out of the standard library and into an external library for those who need it.

[started late night 3 Mar 2019]
I was writing tests for StateT when I ran into some issues. (Ignore the error mentioned on line 26. Looking back at my logs, that appears to have been due to a typo.)
error: Implicit parameter with type `forall m . std.functor.Functor m` could not be resolved.
- <tests.pass.statet>:32:29
32 |     assert_eq (eval_state_t ((mx >>= f) >>= g) s) (eval_state_t (mx >>= (\x -> f x >>= g)) s)
   |                             ^^^^^^^^^^^^^^^^^^^^

et alter...

The type checker sometimes seems to have trouble finding buried Functor instances.
error: Implicit parameter with type `std.transformer.Transformer (std.statet.StateT b)` could not be resolved.
- <tests.pass.statet>:29:40
- 29 |     let mx : StateT _ _ _ = wrap_monad mx
-    |                                        ^^

I'm not sure what I'm doing wrong here.
error: Expected the following types to be equal
Expected: std.list.List Int
Found: Int
1 errors were found during unification:
Types do not match:
    Expected: std.list.List Int
    Found: Int
- <tests.pass.statet>:44:103
44 |         test "modify eval_state_t" <| \_ -> (assert_eq (eval_state_t (modify (\x -> x + 2) *> get) 0) 2),
   |                                                                                ^

et cetera...

There's not actually an issue here. I left the unfinished code in lines 41-44 to point out an anomaly in the error messages: they refer to the List type when that type is not relevant to those lines. The type checker seems to be assuming the missing types in those lines are Lists instead of referring to them generically.

error: Implicit parameter with type forall m . std.functor.Functor m could not be resolved.

<tests.pass.statet>:32:29
32 |     assert_eq (eval_state_t ((mx >>= f) >>= g) s) (eval_state_t (mx >>= (\x -> f x >>= g)) s)
|                             ^^^^^^^^^^^^^^^^^^^^

It appears that records are only traversed once to pull out the implicit instances so it finds Applicative but not Functor. I have a fix which recurses fully but unfortunately it cause ambiguity errors else where since the resolver then finds Num -> Ord and Ord and there is no way to figure out that those are actually the same instance.
Going to have to sleep on this one.
#[implicit]
type Functor f = {
    map : forall a b . (a -> b) -> f a -> f b
}
#[implicit]
type Applicative f = {
    functor : Functor f,
}
#[implicit]
type Monad m = { functor : Applicative m }

let any x = any x

let eval_state_t f : [Functor m] -> m a -> () = ()

let associativity mx : [Monad m] -> m a -> () =
    eval_state_t mx

()

error: Implicit parameter with type std.transformer.Transformer (std.statet.StateT b) could not be resolved.

<tests.pass.statet>:29:40
29 |     let mx : StateT _ _ _ = wrap_monad mx
|

Here you have forgotten to export the transformer binding from statet.glu, add transformer alongside monad etc and it works.

error: Expected the following types to be equal
Expected: std.list.List Int
Found: Int
1 errors were found during unification:
Types do not match:
Expected: std.list.List Int
Found: Int

<tests.pass.statet>:44:103
44 |         test "modify eval_state_t" <| _ -> (assert_eq (eval_state_t (modify (\x -> x + 2) *> get) 0) 2),
|                                                                                ^

Implicit resolution seems to do something weird here, haven't looked into it further.

I decided to not include the unfinished tests, so the PR should be ready to merge. I do have a question, though, about one of the issues I had while trying to write them. Why does the implicit parameter of (+) not automatically resolve in the code below?
let { wrap, (<*>) } = import! std.applicative
let { Option, ? } = import! std.option
let int @ { ? } = import! std.int
let { wrap_monad } = import! std.transformer

let mplus : Option _ = wrap (+) // requires adding ?int.num
let ma : Option Int = wrap 10
let mb : Option Int = None
let c : Option Int = mplus <*> ma <*> mb
c

Why does the implicit parameter of (+) not automatically resolve in the code below?

Implicits are resolved just before generalisation just as in https://arxiv.org/pdf/1512.01895.pdf . The short of it is that since type inference and implicit resolution depend on each other when we chose to do implicit resolution affects type inference and therefore whether the program is well typed.
Since we also want typing to be predictable, choosing to do implicit resolution just before generalization on the closest let binding is the easiest to follow solution. Most of the time it is not an issue since the type will be concrete (say (+) : Int -> Int -> Int) and in the other cases it can be fixed with a type signature let mplus : [Num a] -> Option a = wrap (+).
As an aside, we could chose to infer that signature instead of demanding a concrete type. However I would argue that it is usually not what you want. Introducing an implicit argument makes the binding a function so using it elsewhere involves a function call, making it more costly than one might expect.
While this is basically https://wiki.haskell.org/Monomorphism_restriction which has a fair share of critque, gluon has scoped type variables by default so I think it avoids most of actual problems.
Looks like tests are failing after the rebase since you now need to import Lazy (and some other types) explicitly https://travis-ci.org/gluon-lang/gluon/jobs/527568322#L1771 . Went through and made the standard library types act more like library types.

Thanks for the explanation! Do you think it would be viable to suggest the inferred signature in the error message? That way we could keep the difference in signature explicit while also smoothing the learning curve for newbies like myself.

Looks like tests are failing after the rebase since you now need to import Lazy (and some other types) explicitly https://travis-ci.org/gluon-lang/gluon/jobs/527568322#L1771 . Went through and made the standard library types act more like library types.

Ah, that explains it.
I won't have access to my computer over the weekend, but if you made the tweaks I could accept them over the phone. Or I could just do it Monday.

Do you think it would be viable to suggest the inferred signature in the error message?

Good idea! Created an issue https://github.com/gluon-lang/gluon/issues/725

bors r+


Anyone got this working with 4.19 and VS2017?

Hey guys,
Currently having issues running this. Anybody have issues running this on UE4 4.19 and VS2017?

Any error message?

Everything works! Thanks! I have a question, what about support linux ?

@kazyuk how about 4.20?

@SyedAman, yes. Now, we start to use 4.21, but this problem occurred at 4.20. I created issue about it https://github.com/YetiTech-Studios/UE4GameLiftClientSDK/issues/12#issue-363991614. Please, help me :) I needed because we host servers in the Amazon and Linux price is lower than on Windows.


[Core arm] Updating linting scripts and applying auto linting and formatting

This package is way different than the others and cleaning it up is much harder. It makes sense because it is an arm package.

See #11431


Over slow networks, show a splash screen when the site is loading

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open a new incognito window
Open the developer console, network tab
Throttle your network connection to Slow 3G
Go to NewDot web (production or staging)

Expected Result:
While the (relatively) large app bundle is loading, we should show a “splash screen” on web, similar to the one we show on the mobile app.
Actual Result:
While the (relatively) large app bundle is loading, we just render a blank white screen.
Workaround:
unknown
Platform:

Where is this issue occurring?

Web

Version Number: 1.2.21-4
Reproducible in staging?: y
Reproducible in production?: y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/198676423-d440c30e-6083-4b1a-bcea-318f2bc82385.mp4
Expensify/Expensify Issue URL:
Issue reported by: @roryabraham
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1666947746573379?thread_ts=1666947230.935069&cid=C01GTK53T8Q
View all open jobs on GitHub

Closed as dupe of https://github.com/Expensify/App/issues/12234


ENH: robustify against 0 columns

a simple if not norm_Xcols[j]: continue can be added before update of feature j

https://github.com/mathurinm/celer/pull/46

@MalcolmWolff did it fix your problem ?


feat: add support for sub-sub operations

Proposed changes
Add support for sub-sub operations.
Types of changes

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Improvement (general improvements like code refactoring that doesn't explicitly fix a bug or add any new functionality)
[ ] Documentation Update (if none of the other choices apply)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Paste Link to the issue
https://github.com/thin-edge/thin-edge.io/issues/2858
Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA (in all commits with git commit -s)
[x] I ran cargo fmt as mentioned in CODING_GUIDELINES
[x] I used cargo clippy as mentioned in CODING_GUIDELINES
[x] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

Further comments

I reviewed the added Test Step Invoke sub-operation from a sub-operation to:
tests/RobotFramework/tests/tedge_agent/workflows/custom_operation.robot
The test step appears well-structured and thorough. It effectively validates the invocation of sub-operations and ensures the correctness of their output.


[TF-TRT] Allow saving calibration cache without the engine pre-built

@bixia1 for review
@tfeher @DEKHTIARJonathan CC
This PR does the following:

Adds a new parameter called save_gpu_specific_engine inside the TRTGraphConverterV2.save() function.

When True (default), the .save() function executes normally.

When False, the .save() will not save any of the TRT engines that have been built. I.e. any engines that are built during TRTGraphConverterV2.build() or during INT8 calibration will not be saved.

This change allows us to reuse calibration tables generated during calibration with a different GPU. Therefore only the need to rebuild the engines, not to recalibrate.

Originally, when we reloaded INT8 models we would receive an error when we tried to do inference on GPUs that were not similar to the GPUs that calibration was performed on.

When we reload INT8 models that are saved with save_gpu_specific_engine=False, a new engine will be built using the saved calibration tables (assuming calibration was done before saving).

Thus when using save_gpu_specific_engine=False we are able to run inference in INT8 on different GPUs, without having to re-calibrate during runtime.

@googlebot I signed it!

@googlebot I signed it!

@googlebot I signed it!

This also requires change to RELEASE.md and api/golden, see this PR

updated the PR. @bixia1

Updated the pr again to fix merge conflicts in release.md

Looks good to me, just two more minor comments.

@vict-guo Would you please resolve conflicts?

@bixia1 Are there still any conflicts? Seems like its merged already.


preserveCase creates loophole where duplicate tags can still be created

When using preserveCase: true (which is preferred in my instance) the duplicate tag feature fails. While it will still disable creating tags spelled the same, it now only considers tags spelled with the same casing as a duplicate. This is problematic as now people can do this:
Tag, tag, tAg, taG

This would be great.

Hmm this an interesting issue because if you want to preserveCase, technically Tag is different than taG so it should not be considered a duplicate in my mind (because you're being case sensitive). I could see this being a problem in your instance though. The question is more, how would we implement this in a clean way that works both ways because I still think the current implementation makes sense.
I don't necessarily think we should change the way it works currently as I can see that being somewhat of a breaking change. If we changed the way it works it would have to wait until a 2.0 release. I'm open to suggestions of how to handle this though.

@okcoker What if you just added an additional option for allowDuplicates? Basically in addition to true/false, you could also set it to 'strict' and then this would simply run it through a RegExp instead of a simple .indexof()
You can see an example of the difference here: http://codepen.io/ndimatteo/pen/KrvyGX
I imagine this would be pretty easy to add in around line #498: https://github.com/okcoker/taggle.js/blob/master/src/taggle.js#L498

I think if this ever were a thing, I'd rather you pass the regular expression as the actual option. But I think you can use the beforeTagAdd option to do your regex check anyway.


Show how to control retries

Copied from my Stack Overflow answer.
When I searched Google for  aioboto3 retries, that question was the top result, and until today unanswered.

Nice! Thanks, this is excellent.


What's the limit of number of collections in a database?

I have to create amount of collections in one databases,  then what's the upper limit?

There is no fix limit. It will just be less performant at some point.

ok, thanks

BTW. There is a limit to how many collections can be involved in a single AQL query (2048): https://github.com/arangodb/arangodb/blob/3.4/arangod/Aql/Collections.h#L62


Support Github Enterprise

Ideally in the same way this works: https://github.com/buunguyen/octotree#enterprise-urls

I'm a fan of how it was handled as a Browser Action in Refined GitHub: https://github.com/sindresorhus/refined-github/pull/819.
Less clicks, less copy-pasting, all-around simpler.

I'm happy to test anything here, as I'd love to see it on Enterprise as well. The UI is nearly identical, and should be for everywhere this is. I agree with @matchai the way Refined GitHub works (where you're simply prompted for a domain) works very well. Ultimately all we're doing is adding a domain of where this extension runs.

Any update on this?

@charliegroll So far, nop.
Would you want to take it?

Both GitLab and BitBucket support self-hosting. If GitHub Enterprise is supported, I think it would be easy to also support self-hosted GitLab and BitBucket.

@franklinyu, gotcha, so when the user is entering their custom URL, they'll also need to select which product they're using from a drop-down or something. These custom URLs can be stored as an array of { url: 'enterprise.domain.com', provider: 'github' } objects, just as a concept.

To add support for custom domains, this is all you need:
npm i webext-domain-permission-toggle webext-dynamic-content-scripts

// in background.js
import 'webext-dynamic-content-scripts';
import addDomainPermissionToggle from 'webext-domain-permission-toggle';

addDomainPermissionToggle();

You'll also be able to drop the tabs and webNavigation permissions, together with:
https://github.com/xxhomey19/github-file-icon/blob/a525d94786258b707546abe42b8d5b77dbd1284f/src/js/background.js#L14-L18
I'm sending a PR


Update wrapper as part of release 8.0 RC3

Update distribution url to 8.0 RC3

@bot-gradle test and merge

I've triggered a build for you.

Pre-tested commit build failed.

@bot-gradle test and merge

I've triggered a build for you.


[Move] Fixed displaying compiler diagnostics in the IDE (#225)_124

Motivation
This PR implements a few fixes for displaying compiler diagnostics in the IDE:

The changes for displaying warnings implemented and have been accidentally reverted and now they are brought back in
we now still compute new diagnostics even if the to-bytecode-compilation fails but we still have the typed AST available.
we now explicitly reset diagnostics for files that no longer have any errors/warnings.

Have you read the Contributing Guidelines on pull requests?
Yes

/canary

:sunny: Canary successful

/land


use git rev-list --stdin instead of passing each remote ref

Fixes https://github.com/github/git-lfs/issues/1318 by using --stdin. Hat tip to @alex-davidson for the idea. It doesn't work with the --not flag, so it now passes SHAs in with a ^ prefix.

LGTM other than 📝  comment! 👍

Welp, this clearly doesn't work. Tried different ways of passing the refs to git rev-list via stdin:
--- a/lfs/scanner.go
+++ b/lfs/scanner.go
@@ -304,7 +304,7 @@ func revListArgsRefVsRemote(refTo, remoteName string) ([]string, bool) {
                commits[0] = refTo
                for _, cachedRef := range cachedRemoteRefs {
                        if !missingRefs.Contains(cachedRef.Name) {
-                               commits = append(commits, "^"+cachedRef.Sha)
+                               commits = append(commits, fmt.Sprintf("^refs/remotes/%v/%v", remoteName, cachedRef.Name))
                        }
                }
                return commits, true

I made this slight tweak to the test to improve output:
diff --git a/lfs/scanner.go b/lfs/scanner.go
index b3ea4a4..ff0450f 100644
--- a/lfs/scanner.go
+++ b/lfs/scanner.go
@@ -455,6 +466,7 @@ begin_test "pre-push unfetched deleted remote branch & server GC"
   # all objects should now be there even though cached remote branch claimed it already had file3.dat
   for ((a=0; a < NUMFILES ; a++))
   do
+    echo "fetching object $a"
     assert_server_object "$reponame" "${oid[$a]}"
   done

Here's the error:
    fetching object 2
    *   Trying <IP_ADDRESS>...
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 55143 (#0)
    * Server auth using Basic with user 'user'
    > GET /test-pre-push-server-deleted-branch-gc.git/info/lfs/objects/ec3a53b52eb11808d59d29ffd01568edf2d62cdc9c02def84d0a11704d552de2 HTTP/1.1
    > Host: <IP_ADDRESS>:55143
    > Authorization: Basic dXNlcjpwYXNz
    > User-Agent: curl/7.43.0
    > Accept: application/vnd.git-lfs+json
    >
    < HTTP/1.1 404 Not Found

In the test, object 2 is the one pushed to the deleted branch. So, the client should be detecting that it was deleted, and that it needs to re-upload the object.

I may be being dumb here, but I can't see where you're actually passing the --stdin argument to git rev-list.

Lol yeah, that would do it. I was at gophercon the last 2 days, so just wrote these notes up until I could look at it today.


NTR: negative regulation of autoproteolysis

Potential GO term name: negative regulation of autoproteolysis
Definition: Any process that stops, prevents or reduces the frequency, rate or extent of the hydrolysis of a peptide bond or bonds within a protein catalyzed by the protein itself.
Aspect: Biological Process
-Relationships:
(Parent Term) GO:0045861 negative regulation of proteolysis
-References: PMID 23303392
-Synonyms: negative regulation of self-proteolysis; negative regulation of autocleavage

This is for CACAO.

@sfmcguinness and @jimhu-tamu
I'm looking at this part of the ontology, and seeing two different possible parent terms, neither of which are 'autoproteolysis':
GO:0019538 protein metabolic process
-GO:0006508 proteolysis
--GO:0097264 self proteolysis
---GO:1990092 calcium-dependent self proteolysis
---GO:1990091 sodium-dependent self proteolysis
GO:0019538 protein metabolic process
-GO:0051604 protein maturation
-GO:0006508 proteolysis
--GO:0016485 protein processing
--GO:0016540 protein autoprocessing
The definitions are:
GO:0097264 self-proteolysis
The hydrolysis of proteins into smaller polypeptides and/or amino acids by cleavage of their own peptide bonds. Source: GOC:yaf, PMID:18676612, PMID:19144634
GO:0016540 protein autoprocessing
Processing which a protein carries out itself. This involves actions such as the autolytic removal of residues to generate the mature form of the protein. Source: GOC:ai, PMID:9335337
@ukemi - would it make sense to move GO:0097264 to be an is_a child of GO:0016540?
Also, @jimhu-tamu  - Do the CACAO students use annotation extensions?  I am wondering here about the correct usage and interpretation of the proposed term 'negative regulation of autoproteolysis'.
This paper sounds like a good candidate for a GO-CAM model.

would it make sense to move GO:0097264 to be an is_a child of GO:0016540?

It would only make sense if self-proteolysis always leads to the mature form of a protein. In any other context, we would break the true path rule.

PMID:24779472 suggests that it would break the true path rule.

Okay, thanks @ukemi
@jimhu-tamu and @sfmcguinness since we don't have 'autoproteolysis'  but instead have 'self proteolysis' here's my proposal for term name and placement in the ontology:
GO:0045861 negative regulation of proteolysis
-GO:new negative regulation of self proteolysis
Synonyms: negative regulation of self-proteolysis; negative regulation of autocleavage, negative regulation of autoproteolysis, negative regulation of autolysis
I would also propose to add synonyms to self proteolysis (GO:0097264):
Existing synonyms: self-proteolysis, autolysis
New synonyms: autocleavage, autoproteolysis
Does that look okay to you?

yes but I would change the synonyms to remove autolysis.  Autolysis is not a synonym for autoproteolysis, since autolysis is usually refers to a process at the cellular level.
https://en.wikipedia.org/wiki/Autolysis_(biology)

Thanks, @jimhu-tamu @sfmcguinness
In looking at the parentage for the new term, I see that it would map up to the 'cellular protein metabolic process' branch of the BP, but wouldn't have any relation to the 'viral processes' branch of the BP.  Should the new term instead be under the 'viral processes' branch?

If so, then perhaps the new term should instead be a child of something like GO:0046726 positive regulation by virus of viral protein levels in host cell:

Although there are only four experimentally based annotations to GO:0046726 and they are all to human proteins, so I'm a bit uncertain about how this term was intended to be used.
@pgaudet  - would annotating a viral protein to a term like GO:0046726 (or a more specific child term like 'negative regulation by virus of viral protein self proteolysis') be consistent with how the viral group would interpret its meaning?
In summary, I think the biology here is:
Hex (phage protein) -| RecA (bacterial protein) -> 434 (phage protein) self proteolysis
@jimhu-tamu @sfmcguinness - is that right?
Sorry this has gotten complicated, but I just want to make sure we get the biology and ontology parentage correct.

It always gets complicated! Your diagram looks right to me. But note that the

RecA stimulation of autocleavage is itself regulated by RecA activities/SOS response to DNA damage
The RecA stimulated autocleavage happens for both viral and host proteins. RecA stimulates cleavage of LexA, the repressor of the SOS response, and several other proteins, including subunit of an error-prone translesion DNA polymerase.

Hi @vanaukenk
Most annotations to the terms:
regulation by virus of viral protein levels in host cell
positive regulation by virus of viral protein levels in host cell
negative regulation by virus of viral protein levels in host cell
are indeed to host proteins and therefore wrong; I will challenge them.

Hi @pgaudet
What annotations to host proteins are you referring to? Not the original annotation we want to make, I hope.

Hi @jimhu-tamu
Most annotations are to host proteins:
TAIR:locus:2184362	AT5G04430	GO:0046719	TAIR	NCBITaxon:3702	IMP	TAIR:Publication:501727403|PMID:18762309	20080929
UniProtKB:Q96BZ9	TBC1 domain family member 20	GO:0046726	AgBase	NCBITaxon:9606	IMP	PMID:17686842	20141112
UniProtKB:Q16531	DNA damage-binding protein 1	GO:0046726	AgBase	NCBITaxon:9606	IMP	PMID:23137809	20141218
UniProtKB:P42224	Signal transducer and activator of transcription 1-alpha/beta	GO:0046725	AgBase	NCBITaxon:9606	IMP	PMID:15825084	20141112
UniProtKB:P63172	Dynein light chain Tctex-type 1	GO:0019060	UniProt	NCBITaxon:9606	IMP	PMID:18647839	20100507
UniProtKB:P09914	Interferon-induced protein with tetratricopeptide repeats 1	GO:0019060	BHF-UCL	NCBITaxon:9606	IDA	PMID:19008854	20101230
UniProtKB:Q9P035	Very-long-chain (3R)-3-hydroxyacyl-CoA dehydratase 3	GO:0046726	AgBase	NCBITaxon:9606	IMP	PMID:18160438	20150115
UniProtKB:P67868	Casein kinase II subunit beta	GO:0046719	AgBase	NCBITaxon:9913	IMP	PMID:19692545	20160126
UniProtKB:O95793	Double-stranded RNA-binding protein Staufen homolog 1	GO:0046726	AgBase	NCBITaxon:9606	IMP	PMID:23907398	20141112

@pgaudet
Initially that makes sense, and a quick scan suggests to me that many are wrong. But it may hard to tell just by looking at the gaf for the following reason:
if we have a process that is a chain of regulatory steps, wouldn't we annotate both host and viral proteins involved?
In the paper being curated by @sfmcguinness, hex is a viral protein, which regulates RecA, a host protein, which regulates cI, a viral protein, which regulates a program of viral gene expression. From a process perspective, shouldn't RecA be part of regulation by virus of protein levels in host cell? (Or whatever we use for regulation of viral transcription).
If yes, then some or all of those might be correct.

Hi @jimhu-tamu
I don't know why we came on the topic of viral process for this term in fact - why was this suggested already ?
Thanks, Pascale

I'm confused too.

;) @vanaukenk ? Help please !

Hi @pgaudet and @jimhu-tamu
The reason the viral processes issue came up is that with the first suggested placement of the requested term in the ontology, there would have been no indication, by following the parentage, that what was being captured here was a viral process (if, indeed it is - I thought it was).
See my comment above with the screenshots of the ontology in AmiGO.

Thanks @vanaukenk !
So looking at the original reference (PMID:23303392): let me see if I understand the biology:

Bacterial RecA normally triggers phage proteins to perform autoproteolysis, so this is some sort of "defense response to virus", and it should also be OK to annotate to "positive regulation of autoproteolysis" (which in this case is not a viral process). You could even use the term 'negative regulation by host of viral transcription' which is the phage target of RecA.

Phage Hex negatively regulates RecA. This could captured under 'modulation by symbiont of host defense response'; perhaps under that term you want to create 'inhibition by virus of negative regulation by host of viral transcription' (but that's a mouthful! and a Noctua model probably).
Another way to capture the function of phage Hex could be under 'suppression by virus of host molecular function', under which we could have something like 'suppression by virus of host protease activator activity'.

If that makes sense, then the only term you need to create would be 'suppression by virus of host protease activator activity'.
Thanks, Pascale

I like this suggestion:
Another way to capture the function of phage Hex could be under 'suppression by virus of host molecular function', under which we could have something like 'suppression by virus of host protease activator activity'.
@jimhu-tamu @sfmcguinness  What do you think?


try installing wheel to fix nightly build

A follow-up for #5417
Nightly checks are still failing, so I think we need to explicitly install wheel in the venv.
I'll test a bit first by modifying the GHA workflow used in PRs, and then revert the debug bits to leave only the tested fix.

OK. I modified the check-python-packages target to do the bdist_wheel setup bit similar to check-python-packages-nightly. You can see the failed CI run for 632a6f504e5d8143ed24a9f01390be852c8554ba here (I cancelled the rest of the tests once I had the expected failure output):
https://github.com/StackStorm/st2/runs/4655764424?check_suite_focus=true#step:11:1227
You on the CI run for 783043eb031b95af79e20e44eb21a9a7720c2aa6 you can see the check-python-packages task succeeding.
https://github.com/StackStorm/st2/runs/4655850345?check_suite_focus=true#step:11:1227
Finally, I removed the debug changes to check-python-packages so this PR only affects the check-python-packages-nightly task.


Default option for conflicting files

What's the Problem?
No option to make conflicting files prompt to replace files or generate new name etc...
Solution/Idea
Let us be able to set the default conflicting files actions when copying files. It's going to need work to select replace the conflicting files one by one especially when you're copying more than 20 files. I hope you understand my request sorry for bad English it's not my first language.
Alternatives
aa
Priorities

Capability
Priority

This proposal will allow developers to accomplish W
Must

This proposal will allow end users to accomplish X
Should

This proposal will allow developers to accomplish Y
Could

This proposal will allow end users to accomplish Z
Won't

Files Version
No response
Windows Version
No response
Comments
No response

Same as #5645

A better UI is in the works. In the meantime you can choose e.g "Replace" for one then right click and choose "Apply to all"

Sorry for not using the search first before posting. I'll keep that in mind
thanks!
On Sat, Feb 5, 2022, 21:09 Marco Gavelli @.***> wrote:

A better UI is in the works. In the meantime you can choose e.g "Replace"
for one then right click and choose "Apply to all"
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/8167#issuecomment-1030622102,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJMEZP5CREXLLWHQU2VMWBLUZUOPLANCNFSM5NT55Z7A
.
You are receiving this because you authored the thread.Message ID:
@.***>


Dead link for New-AzADServicePrincipal.

This dead link is under this header.
404 not found for me.

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

ID: c6a900c4-851f-eee4-fbae-412c461c8b27
Version Independent ID: 84b2cbcb-1f11-9a6d-23fd-5c8d76453fa8
Content: Use Azure service principals with Azure PowerShell
Content Source: docs-conceptual/azps-1.4.0/create-azure-service-principal-azureps.md
GitHub Login: @sptramer
Microsoft Alias: sttramer

Fixed.


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Use BrowserWindow's backgroundColor as renderer view's background color

In #4777 we set the background color of the renderer view of normal windows to transparent by default, which resulted in the problem that some apps having black background, which is the default color of the window.
This PR solves it by setting the renderer view's background color to BrowserWindow's backgroundColor, and if it is not specified, we use white background by default.
This should be able remove the white flash when loading page on Windows and Linux completely, while keeping the default behavior before v0.37.3.
Refs #861.

:+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1:

@zcbenz would love to try this out, any plans for a new release soon?

@bpasero will cut a new release today.

Excellent.


OAuth flow errors are getting swallowed

requestToken was obscuring the underlying failure and reporting any error as an expired token. This isn't accurate; quite a few other things could cause an error at that part of the auth flow.

Merging, thank you!


Input checks

Component of #19.

Closing with basic implementation for provider column names.

Check that input dates are in expected format

Done.


ALPS-1803 - Compass

Add a plugin to display the direction with a compass, given GPMF telemetry from a GoPro. Can be tested in the sample Metadata (in the branch metadata of the samples repo).

 All committers have signed the CLA.


Updated Swagger as per latest changes.

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[X] I have reviewed the documentation for the workflow.
[X] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[ ] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[X] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

WaitForARMFeedback
Unable to add the label "WaitForARMFeedback" so addint it as a comment

/azp run automation - sdk

Can you please update with below changes as discussed offline.

New property 'properties.parameters.enableFedRampCertified'
Returning 'properties.CreatedDateTime'
VNet peering in the operation list
AML workspace id in the example should be a resource uri
Sku name value should be allowed value (in the example)
Revert changes to remove properties
Update examples as well.

/azp run automation - sdk

@yungezz can you confirm when we can merge this PR?

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

LGTM. waiting for ARM feedback.

/azp run automation - sdk

adding new writable properties to the schema requires a new api-version. But looks like these changes have already been made on service side. Signing off.

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

Can one of the admins verify this patch?

/azp run automation - sdk

/azp run automation - sdk

hi @amoghnatu pls ping here when the PR is ready to merge, thanks.

/azp run automation - sdk

/azp run automation - sdk

@amoghnatu, can you restore your change for package.json and package-lock.json? it will impact our pipeline which is not allow to change.

/azp run automation - sdk

/azp run automation - sdk

since there're new properties added after ARM signoff. need ARM review again. Wait for ARM review.

/azp run automation - sdk

Hi @amoghnatu, Looks there is some change for package-lock.json file in your PR which is not supposed in swagger PR. can you remove this file change in this PR? Thanks

/azp run automation - sdk

@akning-ms Thanks for pointing it out. I have removed the file.

/azp run automation - sdk

/azp run automation - sdk

signing off from ARM side.

hi @amoghnatu, could you pls fix CI failure, then the PR ok to merge.

/azp run automation - sdk

hi @amoghnatu could you pls fix CI?

ping @amoghnatu

/azp run automation - sdk


Changing Namespaces doesn't work

I'm following and adjusting the instructions from the namespaces post (here), specially the part about changing the namespace of the transformed messages.
My pipeline.js file looks like the snippet below:
var source = mongodb({
  "uri": "mongodb://localhost:3001/meteor"
});

var sink = elasticsearch({
  "uri": "http://user:pass@host:port"
});

t.Source("source", source, "/^(files)$/")
 .Transform("sort", js({filename: "sort-files.js"}), "/.*/")
 .Save("sink", sink, "/.*/") ;

And the sort-files.js transformer sends each document to a different namespace according to some field or discards it if it is not interesting.
function transform(msg) {
  if (msg.data.kind === "COVER") {
    msg.ns = "forms-covers.data";
  } else {
    msg.op = "skip";
  }

  return msg;
}

System info:

Transporter version: 0.4.0-rc.1-linux-amd64
OS: Debian 9
DB version(s)

mongodb 3.2.6
elasticsearch 5.2.2

Reproducible Steps:

transporter run

What did you expect to happen?
According to the blog post, I expected to be able to rename each document namespace to one that follows the pattern "." and have the elasticsearch sink put the documents in the right index.
What actually happened?
trasnporter created an index named test and used the namespace of the documents as the type inside that element.
curl  http://user:pass@host:port/test
{"test":{"aliases":{},"mappings":{"forms-covers.data":{...

How can I split a collection from the MongoDB source into different indices of the ES sink?

That article refers to a previous version of Transporter - specifically 0.1.0. Namespace handling has changed since then - In version 0.3.0 specifically.
Also ES handling of namespaces incoming and index setting has changed. To set the index, include it in the URI of the ES sink.  The "test" index is created if no index is specified in the URI.
The namespace will be used as the type.
To have two indices, create two sinks, place both in the pipeline and then set the namespace so it matches only one of them.

That's a pity, it seems I cannot implement my use case easily then.
The problem is that the type name is the same for all indices. Thus, assuming it's possible to have predefined sinks, there's no way to filter the documents on save because all of them have the same namespace.

I have the similar scene， just like : mongo(source)  collections ->  elasticsearch(sink) indicies

just like mongo-connecotr's  support "namespace_mapping" :  index_name.* => *.type_name

I think we might support this with some changed transform functions. I'll see what I can come up with and get back to you soon.

Ok, thanks! Sounds great. I'm currently running multiple instances of transporter to implement the use case. So it's not a big issue; at leas it has been working quite good for a few days.

@diegonc after a fair amount of testing, this is not currently possible but it should be. I've labeled it as a bug and will hopefully be able to fit it in to the 0.5.0 release.


HowTo: Custom Plugin to compute timestamps & weekdays of samples

Hey there :)
Thanks for the awesome work!
I'd like to create a fiftyone plugin to compute samples' timestamps, either from filename or file's metadata, to add the following filter options:

by timerange in general (e.g. 2023-01-23 to 2023-05-21). Could be just the unix timestamp.
by weekday (e.g. Mondays to Wednesdays). Could be 0 - 6.
by time (e.g. 8 am - 11 am). Could be 0.00 - 23.99

Usecase: I have a big dataset from construction sites and want to create a dataset from it that's made up evenly from different seasons, weekdays, daytimes,... So I need to filter by weekday for example, as I really don't need data from sundays...
Could someone helping me with the first steps and guide me a little?
Where do I start? I guess first step would be to compute a new metadata-field to give fiftyone access to the sample's timestamp?
Having this data I could compute other fields like time ( 0.00 - 23.99 ) and weekdays (0 - 6).
From there I might be able to find out the rest from browsing other plugins' repositories :)

Hi @mmoollllee 👋
Sounds like a great use case!
To get you started, every Sample in a FiftyOne dataset has an id field which is a MongoDB ObjectId. These ObjectId's contain a 4-byte timestamp representing when the sample was created, so you can actually already perform creation date-based queries on any FiftyOne dataset using date-based views.
The key is to start with this expression that will extract the creation date:
from fiftyone import ViewField as F

# An expression that extracts the date portion from the sample's ID
created_at = F("_id").to_date()

From there, you can do things like date-based comparisons:
from datetime import datetime

dt1 = datetime(...)
dt2 = datetime(...)

view = dataset.match((created_at > dt1) & (created_at < dt2))

FiftyOne's view expression language also contains a variety of utilities you can use to easily query based on certain parts of a date:
created_at.millisecond()
created_at.second()
created_at.minute()
created_at.hour()
created_at.day_of_week()
created_at.day_of_month()
created_at.day_of_year()
created_at.week()
created_at.month()
created_at.year()

Check out the documentation for ViewExpression.millisecond() and start scrolling down to see more information about these expressions.
Here's some examples:
import fiftyone as fo
import fiftyone.zoo as foz
from fiftyone import ViewField as F

dataset = foz.load_zoo_dataset("quickstart")
created_at = F("_id").to_date()

# Extract the raw values to see what we're working with
values = dataset.values(created_at)
print(values)
# [datetime.datetime(2024, 3, 4, 14, 25, 41), datetime.datetime(2024, 3, 4, 14, 25, 41), ...]

# Compute a histogram of the second portion of each sample
print(dataset.count_values(created_at.second()))
# {42: 54, 43: 47, 41: 61, 44: 38}

view = dataset.match(created_at.second() == 42)
print(len(view))
# 54

# Date comparison queries
dt1 = values[30]
dt2 = values[170]
view = dataset.match((created_at > dt1) & (created_at < dt2))
print(len(view))
# 101  <- because timestamps are only accurate to the second level

From here you should be able to build a pretty cool operator whose resolve_input() provides a variety of different input fields to accept dates, seasons, days, or other conditions you're interested in filtering on.
The execute() method of your operator could then construct + load the view of interest like so:
import json
from bson import json_util

def execute(self, ctx):
    # Parse your parameters
    ... = ctx.params[...]

    # Build your view
    view = ctx.dataset.match(...)

    # Load view in App
    view_stages = json.loads(json_util.dumps(view._serialize()))
    ctx.trigger("set_view", params={"view": view_stages})

You could also populate a dedicated DateTimeField on each of your dataset, which would allow you to perform basic dt1 < created_at < dt2 queries using the App's builtin sidebar without building a custom plugin at all (although the plugin will be sweet, so I hope you do it!!!)
You could populate this field manually in your sample ingestion pipelines like so:
sample = fo.Sample(filepath=..., created_at=datetime(...), ...)

dataset.add_samples([sample, ...])

Or you could retroactively populate them based on the id field of your existing datasets like so:
# Declare field (does nothing if already exists)
dataset.add_sample_field("created_at", fo.DateTimeField)

# Samples whose created_at field is not populated
view = dataset.exists("created_at", bool=False)

# Populate created_at field based on id field
values = view.values(F("_id").to_date())
view.set_values("created_at", values)

Hi @mmoollllee
As Brian hinted above, with resolve_input of an operator, you can provide the operator user with an option to provide a date-time and much more to build params for operator's execution. One relevant example would be rendering a date-time input which would let the user pick date and time interactively like:
 def resolve_input(self, ctx):
        inputs = types.Object()

        inputs.str(
            "date",
            view=types.TextFieldView(
                componentsProps={"field": {"type": "datetime-local"}}
            ),
        )

        return types.Property(inputs)

Preview of datetime-local:

Awesomee!!!! Thanks for all the input :)
I came up with the following so far:
import re
from datetime import datetime

import fiftyone as fo
import fiftyone.operators as foo

def get_filepath(sample):
    return (
        sample.local_path if hasattr(sample, "local_path") else sample.filepath
    )

def timestamp_from_filepath(f):
    matches = re.search(r".*([0-9]{4})-?([0-9]{2})-?([0-9]{2})_([0-9]{2})?-?([0-9]{2})?-?([0-9]{2})?.*?", f).groups()
    matches = ['00' if i is None else i for i in matches] # Replace not found items with "01"
    return matches

def compute_timestamps_from_filepath(sample):
    year, month, day, hour, minute, second = timestamp_from_filepath(get_filepath(sample))
    string = f'{year}-{month}-{day}_{hour}-{minute}-{second}'
    dt = datetime.strptime(string, "%Y-%m-%d_%H-%M-%S")
    weekday = dt.weekday()
    time = int(hour) + (int(minute) / 60) + (int(second) / 6000)
    return dt, weekday, time

################################################################
################################################################

class ComputeTimestampsFromFilepath(foo.Operator):
    @property
    def config(self):
        return foo.OperatorConfig(
            name="compute_timestamps_from_filepath",
            label="Compute Timestamps from Filepath",
            description="Filter by various timestamp informations found in filepath"
        )

    def execute(self, ctx):
        view = ctx.view
        if view is None:
            view = ctx.dataset

        ctx.dataset.add_sample_field("datetime", fo.DateTimeField)
        ctx.dataset.add_sample_field("weekday", fo.IntField)
        ctx.dataset.add_sample_field("time", fo.FloatField)

        for sample in view.iter_samples(autosave=True, progress=True):
            dt, weekday, time = compute_timestamps_from_filepath(sample)
            sample["datetime"] = dt
            sample["weekday"] = weekday
            sample["time"] = time

    def __call__(self, sample_collection):
        ctx = dict(view=sample_collection.view())
        params = dict(target="CURRENT_VIEW")
        return foo.execute_operator(self.uri, ctx, params=params)

def register(p):
    p.register(ComputeTimestampsFromFilepath)

which works for my case by calling:
compute_timestamps = foo.get_operator("@mmoollllee/timestamps/compute_timestamps_from_filepath")
compute_timestamps(dataset)

Results in:

Next I'd like to implement reading datetime from the created_at field to call this like so:
compute_timestamps = foo.get_operator("@mmoollllee/timestamps/compute_timestamps")
compute_timestamps(dataset, source="created_at")

But doing something like this won't work as I'm on the wrong path:
sample.get_field("_id").to_date()

How can I retrieve this "_id" field from sample?

Looking good! 😎
FYI, for the execute() method of your compute_timestamps_from_filepath operator, this will likely be more efficient for large datasets:
dts, weekdays, times = [], [], []
for filepath in view.values("filepath"):
    dt, weekday, time = compute_timestamps_from_filepath(filepath)
    dts.append(dt)
    weekdays.append(weekday)
    times.append(time)

view.set_values("datetime", dts)
view.set_values("weekday", weekdays)
view.set_values("time", times)

In general using values() + set_values() to read + write specific fields will keep I/O to the absolute minimum.
You can apply the same idea for your compute_timestamps operator:
datetimes = view.values(F("_id").to_date())
view.set_values("datetime", datetimes)

Or, if you want to implement it using in-memory Sample objects, you can retrieve the time like so:
sample._id.generation_time


feat: Add support for partialSuccess

Fixes #598 ☕

LGTM. It might be useful if this flag could be set on a specific log entry too though, along with global configuration

Thank you @daniel-sanche! Apparently, there is no such ability today, but perhaps we can think about it in the future


Remove mentions of Sepolia relay

According to brock and this commit, the Sepolia relay is not active, yet it is still listed in the docs.

@nopmal appreciate the contribution! we plan to have the sepolia relay back up soon, so I'm going to hold off on merging this for now and revisit in a week.

I haven't forgotten, just delayed a bit. soon ™ 🌈

Sepolia is now re-deployed! Hurray!


Certificate Expiry Notification is sent multiple times

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
Certificate Expiry Notification is sent multiple times
previously the notification is sent only once on 14 days, and once on 7 days
my setting is check every 30s, so the notifications seems is not sent everytime, but maybe every other time?

👟 Reproduction steps
my setting is HTTPS keyword monitor, every 30s
...
👀 Expected behavior
the notification is sent only once on 14 days, and once on 7 days
😓 Actual Behavior
the notification is sent everytime the check is run
🐻 Uptime-Kuma Version
1.19.6
💻 Operating System and Arch
docker
🌐 Browser
Chrome
🐋 Docker Version
20.10.22
🟩 NodeJS Version
No response
📝 Relevant log output
No response

What is your setting in the respective monitor here:
“Resend Notification if Down X times consequently”

What is your setting in the respective monitor here:
“Resend Notification if Down X times consequently”

0

I am closing this issue,
it was something with apache2,
it is serving old certificate and the new certificate the same time after certbot replace the file.


Improve markdown formatting

Improve some markdown formatting.
You might as well create a LICENSE file, as most people check that file first when looking what license it is. Since it is the MIT license: http://choosealicense.com/licenses/mit/

Thanks.
Oh good idea adding LICENSE-file. Forgot this :)
Will merge this


Add recipientType event to some send events

Description
Add a new recipientType param to two events in the send flow.
Other changes
N/A
Tested
Manually showing the content of the events in different cases.
How others should test
No need
Related issues

Fixes #1805

Backwards compatibility
N/A

hey @MuckT JFYI: We are skipping this task as in "How others should test" section it is mentioned N/A.
Cc: @gnardini
thanks !!


Nextjs build failed:  Type error: Cannot find module 'eslint' or its corresponding type declarations.

Before opening, please confirm:

[X] I have checked the custom domains troubleshooting guide.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
d6cg8pdc6mb4
Region
us-east-1
Step
Build front-end
Status
Failed
Issue or question
I have a website using Nextjs in  github
I have already setup build the app by aws amplify
In build step, it get the error
2023-07-26T02:12:31.147Z [INFO]: yarn run v1.22.0
2023-07-26T02:12:31.180Z [INFO]: $ next build
2023-07-26T02:12:31.595Z [INFO]: - warn No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
2023-07-26T02:12:31.627Z [INFO]: Attention: Next.js now collects completely anonymous telemetry regarding usage.
2023-07-26T02:12:31.627Z [INFO]: This information is used to shape Next.js' roadmap and prioritize features.
                                 You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
                                 https://nextjs.org/telemetry
2023-07-26T02:12:31.715Z [INFO]: - info Linting and checking validity of types...
2023-07-26T02:12:31.834Z [WARNING]: - error ESLint must be installed in order to run during builds: yarn add --dev eslint
2023-07-26T02:12:49.814Z [WARNING]: Failed to compile.
2023-07-26T02:12:49.815Z [WARNING]: .eslintrc.cjs:1:19
                                    Type error: Cannot find module 'eslint' or its corresponding type declarations.
                                    > 1 | /** @type {import("eslint").Linter.Config} */
                                        |                   ^
                                      2 | const config = {
                                      3 |   overrides: [
                                      4 |     {
2023-07-26T02:12:49.865Z [WARNING]: error Command failed with exit code 1.
2023-07-26T02:12:49.866Z [INFO]: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
2023-07-26T02:12:49.873Z [ERROR]: !!! Build failed
2023-07-26T02:12:49.874Z [INFO]: Please check the supported SSR features to find if your build failure is related to an unsupported feature: https://docs.aws.amazon.com/amplify/latest/userguide/ssr-Amplify-support.html#supported-unsupported-features. You may also find this troubleshooting guide useful: https://docs.aws.amazon.com/amplify/latest/userguide/troubleshooting-ssr-deployment.html
2023-07-26T02:12:49.874Z [ERROR]: !!! Non-Zero Exit Code detected
2023-07-26T02:12:49.874Z [INFO]: # Starting environment caching...
2023-07-26T02:12:49.875Z [INFO]: # Environment caching completed
Terminating logging...

Error message
2023-07-26T02:12:31.595Z [INFO]: - warn No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
2023-07-26T02:12:31.627Z [INFO]: Attention: Next.js now collects completely anonymous telemetry regarding usage.
2023-07-26T02:12:31.627Z [INFO]: This information is used to shape Next.js' roadmap and prioritize features.
                                 You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
                                 https://nextjs.org/telemetry
2023-07-26T02:12:31.715Z [INFO]: - info Linting and checking validity of types...
2023-07-26T02:12:31.834Z [WARNING]: - error ESLint must be installed in order to run during builds: yarn add --dev eslint
2023-07-26T02:12:49.814Z [WARNING]: Failed to compile.
2023-07-26T02:12:49.815Z [WARNING]: .eslintrc.cjs:1:19
                                    Type error: Cannot find module 'eslint' or its corresponding type declarations.
                                    > 1 | /** @type {import("eslint").Linter.Config} */
                                        |                   ^
                                      2 | const config = {
                                      3 |   overrides: [
                                      4 |     {
2023-07-26T02:12:49.865Z [WARNING]: error Command failed with exit code 1.
2023-07-26T02:12:49.866Z [INFO]: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
2023-07-26T02:12:49.873Z [ERROR]: !!! Build failed
2023-07-26T02:12:49.874Z [INFO]: Please check the supported SSR features to find if your build failure is related to an unsupported feature: https://docs.aws.amazon.com/amplify/latest/userguide/ssr-Amplify-support.html#supported-unsupported-features. You may also find this troubleshooting guide useful: https://docs.aws.amazon.com/amplify/latest/userguide/troubleshooting-ssr-deployment.html
2023-07-26T02:12:49.874Z [ERROR]: !!! Non-Zero Exit Code detected
2023-07-26T02:12:49.874Z [INFO]: # Starting environment caching...
2023-07-26T02:12:49.875Z [INFO]: # Environment caching completed
Terminating logging...

Additional information

Eslintrc.cjs

/** @type {import("eslint").Linter.Config} */
const config = {
  overrides: [
    {
      extends: [
        "plugin:@typescript-eslint/recommended-requiring-type-checking",
      ],
      files: ["*.ts", "*.tsx"],
      parserOptions: {
        project: "tsconfig.json",
      },
    },
  ],
  parser: "@typescript-eslint/parser",
  parserOptions: {
    project: "./tsconfig.json",
  },
  plugins: ["@typescript-eslint"],
  extends: ["next/core-web-vitals", "plugin:@typescript-eslint/recommended"],
  rules: {
    "@typescript-eslint/consistent-type-imports": [
      "warn",
      {
        prefer: "type-imports",
        fixStyle: "inline-type-imports",
      },
    ],
    "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
    "@typescript-eslint/no-unsafe-assignment": "warn",
  },
};

module.exports = config;

Env
"next": "^13.4.4"
"eslint": "^8.34.0",
No response

Hi @nvphung22 👋 , thanks for raising this!
It seems that the Amplify app d6cg8pdc6mb4 has been deleted and thus we wont be able to review the build logs for it from our end. If you are still running into this build error with a different Amplify app, I'll recommend you to build your app locally via npm run build to see if the issue is isolated outside the Amplify app environment.


how to present active speaker on full screen to all attendees.

1- I have implemented the active speaker code in my react native app and getting the response.

2- I want to put the active speaker on fullscreen so as to make it visible to all the attendees joining. how i should achieve it?

@rnqayush

Make sure that you are observing video tiles via audioVideo?.addVideoTileObserver(context).
In order to present an active speaker on full screen, the active speaker will be required to start their local video first.
When they start their video, you should have it via video tile observer VideoTileObserver callback onVideoTileAdded. Watch out for other relevant video callbacks too.
From video tile state in onVideoTileAdded, you get an attendeeId. Store it.
Now, in the active speaker list, you will get attendeeId via attendeeInfo.
Find the attendeeId you get from the active speaker list and highlight (focus, UI change etc...) the video tile that has the same attendeeId.

1- @sagarpatel288  Actually I have followed the step and I am getting attendeeId  from onVideoTileAdded also i am getting active speaker.
2- I am doing log.i() and can see the active speaker logging on console
3- @sagarpatel288 @ajorg-aws @zhinang-amazon  how can i get that value from native  to my react native side.

@rnqayush You can use Callback, or Promises, or Events.

thanks @sagarpatel288 i used event emitter and got it on my react native side too.

@sagarpatel288 thank you for your help I have done all steps and active speaker is now getting presented to fullscreen to all attendees.


Feature request: Type providers

It would be really cool to be able to create types from something other than inference/annotations at compile time. In particular, I can think of two use cases:

JSON Schema. It would be really interesting if we could write a type-level function schema(schema: string) -> type, which would take a JSON schema document and output a type. This capability would allow us to use the same schema document on the server/other contexts, while keeping the type checking in sync automatically. We might want to make the argument a path, or have a separate builtin type-level function to read files.
Tagged templates. Currently, tagged templates are pretty smart already, but there's opportunity here too. In particular, I'm thinking of the Relay.QL tagged template.

For nuts and bolts, I was thinking that we could use something like OCaml's Dynlink, so the providers would be OCaml bytecode, which would register their capabilities with some builtin API.

Great idea ! F# users love this feature !
Using dynlink is suitable, even if it's pretty low level (You could take a look to ocaml_plugin if you want to see something easier to use).

It’d be nice if flow understood JSON Schema. Less need to double up on schema/interface declarations.

This would be a huge help. The opposite already exists (https://github.com/seanhess/runtime-types) for converting Flow types to simple JSON. I may start work on a very simple POC that reverses the process - we download schemata from a database on boot and I'd really like to work it into our build process so we can validate everything flowing through the system.

@STRML Any progress on converting JSON schema to Flow types?

Yeah, I have a project working with https://github.com/STRML/json-to-flow. You can create your own templates & hooks if you need custom functionality.

Just wanted to check in on whether anyone had made progress or explored this. I'm very interested in a standard way to do type generation from other schemas like API contracts, GraphQL queries, etc.

I've explored RPC-based plugin approach. Seems doable, but hard to predict performance implications.

Any progress on this one? Is it on some kind of roadmap? If no one else is working on such a thing, I'd consider taking it on as a weekend project (once I've gotten some experience with OCaml).
TIA

I'm looking for contracts (or guards) based on Flow type definitions e.g. I declare a type signature in Flow, and I would be able to do runtime check if JSON response from the server is the same as my expected signature. If not it will return Nothing (from Maybe) or throw an error. This is similar to what they do in Elm. Anybody aware of something like this?


AWS.AvailabilityZones ignored / overwritten

I've been specifying 'AWS.AvailabilityZones = us-east-1c' in my bootstrap.properties file (local), but once cloudstrap has finished processing it, it ends up 'AWS.AvailabilityZones=us-east-1a' and that's where my instances end up.

This was discussed offline, but recording here for record-keeping.
This is intentional. Cloudstrap configures bootstrap.properties to match what it created. It does not use any settings from it, those only exist to be passed on to hcp-bootstrap.
Also, as of 53efd48 seed properties are no longer required.


Paper over custom command limitations

cc @jtattermusch @hsaliak

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Please flesh out your changelist description - the only thing the historian of the future has to understand the "why" behind this is "limitations". What limitations? Where are they documented? Will they ever be lifted, or are custom commands forever going to be second-class?

The limitation itself is part of the command description in commands.py, but sure I'll add more rationale.

@nathanielmanistaatgoogle PTAL; I believe the rationale has been more clearly stated w/ a root-cause issue.

I am not sure what issue is this solving. AFAIK, the binary artifacts for python were building just fine. Also, can we verify this is still the case?

@jtattermusch I don't believe so.

I am satisfied with this commit; you may merge when your conversation with @jtattermusch is resolved.

Conversation was resolved over a different communication medium.


Support Tool Use

It'll be great if we can update this package to support the new tool use API!
https://docs.anthropic.com/claude/docs/tool-use
If this is not WIP, I'm happy to make a PR.

Hey, @calclavia thanks for notifying me, I am almost done with this, I am thinking of returning the whole response, let the developers parse it themselves (with serde).
What do you think?

I am thinking of adding verbose mode too, in case the developer wants the entire response

@Mixpeal returning the whole response works. Or you can take a serde deserialize generic and use serde to deserialize to the given struct type on your end.


feedback errors

V2ray in linux system x64,will from v4.44 upgrade to v5.0.2 Developer Preview ,but show me some errors.

Please wait until Qv2ray adds support for v2ray v5.


[Bug]:  attachChangeBeforeCreate -> oEvent.preventDefault() not working as expected in the Extension Controller

OData Version
OData V2
Draft
Yes
Scenario
Freestyle
Environment
BAS
UI5 Spreadsheet Component
1.120.4
What happened?
Hello Marian,
I have used Spreadsheet uploader to upload Excel file in my Fiori Freestyle application.
While Uploading i check duplicates in the method attachCheckBeforeRead and provide error message which is working fine.
But when user clicks on Continue ayway and tries to upload the data by clicking on Upload button, i want to add a check on the upload button and provide the error there as well.
So i checked the event -> attachChangeBeforeCreate -> but i was not able to add message or prevent the data from being upload using oEvent.preventDefault().

Could you let me know what way i can add message and prevent user from uploading the data in database?
Relevant log output
Data is saved in draft once user clicks on Upload button.
Instead we want it to prevent from upload if duplicate records are available.

Spreadsheet Component Init
sap.ui.define([], function () {
    "use strict";
    return {
        onExcelUpload: async function (oEvent) {
            let flag_clear = false;
            this._view.setBusyIndicatorDelay(0)
            this._view.setBusy(true)
            this.spreadsheetUpload = await this._view.getController().getAppComponent().createComponent({
                usage: "spreadsheetImporter",
                async: true,
                componentData: {
                    context: this,
                    mandatoryFields: ["Material_No"],
                    activateDraft: true,
                    hidePreview: true
                }
            });

            this.spreadsheetUpload.attachCheckBeforeRead(function (oEvent) {
                let errorArray = [];
                const PreviousData = oEvent.getSource().spreadsheetUpload.binding.aPreviousData;
                const sheetdata = oEvent.getParameter("sheetData");
                for (const [index, row] of sheetdata.entries()) {
                    // Check for invalid price
                    for (const key_sheet in row) {

                        let flag = true;

                        if (key_sheet.endsWith("[Material_No]")) {

                            for (const [index_p, row_p] of PreviousData.entries()) {
                                for (const key_p in row_p) {
                                    let result_p = row_p.includes(row[key_sheet].rawValue);
                                    if (result_p == true && flag == true) {
                                        flag = false;
                                        flag_clear = true;
                                        const error = {
                                            title: "Duplicate Data, Please Delete the Duplicate data before Uploading or else Data would be saved in Draft",
                                            row: index + 1,
                                            group: true,
                                            rawValue: row[key_sheet].rawValue,
                                            ui5type: "Error"
                                        };
                                        errorArray.push(error);
                                    }
                                }
                            }

                        }

                    }
                }
                oEvent.getSource().addArrayToMessages(errorArray);
            }, this);

            this.spreadsheetUpload.attachChangeBeforeCreate(function (oEvent) {
                let payload = oEvent.getParameter("payload");
                payload.Characteristics_1 = payload.Characteristics_1.toUpperCase();
                payload.Characteristics_2 = payload.Characteristics_2.toUpperCase();
                payload.Characteristics_3 = payload.Characteristics_3.toUpperCase();
                payload.Characteristics_4 = payload.Characteristics_4.toUpperCase();
                payload.Characteristics_5 = payload.Characteristics_5.toUpperCase();
                payload.Characteristics_6 = payload.Characteristics_6.toUpperCase();
                payload.Characteristics_7 = payload.Characteristics_7.toUpperCase();
                payload.Characteristics_8 = payload.Characteristics_8.toUpperCase();
                payload.Characteristics_9 = payload.Characteristics_9.toUpperCase();
                payload.Characteristics_10 = payload.Characteristics_10.toUpperCase();
                payload.Characteristics_11 = payload.Characteristics_11.toUpperCase();
                payload.Characteristics_12 = payload.Characteristics_12.toUpperCase();
                payload.Characteristics_13 = payload.Characteristics_13.toUpperCase();
                payload.Characteristics_14 = payload.Characteristics_14.toUpperCase();
                payload.Characteristics_15 = payload.Characteristics_15.toUpperCase();
                payload.Characteristics_16 = payload.Characteristics_16.toUpperCase();
                payload.Characteristics_17 = payload.Characteristics_17.toUpperCase();
                payload.Characteristics_18 = payload.Characteristics_18.toUpperCase();
                payload.Characteristics_19 = payload.Characteristics_19.toUpperCase();
                payload.Characteristics_20 = payload.Characteristics_20.toUpperCase();
                oEvent.getSource().setPayload(payload);
            }, this);

            this.spreadsheetUpload.attachChangeBeforeCreate(function (oEvent) {
                // Prevent data from being sent to the backend
                oEvent.preventDefault();
                // Get payload
                const payload = oEvent.getParameter("payload");
            }, this);

            this.spreadsheetUpload.openSpreadsheetUploadDialog();
            this._view.setBusy(false)

        }
    };
});

Manifest
{
    "_version": "1.59.0",
    "sap.app": {
        "id": "my.cpqui",
        "type": "application",
        "i18n": "i18n/i18n.properties",
        "embeds": [
            "thirdparty/customControl/spreadsheetImporter/v0_31_1"
        ],
        "applicationVersion": {
            "version": "0.0.1"
        },
        "title": "{{appTitle}}",
        "description": "{{appDescription}}",
        "resources": "resources.json",
        "sourceTemplate": {
            "id": "@sap/generator-fiori:lrop",
            "version": "1.12.1",
            "toolsId": "5629affd-9ae7-401b-a4c4-2483df5dc69a"
        },
        "dataSources": {
            "mainService": {
                "uri": "/odata/v4/catalog/",
                "type": "OData",
                "settings": {
                    "annotations": [],
                    "localUri": "localService/metadata.xml",
                    "odataVersion": "4.0"
                }
            }
        }
    },
    "sap.ui": {
        "technology": "UI5",
        "icons": {
            "icon": "",
            "favIcon": "",
            "phone": "",
            "phone@2": "",
            "tablet": "",
            "tablet@2": ""
        },
        "deviceTypes": {
            "desktop": true,
            "tablet": true,
            "phone": true
        }
    },
    "sap.ui5": {
        "flexEnabled": true,
        "dependencies": {
            "minUI5Version": "1.120.4",
            "libs": {
                "sap.m": {},
                "sap.ui.core": {},
                "sap.ushell": {},
                "sap.fe.templates": {}
            }
        },
        "contentDensities": {
            "compact": true,
            "cozy": true
        },
        "models": {
            "i18n": {
                "type": "sap.ui.model.resource.ResourceModel",
                "settings": {
                    "bundleName": "my.cpqui.i18n.i18n"
                }
            },
            "": {
                "dataSource": "mainService",
                "preload": true,
                "settings": {
                    "synchronizationMode": "None",
                    "operationMode": "Server",
                    "autoExpandSelect": true,
                    "earlyRequests": true
                }
            },
            "@i18n": {
                "type": "sap.ui.model.resource.ResourceModel",
                "uri": "i18n/i18n.properties"
            }
        },
        "resources": {
            "css": []
        },
        "resourceRoots": {
            "cc.spreadsheetimporter.v0_31_1": "./thirdparty/customControl/spreadsheetImporter/v0_31_1"
        },
        "componentUsages": {
            "spreadsheetImporter": {
                "name": "cc.spreadsheetimporter.v0_31_1"
            }
        },
        "routing": {
            "routes": [
                {
                    "pattern": ":?query:",
                    "name": "PlanningCharList",
                    "target": "PlanningCharList"
                },
                {
                    "pattern": "PlanningChar({key}):?query:",
                    "name": "PlanningCharObjectPage",
                    "target": "PlanningCharObjectPage"
                }
            ],
            "targets": {
                "PlanningCharList": {
                    "type": "Component",
                    "id": "PlanningCharList",
                    "name": "sap.fe.templates.ListReport",
                    "options": {
                        "settings": {
                            "contextPath": "/PlanningChar",
                            "variantManagement": "Page",
                            "navigation": {
                                "PlanningChar": {
                                    "detail": {
                                        "route": "PlanningCharObjectPage"
                                    }
                                }
                            },
                            "controlConfiguration": {
<EMAIL_ADDRESS>{
                                    "actions": {
                                        "listPageExtController": {
                                            "press": "my.cpqui.ext.listPageExtController.listPageExtController.onExcelUpload",
                                            "visible": true,
                                            "enabled": true,
                                            "requiresSelection": false,
                                            "text": "Spreadsheet Upload"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "PlanningCharObjectPage": {
                    "type": "Component",
                    "id": "PlanningCharObjectPage",
                    "name": "sap.fe.templates.ObjectPage",
                    "options": {
                        "settings": {
                            "editableHeaderContent": false,
                            "contextPath": "/PlanningChar"
                        }
                    }
                }
            }
        }
    },
    "sap.fiori": {
        "registrationIds": [],
        "archeType": "transactional"
    },
    "sap.cloud": {
        "public": true,
        "service": "com.sap.oneplanning"
    }
}

Hi,
The documentation was wrong.
the prevent default is only available for press upload button.
This was fixed yesterday
Please use this event and the latest version 0.31.3

Hi @jaydeepgirigoswami
can you confirm that the new version fixed it for you?

Hello Marian,
Yes, the new version fix worked, The data is being Prevented from inserting into Database.
Thanks for the update.
Quick question:
I had a internal meeting with my Team regarding the BTP development, there was a question from the security team asking:

If the Library ( npm install ui5-cc-spreadsheetimporter ) which is being used is Secured ?
And how do we confirm that it is a secured library?

Hi @jaydeepgirigoswami ,
what do you mean with secure? In what context?
The good thing about being Open Source is that you can check yourself and look at the whole code.
The only external library is use is SheetJS.
Everything else is UI5 APIs.
In my opinion this component makes your system more secure because you´re not sending files to your backend system but do everything only on the frontend and send only data to the backend.


Ordering of CSS imports prevents styling of form elements with utility classes

Current Behavior
I'm using Skeleton with the @tailwindcss/form plugin, but am unable to change the styling of elements using the tailwind utility classes.
Steps To Reproduce
For example, suppose I want to make the border of an <input> element red.
I have some svelte code:
<input bind:value={name} type="text" class="form-input mt-1 border-1 border-red-500" />

which adds an element to the DOM:
<input type="text" class="form-input mt-1 border-1 border-red-500 s-W0JSPPeZErFo">

The Firefox dev tools tell me that line 1213 of the stylesheet defines a directive that would apply the border-red-500 class:
.border-red-500 {
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity));
}

However, whilst this would set border-color to a red color, the property is overruled by a later directive from @tailwindcss/forms (defined at line 2099):
[type="text"], [type="email"], [type="url"], [type="password"], [type="number"], [type="date"], [type="datetime-local"], [type="month"], [type="search"], [type="tel"], [type="time"], [type="week"], [type="file"], [multiple], textarea, select {
  --tw-border-opacity: 1;
  border-color: rgb(var(--color-surface-300) / var(--tw-border-opacity));
}

Consequently, the .border-red-500 class has no efect, and the input element's border is not red.
However, if I edit<EMAIL_ADDRESS>by moving @import 'forms.css'; above @import 'tailwind.css, then the order of these directives in the generated CSS file is reversed, and the border of my input element becomes red as intended.
The official @tailwindcss/forms examples, imports a tailwind.css file that lists the directives for forms (e.g. [type='text']) above the generic utility classes (e.g., .bg-gray-200).
It therefore looks like the order of imports in all.css (and the recommendation for ordering individual imports in the docs is incorrect.
Anything else?
No response

@jamesscottbrown Thanks for reaching out. Yeah, we're aware there's some work to be done with the stylesheets. Unfortunately reordering the stylesheets is not the answer though - the order we have is very important:

theme-x.css should come first - as it sets you CSS properties (aka variable values)
tailwind.css should come second, as it inserts the @tailwind directives, which must proceed any use of @layers, @components, etc.
tokens.css follows because it uses @layer to make the token classes available for use, even with modifiers like dark:some-token-class
Then all proceeding stylesheets take advantage of token classes in degree. This will increase over time most likely.

I have a couple theories for improving class-based precedence (read: cascading).

The first would be to update each our stylesheets from core to elements using @component, or similar tailwind directives. I think this might make Tailwind more aware of these, and provide more utility features.
If the above doesn't work, then I might consider rewriting the element stylesheets, etc using native CSS. I think the Tailwind classes would then take precedence "locally"

Tailwind class precedence/cascading is weird. It doesn't always work like you expect it, mainly because of how the compiler is bundling everything up. The classes aren't always added to the bundled you might expect. So this is definitely an area we plan to explore more in the future.
For now, if you have a local override, I might suggest the use of !important. In Tailwind you can proceed any class with ! to set important. Here's a basic example:
<input type="text" class="!border-red-500">

It's not perfect, but it may get you by for now.

Closing due to inactivity. James, please note that we will be revisiting some of the issues mentioned above soon, so keep and eye out for future release notes.


Actions are not mocked anymore with 2.1.4

Reproduction
https://github.com/bodograumann/pinia-testing-mock-actions
Steps to reproduce the bug
I have tried to create a minimal reproduction, but the thing is that it occurs in the context of storybook, so using the storybook reproduction tool seemed the easiest way to show the issue. I can try reproducing it without storybook later if necessary.

Check out the repro repo
npm install
npm run storybook
Goto http://localhost:6006/?path=/docs/example-page--docs

Expected behavior
The getRandomNumber action should be mocked with an implementation that always returns 42.
Actual behavior
The action is not a mock at all, so trying to define the implementation yields:

Error: randomStore.getRandomNumber.mockImplementation is not a function

Additional information
Confusingly, this only happens since pinia 2.1.4.
If you go one commit back in the reproduction to pinia 2.1.3 (and npm ci + restart the storybook) everything works as exepected and you can see 42 in the output.

This is too much for a repro 😅
Open one without storybook or even a PR with a failing unit test case

I have created a new issue here: https://github.com/vuejs/pinia/issues/2298


New command (dist) for tarball creation

Changed the version here to <IP_ADDRESS> too to avoid conflicts while merging my two requests

I just noticed I forgot to put the new module in the META file. Also there is a missing new Dependency: Shell::Command.

I just finished work on an cpan upload plugin. ignore this one and i file a new request with both after i had some sleep-

i'll close this one and file a new one with all my changes.


Adding equivalent filters from scipy.ndimage.filters

Would be great to support some common filters from scipy.ndimage.filters. Having convolve, correlate and generic_filter would be great and allow users to build up many common convolutions with relatively little work using a familiar API. There are others that would be very nice as well.

Thanks for the feature requests.
We always welcome contributions for such missing features!
https://docs-cupy.chainer.org/en/latest/reference/comparison.html#multidimensional-image-processing

Hi @jakirkham. Do you have an immediate need for this or a particular use case in mind?
I recently implemented the equivalent of ndi.convolve (built using a GPU-based implementation of  scipy.signal.upfirdn(..., up=1, down=1) under the hood) that supports float32, float64, complex64 and complex128. I haven't tried to make a PR for it here or posted it publicly, but can share it if you are interested in collaborating on it.
I implemented scipy.signal.upfirdn using CuPy and added support for various signal extension modes at the boundary (not currently available in SciPy's upfirdn). In my case, I started implementing a library expanding the functionality in PyWavelets. The version of upfirdn I have currently only supports downsampled convolution with up=1, down=M or upsampled convolution with up=M, down=1 as those were the only cases I needed for M-band wavelet filterbanks. With a bit more effort, it could be updated to allow the general setting of any positive integer up, down and become suitable for a PR here.

Not immediate, but it is something I can see use cases coming up for.
That does sound interesting. Yeah, if you would be willing to share, it would be great to discuss.
Ah ok. Thanks for the context. Is this in PyWavelets currently or in a library built on top of it?

Just as another thought, it might be worth looking at how chainer.functions.convolution_nd is implemented. Likely much of that code could be reused here as well. Perhaps even simplified a bit as this has fewer features.

Yeah, that would be a good place to look for general n-dimensional convolution.
One thing I forgot to mention is that my implementation is really only for separable filters at the moment (i.e. like applying ndimage.convolve1d along each axis in turn). So it can do the equivalent of ndimage.uniform_filter, ndimage.gaussian_filter or separable filtering along axes as used in the DWT, but does not support general n-dimensional kernels. It is not currently online, but when I get a chance I will post what I have in a standalone repo and put a link here for reference.

Looking into the Chainer implementation a bit, there appear to be two different underlying GPU implementations. When cuDNN is available, it uses cupy.cudnn.convolution_forward which relies on Nvidia's cuDNN library. Otherwise it falls back to the implementation in chainer/util/conv_nd.py.

Would be curious if you have thoughts on this, @anaruse?

@jakirkham @pentschev , do you have a sense for how long it would take to build out the core operations necessary for a couple of important/common user operations?  What would be a good time investment to see if this approach has promise?

My (albeit naive) approach to this problem would be (looking at the SciPy's convolve docs).

Only allow the default origin (so 0) initially.
Handle the mode and cval parameters through CuPy's pad.
Worry only about the case where cuDNN is available.
Write a few tests making sure this implementation lines up with SciPy's and what one would naively expect for base cases.

This should cut out some parts that may take time and we may not be too worried about on the first pass. Should add this does mean we probably don't handle all padding modes that SciPy handles (at least not initially). It also means we may not benefit from some more performant ways to handle padding with cuDNN initially. Finally it means that users will need cuDNN to get this to work.
Once we have this done and have a good rough idea of how this performs, it would be good to determine the value of handling padding with cuDNN directly. Also it would be beneficial for users to port any fallback code for when cuDNN is not present.
Following this we will want some user feedback to determine how we prioritize functionality we left out on the first or second pass. It would also be good to determine whether things can be made faster.

To get a sense of how complicated this might be to do (given the rough plan above), I tried just using CuPy and Chainer as-is to mimic SciPy's convolve. Was able to come up with a short notebook that has a working first pass of this functionality.

Should add this does mean we probably don't handle all padding modes that SciPy handles (at least not initially).

It's worth noting that PR ( https://github.com/cupy/cupy/pull/2399 ) is overhauling CuPy's pad and adding the functionality that was missing when compared to NumPy's pad. So this may help up handle any other padding cases we want.

Those points look good to me @jakirkham, I agree that the best is to start with a minimal set of requirements and expand in a future iteration if/when needed.

I finally got around to cleaning things up and making a public repo for some of the things I mentioned about a year ago (better late than never!). A CPU + GPU implementation of upfirdn is in the fast_upfirdn package. It differs from the implementation in cusignal in that the GPU implementation uses cupy.RawKernel instead of Numba.
Building on top of this, cupyimg implements a ton of other functions, primarily from scipy.ndimage, scipy.signal and scikit-image.
I have been working on getting some scipy.ndimage and NumPy stuff that was needed implemented as PRs here so that they can benefit from better code review and CI testing. Currently cupyimg does not have CI and I have just been running tests locally on linux. There are quite a few tests copied from the corresponding CPU-based packages, but these do not typically conform to the CuPy style, so getting things ready for PR here would still require quite a bit of work. There is also a substantial amount of kernel code duplication that could be avoided by refactoring of the type done by @coderforlife in #3184.
I think scikit-image functions are out of scope for CuPy itself. I'm not too sure about the viability of maintaining a parallel fork long-term without obtaining any official funding/support to do so, but wanted to try out at least a subset of the library that is built on top of scipy.ndimage functions.

Whoa.
I don't know this space well, but this seems like everything that people here were asking for?  If so, then this is great?
https://github.com/mritools/cupyimg#available-functions

@grlee77 I submitted a PR to rapidsai/cusignal for CuPy raw kernel implementation for upfirdn (1d) version yesterday https://github.com/rapidsai/cusignal/pull/31. I'd be interested to see the performance difference.

@jakirkham I just saw your comments on using cupy.pad. While it can be used, I found that instead doing the math inside the kernel itself instead of call pad beforehand provided 2x improvement in performance. See https://github.com/rapidsai/cusignal/pull/62.


Feature: Add Rules modal

Is your feature request related to a problem? Please describe.
Describe the solution you'd like

Describe alternatives you've considered
Additional context

Blocked by #31

Unblocked


xignCode, the great come back.

The launcher reach for EAC bin in the path. But BDO is now using XignCode again.
This, really need a fixe.

it was fixed 2 weeks ago 1.1.8

I saw that lately yesterday.
Thanks for you work !

Solved.


chore: replace ts-jest with @swc/jest

Describe your changes
Only doing this on API tests because I had issues with unit tests
Checklist before requesting a review

[ ] I have performed a self-review of my code
[ ] I have added tests wherever relevant
[ ] I have made sure that all automated checks pass before requesting a review
[ ] I do not need any deviation from our PR guidelines

Getting the following error:
FAIL test/visa-card/load-visa-card-details.test.ts
  ● Test suite failed to run
    ReferenceError: Cannot access 'UserEntity' before initialization
       6 | import { UserType } from '@121-service/src/user/user-type-enum';
       7 | import { WrapperType } from<EMAIL_ADDRESS>    >  8 | import { ApiProperty } from '@nestjs/swagger';
         |         ^
       9 | import crypto from 'crypto';
      10 | import {
      11 |   BeforeInsert,
      at Object.get [as UserEntity] (src/user/user.entity.ts:8:9)
      at Object.<anonymous> (src/programs/program-aidworker.entity.ts:20:16)
      at Object.<anonymous> (src/programs/program.entity.ts:19:33)
      at Object.<anonymous> (src/actions/action.entity.ts:24:24)
      at Object.<anonymous> (src/user/user.entity.ts:11:23)
      at Object.<anonymous> (src/events/entities/event.entity.ts:15:21)
      at Object.<anonymous> (src/registration/registration.entity.ts:12:22)
      at Object.<anonymous> (src/payments/fsp-integration/intersolve-visa/intersolve-visa-customer.entity.ts:13:29)
      at Object.<anonymous> (src/payments/fsp-integration/intersolve-visa/intersolve-visa-wallet.entity.ts:23:39)
      at Object.<anonymous> (test/visa-card/load-visa-card-details.test.ts:5:37)

The same thing happens on unit tests. Not sure what the cause is, nor whether it's worth digging deeper. The performance gains seem negligible compared to running the service.

FYI @elwinschmitz I'm closing this for now but feel free to resurrect if you want to


Superset colors on deck.gl geojson

After creating a data visualization in apache superset using the deck.gl geojson I was expecting to be able to change the colors of both the line and the fill of the polygon created using the color picker in the geojson settings.
Expected results
Using the color picker the color would update to the color I selected.
Actual results
Nothing happens, both the stroke and the fill remain black.
Screenshots

How to reproduce the bug

Create a chart with the option deck.gl Geojson
After the map and the polygons are loaded change the colors in the picker provided

Environment

superset version: 0.36.0

Checklist

[x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[x] I have reproduced the issue with at least the latest released version of superset.
[x] I have checked the issue tracker for the same issue and I haven't found one similar.

Are folks still seeing this in Superset 2.0.1? Hoping to validate that, but otherwise tempted to close it as stale.

Perhaps @daniel10012 has the requisite data to test easily?

Closing this as stale since it's been silent for so long, and we're trying to steer toward a more actionable Issues backlog. If people are still encountering this in current versions (currently 3.x) please re-open this issue, open a new Issue with updated context, or raise a PR to address the problem. Thanks!


chore: Improve error output on snapshot command

We were previously waiting for the snapshot to be not ready to use,
with this patch we check if there's an error inside the VolumeSnapshot
object and error out and let the user knows the error directly.

/ok-to-merge additional error message, no e2e impact


Make 'name' an optional property when parsing a component registry entry

What changes were proposed in this pull request?
No error is thrown when accessing an entry from the component registry that does not include the name key. This allows a component registry entry like the below to be parsed with no difference in functionality.
"run-notebook-using-papermill": {
  "location": {
    "filename": "run_notebook_using_papermill/component.yaml"
  },
  "category": "kfp"
}

We may want to discuss whether we want to remove name and all uses of it in the catalogs and during parsing since we do not currently use this field for anything. The idea behind including the name field sort of rests on the assumption that eventually we may have a GUI where users can add new components to the catalog and provide their own UI-friendly name.
How was this pull request tested?

Delete the name key/value pair from an entry in either component catalog
Rebuild and launch JupyterLab
Drag the changed component onto a pipeline
No error is thrown

Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

Can you please remove the name property from https://github.com/elyra-ai/elyra/blob/master/etc/config/components/kfp_component_catalog.json and https://github.com/elyra-ai/elyra/blob/master/etc/config/components/airflow_component_catalog.json

Can you please remove the name property

My main concern is that users will see the property and assume that the specified identifier is exposed/used somewhere, but that is currently not the case.


New config with schema validate

Please verify, i have followed your method. Started calling schema_validate(), in order from the main config function. Completed till interfaces->lag

Change looks good but please update PR so that only the file code/bngblaster/src/bbl_config.c is changed!


Fix memory cache hit underreporting in ioStats

Memory cache hits are only counted when the isFirstUse flag is set to false. However, when there's a cache miss and a new cache entry is created with isFirstUse set to true, the entry remains in exclusive mode and the isFirstUse flag stays true. Consequently, subsequent reads that hit this entry aren't counted as cache hits in ioStats, leading to underreporting. We need to ensure the flag is cleared properly after the entry is first loaded.

Can you add a unit test for this? Thanks!

I was planning to have it covered in https://github.com/facebookincubator/velox/pull/10256. Let me move part of test here.


postgresql-init-db: Fix installation from world-unreadable directory

This reverts part of commit 476524c0c19af0edd0b579c42e3c9d7811de547d (#18215), to fix this error when running the installer from a directory that isn’t world-readable:
+ '[' -e /var/run/supervisor.sock ']'
+++ dirname /root/zulip-server-4.1/scripts/setup/postgresql-init-db
++ dirname /root/zulip-server-4.1/scripts/setup
+ su zulip -c /root/zulip-server-4.1/scripts/stop-server
bash: /root/zulip-server-4.1/scripts/stop-server: Permission denied

Zulip installation failed (exit code 126)!

Cc @alexmv.
Testing plan: Installed from /root in fresh container.

Merged, thanks for fixing these @andersk!