Instructs Travis CI to publish to NPM new tags

Changed travis.yml to include publish instructions when new tags are pushed to the repo

@minademian

Yes it should. I need to rebase with the version that you changed to. We should probably open a separate PR for upgrading the Node.JS version in Travis.
It's encrypted. Not the real token.

Alright cool. I’ll create the separate PR and submit. I’ll hold off on approving until that’s done.

Perfect. I created an issue for it.
On Mon, Nov 26, 2018 at 12:45 PM Mina Demian<EMAIL_ADDRESS>wrote:

Alright cool. I’ll create the separate PR and submit. I’ll hold off on
approving until that’s done.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/shaharke/node-ansible/pull/48#issuecomment-441595816,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAnDv8PHenZqgH0Wi7jpFcMThuYopOrtks5uy8ZRgaJpZM4YykUu
.


weird error/ crash

I compiled  it using :
roc dev  reprod.roc   --linker=legacy
    app "exp"
    packages { pf: "https://github.com/roc-lang/basic-cli/releases/download/0.3.1/97mY3sUwo433-pcnEQUlMhn-sWiIf_J9bPhcAFZoqY4.tar.br" }
    imports [pf.Stdout]
    provides [main] to pf

makeSquare = \ x, y, val ->
    makeSquareRec x y val []

makeSquareRec = \ x, y, val, list  ->
    if y == 0 then
        list
    else
        makeSquareRec x (y - 1) val (List.append  list (List.repeat  val  x ))

makeCubeRec = \ x, y, z, val ,list  ->
    if z == 0 then
        list
    else
        makeCubeRec  x y  (z - 1) val (List.append list (makeSquare x y val ) )

makeCube = \ x, y, z, val  ->
    makeCubeRec x y z val []

increasedList = \ cnt, list ->
        if cnt == 0 then
            list
        else
            increasedList (cnt - 1) (List.prepend  list (cnt - 1))

shiftList  = \ center, list ->
        List.map list (\ elem ->  elem + center )

circle = \ x, y, z, r ->
    size = 2*r +1
    list = increasedList size []
    listX = shiftList -r  list
    listY = shiftList -r  list
    listZ = shiftList -r  list
    List.walk listX  [] (
        \ stateX, idx -> List.walk listY stateX (
            \ stateY, idy -> List.walk listY stateY  (
                \ stateZ, idz ->
                    if ( Num.powInt idx 2 ) + ( Num.powInt idy 2 ) + ( Num.powInt idz 2 )  <= ( Num.powInt r 2 ) then
                        List.append  stateZ  {x : idx + x ,y: idy + y,z : idz + z}
                    else
                        stateZ )))

getListFromList = \ list, cnt  ->
    when List.get list cnt  is
        Ok val -> val
        Err _ -> []

modifyFieldCube  = \ cube, x, y, z, val ->
    getListFromList cube z
    |> getListFromList y
    |> List.replace x val
    |> (\ updated -> (List.replace cube z ( List.replace (getListFromList cube z) y updated.list  ).list   ).list  )

setShape = \ cube, shape, val ->
    List.walk shape cube  (
        \ cb, point ->
            modifyFieldCube cb point.x point.y point.z val )

main =

    x = 10
    y = 16
    z = 10
    delta  = 2
    modCub  =
            makeCube x y z 0

    sl  = circle  5  9  4   1

    slice =
        makeCube x y z 0
        |> setShape sl  1
    Stdout.line  "imho, is  should work "

The reason you're getting an integer overflow here is because Roc is inferring that most of the numbers you're using are Nats, which are unsigned integers. So when you try to subtract 0 - 3, instead of producing a negative number, you get a crash because Nats aren't allowed to be negative.
In this case, it seems like the reason Roc is inferring that everything's a Nat is because you're passing numbers to certain List functions that expect a Nat. So if you insert Num.toNat in a few places, Roc will no longer assume everything's a Nat:
app "exp"
    packages { pf: "https://github.com/roc-lang/basic-cli/releases/download/0.3.1/97mY3sUwo433-pcnEQUlMhn-sWiIf_J9bPhcAFZoqY4.tar.br" }
    imports [pf.Stdout]
    provides [main] to pf

makeSquare = \ x, y, val ->
    makeSquareRec x y val []

makeSquareRec = \ x, y, val, list  ->
    if y == 0 then
        list
    else
        makeSquareRec x (y - 1) val (List.append  list (List.repeat  val  (Num.toNat x) ))

makeCubeRec = \ x, y, z, val ,list  ->
    if z == 0 then
        list
    else
        makeCubeRec  x y  (z - 1) val (List.append list (makeSquare x y val ) )

makeCube = \ x, y, z, val  ->
    makeCubeRec x y z val []

increasedList = \ cnt, list ->
        if cnt == 0 then
            list
        else
            increasedList (cnt - 1) (List.prepend  list (cnt - 1))

shiftList  = \ center, list ->
        List.map list (\ elem ->  elem + center )

circle = \ x, y, z, r ->
    size = 2*r +1
    list = increasedList size []
    listX = shiftList -r  list
    listY = shiftList -r  list
    listZ = shiftList -r  list
    List.walk listX  [] (
        \ stateX, idx -> List.walk listY stateX (
            \ stateY, idy -> List.walk listY stateY  (
                \ stateZ, idz ->
                    if ( Num.powInt idx 2 ) + ( Num.powInt idy 2 ) + ( Num.powInt idz 2 )  <= ( Num.powInt r 2 ) then
                        List.append  stateZ  {x : idx + x ,y: idy + y,z : idz + z}
                    else
                        stateZ )))

getListFromList = \ list, cnt  ->
    when List.get list (Num.toNat cnt)  is
        Ok val -> val
        Err _ -> []

modifyFieldCube  = \ cube, x, y, z, val ->
    getListFromList cube z
    |> getListFromList y
    |> List.replace (Num.toNat x) val
    |> (\ updated -> (List.replace cube (Num.toNat z) ( List.replace (getListFromList cube z) (Num.toNat y) updated.list  ).list   ).list  )

setShape = \ cube, shape, val ->
    List.walk shape cube  (
        \ cb, point ->
            modifyFieldCube cb point.x point.y point.z val )

main =

    x = 10
    y = 16
    z = 10
    delta  = 2
    modCub  =
            makeCube x y z 0

    sl  = circle  5  9  4   1

    slice =
        makeCube x y z 0
        |> setShape sl  1
    Stdout.line  "imho, is  should work "

You can make this change more robust by adding type annotations to make sure Roc knows you want everything to be a signed integer (in the following example, I128):
app "exp"
    packages { pf: "https://github.com/roc-lang/basic-cli/releases/download/0.3.1/97mY3sUwo433-pcnEQUlMhn-sWiIf_J9bPhcAFZoqY4.tar.br" }
    imports [pf.Stdout]
    provides [main] to pf

makeSquare : I128, I128, I128 -> List (List I128)
makeSquare = \ x, y, val ->
    makeSquareRec x y val []

makeSquareRec = \ x, y, val, list  ->
    if y == 0 then
        list
    else
        makeSquareRec x (y - 1) val (List.append  list (List.repeat  val  (Num.toNat x) ))

makeCubeRec = \ x, y, z, val ,list  ->
    if z == 0 then
        list
    else
        makeCubeRec  x y  (z - 1) val (List.append list (makeSquare x y val ) )

makeCube : I128, I128, I128, I128 -> List (List (List I128))
makeCube = \ x, y, z, val  ->
    makeCubeRec x y z val []

increasedList : I128, List I128 -> List I128
increasedList = \ cnt, list ->
        if cnt == 0 then
            list
        else
            increasedList (cnt - 1) (List.prepend  list (cnt - 1))

shiftList : I128, List I128 -> List I128
shiftList  = \ center, list ->
        List.map list (\ elem ->  elem + center )

circle : I128, I128, I128, I128 -> List { x: I128, y: I128, z: I128 }
circle = \ x, y, z, r ->
    size = 2*r +1
    list = increasedList size []
    listX = shiftList -r  list
    listY = shiftList -r  list
    listZ = shiftList -r  list
    List.walk listX  [] (
        \ stateX, idx -> List.walk listY stateX (
            \ stateY, idy -> List.walk listY stateY  (
                \ stateZ, idz ->
                    if ( Num.powInt idx 2 ) + ( Num.powInt idy 2 ) + ( Num.powInt idz 2 )  <= ( Num.powInt r 2 ) then
                        List.append  stateZ  {x : idx + x ,y: idy + y,z : idz + z}
                    else
                        stateZ )))

getListFromList : List (List a), I128 -> List a
getListFromList = \ list, cnt  ->
    when List.get list (Num.toNat cnt)  is
        Ok val -> val
        Err _ -> []

modifyFieldCube : List (List (List I128)), I128, I128, I128, I128 -> List (List (List I128))
modifyFieldCube  = \ cube, x, y, z, val ->
    getListFromList cube z
    |> getListFromList y
    |> List.replace (Num.toNat x) val
    |> (\ updated -> (List.replace cube (Num.toNat z) ( List.replace (getListFromList cube z) (Num.toNat y) updated.list  ).list   ).list  )

setShape : List (List (List I128)), List { x: I128, y: I128, z: I128 }, I128 -> List (List (List I128))
setShape = \ cube, shape, val ->
    List.walk shape cube  (
        \ cb, point ->
            modifyFieldCube cb point.x point.y point.z val )

main =

    x = 10
    y = 16
    z = 10
    delta  = 2
    modCub  =
            makeCube x y z 0

    sl  = circle  5  9  4   1

    slice =
        makeCube x y z 0
        |> setShape sl  1
    Stdout.line  "imho, is  should work "

For a high-level language like Roc without automatic conversion between integer types, I personally think it's a little unfortunate that we're using unsigned integers in so many places. I understand that it's better for efficiency, but I think this is a good example of how it can be unnecessarily confusing for beginners.

Looks like the root issues is that we allowing negating Nats and unsigned numbers. The original code probably should fail to type check.
0 - 3nat works as expected and crashes. In this case 0 is positive and so is 3. They are both unsigned and underflow.
The issue with the example above is when you have negate instead of subtraction:
-(3nat) in the repl is the minimal repro.
This should fail to type check.
Instead, it returns<PHONE_NUMBER>3709551613 : Nat.

ok thx for hints, I think it would be  difficult  to figure this on my own especially when dbg showed me very confusing information (or it was  crashing showing nothing ). Now  I understand  depending on functions I chained  together it was inferring different types, I considered  this as dbg  bug but it was reality. I think I will start put  type information on top to avoid problems.  I wanted to use  Nat but  I designed  function  circle  in such a way that int should be used instead and I was  screwed, but still it was  very little indication of coming problems. I will try to isolate  int only to circle and leave Nat in all other  places, and  val is F32 btw

Edit: -(3nat) maybe should type check, but if it does, it definitely should panic. The reason it maybe should type check is that -(0nat) is technically valid.

Yeah, it should panic if given a nonzero unsigned number - I think that's the fix we want! 👍

