Enable GUI tests in CI

It would help with all the refactoring tasks to enable tests for the GUI. Currently this is not possible, becaue napari cannot be imported in the Github CLI due to missing graphical libraries (QT, but might lack even more things like OpenGL).
The best strategy here would probably look into what napari does for the CI. (I tried this myself at some point, but gave up because the napari test suite is quite extensive and it was unclear what the best starting point is).

Testing

For reference, link to the documentation page on testing napari plugins: https://napari.org/stable/plugins/test_deploy.html
We will need to switch to pytest (instead of the current unittest). We need both pytest and pytest-qt to handle tests involving the GUI. Fortunately, pytest can already run the current unit tests with no modification, so there is no extra work needed there (the existing tests are already compatible with pytest).

Github actions CI
The complications around GUI testing in the GitHub actions CI can be solved by adding two actions to the workflow yaml file:

tlambert03/setup-qt-libs, and
aganders3/headless-gui

Setup Qt libraries
First, to set up the Qt graphical libraries on the remote CI machine, we can use Talley Lambert's tlambert03/setup-qt-libs action.
Click here to see the exact line where it is used in the napari workflow file
- uses: tlambert03/setup-qt-libs@v1

Run headless GUI during testing
Then, in the step where the tests are run, we can use Ashley Anderson's aganders3/headless-gui action. This gives us a virtual display for the tests.
Click here to see the exact line where it is used in the napari workflow file
- uses: aganders3/headless-gui@v1

Workflow YAML file
We'll use this section of the napari yaml workflow to base ours on. It can likely be simplified a lot for our use.

Ok here's a demo you can try.

First, install pytest and pytest-qt into your python development environment
pytest test/test_gui.py

test_gui.py:
import skimage.data
from micro_sam.sam_annotator import annotator_2d
from micro_sam.sam_annotator.annotator_2d import _initialize_viewer

def test_something_with_a_viewer(make_napari_viewer_proxy):
    """The demo example from the napari plugin testing docs."""
    viewer = make_napari_viewer_proxy()
    # carry on with your test
    image = skimage.data.chelsea()
    viewer.add_image(image, name="raw")
    viewer.close()

def test_annotator_2d(make_napari_viewer_proxy, tmp_path):
    """Integration test for annotator_2d widget."""
    model_type = "vit_b"
    image = skimage.data.camera()
    embedding_path = tmp_path / "test-embedding.zarr"

    viewer = make_napari_viewer_proxy()
    viewer = _initialize_viewer(image, None, None, None)  # TODO: fix hacky workaround
    # test generating image embedding, then adding micro-sam dock widgets to the GUI
    viewer = annotator_2d(
        image,
        embedding_path,
        show_embeddings=False,
        model_type=model_type,
        v=viewer,
        return_viewer=True
    )
    assert len(viewer.layers) == 6
    expected_layer_names = ['raw', 'auto_segmentation', 'committed_objects', 'current_object', 'point_prompts', 'prompts']
    for layername in expected_layer_names:
        assert layername in viewer.layers
    # ... continue if you want to actually segment, commit, or clear annotatons
    viewer.close()  # must close the viewer at the end of tests

We will need to switch to pytest (instead of the current unittest). We need both pytest and pytest-qt to handle tests involving the GUI. Fortunately, pytest can already run the current unit tests with no modification, so there is no extra work needed there (the existing tests are already compatible with pytest).

:+1:

Ok here's a demo you can try.

Thanks! I will give this a try later and then give some more feedback.

Hi @GenevieveBuckley,
I had a look at the test now, and it works for me locally when:

Installing pytest and pytest-gui in the environment.
Copy pasting your test file (I called it gui_test.py)
And running it via pytest -v gui_test.py.

Regarding the test itself:

we could use vit_t instead of vit_b, so that the model download is smaller and the embedding prediction faster.
and then we could add some point and/or box labels, pass them to the respective layers, run segmentation, and compare to the expected result (which can be efficiently saved in the test via RLE).

But we can iterate on the exact details of the test later (and I can also take over some of the actual functionality testing once we have a scaffold for the test and it runs in the CI).
I assume we should finalize #214 next before you turn to implementing this in the CI.

I assume we should finalize https://github.com/computational-cell-analytics/micro-sam/pull/214 next before you turn to implementing this in the CI.

https://github.com/computational-cell-analytics/micro-sam/pull/214 is ready for review and merge now. It's not a blocker to work on this issue (but yes it is nice to have the test coverage information)

we could use vit_t instead of vit_b, so that the model download is smaller and the embedding prediction faster.

Good idea, will do.

and then we could add some point and/or box labels, pass them to the respective layers, run segmentation, and compare to the expected result (which can be efficiently saved in the test via RLE).

I've just spent some time on this problem today.

I put something together that runs, but I was very surprised at how little extra test coverage this added (maybe those functions are already covered by unit tests?). It may not be worth the extra complexity to include it.
I also tried running the automatic mask generation too, but this is pretty slow (even when I make the input image tiny).

Possible problems I've found:

annotator_3d (and probably lots of others) doesn't allow you to pass an existing viewer in, it will automatically create a new napari viewer for you. This doesn't work well with the make_napari_viewer_proxy test fixture, which creates a viewer object to use in the tests.
Running two tests involving the GUI is producing the error message RuntimeError: wrapped C/C++ object of type QWidget has been deleted. There might be some problem with how we're handling the dock widgets? I'm not sure.

