Proposal: Move to a single index for hook types

I’ve had some time to work with the Hooks implementation @natefaubion put together at work, and one thing it does that I quite like is only use a single index for hook types instead of two, as is done with the indexed free monad.
Compare:
-- New approach
foreign import kind HookType

newtype Hook m (h :: HookType) a = Hook (Free (UseHookF m) a)

foreign import data Hooked :: HookType -> HookType -> HookType
infixr 1 type Hooked as <>

bind
  :: forall h h' m a b
   . Hook m h a
  -> (a -> Hook m h' b)
  -> Hook m (h <> h') b

In this approach a Hook is a free monad of the algebra UseHookF and bind  appends hooks with <>. The new approach models hooks like a list: as a series of appends.
But the old approach had more going on:
-- Old approach
type Hook m (newHooks :: Type -> Type) a =
  forall hooks. Hooked m hooks (newHooks hooks) a

newtype Hooked m hooks newHooks a =
  Hooked (Indexed (Free (UseHookF m)) hooks newHooks a)

bind
  :: forall a b x y z m
   . Hooked m hooks hooks' a
  -> (a -> Hooked m hooks' newHooks b)
  -> Hooked m hooks newHooks b

Improvements
Switching to a free monad + phantom type instead of an indexed free monad makes a few improvements to how Hooks are written.
Hooks are now written in the order they occur
I find it irritating to define Hooks in the reverse order from how they appear in the Hook definition, and the same is true of type errors — Hooks get parsed backwards, so you have to flip the error in your head.
Compare:
-- UseState, then UseEffect, then UseRef in the code

-- this reads backwards, as state transitions 'away from' the
-- hooks type variable
UseRef Int
  (UseEffect
  (UseState Int hooks))

-- this reads in the order hooks are applied in the code, where
-- `Nil` represents the call to `pure`
UseState Int
  <> UseEffect
  <> UseRef Int
  <> Hooks.Nil

You can now use Hooks.pure  in place of a particular list of Hooks
As @vladciobanu noted on the functional programming Slack, it seems like you ought to be able to use Hooks.pure to return a Hook’s result, regardless of the HookType of the hook.
nothing :: Hook m (UseAPI T) (Maybe T)
nothing = Hooks.pure Nothing

This ought to compile, but it doesn’t under the indexed monad. With the simple free monad approach this is now accepted.
Fewer type variables to understand
Hooks are now just a free monad with a phantom type variable, instead of being a full-on indexed monad. Previously, you had to leave a hooks variable free when defining any Hooks:
type UseX' hooks = UseState Int (UseEffect hooks)

newtype UseX hooks = UseX (UseX' hooks)

derive instance newtypeUseX :: Newtype (UseX hooks) _

Under the hood, the Hook m hookType a was actually Hooked m hooks (hookType hooks) a, which was confusing to see in error messages instead of seeing the Hook type. But all this underlying type was ever used for was to apply Unit as the hooks type when you turned your Hook into a component.
It was easy to forget the hooks type and see obscure errors, or not be sure where the hooks type would go in the nested parentheses, and so on (see https://github.com/JordanMartinez/learn-halogen/issues/78#issuecomment-615536064 as well).
 while checking that expression wrap
    has type Hooked m0 hooks1 (UseInitializer hooks1) Unit

  in value declaration useInitializer

Now, there is no type synonym — Hook is just Hook, without the indexed monad. Rather than nested parentheses you can use the <> type operator to append hook types, where you can use Nil to represent a call to pure.
type UseX' = UseEffect <> UseState Int <> Hooks.Nil

foreign import data UseX :: Hooks.HookType

instance newtypeUseX :: HookEquals UseX' h => HookNewtype UseX h

If you don’t need the synonym it gets a bit smaller:
foreign import data UseX :: Hooks.HookType

instance newtypeUseX
  :: HookNewtype UseX (UseEffect <> UseState Int <> Hooks.Nil)

Drawbacks
The new approach does have some drawbacks, mostly in that it introduces a few concepts users wouldn’t otherwise have to learn about.
More unfamiliar concepts
foreign import data ... will be a new concept for a lot of people in a way that newtype alone is not. Luckily this is essentially boilerplate — you don’t need a deep understanding of the topic, you just need to recognize the pattern. Still, it’s yet more unfamiliar stuff to learn.
HookEquals will be new for anyone who doesn’t know about TypeEquals. HookNewtype is hopefully clear to anyone used to Newtype, but it’s less clear than just using Newtype.
More complicated definitions
This is how you’d define a Hook under the indexed monad — you need to know about leaving the hooks variable free and to nest it at the deepest level, but otherwise this is all ordinary PureScript code:
-- with type synonyms
type UseX' hooks = UseState Int (UseEffect hooks)

newtype UseX hooks = UseX (UseX' hooks)

derive instance newtypeUseX :: Newtype (UseX hooks) _

-- without
newtype UseX hooks = UseX (UseState Int (UseEffect hooks))

derive instance newtypeUseX :: Newtype (UseX hooks) _

This is how you’d define the same thing with the free monad + phantom type — now you need to know about the Hooked type / (<>) type operator, and the HookType kind, and the HookEquals and HookNewtype type classes. You need to know (or at least you’ll soon find out) that type synonyms are disallowed in instance heads, which is why HookEquals is needed.
I don’t think any of this is hard, especially because HookEquals should be unnecessary soon, but it’s definitely a few new things to learn about where the newtype approach has none of them.
-- with type synonyms
type UseX' = UseEffect <> UseState Int <> Hooks.Nil

foreign import data UseX :: Hooks.HookType

instance newtypeUseX :: HookEquals UseX' h => HookNewtype UseX h

-- without
foreign import data UseX :: Hooks.HookType

instance newtypeUseX
  :: HookNewType UseX (UseEffect <> UseState Int <> Nil)

Improvements to look forward to
The main thing I dislike about the new implementation is that users will now have to use the HookEquals class to get around not being able to use type synonyms in instance heads.
However, I’m ultimately still open to making this change because there are upcoming changes to the PureScript compiler that will make this nicer.
First, with PolyKinds in 0.14 the HookEquals class is no longer necessary because TypeEquals will work on the HookType kind:
foreign import data UseX :: HookType

type UseX' = UseState Int <> Nil

-- before
instance newtypeUseX
  :: HookEquals UseX' h => HookNewtype UseX h

-- with polykinds
instance newtypeUseX
  :: TypeEquals UseX' h => HookNewtype UseX h

Even better, if #3539 gets merged for 0.14 (which I hope happens!) then the type synonym workaround via TypeEquals won’t even be necessary:
-- before
instance newtypeUseX
  :: HookEquals h UseX' => HookNewtype UseX h

-- with type synonms allowed
instance newtypeUseX :: HookNewtype UseX UseX'

Some example type errors
Here are a few comparisons of type errors between the two implementations. I’m happy to add more.
Used too many hooks
The HookType version does a better job of reporting that it expected a `UseEffect` hook but instead received 3:
[1/1 TypesDoNotUnify] examples/Example/Hooks/UseInitializer.purs:18:30

                                   v
  18  useInitializer initializer = Hooks.wrap Hooks.do
  19    Hooks.useLifecycleEffect (initializer *> pure Nothing)
  20    Hooks.useLifecycleEffect (initializer *> pure Nothing)
  21    Hooks.useLifecycleEffect (initializer *> pure Nothing)
                                                             ^

  Could not match type

    UseEffect

  with type

    Hooked UseEffect (Hooked UseEffect UseEffect)

  while solving type class constraint

    Halogen.Hooks.Hook.HookNewtype
      UseInitializer
      (Hooked UseEffect (Hooked UseEffect UseEffect))

  while applying a function wrap
    of type HookNewtype t1 t2 => Hook t3 t2 t4 -> Hook t3 t1 t4

  while checking that expression wrap
    has type Hook m0 UseInitializer Unit

  in value declaration useInitializer

As compared to the current indexed monad, which reports it can’t match hooks1 with UseEffect (UseEffect hooks1) first, which is hard to parse, before a better error message that shows all the hooks. I find the newtype part of the error message easier to parse as well.
[1/1 TypesDoNotUnify] examples/Example/Hooks/UseInitializer.purs:19:30

                                   v
  19  useInitializer initializer = Hooks.wrap Hooks.do
  20    Hooks.useLifecycleEffect (initializer *> pure Nothing)
  21    Hooks.useLifecycleEffect (initializer *> pure Nothing)
  22    Hooks.useLifecycleEffect (initializer *> pure Nothing)
                                                             ^

  Could not match type

    hooks1

  with type

    UseEffect (UseEffect hooks1)

  while trying to match type UseEffect hooks1
    with type UseEffect (UseEffect (UseEffect hooks1))
  while solving type class constraint

    Data.Newtype.Newtype
      (UseInitializer hooks1)
      (UseEffect (UseEffect (UseEffect hooks1)))

  while checking that expression wrap
    has type Hooked m0 hooks1 (UseInitializer hooks1) Unit
  in value declaration useInitializer

Newtype differences
Any error which pertains to the use of `wrap` is better with the new version, because the old version would spit out `Hooked` out of nowhere when users would typically have never seen it before.
The wrap function in the HookType version shows a move from Hook _ a _ -> Hook _ b _ and checks that the resulting type is Hook m UseInitializer Unit.
  while applying a function wrap
    of type HookNewtype t1 t2 => Hook t3 t2 t4 -> Hook t3 t1 t4

  while checking that expression wrap
    has type Hook m0 UseInitializer Unit

  in value declaration useInitializer

The indexed monad version, though, is hard to understand:
 while checking that expression wrap
    has type Hooked m0 hooks1 (UseInitializer hooks1) Unit

  in value declaration useInitializer

Used the wrong hook
[1/1 TypesDoNotUnify] examples/Example/Hooks/UseInitializer.purs:18:30

                                   v
  18  useInitializer initializer = Hooks.wrap Hooks.do
  19    _ <- Hooks.useState 0
  20    pure unit
                ^

  Could not match type

    UseEffect

  with type

    Hooked (UseState Int) t5

  while solving type class constraint

    Halogen.Hooks.Hook.HookNewtype
      UseInitializer
      (Hooked (UseState Int) t5)

  while applying a function wrap
    of type HookNewtype t1 t2 => Hook t3 t2 t4 -> Hook t3 t1 t4

  while checking that expression wrap
    has type Hook m0 UseInitializer Unit

  in value declaration useInitializer

The old version was a bit better, but the wrap function reveals “Hooked” with extra types out of nowhere, which is worse.
[1/1 TypesDoNotUnify] examples/Example/Hooks/UseInitializer.purs:19:30

                                   v
  19  useInitializer initializer = Hooks.wrap Hooks.do
  20    a <- Hooks.useState 0
  21    Hooks.pure unit
                      ^

  Could not match type

    UseEffect

  with type

    UseState Int

  while trying to match type UseEffect hooks1
    with type UseState Int hooks1
  while solving type class constraint

    Data.Newtype.Newtype
      (UseInitializer hooks1)
      (UseState Int hooks1)

  while checking that expression wrap
    has type Hooked m0 hooks1 (UseInitializer hooks1) Unit

  in value declaration useInitializer

Does it still prohibit running hooks conditionally?
One question I have about this. Is it possible to subvert the guarantees of this code by using regular do notation rather than the qualified do notation you are supposed to use? For example, let's say I forget to use Hooks.do and instead use do. Does this code still compile?
foo = do -- notice, no Hooks.do here
  state /\ stateId <- useState 0
  useLifecycleEffect do
    liftEffect $ log "foo"
  --

Now, let's say I reorder the hooks so that the effect occurs first, does the code still compile? I imagine the indexed monad approach would not compile in this second version because the Monad instance for an indexed monad would require the "state" type to not change when using normal bind.
data IxMonad x y a = IxMonad a

-- The `state` types here don't change
instance bindIxMonad :: Bind (IxMonad x x) where
  bind :: IxMonad x x a -> (a -> IxMonad x x b) -> IxMonad x x b

I thought preventing this state change was one of the primary reasons for using indexed monads over something else. Otherwise, what stops you from writing if condition then oneHook else aDifferentHook, which would invalidate the guarantee that a given index always refers to the same element in the underlying array? Granted, you could probably fix this by defining your own version of the indexed monad type class hierarchy:
-- `k` would be `HookType`, but I guess this would be easier
class IxAppendMonad :: forall k. (k -> Type -> Type) -> Constraint
class IxAppendMonad m where
  iabind
    :: forall a b state1 state2
     . m state1 a
    -> (a -> m state2 b)
    -> m (state1 <> state2) b

Related...

nothing :: Hook m (UseAPI T) (Maybe T)
nothing = Hooks.pure Nothing

This ought to compile, but it doesn’t under the indexed monad. With the simple free monad approach this is now accepted.

I can't recall the full context of this situation and why that was actually a "bad" thing. If you make it possible to do this, do you also make it possible to run hooks conditionally?
On Naming Things

UseState Int
 <> UseEffect
 <> UseRef Int
 <> Hooks.Nil

I feel like Nil is a bit misleading because of its connotations with List's Nil, which signals the end of a list. Couldn't I do this, too?
Hooks.Nil <> UseState Int <> UseEffect <> Hooks.Nil <> Hooks.Nil

Nil seems to be your way of saying "no hook was used here". In which case, why not use a different word for this, such as NoHook, instead?
foreign import data Hooked :: HookType -> HookType -> HookType
infixr 1 type Hooked as <>

Could this be something more meaningful like AppendHookTypes? <> is already strongly associated with Semigroup's append and yet you'd be calling this type Hooked. Why?
PS 0.14 and its features

First, with PolyKinds in 0.14 the HookEquals class is no longer necessary because TypeEquals will work on the HookType kind
...
Even better, if #3539 gets merged for 0.14 (which I hope happens!) then the type synonym workaround via TypeEquals won’t even be necessary:

Except 0.14 hasn't been released yet, and we don't know when it will be released (e.g. registry issues will slow down people from updating the ecosystem; role inference issues have slowed down the release; other issues may appear over time). I've been waiting for a few months since Nate's PolyKinds PR was merged in, and I can't do any work on my repo without invalidating all the syntax work I did in preparation for this release.
Would it be wiser to make this change after 0.14 gets released and you have the full language features you need to support this well rather than what you're currently doing?
Just clarifying my before-and-after understanding
I don't think your before-and-after examples above provided a full implementation for a real hook. They showed how to define a hook, but not the full example. Here's my current understanding based on what you've written thus far. Is this correct?
-- current approach: hooks appear in reverse
newtype UseX hooks = UseX (UseState Int (UseEffect hooks))

derive instance newtypeUseX :: Newtype (UseX hooks) _

{-
useUseX :: Hooked m hooks (UseX hooks) Return -}
useUseX :: Hook   m       UseX        Return
useUseX = Hooks.wrap Hooks.do
  useLifecycleEffect do
    -- do stuff here
  state /\ stateId <- useState 1
  pure returnValue

-- future approach: hooks appear in their written order
-- but lack of type synonyms in head requires
-- using HookEquals; limitation will be lifted
foreign import data UseX :: Hooks.HookType

instance newtypeUseX
  :: HookEquals (UseEffect <> UseState Int <> Nil) h => HookNewType UseX h

useUseX :: Hook m UseX Return
useUseX = Hooks.wrap Hooks.do
  useLifecycleEffect do
    -- do stuff here
  state /\ stateId <- useState 1
  pure returnValue

I clarified the title of this PR to note it as a proposal rather than a definite path forward. I won't merge this for a while so the idea can sit and be discussed. To answer your questions:
Does this still prevent running hooks conditionally?

Is it possible to subvert the guarantees of this code by using regular do notation rather than the qualified do notation you are supposed to use? For example, let's say I forget to use Hooks.do and instead use do. Does this code still compile?

Now, let's say I reorder the hooks so that the effect occurs first, does the code still compile?

The code in question was this:
foo = do -- notice, no Hooks.do here
  state /\ stateId <- useState 0
  useLifecycleEffect do
    liftEffect $ log "foo"
  --

The code won't compile either way without Hooks.do. You'll get an error like this one:
Could not match type

    UseEffect

  with type

    UseState Int

  while trying to match type Hook t2 UseEffect
    with type Hook t0 (UseState Int)

You still need Hooks.do to write several hooks in a row.
On naming things

I feel like Nil is a bit misleading because of its connotations with List's Nil, which signals the end of a list

That actually is the reason to use Nil; typically pure ends the Hook block, so it's like writing a list with Cons / Nil. It's possible to throw some pures in the middle, but not normal.

Could this be something more meaningful like AppendHookTypes? <> is already strongly associated with Semigroup's append and yet you'd be calling this type Hooked.

That's a good point. It would be better named HookAppend.
PS 0.14

Would it be wiser to make this change after 0.14 gets released and you have the full language features you need to support this well rather than what you're currently doing?

Yes, perhaps it would be best to let this sit until 0.14, and see if it can be cleaned up even more by that time. The HookEquals part isn't terrible, but it'd certainly be nicer without it.
Clarifying before-and-after

I don't think your before-and-after examples above provided a full implementation for a real hook. They showed how to define a hook, but not the full example. Here's my current understanding based on what you've written thus far. Is this correct?

You can also look at the examples folder, which has everything converted to the new style. I'd recommend taking a look there too. As far as your code example, a few notes on the new approach:
-- future approach: hooks appear in their written order but lack of type synonyms in
-- instance head requires using HookEquals; limitation will be lifted
foreign import data UseX :: Hooks.HookType

instance newtypeUseX
  :: HookEquals (UseEffect <> UseState Int <> Nil) h => HookNewType UseX h

The code you've written here doesn't use a type synonym so you don't need HookEquals. You could write this instead:
foreign import data UseX :: Hooks.HookType
instance newtypeUseX :: HookNewtype UseX (UseEffect <> UseState Int <> Nil)

However, if you do use a type synonym, then you need HookEquals:
foreign import data UseX :: Hooks.HookType
type UseX' = UseEffect <> UseState Int <> Nil
instance newtypeUseX :: HookEquals UseX' h => HookNewtype UseX h

Note, you don't have to use hook newtypes at all. You can just use synonyms everywhere if you want. Type errors can get crazy though for large blocks.

Yea, that's true for both approaches.
-- old
type UseX hooks = UseState Int (UseEffect hooks)

useX :: Hook m UseX unit
useX = ...

-- new
type UseX = UseEffect <> UseState Int <> Nil

useX :: Hook m UseX Unit
useX = ...

You still need Hooks.do to write several hooks in a row.

Great! That was my only real concern with this.

That actually is the reason to use Nil; typically pure ends the Hook block, so it's like writing a list with Cons / Nil. It's possible to throw some pures in the middle, but not normal.

Ok, but we don't use Cons here either. I get that this has a stack-like feeling to it, which is what List is, but it seems like we're unnecessarily throwing connotations at this by using Nil. If this is always used with pure, I feel like there's a more appropriate name we should use. A few ideas: NoHook or PureHook.

HookAppend

Yeah, that makes more sense.

You can also look at the examples folder, which has everything converted to the new style. I'd recommend taking a look there too.

:man_facepalming: Wow... I completely forgot about those..

foreign import data UseX :: Hooks.HookType
instance newtypeUseX :: HookNewtype UseX (UseEffect <> UseState Int <> Nil)

Looks like the advantage of this approach over the type one is that it's easier to write. However, when looking at its docs, one will need to be directed to look at its Newtype instance to understand what its corresponding hooks are...

Note, you don't have to use hook newtypes at all. You can just use synonyms everywhere if you want. Type errors can get crazy though for large blocks.

True, but who wants to deal with crazy type errors?

Yes, perhaps it would be best to let this sit until 0.14, and see if it can be cleaned up even more by that time. The HookEquals part isn't terrible, but it'd certainly be nicer without it.

Ok, so I had somewhat of an overreaction caused mainly by my fear that the code would compile using regular do notation. I think this PR's approach is better than what we currently have, and it would be more future-focused. Otherwise, we'll build an entire ecosystem based on the current approach, knowing that we'll break it all in the future anyways.
Also, we likely wouldn't want to use TypeEquals, right? Since it's not an empty dictionary (i.e. it has to and from), it wouldn't get optimized away, correct? HookEquals doesn't have any members, so it should be optimized like that, right?

If this is always used with pure, I feel like there's a more appropriate name we should use. A few ideas: NoHook or PureHook.

Or UsePure!

However, when looking at its docs, one will need to be directed to look at its Newtype instance to understand what its corresponding hooks are...

It also doesn't lend itself well to longer hooks -- you'd end up with weird indentation like this:
instance newtypeUseX
  :: HookNewtype
      UseX
      (UseEffect
        <> UseState MyReallyLongType
        <> UseRef MyReallyLongType
        <> UseRef MyReallyLongType
        <> Nil)

Or UsePure!

I thought about that, but didn't want to take up the namespace in case there was a hook sometime in the future that wanted that name.

It also doesn't lend itself well to longer hooks -- you'd end up with weird indentation like this:

Ah... yeah. But, even the current approach suffers from this in its own way.

I've renamed Hooked to HookAppend and Nil to Pure.

As a note: this can't be merged until the README and other documentation have been updated as well.

I'm ready to merge this, though I'm still a little uncertain about using Pure to represent a call to Hooks.pure. Otherwise, the documentation has been updated and there's nothing else currently blocking this.

Other potential names:

NoHook
NoOpHook
Hookless
Use_ (as in "use blank/nothing")

@milesfrain @JordanMartinez I'm merging this PR now, but not yet making a release (I still have a few other changes that I'd like to go into the next release, and I need to write a short migration guide). However, I wanted to ping you as an early heads up on halogen-hooks-extra / the Cookbook. Thanks!

Thanks for the headsup!


Respect GitHub ProjectName case

Hi, when using the remote_projects feature, the resulting project cards don't respect the case of the project name.  Instead, it appears to convert them to lowercase and then capitalise the first letter.  While it is common for project names to use all lowercase, protfolYOU doesn't follow that convention (and nor do many of our repos).
It would be preferable if the case of the project name was not changed -- and I expect that even for lowercase project names this would still work well.

Easily fixed in a fork but not easy to see how to get the best of both worlds.

Maybe we can add an option to add display names for each repository.
PRs are welcomed if you want to work on this feature.


Invariant Violation: requireNativeComponent: "RNPdfScanner" was not found in the UIManager.

did anyone solve this issue? I have tried many different methods.  I have faced the same issue

No sir

i have same issue here!
I tried some of the actions in this issue.
but nothing worked.


CarePlan doesn't support the search params activity-goal, activity-outcomereference and activity-medicaldevice

Describe the bug
When we retrieve CarePlan resource using the following query
GET [base]/CarePlan?_include=CarePlan:activity-goal:Goal
&_include=CarePlan:activity-outcomereference:Observation
&_include=CarePlan:activity-medicaldevice:DeviceUseStatement

Fhir server does not support the following search parameters

activity-goal
activity-outcomereference
activity-medicaldevice

FHIR Version?
Stu3
Data provider?
SQL Server
Expected behavior
Should be able to retrieve CarePlan with the above listed search params.
Actual behavior
Throws forbidden error.
{     "resourceType": "OperationOutcome",     "id": "08438bba-ac22-4acb-af15-f031fd976aec",     "issue": [         {             "severity": "error",             "code": "forbidden",             "diagnostics": "The search parameter 'activity-goal' is not supported for resource type 'CarePlan'."         }     ] }

@sasireha These search parameters are not standard search parameters for the CarePlan type. You can find the list here: http://hl7.org/fhir/STU3/careplan.html#search
We are working to support defining your own search parameters, and once that feature is available you could add these to your database. We are tracking that in issue #768
I'm going to close this for now, but if you have additional questions please let us know.


feat(LinearAlgebra/Matrix): swap matrices

We define and establish basic API for swap matrices. Matrix.swap R i j is the matrix that, when multiplying on the left, swaps the i-th and j-th row.
From "Formalizing the Bruhat-Tits tree"
Co-authored-by: Judith Ludwig<EMAIL_ADDRESS>

Are you aware of Equiv.toMatrix, or whatever the actual name is? Certainly, we have a way of converting Equiv.swap i j into a matrix, which I think might unfortunately make much of this PR moot.

Are you aware of Equiv.toMatrix, or whatever the actual name is? Certainly, we have a way of converting Equiv.swap i j into a matrix, which I think might unfortunately make much of this PR moot.

I was not aware of PEquiv.toMatrix and indeed PEquiv.toMatrix_swap shows that it gives the Matrix.swap defined here. This might simplify some of the proofs, but I still think we need the API here. Am I misunderstanding you?

Thanks for the suggestions @eric-wieser!


chore: Add beta suffix to the package version numbers

Description of changes:
This PR adds the beta suffix to the package version numbers. NuGet treats any version number suffix to denote a pre-release version and also reflects the same on the package homepage.
Example - https://www.nuget.org/packages/Amazon.Lambda.Annotations/0.10.0-preview

See here to read more about pre-release versioning.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I know we've gone back and forth on this since it does limit visibility, but okay with it in this case since we're doing an earlier "beta" than our usual "dev preview".


MyDSpace page should use the same components as other search results pages & should not have custom object swapping/reloading functionality

Describe the bug
The changes made in #978 to fix #721 were not ideal as they treat the MyDSpace page's search results differently from other search results listing.  These changes however were deemed necessary because the MyDSpace page doesn't use the same components as other search results...see @atarix83's comment here.  This resulted in a need to refresh individual components within an existing list of results.
Ideally, we would NOT be refreshing/swapping individual objects in a list, and instead update the list while ensuring you "follow" or remain with the updated item in that list.  One way to possibly achieve this is described by @artlowel in this comment.
Unfortunately, we were not able to easily solve this in 7.0 without a larger refactor (as described in related tickets below).  Therefore, this work may need to be completed in conjunction with those related tickets.
Related work

Discovered in review of #978 (and fixing this ticket will likely require removing or refactoring the work of the prior PR)
Relates directly to #773
Also seems related to #741 (as that involves updating/deleting objects in lists)

The work that should be done here is an huge refactoring of all components involved in the search functionality. Currently there isn't an unique root search component that deal with the search state and propagate the information needed to the children, and the result is any changes to the functionality are hard to manage (see for example the workaround that we needed to implement  https://github.com/DSpace/dspace-angular/issues/721).
Here are some important key points to define for refactoring :

there should be an unique root search component to use in different places, for example in the mydspace page or the in search page
this component should be extremely customizable so that it can be reused easily
the root component should handle search results and facets based on the search configuration and search parameter, if any
the result and facets must be passed on to the child components
the child components should only emit events to handle in the root component
the new root component should provide object swapping/reloading functionality

@tdonohue we estimate the refactoring in about 60 hours

Thanks for the analysis @atarix83 .  I've added the estimate to this ticket.


GMP: IpcContract abstract contract and IpcEntrypoint core implementation

Implement the abstract contract and common logic for all IPC-enabled contracts. This will be used as the "sdk" for contracts looking to support the execution of cross-net message. Design details here.

Merged to main in https://github.com/consensus-shipyard/ipc/pull/543.


[backport] Add warnings about preprocessing for dataset with both grayscale and RGB images.

Backport of #3093

LGTM!


'Add Client' Page Bug

Describe the bug
A clear and concise description of what the bug is by answering the following questions with as much detail as possibe

I opened the app, from the client list page I navigated to the project list page. Then I clicked on the TS App Upgrade button and entered that project overview page. Then I clicked on the home button (SetLife button). Then I clicked on 'create a client' button.
I expected the client creation page to be empty.
At the head of the page, there was the header, 'TS App Upgrade'. As if I was still in that project overview page.

This bug was consistent with every single project title that I went through while repeating this process.
Screenshots

Tested on Chrome.

@otech47  Not being able to reproduce this, unless anyone had been experimenting a similar bug this could be closed


Allow resizing of differently sized images in a single cohort

Is your feature request related to a problem? Please describe.
Currently, the resize preprocessing function works when all inputs are of a single data size, which is constrictive.
Describe the solution you'd like
This should be expanded to be able to tackle any image sizes.
Describe alternatives you've considered
N.A.
Additional context
Reported by @Karol-G

Fixed as of 91283ec4ff7ab1588e48e6c59dcafbdbd194a42a


IOS : Conflicting gestures when drawing pade loaded in a non-fullscreen modal

When loading a component containing the drawingPad inside a Modal view, the drawing gestures are conflicting with the IOS modal "panDownToDismiss".. When drawing, the whole modal moves as it think I want to close it with a scroll down.
I can do a video If it's needed.
To reproduce :
const options: ModalDialogOptions = {
    viewContainerRef: this._vcRef,
    fullscreen: false
};

this._modalService.showModal(DrawingComponent, options)
    .then((result: string) => {
        console.log(result);
    });

I tried isUseInteractionEnabled / isPassThroughParentEnabled without success. Any clue .?
Thanks

Try loading it in a custom modal that is created using Layout view


Users tab is available for non-domain admin

Steps to reproduce:

Login as a regular user
Go to Accounts section
Choose your account

Expected result: only "general" tab is presented
Actual result: two tabs ("general" and "users") are presented
Users tab must be displayed only for domain administrators
Connected feature ID: account_user_display

@ershovaelena , are you sure that we need to hide it?
Native UI allows User to list current account's users

@zolotyx yes you're right. A user can access Users tab, but actions with users are limited to him. Please take a look at ticket description, it has been changed.
@ksendart will apply changes and resend PR to you.

Test on: http://cs-ui-ci.z1.netpoint-dc.com:8080/bwsw/764-users-tab
to test: account_user_display, account_user_actionbox

http://cs-ui-ci.z1.netpoint-dc.com:8080/bwsw/764-users-tab
user1234  /1234
user123 / 123
Steps:

Login by  develop and go Accounts
Create new user for Account (user1234 was  created for user123 account )
Logout and login by new user
See the actions for user tab for Account
Expected result: for current user: change password, regenerate keys for other users in account: no actions
Actual result: all options for another user, no actions for current user

Please, see the attach.

Fixed.

Tested on http://cs-ui-ci.z1.netpoint-dc.com:8080/bwsw/764-users-tab


x-eyes can see were your mouse is even when the mouse is outside of the xeyes window.

Viz demo.
This is an information leak... I guess this needs to be solved on the xpra side of things, as an option obviously.

Please clarify. In the demo, the following happens:

xeyes is launched outside of any sandbox
evince is opened
the user enters the evince sandbox via oz shell
the user starts a second instance of xeyes inside the evince sandbox.
the user moves the mouse around to demonstrate the opposite of what you are claiming.

xeyes in the evince sandbox will connect to the xpra server that evince is already connected to, and is thus able to see and follow the mouse move events that occur within the evince window region as well as its own. If you watch the video carefully you will see precisely where the sandboxed xeyes instance stops seeing mouse events.
The point of running two instances of xeyes was to depict the "firewalling" of X events that Xpra provides vs. running X clients on the host display server.
Is this what you're talking about, or do you see something else?
I'll note that we don't necessarily consider Xpra our target state. We are keeping an eye on Wayland to see how it could work.

Aha, that was not clear to me, that evince and xeyes where within the same sandbox. My appologies.


Implement OpAssign for Complex

Design choice: Use by-value forms of OpAssign and use Clone to forward the reference arguments. That matches what the other traits do (for example Add).
Design choice: The complex += complex operation needs Add, not just AddAssign. The complex += real operation can use just AddAssign. You could just use Add for both, not sure which way is preferable.

#186's revival.

Are you opposed to now adding a NumAssign trait, as discussed before?  Then each of these should require a full T: Clone + NumAssign.

NumAssign sounds great.

NumAssign is in #283.

Can you update this to use NumAssign?

Would love to see this PR landing. Thanks for the effort!!

So I tried this PR, but seems like I can't multiply two Matrices, like:
let temp1 = DMatrix::<Complex<f64>>::identity(5usize, 5usize);
let temp2 = DMatrix::<Complex<f64>>::identity(5usize, 5usize);
println!(" Multiplication: {}", temp1 * temp2 );

Compiler error:
error[E0308]: mismatched types
  --> src/lib.rs:56:36
   |
56 |     println!("Multiplication: {:?}", temp1 * temp2);
   |                                    ^^^^^ expected struct `num::Complex`, found struct `na::Matrix`
   |
   = note: expected type `num::Complex<f64>`
              found type `na::Matrix<num::Complex<f64>, na::Dynamic, na::Dynamic, na::MatrixVec<num::Complex<f64>, na::Dynamic, na::Dynamic>>`

Rebased and applied NumAssign.  Thanks!
bors r+

Thank you -- sorry I was absent.


Count the words and letters in text

Count the number of words or letters or both in the text that the user provides and show it on the Homepage below the textarea.

Can I work on this issue??

Can I work on this issue??

Yeah sure.

Can I work on this issue??

I have assigned you this task. You can do it in 4 days. Is it ok for you?

Yes sir

Yes sir

Bro is fine ❤


Helm client automatically detect TLS configuration on the Tiller server and apply the certificates whenever it is required

Feature request:
Helm client automatically detect whether the Tiller server is TLS configured or not. If it is TLS configured, then it will automatically apply the certificates whenever user execute a Helm command that required to access the Tiller server.
Reason for this request:
For any production grade K8s would have RBAC enable therefore Tiller will require to have TLS configured. User will setup the certificates and save them in the $HELM_HOME directory. Whenever a Helm command that require to access the Tiller server the user MUST provide the --tls option. If not the Helm command will failed. If the Helm command doesn't need to access the Tiller server, and the user add in --tls option, the command will failed too.
If Tiller is TLS configured then every time a Helm command that need to access the Tiller server need to provide the certificates. It is not an option on the user end. May the Helm client automatically apply the certificates for the user instead of required the user to enter the --tls option every time?

A belated thanks for opening this feature request, @winnietsang. As Helm 3 no longer uses Tiller, hopefully this isn't necessary anymore. If you find that you have new needs with Helm 3, please open a new issue - thanks!


Sleigh: Ghidra class loader not in use

Describe the bug
Attempting to run sleigh.bat results in a ClassNotFoundException
To Reproduce
Steps to reproduce the behavior:

Open command prompt with GHIDRA_INSTALL_DIR/support in the PATH.
Run sleigh.bat
See error

Expected behavior
Sleigh compiler should run
Screenshots

Environment (please complete the following information):

Ghidra Version: 10.3_DEV 7971cc303d187cd4a8ed40c7f6035b7c48565a43 I think

Looks like all the .bat scripts have this issue.  Until i can push up to GitHub, the manual fix is:
In launch.bat, line 132.  At the end of the for line, replace %VMARG_LIST% with !VMARG_LIST!.


VSCode Emmet: specified the attribute as [(ngModel)], but in the output, it came as [(ngModel}] with a closing brace instead of a parenthesis

Does this issue occur when all extensions are disabled?: No, but I can't find Emmet in the Help > Report Issue > Extensions because Emmet, I believe is included with VSCode itself.

VS Code Version: Version: 1.74.3 (Universal)
OS Version: MacOS Big Sur

Steps to Reproduce:

Create a snippets.json with the following on your computer:
{  "html": {    "snippets": {      "input": "div.input>label.form-label+input[[(ngModel)] type='text' name id title]/br"    }  } }
Open the VS Code settings (Code → Preferences → Settings) and search for “Emmet Extensions Path”
Click “Add Item,” enter the folder path where you’ve saved the snippets.json file, and press “OK”
In VSCode editor, use Emmet to auto complete an input tag
The output you get will be:
`

<input [(ngModel}]="" type="text" name="" id="" title="">

`
So, the bug is that we specified the attribute as [(ngModel)], but in the output, it came as [(ngModel}] with a closing brace instead of a parenthesis.

Related repro steps:

In an HTML file, type div[(hello)] and try to expand it.
:bug: Nothing happens.

Even div[[[[hello]]]] works.

Filed an upstream issue: https://github.com/emmetio/emmet/issues/721


11-alpine on default run locale is missing

db_1  | performing post-bootstrap initialization ... sh: locale: not found
db_1  | 2018-09-21 08:09:09.513 UTC [28] WARNING:  no usable system locales were found
db_1  | ok
db_1  | syncing data to disk ...

FROM postgres:11-alpine
COPY ./sql/init.ql /docker-entrypoint-initdb.d/init.sql
RUN docker-entrypoint.sh

FROM postgres:11-alpine
COPY --from=0 /var/lib/postgresql/data /var/lib/postgresql/data

Alpine is based on musl which doesn't have locales.

Its possible to add locales now as per this example.

This is my Postgres-Alpine locale:

This is my Postgres db settings:

Why my monetary values aren't in pt_BR format?

The amounts should be as: R$ 100,00
What remains to be done for this to work?


HOTFIX: fix ProcessorStateManager to use correct ktable partitions

@guozhangwang

fix ProcessorStateManager to use correct ktable partitions
more ktable tests

LGTM overall.

@ymatsuda Could you rebase this PR and add the test case for KTable stores to make sure the topic name is correctly constructed by the restore consumer?

The recent changes are pulled in.

Merged to trunk.


Joining with multiple cursors on contiguous lines doesn't work as expected

Issue Type: Bug
Select several rows of text, convert selection into multiple lines (ctrl+shift-L on my machine).
Join the lines (ctrl+J on my machine).
I expect the lines to be collapsed into a single line, with the mutltipe cursors positioned throughout the lline at the end of what was formerly the end of each line.
What happens in VS Code is you end up with half the lines joining, and some bits becoming selected and some not.  I can see no rhyme or reason to the selection.  If you press ctrl+j again to try to further join the lines, you get an error message.
This works as expected in Sublime Text; try it there if you have that handy.
VS Code version: Code 1.29.1 (bc24f98b5f70467bc689abf41cc5550ca637088e, 2018-11-15T19:13:36.375Z)
OS version: Windows_NT x64 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz (4 x 2496)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
7.83GB (0.88GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (18)

Extension
Author (truncated)
Version

increment-selection
alb
0.0.3

Bookmarks
ale
10.0.0

quote-flipper
all
0.0.1

bracket-pair-colorizer
Coe
1.0.61

xml
Dot
2.3.2

vscode-open-in-github
fab
1.1.3

code-runner
for
0.9.5

rainbow-csv
mec
0.8.0

python
ms-
2018.11.0

cpptools
ms-
0.20.1

sublime-keybindings
ms-
4.0.0

vsliveshare
ms-
0.3.1013

code-settings-sync
Sha
3.2.2

whiteviz
spy
0.6.0

vscode-arduino
vsc
0.2.23

debug
web
0.22.0

better-align
wwm
1.1.6

cursor-align
yo1
1.0.4

I'm facing this as well, and it is pretty annoying that half of the lines get joined with some bits selected and as you said, trying to press Ctrl + J again results in error: Overlapping ranges are not allowed.
The expected behaviour here is just to join all the lines into one (atleast that is what Sublime Text does.)

I've tested the join lines implementation in Zarel/vscode-sublime-commands and that seem to work like Sublime.
    {
        "key": "ctrl+j",
        "command": "extension.joinLines",
        "when": "editorFocus"
    }

Hi, I don’t know if this is the right issue to discuss this but I notice that multicursor works but it only merges in two lines at a time.

@alexandrudima  Is Join Lines suppose to join two lines at a time?
I would like to work on having Join Lines merge in more than two lines at a time if possible.

Join Lines is implemented here -- https://github.com/Microsoft/vscode/blame/a721a6c23607fd62b441189b23e73e04a8e65b3e/src/vs/editor/contrib/linesOperations/linesOperations.ts#L659 and @rebornix can give advice if necessary.


How did you do rigid alignment?

I have noticed in the paper that after rigid alignment the MPJPE was reduced. Is there any rigid alignment in your code?

Yes, use the the --procrustes flag to evaluate with rigid alignment.


[Storage] (uploadBrowserDataToBlockBlob should abort when blob < max) - test fails - race condition

STORAGE-BLOB

Test from Highlevel test suite failed more than once in Edge browser.

Some sort of race condition, consistently succeeded in the Edge browser when tried to repro.
The same test never failed in the chrome, firefox and IE browsers.
Strangely enough, the console.log for the error caught in the catch block has the "abort" string.

Still, the assertion fails.

A similar issue in pipeline:
IntegrationTest Browser_Linux_Node10
FAILED TESTS:
  Highlevel
    ✖ uploadBrowserDataToBlockBlob should success when blob >= BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES
      HeadlessChrome 80.0.3987 (Linux 0.0.0)
    AbortError: The operation was aborted.
        at new AbortError (dist-test/index.browser.js:10:22891)
        at rejectOnTerminalEvent (dist-test/index.browser.js:10:132017)
        at blobBody (dist-test/index.browser.js:10:129908)
        at new Promise (<anonymous>)
        at XMLHttpRequest.<anonymous> (dist-test/index.browser.js:10:129689)

https://dev.azure.com/azure-sdk/internal/_build/results?buildId=271045&view=logs&j=8789e0f2-e003-5d27-34e7-7aecb36f1f42&t=3c3aa637-23e6-5f2d-050c-210a13d3d4f6

Closing this as these failures are over a year old. We now have issues being logged for nightly failures and they will cover the above if these failures are still occuring


Problems that occured when installing on Gentoo

Hello, I found out your library and wanted to try it on my Gentoo. I wrote an ebuild in order to install it properly with portage and I found out some issues.
First of all, cmake tries to install the final library to path /usr/lib ignoring the fact that in a 64bit system, 64bit libraries end up in /usr/lib64/, causing portage to fail during install phase because of this violation. This can easily been fixed by including GNUInstallDirs module like here.
While this patch uses the correct paths for installing libs, headers, data etc, portage gave me this warning:
 * QA Notice: Package triggers severe warnings which indicate that it
 *            may exhibit random runtime failures.
 * /mnt/Volume_3/Gentoo/temp/portage/sci-libs/mfem-9999/work/mfem-9999/fem/intrules.cpp:1132:11: warning: function may return address of local variable [-Wreturn-local-addr]

 * Please do not file a Gentoo bug and instead report the above QA
 * issues directly to the upstream developers of this software.
 * Homepage: https://mfem.org/
strip: x86_64-pc-linux-gnu-strip --strip-unneeded -N __gentoo_check_ldflags__ -R .comment -R .GCC.command.line -R .note.gnu.gold-version
   /usr/lib64/libmfem.so.4.2.1

I am not that experienced in C++ but it seems like something GCC reported for a reason.
Last, when installing I noticed this:
--- /usr/lib64/
>>> /usr/lib64/libmfem.so.4.2.1
--- /usr/lib64/cmake/
>>> /usr/lib64/cmake/mfem/
>>> /usr/lib64/cmake/mfem/MFEMTargets-gentoo.cmake
>>> /usr/lib64/cmake/mfem/MFEMTargets.cmake
>>> /usr/lib64/cmake/mfem/MFEMConfigVersion.cmake
>>> /usr/lib64/cmake/mfem/MFEMConfig.cmake
>>> /usr/lib64/libmfem.so -> libmfem.so.4.2.1
>>> sci-libs/mfem-9999 merged.
>>> Regenerating /etc/ld.so.cache...

The only thing that is installed inside /usr/lib64 is libmfem.so.4.2.1. Every other package I 've seen so far uses a symlink to the library like:
$  sudo equery f qtcore
....
/usr/lib64/libQt5Core.so -> libQt5Core.so.5.15.2
/usr/lib64/libQt5Core.so.5 -> libQt5Core.so.5.15.2
/usr/lib64/libQt5Core.so.5.15 -> libQt5Core.so.5.15.2
/usr/lib64/libQt5Core.so.5.15.2

I guess the last one is something that can be fixed from CMakeLists.txt. I can search this one if you want me to.
Thank you for your time.

Update: I updated the patch and it now solves both the installation on lib64 and the SONAME symlink:
sudo equery f sci-libs/mfem
...
/usr/lib64/libmfem.so -> libmfem.so.4
/usr/lib64/libmfem.so.4 -> libmfem.so.4.2.1
/usr/lib64/libmfem.so.4.2.1
...

I will create a PR for this.

Hello,
the GCC warning is interesting and we're going to investigate (or maybe this is already known). Can you state which GCC version you are using?
From my understanding cmake should create the soname symlinks by default and only neglect them when explicitly disabled. This may be a bug in mfem's cmake configuration.

I am using gcc 10.2.0-r3
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/10.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /mnt/Volume_3/Gentoo/temp/portage/sys-devel/gcc-10.2.0-r3/work/gcc-10.2.0/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/10.2.0 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/10.2.0 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/10.2.0/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/10.2.0/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/10.2.0/python --enable-languages=c,c++,go,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo Hardened 10.2.0-r3 p4' --enable-esp --enable-libstdcxx-time --with-build-config=bootstrap-lto --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point --enable-targets=all --enable-libgomp --disable-libssp --disable-libada --disable-systemtap --enable-vtable-verify --with-zstd --enable-lto --with-isl --disable-isl-version-check --enable-default-pie --enable-default-ssp
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.0 (Gentoo Hardened 10.2.0-r3 p4)

According to this SO answer, one has to explicity state the SONAME number like this :
set_target_properties(mylib PROPERTIES SOVERSION 1)

You can find my change in this PR and please let me know if I can do something better. I want this library to be available for more Gentoo users :)

Hi @Petross404,
The CMake file allows you to set the library path via INSTALL_LIB_DIR, e.g. replace the default lib with lib64. Did you try that? I know that one can use GNUInstallDirs but I personally think that using lib as the default in all cases is actually more convenient for most MFEM users who do not typically install in /usr. In any case, using INSTALL_LIB_DIR should allow you the replace lib with lib64 when needed.
The warning from intrules.cpp: I've seen it before and it is a false warning (the function never returns the address of the local variable), so it can be ignored.
The link libmfem.so -> libmfem.so.4.2.1 is intentionally done like that since there is no guarantee that different versions of MFEM with the same major number will be fully compatible. We always try to keep things backward compatible but sometimes there are changes that require applications to be re-compiled against the new version.

The CMake file allows you to set the library path via INSTALL_LIB_DIR, e.g. replace the default lib with lib64. Did you try that? I know that one can use GNUInstallDirs but I personally think that using lib as the default in all cases is actually more convenient for most MFEM users who do not typically install in /usr. In any case, using INSTALL_LIB_DIR should allow you the replace lib with lib64 when needed.

INSTALL_LIB_DIR should point either to lib or lib64 based on the OS architecture. This is automatically resolved from CMake when GNUInstallDirs and it's variables are used.
Aren't mfem users installing in /usr? Don't their distibutions (correctly) install mfem to /usr?  If so one more reason for the build system to obey the FHS so mfem can be packaged by even more distros and more people learn about it.

The link libmfem.so -> libmfem.so.4.2.1 is intentionally done like that since there is no guarantee that different versions of MFEM with the same major number will be fully compatible. We always try to keep things backward compatible but sometimes there are changes that require applications to be re-compiled against the new version.
I would argue that breaking the compatibility when using the same major number isn't the greatest of the ideas, but again it's your choice. Packagers should be informed about this and handle the situation accordingly based on  the tools a package manager provides.

In the end of the day I (and every user that needs to create a package for their distro) will patch heavily the build system and continue like that. Thank you for your time.

@Petross404, is there an issue to package the library files (libmfem.so.4.2.1 and the link libmfem.so) as they are installed now by the CMake build system, as it is in the MFEM repo? I realize this is not standard but is it a problem to package it that way?
One clarification regarding the MFEM version numbers: when the last number in the version (i.e. the patch number) is odd (e.g. the 1 in 4.2.1) that signifies a "development" version which remains unmodified as commits are added to the git repository. The actual releases will end with an even number and those correspond to a fixed tagged commit in the repo. In particular, the latest release of MFEM at the moment is 4.2 (or 4.2.0) and 4.2.1 is the current development version.


webview: Fix small scroll issues with message list

Fixes #3301
When showing/hiding UnreadNotice the message list scroll position
is moved by the height of that panel.
This (and other similar problems) can be fixed by a sophisticated
algorithm that 'anchors' the scroll position of the webview to the
bottom instead of the default to top. That turned out to be a much
more tricky solution, but a much simpler one that is a subset of
it would do the trick for now.
We add an event handler on the webview's 'resize' event. This will
be called in these situations:

the keyboard is shown/hidden
the phone orientation is changed
the compose box shows/hides the topic input
the UnreadNotice is shown/hidden

This code is an effective fix for (4)
I was a bit concerned that (3) might be negatively affected by
the fix but after testing it few times I think the behavior is an
improvement.
Not only that but we should look for even more cases where we can
scroll to the very bottom of the list (and maybe expand the 100px
distance that triggers it)

This thread seems to have gone stale. The issue is still one I'd love to see a fix for; closing to focus discussion back on the issue thread, #3301, and to open things up for a future PR.


Python: Remove view classes

Either remove View from name or remove altogether. These view classes are a holdover from the .NET port

This is a duplicate of #4628. Closing this work item.


Respect creator principal when creating project or cluster

Issue:

https://github.com/rancher/rancher/issues/46828
Problem

Solution

Testing

Engineering Testing
Manual Testing

Automated Testing

Test types added/modified:

Unit

QA Testing Considerations

Regressions Considerations

N/A
Existing / newly added automated tests that provide evidence there are no regressions:
N/A

Are we looking to hold this until the dashboard side is ready? It seems like it would be fine to go in anytime even without dashboard support.
IMHO this can be released ahead of dashboard changes.

Given that this can help resolve an often misunderstood bit of functionality, are there any docs enhancements for this?
If the docs currently cover creatorId annotation, then we can update it to explain creator-principal-name.

Related dashboard work: https://github.com/rancher/dashboard/issues/11852


Weird Collisions

trying to make a test level, collisions are not where they should be. Maybe I'm missing something as I'm new to Godot. any help appreciated.

posted in the wrong place

Try loading res://Tileset/Worlds/WorldsTileMap.tres instead of making your own tileset.
Sure, the tiles will be green instead of blue, but this seems temporary anyway for your purposes, and seemingly you can just swap the images around safely.


Authentication docs are incorrect with respect to default policy on v2 APIs

As we migrate from v1 to v2 APIs we must consider the current authentication in our docs
https://docs.bacalhau.org/setting-up/running-node/auth#by-default

With no specific authentication configuration supplied, Bacalhau runs in "anonymous mode" – which allows unidentified users limited control over the system. "Anonymous mode" is only appropriate for testing or evaluation setups

This is false for v2 and true for v1. In v2 there are not limits and anyone can submit a job to a cluster if they know its IP address. So in general this is false since all deployments support the v1 and v2 APIs

Users identified by a self-generated private key to submit any job and cancel their own jobs

This is false for v2 and true for v1. In v2 there are no signatures - identity of the job submitter are not checked and the submit job payload does not contain a signature. So in general this is false since all deployments support the v1 and v2 APIs`

Users not identified by any key to access other read-only endpoints, such as to read job lists, describe jobs, and query node or agent information.

This is false, all users have full permissions against a cluster by default.
To summarize, by default, a bacalhau cluster is wide open, anyone can do anything and nothing about their identity is checked.

@frrist @MichaelHoepler are the docs still outdated?


[c4core, ryml] Add windows arm/arm64 support

Describe the pull request

What does your PR fix?
Add arm/arm64 support for c4core and rapidyaml.

Which triplets are supported/not supported? Have you updated the CI baseline?
windows x86, x64, arm, arm64. Yes

Does your PR follow the maintainer guide?
I think yes

If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?
Yes

If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

Hi @ysc3839
Thanks for your PR.
This PR also includes the version update. Related PR #18230. I have a question why do you not use the latest commit?

Thanks for your clarification. @ysc3839
The failures on CI pipeline are like this, can you look into this?
D:\buildtrees\ryml\src\7de9381706-233508cf9e.clean\src\c4/yml/tree.hpp(675): error C2039: 'contains': is not a member of 'c4::basic_substring<char>'
D:\installed\x86-windows\include\c4/substr_fwd.hpp(11): note: see declaration of 'c4::basic_substring<char>'
D:\buildtrees\ryml\src\7de9381706-233508cf9e.clean\src\c4/yml/tree.hpp(777): error C2039: 'contains': is not a member of 'c4::basic_substring<char>'
D:\installed\x86-windows\include\c4/substr_fwd.hpp(11): note: see declaration of 'c4::basic_substring<char>'
D:\buildtrees\ryml\src\7de9381706-233508cf9e.clean\src\c4/yml/tree.hpp(778): error C2039: 'contains': is not a member of 'c4::basic_substring<char>'
D:\installed\x86-windows\include\c4/substr_fwd.hpp(11): note: see declaration of 'c4::basic_substring<char>'
D:\buildtrees\ryml\src\7de9381706-233508cf9e.clean\src\c4/yml/tree.hpp(782): error C2039: 'contains': is not a member of 'c4::basic_substring<char>'

@NancyLi1013 rapidyaml needs update to latest version. I created another PR #18317.

@NancyLi1013 rapidyaml needs update to latest version. I created another PR #18317.

I noticed that you commented #18317 also requires this PR here https://github.com/microsoft/vcpkg/pull/18317#issue-663804719.
In this case, I suggest to update these two ports in one PR. Otherwise, CI test will not pass.

@NancyLi1013 Fixed, please review.

Please run ./vcpkg x-add-version --overwrite-version c4core ryml to update versions.

@NancyLi1013 Fixed, please review.

/azp run

Could you please merge master to resolve the conflicts? @ysc3839

@NancyLi1013 Updated, please review.

@NancyLi1013 Updated, please review.

Please run vcpkg format-manifest ./ports/c4core/vcpkg.json and vcpkg format-manifest ./ports/ryml/vcpkg.json to format the manifests.

@NancyLi1013 Updated.

Fixed version error.

Missing versions/baselin.json file. You can runvpkg x-add-version --overwrite-version --allto update.

@NancyLi1013 After running vcpkg x-add-version --overwrite-version --all, the versions/baseline.json keep unchanged.

@NancyLi1013 After running vcpkg x-add-version --overwrite-version --all, the versions/baseline.json keep unchanged.

Since you didn't update the version in CONTROL files. I have submitted the review suggestions, please update version first, then run the command. Sorry, I ignored this point before.

@NancyLi1013 Fixed.

LGTM now, thanks for your PR @ysc3839.

@NancyLi1013 rapidyaml has merged my PR for ARM build issue. I will update this PR to remove the patches.

@NancyLi1013 rapidyaml has merged my PR for ARM build issue. I will update this PR to remove the patches.

Thanks for your information. That's great.

@NancyLi1013 Updated and rebased, please review.

LGTM, thanks again for your work. @ysc3839

@NancyLi1013 Is there any updates of this PR?

@ras0219-msft , @vicroms Could you please help merge this PR?
Thanks.

Sorry for the delay, thanks for the help!


font-size, vw units ignored

If you set the font-size in your document in vw units, then phantomJS ignores them.
Viewport is set to { width: 1280, height: 720 };
I've tried this on win7 and linux, using 1.9.7
I tried to add 	 to the HTML file, but no luck.

I'm trying to render pages to PDF with PhantomJS 2.0, and font-size appears to be ignored also, even when specified in pts. Does any font-size specification work?


Add AccessConditions Models to Azure Core

To match what the other languages are doing we need to add a few model classes in Azure Core to handle HTTP Access Conditions:
MatchConditions

IfMatch: String
IfNoneMatch: String

RequestConditions extends MatchConditions

IfModifiedSince: OffsetDateTime
IfUnmodifiedSince: OffsetDateTime

Fixed in #5941


Adding support for Tuple<T1, T2, ...> as option/value parsing target

 Issue by gsscoder
Sunday Jul 05, 2015 at 15:59 GMT
Originally opened as https://github.com/gsscoder/commandline/issues/182

I want to be able to parse this:
$ app --webserver localhost 8080

to:
class Options {
  [Option] public Tuple<string, int> WebServer { get; set; }
}

Opinions? cc/ @mizipzor @nemec @gimmemoore

 Comment by Mizipzor
Monday Jul 06, 2015 at 11:34 GMT

This seems to go against the standard. To have it accepted you would have to quote the
"localhost 8080" part since it contains a space. But it just looks weird. Although in this specific case, an uri, the solution is obvious since it has an accepted syntax localhost:8080. Off the bat, I cannot come up with a case where the above makes sense.

 Comment by gsscoder
Monday Jul 06, 2015 at 11:59 GMT

@mizipzor, I'm not agree, why one have to quote input?
In this case just think a tuple like a heterogeneous typed sequence. As long as T1, T2, Tx... types of Tuple<...> match input, the parser will collect values, convert them and create appropriate Tuple instance.
I think it's good also for forcing an order without effort. E.g. 8080 before localhost will generate a conversion error.
Probably will complicate the parsing kernel, but I thik it could be useful for some scenarios.
Obviously it's a feature that must be used correctly like in my sample.
E.g.: if I want capture exactly 10 int I'll use an [Option(Min=10, Max=10)] mapped to IEnumerable<int> not a Tuple<int, int, int...> (also if it works the same); but this is a design problem of the developer and doesn't concern us (I think).

 Comment by nemec
Monday Jul 06, 2015 at 18:34 GMT

The only benefit I can see here is the ability to specify multiple tuple options in a single argument string, otherwise there doesn't seem to be much benefit over using a Verb with ValueAttributes: $ app webserver localhost 8080
Additionally, this syntax maps a single OptionAttribute to multiple parsed values (T1...TN) which makes configuration of each inner option more difficult. For example, it would be nice if your sample webserver defaulted to 8080 if a port wasn't provided but I'm not sure how that could be specified.
Maybe one compromise could be to let the OptionAttribute be tagged on custom classes (like Verbs) but that contain only ValueAttributes (or create a new MultiValueOptionAttribute), which could allow you to re-use the parsing logic that already exists for Values.
Another option, slightly more verbose, could be to add the ability to define "option groups" that require all options in the group to be defined or none at all:
$ app --server localhost --port 8080  # allowed
$ app --server localhost              # fail, missing --port
$ app --port 8080                     # fail, missing --server

Personally, I agree with @mizipzor that keeping consistency with getopt is a very good thing (especially now that C# is becoming more cross-platform) and for this particular example adding a colon separator (localhost:8080) is the more accepted option.

 Comment by Mizipzor
Monday Jul 06, 2015 at 17:17 GMT

My only argument is that its simply not how the original getopt works, to have spaces you either quote them or escape them. As long as that is still required I have nothing against adding support for tuples. People know getopt and having the library behave like getopt is a feature (and a good one at that). If the library works "like getopt with a few tweaks", it is not as attractive.

 Comment by Mizipzor
Tuesday Jul 07, 2015 at 15:30 GMT

No more comments, I've said my part and still hold the same opinion.

 Comment by gsscoder
Monday Jul 06, 2015 at 19:19 GMT

@nemec, thanks for comments!
Personally I see a Tuple<T1, T2, ...> as compound data type. I don't see it as something against getopt()...
A true thing instead is that two Value attribute can mimic this behaviour in some way.
Any other comment?


write parquet

Can I use secor to read data from kafka and save it in s3 in parquet format  ? How ?
If the answer is Yes , Can the data that I am reading from kafka be in json format  ?

It's possible, but you need to write either thrift->parquet or
protobuf->parquet converter.  I think someone already contributed
protobuf->parquet.
From json->parquet, you probably would need to use the json->avro->parquet
through the kite sdk,
http://kitesdk.org/docs/1.1.0/Parquet-vs-Avro-Format.html
We have the code to do those in our nextgen ingestion framework: merced,
but we haven't got the time to open source it.
On Sun, Oct 9, 2016 at 7:28 AM, Dori Waldman<EMAIL_ADDRESS>wrote:

Can I use secor to read data from kafka and save it in s3 in parquet
format ? How ?
If the answer is Yes , Can the data that I am reading from kafka be in
json format ?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pinterest/secor/issues/263, or mute the thread
https://github.com/notifications/unsubscribe-auth/AHCX_-1BfMtAM-o_Zysbu0fmc-OMl2gLks5qyPoYgaJpZM4KSA3i
.

Hi Henry,
Can you let me know if the json->parquet has been solved for? We're encountering a similar use case. Can we do something to open-source atleast the parser if it has already been written as a part of merced like you mentioned above?
Thanks!

Yes, we have implemented the json->avro->parquet converter in merced, and
it was based on kite sdk.  But I don't think it would be easy to open
source that part of the code.
On Tue, Jun 27, 2017 at 1:21 AM, Arvind Kalyan<EMAIL_ADDRESS>wrote:

Hi Henry,
Can you let me know if the json->parquet has been solved for? We're
encountering a similar use case. Can we do something to open-source atleast
the parser if it has already been written as a part of merced like you
mentioned above?
Thanks!
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/pinterest/secor/issues/263#issuecomment-311288148,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHCX_x025w-TXXlpKQFY3RPxG4DuZ0f_ks5sILuPgaJpZM4KSA3i
.

Hi
I am having problems to add the Kite logic to secor
I founded this code [https://stackoverflow.com/questions/39858856/json-object-to-parquet-format-using-java-without-converting-to-avrowithout-usin] -
Is it possible to put a snippet how to do it ? some basic example could help

Did that JsonUtils.inferSchema thing work for you?  I did have an avro
schema for my json.
On Mon, Jul 24, 2017 at 12:38 AM, Dori Waldman<EMAIL_ADDRESS>wrote:

Hi
I am having problems to add the Kite logic to secor
I founded this code [https://stackoverflow.com/questions/39858856/json-
object-to-parquet-format-using-java-without-converting-to-avrowithout-usin]
Is it possible to put a snippet how to do it ? some basic example could
help
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/pinterest/secor/issues/263#issuecomment-317343118,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHCX_wzBGMJ7hT2VYyPCPfoWewSHUViJks5sREn7gaJpZM4KSA3i
.

Henry,
we have the same requirement to read kafka message in json format to save as parquet on S3, any good example on how to do it? i.e. a "hello world" example?

Henry,
we have the same requirement to read kafka message in json format to save as parquet on S3, any good example on how to do it? i.e. a "hello world" example to read kafka message in json format to save as parquet on S3?

Did you find any good example of above requirement or if you have written please share the example. we are also stuck with writing to s3 from kafka via Secor.


Overlapping Zones

Summary of the new feature/enhancement
I run an ultra-wide monitor and have previously used another utility to allow me to create custom Aero Snap-like functionality.  That utility has what I can best describe as overlapping zones, such that I'd have the ability to do what FancyZones would describe as 2 columns (each 50% wide) as well as a 3 column Priority view (25%, 50%, 25%) simultaneously.  The separation between where I drug and the size of the zone allowed this functionality to exist.  To accomplish this in FancyZones I'm finding myself regularly switching my layout between 2 and 3 columns which I found tedious.  I attempted to create a custom layout, but with the overlapping zones there was no way to land in the zones that were behind another.
Proposed technical implementation details (optional)
Consider separation of the drag target and the zone definition to allow for zones to be defined as overlapping one another so that more complex layouts can be created.

Have you tried using Virtual Desktops in combination with FancyZones? I'd be curious if that gives you the functionality you want.
I use Virtual Desktops for different "projects", with each desktop having a specific layout.

I'd also like to push for an implementation that allows windows to be resized when dragged onto overlapping zones. An idea to make this work would be to tap the shift button again (whilst dragging) to choose the next (overlapped) zone for a window.

@jeffbog  For me, virtual desktops would help, but not be the ideal solution.  In some workflows, I'll open a new window which might need more or less prominence and require a different layout.  It would be frustrating to have to move window between zones. Although, if each virtual desktop remembered the window's position, it would somewhat alleviate the issue.

@jeffbog, I have not tried using Virtual Desktops.  It might do what I want, but would be pretty disruptive to my general workflow I think. I don't envision my workflow as being different "projects", just that certain apps/use cases require different constructs.
For example, while in a "focus" mode such as researching something, managing email or doing development, I make use of the 25/50/25 splits.  But when I'm doing something where I need to do some comparisons or integration, such as bringing research/notes into a document, I'll use the 50/50 splits.
The way I have configured another application was to divide my drag zone (the top edge) into sixths such that each sixth would result in the window occupying the following:

Left most 25%
Left most 50%
Middle 50%
Middle 50%
Right most 50%
Left most 25%

Hopefully that helps to better explain/visualize the use case.

G'day.  I found this while starting to propose my personal wishlist version of the same, so rather than a duplicate, my preference: I'd like to be able to replicate the windock configuration I have, but with some of the additional features that Fancy Zones offer.
The single change would be to separate the "trigger" and "placement" for zones independently.  In my configuration I split the monitor into three overlapping vertical columns at 0-50 percent, 33-66 percent, and 50-100 percent.  Each then has three vertical layouts for the window: full height, or half-height on the top or bottom.
To be able to drag windows into position I have the "top 10 percent" of the screen trigger "top half" height, and "bottom 50 percent" trigger "bottom half", with the 10-50 percent vertically being full height.
This works really well, and lets me place things nicely for whatever I'm currently focused on.  Doing the same in "fancy zones" works perfectly except for when using the mouse; I can keyboard cycle through overlapped zones fine.

We have two issues that will help solving this problem:

one if to implement a more effecting way of activating overlapping zones https://github.com/microsoft/PowerToys/issues/1167
the other is to enable snapping to two adjacent zones https://github.com/microsoft/PowerToys/issues/335

I'm closing this one in favor of the other two.
Please, add you valuable feedback in those issues.
Thank you.


Update default dataset citation format on dataset page

http://dev.gbif.org/issues/browse/POR-2590

Awaits clearance on the citation format - currently we show the user provided citation. I guess this is an issue for @ahahn-gbif for now. Once a decision have been made we can start implementing it

@kbraak as I understood you the other day it has been decided that we use the GBIF generated citation. Is that correct?
If so the decision remains where to generate it. I would think that it should be a part of the API response.

blocked by https://github.com/gbif/registry/issues/4

is solved in the api on dev and will be solved on the portal once released


Increasing session timeout to stop Sentry KeyErrors

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Please upload report for BASE (main@68084ac). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #247   +/-   ##
=======================================
  Coverage        ?   75.79%
=======================================
  Files           ?       77
  Lines           ?     2252
  Branches        ?        0
=======================================
  Hits            ?     1707
  Misses          ?      545
  Partials        ?        0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


action version 1.1.x breaks chmod and chown operations in scripts, they fail silently

https://github.com/secureblue/secureblue/actions/runs/8058224104

confirmed repro on 1.1.1

Is this related to #97 ?

Seems like you created three related issues from the same problem:
#98, #97, and #100.
Is this a problem you can describe more clearly and supply minimal reproduction steps to the maintainers? Do you know what should be done about this or if there are possible alternate causes for this problem?

@xynydev They are related but not the same, I figured it would be valuable to have tickets tracking each.

Is this a problem you can describe more clearly and supply minimal reproduction steps to the maintainers?

I provided much more context on discord, but I can copy it here if needed. In short, if you use chmod or chown in a script in bluebuild, the changes persist into the image in 1.0.2, but not in 1.1.x

@qoijjj if you could paste a link to your failing script here, I'll be sure to add it to our integration tests

doing something like this:
chown root:root /usr/bin/bwrap
chmod u+s /usr/bin/bwrap

and then afterwards, the script would need to check that the right bits are set on that file

#104 Added an integration test for one of secureblue's builds


/play error occurred

Hi,
issued the /play command and the browser on the target opens a new tab and it seems like a video is about to play but you only see the play button and nothing else happens.

/play without arguments caused the program to try and start the video except there was no video ID so even though YouTube processes that request, it shows nothing as the videoid itself is missing.
/play now responds with command format when no argument is given. Thanks for poiting it out.


[WFLY-4295] Fix -ds.xml deprecation logging

I found that the deprecation logging message was getting logged whether or not a deployment contains a -ds.xml. I have moved it to where I believe it would get triggered if it actually does.

Linux with security manager Build 818 is now running using a merge of 6e9e3b523d8645370ad84293b4a5174091d19f55

Linux Build 5833 is now running using a merge of 6e9e3b523d8645370ad84293b4a5174091d19f55

Windows Build 942 is now running using a merge of 6e9e3b523d8645370ad84293b4a5174091d19f55

Linux with security manager Build 818 outcome was SUCCESS using a merge of 6e9e3b523d8645370ad84293b4a5174091d19f55
Summary: Tests passed: 839, ignored: 316 Build time: 0:05:10

Windows Build 942 outcome was FAILURE using a merge of 6e9e3b523d8645370ad84293b4a5174091d19f55
Summary: Tests failed: 1, passed: 2920, ignored: 312 Build time: 0:47:34
Build problems:
Failed tests detected
Failed tests
org.jboss.as.test.integration.jpa.cfgfile.CfgFileTestCase: org.jboss.arquillian.container.spi.client.container.DeploymentException: Cannot deploy: jpa_cfgfile.jar
	at org.jboss.as.arquillian.container.ArchiveDeployer.deployInternal(ArchiveDeployer.java:83)
	at org.jboss.as.arquillian.container.ArchiveDeployer.deployInternal(ArchiveDeployer.java:64)

Linux Build 5833 outcome was FAILURE using a merge of 6e9e3b523d8645370ad84293b4a5174091d19f55
Summary: Tests failed: 1, passed: 2920, ignored: 312 Build time: 0:48:34
Build problems:
Failed tests detected
Failed tests
org.jboss.as.test.integration.jpa.cfgfile.CfgFileTestCase: org.jboss.arquillian.container.spi.client.container.DeploymentException: Cannot deploy: jpa_cfgfile.jar
	at org.jboss.as.arquillian.container.ArchiveDeployer.deployInternal(ArchiveDeployer.java:83)
	at org.jboss.as.arquillian.container.ArchiveDeployer.deployInternal(ArchiveDeployer.java:64)

Linux Build 5836 is now running using a merge of 74b555dc0d808b37c05eea0b7dde182bce0fb3c9

Windows Build 945 is now running using a merge of 74b555dc0d808b37c05eea0b7dde182bce0fb3c9

Linux with security manager Build 821 is now running using a merge of 74b555dc0d808b37c05eea0b7dde182bce0fb3c9

Linux with security manager Build 821 outcome was SUCCESS using a merge of 74b555dc0d808b37c05eea0b7dde182bce0fb3c9
Summary: Tests passed: 839, ignored: 316 Build time: 0:05:05

Windows Build 945 outcome was FAILURE using a merge of 74b555dc0d808b37c05eea0b7dde182bce0fb3c9
Summary: Tests failed: 1 (1 new), passed: 2921, ignored: 312 Build time: 0:45:44
Build problems:
Failed tests detected
Failed tests
org.jboss.as.test.integration.domain.suites.DeploymentManagementTestCase.testFullReplaceViaHash: java.lang.AssertionError: C:\BuildAgent\work\340a2b56aab3b1db\testsuite\domain\target\domains\DomainTestSuite\master\data\content\0f
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.assertTrue(Assert.java:41)

Linux Build 5836 outcome was SUCCESS using a merge of 74b555dc0d808b37c05eea0b7dde182bce0fb3c9
Summary: Tests passed: 2922, ignored: 312 Build time: 0:48:43


error with ES5.3

Elastalert works correctly until updating ES to version 5.3.
Now with ES 5.3 I have an error:
avril 25 15:41:07 test-elastalert python[7333]: return func(*args, params=params, **kwargs)
avril 25 15:41:07 test-elastalert python[7333]: File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/init.py", line 257, in index
avril 25 15:41:07 test-elastalert python[7333]: _make_path(index, doc_type, id), params=params, body=body)
avril 25 15:41:07 test-elastalert python[7333]: File "/usr/local/lib/python2.7/dist-packages/elasticsearch/transport.py", line 301, in perform_request
avril 25 15:41:07 test-elastalert python[7333]: status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout)
avril 25 15:41:07 test-elastalert python[7333]: File "/usr/local/lib/python2.7/dist-packages/elasticsearch/connection/http_requests.py", line 72, in perform_request
avril 25 15:41:07 test-elastalert python[7333]: self._raise_error(response.status_code, raw_data)
avril 25 15:41:07 test-elastalert python[7333]: File "/usr/local/lib/python2.7/dist-packages/elasticsearch/connection/base.py", line 102, in _raise_error
avril 25 15:41:08 test-elastalert python[7333]: raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message, additional_info)
avril 25 15:41:08 test-elastalert python[7333]: RequestError: TransportError(400, {u'root_cause': [{u'reason': u'Validation Failed: 1: an id must be provided if version ty...
Hint: Some lines were ellipsized, use -l to show in full.
Can you help me solve the problem.
I use the elastalert version v.0.0.91.
Should be changed to version v.0.1.9

ES 5 wasn't supported until v0.1.something. Upgrade to the latest version of elastalert and also make sure you upgrade the elasticsearch python library, pip install --upgrade elasticsearch

Thank you.
The procedure for upgarde ?

pip install --upgrade elastalert

The update is done but at startup I have errors.
Do you have an idea ?
Loaded: loaded (/lib/systemd/system/elastalert.service; enabled)
Active: failed (Result: exit-code) since mar. 2017-05-09 14:29:57 CEST; 13min ago
Process: 8036 ExecStart=/usr/bin/python -m elastalert.elastalert --config config.yaml (code=exited, status=1/FAILURE)
Main PID: 8036 (code=exited, status=1/FAILURE)
mai 09 14:29:57 test-elastalert python[8036]: self.handle_error('Uncaught exception running rule %s: %s' % (rule['name'], exception), {'rule': rule['name']})
mai 09 14:29:57 test-elastalert python[8036]: File "/opt/elastalert-master/elastalert/elastalert.py", line 1292, in handle_error
mai 09 14:29:57 test-elastalert python[8036]: self.writeback('elastalert_error', body)
mai 09 14:29:57 test-elastalert python[8036]: File "/opt/elastalert-master/elastalert/elastalert.py", line 1038, in writeback
mai 09 14:29:57 test-elastalert python[8036]: doc_type=doc_type, body=body)
mai 09 14:29:57 test-elastalert python[8036]: File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/utils.py", line 73, in _wrapped
mai 09 14:29:57 test-elastalert python[8036]: return func(*args, params=params, **kwargs)
mai 09 14:29:57 test-elastalert python[8036]: TypeError: create() takes at least 5 arguments (5 given)
mai 09 14:29:57 test-elastalert systemd[1]: elastalert.service: main process exited, code=exited, status=1/FAILURE
mai 09 14:29:57 test-elastalert systemd[1]: Unit elastalert.service entered failed state.

What do you get when you type
pip freeze | grep elasticsearch ?
The version needs to match the version of Elasticsearch you are using.
You probably want either
pip install --upgrade "elasticsearch>=5.0"
or pip install --upgrade "elasticsearch<5.0"

I have that "elasticsearch==5.3.0"

You are still using the old version of elastalert. This might happen if you have the old source code checked out and are running python from that directory. I thought that even if you had run "python setup.py install" and then did "pip install --upgrade" that it would work, but maybe I'm wrong.

68/5000
Absolutely.
When I run python setuo.py install, I have this :
Using /usr/local/lib/python2.7/dist-packages
Finished processing dependencies for elastalert==0.0.91
We see that the link with the old version.
So I have done a complete installation with the new version elastalert (0.1.12).
And everything works fine.
Thank you for your help


add ability of using a client.properties file for console-consumer and producer

this should be added since when auth used in the cluster console consumer and producer can not be used since they require auth/auth


Add usage of Blade icons generator

Hiya!
This PR solves for https://github.com/Activisme-be/Blade-github-octicons/issues/29 by using the new generator script feature added into blade-icons. I've opted to use a git submodule to keep the source icons at a specific state. Currently the submodule is checked out to the HEAD of the v14.2.2 tag.
When a new release upstream happens you can simple change into the dist folder, checkout the new tag, and then run the blade-icons generator script. More docs on that generator script are here: https://github.com/blade-ui-kit/blade-icons#generating-icons

Hey @mallardduck,
Sorry for the late response. Like i told on twitter we got some volunteering work going on here in Belgium. Thanks for the PR will merge it for now and tag it later in a release. When i synched the octicons from primercss with this package.
Kind regards,
Tim Joosten

Hey @mallardduck,
Sorry for the very late response. Once again i tried to sync the submodules. But unfortunately im not familiar with git submodules. Can u tell me how i checkout the git submodules?
Kind regards,
Tim Joosten


TimedSupervisorTask if cancel the future when it Timeout, the executor whill never execute success again.

eureka-client/src/main/java/com/netflix/discovery/TimedSupervisorTask.java
      try {
           future = executor.submit(task);
           threadPoolLevelGauge.set((long) executor.getActiveCount());
           future.get(timeoutMillis, TimeUnit.MILLISECONDS);  // block until done or timeout
           delay.set(timeoutMillis);
           threadPoolLevelGauge.set((long) executor.getActiveCount());
           successCounter.increment();
       } catch (TimeoutException e) {
           .....
       } finally {
           if (future != null) {
               future.cancel(true);
           }
      }

if the future cancelled when it throw TimeoutException, it whill interrupt the thread from executor. So that, the executor will handle a interrupted thread, it never execute success again.

sound's like the issue I had: https://github.com/Netflix/eureka/issues/1250

Looks like a dup of #1250.


Set react and react-dom as peerDependencies instead of dependencies

Is your feature request related to a problem? Please describe.
The current version introduces react and react-dom as a dependency. Would be great to set them as peerDependencies in the same way of react-split-pane does.
Describe the solution you'd like
I tried to submit a PR but didn't have access. Essentially change package.json from
	"dependencies": {
		"react": "^16.13.1",
		"react-dom": "^16.13.1"
	},

to
	"peerDependencies": {
		"react": "^16.13.1",
		"react-dom": "^16.13.1"
	},

Additional context
Thanks a lot for the work so far in the module! : )

Makes sense, I'll take care of it in the next days.

Awesome! Thank you : )


GPL-569 | BUG: Set the COG-UK id for Cambridge-az to 'CAMC' #28

Describe the bug
GPL-569 | BUG: Set the COG-UK id for Cambridge-az to 'CAMC'
Expected behaviour
COG UK ids should be CAMC

Note was a missed/ misunderstood requirement. Prefix agreed 10th July: https://ssg-confluence.internal.sanger.ac.uk/x/OpoKBg (though hinted at in mail of Friday, 3 July 2020 at 16:46)

Nb. Moved story from barcoda https://github.com/sanger/baracoda/issues/28


Delete

Reasons for making this change:
TODO
Links to documentation supporting these rule changes:
TODO
If this is a new template:

Link to application or project’s homepage: TODO

Delete


Adhar verification page for workers needed

Workers will need to upload their adhar card pdf/photo to the website. This will verify their true identity.
For now, you can keep the option of uploading. If you can do advancement, you can add OTP verification for workers for adhar cards. If this is complicated for you, just follow the first method. :)
Here is an example-

i can work on the issue

if this issue is free to work i would like to work on this issue

@biswajit150803 please do so, if you couldn't complete @ashvin804 will take over


Sketch out Workflows

@JohannesLipp please write the workflow titles to find for and the objective associated with the task.

Create a simple vocab (including rdf export)
edit an existing vocab
edit a vocab collaboratively
view and understand an existing vocab

tools:
flow diagram

Flowchar Image to Create Vocabular

*~~ Create a simple vocab (including rdf export) <-- The most important one for now~~

edit an existing vocab  ** (feature not available) **
edit a vocab collaboratively
view and understand an existing vocab ** ?? **

This is to achieve the ultimate goal of an easy-to-use system with proper/clear instructions


widgets: Assign zulip-button colors to edit buttons.

This corrects a regression on poll and to-do widget edit buttons in dark mode.
The colors themselves will likely change once #31595 progresses.
CZO issue

Screenshots and screen captures:

Before
After

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Not beautiful, but looks OK for now. Thanks! (I haven't tested manually.)

Merged, thanks @karlstolley!


[Improvement][checkstyle] add check style file to alert_plugin_design branch

issue: https://github.com/apache/incubator-dolphinscheduler/issues/3678

Please resolve conflicts.

Please resolve conflicts.

ok ! I solve it

The checkstyle is the same with dev branch. There is no need to change it.

The checkstyle is the same with dev branch. There is no need to change it.

ok, I close it


Where can we find all objects that the prompt text supported?   e.g.:   face, body, hand:left-right hand; business-suit, etc.

as title

The model supports any text inputs. If you want to detect may different objects, you can contact the category names of COCO as an example.


Picture with prefers-color-scheme: dark and Outlook

Hi,
It seems Outlooks top banner for "you don't often get email from xxx" (don't know what it's called, sorry) interferes with the prefers-color-scheme: dark in the code. When sending a test to my work account (Microsoft Exchange) and I open the email on iOS, I receive the banner from Outlook. The image doesn't react to dark mode and it shows the light mode version instead, but if I test with any other account it works fine.
<picture>
  <source srcset="dark-img.png" media="(prefers-color-scheme: dark)">
  <img src="light-img.png" alt="Alt Text!" style="">
</picture>

That's a strange one, I'm struggling to reproduce as I do often get emails from all my test addresses. Will have a think and work on it when i get more time


snpashottest should handle sub-tests

test.snpashottest should handle sub-tests. The current _SubTest object is available at TestCase._subtest.

Also, should it write the snapshots if the rest of the test fails?


Update Chapter 3 - Advanced SQLAlchemy Queries.py

there was a mistake, and instead of looking for the column of "pop2000" it was the looking for column of "pop2008".

@ItayAbuhazera  Thanks for pointing this out.


Macro: R1-R1 connection between sugar and base not considered as side chain connections

Steps to Reproduce

Open file in sequence mode r1-r1-sugar-base-connection.zip
Look at connection between Sugar and Base

Actual behavior

R1-R1 connection between sugar and base not considered as side chain connections and not displayed as straight line connecting two monomers center-to-center
Expected behavior

R1-R1 connection between sugar and base considered as side chain connections and displayed as straight line connecting two monomers center-to-center ( as described in https://github.com/epam/ketcher/issues/3734 )
Desktop (please complete the following information):

OS: Windows 11
Browser Chrome
Version 112.0.5615.138 (Official Build) (64-bit)

Ketcher version
[Version 2.20.0-rc.2]

Moved to Refined Backlog since not fixed over 1 release


After last HA update state is not updated instantly

Hi,
i have just updated HA to 0.98.5 and when i activate a sonoff from ewelink app the state in HA is not yet updated instantly. Before theha update, after 1 seconds the state was correctly udated in HA GUI.

downgrade

downgrade is not a solution is a workaround
Il sab 28 set 2019, 12:31 Peter Buga<EMAIL_ADDRESS>ha scritto:

downgrade
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/peterbuga/HASS-sonoff-ewelink/issues/139?email_source=notifications&email_token=AHW5SR7X6HUL5U5EN3E574TQL4XA3A5CNFSM4IUQXOL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD72V27Y#issuecomment-536173951,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHW5SRYQESY5XP7AOOQFEUDQL4XA3ANCNFSM4IUQXOLQ
.


Incorrect type for nested fields

In our index we have a field called "system" that has two nested properties - host (String) and sampletime (Date).
Using WorkbenchJ, the following query works OK:
SELECT system.host, system.sampletime
FROM "index"."data-generator-poc-async"."arm" limit 1
But the following queries fail with an error "Value in column '82' is not a Date but is String" (column 82 is system.sampletime):
SELECT system
FROM "index"."data-generator-poc-async"."arm" limit 1
SELECT *
FROM "index"."data-generator-poc-async"."arm" limit 1

For some reason we have a lot of these typing issues now which I did not encounter before. What does WorkbenchJ show when you use the 'Database Explorer' and select the 'arm' table? Doing this should show all the columns and their types and im interested what it thinks about your nested types.
ps. why do you prefix it with "index"."data-generator-poc-async" that should not be needed when you are connected with the "data-generator-poc-async" index right?

Database Explorer shows the following:
system	java.lang.Object	NO	NO		NO	NO	{properties={host={type=string, fields={raw={type=string, index=not_analyzed, ignore_above=10000}}}, sampletime={type=date, format=strict_date_optional_time||epoch_millis}}}	2000	0

"system.host"	string(1)	NO	NO		NO	NO	{type=string, fields={raw={type=string, index=not_analyzed, ignore_above=10000}}}	12	0

"system.sampletime"	date	NO	NO		NO	NO	{type=date, format=strict_date_optional_time||epoch_millis}	91	0

Squirrel succeeds in running the same query semi-successfully - if I do "select system" then I get two columns in the result (system.sampletime and system.host) but system.sampletime only has  on each line. If I do "select system.sampletime, system.host" then both columns are populated correctly.
p.s. the prefix is indeed redundant, it was there because I copied the statement from a Drill query, but it doesn't change the behavior - running the query without the "index" prefix results in the same issue.

I did some digging using an old dataset with lots of nesting and it seems this issue has to do with the Date type and i guess it is related with the other issue as well. Requesting nested objects that do not have a Date works fine but if there is a date somewhere it breaks. Not sure why it happens though and might take some time to figure it out

Hi Dan,
I have implemented a fix for this issue which now works on my testset with multiple nested objects. Please use the latest <IP_ADDRESS> release to test it on your own data and let me know if it works.

I think it works, in Squirrel I am able to get both nested fields correctly when doing select system (where system is a compound type), however now there is strange behavior which I think may be related to #22 where in Workbench I don't get any results when running select * from :
select count(*) from arm - returns correct number of 2014567 documents
select * from arm - returns 0 rows
When using Drill, the same query returns exactly 10 rows, even though no such limit is specified..

I commented in the other thread about the issue, and closing this one since this is now resolved.