it should panic if given a nonzero unsigned number

Are you sure? That seems like a lot less pleasant of an experience in Roc. For example, with the code written above, the user will just get a panic and likely will not know why. Anytime a user is not typing functions, they may accidentally have an unsigned integer type without realizing it. This panic will essentially always be hit. What do we gain from making negate on unsigned numbers panic instead of just never type check? Even if the unsigned number is zero, there is no gain from calling negate, it is a no-op. I think failing to type check would be a much nicer user experience.

It looks like this bug is part of #5197

What do we gain from making negate on unsigned numbers panic instead of just never type check?

Short answer: numeric type simplicity!
Today Num.neg can be Num a -> Num a. What would the type of Num.neg be if we wanted it to accept these:
I8, I16, I32, I64, I128
F32, F64, Dec
...but reject these?
U8, U16, U32, U64, U128, Nat
It couldn't be Num a anymore; we'd need something like NotUnsignedInt a.
Keep in mind how numbers are implemented in order to be able to have type aliases like Int a and Frac a and Num a—for example, considering this is the type of Int and this is the type of U8, what do those types have to change to in a world where we have a type representing "not an unsigned integer, but otherwise could be either an Int or a Frac" (which only Num.neg and Num.abs would use, presumably)?
I'm not saying we couldn't do it (I sketched it out years ago; it involved records in the types of Int and U8), but my conclusion after thinking that through was "yeah, not worth the type system complexity just for this one Num.neg and Num.abs edge case." 😄


Create List of repositories/people in Android App

When we follow many people/watch repositories there is overwhelming amount of  information in the Newsfeed.
It would be great if we can create userdefined categories in the Android app (Will be nice if we can create categories in the webinterface as well). After creating the categories, we can see the news feed for each category.

I'm not sure this is within the project scope, as it isn't available in the web interface to my knowledge.

This will not be implemented


Reorganization of data-related modules

From @gemeinl https://github.com/braindecode/braindecode/pull/152/files/fac6cea5d6ea0af49dcb39c85d3be33dfa791c22#r470535380
Personally, I don't like the name "datautil" at all and feel like we could use some major refactoring here. My thoughts:
Currently, braindecode.datautil for me contains a mess of

Loading and saving datasets (serialization.py)
Creating datasets (xy.py, mne.py)
Preprocessing (preprocess.py)
Creating windows ((windowers.py) which is also a bad name, since we don't have windower classes anymore). Also, creating windows is a kind of preprocessing

We could probably rename braindecode.datautil to braindecode.preprocessing with preprocessing.py which contains a merge of preprocess.py and windowers.py.
We could add braindecode.serialization with serialization.py
I am not so sure what to do about xy.py and mne.py, though.

what do you suggest @robintibor ? braindecode started as your "baby" so you
should have an opinion ;)

Hm!
Let's extend @gemeinl  List to also include what is in dataset:

Loading and saving datasets (serialization.py)
Creating datasets (xy.py, mne.py)
Preprocessing (preprocess.py)
Creating windows ((windowers.py) which is also a bad name, since we don't have windower classes anymore). Also, creating windows is a kind of preprocessing
Base Dataset structure (base.py)
Specific Existing Datasets (bbci.py, moabb.py, tuh.py)

Maybe what I could see:

datasets

xy.py
mne.py
bbci.py
moabb.py
tuh.py

preprocessing

preprocess.py
windower.py

datautil

serialization.py
util.py

Another option would be deeper hierarchy, e.g.:

io

datasets

xy.py
mne.py
bbci.py
moabb.py
tuh.py

preprocess.py
windower.py
serialization.py
util.py

I like the first one better but I am wondering if the datautil module will
actually contain public functions. Maybe if it's 2 function to save and load
some models we can have 2 functions in the top namespace

+1 for option 1 with datautil in top namespace. Also, @robintibor did you want to combine windowers and preprocessing? If so we could do from braindecode.preprocessing import ... instead of braindecode.preprocessing.preprocess import ... which starts to feel a bit dense.

So should I do first option now before sprint including deprecation? Or we keep as is? @hubertjb  @gemeinl @agramfort @sliwy

+1 for me. Let's do option 1.


Export default child items of function parameter not included in 'navtree'

TypeScript version: 3.9.7 and 4.0.0-dev.20200803
Search Terms:

tsserver
navtree

Code:
export default foo({ bar: 1 });

Bug:
The nav tree does not include an entry for bar in it.
The bug appears when using code outline in Visual Studio Code 1.48.0-insider using both built-in TS 3.9.7 and TS@next 4.0.0-dev.20200803 and is present at least since VSCode 1.43.

The outline should contain also bar symbol (it was present in VSCode versions before 1.43, maybe earlier).
Excuse me, but I don't know how to reproduce it outside VSCode. It is a similar bug to: https://github.com/microsoft/TypeScript/issues/37877. The difference is, it takes place when we export function call with an object inside (related https://github.com/microsoft/vscode/issues/101570).

Thank you very much @a-tarasyuk ! 🎉


[BUG] Changing font size on the card - task items

Maybe not a bug, but I'm not able to change the font of the tasks - only the header.
card_mod:
style: |
ha-card {
color: black;
--ha-card-header-font-size: 80%;
}
Works for Header. What would be the best way to change the font on the task list (it shows quite big at the moment)

Hey! Sorry for the late reply.
You could try to "overload" .todoist-item-text, .todoist-item-text > span CSS rule.


docs: fix and update module installation

This pull request is intended to fix and update the pinia and @pinia/nuxt module installation by fixing the installation commands.

fix: The pinia package should be installed as a regular dependency while the @pinia/nuxt module should be installed as a dev dependency.
update: I have added pnpm among the package managers to be used when installing pinia and @pinia/nuxt module.

Why the difference? What’s the bug?

Why the difference? What’s the bug?

Hey @posva, it's not a bug. The nuxi CLI, most of the Nuxt modules and the Nuxt devTools install nuxt modules ( including @pinia/nuxt ) as dev dependencies and not as regular dependencies. On the Pinia documentation site, the @pinia/nuxt module is installed as a regular dependency.

Thanks. I confirmed with Daniel that this is a thing of the past. Adding it as a dep is fine: https://github.com/nuxt/nuxt/issues/22050


Split common files

Splits Common.h/.cpp into StringUtils.h/.cpp and MathUtils.h/.cpp
Adds #pragma message warning of deprecation for usages downstream of engine. Engine updates will be added as separate task.

@DanRStevens
What do you suggest for the version functions? Version.h?
I only left them in StringUtils.h because they dealt with "stringifying" the version number.

I was scratching my head over that one too. I suppose we can leave them in StringUtil for now for the above stated reason. We can find a more sane place for it as needed.


UI-states bouwen

Button UI States
So for the buttons we tried to give the user/reader as much feedback as possible by giving the buttons obvious states and different vibrant colors for each button so they feel more unique and with consistency as well. Each state is thought well of and will surely give the user enough feedback.

✅


User is not allowed to enter their own subjects

Summary
This might be intentional but the user is not allowed to enter their own subjects when creating an event and is only allowed to search for preset options.
Severity
Low, depending on what you meant

It was intentional.


improved UX in the Plutus playground

Area
[] Plutus Foundation Related to the GHC plugin, Haskell-to-Plutus compiler, on-chain code
[] Plutus Application Framework Related to the Plutus application backend (PAB), emulator, Plutus libraries
[] Marlowe Related to Marlowe
[x] Other Any other topic (Playgrounds, etc.)
Describe the feature you'd like
When working with the Plutus playground I would really like two features:

load scripts from file
name wallets
provide a minimal "calculator" for the miraculous POSIXTime

Describe alternatives you've considered
The tedious procedure now is to "cat" the script to a terminal or open it in a text editor, copy it to the clipboard, clear the script in the editor window, then paste the clipboard's content in the editor. This could be improved for usability.
Naming of the wallets would make them more human understandable. Also, Lars is explaining in his video the story of Alice, Bob, Charly which students need to translate to wallet 1, wallet 2, wallet 3.
These are small changes, but they could already massively improve usability of the playground.

Thanks for the issue!
The suggestions are good and reasonable, but they might be too advanced for the playground and in such cases you might want to use plutus-pab. Also the playground is not under active development at the moment.
P.S. https://www.epochconverter.com/ might be helpful to deal with POSIXTime values.


Fix sidebar a11y issues

References

Fixes #1185

Description
Address accessibility issues with the admin sidebar
Instructions for Reviewers
List of changes in this PR

Made HTML valid: only <li> elements in sidebar's <ul>
Combined menu item icons & text into a single <a> element
Added ARIA attributes

aria-expanded
aria-disabled

Improved keyboard UX

Expand the sidebar once you "tab into it"
Adjusted item spacing so focus outlines are more clear
Double checked that items in collapsed submenus can't receive focus

Reviewing

Run deque a11y check

The sidebar should look & act the same as on main

(Except keyboard navigation, which should be improved as described above)

Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
[x] My PR passes TSLint validation using yarn run lint
[x] My PR doesn't introduce circular dependencies
[x] My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
[x] My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.
[x] If my PR includes new, third-party dependencies (in package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.

@tdonohue thanks, I'll take a look at both issues soon!

@tdonohue Oh right, looks like I missed the | translate, thanks for pointing this out :+1:


Ch 2 Page 51 Issue with edit/new project view

going here.. /administrator/index.php?option=com_spm&view=project&layout=edit
I'm getting a "0 Table Projects not supported. File not found."

I've  went through this over 2 times very slowly.. dont know what is wrong. anyone have any idea?

@fred-dinkler - did you have this issue?

my fault! - i had "ProjectTable.php" not "ProjectsTable.php"


Minor Bug in estimator/tensorflow_estimator/python/estimator/canned/dnn.py

System information

Model Example : https://www.tensorflow.org/api_docs/python/tf/estimator/DNNClassifier
OS Platform and Distribution : MacOS 11.1
TensorFlow installed from : Binary (pip)
TensorFlow version : 2.4.0
Python version: 3.8

Current Behavior : Error
I was training a DNN Classifier recently and customizing the model as per the example mentioned in the link above.
Here is the code snippet of my model :
# Build a DNN with 2 hidden layers with 15 and 10 hidden nodes each.
classifier = tf.estimator.DNNClassifier(

    feature_columns=feature_columns, # Specify the list of feature columns

    hidden_units=[15, 10], # Specify the list of hidden units

    n_classes=2, # Specify the number of classes

    # Specify the optimizer
    optimizer = tf.compat.v1.train.ProximalAdagradOptimizer(
      learning_rate=0.02,
      l2_regularization_strength=0.005
    ),

    # Specify the dropout
    dropout = 0.2
)

However, while training the defined model, I get the following error :
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-17-dcc1423bd4e7> in <module>
      1 # Train the Model.
----> 2 classifier.train( input_fn=train_input_fn )

/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/estimator.py in train(self, input_fn, hooks, steps, max_steps, saving_listeners)
    347
    348       saving_listeners = _check_listeners_type(saving_listeners)
--> 349       loss = self._train_model(input_fn, hooks, saving_listeners)
    350       logging.info('Loss for final step: %s.', loss)
    351       return self

/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/estimator.py in _train_model(self, input_fn, hooks, saving_listeners)
   1173       return self._train_model_distributed(input_fn, hooks, saving_listeners)
   1174     else:
-> 1175       return self._train_model_default(input_fn, hooks, saving_listeners)
   1176
   1177   def _train_model_default(self, input_fn, hooks, saving_listeners):

/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/estimator.py in _train_model_default(self, input_fn, hooks, saving_listeners)
   1201           self._get_features_and_labels_from_input_fn(input_fn, ModeKeys.TRAIN))
   1202       worker_hooks.extend(input_hooks)
-> 1203       estimator_spec = self._call_model_fn(features, labels, ModeKeys.TRAIN,
   1204                                            self.config)
   1205       global_step_tensor = tf.compat.v1.train.get_global_step(g)

/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/estimator.py in _call_model_fn(self, features, labels, mode, config)
   1161
   1162     logging.info('Calling model_fn.')
-> 1163     model_fn_results = self._model_fn(features=features, **kwargs)
   1164     logging.info('Done calling model_fn.')
   1165

/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/canned/dnn.py in _model_fn(features, labels, mode, config)
    748     def _model_fn(features, labels, mode, config):
    749       """Call the defined shared dnn_model_fn_v2."""
--> 750       return dnn_model_fn_v2(
    751           features=features,
    752           labels=labels,

/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/canned/dnn.py in dnn_model_fn_v2(***failed resolving arguments***)
    572   # relies on global step as step counter.
    573   if mode == ModeKeys.TRAIN:
--> 574     optimizer = optimizers.get_optimizer_instance_v2(optimizer)
    575     optimizer.iterations = tf.compat.v1.train.get_or_create_global_step()
    576

/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/canned/optimizers.py in get_optimizer_instance_v2(opt, learning_rate)
    141     opt = opt()
    142   if not isinstance(opt, optimizer_v2.OptimizerV2):
--> 143     raise ValueError(
    144         'The given object is not a tf.keras.optimizers.Optimizer instance.'
    145         ' Given: {}'.format(opt))

ValueError: The given object is not a tf.keras.optimizers.Optimizer instance. Given: <tensorflow.python.training.proximal_adagrad.ProximalAdagradOptimizer object at 0x13b9bea90>

Expected behavior
The model is demanding the optimizer to be an instance of the Optimizer of the Keras API. This should not be the case, this is perfectly fine code.
So I did some digging inside the code in dnn.py and found a minor issue here :
https://github.com/tensorflow/estimator/blob/49efa0187fcfefa1660f0aae745a4c3c0793f752/tensorflow_estimator/python/estimator/canned/dnn.py#L574
Code There (Line 574) :
if mode == ModeKeys.TRAIN:
    optimizer = optimizers.get_optimizer_instance_v2(optimizer)
    optimizer.iterations = tf.compat.v1.train.get_or_create_global_step()

Here we can clearly see, that we are calling the get_optimizer_instance_v2 without checking the type of the optimizer. If our optimizer is of type tf.compat.v1.train.Optimizer, this call will fail, which is precisely what is happening.
Method to reproduce
Create a DNN Model with the tf.estimator api and specify optimizer of the type : tf.compat.v1.train.ProximalAdagradOptimizer
Please verify this issue on your end.
If verified, I will generate a pull request fixing this issue.

@Anmol-Sharma,
In order to expedite the trouble-shooting process, could you please provide the complete code to reproduce the issue reported here and the dataset you are using.

If verified, I will generate a pull request fixing this issue.

Also, please feel free to submit a PR regarding this. Thanks!

@Anmol-Sharma,
In order to expedite the trouble-shooting process, could you please provide the complete code to reproduce the issue reported here and the dataset you are using.

If verified, I will generate a pull request fixing this issue.

Also, please feel free to submit a PR regarding this. Thanks!

@amahendrakar You can use the code below as an example to trouble-shoot. It is similar to what I'm doing. I've verified the issue with this script as well.
Just use the Titanic dataset from kaggle and try to run this on this script.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# For Tensorflow
import tensorflow as tf
from tensorflow.estimator import LinearRegressor, DNNClassifier

# For Splitting Training / Testing Data
from sklearn.model_selection import train_test_split
import time

# Titanic Dataset from Kaggle
df = pd.read_csv("../../datasets/Titanic.csv")

# Drop the non-useful columns :- PassengerId, Name, Ticket Nr
df.drop(columns=["PassengerId", "Name", "Ticket"], inplace = True)

# Check of null-values
df.isna().sum()

# Cabin has a lot of null values, so we discard that column
df.drop(columns = ["Cabin"], inplace = True)

# Group Age by Sex and Age and Set the mean age by sex for the missing values.
res = df.groupby("Sex")["Age"].mean()
idx = res.index
mapping = dict(zip(idx, res))

# Add data for missing Age
df.loc[df["Age"].isnull() == True, "Age"] = df.loc[df["Age"].isnull() == True, "Sex"].map(lambda x : mapping[x])

# Add data for missing Embarked : Set the Embarked to the most common value
df.loc[df["Embarked"].isnull() == True, "Embarked"] = df["Embarked"].value_counts()[0]

df.drop(df[df.Embarked == 644].index.values, inplace = True)

output = df.Survived
df.drop(columns = ["Survived"], inplace = True)

train_x, test_x, train_y, test_y = train_test_split(df, output, test_size=0.1, random_state=int(time.time()))

CATEGORICAL_COLUMNS = ["Pclass", "Sex", "Embarked"]
NUMERIC_COLUMNS = ['Age', 'Fare']

# Create the list of feature columns
feature_columns = []
for feature_name in CATEGORICAL_COLUMNS:
    vocabulary = train_x[feature_name].unique()
    # For Categorical column we are specify categorical column with vocab list.
    # There are other types for categorical data as well. Refer to TF documentation.
    col = tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary)
    feature_columns.append(tf.feature_column.indicator_column(col))

# For Non categorical data, we define the column type to be numeric_column
for feature_name in NUMERIC_COLUMNS:
    feature_columns.append(tf.feature_column.numeric_column(feature_name, dtype=tf.float32))

# Define an inut function, which will generate the dataset for our model
def make_input_fn(data_df, label_df, num_epochs=10, shuffle=True, batch_size=32):

    # A helper function to be returned
    def input_function():
        ds = tf.data.Dataset.from_tensor_slices((dict(data_df), label_df))
        if shuffle:
            ds = ds.shuffle(1000)
        ds = ds.batch(batch_size).repeat(num_epochs)
        return ds

    return input_function

train_input_fn = make_input_fn(train_x, train_y, batch_size = 2)
eval_input_fn = make_input_fn(test_x, test_y, num_epochs=1, shuffle=False)

# Build a DNN with 2 hidden layers with 15 and 10 hidden nodes each.
classifier = tf.estimator.DNNClassifier(

    feature_columns=feature_columns, # Specify the list of feature columns

    hidden_units=[15, 10], # Specify the list of hidden units

    n_classes=2, # Specify the number of classes

    # Specify the dropout
    dropout = 0.2
)

# Train the Model.
classifier.train( input_fn=train_input_fn )

eval_result = classifier.evaluate(input_fn=eval_input_fn)

print('\nTest set accuracy: {accuracy:0.3f}\n'.format(**eval_result))

Also, I think the PR will have to be issued for the same in the tensorflow/estimator repository, as the core code in dnn.py is present there.
I will submit a PR there for this fix and link it here to this issue.

@amahendrakar You can use the code below as an example to trouble-shoot. It is similar to what I'm doing. I've verified the issue with this script as well.
Just use the Titanic dataset from kaggle and try to run this on this script.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# For Tensorflow
import tensorflow as tf
from tensorflow.estimator import LinearRegressor, DNNClassifier

# For Splitting Training / Testing Data
from sklearn.model_selection import train_test_split
import time

# Titanic Dataset from Kaggle
df = pd.read_csv("../../datasets/Titanic.csv")

# Drop the non-useful columns :- PassengerId, Name, Ticket Nr
df.drop(columns=["PassengerId", "Name", "Ticket"], inplace = True)

# Check of null-values
df.isna().sum()

# Cabin has a lot of null values, so we discard that column
df.drop(columns = ["Cabin"], inplace = True)

# Group Age by Sex and Age and Set the mean age by sex for the missing values.
res = df.groupby("Sex")["Age"].mean()
idx = res.index
mapping = dict(zip(idx, res))

# Add data for missing Age
df.loc[df["Age"].isnull() == True, "Age"] = df.loc[df["Age"].isnull() == True, "Sex"].map(lambda x : mapping[x])

# Add data for missing Embarked : Set the Embarked to the most common value
df.loc[df["Embarked"].isnull() == True, "Embarked"] = df["Embarked"].value_counts()[0]

df.drop(df[df.Embarked == 644].index.values, inplace = True)

output = df.Survived
df.drop(columns = ["Survived"], inplace = True)

train_x, test_x, train_y, test_y = train_test_split(df, output, test_size=0.1, random_state=int(time.time()))

CATEGORICAL_COLUMNS = ["Pclass", "Sex", "Embarked"]
NUMERIC_COLUMNS = ['Age', 'Fare']

# Create the list of feature columns
feature_columns = []
for feature_name in CATEGORICAL_COLUMNS:
    vocabulary = train_x[feature_name].unique()
    # For Categorical column we are specify categorical column with vocab list.
    # There are other types for categorical data as well. Refer to TF documentation.
    col = tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary)
    feature_columns.append(tf.feature_column.indicator_column(col))

# For Non categorical data, we define the column type to be numeric_column
for feature_name in NUMERIC_COLUMNS:
    feature_columns.append(tf.feature_column.numeric_column(feature_name, dtype=tf.float32))

# Define an inut function, which will generate the dataset for our model
def make_input_fn(data_df, label_df, num_epochs=10, shuffle=True, batch_size=32):

    # A helper function to be returned
    def input_function():
        ds = tf.data.Dataset.from_tensor_slices((dict(data_df), label_df))
        if shuffle:
            ds = ds.shuffle(1000)
        ds = ds.batch(batch_size).repeat(num_epochs)
        return ds

    return input_function

train_input_fn = make_input_fn(train_x, train_y, batch_size = 2)
eval_input_fn = make_input_fn(test_x, test_y, num_epochs=1, shuffle=False)

# Build a DNN with 2 hidden layers with 15 and 10 hidden nodes each.
classifier = tf.estimator.DNNClassifier(

    feature_columns=feature_columns, # Specify the list of feature columns

    hidden_units=[15, 10], # Specify the list of hidden units

    n_classes=2, # Specify the number of classes

    # Specify the dropout
    dropout = 0.2
)

# Train the Model.
classifier.train( input_fn=train_input_fn )

eval_result = classifier.evaluate(input_fn=eval_input_fn)