Today I learned about pytest-gui, I'd always been using pytest-qt. That's cool to know! (Looks like it might also work for Tkinter, whereas pytest-qt is only for pyqt and pyside - I'll have to look at the docs more sometime)

Ok, here's the work I did extending tests to actually run some of the annotation functions.
I don't think it is worth including this in the integration tests - it doesn't help our code coverage much, and it adds complexity to the test. Also, in the case of the automatic mask generation, it is quite slow to run.

Here's an example GUI test involving interaction with the annotation functions (click to expand)
import numpy as np
import skimage.data
from micro_sam.sam_annotator import annotator_2d
from micro_sam.sam_annotator.annotator_2d import _initialize_viewer, _segment_widget
from micro_sam.sam_annotator.util import _clear_widget, _commit_segmentation_widget

def test_annotator_2d(make_napari_viewer_proxy, tmp_path):
    """Integration test for annotator_2d widget.

    * Creates 2D image embedding
    * Opens annotator_2d widget in napari
    * Test point prompts (add points, segment object, clear, and commit)
    * Test box prompt (add rectangle prompt, segment object, clear, and commit)
    ...
    """
    model_type = "vit_t"
    image = skimage.data.camera()
    embedding_path = tmp_path / "test-embedding.zarr"

    viewer = make_napari_viewer_proxy()
    viewer = _initialize_viewer(image, None, None, None)  # TODO: fix hacky workaround
    # test generating image embedding, then adding micro-sam dock widgets to the GUI
    viewer = annotator_2d(
        image,
        embedding_path,
        show_embeddings=False,
        model_type=model_type,
        v=viewer,
        return_viewer=True
    )
    # check the initial layer setup is correct
    assert len(viewer.layers) == 6
    expected_layer_names = ['raw', 'auto_segmentation', 'committed_objects', 'current_object', 'point_prompts', 'prompts']
    for layername in expected_layer_names:
        assert layername in viewer.layers
    # Check layers are empty before beginning tests
    np.testing.assert_equal(viewer.layers["auto_segmentation"].data, 0)
    np.testing.assert_equal(viewer.layers["current_object"].data, 0)
    np.testing.assert_equal(viewer.layers["committed_objects"].data, 0)
    np.testing.assert_equal(viewer.layers["point_prompts"].data, 0)
    assert viewer.layers["prompts"].data == []  # shape data is list, not numpy array
    # ========================================================================
    # TEST POINT PROMPTS
    # Add three points in the sky region of the camera image
    sky_point_prompts = np.array([[70, 80],[50, 320],[80, 470 ]])
    viewer.layers["point_prompts"].data = sky_point_prompts

    # Segment sky region of image
    _segment_widget(v=viewer)  # segment slice
    # We expect roughly 25% of the image to be sky
    sky_segmentation = np.copy(viewer.layers["current_object"].data)
    segmented_pixel_percentage = (np.sum(sky_segmentation == 1) / image.size) * 100
    assert segmented_pixel_percentage > 25
    assert segmented_pixel_percentage < 30

    # Clear segmentation current object and prompts
    _clear_widget(v=viewer)
    np.testing.assert_equal(viewer.layers["current_object"].data, 0)
    np.testing.assert_equal(viewer.layers["point_prompts"].data, 0)
    assert viewer.layers["prompts"].data == []  # shape data is list, not numpy array

    # Repeat segmentation and commit segmentation result
    viewer.layers["point_prompts"].data = sky_point_prompts
    _segment_widget(v=viewer)  # segment slice
    np.testing.assert_equal(sky_segmentation, viewer.layers["current_object"].data)
    # Commit segmentation
    _commit_segmentation_widget(v=viewer)
    np.testing.assert_equal(sky_segmentation, viewer.layers["committed_objects"].data)

    # ========================================================================
    # TEST BOX PROMPTS
    # Add rechangle bounding box prompt
    camera_bounding_box_prompt = np.array([[139, 254],[139, 324],[183, 324],[183, 254]])
    viewer.layers["prompts"].data = [camera_bounding_box_prompt]
    # Segment slice
    _segment_widget(v=viewer)  # segment slice
    # Check segmentation results
    camera_segmentation = np.copy(viewer.layers["current_object"].data)
    segmented_pixels = np.sum(camera_segmentation == 1)
    assert segmented_pixels > 2500  # we expect roughly 2770 pixels
    assert segmented_pixels < 3000  # we expect roughly 2770 pixels
    assert (camera_segmentation[150:175,275:310] == 1).all()  # small patch which should definitely be inside segmentation

    # Clear segmentation current object and prompts
    _clear_widget(v=viewer)
    np.testing.assert_equal(viewer.layers["current_object"].data, 0)
    np.testing.assert_equal(viewer.layers["point_prompts"].data, 0)
    assert viewer.layers["prompts"].data == []  # shape data is list, not numpy array

    # Repeat segmentation and commit segmentation result
    viewer.layers["prompts"].data = [camera_bounding_box_prompt]
    _segment_widget(v=viewer)  # segment slice
    np.testing.assert_equal(camera_segmentation, viewer.layers["current_object"].data)
    # Commit segmentation
    _commit_segmentation_widget(v=viewer)
    committed_objects = viewer.layers["committed_objects"].data
    # We expect two committed objects
    # label id 1: sky segmentation
    # label id 2: camera segmentation
    np.testing.assert_equal(np.unique(committed_objects), np.array([0, 1, 2]))
    np.testing.assert_equal(committed_objects == 2, camera_segmentation == 1)

    # ========================================================================
    viewer.close()  # must close the viewer at the end of tests

Here's a GUI test involving automatic mask generation (click to expand)
import numpy as np
from micro_sam.sam_annotator import annotator_2d
from micro_sam.sam_annotator.annotator_2d import _initialize_viewer, _autosegment_widget

def test_annotator_2d_amg(make_napari_viewer_proxy, tmp_path):
    """Integration test for annotator_2d widget with automatic mask generation.

    * Creates 2D image embedding
    * Opens annotator_2d widget in napari
    * Test automatic mask generation
    """
    model_type = "vit_t"
    embedding_path = tmp_path / "test-embedding.zarr"
    # example data - a basic checkerboard pattern
    image = np.zeros((16,16))
    image[:8,:8] = 1
    image[8:,8:] = 1

    viewer = make_napari_viewer_proxy()
    viewer = _initialize_viewer(image, None, None, None)  # TODO: fix hacky workaround
    # test generating image embedding, then adding micro-sam dock widgets to the GUI
    viewer = annotator_2d(
        image,
        embedding_path,
        show_embeddings=False,
        model_type=model_type,
        v=viewer,
        return_viewer=True
    )
    # check the initial layer setup is correct
    assert len(viewer.layers) == 6
    expected_layer_names = ['raw', 'auto_segmentation', 'committed_objects', 'current_object', 'point_prompts', 'prompts']
    for layername in expected_layer_names:
        assert layername in viewer.layers
    # Check layers are empty before beginning tests
    np.testing.assert_equal(viewer.layers["auto_segmentation"].data, 0)
    np.testing.assert_equal(viewer.layers["current_object"].data, 0)
    np.testing.assert_equal(viewer.layers["committed_objects"].data, 0)
    np.testing.assert_equal(viewer.layers["point_prompts"].data, 0)
    assert viewer.layers["prompts"].data == []  # shape data is list, not numpy array
    # ========================================================================
    # Automatic mask generation
    _autosegment_widget(v=viewer, min_object_size=30)
    # We expect four segmentation regions to be identified
    expected_segmentation_label_ids = np.array([0,1,2,3])
    np.testing.assert_equal(np.unique(viewer.layers["auto_segmentation"].data),
                            expected_segmentation_label_ids)
    viewer.close()  # must close the viewer at the end of tests

I have also run into problems with errors when I run two GUI tests. I'm not entirely sure how to fix that, something funny might be going on with the widgets and garbage collection(??)
RuntimeError: wrapped C/C++ object of type QWidget has been deleted

I put something together that runs, but I was very surprised at how little extra test coverage this added (maybe those functions are already covered by unit tests?). It may not be worth the extra complexity to include it.

Yes, the functions are covered by unit tests, but I think it makes sense to add an integration test.
I am at a conference this week and have a bit fewer time to look into this, but I will follow up briefly in the afternoon, and also see if I can add the codecov token.

Hi @GenevieveBuckley ,
my suggestion from my side:

you go ahead and clean up #214 so that we can merge it and have test coverage + installation via mamba
then you finish up #223 , but just add a simple integration test that starts the GUI. I will look into more complex integration tests that use the actual functionality (but thanks for starting with this, I will definitely take a look!)

Also, it would be great if you can figure out why running more than one test currently fails.

Let me know if you think we should go ahead differently, or if you run into any issues.

This is implemented now. Thanks @GenevieveBuckley!


Show preview complex data type

Change overview

In cluster detail page, allow users to see 4 lines of preview of complex data type.

Testing
Manually tested.

This PR adds on top of #11989. If you're going to do this, please separate the changes from that PR and this one into different commits and make it clear in the PR description.
The code here looks fine to me, but will wait to approve until #11989 merges.

@austinh0 ?

@austinh0 ?

Hi Andy, can you approve this first: https://github.com/project-chip/connectedhomeip/pull/11989
After that, this should be safe to merge in as well.

/rebase

Fast tracking given this has been in review for a while.

/rebase


document enabling defineModel in 3.5 version

Environment
Nuxt project info:                                                                                22:04:49

Operating System: Windows_NT
Node Version:     v18.13.0
Nuxt Version:     3.5.0
Nitro Version:    2.4.0
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      srcDir, css, modules, app, experimental, runtimeConfig, postcss, typescript
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Reproduction

Describe the bug
defineModel not working in 3.5 version and i dont see the way i could turn it on
There is also this warning in the console

Additional context
No response
Logs
No response

Facing this issue after upgrade from 3.4.3 to 3.5.0
`

Operating System: Darwin
Node Version:     v18.14.2
Nuxt Version:     3.5.0
Nitro Version:    2.4.0
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      ssr, router, components, modules, css, runtimeConfig, vite, imports, vue, app
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -
`
Tried to delete .nuxt and node_modules, reinstall but it does not solve the issue.

These features are experimental, you need to enable them in your vite config, as described here 🚀
// nuxt.config.ts

export default defineNuxtConfig({
  vite: {
        vue: {
            script: {
                defineModel: true,
                propsDestructure: true
            }
        }
    }
})

These features are experimental and require explicit opt-in, you need to enable them in your vite config, as described here 🚀
// nuxt.config.ts

export default defineNuxtConfig({
  vite: {
        vue: {
            script: {
                defineModel: true,
                propsDestructure: true
            }
        }
    }
})

does this work for you? for me its not working

These features are experimental and require explicit opt-in, you need to enable them in your vite config, as described here 🚀
// nuxt.config.ts

export default defineNuxtConfig({
  vite: {
        vue: {
            script: {
                defineModel: true,
                propsDestructure: true
            }
        }
    }
})

does this work for you? for me its not working

Yup I can confirm it works for me, have you run nuxi upgrade --force as well?

@yassilah  it works i made a misstake i had

I think it would be good to explicitly document how to set Vue options, particularly with regard to reactive props destructure, etc.

I think it would be good to explicitly document how to set Vue options, particularly with regard to reactive props destructure, etc.

i agree, even in the blog there's nothing about it

i have same problem and getting also same warning.
[Vue warn]: defineModel() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.

i have same problem and getting also same warning.
[Vue warn]: defineModel() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.

You can edit the config, then restart service.

I upgraded to v3.5.2 and got this error again.
    at index.vue:18:1
(```

Adding

vite: {
vue: {
script: {
defineModel: true,
propsDestructure: true
}
},
}
}
to nuxt.config does not help.

@danielroe It would be great if we add these options to nuxt's experimental option

Personally, I feel it would be redundant and a bit confusing as it is not a Nuxt feature but really a Vue feature, so it makes sense to me that it is under vite.vue.script config. It is also how you would set it up outside a Nuxt project. However, it might indeed be good to add it to the Nuxt docs - not only for these specific options but more generally for all Vue features that require explicit opt-in


operator gitlab-operator-kubernetes (0.17.1)

Thanks submitting your Operator. Please check below list before you create your Pull Request.
New Submissions

[ ] Are you familiar with our contribution guidelines?
[ ] Have you packaged and deployed your Operator for Operator Framework?

[ ] Have you tested your Operator in all supported installation modes?
[ ] Have you considered whether you want use semantic versioning order?
[ ] Is your submission signed?
[ ] Is operator icon set?

Updates to existing Operators

[ ] Did you create a ci.yaml file according to the update instructions?
[ ] Is your new CSV pointing to the previous version with the replaces property if you chose replaces-mode via the updateGraph property in ci.yaml?
[ ] Is your new CSV referenced in the appropriate channel defined in the package.yaml or annotations.yaml ?
[ ] Have you tested an update to your Operator when deployed via OLM?
[ ] Is your submission signed?

Your submission should not

[ ] Modify more than one operator
[ ] Modify an Operator you don't own
[ ] Rename an operator - please remove and add with a different name instead
[ ] Modify any files outside the above mentioned folders
[ ] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[ ] Description about the managed Application and where to find more information
[ ] Features and capabilities of your Operator and how to use it
[ ] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[ ] Human readable name and 1-liner description about your Operator
[ ] Valid category name1
[ ] One of the pre-defined capability levels2
[ ] Links to the maintainer, source code and documentation
[ ] Example templates for all Custom Resource Definitions intended to be used
[ ] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

Error:
TASK [parse_operator_bundle : Determine and set fact for operator specific information - name, pod name, container name and capabilities] ***
fatal: [localhost]: FAILED! =>
  msg: |-
    The task includes an option with an undefined variable. The error was: list object has no element 0

    The error appears to be in '/playbooks/upstream/roles/parse_operator_bundle/tasks/main.yml': line 121, column 9, but may
    be elsewhere in the file depending on the exact syntax problem.

    The offending line appears to be:

          - name: "Determine and set fact for operator specific information - name, pod name, container name and capabilities"
            ^ here

/retest

@J0zi @mvalarh - pipeline error:
ASK [parse_operator_bundle : Determine and set fact for operator specific information - name, pod name, container name and capabilities] ***
fatal: [localhost]: FAILED! =>
  msg: |-
    The task includes an option with an undefined variable. The error was: list object has no element 0

    The error appears to be in '/playbooks/upstream/roles/parse_operator_bundle/tasks/main.yml': line 121, column 9, but may
    be elsewhere in the file depending on the exact syntax problem.

    The offending line appears to be:

          - name: "Determine and set fact for operator specific information - name, pod name, container name and capabilities"
            ^ here

seem to me that there's something wrong with pipeline rather than submission, can you please confirm?

/merge possible

/merge possible

/approve

/merge possible


Allow user to change plot color

Implement a QColorDialog as a menu action to allow user to change the pen used to draw the plot lines.

Done in #110.


INSTAREPL: double colons keywords are resolved to clojure.core

In INSTAREPL mode, double colons keywords are resolved to clojure.core.
Reproduction steps:
(ns my.ns)
*ns* ; #object[clojure.lang.Namespace 0x26aa8afd "my.ns"]
(namespace ::aa); "clojure.core"

I don't remember when i fixed this, but it is now fixed :P


[QUERY] how can I see http payload sent to azure ai search ?

Library name and version
Latest net azure ai search nuget package
Query/Question
how can I see http payload sent to azure ai search ?
Environment
Windows ,  net 8

in startup : var opt = new SearchClientOptions
{
Diagnostics =
{
IsLoggingContentEnabled = true
}
};
return new SearchIndexClient(new Uri(azureSearchServiceEndpoint), new AzureKeyCredential(azureSearchAdminKey), opt);

in startup : services.TryAddSingleton();

have  AzureEventSourceLogForwarder injected somewhere and call  .Start(); on it

You can find more information about logging here: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/samples/Diagnostics.md.


Decoded video transformation matrix ignored

First of all thanks for your contribution, Cool project!
[Report]
When drawing the decoded frame on the outer surface in ScaleToFitGlFrameRenderFilter.java the frame textures transformation matrix is ignored. Value of inputSurface.getTransformMatrix() is not passed to apply method.
Some of my videos contain some nasty transformations(not identity), so I get some blurry rectangle on the right edge(in my case).
I fixed it, the output video was clean, but the video is now flipped, and I think it's because of this transformation
           Matrix.scaleM(mvpMatrix, 0, videoAspectRatio, -1, 1);

That is very interesting. Thanks for finding this!
Does video look good if you change that -1 to 1?
I have been working mostly with videos that have identity transformation matrix, so I guess that issue never came up. Can you send me one of your "non-identity" videos or tell me how to generate them, so I can debug on my end?

Yes video looks good when I change to 1, here's a video
https://filebin.net/2g7ll3slnq7cx155
As a matter of fact I just noticed all my other videos give me non identity matrices too
(matrix[5] == -1), I think it's all connected.

Nice catch! Thanks! I fixed the issue (simplified the code, too). If possible, can you validate it after I merge the pull request?


Dynamic Island support

Resolves #343

are we merging this. ?

Oh that would definitely be nice to have :)


Upgrade required

Is there possible to upgrade the template for Angular v7?

@madrileanu Did you manage a upgrade to angular 6/7/8? Thanks


Fork Info - TypeScript and lokijs-collections

Not an issue, just FYI, I've ported a light-weight version of lokiJS to TypeScript:
I was the original writer of the TypeScript definition for lokijs (https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lokijs).
I've been looking for time to update the definition, but the projects I work on day-to-day have taken me in another direction.
As a result, I've ported/forked<EMAIL_ADDRESS>and integrated it directly into lokijs-collections.  Both lokiJS and lokijs-collections are MIT licensed.  @obeliskos and @techfort, let me know if you have any issue or request related to my port of lokiJS code in lokijs-collections.

Well, I just do a similar thing with the official LokiJS version 2. Please have a look at https://github.com/LokiJS-Forge/LokiJS2 - especially the branch "move_to_typescript".
I use and used some of your types definition from DefinitelyTyped. Maybe we can combine our work/gain from each other.

@Viatorus I like it, I'm always excited to see projects move toward typescript!  My goals with lokijs-collections depart from lokijs on two major points, which may make it somewhat incompatible with LokiJS2:

I haven't found strong uses for Resultsets and DynamicViews, I see how they'd be useful in complex server side apps, but most of my work is client side apps that don't benefit from these tools.  So lokijs-collections moves away from the extra complexity and also modularizes the main 'loki' file into separate pieces for persistence, change tracking, etc.
Type safety is of paramount important to me, so classes like DynamicView have a generic type, so function definition like: applySimplSort(propname: string) in LokiJS2/.../dynamic_view.ts#L267 is applySimpleSort(propname: keyof T) in lokijs-collections/.../DynamicView.ts#L173.

Awesome work, thanks for letting me know :)

That's great, I can see a lot of possibilities with strongly typed loki as I have done similar (experiments) to concrete mapping layer between loki and dotnetcore node services using generics.  Typescript is really evolving to having that versatility, at compile/transpile time, within js vm itself.
Hope to have time to learn ts more and maybe help out.  Thanks guys, great to see loki evolve... I'm sure @techfort would agree.


Error Sql Server Configuration

Hi, i hope you can help me please, i installed Traccar over Windows Server 2012 and every thing work fine with default configuration, but when i change Database Conection to Sql Server not run de Ui, i can see the schema in data base and some tables.
i have used jdbc4 and 41
Chrome Console
GET http://localhost:8082/ net::ERR_CONNECTION_REFUSED

Here is my log...
2016-05-24 10:43:32  INFO: Operating system name: Windows Server 2012 R2 version: 6.3 architecture: amd64
2016-05-24 10:43:32  INFO: Java runtime name: Java HotSpot(TM) 64-Bit Server VM vendor: Oracle Corporation version: 25.91-b14
2016-05-24 10:43:32  INFO: Memory limit heap: 928mb non-heap: 0mb
2016-05-24 10:43:32  INFO: Character encoding: UTF-8 charset: UTF-8
2016-05-24 10:43:32  INFO: Version: 3.5-SNAPSHOT

Thanks

Are there any errors in the wrapper log file?

Thanks for your atention,
I have gotten to se the ui with this line:

Now i can't add devices because i need more tables, really i dont know why the
changelog-3.5 doesn't execute.
I believe that there is the script rest for sql
New Log..
2016-05-24 14:10:10  WARN: Invalid object name 'groups'. - SQLServerException (... < QueryBuilder:376 < DataManager:383 < PermissionsManager:79 < ...)
2016-05-24 14:10:11  INFO: Starting server...

Hi, I have found solution apply this:
https://github.com/tananaev/traccar/blob/f4a4fafb5c6eb6cdd2d219a3b31c7e232bcd0807/database/changelog-3.5.xml
Thanks...


Deploying causes UI to freeze

Windows kept wanting to kill this "unresponsive" process. The deploy should preferably be on a separate thread.

So do you recommend multithreading the application to help resolve this?

Yes

Closed by #140.


Merging the hoverboard master + making small-ish changes along the way

Shouldn't have pushed so many different changes into a single PR, but I guess nobody cares anyway.

Merged the Hoverboard master (this implies migration to Firestore, so we're going to have a bit of a downtime when I start merging this). Mostly did this because a couple things in our template version are broken, like CSS on subpages.

Changed all logos and social media images.

Fixed the subpages (CoC, reporting guidelines, incident handling guidelines).

Moved privacy and imprint into the footer.

A bunch of copy and config fixes (like correct twitter links and hashtags, etc.).

So I think what I'll do is spin up a dev Firebase project that will run from this branch, and then, instead of testing the entire 91-file PR, we'll just test the actual website.

@jossiwolf fixed.
So aside from the Firestore migration, the main page still needs better content and some structural changes, which I'll handle, but subpages also need some love, and if someone could take that on, I'd really appreciate it:

/conduct: fix the formatting where necessary.
/violation-reporting: formatting.
/incident-handling: formatting.
/imprint: I just blindly cut the HTML piece into the Markdown doc, and it looks just as ugly as you would expect. Also the imprint itself has to be changed; Madlaina has all the info.
/privacy: also needs to be converted to Markdown.
/team: didn't we use to have people there? Must've screwed that up by the merge.
/faq: I can see somebody was working on it, and most of the content is adapted, but some links are broken and irrelevant, some content doesn't apply to us, and some is missing. @jossiwolf I'd recommend you to take a look.

@jossiwolf @thebino maybe you could split the pages between the two of you and make the first pass, and then I'll put some finishing touches along with rearranging the main page?

Alright, I'm done.

Rewrote most of the main page copy.
Renovated the main page: replaced broken links (e.g. to the blog), removed all the broken references to ticket sales, replaced the mailing list link with a twitter link (let me know if we want the mailing list back), added news into "the latest news," added all current partners, fixed the "become a partner" link.
Wrote the FAQ (the previous version was a bit clumsy and mostly cloned from DevFest Ukraine).
Added the accessibility statement page (link in the footer). Thanks to @jossiwolf for the statement itself.
Added the reporting guidelines and incident handling pages.
Reformatted all subpages (code of conduct + guidelines, imprint, privacy policy), thanks to @thebino for his help.
Merged the latest Hoverboard master, deployed the DB into Firestore.

There were more changes, but too many to remember. Long story short, nothing is broken, and everything looks neat and up-to-date (unless I missed something, which I most certainly did, but what can you do).
@thebino @jossiwolf let's test this and roll out—this is one of the last things we need to do before we can kick off the ticket sales. :)

@emedvedev Neat, everything works!
Awesome FAQ Section! Love the new colours too.
I changed some information in the accessibility statement which I think was left over from copy and pasting :P
I think that new colour of the "Ticket Sales are starting soon" button is a bit invisible against the dark background, should we change it to a better visible colour?
Otherwise, I'm super happy about the PR!

@jossiwolf done :)

Woohoo, it's happening!


Validate Java beginner tips

We are starting an epic task to update Elemental Selenium content.
Tips should be validated and their content reviewed to fit the new tip headers, considering inclusive language.
Code snippets also need to be validated.

[ ] Create a new folder under updated-content named with the new tip number and title using kebab-case. You should follow the folder example: 0-template
[ ] Inside of the folder, a markdown file named as the programing language validated should be created. In this case: java.md
[ ] The file should follow the tips template
[ ] Delete the equivalent folder under non-updated-tips folder
[ ] Add both first published and latest review dates (template already have the metadata). To know the first published date, check elemental-selenium repository
[ ] In the case you cannot validate/ run the code snippet, or have doubts about the content, tag @diemol in a separate issue AND in the PR as a reviewer so he can check it

Use the following checklist to help you keep track of all the beginners tips in Java currently in the repository:
Tips Code Validation

[ ] Tip 1
[ ] Tip 3
[ ] Tip 5
[ ] Tip 13
[ ] Tip 45
[ ] Tip 50
[ ] Tip 51
[ ] Tip 61

Tips Content Validation

[ ] Tip 1
[ ] Tip 3
[ ] Tip 5
[ ] Tip 13
[ ] Tip 45
[ ] Tip 50
[ ] Tip 51
[ ] Tip 61

depracated

The folder has already been created correct, in the updated-tips folder?

Yes I understand now thank you

Done; closing Issue.


Lack of local includes should only warn

Lack of local includes should only warn and do not throw an error, because the data file can perhaps be found by kroki server.
This changes local files pre-processing to be best-effort. And reverts behavior to as in 0.8.2 version.

Thanks @mwabik
I wonder if we should introduce an option to control this behavior?
kroki-plantuml-unresolved-local-include

warn: log a warning
error: throw an exception
ignore: silently ignore

We could do the same for remote include. The default value of local include would be error and the default value for remote include would be warn.
In you case, you will be able to suppress the (unnecessary and thus annoying) warning.
What do you think?
@anb0s Do you have an option on this?

I think, in general, the better default is to call korki server if client library has any doubts (regarding syntax, options, includes and such). Otherwise huge benefit of standardizing on kroki server can be killed by not consistent behavior between client libraries and versions.
We are heavy intellij/plantuml (with kroki support) plugin users - and pre-processors are non-existent there anyway.  We have just issues with VS Code users, and we can't upgrade antora...
I wonder if such config is even necessary. The  only difference is, if the error is thrown on client or server side - diagrams won't be generated either way :) There should be no impact for correct diagrams, but there will be noise in logs. So that could be only option - log level. It would also help with standard library includes.

We are using files with lot of local includes (own styles, macros etc.) and need traceability if files cannot be included (config path errors or typos) before sending to kroki-server to have consistent diagrams. For shared files (libraries) we are using <std-includes>. I think we should warn users if hard errors breaks the rendering for other use cases like referenced files available only at server (but are not <std-library>).
@Mogztter IMHO we can accept this change for now. I will ask more colleagues if we still need the hard error configurable, e.g. similar to C++ compiler options -Wall -Werror ==> fail-fast :)

Thanks for your feedback @anb0s
I will go ahead and merge this pull request. I will create an issue for the improvement I described.

Thanks @mwabik for your contribution :tada:
Sorry for taking so long to merge, somehow it slipped under my radar :sweat_smile:


enable leaf certificate for Keycloak

This task is used to address issue https://github.ibm.com/IBMPrivateCloud/roadmap/issues/60688

It enables leaf certificate with dns name cs-keycloak-service for keycloak to secure the connection
This leaf certificate will be used to create a re-encrypted Route as well
It also refreshes KeyCloak CR with annotation because KeyCloak CR will not recover by itself when tls secret is missing.

How to test

Deploy dev build CPFS as usual by creating common service operator subscription, wait for Common Service Operator and ODLM to be installed.

Delete existing OperandConfig common-service in this tenant

Replace the image in Common Service operator CSV to quay.io/daniel_fan/common-service-operator-amd64:dev, and set ImagePullPolicy to Always

Create OperandRequest to request keycloak-operator, waiting for KeyCloak to be installed

Check the following components

Verify cs-keycloak-tls-secret secret is generated
Verify keycloak-setup-job job is completed
Verify keycloak Route has field .spec.tls.destinationCACertificate
Verify URL in keycloak Route is accessible

Verify we are able to use TLS cert to secure the connection to KeyCloak

Create a pod to simulate the applicationapiVersion: v1
kind: Pod
metadata:
  name: development-pod
spec:
  containers:
  - name: development-container
    image: icr.io/cpopen/cpfs/cpfs-utils
    command: ["sleep"]
    args: ["infinity"]
    tty: true
  serviceAccountName: operand-deployment-lifecycle-manager

Get into container's terminaloc rsh deployment-pod

In the container terminal, try to get the certificate and use this certificate to secure the connection. The command curl should not return any error.oc get secret cs-keycloak-tls-secret -o jsonpath='{.data.ca\.crt}' | base64 -d > /tmp/keycloak-svc.crt

curl https://cs-keycloak-service.keycloak-cert.svc:8443 --cacert /tmp/keycloak-svc.crt

/retest


Sparkline cell improvements

Two small improvements for the sparkline cell:

The current version of line chart is usually called an area chart. It would be a nice addition if we had a proper line chart kind as well. And have the current version of line chart supported via the area graph kind.
Add a configuration to hide the x-axis line.

Proposed API:
interface SparklineCellProps {
   // ... other props
    readonly graphKind?: "line" | "bar" | "area";
    readonly hideAxis?: boolean;
}

Lets ship these. Great improvements, simple to implement.

Implemented by https://github.com/glideapps/glide-data-grid/pull/854


disk swap video missing

references disk swap video but there is nothing there, same issue as last submission but on different page

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

ID: 95441ea4-e1d7-2ae1-2ddc-c473caab08bf
Version Independent ID: 16c18348-6f30-6324-1791-a7e1404a7f61
Content: Troubleshoot boot errors in Azure Linux Virtual Machines - Azure Virtual Machines
Content Source: articles/virtual-machines/troubleshooting/boot-error-troubleshoot-linux.md
Service: virtual-machines-linux
GitHub Login: @vilibert
Microsoft Alias: vilibert

@javester Thanks for your comment! We will review and provide an update as appropriate.

@javester Thanks for your comment! We will review and provide an update as appropriate.

@mimckitt
Can you please check and add your comments on this doc update request as applicable.

@mimckitt
Can you please check and add your comments on this doc update request as applicable.

@javester I see the videos. Two links to videos both working for me.
https://www.youtube.com/watch?v=m5t0GZ5oGAc&feature=youtu.be
https://www.youtube.com/watch?v=KevOc3d_SG4&feature=youtu.be

I haven't heard back and seeing as I found the videos will close this out. If there is still an issue just let me know and we can reopen and work on it further.
#please-close


Revert "Update DSP Operator labels"

This reverts commit 374f86b544f0376f43a7c2e92cdc30d57b6fbb78.
JIRA link: https://issues.redhat.com/browse/RHODS-8935

Description

How Has This Been Tested?

Merge criteria:

[ ] The commits are squashed in a cohesive manner and have meaningful messages.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

/unhold

/lgtm
/approve


Add awesome list badge

https://github.com/sindresorhus/awesome/issues/253

Oh nice, Added badge.


Course role refactor

This PR is intended to address the tasks I've assigned to myself in #163.
Since we've received comments about it, I've opted to rename "responsible teacher" in this PR. "Teacher responsible" has been suggested, but I chose "teacher in charge" as a candidate new term. "Vastuuopettaja" doesn't strictly seem to have a translation, but "vastuuhenkilö" does, and it translates to "person in charge." By extension it would make sense for "vastuuopettaja" to be "teacher in charge."

Because of the grading scale conversation I actually started thinking that have all of the Sisu course types been accounted for on the server side. For example, in the Sisu UI the type for the courses CS-C3170 and CS-E4675 is 'Project'.

Based on the terminology meeting, we aren't considering any Sisu course or course instance types in the backend at all anymore in this PR.

Right, I forgot about this! Then everything is good!


"E437: terminal capability "cm" required" error message, when I try to use VIM

I've got this error message every time when I try to use VIM:
"E437: terminal capability "cm" required"
This is a new Vagrant Coreos installation.

What host OS are you running?

I use Win7x64. The issue is solved (for me) by using VIM with XTERM command:
https://groups.google.com/forum/#!topic/coreos-dev/LUSPSYsv-Ew

Ok - I don't have any experience with windows, so I can't really help you debug this any further. Since you found a solution, I'm going to close this.


Text Support

Hi, this is a fantastically helpful component! I was wondering when you anticipated adding more text features.
Thanks!

Text features are the most tricky ones. especially on iOS.
but I`ll try my best to acheive those features.
Now Text supports basic props and path prop.

I have finished the TextPath support and TSpan support.
Will be released in this weekend.

Those features are ship within 5.0.0.


Works fine in debug mode but crashes on startup in release mode

Did you manage to solve this? If so can you please share.

Same as #12


Refactor controller role to use variables for hostname and host index

Define variables for frequently referenced operations in controller role
Move controller.jmxremote.jvmArgs to deploy.yml

PG2 2754 ⌛
PG5 64 ⌛

PG3 1821 🔵

@cbickel, PG looks good.


Support 'random' and 'bottom' knowledge graph rank eval strategies

This follows [1] to add two new evaluation strategy for knowledge graphs, particularly focused on how ties are broken when ranking edges.
Recall that our knowledge graph ranking code compares the model's computed score for an edge like E = (s, r, t) (s = source, r = relationship type, t = target) against the scores of corruptions E' = (s, r, n) for all n in the graph and similarly for (n, r, t). The rank of E is the number of corrupted edge E' scores that are greater than E's (ignoring edges in the train, test or validation set for "filtered" mode).
If there's a tie where score of E = score of E' (for one or more E'), this is implicitly ranking E higher than all of those tied E'. [1] shows that this misleading, because an algorithm that gives the same score to every edge (true or corrupted) gets rank = 1 for every edge under this approach.
The paper describes 3 ranking strategies for breaking ties:

Top: the true edge is ranked before all tied corruptions (as described above)
Bottom: the true edge is ranked after all tied corruptions, dramatically penalising ties
Random: the true edge is given a rank somewhere between top and bottom randomly (which averages out across many ties)

The paper describes the "Random" one as fairest/best, and so we default to it.
Changing the strategy makes little difference for "simple" algorithms like ComplEx and DistMult, because ties are rare (in a probabilistic framing, there's a very small chance that two bilinear products of 3 "random" vectors ends up being equal). This is more useful for non-linear/neural-network-based models that use activations functions like RelU, since these make it easy to end up with many (or all) zeros in hidden layers, and thus more quantisation (and more ties) in scores. We may implement them in future.
[1]: Sun, Zhiqing, Shikhar Vashishth, Soumya Sanyal, Partha Talukdar, and Yiming Yang. “A Re-Evaluation of Knowledge Graph Completion Methods.” ArXiv:1911.03903 [Cs], November 10, 2019. http://arxiv.org/abs/1911.03903.
See: #1158

Oh, oops, I haven't pushed the unit test yet, so not quite ready for review.

Ok this is ready for review now; sorry for assigning you too early @kieranricardo.


fix java stack

need java 18 fro webgoat/webwolf/wrongsecrets

installed java17 from tarball

webgoat start now, but webwolf won't come up. webwolf can be started once the container is running, so seems to be a race condition.

webgoat, webwolf, and wrongsecrets are now running


Wrong timezone deduced  when using fields other @timestamp

Hi.
In my Elasticsearch I'm storing the original message timestamp as "time". Of course we also have  @timestamp. When trying to use "time" for both "display_timestamp" and "timestamp", we're getting wrong timezones displayed.
Example:

Assuming that my computer time is UTC+03:00.
Messages are logged at UTC+00:00.
Logtrail is configured to display in "Etc/UTC"

I'm seeing messages  displayed in UTC-03:00

@sheinbergon Is the time coming from original message and is it generated in logstash? Can you share your logstash config, so I can reproduce this issue locally. With @timestamp TZ works fine.

Assuming this is same as https://github.com/sivasamyk/logtrail/issues/109. So closing.


Firestore: Import column lengths pass 79

Saw this as I was adding in functionality.  Making separate PR to clean up.

@chemelnucfin The Pub / Sub failure was fixed in #4454, please rebase against the latest master


Ports: request for feedback on several single-file header-only libraries

Hi,
I've a couple of single file header-only libraries that may or may not be of interest to vcpkg. Before I'd plunge in, I'd like to hear if there's interest in one or more of the following. Please specify.

[ ] any-lite
A single-file header-only C++17-like any, a type-safe container for single values of any type for C++98, C++11 and later.

[ ] byte-lite
A single-file header-only C++17-like byte type for C++98, C++11 and later .

[ ] clue
A tiny single-file header-only C++ logging framework.

[ ] expected-lite
Expected objects for C++11 and later (and later perhaps C++98 ).

[ ] observer-ptr
A single-file header-only C++98, C++03, C++11, C++14 version of ISO C++17 std::observer_ptr.

[ ] optional-lite
A single-file header-only version of a C++17-like optional, a nullable object for C++98, C++11 and later.

[ ] status_value
A class for status and optional value for C++11 and later, C++98 variant provided.

[ ] variant-lite
A single-file header-only version of a C++17-like variant, a type-safe union for C++98, C++11 and later.

[ ] lest
A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant). Note this is a light C++11 Catch variant, at 1/9 LOC (and less functionality).

если они участвуют в каких либо проектах, почему бы и нет. тем более если существует у какой либо библиотеки зависимость. кому надо, тот установит, были бы портированы заголовки  ))
If they participate in any projects, why not. even more so if you have any library dependency.

Is there a reason that all are separate ports?
I see the intention that if you put the headers directly into an project you only add the required ones, but within vcpkg there is little advantage to have one port per header.
Wouldn't it make sense to combine all of them in a single library that offers c++17/20 backward comparability constructs for c++11/98?

Separate ports is fine here (and somewhat preferable) because it helps to keep changes small and isolated. When expected-lite updates, there's no need to rebuild things that use optional-lite (as an example).
However, I could see value in a metapackage that installs all of them, for someone who knows they want all of @martinmoene's great stuff in a single easy command line :)

@ras0219-msft Thanks :) Do you have a suggestion/example how such a metapackage may look like?

