[Feature Request] Config/hanging protocol option for read-only mode (+ option to disable hydration)

What feature or change would you like to see made?

New property for hanging protocol or configuration to disable panels editing capabilities
New property to diablo hydration dialogs (since everything will be read-only)

Why should we prioritize this feature?
This would allow us to easily disable all editing capabilities of panels including stowrs via hanging protocol or configuration

@pedrokohler can you please follow up with Alireza before implementation to understand the best way to do this?
The idea here is to have an easy way to disable all editing capabilities of panels e.g. no save/reject report, delete or edit buttons. Also, we should have an easy way to disable the tracking dialogs or tracking altogether.

@igoroctaviano we will test this functionality once the sandbox instance is available.

is this done?

is this done?

It's done.

We just release the OHIF 3.8, you can find more details here https://ohif.org/release-notes/3p8/
If you still encounter this issue in 3.8, please re-open this.


New rules an Mappings fixes

Description
Fixes various bugs with mappings
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #404 (43d96fa) into main (acfef46) will increase coverage by 0.03%.
The diff coverage is 0.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##               main     #404      +/-   ##
============================================
+ Coverage     28.33%   28.36%   +0.03%
- Complexity      897      899       +2
============================================
  Files           231      231
  Lines          9282     9289       +7
  Branches       1072     1075       +3
============================================
+ Hits           2630     2635       +5
- Misses         6415     6418       +3
+ Partials        237      236       -1

Impacted Files
Coverage Δ

...search/securityanalytics/mapper/MapperService.java
4.10% <0.00%> (-0.18%)
:arrow_down:

...ecurityanalytics/rules/backend/OSQueryBackend.java
66.95% <0.00%> (+0.57%)
:arrow_up:

...opensearch/securityanalytics/util/RuleIndices.java
0.00% <ø> (ø)

... and 1 file with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@sbcd90 , can you please review the PR and update if we need this or can close it


Problem with effectful functions running underlying effect

Problem
Consider this small example of a comparator type, whose implementations can put a constraint on r to have certain effects available:
type Comparator v r = v -> v -> Sem r Ordering

ordComparator :: Ord v => Comparator v r
ordComparator a b =
  return $ compare a b

randomComparator :: Member Random r => Comparator v r
randomComparator a b = random >>= \value ->
  return $ if value then GT else LT

Let's write a function that runs the comparator over a list and outputs the results, while printing some logs:
runComparisonsWrong
  :: (Show v, Members '[Input (Maybe (v, v)), Output Ordering, Trace] r)
  => Comparator v r -> Sem r ()
runComparisonsWrong comparator = input >>= \case
  Nothing -> return ()
  Just (a, b) -> do
    trace $ "Comparing " ++ show a ++ " with " ++ show b
    result <- comparator a b
    output result
    runComparisonsWrong comparator

main :: IO ()
main = runM
  $ runRandomIO
  $ runTraceIO
  $ runOutputAsTrace
  $ runListInput [(1, 2), (2, 3)]
  $ runComparisonsWrong randomComparator

However as the name indicates, this implementation of runComparisonsWrong is actually wrong, and this is noticeable when main gets compiled:
lib/Arvy.hs:44:5: error:
    • Ambiguous use of effect 'Input'
      Possible fix:
        add (Member (Input (Maybe (v0, v0))) '[Input (Maybe (a0, b0)),
                                               Output w0, Trace, Random,
                                               Lift IO]) to the context of
          the type signature
      If you already have the constraint you want, instead
        add a type application to specify
          'Maybe (v0, v0)' directly, or activate polysemy-plugin which
            can usually infer the type correctly.
    • In the second argument of ‘($)’, namely
        ‘runComparisonsWrong randomComparator’
      In the second argument of ‘($)’, namely
        ‘runListInput [(1, 2), (2, 3)]
           $ runComparisonsWrong randomComparator’
      In the second argument of ‘($)’, namely
        ‘runOutputAsTrace
           $ runListInput [(1, 2), (2, 3)]
               $ runComparisonsWrong randomComparator’
   |
44 |   $ runComparisonsWrong randomComparator
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

lib/Arvy.hs:44:5: error:
    • Ambiguous use of effect 'Output'
      Possible fix:
        add (Member (Output Ordering) '[Input (Maybe (a0, b0)),
                                        Output w0, Trace, Random, Lift IO]) to the context of
          the type signature
      If you already have the constraint you want, instead
        add a type application to specify
          'Ordering' directly, or activate polysemy-plugin which
            can usually infer the type correctly.
    • In the second argument of ‘($)’, namely
        ‘runComparisonsWrong randomComparator’
      In the second argument of ‘($)’, namely
        ‘runListInput [(1, 2), (2, 3)]
           $ runComparisonsWrong randomComparator’
      In the second argument of ‘($)’, namely
        ‘runOutputAsTrace
           $ runListInput [(1, 2), (2, 3)]
               $ runComparisonsWrong randomComparator’
   |