print('\nTest set accuracy: {accuracy:0.3f}\n'.format(**eval_result))

Also, I think the PR will have to be issued for the same in the tensorflow/estimator repository, as the core code in dnn.py is present there.
I will submit a PR there for this fix and link it here to this issue.

@Anmol-Sharma,
I did not face any errors while running the code with TF v2.4. Please find the gist of it here.
Could you please try running the code in a new virtual environment and check if you are facing the same error. Thanks!

@Anmol-Sharma,
I did not face any errors while running the code with TF v2.4. Please find the gist of it here.
Could you please try running the code in a new virtual environment and check if you are facing the same error. Thanks!

@amahendrakar
That is because in your code, one extra line of optimizer specification is missing. This 👇
# Specify the optimizer
    optimizer = tf.compat.v1.train.ProximalAdagradOptimizer(
      learning_rate=0.02,
      l2_regularization_strength=0.005
    ),

Add this to your model declaration and then try to train, you will get the error.

@amahendrakar
That is because in your code, one extra line of optimizer specification is missing. This 👇
# Specify the optimizer
    optimizer = tf.compat.v1.train.ProximalAdagradOptimizer(
      learning_rate=0.02,
      l2_regularization_strength=0.005
    ),

Add this to your model declaration and then try to train, you will get the error.

@Anmol-Sharma,
Thank you for the update.
@jvishnuvardhan,
I was able to reproduce the issue with TF v2.3, TF v2.4 and TF-nightly. Please find the gist of it here. Thanks!

@Anmol-Sharma,
Thank you for the update.
@jvishnuvardhan,
I was able to reproduce the issue with TF v2.3, TF v2.4 and TF-nightly. Please find the gist of it here. Thanks!

@amahendrakar 👍
I've issued a PR, fixing the issue in the tensorflow/estimator repo. Have a look when you can.

@amahendrakar 👍
I've issued a PR, fixing the issue in the tensorflow/estimator repo. Have a look when you can.