@martinmoene check out the port boost! Simply list the build dependencies in the CONTROL file and call set(VCPKG_POLICY_EMPTY_PACKAGE enabled) in portfile.cmake. Note within the boost example that some of the build dependencies are disabled for certain triplets e.g. occurrences of (!arm) based on which triplets that particular port builds for, which allows the metapackage to succeed in building for a triplet even though one of the dependencies may not. Let us know if you run into any problems and we will be more than happy to lend a hand.

Hi @martinmoene  thanks for posting this request and your contribution. Currently all the ports you put forward have been added to vcpkg. Please try to update vcpkg and use them.


added edit button in profile page

Refs #890

I think it would be good to use the round green pencil button that we also use on the store page:

I'm a bit unsure where to position it, I have the feeling it should be top-right of the user map if we take the store edit page as example. @D0nPiano maybe your input would be helpful :)

Okay. Thank you. I will make the changes accordingly.
On Feb 25, 2018 4:39 PM, "Tilmann Becker"<EMAIL_ADDRESS>wrote:

I think it would be good to use the round green pencil button that we also
use on the store page:
[image: image]
https://user-images.githubusercontent.com/4410802/36640709-772a8c18-1a24-11e8-95e0-b9386b76ff24.png
I'm a bit unsure where to position it, I have the feeling it should be
top-right of the user map if we take the store edit page as example.
@D0nPiano https://github.com/d0npiano maybe your input would be helpful
:)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/yunity/karrot-frontend/pull/895#issuecomment-368300626,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AdNovUsgeeJGxlYrEDfeIV8qK5ppOGYwks5tYT9fgaJpZM4SSPcY
.