44 |   $ runComparisonsWrong randomComparator
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This error is very misleading, but after some thinking, one will notice that the error lies in the r of runComparisonsWrong: The r in Comparator v r and the one in Sem r () should be different, and the Member constraints should only be on the latter one, because the Comparator v r doesn't need those effects, it's only the implementation of runComparisonsWrong that needs them. By making those r's be the same, we also make randomComparator have Output, Input and Trace effects, and the former two are ambiguous because that function doesn't use them.
So from this it's clear that we need to add our effects on top of the ones Comparator has, from which this actually compiling version can be implemented:
runComparisonsBad
  :: Show v => Comparator v r
  -> Sem (Input (Maybe (v, v)) ': Output Ordering ': Trace ': r) ()
runComparisonsBad comparator = input >>= \case
  Nothing -> return ()
  Just (a, b) -> do
    trace $ "Comparing " ++ show a ++ " with " ++ show b
    result <- raise . raise . raise $ comparator a b
    output result
    runComparisonsBad comparator

main' :: IO ()
main' = runM
  $ runRandomIO
  $ runTraceIO
  $ runOutputAsTrace
  $ runListInput [(1, 2), (2, 3)]
  $ runComparisonsBad randomComparator

Now this works, but the implementation isn't really generic anymore, we can't flip around runOutputAsTrace and runListInput because of the ordering of effects in runComparisonsBad.
In addition, let's say we want to replace our Trace effect with Lift IO:
runComparisonsImpossible
  :: Show v => Comparator v r
  -> Sem (Input (Maybe (v, v)) ': Output Ordering ': Lift IO ': r) ()
runComparisonsImpossible comparator = input >>= \case
  Nothing -> return ()
  Just (a, b) -> do
    sendM $ putStrLn $ "Comparing " ++ show a ++ " with " ++ show b
    result <- raise . raise . raise $ comparator a b
    output result
    runComparisonsImpossible comparator

main'' :: IO ()
main'' = runM
  $ runRandomIO
  $ runTraceIO
  $ runOutputAsTrace
  $ runListInput [(1, 2), (2, 3)]
  $ runComparisonsImpossible randomComparator

Which gives us the following error:
lib/Arvy.hs:82:5: error:
    • Could not deduce: (Member Trace '[Lift IO, Random, Lift IO])
      Fix:
        add (Member Trace '[Lift IO, Random, Lift IO]) to the context of
          the type signature
    • In the second argument of ‘($)’, namely
        ‘runOutputAsTrace
           $ runListInput [(1, 2), (2, 3)]
               $ runComparisonsImpossible randomComparator’
      In the second argument of ‘($)’, namely
        ‘runTraceIO
           $ runOutputAsTrace
               $ runListInput [(1, 2), (2, 3)]
                   $ runComparisonsImpossible randomComparator’
      In the second argument of ‘($)’, namely
        ‘runRandomIO
           $ runTraceIO
               $ runOutputAsTrace
                   $ runListInput [(1, 2), (2, 3)]
                       $ runComparisonsImpossible randomComparator’
   |
82 |   $ runOutputAsTrace
   |     ^^^^^^^^^^^^^^^^...

lib/Arvy.hs:82:5: error:
    • Unhandled effect 'Trace'
      Probable fix:
        add an interpretation for 'Trace'
        If you are looking for inspiration, try consulting
          the documentation for module 'Polysemy.Trace'
    • In the second argument of ‘($)’, namely
        ‘runOutputAsTrace
           $ runListInput [(1, 2), (2, 3)]
               $ runComparisonsImpossible randomComparator’
      In the second argument of ‘($)’, namely
        ‘runTraceIO
           $ runOutputAsTrace
               $ runListInput [(1, 2), (2, 3)]
                   $ runComparisonsImpossible randomComparator’
      In the second argument of ‘($)’, namely
        ‘runRandomIO
           $ runTraceIO
               $ runOutputAsTrace
                   $ runListInput [(1, 2), (2, 3)]
                       $ runComparisonsImpossible randomComparator’
   |
82 |   $ runOutputAsTrace
   |     ^^^^^^^^^^^^^^^^...

This doesn't work, because Lift IO has to be the last effect, which it can't be because we explicitly put it before the r.
Solution idea
I feel like a best possible fix would be to add a constraint like Embeddable, which allows you to embed one set of effects in another. This could look as follows:
runComparisons
  :: (Embeddable r r', Members '[Input (Maybe (v, v)), Output Ordering, Trace] r', Show v)
  => Comparator v r -> Sem r' ()
runComparisons comparator = input >>= \case
  Nothing -> return ()
  Just (a, b) -> do
    trace $ "Comparing " ++ show a ++ " with " ++ show b
    result <- embed $ comparator a b
    output result
    runComparisonsWrong comparator

An alternate name for Embeddable could be MemberSubset, as it really represents the effects of r being a subset of the effects in r'.
This might be pretty tricky to implement though, as it's essentially a type-level subset check on lists. But it might also not be tricky, because the order of the effects in r and r' can be inferred with the appropriate runX functions, so it essentially boils down to a list comparison of effects, with the twist that it doesn't matter if one list has some additional elements inbetween (r' in this case).

Turning off the error-messages flag in polysemy does indeed give a more helpful error:
    • Couldn't match type ‘Polysemy.Internal.Union.IndexOf
                             '[Input (Maybe (a0, b0)), Output w0, Trace, Random, Lift IO]
                             (Polysemy.Internal.Union.Found
                                '[Input (Maybe (a0, b0)), Output w0, Trace, Random, Lift IO]
                                (Input (Maybe (v0, v0))))’
                     with ‘Input (Maybe (v0, v0))’
        arising from a use of ‘runComparisonsWrong’
      The type variables ‘a0’, ‘b0’, ‘w0’, ‘v0’ are ambiguous

That being said, I'm not convinced your analysis about what's going wrong here is correct. This better error message points out that you're trying to run an Input (Maybe (v, v)) effect with an Input (Maybe (a, b)).  What are a, b, here? They're polymorphic Nums  arising from the tuples (1, 2).
We can fix this by type applying both runListInput and runComparisonWrong with @Int, or some other explicit numeric type (even as a type var!). This is enough for the interpretation to get further, where it now errors on:
    • Couldn't match type ‘Polysemy.Internal.Union.IndexOf
                             '[Output w0, Trace, Random, Lift IO]
                             (Polysemy.Internal.Union.Found
                                '[Output w0, Trace, Random, Lift IO] (Output Ordering))’
                     with ‘Output Ordering’
        arising from a use of ‘runComparisonsWrong’

The solution here is to again type-apply runOutputAsTrace. With all of these tyapps, everything compiles happily:
main :: IO ()
main = runM
  $ runRandomIO
  $ runTraceIO
  $ runOutputAsTrace @Ordering
  $ runListInput @(Int, Int) [(1, 2), (2, 3)]
  $ runComparisonsWrong @Int randomComparator

A few things to point out:

The polysemy plugin successfully does the right thing here, and lets everything compile!
I'm not sure you do want comparitor to run in a restricted effect row; Haskell's constraint system is sufficient to limit the visible effects at any given point in the program.
The custom error messages really do suck here; while they do successfully point out the issue to someone willing to read between the lines, the suggested fixes are actively terrible. I wonder if the solution is to just disable the custom errors now that the plugin is up and running.

Ah sorry for that, you're fully correct. I seem to have simplified it so much as to get rid of the original problem, while still keeping most of the same errors. Here's the less-simplified version:
runComparisonsWrong
  :: (Show v, Members '[Input (Maybe (v, v)), Output Ordering, Trace] r)
  => Comparator v r -> Sem r ()
runComparisonsWrong comparator = input >>= \case
  Nothing -> return ()
  Just (a, b) -> do
    trace $ "Comparing " ++ show a ++ " with " ++ show b
    result <- comparator a b
    output result
    runComparisonsWrong comparator

testComparator :: Member (Lift IO) r => Comparator Int (Random ': r) -> Sem r ()
testComparator comparator = runRandomIO
  $ runTraceIO
  $ runOutputAsTrace @Ordering
  $ runListInput @(Int, Int) [(1, 2), (2, 3)]
  $ runComparisonsWrong @Int comparator

Which throws the same error (plus one more), even though I do have all the type applications:
lib/Arvy.hs:85:5: error:
    • Ambiguous use of effect 'Input'
      Possible fix:
        add (Member (Input (Maybe (Int, Int))) Random
                                                 : r) to the context of
          the type signature
      If you already have the constraint you want, instead
        add a type application to specify
          'Maybe (Int, Int)' directly, or activate polysemy-plugin which
            can usually infer the type correctly.
    • In the second argument of ‘($)’, namely
        ‘runComparisonsWrong @Int comparator’
      In the second argument of ‘($)’, namely
        ‘runListInput @(Int, Int) [(1, 2), (2, 3)]
           $ runComparisonsWrong @Int comparator’
      In the second argument of ‘($)’, namely
        ‘runOutputAsTrace @Ordering
           $ runListInput @(Int, Int) [(1, 2), (2, 3)]
               $ runComparisonsWrong @Int comparator’
   |
85 |   $ runComparisonsWrong @Int comparator
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

lib/Arvy.hs:85:5: error:
    • Ambiguous use of effect 'Output'
      Possible fix:
        add (Member (Output Ordering) Random : r) to the context of
          the type signature
      If you already have the constraint you want, instead
        add a type application to specify
          'Ordering' directly, or activate polysemy-plugin which
            can usually infer the type correctly.
    • In the second argument of ‘($)’, namely
        ‘runComparisonsWrong @Int comparator’
      In the second argument of ‘($)’, namely
        ‘runListInput @(Int, Int) [(1, 2), (2, 3)]
           $ runComparisonsWrong @Int comparator’
      In the second argument of ‘($)’, namely
        ‘runOutputAsTrace @Ordering
           $ runListInput @(Int, Int) [(1, 2), (2, 3)]
               $ runComparisonsWrong @Int comparator’
   |
85 |   $ runComparisonsWrong @Int comparator
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

lib/Arvy.hs:85:5: error:
    • Could not deduce: (Member Trace Random : r)
      Fix:
        add (Member Trace Random : r) to the context of
          the type signature
    • In the second argument of ‘($)’, namely
        ‘runComparisonsWrong @Int comparator’
      In the second argument of ‘($)’, namely
        ‘runListInput @(Int, Int) [(1, 2), (2, 3)]
           $ runComparisonsWrong @Int comparator’
      In the second argument of ‘($)’, namely
        ‘runOutputAsTrace @Ordering
           $ runListInput @(Int, Int) [(1, 2), (2, 3)]
               $ runComparisonsWrong @Int comparator’
   |
85 |   $ runComparisonsWrong @Int comparator
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Doing the same thing as before makes it compile:
runComparisonsBad :: Show v => Comparator v r -> Sem (Input (Maybe (v, v)) ': Output Ordering ': Trace ': r) ()
runComparisonsBad comparator = input >>= \case
  Nothing -> return ()
  Just (a, b) -> do
    trace $ "Comparing " ++ show a ++ " with " ++ show b
    result <- raise . raise . raise $ comparator a b
    output result
    runComparisonsBad comparator

testComparator' :: Member (Lift IO) r => Comparator Int (Random ': r) -> Sem r ()
testComparator' comparator = runRandomIO
  $ runTraceIO
  $ runOutputAsTrace
  $ runListInput [(1, 2), (2, 3)]
  $ runComparisonsBad comparator

But it again isn't flexible and breaks down with s/Trace/Lift IO.

And regarding your points:

A few things to point out:

The polysemy plugin successfully does the right thing here, and lets everything compile!

Nice! Yeah I'll enable it now that I can actually run it since #79 is solved (for my use case).

I'm not sure you do want comparitor to run in a restricted effect row; Haskell's constraint system is sufficient to limit the visible effects at any given point in the program.

How would you design this code instead? Maybe there's a better pattern I'm not seeing that would go around this issue.

The custom error messages really do suck here; while they do successfully point out the issue to someone willing to read between the lines, the suggested fixes are actively terrible. I wonder if the solution is to just disable the custom errors now that the plugin is up and running.

At least the add (Member X : r) to the context of the type signature errors are still useful even with the plugin I think.

I'm not sure what you expect to happen in testComparator'. By explicitly running those interpreters you are fixing the interpretations of those effects in that order. But you've givien testComparator' the wrong type; it's actual type is this:
testComparator
    :: Member (Lift IO) r
    => Comparator Int ( Input (Maybe (Int, Int))
                     ': Output Ordering
                     ': Trace
                     ': Random
                     ': r
                      )
    -> Sem r ()

Which is to say that you take a Comparator and run, in order, the effects Input, Output, Trace and then Random.
Maybe you're trying to express that a Comparator  should only have access to Input, Output, Trace, Random? In that case you want type Comparator v = forall r. Members '[Input (Maybe (v, v)), Output Ordering, Trace] r => v -> v -> Sem r Ordering.
I think there's a fundamental misunderstanding here on one or both of our parts.

Maybe you're trying to express that a Comparator should only have access to Input, Output, Trace, Random? In that case you want type Comparator v = forall r. Members '[Input (Maybe (v, v)), Output Ordering, Trace] r => v -> v -> Sem r Ordering.

Oh this looks very nice, this seems to be the way I should've approached it from the beginning. I intend it to go the other way though: Restricting Comparator's to Random only, which works just fine as well:
type Comparator v = forall r .  ( Show v
    , Members '[Input (Maybe (v, v)), Output Ordering, Trace, Random] r)
  => Comparator v -> Sem r ()
runComparisons comparator = input >>= \case
  Nothing -> return ()
  Just (a, b) -> do
    trace $ "Comparing " ++ show a ++ " with " ++ show b
    result <- comparator a b
    output result
    return ()
    runComparisons @v comparator

testComparator
  :: Member (Lift IO) r
  => Comparator Int
  -> Sem r ()
testComparator comparator = runRandomIO
  $ runTraceIO
  $ runOutputAsTrace @Ordering
  $ runListInput @(Int, Int) [(1, 2), (2, 3)]
  $ runComparisons @Int comparator

main :: IO ()
main = runM $ do
  testComparator randomComparator
  testComparator ordComparator

My intention was to have these Input, Output and Trace effects be an implementation detail of testComparator, so they shouldn't be in the type signature, which this way of doing it achieves.
Now of course it just so happened (I'm not surprised anymore) that my actual code is even more complicated, for which this forall r . Member way doesn't work. Namely, comparators can have an internal state of any type s via existential quantification (yes this is where my report in #79 comes from). I'd like to implement it like this now:
data Comparator v = forall s . Comparator
  { initComparatorState :: forall r . Member Random r => Sem r s
  , doComparison :: forall r . Members '[Random, State s] r => v -> v -> Sem r Ordering
  }

ordComparator :: Ord v => Comparator v
ordComparator = Comparator
  { initComparatorState = return ()
  , doComparison = \a b -> return $ compare a b
  }

But this throws a compile error on the return ():
lib/Arvy.hs:121:27: error:
    • Couldn't match type ‘s0’ with ‘()’
        ‘s0’ is untouchable
          inside the constraints: Member Random r
          bound by a type expected by the context:
                     forall (r :: [(* -> *) -> * -> *]). Member Random r => Sem r s0
          at lib/Arvy.hs:(120,17)-(123,3)
      Expected type: Sem r s0
        Actual type: Sem r ()
    • In the ‘initComparatorState’ field of a record
      In the expression:
        Comparator
          {initComparatorState = return (),
           doComparison = \ a b -> return $ compare a b}
      In an equation for ‘ordComparator’:
          ordComparator
            = Comparator
                {initComparatorState = return (),
                 doComparison = \ a b -> return $ compare a b}
    |
121 |   { initComparatorState = return ()
    |                           ^^^^^^^^^

I'm not sure if it's possible to fix this easily.
This can be worked around by not using forall r . Member Random r => Sem r s, but forall r . Sem (Random ': r) s, which then makes the implementation suboptimal, requiring returning Sem (Random ':r r) () in the return value of runComparisons:
data Comparator v = forall s . Comparator
  { initComparatorState :: forall r .  ( Show v
    , Members '[Input (Maybe (v, v)), Output Ordering, Trace] r)
  => Comparator v -> Sem (Random ': r) ()
runComparisons c@Comparator { .. }= do
  s <- initComparatorState
  fmap snd (runState s (go doComparison))
  where
    go :: (v -> v -> Sem (State s ': Random ': r) Ordering) -> Sem (State s ': Random ': r) ()
    go comparator = input >>= \case
      Nothing -> return ()
      Just (a, b) -> do
        trace $ "Comparing " ++ show a ++ " with " ++ show b
        result <- comparator a b
        output result
        go comparator

testComparator
  :: Member (Lift IO) r
  => Comparator Int
  -> Sem r ()
testComparator comparator = runTraceIO
  $ runOutputAsTrace @Ordering
  $ runListInput @(Int, Int) [(1, 2), (2, 3)]
  $ runRandomIO
  $ runComparisons @Int comparator

But I guess this isn't bad.

The untouchable type is unfortunate; that's caused by a weird quirk of the Member constraint's internal use of ~ and the existential nature of s. This is worth a bug on its own; it's not necessarily solvable, but it's a nice thing to have formally recorded.
We can get around it by existentializing in two steps. First, we introduce Comparator v s which is not existential, and then wrap that in SomeComparator v which is. It's roundabout, but works:

data Comparator v s = Comparator
  { initComparatorState :: forall r . Member Random r => Sem r s
  , doComparison :: forall r .  SomeComparator (Comparator v s)

ordComparator :: Ord v => Comparator v ()
ordComparator = Comparator
  { initComparatorState = return ()
  , doComparison = \a b -> return $ compare a b
  }

someOrdComparator :: Ord v => SomeComparator v
someOrdComparator = SomeComparator ordComparator

runComparisons
  :: forall v r
  . ( Show v
    , Members '[Input (Maybe (v, v)), Output Ordering, Trace] r)
  => SomeComparator v -> Sem (Random ': r) ()
runComparisons (SomeComparator Comparator { .. }) = do
  s <- initComparatorState
  fmap snd (runState s (go doComparison))
  where
    go :: (v -> v -> Sem (State s ': Random ': r) Ordering) -> Sem (State s ': Random ': r) ()
    go comparator = input >>= \case
      Nothing -> return ()
      Just (a, b) -> do
        trace $ "Comparing " ++ show a ++ " with " ++ show b
        result <- comparator a b
        output result
        go comparator

testComparator
  :: Member (Lift IO) r
  => SomeComparator Int
  -> Sem r ()
testComparator comparator = runTraceIO
  $ runOutputAsTrace @Ordering
  $ runListInput @(Int, Int) [(1, 2), (2, 3)]
  $ runRandomIO
  $ runComparisons @Int comparator

Ah that's unfortunate, but this seems like an acceptable workaround. It's even possible to specify the types directly so you don't need to have two top-level definitions for ordComparator:
ordComparator :: forall v . Ord v => SomeComparator v
ordComparator = SomeComparator @v @() Comparator
  { initComparatorState = return ()
  , doComparison = \a b -> return $ compare a b
  }

My code is looking pretty good with this, and this separation into another type even allowed me to refactor some of it.
Thanks for sticking with me, I learned a lot on how to design my effects with this. From my side this issue can be closed :)

Great! Thanks for the highly detailed bug report --- it really helps to hone in on exactly where people are stumbling with the library.


eval: LLM based response validation

Description
eval: LLM based response validation
Type of change

[ ] Refactor
[x] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library
[ ] Bump-up library or tool used for development (does not change the final image)
[ ] CI configuration change
[ ] Konflux configuration change

/close


ARROWHEAD-<IP_ADDRESS>-rc -> master merge

rskj:arrowhead631-master-merge

pipeline:run

pipeline:run

pipeline:run

pipeline:run


S3 STAC item may not load properly after pystac 1.10

After a change in pystac 1.10 that performs a load of all the absolute links in a STAC item , the stac reader may not load properly the assets the item.
See https://github.com/stac-utils/pystac/issues/1336 for more details.
A further change to ensure consistency in rio-tiler would be to replace the boto3 loader in STAC reader with a custom S3 reader as recommended in https://pystac.readthedocs.io/en/stable/concepts.html#i-o-in-pystac

For the moment, just avoiding using pystac version 1.10 until https://github.com/stac-utils/pystac/issues/1336 is fixed.
But then for a future PR I will make, the idea would be to have the STAC S3 fetch function to use pystac only with a custom IO reader that enable S3 in pystac when S3 is enabled in rio-tiler


Localization for rule descriptions

Hi!
I could not find any specs about how to localize rule string result. I need to localize for example rule string "Weekly, on tuesdays".

Hey Mikko,
Internationalization has been a long dream of mine for the project - and a recent refactor has put me in a really good place to integrate it.  I was waiting for someone to ask to build it, to avoid building things no one wanted.
I'll take this on as a feature branch, and update here as appropriate.  Thanks!
JC

+1

+1 for this!

its there a way to add it manualy for one language ?? thank you great gem

You could copy a locale file and make a pull request. What language would that be? There reason I haven't been working on this, is that I lack the understanding of how to generalise the locale format so that it would work with as many different languages as possible.

@Frank004 it looks like this fork is working. You can PR them with your language file.
https://github.com/gocardless/ice_cube

@joelmeyerhamme  and @dgilperez  Hi I got it working using this one gem 'ice_cube'  , :git => 'git://github.com/dgilperez/ice_cube.git'.  Thanks for this great gem. Save us days and days of code

This was done in #311. Thanks everyone!


rotate object / player

This PR features new functionality for rotating a GameObject based on the current angle. This was mainly introduced to enhance the animation of a moving Player (which extends GameObject), but can be useful for general rotations.
I plan on making the animation better for when the user holds (or touches) down, so that the player faces the destination, to stop the animation from alternating between the discrete angles currently provided. But for now, this change should suffice for this PR.

Handled some merge conflicts introduced by me also modifying the speed parameter in player.  No problems there.
Tested in codespaces
Left

right

up

down

Tested with both arrow keys and pointer and they work similarly.
Future request:  Provide such screenshots in the future as a courtesy to the reviewer to know what to expect.
Encouragement: Try out the codespaces thing.  It is totally awesome. My VSCode experience is entirely in a web browser. Since I'm on a limited laptop the performance is improved running there.


Add to documentation that Outlook needs to be restarted after the install for the plugin to be active

Thank you for your bug report @vincentdeschenes .
Fixed 🎉 #6 is in the pipeline for later.


Add an example file, which shows how users can work with viroconcom

The example file should be based on the examples provided in the documentation (https://ahaselsteiner.github.io/viroconcom/contours.html)

Done, see https://ahaselsteiner.github.io/viroconcom/contours.html and https://ahaselsteiner.github.io/viroconcom/fitting.html


Finalize manifest format for April 2nd

UPDATE: It will be a simple list of URLs pointing to BB API

Closing since we did the demo already


Issues #45, #41: fix minor issues in compatibility section.

Please check that I caught all issues raised in #45 (i.e. in the comments in this diff

content LGTM + my open question for change of gitignore file.


Copyright Notice of convert_file_to_tlv.py

https://github.com/JonnyKong/ndn-python-repo/blob/eebd922921e08c7329ca9468b99f7a1fe32a7eee/examples/convert_file_to_tlv.py#L1-L6
This seems to be copied from python-ndn directly.
However, it does not belong to python-ndn and I'm not the author.
I think we should follow the style of other files in this repo:
#!/usr/bin/env python3
"""
    Convert a file into tlv packets.
    @Author<EMAIL_ADDRESS>"""

Fixed with https://github.com/JonnyKong/ndn-python-repo/commit/db7fcbb35ab89c7384d19b71db7e157ba829ce1a.


[backport] Fix vector handling

Backport of #2008

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit 60796248af559b25479dad0147831834e0041fd1, target branch v5) succeeded!

LGTM!


Add PHP pgsql driver to Dockerfile

This fixes not being able to use Cachet with Docker and Postgres (with the -e DB_DRIVER=pgsql option)

Thank you for this.

 How often do you guys update the Docker registry?

It's automatic I believe.

Oh yeah, I see new builds on there now, but they have an error status :(

Can you open an issue up for them please?

Sure


Replace for-each special form with more expressive for.

Description of changes:
Feedback on #195 rightfully observed that for_each was limiting and confusing in its handling of the local name.  Here I replace it with a more expressive form called for.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thanks for the review! I don't have write-access to this repo, so please merge.


fix: correctly handle b as pre-release in Vyper version

Closes https://github.com/foundry-rs/foundry/issues/9123
I've done similar workaround for rc before. For semver we need those to be prepended by a dash.
PEP440 pragmas are still might not be parsed correctly but this is not a showstopper as we're just ignoring them right now, and user would see a vyper error in case of mismatch.

there's also "a"


Error: DISM exited with code 2.

no matter which version I use I unfortunately get the dism error
any ideas?

the last lines from the log, unfortunately I can't figure it out

created the BSP Drivers and paste the drivers there and got a "DONE!"
even worse problem, raspberry pi just does nothing

Hello, where are these drivers?


docs: improve docs FAQ.md

Ⅰ. Describe what this PR did
docs: improve docs FAQ.md
Ⅱ. Does this pull request fix one issue?

NONE
Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
none
Ⅳ. Describe how to verify it
none
Ⅴ. Special notes for reviews
none

LGTM


Multiple Reference field update and includeReferenceContentTypeUID not working with includeReference

Hey all, just pinging here to say that I would love to take advantage of the new "multiple" options for references fields, but reference resolution doesn't seem to be working property on multiple reference fields.
Simply changing an existing reference field to allow multiple types breaks that field's resolution -- as in, resolving references with the .includeReference() method no longer works. Adding includeReferenceContentTypeUID() did not seem to have any effect on the resolution, in fact, adding that method to the chain seems to break ALL reference resolutions for that Query.
Any direction would be appreciated! Thanks,
Walt

Hi Walt-er,
We are looking into it and update you soon.
Thanks
Rohit

Hi Walt-er,
The upgradation impacts the include referencing of your existing published entries. In the case of all published entries, you need to save these entries so that your Reference field format changes to the upgraded format, and then publish these entries again. Now, the includeReference() and includeReferenceContentTypeUID() query should work for you.
Thanks

Hi Rohit, thanks for the followup. I have saved and re-published both the reference and there reference-er, but the reference inclusions is still broken. Is there anything I need to change about my Query call?
const Query = this.contentstackConnection
	.ContentType(contentType)
	.Entry(pageUid)
	.language(language)
	.includeReferenceContentTypeUID()
	.includeReference(references);

Alternatively, is there anything I now need to change about my references array? It's an array of field UIDs, i.e. ["masthead", "media_gallery"].

Hi Walt-er,
As per I understand you are trying to use include_reference under reference and reference within reference field, which is two level, currently in multiple content type reference, we have configuration for including reference which is set to 1. So you are getting only single level reference and not able to fetch reference within references.
It will be helpful if you provide your request, response and  your expected response.
Thanks


Should we store protobufs gzipped?

I realized recently when working on mapbox vector tiles (which as encoded as protobufs) that gzip compression can save quite a bit of space. In the "wild" protobufs are mainly used in network transports, which are normally gzipped (or otherwise compressed) anyway.
If we gzip compress Mapeo records at rest (e.g. on disk) we could save both disk space and reduce network traffic. This would be a breaking change, so it should ideally happen before MVP launch. It would add overhead reading and writing data, but gzip compression tends to be very fast (it would only be a bottle-neck for reading, since write performance is not an issue - syncing would not require gzipping, because the data will be arriving already gzipped).
Is this worth trying to do before MVP?

That's really helpful, thanks Evan. As you say, I think our data structure is quite different from vector tile data (which is where I was seeing significant size reduction from gzipping protobufs), which have lots of repeated text data. I think based on this data we can safely close this issue and consider this investigated and discarded as something that we might need to do. It's good to know that it's not something that we need.


naively merge notebook tests

Towards #739, by making a single development set of dependencies
Assumes #1877 goes forward: requirments_notebooks.txt is referenced by .binder/requirements.txt

Recent versions of ipykernel require Python>=3.10.

Do not want to give up testing against a range of Python versions!
Try pinning to an older version of ipykernel?
Give up on having one requirements.txt for all dev environments?
See if there are any tools in pip-compile to support fallback dependencies?

I think it would be good to first simplify dependencies with

#1990

before making them more complicated with this PR.

I think it would be good to first simplify dependencies with

#1990

before making them more complicated with this PR.

That's closed now, so this should be simpler.


DRAFT : DEVEXP-638

These are the tests failing -

optic-update lockForUpdate tests
test lockForUpdate
test with fromParam with custom uri:
TypeError: Cannot read properties of undefined (reading 'rows')
at /Users/ansinha/Desktop/intellij/dec-5/node-client-api/test-basic/lockForUpdate-test.js:104:25
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

optic-update lockForUpdate tests
test lockForUpdate
test with fromParam with qualified uri column:
TypeError: Cannot read properties of undefined (reading 'rows')
at /Users/ansinha/Desktop/intellij/dec-5/node-client-api/test-basic/lockForUpdate-test.js:118:25
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

optic-update transformDoc tests
transformDoc test
test transform mjs with op.col as parameter:
TypeError: Cannot read properties of undefined (reading 'rows')
at /Users/ansinha/Desktop/intellij/dec-5/node-client-api/test-basic/transformDoc-test.js:303:37
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

optic-update validateDoc tests
optic write function
test write with xml attachments:
TypeError: Cannot read properties of undefined (reading 'rows')
at /Users/ansinha/Desktop/intellij/dec-5/node-client-api/test-basic/write-test.js:857:38
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

optic-update validateDoc tests
optic write function
test write with txt attachments:
TypeError: Cannot read properties of undefined (reading 'rows')
at /Users/ansinha/Desktop/intellij/dec-5/node-client-api/test-basic/write-test.js:896:38
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

optic-update validateDoc tests
optic write function
test write with json attachments:
TypeError: Cannot read properties of undefined (reading 'rows')
at /Users/ansinha/Desktop/intellij/dec-5/node-client-api/test-basic/write-test.js:939:38
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)


Remove tas50

Thanks folks!

Thanks for everything dude, and sticking around way after you left Chef!


Getting invalid-meta error for bower install get-node-dimensions --save

Looks like it doesn't like having both a minified and standard file type.
Macintosh-471:get-node-dimensions admin$ bower install get-node-dimensions --save bower invalid-meta  The "main" field cannot contain minified files bower invalid-meta  The "main" field has to contain only 1 file per filetype; found multiple .js files: ["./dist/get-node-dimensions.js","./dist/get-node-dimensions.min.js"] bower ENOTFOUND     Package get-node-dimensions not found

My bad, I meant to remove that in favor of this https://unpkg.com/get-node-dimensions/dist/get-node-dimensions.js


redundant edge lengths computation functions

Context:
https://github.com/NVIDIAGameWorks/kaolin/blob/master/kaolin/models/meshcnn.py#L186
https://github.com/NVIDIAGameWorks/kaolin/blob/master/kaolin/metrics/mesh.py#L104
Even if MeshCNN have its own edges ordering, we should find a way to merge those in a single function (example: make a function that compute edges_points for normal Mesh without the MeshCNN constraint and use the same set_edge_lengths. Bonus: set_edge_lengths is not really a setter, so we should rename it ^^')

Closing the bug as it is no longer relevant to this repo.


[BUG] Fix download csv test results filters

Description
As a user, when I select filters (e.g. "Condition") on the "Test Results" page and I click the "Download results" button, the confirmation modal displays the correct number of rows in the CSV download. However, when opening the CSV result, the result is unfiltered.
Steps to reproduce
If applicable, add screenshots to help explain your problem.

Go to the "Test results" page
Select a "Condition" filter
Click the "Download results" button
In the "Download test results" confirmation modal, see that the number of rows to be included is correct and click "Download results"
Open the downloaded CSV
See that the CSV does not match the filtered results

Expected behavior
As a user, I would expect the CSV download rows matches the results when the filters are applied
Additional context
Please ensure every filter is working for the download

Looks like when we added condition and test result filtering to the result page, we forgot to add it to the Download results functionality as well - we pass the correct filter values to the query but it doesn't use them:
https://github.com/CDCgov/prime-simplereport/blob/1336ab09ddd8d2638db054c3c0da21ad16472fe2/frontend/src/app/testResults/operations.graphql#L18-L27

Reopening because I am still seeing this bug in demo with the test result filter. I think because the backend query is returning test events, we're going to get any test event that has at least 1 result matching the filter, so the current logic breaks down for multiplex results. So as an example, if we have the filter applied for positive results, the CSV download will still include all the results for a multiplex test that has at least 1 positive result.
Fwiw I think we really should be querying for test results from the backend instead of test events. That way we don't have to build a query with a bunch of filters on the backend and then filter again on the frontend like we are now.


[DOCS]  how to format a file containing file snippets

Description

It is unclear to me how one should format a file containing snippets. What file extension should the file have?
Should there be more than just the snippets in the file ? For example javascript commands or a json structure ?
Another user mentioned their confusion regarding this here: https://github.com/artisticat1/obsidian-latex-suite/discussions/148
Importance

Importance level: 4/10 (I can manage without it)

I also had the same question. After searing for the keyword "file", I found the following remark that answered my doubt:
https://github.com/artisticat1/obsidian-latex-suite/pull/75#issuecomment-1297370748
In short, one can following the following steps to achieve this:

Copy and paste everything in the settings
Put them in .js files and add own snippets
Add the path to the folder where the .js files are stored to the settings

I also had the same question. After searing for the keyword "file", I found the following remark that answered my doubt: #75 (comment)
In short, one can following the following steps to achieve this:

Copy and paste everything in the settings
Put them in .js files and add own snippets
Add the path to the folder where the .js files are stored to the settings

Hello thanks, I tried following this but then none of the snippets worked and I got linting issues when i saved the file as a js file. Did you add anything else to the file ?

What kind of linting issues do you have? I did not add anything special, except for defining some snippets for my use case.
My .js file looks something like the following:

Using solarlint vscode extension (which I am not very familiar with) i am getting the error below whereas the snippets work if i copy paste them to the settings text area

Using the solarlint vscode extension (which I am not very familiar with) i am getting the error below

I also saw such errors when installing the extension. However, I did not do anything about them, and the plugin works in Obsidian.

Hi, this is just because sonarlint sees a single javascript file and thinks you are running a standalone script. In a standalone script, defining an array like this makes no sense, you would instead do something like
const array = [
    ...
]

However, in this scenario, the plugin is using this file, sonarlint just can't see that. Basically you can ignore the sonarlint errors in this file. (Try //NOSONAR) on the line with the error if you aesthetically want to make it disappear - this shouldn't interfere with the plugin.

@wenlzhang  @mayurankv
Thank you both for your help regarding the error. I was unable to get the snippets to run from a file but i can manage with the snippets in the settings.


Adds lag_in_actions to metrics

WHAT is this pull request doing?
Adds number of unsynced actions as lag_in_actions to metrics, by checking the size of the @actions channel's internal Dequeue.
HOW can this pull request be tested?
Manual

But it's not the whole story, right? Actions could still be in the tcp send buffer, or being processed at the follower.

But it's not the whole story, right? Actions could still be in the tcp send buffer, or being processed at the follower.

Hmm, yeah that's true. And I guess there's no good way for us to know how many actions are there. 🤔


[BUG]: GradAccumDataloader will ignore the last iter.

🐛 Describe the bug
I used the list as dataloader for testing.
class GradAccumDataloader:
    """A wrapper for dataloader to enable gradient accumulation by dropping the last incomplete steps.

    Note:
        The dataloader would drop the last incomplete steps for gradient accumulation.
        For example, if a dataloader has 10 batches of data and accumulate size is 4. The model parameters will
        be updated only twice at step 4 and step 8. The last two batches of data do not form a complete 4-step cycle.
        Thus, they will be automatically skipped by this class. If the dataloader is not standard PyTorch dataloader,
        (e.g. Dali dataloader), this class will automatically consume (load data for nothing) the remaining 2 batches.

    Args:
        dataloader (``Iterable``): Your dataloader object for gradient accumulation.
        accumulate_size (int): The number of steps to accumulate gradients.
    """

    def __init__(self, dataloader: Iterable, accumulate_size: int) -> None:
        self.dataloader = dataloader
        self.consume_remain_data = True
        self.steps_per_epoch = len(dataloader) - len(dataloader) % accumulate_size

    def __getattr__(self, __name: str) -> Any:
        return getattr(self.dataloader, __name)

    def __len__(self) -> int:
        return self.steps_per_epoch

    def __iter__(self) -> Iterable:
        self._cur_step = 0
        self._dataiter = iter(self.dataloader)
        return self

    def __next__(self) -> Union[Tensor, Tuple[Tensor]]:
        if self._cur_step < self.steps_per_epoch:
            self._cur_step += 1

            if self._cur_step == self.steps_per_epoch and self.consume_remain_data:
                # this is to handle non standard pytorch dataloader
                # such as dali dataloader
                while True:
                    try:
                        _ = next(self._dataiter)
                    except StopIteration:
                        break
            return next(self._dataiter)
        else:
            raise StopIteration

a = list(range(1,11))
print(len(a), a)
a_ = GradAccumDataloaderTorch(a, accumulate_size=4)
for i, val in enumerate(a_):
    print(i, val)

the output is:
10 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
0 1
1 2
2 3
3 4
4 5
5 6
6 7

Environment
collosal : pip install colossalai==0.1.4+torch1.10cu11.1 -f https://release.colossalai.org
ubuntu 20.04

Thank you for spotting this bug. It has been fixed in #1030 .


libsass is included, but not listed in docs

It still isn't listed in the docs? Is there a reason for it?

Someone providing a pull request would be best.

This was merged so can close issue


Allow aliases to have htm suffix

Closes #7827

Can you add tests for both of these changes?

I think we need to agree that we should do it before we do it.

I proposed this to address a need expressed in the forum. I cannot find any other requests for this capability. Closing.


✨(gentest): Add support for chain_id

Would be nice to extend the interface to allow specification of other chains (especially testnets - we could test with sepolia, for example).
Also, modify the docstring to have a pythonic one-liner with an abbreviated tx.hash and chainid. The full tx.hash can be then provided below with link.

It's worth taking a look at foundry's cast CLI, at least for inspiration regarding cli design.
I would love to be able to use it within EEST, but we've tried hard to remove non-python dependencies to make it easy for new test developers getting started. If you feel it would add a lot of value, we can reconsider.

I completely agree with you. Let's spec out an awesome interface.

Here are two ways to implement this.
A) Add chain ID
uvx gentest --chainid 1 ...

We could add a chain id to the env.yaml
remote_nodes:
  - name: mainnet
    node_url: <>
+  chainid: 1

This approach requires verifying the chainid using RPC before running tests to ensure a match. Otherwise, the setup below will work, but ideally, it shouldn’t.
uvx gentest --chainid 365 ...

remote_nodes:
  - name: mainnet
    node_url: <>
+  chainid: 365

B) Select using network name (preferred)
If the goal is to simply select one of many available remote nodes then we can take a simpler approach.
Remote nodes could be renamed to network  (friendly name for rpc node used elsewhere) in env.yaml.
Then we could use
uvx gentest  --network mainnet ...

networks:
  - name: mainnet
    node_url: <>

  - name: sepolia
    node_url: <>

If no network is selected, it will use the first network as default


Added multi-domain support, improved logging, fixed some issues

Hi,
this PR includes the following changes:

added check for mysql availability so container does not start until mysql is ready
syslog only logs mail.* to stdout, no mount on /var/log/mail needed
supervisor only logs syslog to stdout, so all relevant mail logs are in stdout
var replacement with sed was replaced by envtpl for better readability
all ENV vars are now initialised in startup script rather than Dockerfile
letsencrypt certs from https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion can be used
multiple domains via ENV ADD_DOMAINS supported (ADD_DOMAINS=domain1.tld,domain2.tld,...)
fixed some permission issues with dovecot (ignore mountpoints did not work since conf file replacement was done afterwards so there were errors)
changed opendkim and opendmarc from socket to ip because of weird permissions issues (opendkim did not work when the postfix user was in the opendkim group)

For me it is now working with 3 domains and no errors so far but adding some tests would be a great idea like in https://github.com/tomav/docker-mailserver.

Great ! I look at this, this week-end. May you squash commits with git rebase ?

Mh I guess you haven't used everything otherwise you could have just accept the pull request.


Using Chat GPT-4 - Location: Canada EST

Hi
I'm trying to run the scripts to use the Chat GPT-4 that was released for our subscription being the local Canada EST, but we are not able to create it through the execution of the scripts because it presents the following message when creating the OpenAI service: Sku Standard not allowed .
In the documentation it mentions changing the parameters AZURE_FORMRECOGNIZER_SKU_NAME, AZURE_SEARCH_SKU_NAME and AZURE_OPENAI_SKU_NAME to Premium does not allow the creation, also informing that the SKU is not allowed.
The parameters were configured in this way:
azd env set AZURE_FORMRECOGNIZER_SKU_NAME v2 P1V2
azd env set AZURE_SEARCH_SKU_NAME Premium
azd env set AZURE_OPENAI_SKU_NAME v2 P1V2
The Playground allows you to create the OpenAI service for Canada EST.
Could you help me with this question?

Hi,
Are you sure you can deploy gpt-4 in Canada? So far only 2 regions are available: East US & France Central.
https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-4-models

Hi @ealasgarov,
Yes, we received an email informing that use in this region of Canada was released.
In case to use GPT-4 in France region, it is necessary:
1 - adjust some parameter or configuration file or
2 - at the time of deployment (via script) we must select the region of France.
As I mentioned earlier, through the Playground we were able to create the OpenAI resource in the Canada region.

Hi @ealasgarov and @pamelafox
can you help me with this question?

Hm, based on an issue I saw in another repo (https://github.com/Azure-Samples/azure-search-openai-demo/issues/497), I wonder if you need to change the code that forms the endpoint URL, like in this issue:
https://github.com/microsoft/sample-app-aoai-chatGPT/issues/82
You could try changing this line:
https://github.com/microsoft/sample-app-aoai-chatGPT/blob/f2b256a13c111a2621b15aba7214562d3be27b3a/app.py#L158

We received the invitation to ChatGPT4 and trying to deploy this to useast2 using the azure developer CLI

in infra/core/ai/cognitiveservices.bicep on line 34 is:
25 @batchSize(1)
26 resource deployment 'Microsoft.CognitiveServices/accounts/deployments@2023-05-01' = [for deployment in deployments: {
27   parent: account
28   name: deployment.name
29   properties: {
30     model: deployment.model
31     raiPolicyName: contains(deployment, 'raiPolicyName') ? deployment.raiPolicyName : null
32   }
33   sku: {
34     name: 'Standard'
35     capacity: deployment.capacity
36   }
37 }]

Following some azure troubleshooting guides, I ran az vm list-skus --location eastus2 --size Standard --all --output table and get a whole list of SKUs with NotAvailableForSubscription. I'm poking around my previous eastus deployment and don't know what this is referring to.

Hello,
I'm also having trouble deploying with gpt-4.
I already opened the ticket and received the email with the release of gpt4
However, when running azd up, the error below appears
Is it necessary somewhere to change this gpt-35-turbo 0301?
Note: I don't have much knowledge

Updates
I made some changes and now I'm getting this error:
I've tried changing it to 0 and it says it needs to be between 1 and 1000
Going to the azure resource open ai> explore >Quotas> and gpt-4 20/20 appears
InsufficientQuota: The specified capacity '1' of account deployment is bigger than available capacity '0' for UsageName 'Tokens Per Minute (thousands) - GPT-4'.

I was able to figure this out, but I don't have a perfect answer. I synced the latest changes from this repo and modified ./infra/main.biceps file:
    deployments: [
      {
        name: openAIModel
        model: {
          format: 'OpenAI'
          name: openAIModelName
          version: '0613'
        }
        capacity: 9
      }
    ]

When I deployed OpenAI manually, the version was 0613 in the console and when I tried deploying, the initial capacity of 30 was too high and 9 being the max.
did a search and replace for references to gpt-35-turbo to gpt-4

However, the app was deployed and I could access it, the chat prompt did not work. I tried matching some of the App Service configurations to my previous deployment and restarted and it still didn't work. Eventually it did so I'm not sure if it just took some time for the LLM to load properly.


Remember collapsible panel state in app modal after toggle to JSON editor

Open app modal
Open a collapsible section, eg Labels
Switch to JSON mode, then back to form mode
Observe that the collapsible section has closed

ACs

Collapsible sections should maintain their state on mode toggle
Collapsible sections with errors should always be opened

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-2317. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


Pagination Support

Am working on a project with some pretty long paginated json forms.  I can easily convert the forms to a similar metadata. One thing am trying to figure out is how to do pagination. Any ideas?
Here is an example project of what am trying to achieve https://github.com/enyachoke/angular2-formentry.

Hi! I would create a nested form group for every page and the do pagination with a library like this.
In ng2 Dynamic Forms Beta.6 there'll be support for nested form groups!

@udos86  That is great I will wait for it before giving it a try to see if it meets my requirements. Great work.

@enyachoke Thanks! Give it a try. Published beta.6 a couple of minutes ago. Good luck!


Dataframe.head()

Hello @1e-to! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file sdc/config.py:

Line 74:4: W292 no newline at end of file

In the file sdc/datatypes/hpat_pandas_dataframe_functions.py:

Line 48:5: E303 too many blank lines (2)
Line 67:121: E501 line too long (122 > 120 characters)
Line 108:26: E222 multiple spaces after operator
Line 127:1: W293 blank line contains whitespace
Line 128:5: E303 too many blank lines (2)
Line 149:1: W293 blank line contains whitespace
Line 154:5: E303 too many blank lines (2)

In the file sdc/hiframes/pd_dataframe_ext.py:

Line 1640:1: E305 expected 2 blank lines after class or function definition, found 1
Line 1640:1: E402 module level import not at top of file
Line 1640:60: W292 no newline at end of file

In the file sdc/tests/test_dataframe.py:

Line 44:37: E127 continuation line over-indented for visual indent
Line 45:37: E127 continuation line over-indented for visual indent
Line 1166:1: W293 blank line contains whitespace


Does Azure files as Volume mount supports "ReadWriteMany"?

Hello,
I am exploring Azure container apps instead of using AKS. Our requirement is to have multiple replicas of app and volume mount needed with "ReadWriteMany" access. I looked in to documentation for azure files but it doesn't say explicitly if it supports "ReadWriteMany" mode.
Any help would be appreciated
https://learn.microsoft.com/en-us/azure/container-apps/storage-mounts?pivots=azure-cli

@jwalitptl When configuring a file share on Azure Container Apps, access mode ReadWrite works the same as ReadWriteMany (and ReadOnly is same as ReadOnlyMany). You'll be able to mount them as volumes across multiple apps and replicas.

Thanks @anthonychu. appreciate your response. this would save me all hassle comes with managing k8s


⚠ Bofrost.at has degraded performance

In 2630c4c, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1785 ms

Resolved: Bofrost.at performance has improved in f1ec851 after 312 days, 3 hours, 40 minutes.


Convert operator.coeffs to real if possible in pauli_evolution._to_sparse_pauli_op

Summary
Convert operator.coeffs to real if possible in pauli_evolution._to_sparse_pauli_op.
This fixes CI breakage of Nature (e.g., https://github.com/Qiskit/qiskit-nature/actions/runs/1770404994)
Since #7551 is stable backported, this might also need to be stable backported.
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.005%) to 83.149%

Files with Coverage Reduction
New Missed Lines
%

qiskit/pulse/library/waveform.py
3
89.36%

Totals

Change from base Build<PHONE_NUMBER>:
-0.005%

Covered Lines:
51906

Relevant Lines:
62425

💛  - Coveralls

Would it be better to remove the check for complex completely to make sure we have the exact same behavior as in Terra 0.19.x? We could comment it out and add a note that we'll add this for the 0.20 release only.

According to stable branch before #7591, there was no check of complex. I'm not sure we need this or not.
If you remove the check, you can make another PR and close this.
https://github.com/Qiskit/qiskit-terra/blob/73024df2f62b0f8c9fd2e439a7bbeba2d8b0aaa9/qiskit/circuit/library/pauli_evolution.py#L120

I'm not 100% sure, but if we pass in the complex coefficients, won't it just end up causing other errors, since it's not a unitary gate? If so, I think this is more helpful.

I'm not 100% sure, but if we pass in the complex coefficients, does it just cause other errors, since it's not a unitary gate? If so, I think this is more helpful.

I agree it would be more helpful, but I think it would be better to be precise and not allow any complex part at all 🙂 But since that breaks the application CIs we'll have to postpone this check.
And I'm a little worried that np.real_if_close is still unstable -- what if there's some code in the applications where the complex part is just above the threshold that numpy accepts as real?

If the imaginary part is larger than the threshold of np.real_if_close, it raises ValueError. You can configure the threshold by tol option.
https://numpy.org/doc/stable/reference/generated/numpy.real_if_close.html

I just think it would be the safest solution to not change the behavior of the stable release at all (and remove the check completely).
We can definitely discuss if we should use np.real_if_close for the 0.20 release. But if you're sure that using it already now is safe enough for the applications and won't break down the road, then I'm also fine using it now already 🙂

This is just a workaround. I don't have any strong opinion. Nature team may have preference. What do you think, @mrossinek?

From what I understand the problem is that Terra introduced a check against complex coefficients. While I do not think that this should be causing any issues in Nature (I cannot speak for other application modules), it does not seem like a change that would go into a bugfix release. However, one could argue it should go into a bugfix release if the presence of complex coefficients does indeed result in buggy behavior.
That said,

If the imaginary part is larger than the threshold of np.real_if_close, it raises ValueError. You can configure the threshold by tol option. https://numpy.org/doc/stable/reference/generated/numpy.real_if_close.html

I do not see this raising ValueError. Instead it appears to keep complex numbers when they are not close to being real.
If that is indeed the case, then I do not think that this fix causes a problem unless an application module requires complex phases (which, as I said, to my knowledge is not the case).

Fixing it on 0.19 directly by reverting the check sounds good to me 👍🏻
@mrossinek and I did some digging and we think we found the source of the spurious complex parts in the coefficients. Namely when we taper our Hamiltonian with Z2Symmetries.taper there is some arithmetic with complex numbers involved -- even if the Hamiltonian has only real coeffs -- which leads to roundoff errors that are complex. These roundoff errors are not removed and make their way into the PauliEvolutionGate.
One solution to that would be to adjust SparsePauliOp.simplify, which is called after the complex arithmetic, to filter out these small roundoff errors.

I'm against SparsePauliOp automatically removing small imaginary terms at any point - instead, can you implement the truncation yourself within Z2Symmetries, where you've got the full context, and know that any small introduced imaginary components should be neglected?  SparsePauliOp should be a general quantum information tool; we shouldn't be encoding assumptions from one particular use case into it.  That's what I meant above by the caller being responsible.  Inside the PauliEvolution code, it should not be possible to gain an imaginary component at all.
That said, in a very quick look over Z2Symmetries, I couldn't see an obvious places where an imaginary component could enter if it didn't exist before.  Are the imaginary values coming from something in Nature?

OK. Let's merge  #7594.

it's slightly more complicated because SparsePauliOp uses complex128 as its dtype

We are planning to implement the configurable dtype #6086 and #7215. I think this resolve the type problem.


linux-x64 artifacts are 32-bit binaries

christian@mac:~/lefty/frontend/litt$ flutter build apk --release
Running 'gradlew assembleRelease'...

Oops; flutter has exited unexpectedly.
Crash report written to /home/christian/lefty/frontend/litt/flutter_05.log;
please let us know at https://github.com/flutter/flutter/issues.

FAILURE: Build failed with an exception.

Where:
Script '/home/christian/opt/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 202

What went wrong:
Execution failed for task ':app:flutterBuildRelease'.

Process 'command '/home/christian/opt/flutter/bin/flutter'' finished with non-zero exit value 1

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Building AOT snapshot in release mode (android-arm-release)...     |
Gradlew failed: 1

Here are the logs in the file /home/christian/lefty/frontend/litt/flutter_05.log
Flutter crash report; please file at https://github.com/flutter/flutter/issues.
command
flutter build aot --target lib/main.dart --target-platform android-arm --output-dir /home/christian/lefty/frontend/litt/android/app/build/intermediates/flutter/release --release

exception
ProcessException: No such file or directory
  Command: /home/christian/opt/flutter/bin/cache/artifacts/engine/android-arm-release/linux-x64/gen_snapshot --vm_snapshot_data=/home/christian/lefty/frontend/litt/android/app/build/intermediates/flutter/release/vm_snapshot_data --isolate_snapshot_data=/home/christian/lefty/frontend/litt/android/app/build/intermediates/flutter/release/isolate_snapshot_data --packages=.packages --url_mapping=dart:ui,../../../opt/flutter/bin/cache/pkg/sky_engine/dart_ui/ui.dart --url_mapping=dart:jni,../../../opt/flutter/bin/cache/pkg/sky_engine/dart_jni/jni.dart --url_mapping=dart:vmservice_sky,../../../opt/flutter/bin/cache/pkg/sky_engine/sdk_ext/vmservice_io.dart --print_snapshot_sizes --embedder_entry_points_manifest=/home/christian/opt/flutter/bin/cache/artifacts/engine/android-arm-release/dart_vm_entry_points.txt --embedder_entry_points_manifest=/home/christian/opt/flutter/bin/cache/artifacts/engine/android-arm-release/dart_io_entries.txt --vm_snapshot_instructions=/home/christian/lefty/frontend/litt/android/app/build/intermediates/flutter/release/vm_snapshot_instr --isolate_snapshot_instructions=/home/christian/lefty/frontend/litt/android/app/build/intermediates/flutter/release/isolate_snapshot_instr --embedder_entry_points_manifest=/home/christian/opt/flutter/bin/cache/artifacts/engine/android-arm-release/dart_vm_entry_points_android.txt --no-sim-use-hardfp --no-use-integer-division /home/christian/lefty/frontend/litt/lib/main.dart

dart:io                                                           Process.run
package:process/src/interface/local_process_manager.dart 64       LocalProcessManager.run
package:flutter_tools/src/base/process.dart 138                   runAsync.<async>
===== asynchronous gap ===========================
dart:async                                                        Future.Future.microtask
package:flutter_tools/src/base/process.dart                       runAsync
package:flutter_tools/src/commands/build_aot.dart 258             _buildAotSnapshot.<async>
===== asynchronous gap ===========================
dart:async                                                        Future.Future.microtask
package:flutter_tools/src/commands/build_aot.dart                 _buildAotSnapshot
package:flutter_tools/src/commands/build_aot.dart 88              buildAotSnapshot.<async>
===== asynchronous gap ===========================
dart:async                                                        Future.Future.microtask
package:flutter_tools/src/commands/build_aot.dart                 buildAotSnapshot
package:flutter_tools/src/commands/build_aot.dart 57              BuildAotCommand.runCommand.<async>
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/commands/build.dart 71                  BuildSubCommand.runCommand.<async>
===== asynchronous gap ===========================
dart:async                                                        _asyncThenWrapperHelper
package:flutter_tools/src/commands/build_aot.dart                 BuildAotCommand.runCommand
package:flutter_tools/src/runner/flutter_command.dart 148         FlutterCommand.verifyThenRunCommand.<async>
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/dart/pub.dart 68                        pubGet.<async>
===== asynchronous gap ===========================
dart:async                                                        _asyncThenWrapperHelper
package:flutter_tools/src/runner/flutter_command.dart             FlutterCommand.verifyThenRunCommand
package:flutter_tools/src/commands/build.dart 50                  BuildSubCommand.verifyThenRunCommand.<async>
===== asynchronous gap ===========================
dart:async                                                        Future.Future.microtask
package:flutter_tools/src/commands/build.dart                     BuildSubCommand.verifyThenRunCommand
package:flutter_tools/src/runner/flutter_command.dart 119         FlutterCommand.run
package:args/command_runner.dart 194                              CommandRunner.runCommand.<async>
===== asynchronous gap ===========================
dart:async                                                        Future.Future.microtask
package:args/command_runner.dart                                  CommandRunner.runCommand
package:flutter_tools/src/runner/flutter_command_runner.dart 212  FlutterCommandRunner.runCommand.<async>
===== asynchronous gap ===========================
dart:async                                                        Future.Future.microtask
package:flutter_tools/src/runner/flutter_command_runner.dart      FlutterCommandRunner.runCommand
package:args/command_runner.dart 109                              CommandRunner.run.<fn>
dart:async                                                        Future.Future.sync
package:args/command_runner.dart 109                              CommandRunner.run
package:flutter_tools/src/runner/flutter_command_runner.dart 150  FlutterCommandRunner.run
package:flutter_tools/executable.dart 124                         main.<async>.<fn>.<fn>.<async>
===== asynchronous gap ===========================
package:stack_trace                                               Chain.capture
package:flutter_tools/executable.dart 123                         main.<async>.<fn>
package:flutter_tools/src/base/context.dart 76                    AppContext._run.<async>

flutter doctor
[✓] Flutter (on Linux, channel master)
    • Flutter at /home/christian/opt/flutter
    • Framework revision f16dea290b (6 hours ago), 2017-02-10 09:49:46
    • Engine revision f306a6f701
    • Tools Dart version 1.22.0-dev.10.6

[✓] Android toolchain - develop for Android devices (Android SDK 25.0.2)
    • Android SDK at /home/christian/opt/android_sdk
    • Platform android-25, build-tools 25.0.2
    • ANDROID_HOME = /home/christian/opt/android_sdk
    • Java(TM) SE Runtime Environment (build 1.8.0_40-b26)

[✓] IntelliJ IDEA Community Edition (version 2016.3)
    • Dart plugin version 163.13137
    • Flutter plugin version <IP_ADDRESS>

[✓] Connected devices
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 7.0 (API 24) (emulator)

@jakobr-google or @jason-simmons might know.

I can't repro this on a newly created project. @christian-lefty do these steps work for you?
flutter create newapp
cd newapp
flutter build apk --release

Does /home/christian/opt/flutter/bin/cache/artifacts/engine/android-arm-release/linux-x64/gen_snapshot exist?

@mit-mit  it fails on the newly created project.
@eseidelGoogle The file exists but when I try to run it it says No such file or directory
This appears to be because it's a 32 bit binary and I'm running ubuntu64
as is described in:
http://askubuntu.com/questions/133389/no-such-file-or-directory-but-the-file-exists

Indeed this is a 32 bit executable (it's misleading that it's under linux-x64):
file  /home/christian/opt/flutter/bin/cache/artifacts/engine/android-arm-release/linux-x64/gen_snapshot
/home/christian/opt/flutter/bin/cache/artifacts/engine/android-arm-release/linux-x64/gen_snapshot: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, not stripped

I'm not sure whether this is an error in flutter/engine gn files?  dart-sdk gn files, or an intentional configuration of our build/bots?
Certainly that line is odd, pulling from the 32-bit out dir and putting the file into a zip with the name 64 in it?

Note that the only time we pull from the clang_x64 directory is for iOS:
https://chromium.googlesource.com/chromium/tools/build.git/+/master/scripts/slave/recipes/flutter/engine.py#240
All the rest use clang_x86

Is it expected that 64-bit linux can't run 32-bit binaries?  I guess one might not want to have all the 32-bit .sos installed. :)

Probably the right fix is to just fix the artifacts to be 64-bit binaries for now, and we can separately add 32-bit linux binaries later as needed?

You need to be able to run 32 bit binaries to build Android applications.  The Android tools require it.

OK.  I guess this is fodder for a flutter doctor check then.

Hey sorry this was my mistake: I've been able to fix the issue by installing support for 32 bit binaries using:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

There is another bug https://github.com/flutter/flutter/issues/6207 (which we've had many dupes of) which sounds very similar.

Closing; this tracks the same libstdc++6:i386 issue.


[DC-616] Add Azure Storage Information

@pshapiro4broad hmm… I wonder if we should have schema tests specifically. Let's talk at standup?


Reworking ScreenShareHandler

ScreenShareHandler has been reworked to provide ability to use it in testing purposes
Added tests for ScreenShareHandler

!squash

Damn I commented after it was merged...


Flutter Web Crash on Safari

I have an issue with Flutter Web on Safari. My website crashes as soon as Gradient Text is displayed. Does anyone have a way to fix it?

Hello, thanks for your reports but I need more information, like example code and error throwed, and dependencies you use on your application, because the package works correctly.

But the version of dart in pub.dev was updated.

Because I can not reproduce exception and feedback not provided; I proceed to close


Small typo fix in logging statement.

Thank you. As these changes are quite small, I'll release it with the next bigger thing, if you don't mind.


Combatting memory leaks

Known VRAM leaks:

If generating OOMs, ironically, it does not free memory (standalone mode).
Generating a lot of images (with zoedepth?) maybe creates OOM.

Known RAM leaks:

Batching from directory creates all the PIL image objects at once. Weird...

Batching from directory loads all the images at once. Not ideal.

its very not ideal, because it can hit C runtime max open files limit
And when you have just 1 more file than 8192, it throws OSError: [Errno 24] Too many open files: './models/leres/res101.pth' error
Which is very annoying when trying to do a whole video, since you have to convert it in like 4 rus...

@T0biasCZe Please try out the new Single Video mode :)

By the way, 8192 is a lot of files O_O

Wellllll, at 24fps thats just 5 minutes 41seconds :D and considering it runs at 1.5files/s (with res101) it doesnt take that long
And

Also, with the video mode, if the conversion stops mid generation (for example error or something), the already generated images will propably be lost and it will be uncontinuable (which is issue for 20 minute vids...)

Yeah like expected, mid conversion threw error, video gon 😄

Unless it could be made to output the converted frames into jpegs instead of back into another video thinkingAnd then when converting the frames, it would check if the frame already exists in the folder and potencially skip it thinking

This would make it really complicated. I will think about this, maybe there will be a solution in the future.

Please update the extension and try again.

@T0biasCZe Please update the extension and try again.

No, no. I meant that images that will consist the video are already created - 16-bit grayscale png-s for depthmaps and/or 24-bit images for colorvideos. What was left is to bundle them into a video. Please try again (after updating the extension), it should just work.

Jpeg/Png doesnt matter. And i meant the already processed and finished images, not the raw images from the input video...
sooo... It should be possible to make the processing continue in case it for any reasons stopped during the conversion 🙃

And yeah the new update forks.... (but that wont help with other mid process interuptions)

Please send the stacktrace... You know, otherwise I can't help.

sooo... It should be possible to make the processing continue in case it for any reasons stopped during the conversion upside_down_face

Yep, a good idea, but not priority right now. There are some more pressing issues at the moment... If you know how to fix it, you could create a MR, I would happily review and merge :+1:

Please send the stacktrace... You know, otherwise I can't help.

i didnt mean any specific error right now, but I meant overall if it stopped later, for example system running out of ram ehm memory laks, windows crashing, etc. that would make the conversion get interrupted mid run

@T0biasCZe Sorry, misread your message

Pls do output files one at a time, not all at the very end,,, so when there is an error I do not have to start all over, I can continue with the files that aare not processed...  it was working like that before... I am having problems with large files...


Add support for MIPS unwinding

Well, looks like we need to support unwinding of MIPS minidumps.
This is complicated by a few things. MIPS calling conventions define 3 different types of functions it would seem:

Stackless leaf functions
Leaf functions with stacks
Non-leaf functions

Similarly to ARM, MIPS saves the return addr in a register ($ra), and only saves it on the stack for non-leaf functions. To make things worse, the DWARF CFI for MIPS does not always have instructions for ra. I think this is the case for stackful leaf functions.
Some examples from dwarfdump:
stackless leaf function:
this doesn’t seem to define anything, so we might as well skip generating anything for it 🤷🏻♂
000003e8 00000010 000003ec FDE cie=00000000 pc=00016d00...00016d02
  Format:       DWARF32
  DW_CFA_nop:
  DW_CFA_nop:
  DW_CFA_nop:

  0x16d00: CFA=SP_64

leaf function with stack:
it has no instructions on how to restore $ra, thats why I think its a leaf function. It returns to $ra.
000004d4 0000001c 000004d8 FDE cie=00000000 pc=00016de8...00016e6c
  Format:       DWARF32
  DW_CFA_advance_loc: 10
  DW_CFA_def_cfa_offset: +16
  DW_CFA_offset: S1_64 -4
  DW_CFA_offset: S0_64 -8
  DW_CFA_advance_loc1: 116
  DW_CFA_restore: S0_64
  DW_CFA_restore: S1_64
  DW_CFA_def_cfa_offset: +0
  DW_CFA_nop:
  DW_CFA_nop:

  0x16de8: CFA=SP_64
  0x16df2: CFA=SP_64+16: S0_64=[CFA-8], S1_64=[CFA-4]
  0x16e66: CFA=SP_64

non-leaf function
this function restores $ra from the stack and would jump to that addr.
00000514 00000018 00000518 FDE cie=00000000 pc=00015b94...00015bba
  Format:       DWARF32
  DW_CFA_advance_loc: 22
  DW_CFA_def_cfa_offset: +32
  DW_CFA_offset: RA_64 -4
  DW_CFA_advance_loc: 12
  DW_CFA_restore: RA_64
  DW_CFA_def_cfa_offset: +0
  DW_CFA_nop:
  DW_CFA_nop:

  0x15b94: CFA=SP_64
  0x15baa: CFA=SP_64+32: RA_64=[CFA-4]
  0x15bb6: CFA=SP_64

Some docs that might be helpful:

https://chortle.ccsu.edu/assemblytutorial/Chapter-26/ass26_4.html
https://courses.cs.washington.edu/courses/cse410/09sp/examples/MIPSCallingConventionsSummary.pdf

Well, thankfully, the stackwalkers are all independent impls so each one can be as quirky as it wants. The "no instructions for .ra" thing is the most annoying, for which there are 3 obvious solutions:

weaken walker.rs to allow .ra to be missing, and make it implicitly forward
symbolic refuses to emit breakpad CFI for that function
symbolic "desugars" the CFI when converting to breakpad to add the explicit .ra entry

My vote's for 3, seems the most useful to everyone, and I don't see any way it could ever be "wrong" unless the input CFI is actually corrupt.

Yes, I started out with 3, which I think is a sensible thing to do, as calling conventions pretty much say that unwinding is supposed to work that way.

This was recently merged


Make algorithm faster

MUST GO FASTER

I have not had time to make it look nice, and write proper comments yet, but it should work

Now it also looks nice :)

bench -accuracy is only used for internal testing, so given our limited timeframe, I think we should let that slide, as long as the actual program runs properly on all machines :)

The bench -accuracy issue is now tracked in #70


CORS problem ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH

Hi,
I use graphql-apolo-adonis extension to create my own graphQL api.
Query request works fine, but when I use Mutation query, I have got this request error:
POST http://localhost:3333/graphql net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH ApolloError.js:34 Uncaught (in promise) Error: Network error: Failed to fetch     at new ApolloError (ApolloError.js:34)     at Object.error (QueryManager.js:122)     at SubscriptionObserver.error (zen-observable.js:174)     at httpLink.js:147     at <anonymous>
I tryed to change cors configs, but no changes.
With another graphQL API (express), I have not this error.
Thx for helping

Hey @JeremyGreaux! 👋
This is an issue directly with the package.
Please, create an issue there https://github.com/ammezie/adonis-apollo-server,
Thanks


completed-docs: Added option to check get and set accessors.

PR checklist

[x] Addresses an existing issue: #3479
[x] New feature, bugfix, or enhancement

[x] Includes tests

[x] Documentation update

Overview of change:
The "properties" for the completed-docs rule now checks GetAccessor and SetAccessor node types.
CHANGELOG.md entry:
[enhancement] "properties" option for completed-docs rule now checks getter and setter accessors.

Added an "accessor" option to the completed-docs rule that causes GetAccessor and SetAccessor node types to be checked for JSDoc comments.

To the consumer it doesn't matter if it's an accessor or a "real" property. That's an implementation detail.
I think checking accessors should be enabled by enabling "properties".

Not sure why the "testNext" configuration is failing. The "trailing-comma" rule has failing tests, but my changes have nothing to do with that. 😕

@reduckted it's a bug in typescript@next, see https://github.com/palantir/tslint/pull/3494#issuecomment-345191452

@ajafff Ah, good catch. Accessors in object literals were expected to have documentation comments. I've made the rule skip over them now.
Properties on object literals didn't require documentation. I'm not too familiar with the entire TypeScript syntax tree, but I'm guessing properties in object literals and properties in classes don't use the same SyntaxKind.

@reduckted

I'm guessing properties in object literals and properties in classes don't use the same SyntaxKind.

That's correct. But MethodDeclaration is the same for both.

thanks @reduckted
I'll open a follow-up PR to exclude method declarations in object literals


How do I dynamically set the SLD style based on properties

Question
16/5000
How do I dynamically set the color of a surface based on data properties？

For example, I have a piece of data with a 'color' attribute. The attribute value is used to set the color of the data. The SLD style is:

ogc:PropertyNamecolor</ogc:PropertyName>

1
        </Fill>
        <Stroke>
          <CssParameter  name="stroke">
            <ogc:PropertyName>color</ogc:PropertyName></CssParameter>
          <CssParameter  name="stroke-width">1</CssParameter>
        </Stroke>
      </PolygonSymbolizer>

Why doesn't the SldStyleParser recognize the SLD style format?

@wmengs currently we do not support setting the stroke parameter dynamically within a single rule.
We do have a classification feature in the geostyler-ui that creates distinct rules based on data properties, but that does not support setting the color value directly from the data, but rather applies an explicitly defined color palette.
Supporting dynamic rules would be a nice feature to have. Would you like to create a PR for that?

@wmengs currently we do not support setting the stroke parameter dynamically within a single rule.
We do have a classification feature in the geostyler-ui that creates distinct rules based on data properties, but that does not support setting the color value directly from the data, but rather applies an explicitly defined color palette.
Supporting dynamic rules would be a nice feature to have. Would you like to create a PR for that?

This is related to https://github.com/geostyler/geostyler-sld-parser/issues/697


move user images to s3 and support larger file sizes

S3 is pretty self-explanatory. The only larger size that we really need right now is 500x500>, so I guess that could be large. Both changes will necessitate re-processing all our images, so maybe they can be done at once.

Just re-discovering this. This would theoretically break the obs widget for all people still using it, and anyone else deep-linking to our user images. @budowski and @alexshepard, does that include our apps?

@kueda - do you mean if the app somewhere saves old image URLs and does not update them?

Yeah, but only the user profile image.

OK, got it - the Android app doesn't have any of those kind of user-image references.

This would help on the server end. The NFS server hosting these images frequently runs low on space (at least once a month when we generate the GBIF export), and this would free up about 11GB. So I'd be interested in seeing this happen

Forgot I'd assigned myself. Go for it if you have the time, Patrick.


Depend on Spark 1.2

Depend on Spark 1.2 on Travis and recommend this version in the readme.

Merged.

@holdenk I pushed this (squashed) patch because tests etc were passing, and now on master they are not :( I'll look at it when I get home.


Add b2w2 area data, update maps

Name of Resource
Add b2w2 area data, update maps
Description
Adding area data for b2w2 only, since it is not fully compatible with bw.
Reorganizing the gen 5 map resource according to the style guide and adding more information.
Which Generation (4/5/Universal)?
5
Notes
This time with updated SUMMERY.md. I've always overlooked it before.

@PlatinumMaster The "review request" is only for the area data.

Yes and yes I guess.
I may add more stuff to this branch sooner or later but it's probably better to not squash to many topics into one commit.


Don't use 'eval' to get the global

To close issue #49

Merged as a54f4177d2b80591ab12e215bb8802754664bb54. Thanks!