I found similar issue when use tf.compat.v1.train.AdagradOptimizer and multi_head in estimator in TF estimator 2.4
The PR https://github.com/tensorflow/estimator/pull/59 not solve my issue.
  File "/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/head/multi_head.py", line 491, in create_estimator_spec
    train_op = base_head.create_estimator_spec_train_op(
  File "/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/head/base_head.py", line 904, in create_estimator_spec_train_op
    validate_v2_optimizer(optimizer)
  File "/usr/local/lib/python3.8/site-packages/tensorflow_estimator/python/estimator/head/base_head.py", line 667, in validate_v2_optimizer
    raise ValueError(
ValueError: The given optimizer is not a tf.keras.optimizers.Optimizer instance. Given: <tensorflow.python.training.adagrad.AdagradOptimizer object at 0x7f4f8d11d070>

So I follow code in https://github.com/tensorflow/estimator/blob/r1.14/tensorflow_estimator/python/estimator/head/multi_head.py#L427
Change code in function create_estimator_spec_train_op like below:
          if isinstance(optimizer, optimizer_v2.OptimizerV2):
            validate_v2_optimizer(optimizer)
            validate_trainable_variables(trainable_variables)
            # optimizer_v2.get_updates always returns a list, and the first
            # element is the train_op.
            train_op = optimizer.get_updates(
                loss, trainable_variables)[0]
          else:
            train_op = optimizer.minimize(
                regularized_training_loss,
                global_step=training_util.get_global_step())

@Anmol-Sharma Is this still an issue ?
Estimators are not recommended for new code. Estimators  can behave unexpectedly, especially when combined with TF 2 code. Could you please refer to this link for more details  and let us know if it helps?
Thanks!

Hi @sushreebarsa I don't this is still an issue. At that time when I opened this issue, it was present and I raised a fix as well Here but due to very large merge conflicts (when the time to merge came) the changes were skipped.
So, I think this ticket can be closed, as mixing of Estimators with TF2 may not be a very good idea, so I'm closing this.


(WIP) Integrations: Weights and Biases Tracer Callback

In this PR, we update the callback handler in order to leverage the Tracer abstraction. This dramatically simplifies the integration code itself and leverages new LangChain media types exposed by W&B. As a result, the visualizations for such types can be customized.
Depends on: https://github.com/wandb/wandb/pull/5288 being landed and deployed in W&B library.

leaving a comment to 👀


[BottomNavigation] Navigation between tabs with RouterExtension

Environment
Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):

CLI: 6.1
Android Runtime: 6.1
iOS Runtime: 6.1

Describe the bug
When changing the tab of the bottom navigation with a routerextension.navigate, the page within the tab will load, but the bottomnavigation does not change to the tab. I would have to set the selected tab index manually by accessing the native element, which cannot be expected behaviour.
To Reproduce

Add a normal bottomnavigation component with multiple tabs. Navigate to a different page-router-outlet with the following command:
(From organized-trips, see the routing below!)
 const outlets = {};
 outlets["benefitTab"] = ["benefit"];
this.routerExt.navigate(["../post-login/default", { outlets, relativeTo: this.activatedRoute }]);

To give some further information, this is how my routing is constructed:
app.routing--> post-login.routing:
const routes: Routes = [
    {

        path: "default", component: MenuComponent, children: [
            {
                path: "organized-trips",
                outlet: "organizedTripsTab",
                component: NSEmptyOutletComponent,
                loadChildren: () => import("~/app/post-login/organized-trips/organized-trips.module").then((m) => m.OrganizedTripsModule),
                canActivate: [LoginActivate]
            },
            {
                path: "benefit",
                outlet: "benefitTab",
                component: NSEmptyOutletComponent,
                loadChildren: () => import("~/app/post-login/benefit/benefit.module").then((m) => m.BenefitModule),
                canActivate: [LoginActivate]
            },

Expected behavior
The navigation completes and the bottom navigation changes the tab.
I can see that the page actually loads, as ngOnInit is triggered, but no visual navigation happens.
Additional context
I want to achieve this due implement a navigation center.  In the final implementation i will pass additional params to the navigation as my benefits page has multiple tabs and i want to be able to deeplink for example to the second tab of the benefit page within th notification center.

Hey @tsonevn ,
i am sorry for the late reply, as i fixed the issue by navigation the bottom navigation via setting the selectedTabIndex property.
however this will lead to the navigation not completing if I want to change the current router outlets navigation at the same time of changing the tab of the bottomnavigation.
A little example:
Preset: You have two tabs in your Bottomnavigation, one tab called Master, and the other tab called OtherPage

You navigate from Master to Detail Page by clicking a button on Master
On Detail page you click a button which will trigger two events:
2.1 Reset the navigation of the page-router-outlet to the Master Page by calling this.routerExtension.back();
2.2 Changing the selectedTabIndex of the BottomNavigation by setting the selectedTabIndex to the Index of OtherPage

What happens is that we change the tab, but the back navigation only completes once the user switches back to the tab called Master.
Expected Behaviour: Let the back() navigation complete in the background, so when the user navigates back to the tab called Master, he already sees Master and not the navigation from Detail to Master
I expect those two being related.

@Firetrip
I found something and seems it is working for me. Just try the following in your home-routing.module.ts
Make sure the parent path for the shouldn't be empty when you use the **named router outlet(in angular) or page-router-outlet (in nativescript angular) **
change the home component path from "" to "default" in home-routing.module.ts  and use the navigation route  as "/home/default"
        path: "",         component: HomeComponent,
    **path: "default",         component: HomeComponent,**
Let me know how it goes.
Correct me if I am wrong.
Thanks


Whitespaces in column names

It would be good if we can validate that this works for Snowflake with Soda Core.
https://github.com/sodadata/soda-sql/issues/205

SODA-850


SystemView Feature Not working

Enabling systemview currently does not work as expected, systemview can't find the RTT segment and fails to record.

@nordic-krch Can you take a look at this issue.

With this patch (a revert of the relevant pieces of https://github.com/zephyrproject-rtos/zephyr/commit/2c84fd2631dcc8e586a8455b7fe696d58a92aaf5 that @nashif bisected to), I am able to get SystemView tracing working on an nRF52840.
From 320b2428cb87dad467a0b6d83d23c374a00e611e Mon Sep 17 00:00:00 2001
From: Marti Bolivar<EMAIL_ADDRESS>Date: Thu, 18 Apr 2019 12:54:25 -0600
Subject: [PATCH] [temphack] SEGGER_RTT_CONF.h: remove zephyr mutex locking

Signed-off-by: Marti Bolivar<EMAIL_ADDRESS>---
 ext/debug/segger/rtt/SEGGER_RTT_Conf.h | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/ext/debug/segger/rtt/SEGGER_RTT_Conf.h b/ext/debug/segger/rtt/SEGGER_RTT_Conf.h
index 142949ad9e..a960ea7439 100755
--- a/ext/debug/segger/rtt/SEGGER_RTT_Conf.h
+++ b/ext/debug/segger/rtt/SEGGER_RTT_Conf.h
@@ -138,12 +138,7 @@ Revision: $Rev: 9599 $
 *       Rowley CrossStudio and GCC
 */
 #if (defined __SES_ARM) || (defined __CROSSWORKS_ARM) || (defined __GNUC__)
-  #ifdef __ZEPHYR__
-    #include <kernel.h>
-    extern struct k_mutex rtt_term_mutex;
-    #define SEGGER_RTT_LOCK() k_mutex_lock(&rtt_term_mutex, K_FOREVER);
-    #define SEGGER_RTT_UNLOCK() k_mutex_unlock(&rtt_term_mutex);
-  #elif __ARM_ARCH_6M__
+  #ifdef __ARM_ARCH_6M__
     #define SEGGER_RTT_LOCK()   {                                                                   \
                                     unsigned int LockState;                                         \
                                   __asm volatile ("mrs   %0, primask  \n\t"                         \
--
2.21.0

Oh, what you try to do ? I think we are still going in circles. Please read discussion in  #11393.

Oh, what you try to do ? I think we are still going in circles. Please read discussion in #11393.

Use SystemView to trace execution, e.g. by enabling it on the philosophers sample. I've read that discussion.

I would prefer configure SystemView to use differend RTT channel if it is possible, it is cleanest solution. A smarter RTT ring buffer locking as suggested in #11393 is on my TODO list. (OT: unfortunately I'm currently stuck on issues that both HEADs of bluez mesh stack and zephyr are still incompatible).

@nordic-krch could you give some update on this issue?

@ioannisg i haven't been looking at it. I've been assigned but frankly speaking i haven't been using systemview at all and there is planty on my plate now so i don't think that i will be looking at it in next few weeks.

can't reproduce, works for me with samples/synchronization/ and the following changes:
diff --git a/samples/synchronization/prj.conf b/samples/synchronization/prj.conf
index fb9f4cdb23..7a1792ae40 100644
--- a/samples/synchronization/prj.conf
+++ b/samples/synchronization/prj.conf
@@ -1,3 +1,5 @@
 CONFIG_STDOUT_CONSOLE=y
 # enable to use thread names
-#CONFIG_THREAD_NAME=y
+CONFIG_THREAD_NAME=y
+CONFIG_SEGGER_SYSTEMVIEW=y
+CONFIG_USE_SEGGER_RTT=y


[MSAL for Angular] Support for Angular 6/7/8

I'm submitting a...

[x] Feature request

Current behavior
No support for Angular 6
Expected behavior
Support for Angular 6 ;)

In #398 you stated that

We don't have support for angular 6 yet but that's in our backlog and we will work on it in future.

I would like to ask if you have any rough estimate when can we expect it?
Is it a matter of weeks or months?

@anth-git - While we wait for Angular 6 support, if it helps, I managed to get this working by simply installed the rxjs-compat npm module. This resolved all the RxJS peer issues I was experiencing.

@BenBullock1992 Thanks a lot, it indeed works now, although I still have peer dependency warnings:
warning " ><EMAIL_ADDRESS>has incorrect peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has incorrect peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>

@anth-git - Awesome, good to hear! And yeah, I get the warnings too. I suspect when Microsoft support MSAL for Angular 6 these warnings will go away.

@anth-git @BenBullock1992  We are planning to give support for angular 6 in future. As @BenBullock1992  suggested you should be able to make it work by using rxjs-compat for now. I will update this ticket once we release support for angular 6.

@rsuk I have the same error, but strangely enough only after first API call. Subsequent calls are handled correctly

@rsuk @anth-git I'm having the exact same issue.

For now I resolved it by implementing my own interceptor based on MsalInterceptor

@anth-git - I'm not experiencing this at runtime but am getting the error when running tests. Can you post your interceptor code for reference please?

It's just copy-pasted MsalInterceptor, with replaced Observable.fromPromise to from
`import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { BroadcastService, MsalService } from '@azure/msal-angular';
import { from } from 'rxjs';
import { Observable } from 'rxjs/Observable';
// TODO: Remove when MSAL library supports Angular 6, and use MsalInterceptor instead
@Injectable()
export class MsalInterceptorTmp implements HttpInterceptor {
constructor(private auth: MsalService, private broadcastService: BroadcastService) { }

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    const scopes = this.auth.getScopesForEndpoint(req.url);
    this.auth.verbose('Url: ' + req.url + ' maps to scopes: ' + scopes);
    if (scopes === null) {
        return next.handle(req);
    }
    const tokenStored = this.auth.getCachedTokenInternal(scopes);
    if (tokenStored && tokenStored.token) {
        req = req.clone({
            setHeaders: {
                Authorization: `Bearer ${tokenStored.token}`,
            }
        });
        return next.handle(req).do(event => { }, err => {
            if (err instanceof HttpErrorResponse && err.status === 401) {
                const scopesl = this.auth.getScopesForEndpoint(req.url);
                const tokenStoredl = this.auth.getCachedTokenInternal(scopesl);
                if (tokenStoredl && tokenStoredl.token) {
                    this.auth.clearCacheForScope(tokenStoredl.token);
                }
                this.broadcastService.broadcast('msal:notAuthorized', { err, scopesl });
            }
        });
    } else {
        return from(this.auth.acquireTokenSilent(scopes).then(token => {
            const JWT = `Bearer ${token}`;
            return req.clone({
                setHeaders: {
                    Authorization: JWT,
                },
            });
        })).mergeMap(reql => next.handle(reql).do(event => { }, err => {
            if (err instanceof HttpErrorResponse && err.status === 401) {
                const scopesl = this.auth.getScopesForEndpoint(reql.url);
                const tokenStoredl = this.auth.getCachedTokenInternal(scopesl);
                if (tokenStoredl && tokenStoredl.token) {
                    this.auth.clearCacheForScope(tokenStoredl.token);
                }
                this.broadcastService.broadcast('msal:notAuthorized', { err, scopesl });
            }
        })); // calling next.handle means we are passing control to next interceptor in chain
    }
}

}
`

Thanks, @anth-git. The interceptor works for me till this gets fixed.

angular 7 is out. Is this still work in progress?

angular 7 is out. Is this still work in progress?

@rajarameshvarma I'm using "@angular/core": "~7.0.0" and it works in Edge and Chrome.

angular 7 is out. Is this still work in progress?

Is this still work in progress?

angular 7 is out. Is this still work in progress?

@rajarameshvarma I'm using "@angular/core": "~7.0.0" and it works in Edge and Chrome.

i also have this built and working in angular 7.1.0. but the above fix was required.
i am using patch-package to change the dist files for the time being.

@Dedme, is there a PR patching that file up?

@pandres95, i dont believe so.

@pandres95 its unnecessarily large but attached is my package for patching the current npm file:
https://gist.github.com/Dedme/919d85c0390c7a82dfdacfa4d29881f9
this is applied using https://www.npmjs.com/package/patch-package.
this patch has the compiled codebase to fix IE compatibility and also the above fix resolving the observable.

@Dedme Thanks for the .patch file.  Just to confirm.  The .patch is a es2015 dist of @azure\msal-angular?
Note: I've posted about the IE11 issues here:
https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/414  Unfortunately, the es2015 dist files are causing problems with Edge.  Do you get errors in Edge now?

@DeanB2015 with my current patch file, i am having no issues with edge.
I have noted while it compiles, loads and runs in IE11, it is not authenticating via the popup,
it is throwing some sort of error.
apologies, out target browser has been Chrome.

I got this error: "Token renewal operation failed due to timeout|Token Renewal Failed "
in my angular 7 asp.netcore 2.2 project. Any suggestions to fix will be a great help.

When is this going to be released? It's a pretty annoying bug...

When is this going to be released, just an estimated time please? Angular is now on 7 and plans are in place to release 8 soon. Some feed back will be nice.

When is Angular 7 support going to be released? Could you please provide an estimated time frame?

@mirkodelgado This upcoming summer, roadmap will be updated with details as we start this activity.

Any work around for Angular 7 if this PR is not yet released? I need to authenticate to Azure AD on my Angular 7 app

@souvikbasu it still works with Angular 7 and 8, but with Ivy renderer disabled.

Just an update from my side, it works for me if rxjs-compat is installed as somebody already mentioned above. Tested on Angular 7.2.3

@souvikbasu thx, the install of rxjs-compat is works for me.

#786 to track this

@anth-git @souvikbasu @kissferenc The upgrade guide for Angular 8 says to remove rxjs-compat though...?

@dotnetcanuck I removed the rxjs-compat library and the compiler can't compile my project.
Maybe I have to remove/upgrade some deprecated methodes.
These are the error codes:
ERROR in node_modules/rxjs/Subscription.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Subscription'. node_modules/rxjs/BehaviorSubject.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/BehaviorSubject'. node_modules/rxjs/Observable.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Observable'. node_modules/@azure/msal-angular/dist/broadcast.service.d.ts(1,10): error TS2305: Module '"../../../rxjs/Subscription"' has no exported member 'Subscription'. node_modules/@azure/msal-angular/dist/broadcast.service.d.ts(4,10): error TS2305: Module '"../../../rxjs/BehaviorSubject"' has no exported member 'BehaviorSubject'. node_modules/@azure/msal-angular/dist/broadcast.service.d.ts(5,10): error TS2305: Module '"../../../rxjs/Observable"' has no exported member 'Observable'. node_modules/@azure/msal-angular/dist/msal.interceptor.d.ts(2,10): error TS2305: Module '"../../../rxjs/Observable"' has no exported member 'Observable'.

You shouldn't remove the rxjs-compat libary until MSAL for Angular version 1.0 is ready. It is needed by the current version 0.1.2.

@kissferenc @baltie I don't really understand how. Our project isn't using rxjs-compat at all, and MSAL has been working fine so far. That's why I am so confused.
The project has been on Angular 7.3 until now, and I just upgraded it to Angular 8. I removed the MSAL package to get past the errors thrown by ng update (although later I found the --force flag), and then reinstalled it after the upgrade was done.
The project is still working fine, running on Angular 8, RxJS 6.5.2, and no references to rxjs-compat whatsoever.  Everything I am reading says that rxjs-compat should be removed once you're on RxJS 6, so why is it that my project is working fine, yet, multiple people in this thread are seeing/saying the opposite?

This is the MSAL package you're using? https://www.npmjs.com/package/@azure/msal-angular
It depends on RxJS 5. So if it is working without you explicitly installing rxjs-compat, something else you're using is installing it for you. Have you tried npm ls rxjs-compat in your project directory? You should be able to see if it has been added by some other package. You can also check node_modules folder to see if the rxjs-compat folder is there with files in it. What I'm completely sure is that version 0.1.2 of the @azure/msal-angular package does not work with RxJS 6.5.2 without rxjs-compat.
For your last statement, you should remove rxjs-compat when your code has been upgraded to use RxJS 6. Since MSAL for Angular hasn't been upgraded to RxJS 6 and doesn't have rxjs-compat in its dependency list, you have to add it yourself.

@baltie That is indeed the package that I've installed, yes.
Everything that you are saying makes logical sense to me, because a package that depends on RxJS 5 will not run against RxJS 6 without rxjs-compat. But that's the total opposite of what I'm seeing. Even our CI builds in DevOps haven't thrown any errors, and when I deploy the site to our Azure dev environment, everything works! (and yes, I used incognito mode, so no caching)
Here's the output of npm ls for both rxjs-compat and msal-angular, exact paths/names redacted, of course. 😛
$ npm ls rxjs-compat
<EMAIL_ADDRESS>C:\Git\repo\
`-- (empty)

$ npm ls @azure/msal-angular
<EMAIL_ADDRESS>C:\Git\repo\
`--<EMAIL_ADDRESS>
What's weirder still is that when I run npm ls rxjs, the peer dependency error shows up, but the app compiles and runs.
$ npm ls rxjs
<EMAIL_ADDRESS>C:\Git\repo
+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| `--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| `--<EMAIL_ADDRESS>|   `-- UNMET PEER DEPENDENCY<EMAIL_ADDRESS>deduped
+--<EMAIL_ADDRESS>| `--<EMAIL_ADDRESS>`-- UNMET PEER DEPENDENCY<EMAIL_ADDRESS>
npm ERR! peer dep missing<EMAIL_ADDRESS>required by<EMAIL_ADDRESS>npm ERR! peer dep missing<EMAIL_ADDRESS>required by<EMAIL_ADDRESS>
We're using the MSAL package to retrieve authorization tokens from Azure B2C. So my conclusion is that either we're using functions of the MSAL library that don't seem to care about RxJS at all, or that there's some other kind of voodoo magic going on.
Either way, this project doesn't go live for a little while still, so hopefully version 1.0 will be ready before it becomes a production issue?
¯\_(ツ)_/¯

Update... So I don't know what changed, but our app suddenly stopped working with B2C, and would redirect back to the login screen after authentication was completed.
It took us a lot of time to diagnose it, and we eventually circled back to this very issue. Adding rxjs-compat fixed the problem, for the moment at least. (Cue me eating my words, above)
That said... given that MSAL.js 1.0.2 has been released, is there an updated timeline on when we can expect an update to msal-angular? Or perhaps have one of the several open pull requests (e.g. PR 543) merged, even as a temporary Preview? @sameerag (I would have asked in #786, but it's locked to collaborators only)

@dotnetcanuck Let me get back on the temp preview, we are currently in planning for this activity and can do small incremental fixes if they help unblock some folks. cc @DarylThayil.
#786 is locked for traction, easier to have all issues bunched up. We will open a feedback PR for Angular once we have our planning locked.

I am using Angular 8 &  simply installing  ' npm i rxjs-compat ' that's handle all the problems .

does MSAL supports in angular  7 version.?
I am currently using ADAL for authenticating  with AD.
Please let me know

we do not have stated support for angular 7 yet, we hope to have that by the end of the year.
Some have found ways to make this work for angular 7+
cc @jasonnutter

I'm using it with Angular 8. Just install rxjs-compat and configure the module with your settings.

As noted, we are working now to provide out of the box support for the newer versions of Angular (planning to have this available by the end of the year). In the mean time, we have heard that you can use @azure/msal-angular with the newer versions of Angular with some changes in your application (e.g. as @davidgg notes, using rxj-compat).

As noted, we are working now to provide out of the box support for the newer versions of Angular (planning to have this available by the end of the year). In the mean time, we have heard that you can use @azure/msal-angular with the newer versions of Angular with some changes in your application (e.g. as @davidgg notes, using rxj-compat).

Hope this comes out sooner, angular 9 is already almost here and even though there is support for latest versions using rxjs-compat, encountering below issues while performing a simple "ng update @angular/cli"
Fetching dependency metadata from registry...                   Package "@azure/msal-angular" has an incompatible peer dependency to "@angular/common" (requires "^4.3.0" (extended), would install "8.2.14").                   Package "@azure/msal-angular" has an incompatible peer dependency to "@angular/core" (requires "^4.3.0" (extended), would install "8.2.14").                   Package "@azure/msal-angular" has an incompatible peer dependency to "rxjs" (requires "^5.0.1", would install "6.5.3"). Incompatible peer dependencies found. Peer dependency warnings when installing dependencies means that those dependencies might not work correctly together.         You can use the '--force' option to ignore incompatible peer dependencies and instead address these warnings later.

I'm building an app and I need to connect with B2C, is there any ETA on this new version because we are in the 20's now and a new version is not yet to be found.
An estimate would be greatly appreciated!

@Taats We're a little behind but we'll have something soon (this month), apologies for the delay!

@Taats @ShinRai1090 @OlivierTD Please follow the upgrade here to try out the new beta for MSAL Angular: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev-angular-1.0-protectedresources/lib/msal-angular/docs/0.x-1.x-upgrade-guide.md
This version will support Angular 6+ and rxjs 6. Let me know if you have any feedback, thanks! Apologies again for the delay.

@madhugore1 @mamta1992

getScopesForEndpoint() this method is always returning null for me  instead of returning scope , how it is reading scope from endpoint

@komi99 Please open a new issue if you have a usage question, thanks!


ROS demos doesn't work in art-chrono container when building the container from dockerfile

@AaronYoung5
So I am on master branch and I tried to build art-chrono using the following: atk dev -bua -s chrono --optionals gpus vnc. Before I built it, I already tried docker system prune -a.
After getting into container, I tried to run demo and got the following error:

I also tried to build cpp demo, and get the following error:

Likely not the same issue bcs my build had finished, but I've seen a similar issue with both chrono::ros and chrono::sensor, fix was to downgrade numpy to 1.24 - but this as after my chrono build finished so I'm assuming this is a dfiferent issue


Endomorphism-based Pippenger

Aztek has implemented a GLV-variant of Pippenger. In short, the GLV method makes use of the endomorphism (having equivalent scalar lambda) by decomposing a scalar k into k = k1 * lambda + k2, with k1 and k2 of half the size of the modulus. (See Gallant, Lambert, Vanstone 2001 or the corrected analyis of Quisquater, et al 2002 for a detailed description on the decomposition.) With this decomposition one can replace the initial instance for a multi-scalar multiplication by one having the double number of base points (the original ones plus their endomorphism image) but  scalars of half the size.
@DDT92 Let us estimate the performance improvement using this technique.

Nice


Configurable Retries in HTTPRoute

What would you like to be added:
I would like to be able to configure the following in HTTPRoute:

The max number of times to retry a request
The reason(s) and/or status codes a request should be retried
The timeout for each retry attempt

I believe all 3 of these would be implementable for Envoy based implementations, the first 2 would be implementable for HAProxy based implementations, unclear what would be implementable for NGINX or others (cc @pleshakov @shaneutt).
Why this is needed:
This is a common feature request and represents a concept that would likely get tied to a variety of custom policies if we did not include it in the main API.

/assign
/remove-help

@robscott, on the mesh front, Linkerd actually doesn't support the fixed-number-of-retries concept. Instead there's a retry budget: if your retry budget is e.g. 20%, then as long as not more than 20% of your request volume is retries, Linkerd can continue retrying.
It would be lovely to be able to configure that form of retry, too, without having to resort to crazy custom stuff. Just to complicate your life. 😉

That's a very interesting approach. Is the 20% calculated "globally" or on a-per proxy basis? This may be difficult for more distributed proxy systems to do for a global percentage.

@kflynn does setting 0% disable retries?

@ramaraochavali thanks for the reference! I'd assumed this would be implemented by RetryPolicy in xDS which does not seem to require retry budgets, but I'm also far from an Envoy expert so may be missing some nuance here.

Although configuring retry budgets and other circuit breaking mechanisms would be useful to support, I don't think they are typically configurable on the individual route (vs service) level. Since the title of this issue is about configuring retries on HTTPRoute specifically, I wonder if it make sense to start with a GEP that only addresses retry configuration on an HTTPRoute and then handle retry budgets, etc. (probably using policy attachments instead of explicit fields in the API) in a separate GEP.
@robscott If you want to assign the issue to me, I can put together a first pass GEP to discuss this further.

Thanks @frankbu!

Although configuring retry budgets and other circuit breaking mechanisms would be useful to support, I don't think they are typically configurable on the individual route (vs service) level.

I'm certainly biased because GCP load balancers configure retries at the routing layer. My understanding is that both HAProxy and Envoy are also capable of this, but definitely could be wrong on either of those.

I wonder if it make sense to start with a GEP that only addresses retry configuration on an HTTPRoute and then handle retry budgets, etc

That approach makes sense to me. In general, we want to include concepts in the API that have a path to portability and have a path for >50% of implementations to support. I think what you've recommended starting with would meet that criteria, but I'm not sure retry budgets have the same portability right now (again could be wrong on that).
I think a GEP is a great idea here, and similar to timeouts and session affinity, it would likely be helpful to provide an overview of the current state of the world in that GEP before going too far with details. Thanks for volunteering to help out with this!
/assign @frankbu

Linkerd configures retries at the route, too, FWIW...

NGINX supports retries per route too with proxy_next_upstream* directives

@pleshakov would proxy_next_upstream_timeout be similar to the backendRequest timeout proposed by GEP 1742? (https://gateway-api.sigs.k8s.io/geps/gep-1742/#timeout-values)

@robscott

@pleshakov would proxy_next_upstream_timeout be similar to the backendRequest timeout proposed by GEP 1742? (https://gateway-api.sigs.k8s.io/geps/gep-1742/#timeout-values)

unfortunately, no. proxy_next_upstream_timeout limits the time during which NGINX tries multiple backends. However, it does not set any timeouts per individual backend.

Qustion, are we gonna implement per route way?

Discussed this during a meeting of Gateway API maintainers at KubeCon EU 2024 as a potential priority for Gateway API v1.2, first step would be a memorandum GEP documenting existing configuration and behavior across a range of implementations.
/remove-lifecycle rotten
/assign @mikemorris

Confirmed as a needed feature. This is affecting us too (using Istio as implementation). How is the status of this on May? :)

Thanks for confirming your desire for this feature.

How is the status of this on May? :)

Can you help me better understand?

We're proposing this for inclusion in the Gateway API v1.2 scope as an experimental feature. I'm not quite sure of the expected release date for v1.2, but I'd expect roughly fall/Q3 2024.

Sorry for the delay, guys

Thanks for confirming your desire for this feature.

How is the status of this on May? :)

Can you help me to better understand this? I'm uncertain what is meant 🤔

@shaneutt I meant "how is the current status for that?" sorry for the miss-explanation

We're proposing this for inclusion in the Gateway API v1.2 scope as an experimental feature. I'm not quite sure of the expected release date for v1.2, but I'd expect roughly fall/late Q3 2024.

Thank you for the info! I will check it

If anyone's interested in seeing this in scope for v1.2, please upvote and/or comment on Mike's v1.2 scoping proposal.

If anyone's interested in seeing this in scope for v1.2, please upvote and/or comment on Mike's v1.2 scoping proposal.

Done! thank you for clarifying this

/reopen to track lifecycle of GEP


[No Name] doesn't work for builtin.shortened_file

I get an empty file name when starting neovim without opening any file.
Also there's an error message:
E5108: Error executing lua [string "luaeval()"]:1: invalid value (function) at index 6 in table for 'concat'

Good to close?

Good to close?

sure


the 'examples' values should be honored when using type integer+oneOf

Describe the bug
The automatically created examples don't honor the specified values of 'examples' and create invalid combinations of attributes. The result is a logically invalid example.
How to Reproduce
definition:
    arrayValueRank:
      description: >
        This Attribute indicates whether the val Attribute of the datapoint is an
        array and how many dimensions the array has.
      type: integer
      default: -1
      examples:
        - 2
      oneOf:
        - const: -1
          description: 'Scalar: The value is not an array.'
        - const: 0
          description: 'OneOrMoreDimensions: The value is an array with one or more dimensions.'
        - const: 1
          description: 'OneDimension: The value is an array with one dimension.'
        - const: 2
          description: 'The value is an array with two dimensions.'

    arrayArrayDimensions:
      type: array
      items:
        type: integer
        minimum: 0
      examples:
        - [3, 5]

The created invalid example
              "valueRank": -1,
              "arrayDimensions": [
                3,
                5
              ],

'-1' means a scalar value, but for the example of arrayDimensions valueRank has to be '2'
Expected behavior
expected example:
              "valueRank": 2,
              "arrayDimensions": [
                3,
                5
              ],

use the value '2' as the only value provided in 'examples' for valueRank. Instead the first value of the valueOf is used.
Changing the order of the values in my schema will also confuse the user, because they shall be numerically sorted and the first value makes no sense as example.

please let me know if anything is unclear in my original description.
At the moment I have to patch the generated HTML by hand every time I create the documentation.

Sorry, @nospam2000 this must have slipped through the cracks!
What template were you using here?

I'm using the HTML template.
Next week I can give more details and try it with the newest version.

Gonna move the issue to https://github.com/asyncapi/html-template


Automated cherry pick of #5437: climc: add server and host ssh terminal util

Cherry pick of #5437 on release/3.1.
#5437: climc: add server and host ssh terminal util

/lgtm
/approve


Support for 0.12.12.x (Quests are disabled for now)

Update pls....

Given I reverted the changes related to Quests, this feature is automatically disabled.
I will work on that when spt-aki will be available for 0.12.12.x

Fixed here: https://github.com/sailro/EscapeFromTarkov-Trainer/commit/a0b025acef81d153e428c164c6c370ce013c8aeb


arrow function is normal function in JS

I set the following emojis
🙃 arrow function
🔧 normal function
this works fine
however when I disable arrow function emojis I get the normal function emoji for the arrow function instead of no emoji.

Hey! Yes, I just fixed this issue and will publish it in about an hour. The latest Atom update changed a couple of things 😅

Fixed with https://github.com/morkro/atom-emoji-syntax/commit/42d43b74d9ffcc12bf87d397ef24b977cba0e27b


fix: rename part 1

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Backport release-23.11]: firefox-{beta,devedition}{-bin}-unwrapped: 124.0b8 -> 125.0b3

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Finished building and testing.


Highlight variable usages when the cursor enters

When we go over a variable, we should highlight the other places in which the variable is used.

Work in progress.
https://user-images.githubusercontent.com/249595/115080799-9ea0f900-9f03-11eb-8b12-71b6cbe578aa.mp4

It now highlights variables only within the appropriate scope:
https://user-images.githubusercontent.com/249595/115121117-5809d800-9fb1-11eb-9ac9-a89ba10b9b04.mp4


Read 169mb video file program crash

没有提供描述。

import 'dart:io';
import 'dart:async';
import 'package:http_server/http_server.dart';
void main() {
var staticFiles = new VirtualDirectory('.')
..allowDirectoryListing = true;
runZoned(() {
HttpServer.bind('<IP_ADDRESS>', 7777).then((server) {
print('Server running');
server.listen(staticFiles.serveRequest);
});
},
onError: (e, stackTrace) => print('Oh noes! $e $stackTrace'));
Browsing the virtual directory Web page, MP4 video is not displayed, and the program directly crashes

_VirtualDirectoryFileStream has a buffer property, which is initialized to []. _VirtualDirectoryFileStream.addStream checks if the buffer is null (in which case, it will directly write the buffer to the stream), but since the buffer is never null, files are always buffered, at least as far as I can tell.
Not sure what your stack trace is, though.

I had encountered the same issue .
when i downloaded a very large file ,my app consumed a lot of memory,then crashed directly


[Bug] Timeline-progress-label formatter not returning expected value

Version
5.4.2
Link to Minimal Reproduction
https://codesandbox.io/s/echarts-timeline-progress-bug-33tjj7?file=/src/Charts/map.jsx
Steps to Reproduce

Go to the timeline.js file.
Inside the timeline object, head over to the progress key
Configure your own formatter to change the label value

Current Behavior
In the example image below, it returns the year

Expected Behavior
It should return the progress-label-formatter value defined.
There is also need for a way to show currently active label .
Environment
- OS: Windows 10/11
- Browser: Chrome 113.0.5672.127
- Framework: React and Vanilla JS ES6

Any additional comments?
The goal  of this is to ensure the current active checkpoint label is of a different color, font-size or both. Currently all the progress labels are changing yet in some cases the active label should be different from the rest.

confirmed, timeline progress.label.formatter and progress.label.rotate do not work.


FEEDBACK WIDGET - Align left & match red colour

Is it possible to match the red of the button on the footer to the red we use in the site? If not, then black or grey would be better.
Also align to the left edge of the hamburger menu.

Not possible to fine tune colors.

I picked red because I think black/grey is actually too easy to miss. At least during the user testing phase, I want people to notice this thing and be curious -- I think we can decide once we launch whether to keep it or tone it down, but I was worried people would just never notice it otherwise.

Bummer. Do you think grey is too subtle? What about yellow? Maybe even magenta would work.. I'd say green but its a bit Christmas. Do they have that bright rgb internet blue? The red is just too close and too wrong, needs to change to something. More contrast is fine.
Can we fix the alignment also?

Alignment choices are similarly coarse:

I'll pick a grey, you can react.

Alrighty then :)

I think grey is better.


virtio/fs/linux: announce submounts

To avoid st.st_ino collisions, rely in the previously introduced support for FUSE submounts and announce them when parent st_dev != inode st_dev, or parent mnt_id != inode mnt_id.

@asahilina could you please confirm this fixes the issue you were seeing in #204


Upgrade to Chrome45

[x] Build on Windows
[x] Build on OS X
[x] Build on Linux
[x] Run on Windows
[x] Run on OS X
[x] Run on Linux
[x] Pass tests on Windows
[x] Pass tests on OS X
[x] Pass tests on Linux
[x] CI all passes
[x] Merge https://github.com/atom/brightray/pull/137
[x] Merge https://github.com/atom/libchromiumcontent/pull/153

:+1: :sparkles:

OMG. Awesome :sparkling_heart:


Add CentOS to travis CI

Since that's the operating system that the LCV machines and the NYU cluster use.

Now using Github Actions, only linux we can use is ubuntu


Clarification on ZCS AZZURRO 3PH Inverters

As you, @YodaDaCoda, have suggested for the italian translation, I am similarly making a separate pull request for a slight correction on the Readme.MD.
This, under the "Lookup Files" section does not explain which file to use for 1-Phase or 3-Phase inverters, and this can lead to the usage of the incorrect definition. I have added a note stating which one is for single-phase and which one is for three-phase.

Should be done now. I have reverted the zcs_branch to upstream, then modified the file including the typo correction, and then force-pushed to the zcs_notes respository linked to this PR. Please do let me know if that's OK.

Hello, I just wanted to confirm that sofar_g3hyd.yaml works perfectly with a ZCS Azzurro 3PH HYD10000 ZSS https://www.zcsazzurro.com/inverter/azzurro-hybrid-storage-inverter-hyd-10000-zss-hyd-20000-zss?ol=true
I'd like to point out a little typo: sofar_hyd3k-6k.yaml has an extra "-es" at the end of the file, its actual name is sofar_hyd3k-6k-es.yaml
Thanks for the amazing work!


Fix client cli log level

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

Project coverage is 97.31%. Comparing base (0b12246) to head (b544d98).

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #354      +/-   ##
==========================================
+ Coverage   97.27%   97.31%   +0.03%
==========================================
  Files         153      153
  Lines        9448     9448
==========================================
+ Hits         9191     9194       +3
+ Misses        257      254       -3

Flag
Coverage Δ

97.31% <ø> (+0.03%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes


Add git route to bridge server

The support for SSH will follow, as the PR is already too big.
Fixes: https://github.com/stolostron/cluster-templates-operator/issues/94

@rawagner PTAL

The output is as follows:
curl -H "Authorization: Bearer YYY" http://localhost:8001/api/git-repositories
- error: 'unexpected client error: unexpected requesting "https://github.com/machacekondra/myapp/info/refs?service=git-upload-pack"
    status code: 400'
  url: https://github.com/machacekondra/myapp
- branches:
  - ovirt-ansible-collection-1.4.4
  - ovirt-ansible-collection-1.4.3
  - master
  tags:
  - 1.5.0-1
  - 1.0.0
  - 2.0.4-1
  url: https://github.com/ovirt/ovirt-ansible-collection/

looks great!
/lgtm


Change from_csv default arguments

Passing sep=None to pandas's read_csv lets pandas guess the CSV file's separator
This PR allows users to use this pandas's feature by passing sep=None to Dataset.from_csv:
Dataset.from_csv(
    ...,
    sep=None
)

This is not the default in pandas right ?
We try to align our CSV loader with the pandas API.
Moreover according to their documentation, the python parser is used when sep is None, which might not be the fastest one.
Maybe users could just specify sep=None themselves ?
In this case we should add some documentation about this


Cannot use it with Secret

I've installed the OnlyOffice DocumentServer Version <IP_ADDRESS> and OnlyOffice Confluence Plugin Version 1.1.0 on Confluence 6.4.2
This is the way I create the Confluence plugin
$ git clone https://github.com/ONLYOFFICE/onlyoffice-confluence
Changed the properties in src/main/resources/onlyoffice-config.properties
files.docservice.secret=secret
$ atlas-package
Then I installed the plugin by uploading it into Confluence
I configured the plugin in Manage add-ons
If I try to edit a document Confluence opens a new tab in my browser and connects to the my document server, then  I got the following error message.
Java.lang.Exception: Error occured in the Convertservice: Error document VKey
If I turn off the Secret Usage on my Document Server everything works. I will use the Secret because I don't want that everybody can use my Document Server.

Hello @michaelroth,
Plugin for Confluence is not refined yet. In this case, Secret is being used for safety of the files downloaded from Confluence, it was made to limit access to the files of Confluence.
We keep on working on support of JWT.

6429fe57977c4b9349b7de0a3517604fbb7f338c
Please, use v2.0.0


Will certificate generation work behind cloudflare?

I recently enabled cloudflare (proxy with full strict ssl) for one of the sites behind docker-letsencrypt-nginx-proxy-companion.
Meaning:
client browser <-> cloudflare (full strict ssl) <-> nginx proxy (letsencrypt)
This KB article states: https://support.cloudflare.com/hc/en-us/articles/214820528-How-to-Validate-a-Let-s-Encrypt-Certificate-on-a-Site-Already-Active-on-Cloudflare

As a note, the default method used for ACME authentication by the Let's Encrypt client utilizes the DVSNI method. This will fail for a domain which has Cloudflare enabled as we terminate SSL (TLS) at our edge and the ACME server will never see the certificate the client presents at the origin. Using alternate ACME validation methods, such as DNS or HTTP will complete successfully when Cloudflare is enabled.

Since companion uses simp_le, it seems HTTP is the default method, and that it should work.
Anyone?

It is not working for me. I get the following error:
/etc/cron.daily/letsencrypt-renew:
Attempting to renew cert (example.ca) from /etc/letsencrypt/renewal/example.ca.conf produced an unexpected error: Failed authorization procedure. example.ca (tls-sni-01): urn:acme:error:tls :: The server experienced a TLS error during domain verification :: remote error: tls: handshake failure, www.example.ca (tls-sni-01): urn:acme:error:tls :: The server experienced a TLS error during domain verification :: remote error: tls: handshake failure. Skipping.
All renewal attempts failed. The following certs could not be renewed:
 /etc/letsencrypt/live/example.ca/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
run-parts: /etc/cron.daily/letsencrypt-renew exited with return code 1

(I've changed my domain to example.ca in the output above)

It turns out I was running an older version of letsencrypt-nginx-proxy-companion.
I pulled the latest image, and manually renewed using force_renew and all my certificates were successfully renewed even though they are sitting behind cloudflare.

I can also confirm, this seems to be working out of box. I'm still waiting to confirm after few auto renewals.

This comment might be helpful to people using Cloudflare: https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion/issues/247#issuecomment-329233092


Update README.md

fixed package path

btw great stuff! (expected not less from you ;) )

Thanks :D


Template spec solution update for VMWARE ESXI

Change(s):
See guidance below
Reason for Change(s):
This PR is part of template spec solution migration for solution VMWARE ESXI
See guidance below
Version Updated:
2.0.0
See guidance below
Testing Completed:
The link for test results is -
https://microsoftapc.sharepoint.com/:w:/r/teams/SentinelCATTeam/_layouts/15/Doc.aspx?sourcedoc={4A76DF66-8962-420D-B45C-142D4C299E33}&file=Sentinel Solution Migration -TemplateSpec - Vmware ESXi.docx&action=default&mobileredirect=true&share=IQFm33ZKYokNQrRcFC1MKZ4zAWEc5kVUp09L4JtW0_4lM-U
It's 3P solution

@v-spadarthi, Please update domain from "IT operations" to "IT Operations" at all needed places.

@v-dvedak : Updated domain from "IT operations" to "IT Operations".


Feature/morphing

WIP

Could you please tell me how to test this?

I going to close this one and open it again for next delivery.


Add cross-repository mounting section to spec/test

New test in 02_push_test.go
Section added to spec.md detailing cross-repository mounting
Section added to conformance/README.md on new configuration options
for cross-repository mounting

LGTM. Tested against ACR.

@jonjohnsonjr @dmcgowan I just pushed the requested changes. Please review, and feel free to approve if all looks good. Thanks!


cli: fix ts test files path parse error

Has many testing file when build project.
Template code

anchor test  <=>  yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts

Real commands

anchor test  <=>  yarn run ts-mocha -p ./tsconfig.json -t 1000000 'tests/**/*.ts'

Errors sometime

yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/shared/utils.ts not tests/**/*.ts

Why exactly is this change necessary?

The problem i got error while run anchor test during a test.
I think because i changed the tsconfig.json or others.
anchor test should be yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts.
but yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/shared/utils.ts . then it's  stopped.
the anchor test source command i never changed.  after that i add ' ' to 'tests/**/*.ts' for Anchor.toml  then it worked.


Tracking: related work for CREATE SINK INTO TABLE

misc

[ ] https://github.com/risingwavelabs/risingwave/pull/14065

drop table

[ ] drop table cascade

create table
alter table

[ ] alter table add column
[ ] alter table drop column
[ ] https://github.com/risingwavelabs/risingwave/issues/14068

properties

[x] default column
[x] generated column
[ ] watermark

system tables feature

[ ] https://github.com/risingwavelabs/risingwave/issues/14066

Testing

[ ] Test it in sqlsmith

Added a task for testing with sqlsmith.


NIFI-738: Improve error handling for CSV and JSON conversion.

Changes:

Send bad record information on the "incompatible" relationship
Use an attribute, "errors" for summarized error messages
Send no error content for now, original content can't be accessed
Summarize similar error messages with "N similar failures"
Add similar error handling to CSV conversion

Builds cleanly including the contribution check for licenses and check style.
ConvertCSVToAvro

Line 258 should use parameters passed in via object[] rather than string concatenation.

What happens if you have processed an entire input and produced no successful results due to a DatasetRecordExceptions?  I think it would forward an empty flow file since nothing would have been written to it.  Is that what you want?  Such a case seems like a FAILURE to me.

Consider removing the incompatible relationship and simply adding an attribute to the success flow file which lists the reasons or add an attribute per reason for difficulty converting the original.  If you will keep the incompatible relationship then I’d recommend sending it a clone of the original item and then adding the relationship.  That would make troubleshooting or analysis of that object much easier.  In any case be very careful about how large these attributes could become.  If you’re storing a series of stack traces this could become unwieldy and memory inefficient really fast.

ConvertJSONToAvro

Line 160 should use parameters passed in via object[] rather than string concatenation.

Same comments as Convert CSV to Avro.

FailureTracker

This class is a cool idea.  My concern with it is that it appears to store all the raw reasons which could be quite significant in large files with many thousands of lines.  This could create issues with the heap, cause excessive GC, etc.  Consider refactoring this class to both immediately store the summarized representation and to bound the total number of reasons it will store.  It can just ignore additional errors as they arrive.  This will allow it to behave well in terms of memory consumption even in the presence of massive failures as everything will be bounded.

Thanks
Joe

Thanks for taking a look, Joe.
I implemented the changes as you suggested. I kept the incompatible relationship because when we can recover the original content, I intend to filter out the successful records and send just the failures. But you're right that for now we should include the original data to make it easier to debug flows.
For the failure tracker, I updated it to keep just the first full error message and a counter instead of the multimap. I don't think it will be a memory problem now.

Ryan
Please add the below unit test to TestCVSToAvroProcessor.  It will fail and explains why nicely.  This issue is present in AvroToCSV as well I believe.
Only other thing I noticed was that you did not cap the number of errors/reasons you'll store.  I just bring this up as a 'be sure this is fine' thing.  It isn't clear if this is important in a practical sense.
    @Test
    public void testBasicConversionNoErrors() throws IOException {
        TestRunner runner = TestRunners.newTestRunner(ConvertCSVToAvro.class);
        runner.assertNotValid();
        runner.setProperty(ConvertCSVToAvro.SCHEMA, SCHEMA.toString());
        runner.assertValid();

        runner.enqueue(streamFor("1,green\n2,blue,\n3,grey,12.95"));
        runner.run();

        long converted = runner.getCounterValue("Converted records");
        long errors = runner.getCounterValue("Conversion errors");
        Assert.assertEquals("Should convert 2 rows", 2, converted);
        Assert.assertEquals("Should reject 0 row", 0, errors);

        runner.assertTransferCount("success", 1);
        runner.assertTransferCount("failure", 0);
        runner.assertTransferCount("incompatible", 0);

    }

@joewitt, I get an error that it converted 3 rows successfully instead of 2. I'm not sure I understand why that isn't the correct behavior. Shouldn't each CSV row be converted?

Nevermind, I was in the wrong branch. I've fixed the bug and will have this updated shortly. Thanks!

Cool.  So you think this is ready to be merged now then?  Also, just want to be sure you don't think there is any practical issue with leaving the number of errors it will track unbounded.

I think this is ready to go. I'm not concerned with the error tracking because we keep to a pretty reasonable format, "General error: specific data". The general errors will be stored along with a count and a single full error message. We don't have very many possibilities for that, usually "Can't convert to " or "Field ", both of which are pretty limited.

Roger.  I'm a +1 now.  Will merge in a bit.  Thanks for addressing it all so quickly.

No problem, I wanted to get it into the release. Thanks for your help!

ests run: 4, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.339 sec <<< FAILURE! - in org.apache.nifi.processors.kite.TestJSONToAvroProcessor
testBasicConversion(org.apache.nifi.processors.kite.TestJSONToAvroProcessor)  Time elapsed: 0.325 sec  <<< FAILURE!
org.junit.ComparisonFailure: Should accumulate error messages expected:<...annot convert field [id: Cannot convert to long: "120V", Cannot convert field color: Cannot convert to string: 15.23 (1 similar failure)]> but was:<...annot convert field [color: Cannot convert to string: 15.23 (1 similar failure), Cannot convert field id: Cannot convert to long: "120V"]>
	at org.junit.Assert.assertEquals(Assert.java:115)
	at org.apache.nifi.processors.kite.TestJSONToAvroProcessor.testBasicConversion(TestJSONToAvroProcessor.java:83)

testOnlyErrors(org.apache.nifi.processors.kite.TestJSONToAvroProcessor)  Time elapsed: 0.004 sec  <<< FAILURE!
org.junit.ComparisonFailure: Should set an error message expected:<...annot convert field [id: Cannot convert to long: "120V", Cannot convert field color: Cannot convert to string: 15.23 (1 similar failure)]> but was:<...annot convert field [color: Cannot convert to string: 15.23 (1 similar failure), Cannot convert field id: Cannot convert to long: "120V"]>
	at org.junit.Assert.assertEquals(Assert.java:115)
	at org.apache.nifi.processors.kite.TestJSONToAvroProcessor.testOnlyErrors(TestJSONToAvroProcessor.java:107)

Running org.apache.nifi.processors.kite.TestKiteProcessorsCluster
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0 sec - in org.apache.nifi.processors.kite.TestKiteProcessorsCluster
Running org.apache.nifi.processors.kite.TestKiteStorageProcessor
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0 sec - in org.apache.nifi.processors.kite.TestKiteStorageProcessor

Results :

Failed tests:
  TestJSONToAvroProcessor.testBasicConversion:83 Should accumulate error messages expected:<...annot convert field [id: Cannot convert to long: "120V", Cannot convert field color: Cannot convert to string: 15.23 (1 similar failure)]> but was:<...annot convert field [color: Cannot convert to string: 15.23 (1 similar failure), Cannot convert field id: Cannot convert to long: "120V"]>
  TestJSONToAvroProcessor.testOnlyErrors:107 Should set an error message expected:<...annot convert field [id: Cannot convert to long: "120V", Cannot convert field color: Cannot convert to string: 15.23 (1 similar failure)]> but was:<...annot convert field [color: Cannot convert to string: 15.23 (1 similar failure), Cannot convert field id: Cannot convert to long: "120V"]>

Ryan i had trouble running the unit tests.  It is possible I've now returned the wrong branch favor but I think I'm building against exactly what you sent.  Can you confirm?

@joewitt, looks like the problem is that the accumulated error messages are out of order. This is a result of moving from the multimap to a plain hashmap. I'll update to use a linked hashmap, which will give a reliable order.


Improve scroll to work with blank lines after the cursor

This commit works fixes scrolling when there were blank lines after the cursor.
Here is what it does (blank rows are those added by running clear):
when increasing rows:
  if there are blank rows below the cursor:
    add a blank row to the bottom
  else if there is room in the buffer above the viewport
    scroll up
  else
    add a blank row to the bottom

when decreasing rows:
  if there are blank rows below the cursor:
    remove a blank row from the bottom
  else
    scroll down

Fixes #111

Works great, thanks!

Good stuff @Tyriar! Really pleased the VSCode guys are hopping on this project - a rising tide lifts all boats!


fix(state): ignore blocks below the finalized tip in can_fork_chain_at()

Motivation
This PR updates the can_fork_chain_at() method in zebra-state to ignore blocks below the finalized tip.
Closes #6388.
Solution

Store the sent hashes of finalized block list separately
Check only non-finalized sent block hashes in can_fork_chain_at()

Related:

Remove redundant call to db.tip()

Review
This is low-priority.
Reviewer Checklist

[ ] Will the PR name make sense to users?

[ ] Does it need extra CHANGELOG info? (new features, breaking changes, large changes)

[ ] Are the PR labels correct?
[ ] Does the code do what the ticket and PR says?

[ ] Does it change concurrent code, unsafe code, or consensus rules?

[ ] How do you know it works? Does it have tests?

I updated my review because the name changes in ticket #6793 have merged.
(There's no need to work on this PR any time soon, please check with Pili first.)

@Mergifyio update