Preview pictures are in #890

I don't feel up to make the design decision, what do you think about it @djahnie?

Your changelog is quite big (over 2700 changed lines), can you check what happened there?

Actually I was trying to update the forked repository, as it was showing it
is 58 commits behind the actual repository. While pulling upstream 71 files
changed and then I was not able to resolve this so committed the changes.
Can you help me with updating my repository with the actual repository.
On Feb 26, 2018 12:58 AM, "Tilmann Becker"<EMAIL_ADDRESS>wrote:

Your changelog is quite big (over 2700 changed lines), can you check what
happened there?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/yunity/karrot-frontend/pull/895#issuecomment-368337056,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AdNovTtOH24Re0XTHsTaf5hls7IkY_nXks5tYbRVgaJpZM4SSPcY
.

@agarwalpooja https://help.github.com/articles/syncing-a-fork/ is a guide for how to manage keeping your fork up to date with our upstream repository. There's quite a few concepts to get your head around, so don't worry if it is a bit confusing at first.

Okay. Thank you.I will try this.

Thank you for this github article. It was really helpful.
On Mon, Feb 26, 2018 at 1:08 AM, Nick Sellen<EMAIL_ADDRESS>wrote:

@agarwalpooja https://github.com/agarwalpooja https://help.github.com/
articles/syncing-a-fork/ is a guide for how to manage keeping your fork
up to date with our upstream repository. There's quite a few concepts to
get your head around, so don't worry if it is a bit confusing at first.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yunity/karrot-frontend/pull/895#issuecomment-368337852,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AdNovfhKV-BZc1GePNPuJSpxdwUfS2Goks5tYbakgaJpZM4SSPcY
.

Yup previously i used float right, but using float right the icon appears
as in the second image which you liked previously.
I have tried using it at various positions but with float right I dont
think It is possible.I will try again.
On Mon, Feb 26, 2018 at 9:25 PM, D0nPiano<EMAIL_ADDRESS>wrote:

@D0nPiano commented on this pull request.
In src/components/User/Profile.vue
https://github.com/yunity/karrot-frontend/pull/895#discussion_r170638362
:

@@ -113,7 +121,10 @@ p.subtitle
width 200px
float right
max-width: 40%

+.on-right

margin-left 480px

This is problematic for smaller screens. You can try out what it looks
like on mobile using your browsers Resposive Design Mode (Firefox:
https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode)
It should probably be something like "float: right" and maybe some margin
(10px or so) to it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yunity/karrot-frontend/pull/895#pullrequestreview-99354294,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AdNovWnpXKpjrbeyonCm34-vt6y2Uj4Uks5tYtQDgaJpZM4SSPcY
.

Mobile layout is a bit broken, you can use the responsive design mode of your browser to see and fix this. For example: https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode

Okay, Thank You.
On Feb 26, 2018 11:55 PM, "Tilmann Becker"<EMAIL_ADDRESS>wrote:

[image: image]
https://user-images.githubusercontent.com/4410802/36687699-a4cc64be-1b2a-11e8-9eb5-f15cbda2e1ce.png
Mobile layout is a bit broken, you can use the responsive design mode of
your browser to see and fix this. For example:
https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yunity/karrot-frontend/pull/895#issuecomment-368599260,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AdNovUCNUyfN0MSiRHztjgCTmfgKlAkOks5tYvcUgaJpZM4SSPcY
.

@tiltec  Haha, was pretty much exactly what I replied earlier. Obviously had the same thought :smile:
@agarwalpooja Mhm, wired. Just tried it out and:
.map
  height 200px
  width 200px
  float right
  max-width: 40%
.on-right
  float right
  margin-right 10px
.inlinee
  display inline

works fine for me. Which browser are you using?

Firefox
On Feb 27, 2018 2:49 AM, "D0nPiano"<EMAIL_ADDRESS>wrote:

@tiltec https://github.com/tiltec Haha, was pretty much exactly what I
replied earlier. Obviously had the same thought 😄
@agarwalpooja https://github.com/agarwalpooja Mhm, wired. Just tried it
out and:
.map
height 200px
width 200px
float right
max-width: 40%
.on-right
float right
margin-right 10px
.inlinee
display inline
works fine for me. Which browser are you using?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yunity/karrot-frontend/pull/895#issuecomment-368654266,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AdNovQqBEM42d8HJEtRJtuxYfGaulYbAks5tYx_0gaJpZM4SSPcY
.

It's good to know that it worked.

I have added these changes. Are any more changes required?
On Tue, Feb 27, 2018 at 2:55 AM, pooja agarwal<EMAIL_ADDRESS>wrote:

Firefox
On Feb 27, 2018 2:49 AM, "D0nPiano"<EMAIL_ADDRESS>wrote:

@tiltec https://github.com/tiltec Haha, was pretty much exactly what I
replied earlier. Obviously had the same thought 😄
@agarwalpooja https://github.com/agarwalpooja Mhm, wired. Just tried
it out and:
.map
height 200px
width 200px
float right
max-width: 40%
.on-right
float right
margin-right 10px
.inlinee
display inline
works fine for me. Which browser are you using?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yunity/karrot-frontend/pull/895#issuecomment-368654266,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AdNovQqBEM42d8HJEtRJtuxYfGaulYbAks5tYx_0gaJpZM4SSPcY
.

Okay :)
On Feb 28, 2018 12:11 AM, "Tilmann Becker"<EMAIL_ADDRESS>wrote:

@tiltec approved this pull request.
Seems good to me! The mobile view is getting quite cramped in this area as
the button takes away space from the e-mail and location field, but I guess
it's good for now :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yunity/karrot-frontend/pull/895#pullrequestreview-99805286,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AdNovaM1DCsH6IfqiqnOaIHaxWhUeGV6ks5tZExegaJpZM4SSPcY
.

Ooops, it seems that we added the button to all user profile pages, not just for the user that is logged in...

So we have to add this edit button only for  the user who is logged in.I will try to resolve this.

Somebody noticed it in #945 and said they would work on it, so best coordinate with them.
On 7 March 2018 07:40:03 CET, agarwalpooja<EMAIL_ADDRESS>wrote:

So we have to add this edit button only for  the user who is logged
in.I will try to resolve this.
--
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub:
https://github.com/yunity/karrot-frontend/pull/895#issuecomment-371039130


Add light intensity meter to the GUI:

Create a new meter for light intensity and display it on the GUI.

updated in the current code in the repository.


CORE-5810 - Add helm chart that deploys the postgreSQL database used by app-simulator instances

Changes
This adds a helm chart that can be used to deploy the postgreSQL database used by app-simulator instances to record data for sent/received messages used for testing analysis.
Most of the helm chart has been reused from https://github.com/corda/corda-dev-helm with only minor changes. One notable change is changing the init script, so that it creates the tables used by the app-simulator instances to record sent/received messages.
Testing
After adding the repos and installing dependencies as explained in the README file, I deployed the helm chart using:
helm upgrade -i app-simulator-db -n draptis-app-simulator-db applications/tools/p2p-test/app-simulator/charts/app-simulator-db --create-namespace --render-subchart-notes --timeout 10m --wait

I tested it with:
helm test app-simulator-db -n draptis-app-simulator-db

And I also tested connecting to the DB with a UI (dbeaver)locally by using the following connection details after executing sudo kubefwd svc -n draptis-app-simulator-db:

Host: app-simulator-db-postgresql
Port: 5432
Database: app_simulator
Username: simulator
Password: what was returned by kubectl get secret --namespace draptis-app-simulator-db app-simulator-db-postgresql -o jsonpath="{.data.password}" | base64 --decode

Is the PR missing a values.yaml for the new chart? Perhaps it might help answer the question that I have in my mind which is "does providing this chart actually provide any advantage over just pointing people at the postgres chart with a suitable set of overrides?".

Is the PR missing a values.yaml for the new chart? Perhaps it might help answer the question that I have in my mind which is "does providing this chart actually provide any advantage over just pointing people at the postgres chart with a suitable set of overrides?".

Sorry, I just realised that the values.yaml with the default values has not been picked up by git - not sure why. Let me look into it and I'll included it in the PR.
I preferred a separate chart for a couple of reasons:

to prevent confusion: as conceptually, these are two different things - prerequisites for a Corda cluster deployment and prerequisites for an app-simulator deployment.
to allow for independent evolution: currently, it seems that a subset of the dev-chart is sufficient as we deploy the postgresql, but this won't necessarily be the case in the future. Maybe we want to experiment with a different distributed SQL database at some point or generally move in some other direction that's not a good fit for the rest of the Corda cluster.
The values.yaml (that I will now add in the PR) also contain the set of tables to be created. I'd prefer to that to be done out-of-the-box than requiring people to add it as an override on top of the dev-chart.

I wasn't suggesting conflating this with the corda-dev chart at all. I was suggesting that, given it appears to just provide a set of default values to be used with the bitnami/postgresql chart, why not just have users reference that chart directly and simply provide them with the override file needed for this specific scenario. (FWIW: I think the same is true for the corda-dev chart - its existence is pretty tenuous vs just deploying the kafka and postgresql charts independently.)

I'd have to go looking for it but I think there may be some logic in the build pipeline at the moment that can't cope with there being multiple charts in the charts directory e.g. doing a charts/* and only expecting one result. That may need fixing up.

ok, values.yaml now checked in. It was being ignored (not sure where from), so I had to force add it.

I wasn't suggesting conflating this with the corda-dev chart at all. I was suggesting that, given it appears to just provide a set of default values to be used with the bitnami/postgresql chart, why not just have users reference that chart directly and simply provide them with the override file needed for this specific scenario. (FWIW: I think the same is true for the corda-dev chart - its existence is pretty tenuous vs just deploying the kafka and postgresql charts independently.)

ah ok, misunderstanding on my side. Hmm, I guess there's sort of a similar argument, i.e. providing a slightly more out-of-the-box experience, so that people don't even have to specify a custom values.yaml. But, not so strong of an argument, so if you think there are strong reasons to avoid wrapping the bitnami one and using that directly instead (I'm not the expert on helm things..), happy to re-consider.

I'd have to go looking for it but I think there may be some logic in the build pipeline at the moment that can't cope with there being multiple charts in the charts directory e.g. doing a charts/* and only expecting one result. That may need fixing up.

ah, ok - do you remember which part of the pipeline that might have been? Looking at the previous run, most of the steps (up to integration tests, which failed due to the expired certs issue that has now been resolved) succeeded. We can also see what happens with the latest one..

But, not so strong of an argument, so if you think there are strong reasons to avoid wrapping the bitnami one and using that directly instead (I'm not the expert on helm things..), happy to re-consider.

No - I don't really have a strong counterargument either other than that there's obviously a significant amount of boilerplate here when you're just overriding some values of another chart. Providing a custom chart would be more compelling if we were sharing a pre-built chart. As it is, having to pull the dependencies probably means there's more work for the end-user, not less.

do you remember which part of the pipeline that might have been?

Searching for charts/* in https://github.com/corda/corda-shared-build-pipeline-steps/blob/5.0/vars/cordaPipeline.groovy shows a few places where I don't think it's going to do the right thing. Realistically, I'm not sure how generic these pipelines are meant to be. The lint should probably cover every chart but some of the version handling doesn't scale to multiple charts.

Providing a custom chart would be more compelling if we were sharing a pre-built chart. As it is, having to pull the dependencies probably means there's more work for the end-user, not less.

I see, my long-term plan was to possibly distribute a pre-built chart for this one even if that's purely for internal use, as we were planning to use these charts for load /stress testing. And we were considering adding jobs in Jenkins that would allow us to automate running these tests (even if just triggered manually).

Searching for charts/* in https://github.com/corda/corda-shared-build-pipeline-steps/blob/5.0/vars/cordaPipeline.groovy shows a few places where I don't think it's going to do the right thing. Realistically, I'm not sure how generic these pipelines are meant to be. The lint should probably cover every chart but some of the version handling doesn't scale to multiple charts.

Given the build currently runs (probably not applying some things on the new chart, but at least not having issues with the Corda chart, which is the important bit), would we comfortable with merging this as-is and me following up on these things with @ronanbrowne to see how much we can generalise the build to apply these things globally on all charts (potentially with some toggles on custom things that don't apply everywhere)? So that we can at least make some progress, while working on that in parallel.

Merged this for now and I followed up separately with Ronan to see what we need to do to enable anything already in the pipeline (linting, publishing etc.) for these new charts as well.


image_test/multi-nic: install ping in Ubuntu minimal images

This will fix some test failures in the test grid.

/ok-to-test


[ZEPPELIN-428] [DOCS] [followup] fix formatting for code blocks

Fix code block formatting http://zeppelin.incubator.apache.org/docs/0.5.5-incubating/manual/dynamicform.html
Apparently it is a known problem with markdown processor in Jekyll
https://github.com/jekyll/jekyll/issues/3724

Looks good to me

Looks good to me


cosigned: read the public key from the kms authority

Summary

This PR reads the public key from the configured KMS authority and adds it to the ClusterImagePolicy ConfigMap.
In a follow up PR, a resync period would be used to check the KMS service for changes.
Ticket Link

Fixes
Release Note

Codecov Report

Merging #1706 (a42a2b6) into main (80034ba) will decrease coverage by 0.10%.
The diff coverage is 52.38%.

@@            Coverage Diff             @@
##             main    #1706      +/-   ##
==========================================
- Coverage   29.20%   29.09%   -0.11%
==========================================
  Files         141      141
  Lines        8420     8472      +52
==========================================
+ Hits         2459     2465       +6
- Misses       5691     5733      +42
- Partials      270      274       +4

Impacted Files
Coverage Δ

...econciler/clusterimagepolicy/clusterimagepolicy.go
64.51% <52.38%> (-3.11%)
:arrow_down:

...cosign/cli/fulcio/fulcioverifier/fulcioverifier.go
22.09% <0.00%> (-1.08%)
:arrow_down:

pkg/cosign/tuf/client.go
62.34% <0.00%> (-0.95%)
:arrow_down:

cmd/cosign/cli/policy_init.go
1.40% <0.00%> (-0.03%)
:arrow_down:

cmd/cosign/cli/sign.go
0.00% <0.00%> (ø)

cmd/cosign/cli/attest.go
0.00% <0.00%> (ø)

cmd/cosign/cli/signblob.go
0.00% <0.00%> (ø)

cmd/cosign/cli/options/oidc.go
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 80034ba...a42a2b6. Read the comment docs.


message does not save at session when client is disconnect

1- A client connects to the server and subscribes to a topic
2- Then Client will be disconnected (while the session has not expired)
3- A data is published on that topic (inline client publish).
But the client does not receive data on that topic after reconnecting. (Session has not expired)
Is the data stored in a client session that is not connected, not delivered to the client on the next connection? (Of course, if the session has not expired)

i use this pkg at production, plz help

@mrhb6006 I'm too busy at the moment. I will take a look at this issue as soon as I have some free time.

What is the version of the library in your app?

@mrhb6006 What is the version of the library in your app?

@mrhb6006 , in order for the message to be saved, the following conditions need to be met:

Client session is not expired (met based on above)
Client subscribed to the topic with QOS > 0
Message published with QOS > 0

Can you check what QOS was used for subscription and publishing?

@mrhb6006 , in order for the message to be saved, the following conditions need to be met:

Client session is not expired (met based on above)
Client subscribed to the topic with QOS > 0
Message published with QOS > 0

Can you check what QOS was used for subscription and publishing?

@thedevop
all conditions are met
when publish with real client it is ok
but when i use inline client it is not

@mrhb6006 What is the version of the library in your app?

last version

some

tnx
I'm waiting for you

Can you elaborate your steps as an inline client would not experience disconnect.

@mrhb6006  Take a look at #354  to see if it resolves your issue.

@mrhb6006 @thedevop @mochi-co According to MQTT spec <IP_ADDRESS> Clean Session , if a client does not expire, we should retain the client's subscriptions. However, I tested Mosquitto, and it does not support this feature. Therefore, I think making this an optional capability is a good idea.

@werbenhu , we current do retain client's subscription
https://github.com/mochi-mqtt/server/blob/5058333f362f962114dc4b3881f1d5288c69d318/server.go#L495-L501
We then unsubscribe the old client:
https://github.com/mochi-mqtt/server/blob/5058333f362f962114dc4b3881f1d5288c69d318/server.go#L505
I have tested with Paho client, and it does retain the subscriptions. However, the messages are only stored if QOS > 0.

@thedevop The testing environment I'm in right now is indeed, as you said, without any issues. I will conduct further tests when I return to the previous environment in a few days.

@thedevop you are right. I tested it today, and I couldn't reproduce the issue. It might have been my mistake earlier.

@mrhb6006 , can you re-test if a client retains subscription when it disconnect/reconnect?
Can you also re-test the saved messages, make sure the following conditions are met:

Client session is not expired (met based on above)
Client subscribed to the topic with QOS > 0
Message published with QOS > 0

@mrhb6006 , can you re-test if a client retains subscription when it disconnect/reconnect?
Can you also re-test the saved messages, make sure the following conditions are met:

Client session is not expired (met based on above)
Client subscribed to the topic with QOS > 0
Message published with QOS > 0

yes all conditions are met.
i use inline client for publish and message not save at session

@thedevop The testing environment I'm in right now is indeed, as you said, without any issues. I will conduct further tests when I return to the previous environment in a few days.
test with inline client publish ?

@thedevop you are right. I tested it today, and I couldn't reproduce the issue. It might have been my mistake earlier.

test with inline client publish ?

@mrhb6006 I will test this scenario later.

@mrhb6006 I tested it, and it's OK. Client A subscribes to the 'mochi' topic with QoS 1, then disconnects. Client B connects, publishes a message to the 'trigger' topic, triggering an inline publish to send a message. When Client A reconnects, it can receive the content sent by Client B. You can refer to my 'main.go' below for details.
// SPDX-License-Identifier: MIT
// SPDX-FileCopyrightText: 2022 mochi-mqtt, mochi-co
// SPDX-FileContributor: mochi-co

package main

import (
	"bytes"
	"flag"
	"log"
	"os"
	"os/signal"
	"syscall"

	mqtt "github.com/mochi-mqtt/server/v2"
	"github.com/mochi-mqtt/server/v2/listeners"
	"github.com/mochi-mqtt/server/v2/packets"
)

// Options contains configuration settings for the hook.
type MyHookOptions struct {
	Server *mqtt.Server
}

// AllowHook is an authentication hook which allows connection access
// for all users and read and write access to all topics.
type MyHook struct {
	mqtt.HookBase
	config *MyHookOptions
}

func (h *MyHook) Init(config any) error {
	h.Log.Info("initialised")
	if _, ok := config.(*MyHookOptions); !ok && config != nil {
		return mqtt.ErrInvalidConfigType
	}

	h.config = config.(*MyHookOptions)
	if h.config.Server == nil {
		return mqtt.ErrInvalidConfigType
	}
	return nil
}

// ID returns the ID of the hook.
func (h *MyHook) ID() string {
	return "allow-all-auth"
}

// Provides indicates which hook methods this hook provides.
func (h *MyHook) Provides(b byte) bool {
	return bytes.Contains([]byte{
		mqtt.OnConnectAuthenticate,
		mqtt.OnACLCheck,
		mqtt.OnPublish,
	}, []byte{b})
}

// OnConnectAuthenticate returns true/allowed for all requests.
func (h *MyHook) OnConnectAuthenticate(cl *mqtt.Client, pk packets.Packet) bool {
	return true
}

// OnACLCheck returns true/allowed for all checks.
func (h *MyHook) OnACLCheck(cl *mqtt.Client, topic string, write bool) bool {
	return true
}

func (h *MyHook) OnPublish(cl *mqtt.Client, pk packets.Packet) (packets.Packet, error) {
	h.Log.Info("received from client", "client", cl.ID, "payload", string(pk.Payload))
	pkx := pk
	if string(pk.TopicName) == "trigger" {
		h.config.Server.Publish("mochi", pk.Payload, false, 1);
	}
	return pkx, nil
}

func main() {
	tcpAddr := flag.String("tcp", ":1883", "network address for TCP listener")
	flag.Parse()

	sigs := make(chan os.Signal, 1)
	done := make(chan bool, 1)
	signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
	go func() {
		<-sigs
		done <- true
	}()

	server := mqtt.New(&mqtt.Options{
		InlineClient: true,
	})
	_ = server.AddHook(new(MyHook), &MyHookOptions{
		Server: server,
	})

	tcp := listeners.NewTCP("t1", *tcpAddr, nil)
	err := server.AddListener(tcp)
	if err != nil {
		log.Fatal(err)
	}

	go func() {
		err := server.Serve()
		if err != nil {
			log.Fatal(err)
		}
	}()

	<-done
	server.Log.Warn("caught signal, stopping...")
	_ = server.Close()
	server.Log.Info("main.go finished")

}

@mrhb6006 I tested it, and it's OK. Client A subscribes to the 'mochi' topic with QoS 1, then disconnects. Client B connects, publishes a message to the 'trigger' topic, triggering an inline publish to send a message. When Client A reconnects, it can receive the content sent by Client B. You can refer to my 'main.go' below for details. The client I used is mqttx.
// SPDX-License-Identifier: MIT
// SPDX-FileCopyrightText: 2022 mochi-mqtt, mochi-co
// SPDX-FileContributor: mochi-co

package main

import (
	"bytes"
	"flag"
	"log"
	"os"
	"os/signal"
	"syscall"

	mqtt "github.com/mochi-mqtt/server/v2"
	"github.com/mochi-mqtt/server/v2/listeners"
	"github.com/mochi-mqtt/server/v2/packets"
)

// Options contains configuration settings for the hook.
type MyHookOptions struct {
	Server *mqtt.Server
}

// AllowHook is an authentication hook which allows connection access
// for all users and read and write access to all topics.
type MyHook struct {
	mqtt.HookBase
	config *MyHookOptions
}

func (h *MyHook) Init(config any) error {
	h.Log.Info("initialised")
	if _, ok := config.(*MyHookOptions); !ok && config != nil {
		return mqtt.ErrInvalidConfigType
	}

	h.config = config.(*MyHookOptions)
	if h.config.Server == nil {
		return mqtt.ErrInvalidConfigType
	}
	return nil
}

// ID returns the ID of the hook.
func (h *MyHook) ID() string {
	return "allow-all-auth"
}

// Provides indicates which hook methods this hook provides.
func (h *MyHook) Provides(b byte) bool {
	return bytes.Contains([]byte{
		mqtt.OnConnectAuthenticate,
		mqtt.OnACLCheck,
		mqtt.OnPublish,
	}, []byte{b})
}

// OnConnectAuthenticate returns true/allowed for all requests.
func (h *MyHook) OnConnectAuthenticate(cl *mqtt.Client, pk packets.Packet) bool {
	return true
}

// OnACLCheck returns true/allowed for all checks.
func (h *MyHook) OnACLCheck(cl *mqtt.Client, topic string, write bool) bool {
	return true
}

func (h *MyHook) OnPublish(cl *mqtt.Client, pk packets.Packet) (packets.Packet, error) {
	h.Log.Info("received from client", "client", cl.ID, "payload", string(pk.Payload))
	pkx := pk
	if string(pk.TopicName) == "trigger" {
		h.config.Server.Publish("mochi", pk.Payload, false, 1);
	}
	return pkx, nil
}

func main() {
	tcpAddr := flag.String("tcp", ":1883", "network address for TCP listener")
	flag.Parse()

	sigs := make(chan os.Signal, 1)
	done := make(chan bool, 1)
	signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
	go func() {
		<-sigs
		done <- true
	}()

	server := mqtt.New(&mqtt.Options{
		InlineClient: true,
	})
	_ = server.AddHook(new(MyHook), &MyHookOptions{
		Server: server,
	})

	tcp := listeners.NewTCP("t1", *tcpAddr, nil)
	err := server.AddListener(tcp)
	if err != nil {
		log.Fatal(err)
	}

	go func() {
		err := server.Serve()
		if err != nil {
			log.Fatal(err)
		}
	}()

	<-done
	server.Log.Warn("caught signal, stopping...")
	_ = server.Close()
	server.Log.Info("main.go finished")

}

i mean use server.Publish("trigger",body,2) for publish

@mrhb6006 I have also tested the situation of subscribing to the QoS2 topic, and it works fine. You can modify my main.go to conduct the test.

Can this be closed?

As the issue is non-reproducible and no feedback has been received for a long time, it is now closed. If further problems arise, please reopen it.


Events › Jena › University / Locations with multiple postal codes

The event feed from https://www.uni-jena.de/kommende-veranstaltunge/ is failing on locations being reported with inconsistent postal codes, e.g.
https://www.uni-jena.de/kommende-veranstaltungen/wie-geht-das-linden-museum-stuttgart-mit-dem-kolonialen-erbe-um
"location": [
	{
		"@type": "Place",
		"address": {
			"@type": "PostalAddress",
			"addressLocality": "Jena",
			"postalCode": "07745",
			"streetAddress": "Fürstengraben 1"
		}
	}
]

https://www.uni-jena.de/kommende-veranstaltungen/die-aechtung-und-einhegung-militaerischer-gewalt-im-voelkerrecht-teil-1-von-kriegsdarstellungen-und-tabus-im-geschichtsunterricht-teil-2-1
"location": [
	{
		"@type": "Place",
		"address": {
			"@type": "PostalAddress",
			"addressLocality": "Jena",
			"postalCode": "07743",
			"streetAddress": "Fürstengraben 1"
		}
	}
]

Current code assumes addresses with the same locality/streetAddress to refer to the same entity, which is expected to have a unique postal code.
Fixing on server side in a robust way is not straightforward, unless we include the postal code in the location identity, which would result in different entities being generated for the same location.

❗Restore location data in EventsJenaUniversity.java once resolved


Added missing remap lines for cachekey to mids.

The mids had logic to generate cacheurl parameters, but not cachekey
parameters. This was causing delivery services to effectively
invalidate at the mid when they were switched from cacheurl to
cachekey.
This adds in the logic for cachekey values at the mid in exactly the
same way it works for the edges.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/611/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR-trafficops-test/567/

This looks pretty straight forward to me, I think it can be merged. @mitchell852


Do not base64 encode binary data

This PR compacts the builtin targets a bit, basically for free, by skipping base64 encoding for non human-readable representations.

The code looks good to me, but I don't understand the full process well enough to comment on side effects. Can you help me with ...

What does this do for existing target definitions/flash algos?
Have you done roundtrip testing to add a new target, and then load/use it to flash?

This PR does not affect yamls at all, just our yaml -> binary translation in the build scripts.


IOException "The directory name is invalid."

The program is ran with administrator privileges.
The directory exists on the server. The file also exists.

I was able to resolve this error by rebooting the server. Have you attempted to do that?

This fixed the problem for me too. Anyway this is a bug :-)

Understood I just wanted to make sure that if you didn't try to reboot already that you could reboot and likely fix the problem.

I solved it without rebooting, I restarted the service "IISADMIN" (IIS Admin Service).

Thanks for that information. That will help us out until this problem is resolved.

#496 might help, please check out the new beta and report back if this helps in your case!


Update tests for ECB, IMF data source changes

Closes #112.

These tests now pass; requesting a quick review from @dr-leo.


era5 cmorizer: incorrect year values in the file name of monthly data

In the recipe_era5.yml, there is a comment as:

For the daily diagnostic, always add the next year,...

for example start_year: 1990, end_year: 1991.  This is not the case for the monthly diagnostics, user can choose start_year: 1990, end_year: 1990.
However, after running the cmorizer, the year values in the cmorized file name would be 1989-1989. This is due to an if statement in the diagnostics there:
 if 'fx' not in basename:
            end_year = basename[-4:]
            basename = basename.replace(end_year, f'{int(end_year) - 1}')

The most reliable solution would be to simply read the start and end year from the cube and use that in the filename.

Good find Sarah. I partly agree with Bouwe. On the other hand: this recipe doesn't even read the cubes, so that's quite a lot of extra code just to set the year. A quicker fix would be to change the if-statement to
if 'day' in basename:


Create dedicated namespaces per test case in reconcilers tests

Create dedicated namespaces per test case, then delete the whole NS at the end. This will help avoid the case where we fail to stop the kube-apiserver.
for example:
namedNS, err := testEnv.CreateNamespace(context.TODO(), mockReleaseNamespace)
			g.Expect(err).NotTo(HaveOccurred())
			t.Cleanup(func() {
				_ = testEnv.Delete(context.TODO(), namedNS)
			})

https://github.com/fluxcd/helm-controller/blob/5d28aa42505641652648e338afc9c1ec4e8dfb55/internal/reconcile/install_test.go#L183

We also need to delete all test objects before we delete the namespace.

I would like to take a look to this issue, can anyone assign it to me?

@stefanprodan
When I try to make test in my computer from main (with no other local changes added) I am getting several failures, whose "non-obvious" source I believe might be
--- FAIL: TestHelmChartReconciler_buildFromTarballArtifact (4.25s)
    --- FAIL: TestHelmChartReconciler_buildFromTarballArtifact/Resolves_chart_dependencies_and_builds (4.05s)
        helmchart_controller_test.go:1300:
            Expected
                <bool>: true
            to equal
                <bool>: false
        helmchart_controller_test.go:1172:
            Expected success, but got an error:
                <*fs.PathError | 0xc000dafd10>: {
                    Op: "remove",
                    Path: "",
                    Err: <syscall.Errno>0x2,
                }
                remove : no such file or directory

Here is the detail of the error producing that test failure
dependency build error: failed to add remote dependency 'podinfo': failed to get chart 'podinfo' version '>=6.1.*' from 'oci://ghcr.io/stefanprodan/charts': could not get tags for "podinfo": could not fetch tags for "oci://ghcr.io/stefanprodan/charts/podinfo": GET "https://ghcr.io/v2/stefanprodan/charts/podinfo/tags/list": unable to retrieve credentials

It does feel the tests are trying to download that podinfo chart dependency from ghcr.io and failing to authenticate, which later causes other test cases to fail with spec.url invalid errors, etc.

Is that "online" download expected?
Does this trigger anything in your head?

Cheers.

@snebel29 do you mind sharing more details about your development environment? Are you on Linux/Darwin?
Feel free to ask questions on the contributors channel.

Hi @pjbgf
I am developing using Goland on top of a Mac, here are the versions of the dependencies listed in DEVELOPMENT.md.
$ go version
go version go1.18.2 darwin/amd64

$ kustomize version
{Version:kustomize/v4.5.7 GitCommit:56d82a8378dfc8dc3b3b1085e5a6e67b82966bd7 BuildDate:2022-08-02T16:28:01Z GoOs:darwin GoArch:amd64}

$ pkg-config --version
0.29.2

$ docker --version
Docker version 20.10.15, build fd82621d35

It is worth to mention that under the hood, the docker runtime is implemented using colima project.
$ colima status
INFO[0000] colima is running
INFO[0000] arch: x86_64
INFO[0000] runtime: docker
INFO[0000] mountType:
INFO[0000] socket: unix:///Users/myuser/.colima/default/docker.sock

Basically I just did checkout the repository then ran make test expecting everything to pass, instead I got different test failures, I started looking to the first kind and found that suspicious error message, see.
I'll open a thread in the slack channel that you have shared, thanks in advance.

For the record the culprit of the error was found to be a ~/.docker/config.json without auth section, looking like
{
	"auths": {},
	"credsStore": "desktop",
	"currentContext": "colima"
}

Full details on slack.


MINOR: Add 3.8.x and 3.9.x to Streams compatibility matrix

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Call for review: @aliehsaeedii

Is this duplicate to #17906?

@chia7712 You got me again!
At least the compatibility part of it overlaps.


"Continuous Delivery with Containers on GCP" - Can't connect to Spinnaker on localhost:9000

Page: /guides/tutorials/codelabs/gcp-kubernetes-source-to-prod/
After launching the Spinnaker instance and running the command that supposedly allows you to connect to spinnaker (gcloud compute ssh --project=#### --zone=us-central1-f spinnaker-cd-codelab -- -L 9000:localhost:9000  -L 8084:localhost:8084), I'm unable to access Spinnaker at localhost:9000. Going to localhost:9000 it always presents a This site can't be reached - The connection was reset error.

@artemzakharov I've tried out this codelab, and I'm seeing the same thing. It seems to be a problem with the Spinnaker cloud-launcher instance authenticating to the K8s cluster. I tried with a quick-launch Spinnaker that is not K9s enabled, and I was able to connect to that one.
@ezimanyi

@dorbin I think I might have tried turning them off (they are checked by default), but I don't recall it making any difference.

I just tested this and it does work if you create your cluster with the following settings:

Issue client certificate: enabled
Enable legacy authorization: enabled

These settings need to be enabled because of limitations of how the cloud launcher image authenticates to your Kubernetes cluster.
I'll add some notes to https://github.com/spinnaker/spinnaker/issues/3518 around how we might improve the image to remove these limitations, but for now it will only work with the above settings.


Seed initial configuration in keycloak

I would like to load up an initial scim configuration into server on startup. How can I do that? With the rest of keycloak I seed the initial keycloak config with a realm json file so I'm wondering how to do equivalent for this.
 I will add it to the list of future features.
But at the moment I would like to get the SCIM client implementation ready

Just FYI. This will make it much easier for our QA people.

sorry for the late response. I will add this feature soon.

If it can be in same realm xml that would be great.


GPIO速率慢 (IDFGH-5127)

ESP32 配置io口为输出后 在任务中使io口翻转
测量了速率为4.3M，这个速率有点偏慢吧~

@xiaohuihuitop Thanks for reporting, would you please help share more details as described in the template https://github.com/espressif/esp-idf/issues/new?assignees=&labels=Type%3A+Feature+Request&template=feature_request.md&title=? Thanks.

@xiaohuihuitop Thanks for reporting, would you please help share more details as described in the template? Information like elf, sdk configuration, backtrace, log outputs, commit ID, hardware and etc. would help us debug further. Thanks.


Run Time series forecasting Tutorials , the warning raised. W tensorflow/core/grappler/optimizers/implementation_selector.cc:310] Skipping optimization due to error while loading function libraries

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
I try to run Time series forecasting Tutorials . the code was exactly same as the github shows.
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Win10
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
NONE
TensorFlow installed from (source or binary):
source
TensorFlow version (use command below):
Tensorflow 2.0 stable version
Python version:
py 3.7
Bazel version (if compiling from source):
NONE
GCC/Compiler version (if compiling from source):
NONE
CUDA/cuDNN version:
NONE
GPU model and memory:
NONE
You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"

Describe the current behavior
when I try to run the Time series forecasting Tutorials , the warning raised .
I don
2019-11-09 11:05:44.540408: W tensorflow/core/grappler/optimizers/implementation_selector.cc:310] Skipping optimization due to error while loading function libraries: Invalid argument: Functions '__inference___backward_standard_lstm_2511_2996' and '__inference___backward_standard_lstm_2511_2996_specialized_for_StatefulPartitionedCall_at___inference_distributed_function_3085' both implement 'lstm_b5a954a4-22ab-43b7-aa70-42d55d0dde61' but their signatures do not match.
Describe the expected behavior
how to solve this warning ?
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
the same as Tutorial. https://tensorflow.google.cn/tutorials/structured_data/time_series
Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

@chris881, I tried the tutorial on colab. It executed as expected.
Please take a look at the colab gist.Thanks!

thanks a lot . i will double check the code.


Fixed JDK versions and the OpenJDK distro suited to support that

Having whatever is the latest JDK version (e.g., 11) as well as a specific version (e.g., 11.0.3), let's you ensure that when the latest version is red while the fixed version is green, that the problem is connected to the latest version specifically. Adopt is no more, Temurin is new and has few historical JDK minor versions, while Zulu has all of them, hence moving to Zulu as well.

Thanks @geertjanw for your PR!


Activity logs for service principals

One little gotcha or at least something to keep in mind... if you need to monitor the activity of a service principal, you'll need to use the caller guid instead of the friendly SPN name.

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

ID: 0ada336b-a759-5a30-919c-9473ce0840e3
Version Independent ID: 5551959e-b7dc-2f45-4bb3-1212bae8e921
Content: Overview of the Azure Activity Log
Content Source: articles/monitoring-and-diagnostics/monitoring-overview-activity-logs.md
Service: monitoring-and-diagnostics
GitHub Login: @johnkemnetz
Microsoft Alias: johnkem

@slandsaw Thanks for bringing this to our attention. Your comment has been shared with the content owner for further review.

@johnkemnetz
Hi John: I've been tasked with looking at issues older than 90 days. Is this one ready to be closed now?
Thanks,
Paul Goldman
Sr. Technical Writer

It looks like this article no longer exists, so I am closing this. Thanks!

GOOD

جيد

ممتاز

GOOED


image-surface-get-data/get-bytes-per-pixel fix

Previously, get-bytes-per-pixel was returning three for RGB24 formats.
However, the Cairo documentation states that RGB24 formats have 32 bits
per pixel. This means that image-surface-get-data was not returning all
of the data for RGB24 formats. Fixed so that now get-bytes-per-pixel
returns four for RGB24 formats.

Merge conflict due to whitespace, but it's a simple fix so I'll change it by hand.  Thanks,


D3:Implementation of Myers longest common subsequence algorithm

Thanks for the review, i have applied changes based on the comments, apart from the one about len.


Chef14 fixes

Description
Many fixes to make it work with Chef 14.
Issues Resolved
Fixes #989 #986 #983
Check List

[X] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[x] New functionality includes testing.
[x] New functionality has been documented in the README if applicable
[x] All commits have been signed for the Developer Certificate of Origin. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

This is great. Thanks for working through the remaining issues


UnicodeDecodeError when rendering template

Expected Behavior
Returns template
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa9 in position 17727: invalid start byte

Actual Behavior
Tell us what happens instead.
builtins.UnicodeDecodeError
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa9 in position 17727: invalid start byte

Environment

Python version: 3.6
Flask version: 1.0.2
Werkzeug version: 0.14.1

Please use Stack Overflow for questions about your own code. This tracker is for issues related to the project itself. Be sure to include a minimal, complete, and verifiable example.


What is the purpose of the Events object in the example cloudformation file?

Hi,
Can someone explain what is the purpose of having the Events object in  the cloudformation file? The reason why I ask is that I was able to comment it out, rebuild the stack and still be able to create a user (POST /users).
Thanks.

Good catch. That template explicitly sets up the permission and role. However, the Event object does that for you. If you uncomment the Event object again, and comment on the permission and role resource, you should see that it still works AND the template is simpler. Let me know if that works. I'll verify on my end also and remove those resources if confirmed.

I tried removing the permissions and it failed.

I am wondering if the Events object is redundant whenever using the swagger file docs.

That template explicitly sets up the permission and role. - @brettstack

Do you mean the workaround for https://github.com/awslabs/serverless-application-model/issues/59? We should be able to remove LambdaApiGatewayExecutionPermission after the fix, right? And then the Events object becomes useful again?

Ahh, that's right. Once we merge that PR we should be able to remove those resources

If someone wants to send a CR removing the permission and role, I'll merge it when it's ready. :)

@brettstack I've created a PR #185 for this. Please check whenever you have time.
Thanks


Are Hybrid Observations (image + vector observation) Available?

I found that minecraft's configuration has both vector and image observation states, is its function modal mixing?

Yes, if you specify vecobs_size in the config. See for example minececraft config https://github.com/jurgisp/pydreamer/blob/8a4ea85a925b57ddf24a221b41dfb3257f89d63a/config/defaults.yaml#L244

But minecraft seems to be removed, so I'm not sure about that. Thank you for your answer.