How do we generate Matterport 3D data?

Habitat-Lab: v0.2.4
Habitat-Sim: v0.2.4
Currently, we are going to use Matterport 3D equipment to shoot a new environment and use the filmed location as input.
In the cloud operated by the Matterport company,
we can receive .mlt and .obj files, and I understand that we need to convert them into .glb files for use with Habitat.
However, there is an issue that cannot be used immediately because the composition of Matterport3D (MP3D) data is not just .glb.
The MP3D data is configured as follows.

filename.glb
filename.house
filename.navmesh
filename_semantic.ply
mp3d.scene_dataset_config.json

Therefore, we can't make it except for the .glb file, so I wonder how we can create it.

Hey @etri-jeon0123,
What you are describing here is creating a SceneDataset: the ecosystem of assets and configuration and metadata files necessary to utilize the full set of Habitat features.
Of course you can do basic embodied tasks such as point nav with only the glb file. The other files have purposes and origins as follows:

.house - a Semantic Scene Descriptor (SSD) file. This contains a mapping from instance ids to semantic classes (e.g. instance 13 may be a table) as well as optionally defining object and region bounding boxes.

.navmesh - the navigation constraints for the scene. This is computed automatically if not provided, or can be saved and loaded. See the nav API for more details.

semantic.ply - in MP3D dataset these are additional assets (mesh + color material) containing per-vertex semantic annotations. As of HM3D you can also provide these annotations in texture format instead.

For example, all vertices beloning to a table may have a color mapping to integer 13 as defined in the .house file.
You will need to manually annotate these for your new scene assets. One option is to paint the textures in a modeling software such as Blender. Paint each instance with a unique color and map those colors to integer ids in a semantic.txt file. See HM3D for examples.

.scene_dataset_config.json - this registry file simply identifies the assets and configs available in a full scene dataset. Use MP3D or HM3D as an example for how to setup the directory structure and aggregate the results.

Everything but the semantic annotation and mapping is pretty easy to put together following existing examples. For that part, if necessary, I suggest you look into the assets and semantic txt files from HM3D as that process is likely easier and results in better annotation accuracy than the per-vertex colors embedded in the MP3D dataset.

Thank you for your valuable reply.
But the question here is, how can we create the files described above.
In other words, how can we create .house/.navmesh/.semantic.ply on our own?
In the case of file config.json, I think we can make it by referring to other files, but I don't know the exact method of other files.
Therefore, can you explain how to create .house, .navmesh and .semantic.ply files for the generated .glb files?

@etri-jeon0123, happy to provide some more details here.
The .navmesh file will be created automatically by the simulator and if you want to customize it see the API I linked above.
The most challenging part here is the annotation of the semantic asset (.house and .semantic.ply).
First, I suggest you follow the format of HM3D Semantics rather than MP3D and instead generate a .semantic.glb and a .semantic.txt file. Please review our arxiv report (https://arxiv.org/abs/2210.05633) for many details regarding this process and the file contents.
TL;DR:
The .semantic.txt file is hand-authored and each line contains metadata corresponding to a single object instance (e.g. a lamp) linking the semantic texture color to an integer id and semantic label. This is read by the engine to understand the colors embedded in the texture files from .semantic.glb. The glb file is the same glb as your original asset, but instead of RGB textures from the scan, you re-color those textures with unique per-instance colors mapped in the text file.

For example scene GLAQ4DNUx5U, the first line is 1,C9C373,"door",0. This tells us that instance 1 with hex color C9C373 is a door in region 0.

For the existing dataset, this was done by resetting the texture images to black and then painting new colors from a chosen palette on to the 3D geometry. This is an artistic process and can be labor intensive if the contents of the scene are complex and detailed.

In the example, an artist painted the color C9C373 onto a door in the scene geometry and then logged it in the text file.

@etri-jeon0123, happy to provide some more details here.
The .navmesh file will be created automatically by the simulator and if you want to customize it see the API I linked above.
The most challenging part here is the annotation of the semantic asset (.house and .semantic.ply).
First, I suggest you follow the format of HM3D Semantics rather than MP3D and instead generate a .semantic.glb and a .semantic.txt file. Please review our arxiv report (https://arxiv.org/abs/2210.05633) for many details regarding this process and the file contents.
TL;DR:
The .semantic.txt file is hand-authored and each line contains metadata corresponding to a single object instance (e.g. a lamp) linking the semantic texture color to an integer id and semantic label. This is read by the engine to understand the colors embedded in the texture files from .semantic.glb. The glb file is the same glb as your original asset, but instead of RGB textures from the scan, you re-color those textures with unique per-instance colors mapped in the text file.

For example scene GLAQ4DNUx5U, the first line is 1,C9C373,"door",0. This tells us that instance 1 with hex color C9C373 is a door in region 0.

For the existing dataset, this was done by resetting the texture images to black and then painting new colors from a chosen palette on to the 3D geometry. This is an artistic process and can be labor intensive if the contents of the scene are complex and detailed.

In the example, an artist painted the color C9C373 onto a door in the scene geometry and then logged it in the text file.

That's a very precious answer.
Immediately, we changed the data to review the paper with respect to HM3D and even complete the test.
However, we still have questions about organizing our own data.
For our environment, we confirmed that we have to make semantic.glb & semantic.txt.
[Question 1]
And, to make semantic.glb, the existing basis.glb should be used in the semantic segmentation method, but your paper said it was done manually.
On average, each scene consists of 661 objects from 106 categories. This dataset is the result of over 14,200 hours of human effort for annotation and verification by 20+ annotators.
If we want to make semantic.glb, is it right to convert it using a model like ScanNet as shown in Table 1?

[Question 2]
Then, as a second question, where can I find the color, object, and region (1,C9C373,"door",0) information in semantic.txt? Even if we try to make a label manually, there are no previously defined color, object, region information, can you share it?
With your help, we are working on a lot of handrails, but there are still some hurdles left, so I'm asking for your help.

And, to make semantic.glb, the existing basis.glb should be used in the semantic segmentation method, but your paper said it was done manually.

Yes, these annotations were done manually. We are not aware of an existing automated approach to semantic annotations with high accuracy. We suggest painting the semantic annotations on the assets in a modeling software such as Blender.

where can I find the color, object, and region

Again, these are chosen by the annotator during the painting process.
For each object instance, the annotator will choose an unused color, paint the corresponding geometry, and then record the color and the semantic class in the txt file.
For example, this file maps the annotated classes in HM3D to a category and canonical  mpcat40 lexicon from this paper.
In summary:

The semantic annotation process is manual. After scanning a space, you will need to paint the textures and then map them to a set of categories.
You can choose any categories you want. You are welcome to use the ones we've already defined in the linked mappings file or your own.
You can choose any colors you want. Each color must be used only once for each scene.
Region information is also manually defined. Typically a region is a single room, but Habitat does not use this annotation for any simulation logic by default, so you can use this field however you like.

And, to make semantic.glb, the existing basis.glb should be used in the semantic segmentation method, but your paper said it was done manually.

Yes, these annotations were done manually. We are not aware of an existing automated approach to semantic annotations with high accuracy. We suggest painting the semantic annotations on the assets in a modeling software such as Blender.

where can I find the color, object, and region

Again, these are chosen by the annotator during the painting process. For each object instance, the annotator will choose an unused color, paint the corresponding geometry, and then record the color and the semantic class in the txt file. For example, this file maps the annotated classes in HM3D to a category and canonical mpcat40 lexicon from this paper.
In summary:

The semantic annotation process is manual. After scanning a space, you will need to paint the textures and then map them to a set of categories.
You can choose any categories you want. You are welcome to use the ones we've already defined in the linked mappings file or your own.
You can choose any colors you want. Each color must be used only once for each scene.
Region information is also manually defined. Typically a region is a single room, but Habitat does not use this annotation for any simulation logic by default, so you can use this field however you like.

When working on modeling software such as Blender, did you import and work on 3D modeling file formats such as .GLB? Or did you convert the .GLB file into a 2D image to work?
We are glad to know briefly about the composition of the data and what to do with your help. However, in order to work on semantic segmentation of 3D space in detail, we need more detailed information, so we ask for your help.
Perhaps, we think that many things will be solved when we learn how to perform semantic segmentation tasks on modeling software such as Blender.
Thank you for your help in advance.

did you import and work on 3D modeling file formats such as .GLB? Or did you convert the .GLB file into a 2D image to work?

We import the GLB file into Blender, replace the existing texture images with empty (black) images, and then fill new content on the 2D images by directly painting on the 3D geometry.

For example, see this video: https://youtu.be/WjS_zNQNVlw?t=177

You can pick a color for each object instance or feature you want to segment and then paint it into the geometry.

Hi @aclegg3,
I'm trying to make my custom scene. I have .obj and I converted it into .glb. But when I try to make .navmesh via build/utils/datatool/Datatool create_navmesh <scene>.glb <scene>.navmesh. I'm getting an error: ESP_CHECK failed: esp::logging::LoggingContext: No current logging context.
What is the proper way of doing it?

Hey @Rendok
You don't need the Datatool to create the NavMesh. You can set the desired NavMeshSettings and provide them to SimulatorConfiguration.navmesh_settings upon initialization to recompute the navmesh at runtime. You can also take a look at our ECCV 2020 tutorial scripts to get some example code for using the NavMesh as well as recomputing and saving/loading it.


Nightly downtime

Ideally, it would be nice to have access to Oracle without nightly downtime.  Is the machine rebooted or otherwise inaccessible during nightly downtime?
If we have to have a nightly interruption, Bibdata should be able to respond with a 503 Service Unavailable response instead of a 500 Internal Server Error.

We don't have nightly downtime anymore!


Initial delete NC changes

Reason for Change:

To enable AZR support, we need to pass two extra params azID (uint) and enableAZR (boolean) as part of body to NMAgent. Since we are not passing body to NMAgent as of now, this PR adds a body to the request just like we have for publish NC.
Whenever NC has enableAZR = true in NC config, we will pass body like: {"azID":<value>,"enableAZR":true}
For already existing NC (or if NC has enableAZR = false in NC config), we will pass body like: {"azID": 0,"enableAZR":false}
Issue Fixed:

https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/16187805
Requirements:

[x] uses conventional commit messages

[x] includes documentation
[ ] adds unit tests

Notes: e2e flow has been tested by creating and deleting NCs with both enableAZR set to true and false

eed to pass two extra params azID (uint) and enableAZR (boolean) as part of body to NMAgent. Since we are not passing body to NMAgent as of now, this PR adds a body to the request just like we have for publish NC.
Whenever NC has enableAZR = true in NC config, we will pass body like: {"azID":<value>,"enableAZR":true} For already existing NC (or if NC has enableAZR = false in NC config), we will pass body like: {"azID": 0,"enableAZR":false}
Issue Fixed:
https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/16187805

I'll probably open a new PR once the pipeline issue is resolved. Will take a look at this today.


Implement OCC for saving events

Depends on https://github.com/itchysats/itchysats/issues/956.

Not much info in this ticket.


How to change topbar to become bottombar on Calendar?

How to change topbar to become bottombar on Calendar?
If you can, please help me, if not , I think that this library should add this option: topbar or bottombar.
Thank you.

Not sure you can do that, you can definitely implement a custom one and hide the current tor bar if you want that.


Add tlf keyboard mappings

tlf keyboard mappings are sensible and already known to linux contesters (?). Implement the following:

[x] Page Up/Dwn for CW speed
[ ] left/right arrow to change band
[x] plus key to toggle S&P/run mode
[ ] minus deletes last qso

Don't delete last QSO, simply mark it with an 'X'?


shiny app data sources reactive graph refactor

the app uses a number of different approaches for fetching, and the updating is inconsistent/unclear, a refactor is needed to keep this reactive graph consistent and clear.

the strategy should be to make the big data fetches the least amount of times possible, we can do big data fetches in global.R or at the top of server.R, then any subsequent filter on this data can be made via reactives within the server.R, here is an example of I refactored the sample_status:
Make a function that runs the big data fetch
DB_get_sample_status <- function() {
  DBI::dbGetQuery(
    con,
    "SELECT t1.sample_id, sc.status_code_name as status, t1.updated_at, t1.comment as plate_comment FROM sample_status AS t1
      INNER JOIN (
        SELECT sample_id, MAX(id) AS max_id
        FROM sample_status
      GROUP BY sample_Id
    ) AS t2 ON t1.id = t2.max_id join public.status_code sc on sc.id = t1.status_code_id;"
  )
}

Make the fetch happen when a button is pressed (additional logic here is so that the fetch happens once when the app starts and therefore there is data in the tab when user first visits):
latest_sample_status <- eventReactive(list(input$sample_status_refresh, initial_load()), {
    logger::log_info("Fetching latest results using sample status query")
    DB_get_sample_status()
  })

then subsequent smaller filters operate on this reactive and not the full database fetch:
selected_all_sample_status <- reactive({

    re <- ifelse(input$sample_status_season == 2023, "\\b\\w{3}23", "\\b\\w{3}24")
    data <- latest_sample_status() |> filter(str_detect(sample_id, re))

    if(input$sample_status_filter != "All") {
      data <- data |>
        dplyr::filter(status == input$sample_status_filter)
    }
    if(input$location_filter != "All") {
      data <- data |>
        dplyr::filter(stringr::str_detect(sample_id, input$location_filter))
    }

    data

  })


Error with dropbox ln backup

Running v1.2. I ssh in via terminal and exit to the console. I enter nano mnt/hdd/raspiblitz.conf. When I open raspiblitz.conf in nano the file is empty. I pasted the dropboxbackup target with my api key and save it but then I get the error [ Error writing mnt/hdd/raspiblitz.conf: No such file or directory ]

I pasted the dropboxbackup target with my api key and save it

what does this mean?
what is the output of running this:
sudo cat /mnt/hdd/raspiblitz.conf

Pasted below. I've obscured my ip address, dyn domain and token.
RASPIBLITZ CONFIG FILE
raspiBlitzVersion='1.0'
network=bitcoin
chain=main
hostname=Jmoney
publicIP='my_ip_address'
autoPilot=on
autoNatDiscovery=off
runBehindTor=off
rtlWebinterface=on
dynDomain='my_dyn_domain'
autoUnlock=on
dynUpdateUrl='http://freedns.afraid.org/dynamic/update.php?my_dyn_token'
lndPort='9735'
lndAddress=''

I see the issue now. In the readme it says "For the v1.2 Release this Off-Site Backup options you need to manually editing the raspiblitz config: nano mnt/hdd/raspiblitz.conf"
You're missing a leading / after the nano. Proper command should be nano /mnt/hdd/raspiblitz.conf

You're missing a leading / after the nano.

That's what I thought and why I had you print it out :)


Add ADOPTERS file

Signed-off-by: David Espejo<EMAIL_ADDRESS>
Summary

This file will collect the public list of organizations that are using Paketo Buildpacks in production
Use Cases

Checklist

[ ] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[ ] I have added an integration test, if necessary.
[ ] I have reviewed the styleguide for guidance on my code quality.
[ ] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

If we're already aware of adopters, should we add them here? Or request that they add themselves?

@paketo-buildpacks/steering-committee I would like a little feedback from y'all on this.

I think we should wait till we have at least one company that has given permission before we merge this. IMHO, it looks incomplete to have this file with no companies listed. We don't want to give the impression no one is using Paketo.
Side note: @davidmirror-ops - Do we need permission if a company has publicly indicated their usage of Paketo buildpacks somewhere, like in their docs?

Hey @dmikusa-pivotal yes, even in that case we need to reach out and ask for permission. We can condense a short list of those projects you know are Paketo adopters so I can reach out to them

@davidmirror-ops bump

Just added further instructions on how companies/orgs could add themselves to the list

I am happy enough with this. Can I get 1 more @paketo-buildpacks/content-maintainers to approve this?


Trying to record audio: Request failed 429

MacOS and iOS

Also:
I record audio from Mac, going to iOS and got error in the audio (wav)
Could listen it in Mac, not in iOS
If I record audio from iOS, I can't hear anything in iOS
But hear it in Mac

Got it.  For request failed of 429, that happens on OpenAI's end.  That error code occurs when there have been too many requests within a short period of time, especially when you're using the free version of OpenAI.  That usually lasts around a minute and then you can try again.  I'm going to see what I can do to help this out though.

Hmm, yes that is strange.  When you login to openai and check: https://platform.openai.com/usage
Do you see anything unusual?  Possibly hit your rate limit?  You should just need your openapi key, though it could also be the model you are attempting to use.  I would first check with openAI there to see if there's something up.

I am seeing similar behavior. Also using paid openai account with plenty of credit available.

Just a quick update. This seems like it was related to the file size. The audio file was a 563 MB wave file. Recreated a 78.2 MB MP3 file and it worked fine.

Interesting. Thanks for the update.  It should be able to take any file size through chunking.  What I can think of is that having enough chunks where the response is received and a new request is made immediately, you might start getting the error.  I'll see if adjusting that will change things.

Hmm, yes that is strange. When you login to openai and check: https://platform.openai.com/usage
Do you see anything unusual? Possibly hit your rate limit? You should just need your openapi key, though it could also be the model you are attempting to use. I would first check with openAI there to see if there's something up.

0 usage


python311Packages.pysigma: 0.10.6 -> 0.10.9

Diff: https://github.com/SigmaHQ/pySigma/compare/refs/tags/v0.10.6...v0.10.9
Changelog: https://github.com/SigmaHQ/pySigma/releases/tag/v0.10.9
Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 269745 run on x86_64-linux 1

2 packages failed to build:

sigma-cli
sigma-cli.dist

36 packages built:

python310Packages.pysigma
python310Packages.pysigma-backend-elasticsearch
python310Packages.pysigma-backend-elasticsearch.dist
python310Packages.pysigma-backend-insightidr
python310Packages.pysigma-backend-insightidr.dist
python310Packages.pysigma-backend-opensearch
python310Packages.pysigma-backend-opensearch.dist
python310Packages.pysigma-backend-qradar
python310Packages.pysigma-backend-qradar.dist
python310Packages.pysigma-backend-splunk
python310Packages.pysigma-backend-splunk.dist
python310Packages.pysigma-pipeline-crowdstrike
python310Packages.pysigma-pipeline-crowdstrike.dist
python310Packages.pysigma-pipeline-sysmon
python310Packages.pysigma-pipeline-sysmon.dist
python310Packages.pysigma-pipeline-windows
python310Packages.pysigma-pipeline-windows.dist
python310Packages.pysigma.dist
python311Packages.pysigma
python311Packages.pysigma-backend-elasticsearch
python311Packages.pysigma-backend-elasticsearch.dist
python311Packages.pysigma-backend-insightidr
python311Packages.pysigma-backend-insightidr.dist
python311Packages.pysigma-backend-opensearch
python311Packages.pysigma-backend-opensearch.dist
python311Packages.pysigma-backend-qradar
python311Packages.pysigma-backend-qradar.dist
python311Packages.pysigma-backend-splunk
python311Packages.pysigma-backend-splunk.dist
python311Packages.pysigma-pipeline-crowdstrike
python311Packages.pysigma-pipeline-crowdstrike.dist
python311Packages.pysigma-pipeline-sysmon
python311Packages.pysigma-pipeline-sysmon.dist
python311Packages.pysigma-pipeline-windows
python311Packages.pysigma-pipeline-windows.dist
python311Packages.pysigma.dist


NonLocalSortedSpikesDetector issue

I'm getting very different results with NonLocalSortedSpikesDetector vs. what I used to get with the older package.
classifier_ca1 = non_local_detector.NonLocalSortedSpikesDetector()

classifier_ca1.fit(
    position_time=t_position,
    position=position,
    spike_times=spike_times,)

results_ca1 = classifier_ca1.predict(
    position_time=t_position,
    position=position,
    spike_times=spike_times,
    time=time,
)
non_local_detector.visualization.figurl_2D.create_interactive_2D_decoding_figurl(position_time=time,
                                                                                position=position_interp,
                                                                                env=classifier_ca1.environments[0],
                                                                                results=results,
                                                                                spike_times=spike_times,
                                                                                head_dir=head_direction_interp
                                                                                )

from non_local_detector
https://figurl.org/f?v=npm://@fi-sci/figurl-sortingview@12/dist&d=sha1://4283c2e1714a1a8f6a4fd23fc2584b1db5566d9a&label=2D Decoding&zone=franklab.default
from replay_trajectory_classification
https://figurl.org/f?v=npm://@fi-sci/figurl-sortingview@12/dist&d=sha1://427b590e8c751a475f4043a194c5b56beb802b6a&label=test&zone=franklab.default
It could be an issue with the visualization. Is there any other way I can compare the two results other than with figurl?

They are two different models. It is probably a matter of how the posterior is being displayed in the figurl.

I see, I tried to do results_ca1.sum("state").acausal_posterior, which works for the old package but not for the new one (it seems the structure of results is slightly different). As a result I couldn't pass posterior parameter  to non_local_detector.visualization.figurl_2D.create_interactive_2D_decoding_figurl. Anyway just wanted to report that using the function in this way gives different results.


Fixed retention policies in Custom Image Build

Fixed the retention policies in the Custom Image Build JSON file.

thank you @moisesjgomez!

@jamasten thanks for your contribution.


Method not found: Array.put while running Android app

While running Android app (via Eclipse+emulator), I have the following FATAL EXCEPTION:
E/AndroidRuntime(1279): java.lang.NoSuchMethodError: com.badlogic.gdx.utils.ArrayMap.put
Any ideias why?
Thanks
Cheers

This is a bug tracker, not a help desk. Either use the forum or ask on the irc channel. Without code we can't help you


There is a clash between using WP_DEBUG_DISPLAY and enable_error_logging

So, while doing development, in 99% of the cases I set these constants (copied from your .wpsites.php config file that I created while testing the tool):
        "constants" => [
            "WP_ENVIRONMENT_TYPE" => "local",
            "WP_DEVELOPMENT_MODE" => "plugin",
            "WP_DISABLE_FATAL_ERROR_HANDLER" => true,
            "WP_DEBUG" => true,
            "WP_DEBUG_DISPLAY" => true,
            "WP_DEBUG_LOG" => true,
            "SCRIPT_DEBUG" => true,
            "SAVEQUERIES" => true,
            "WP_LANG" => "",
        ],

Unfortunately, the WP_DEBUG_DISPLAY is never set to true because enable_error_logging which is true by default explicitly sets it to false. I think you run enable_error_logging after the defaults.constant are set and effectively overriding the value.
Setting it to "enable_error_logging" => null, behaves the same way as true.
So I it looks like I can't override its behavior, for example, disabling it to do anything with constants.

It looks like there was a bug impacting any custom constants where the value was a boolean. I just fixed it in 1.10.1. Can you give it a try when you get a chance?


[Improve][ISSUE-3472] Improve streampark-console module Controller

What changes were proposed in this pull request
Issue Number: close #3472
For controllers that use only a single field, but whose argument is an object, use a single field instead of an object.

Brief change log

AlertController.java.
ApplicationController.java.

Verifying this change

This change is a trivial rework / code cleanup without any test coverage.

Does this pull request potentially affect one of the following parts

Dependencies (does it add or upgrade a dependency): (no)

still working...

@wolfboys pls take a look.

still working...
thank you for your contribution
If it is still working in the future, you can add the [WIP] prefix to the PR title, or set the PR to draft.

@RocMarshal If you have time, can you help review this PR? Thank you.

Hi, @zzzk1 Thanks for your contribution and for @caicancai review.
To be honest, I'm more inclined towards the scope of responsibilities in this proposal-1, so I would prefer to discard changes that are not within the scope of the proposal in the current PR.
Of course, we'd be glad to consider accepting changes beyond the scope, but we need to make this decision through some necessary discussions.
So, in short, if you want to quickly merge this PR, you can remove changes that are not within the proposal scope; If you wish to merge all the contents of this PR, we look forward to you initiating this discussion to determine whether new rules can be introduced. Please relax, this does not mean that additional changes are incorrect, it just requires a community oriented discussion process.
Please let me know what's your opinion~

Hi @RocMarshal , I think the following coding rules can be introduced

If the argument passed by the front end is single, the Controller uses that single argument to receive without using object wrappers

If the Controller passes an object to the Service, and only a single field in the object is used in the Service, the object is replaced with a single parameter

/* before */
/* controller */
public RestResponse delete(Member member) {
    this.memberService.remove(member);
    return RestResponse.success();
}
/* service */
public void remove(Member memberArg) {
    Member member =
        Optional.ofNullable(this.getById(memberArg.getId()))
            .orElseThrow(
                () ->
                    new ApiAlertException(
                        String.format("The member [id=%s] not found", memberArg.getId())));
    this.removeById(member);
    userService.clearLastTeam(member.getUserId(), member.getTeamId());
  }

/* after */
/* controller */
public RestResponse delete(Long id) {
    this.memberService.remove(id);
    return RestResponse.success();
}

/* service */
public void remove(Long id) {
	Member member =
    	Optional.ofNullable(this.getById(id))
        	.orElseThrow(
            	() -> new ApiAlertException(String.format("The member [id=%s] not found", id)));
	this.removeById(member);
	userService.clearLastTeam(member.getUserId(), member.getTeamId());
}

Use distinct and well-defined parameter names in Service to avoid ambiguity
/* Bad case */
List<ApplicationConfig> list(Long id);

/* good case */
List<ApplicationConfig> list(Long appId);

Hi, @zzzk1 Thanks for your contribution and for @caicancai review.
To be honest, I'm more inclined towards the scope of responsibilities in this proposal-1, so I would prefer to discard changes that are not within the scope of the proposal in the current PR.
Of course, we'd be glad to consider accepting changes beyond the scope, but we need to make this decision through some necessary discussions.
So, in short, if you want to quickly merge this PR, you can remove changes that are not within the proposal scope; If you wish to merge all the contents of this PR, we look forward to you initiating this discussion to determine whether new rules can be introduced. Please relax, this does not mean that additional changes are incorrect, it just requires a community oriented discussion process.
Please let me know what's your opinion~

Hi @RocMarshal , I think the following coding rules can be introduced
* If the argument passed by the front end is single, the **Controller** uses that single argument to receive without using object wrappers

* If the **Controller** passes an object to the **Service**, and only a single field in the object is used in the Service, the object is replaced with a single parameter
  ```java
  /* before */
  /* controller */
  public RestResponse delete(Member member) {
      this.memberService.remove(member);
      return RestResponse.success();
  }
  /* service */
  public void remove(Member memberArg) {
      Member member =
          Optional.ofNullable(this.getById(memberArg.getId()))
              .orElseThrow(
                  () ->
                      new ApiAlertException(
                          String.format("The member [id=%s] not found", memberArg.getId())));
      this.removeById(member);
      userService.clearLastTeam(member.getUserId(), member.getTeamId());
    }

  /* after */
  /* controller */
  public RestResponse delete(Long id) {
      this.memberService.remove(id);
      return RestResponse.success();
  }

  /* service */
  public void remove(Long id) {
  	Member member =
      	Optional.ofNullable(this.getById(id))
          	.orElseThrow(
              	() -> new ApiAlertException(String.format("The member [id=%s] not found", id)));
  	this.removeById(member);
  	userService.clearLastTeam(member.getUserId(), member.getTeamId());
  }
  ```

* Use distinct and well-defined parameter names in **Service** to avoid ambiguity
  ```java
  /* Bad case */
  List<ApplicationConfig> list(Long id);

  /* good case */
  List<ApplicationConfig> list(Long appId);
  ```

Here I think we can’t just look at the current interface design of sp. We must consider the scalability of the sp controller interface. You have to ensure that other parameters in the entire object will not be used in the future. I have to say that sp still has a lot of potential here. There is room for improvement. I cannot guarantee that the parameters in the object will not be used in the future.

hi @zzzk1
Thanks very much for your hard work and contribution, In the controller layer, we cannot change the previous form of using beans to receive parameters to the current form. e.g:
 @Operation(summary = "Force stop application")
  @PermissionAction(id = "#app.id", type = PermissionType.APP)
  @PostMapping("forcedStop")
  @RequiresPermissions("app:cancel")
  public RestResponse forcedStop(Application app) {
    applicationService.forcedStop(app);
    return RestResponse.success();
  }

  @Operation(summary = "Delete member")
  @PermissionAction(id = "#member.teamId", type = PermissionType.TEAM)
  @DeleteMapping("delete")
  @RequiresPermissions("member:delete")
  public RestResponse delete(Member member) {
    this.memberService.deleteMember(member);
    return RestResponse.success();
  }

PermissionAction is an annotation used to verify user permissions, This annotation, in conjunction with StreamParkAspect, obtains the required parameters, such as appid and teamid, before the execution of the controller method, and performs logical judgment and interception in the aspect.
Therefore, the controller layer still needs to use beans to receive parameters from the frontend and cannot be change like this PR, But when the controller layer calls a method in the service layer, we can pass specific parameters(e.g: Long id) instead of a bean. I think this part can be improved. I'd love to hear your further thoughts on this. 😊


bower compatibility

This PR adds bower compatibility (for use in a browser) + a build/minify system (with gulp).
To build or update the dist files, simply do gulp (if you have gulp globally installed).
To ensure further bower compatibility (and maybe for the sake of having a clean repo) I would advise to add tags on each future version bumps ;)
And... A great thank for this library !!! :)

Thank you very much!
I will add some browser usage examples and update package on npm.


Use of undeclared type 'GMUClusterManagerDelegate'

I followed the steps in Swift.md to manually add Google-Maps-iOS-Utils files to my project. And it succeeded in building. But when I try to get a view controller implement GMUClusterManagerDelegate, an error shows

Use of undeclared type 'GMUClusterManagerDelegate'

Here are my screen shots -

Bridging Header

GMUMarkerClustering.h

Group

Use Header Maps

Can anyone help me with this? Thanks a lot!

Can you try to add the header in Build Settings, such as:

@klwoon Yeah I have it

Solved. Something wrong happened to the path of my bridging header.


[BEETLE] Add BLE support

Add BLE support to Beetle.

It would be helpful to provide more context for this PR. I can see there 73 files added, but don't have much info about why, how. There's a new section in the linker script, adding CORDIO_RO_2.1.o and TRIM_2.1.o for instance, can we share what is the intention with those 2 or it's written in the user guide? Why writel is renamed to FCache_Readl. this might seem trivial ,but for users or me it's not as I don't have enough details to understand this BLE addition.
TARGET_ARM_SSG/TARGET_BEETLE/cordio contains the stack is that correct?
What about the testing, how was this tested? Any results to be shared ?
cc @pan-

I wonder if the wicentric stack should go here or in mbed-os, in one of the target of the ble feature.
@fvincenzo Is this integration specific to the beetle or the wicentric stack can be used on other targets ?

@pan The integration we made is specific for Beetle.
@0xc0170 I added all the requested details into the patch descriptions.
To test BLE, we created a test application that uses the stack and tested the functionality.
We also tested the new patches against the mbed standard tests to verify if they introduced any regression. Please find the results below (are the same we obtained before the patches application):
mbedgt: test suite report:
+------------------------+----------------+-----------------------------------------------------------------------------+---------+--------------------+-------------+
| target                 | platform_name  | test suite                                                                  | result  | elapsed_time (sec) | copy_method |
+------------------------+----------------+-----------------------------------------------------------------------------+---------+--------------------+-------------+
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-add_del                              | OK      | 30.16              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-close                                | OK      | 29.01              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-create                               | OK      | 38.98              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example1                             | OK      | 29.52              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example2                             | OK      | 28.82              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example3                             | OK      | 28.99              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example4                             | OK      | 28.61              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example5                             | OK      | 28.69              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-find                                 | OK      | 30.07              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-find2                                | OK      | 28.75              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-flash                                | OK      | 28.51              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-flush                                | OK      | 28.99              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-flush2                               | OK      | 29.64              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-init                                 | OK      | 28.75              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-misc                                 | OK      | 30.49              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-open                                 | OK      | 34.38              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-read                                 | OK      | 29.33              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-write                                | OK      | 29.26              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-basic_test                        | OK      | 27.4               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_async_validate               | OK      | 29.29              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_control_async                | OK      | 35.24              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_control_repeat               | OK      | 29.37              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_selection                    | OK      | 27.36              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_setup_failure                | OK      | 27.9               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_teardown_failure             | OK      | 27.92              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-control_type                      | OK      | 28.62              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-minimal_async_scheduler           | OK      | 28.19              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-minimal_scheduler                 | OK      | 28.59              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-test_assertion_failure_test_setup | OK      | 27.24              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-test_setup_case_selection_failure | OK      | 27.41              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-test_setup_failure                | OK      | 27.31              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-integration-basic                                             | OK      | 26.48              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-integration-threaded_blinky                                   | OK      | 46.48              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-c_strings                                        | FAIL    | 29.39              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-callback                                         | OK      | 32.97              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-dev_null                                         | OK      | 30.5               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-echo                                             | OK      | 38.29              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-generic_tests                                    | OK      | 28.26              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-rtc                                              | OK      | 38.68              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-stl_features                                     | OK      | 28.39              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-ticker                                           | OK      | 46.85              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-ticker_2                                         | OK      | 46.64              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-ticker_3                                         | OK      | 46.7               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-timeout                                          | OK      | 46.65              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-wait_us                                          | OK      | 37.13              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-mbed-attributes                                     | OK      | 28.81              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-mbed-call_before_main                               | OK      | 27.16              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-mbed-cpp                                            | OK      | 27.26              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-mbed-div                                            | OK      | 27.26              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-basic                                     | OK      | 41.51              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-isr                                       | OK      | 32.29              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-mail                                      | OK      | 28.96              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-mutex                                     | OK      | 37.37              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-queue                                     | OK      | 28.82              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-semaphore                                 | OK      | 34.7               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-signals                                   | OK      | 32.37              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-threads                                   | TIMEOUT | 67.12              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-timer                                     | OK      | 41.46              | shell       |
+------------------------+----------------+-----------------------------------------------------------------------------+---------+--------------------+-------------+
mbedgt: test suite results: 1 FAIL / 56 OK / 1 TIMEOUT

Thanks for fixing the commit messages and sharing the results.


Allow focusing of explorer nodes without selecting them

Windows explorer lets you move the focus around without impacting the selection by holding ctrl which I find really nice:

Right now we behave a little unexpected where the focused item is always selected. Additionally I noticed that if I have made a selection and move the selection around and then cut the files, only the focused item gets cut when I would expect all selected (excluding the focused item).

This is already implemented.

Related: https://github.com/microsoft/vscode/issues/118046


[openCypher compatibility] fail to use count(*) to get number of nodes in a return clause

nGQL：MATCH (v {name: 'Tim Duncan'})-[]->(v2) RETURN labels(v), v.age, count(*)

openCypher:

Conclusion: This statement should return the number of nodes, but nGQL failed to parse it.

Same as https://github.com/vesoft-inc/nebula-graph/issues/573

It has nothing to do with count(*).


Add safe call in validateQuestionnaireResponseItems

IMPORTANT: All PRs must be linked to an issue (except for extremely trivial and straightforward changes).
Fixes #936
Description
Add safe call in validateQuestionnaireResponseItems
Alternative(s) considered
N/A
Type
Feature
Screenshots (if applicable)
N/A
Checklist

[x] I have read and acknowledged the Code of conduct
[x] I have read How to Contribute
[x] I have read the Developer's guide
[x] I have signed the Google Individual CLA, or I am covered by my company's Corporate CLA
[ ] I have discussed my proposed solution with code owners in the linked issue(s) and we have agreed upon the general approach
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the style guide of this project
[x] I have run ./gradlew check and ./gradlew connectedCheck to test my changes locally
[x] I have built and run the reference app(s) to verify my change fixes the issue and/or does not break the reference app(s)

sure, thanks for the feedback


util.lua:331 table expected, got number

When I have open a .lua file and try to update Lazy by pressing
n  <C-P>       * <Cmd>Lazy<CR>
the following error appears:
Error executing Lua callback: ....local/share/nvim/lazy/lazy.nvim/lua/lazy/view/float.lua:125: FileType Autocommands f
or "*": Vim(append):Error executing lua callback: ....local/share/nvim/lazy/LuaSnip/lua/luasnip/util/util.lua:331: bad
 argument #1 to 'ipairs' (table expected, got number)

There is another command bound to this keystroke.
s  <C-P>       * <Plug>luasnip-prev-choice
n  <C-P>       * <Cmd>Lazy<CR>

If I only opened an empty buffer, no error appears and I can update my packages.
Editing this line for _, ft in ipairs(fts) do to for _, ft in ipairs({fts}) do the error message is also gone.
Do I just have something miss configured, or is this really a bug?

Hmmm, can't reproduce..
Do you have something set for load_ft_func in setup?

Oh, yes
load_ft_func = require("luasnip.extras.filetype_functions").extend_load_ft({
        markdown = { "html" },
})

I wanted to be able to use html snippets in a markdown file, therefore I set this.
outcommenting this doesn't fix it. I've noticed that this error appears after I switched the buffer and then try to open Lazy.
The complete error message is this
Error executing Lua callback: ....local/share/nvim/lazy/lazy.nvim/lua/lazy/view/float.lua:125: FileType Autocommands f
or "*": Vim(append):Error executing lua callback: ....local/share/nvim/lazy/LuaSnip/lua/luasnip/util/util.lua:331: bad
 argument #1 to 'ipairs' (table expected, got number)
stack traceback:
        [C]: in function 'ipairs'
        ....local/share/nvim/lazy/LuaSnip/lua/luasnip/util/util.lua:331: in function 'redirect_filetypes'
        ...cal/share/nvim/lazy/LuaSnip/lua/luasnip/loaders/init.lua:133: in function 'load_lazy_loaded'
        ...e/timo/.local/share/nvim/lazy/luasnip/plugin/luasnip.lua:87: in function <...e/timo/.local/share/nvim/lazy/
luasnip/plugin/luasnip.lua:86>
        [C]: in function '__newindex'
        ....local/share/nvim/lazy/lazy.nvim/lua/lazy/view/float.lua:125: in function 'mount'
        ....local/share/nvim/lazy/lazy.nvim/lua/lazy/view/float.lua:63: in function 'init'
        .../.local/share/nvim/lazy/lazy.nvim/lua/lazy/view/init.lua:53: in function 'create'
        .../.local/share/nvim/lazy/lazy.nvim/lua/lazy/view/init.lua:38: in function 'show'
        ...cal/share/nvim/lazy/lazy.nvim/lua/lazy/view/commands.lua:38: in function 'command'
        ...cal/share/nvim/lazy/lazy.nvim/lua/lazy/view/commands.lua:24: in function 'cmd'
        ...cal/share/nvim/lazy/lazy.nvim/lua/lazy/view/commands.lua:108: in function <...cal/share/nvim/lazy/lazy.nvim
/lua/lazy/view/commands.lua:95>
stack traceback:
        [C]: in function '__newindex'
        ....local/share/nvim/lazy/lazy.nvim/lua/lazy/view/float.lua:125: in function 'mount'
        ....local/share/nvim/lazy/lazy.nvim/lua/lazy/view/float.lua:63: in function 'init'
        .../.local/share/nvim/lazy/lazy.nvim/lua/lazy/view/init.lua:53: in function 'create'
        .../.local/share/nvim/lazy/lazy.nvim/lua/lazy/view/init.lua:38: in function 'show'
        ...cal/share/nvim/lazy/lazy.nvim/lua/lazy/view/commands.lua:38: in function 'command'
        ...cal/share/nvim/lazy/lazy.nvim/lua/lazy/view/commands.lua:24: in function 'cmd'
        ...cal/share/nvim/lazy/lazy.nvim/lua/lazy/view/commands.lua:108: in function <...cal/share/nvim/lazy/lazy.nvim
/lua/lazy/view/commands.lua:95>```

If I uninstall LuaSnip the error does not appear.

I'm a bit stumped by the error: as it stands right now, if fts (the value that is nil in ipairs) is actually nil, there would have to be an error even before this (there's a table.insert(fts, "all"))..
Could you check if there is an older installation of luasnip in your runtimepath? See #1088 and linked issues for some hints on that.

I've reinstalled Luasnip by removing the folder in ~/.local/share/nvim/lazy/LuaSnip/ and reinstalling with lazy with the following definition:
        {
            "L3MON4D3/LuaSnip",
            version = "v2.*",
            config = function()
                require("snippets")
            end,
            dependencies = {
                "rafamadriz/friendly-snippets"
            },
            build = "make install_jsregexp"
        },

It did not fix this issue.
Another thing I've tried is that I printed the ftsobject in the redirect_filetypes(fts) function.
ftsis a table object untill I change the buffer. Then it returns numbers (8, 9).
FYI I also have the cmp_luasnip package installed which is likely to return this number with this function:
vim.api.nvim_create_autocmd({ "BufWinEnter", "FileType" }, {
	callback = function(event)
        print(event.buf)
		require("luasnip.loaders").load_lazy_loaded(tonumber(event.buf))
	end,
	group = "_luasnip_lazy_load",
})

If I am certain that the error is ion this other package I will create an issue there.
Thank you for the reponses so far.

I've reinstalled Luasnip by removing the folder in ~/.local/share/nvim/lazy/LuaSnip/ and reinstalling with lazy with the following definition:

That does not necessarily rule out that files from an older installation are still in runtimepath! For example from a switch from packer to lazy, at least that is a common root-cause AFAICT
The output of:lua =vim.api.nvim_get_runtime_file("lua/luasnip/init.lua", true) (true to get all matches) should indicate if there are two installations: if there are two results, one of them is an old installation.
Another idea: print the values in the caller of redirect_filetypes (well, the one in the file installed by lazy), if there is not always a message, there's another file that calls redirect_filetypes

FYI I also have the cmp_luasnip package installed which is likely to return this number with this function:

Oh, isn't that code from luasnip? I don't understand what you mean there :sweat_smile:

:lua =vim.api.nvim_get_runtime_file("lua/luasnip/init.lua", true) returns  { "/home/timo/.local/share/nvim/lazy/LuaSnip/lua/luasnip/init.lua" }.
The autocmd function I posted might also appear in your LuaSnip plugin but tracing the error messages this error came from cmp_luasnip plugin as it is saved in lazy/luasnip instead of lazy/LuaSnip (your plugin).
I suspected that this tonumber(event.buf) is responsible for returning a number instead of a table... changing this to {event.buf} leads to another error which looks like this
Error executing Lua callback: ....local/share/nvim/lazy/lazy.nvim/lua/lazy/view/float.lua:125: FileType Autocommands f
or "*": Vim(append):Error executing lua callback: ...cal/share/nvim/lazy/LuaSnip/lua/luasnip/loaders/init.lua:143: att
empt to index field 'vscode' (a nil value)

What do you mean with the caller of redirect_filetypes?
What kind of table does redirect_filetypes function expect?

Aw man, okay then there's something more going on..
Are you sure that cmp_luasnip is saved as lazy/luasnip? I'm not sure they ever had code like this..

I suspected that this tonumber(event.buf) is responsible for returning a number instead of a table... changing this to {event.buf} leads to another error which looks like this

Ah, no, that is as it should be, the load_lazy_loaded accepts the bufnr and determines which filetypes should be loaded for that buffer

What do you mean with the caller of redirect_filetypes?

I mean load_lazy_loaded, sorry, should've been more explicit😅 Iirc redirect_filetypes is called in there

Oh well I solved it. I looked up information of the luasnip packages installed by lazy and solved the mystery of the two folders.

As a dependency of nvim-cmp I had luasnip declared as "l3mon4d3/luasnip" instead of "L3MON4D3/LuaSnip". This seems to be case sensitive and therefore handles it like another plugin...
I deleted both folders luasnip and LuaSnip in lazys directory and reinstalled LuaSnip.
Thank you for your time and help!

Ahhh oh :facepalm:
Maybe open an issue about this over at lazy, they may not be aware that there is this behaviour/it can lead to issues like this.
I'm very surprised that there was only one result for the runtimepath despite this.. well, adding this one to my go-to solutions for issues like this :D

Okay perfect.
Yes I opened an issue over at lazy.


Increase performance of Raster thread

All this does is avoid adding an animated container when the opacity is 0 (which it is most of the time).
The new line avoids an unintuitive behavior of the Flutter Framework, in which a fully transparent overlay cannot be ignored by the rasterizer. More info here: https://github.com/flutter/flutter/pull/72526#issuecomment-749185938.
I wasn’t able to test this, but I’m pretty sure this will have the effect of skipping the overlay animation when the opacity goes from 0 to non-zero (because AnimatedContainer only animates itself if it’s there for both the before and after — and I’m removing the before). If this is too jarring, we can think about other creative ways to still get that performance boost.

The real consideration is that you can't optimize out these layers with just the test "opacity == 0". That isn't enough information. It might be enough information situationally such as in your app code where you know how the thing will be blended (i.e. with srcOver and no ColorFilter and no ImageFilter).
Unfortunately, the proposed code in the framework was going to use that code for all cases of opacity, without knowing how that widget was going to be used within the grand scene of the app.
Also, Skia does do this optimization at rendering time - the difference is that they do it knowing all of the information. They only skip a primitive if it has a zero transparency AND it is blended with SrcOver (and a few other compatible blend modes) AND there is no ColorFilter or ImageFilter. That is a responsible assessment of the operation being a NOP.
So, here's the thing. The performance drop you were seeing was not likely due to Skia spending a lot of time rendering the transparent overlay because that is one of the first tests they do on a primitive and it would not be getting to the GPU or even to their front end code that processes the primitive. If you were seeing a lot more rendering time, then it would have been due to having a lot more stuff to render.
My guess would be that the presence of the AnimatedContainer either is constantly tickling the painting of that widget "We need to paint! We need to paint!", or that it is somehow blocking the lower layers of the framework from noticing that the overall widget that contains the AnimatedContainer is stable.
That doesn't discount the gains you see from this, but it means that the reason it helps isn't necessarily what you think it might be. And the comment you cite isn't the actual issue at stake here.

Just a quick thought. What happens if you remove the conditional test and instead wrap that AnimatedContainer in a RepaintBoundary? The RepaintBoundary would prevent any instability in that container from causing the rest of the widget to have to redraw all the time.
This idea is just a guess, but it would be an indication that the problem is due to over-re-painting.


Creation of factory classes

Each group member is responsible for at least two entities and therefore must create the related Factory class for each entity.
• Merge correct, error-free pull requests from group members.

Complete


Worker immediately respond with PASS

Hey Guys,
This is our current magellan setup:
"dependencies": {
    "nightwatch": "0.9.15",
    "selenium-server": "3.4.0",
    "testarmada-magellan": "10.0.7",
    "testarmada-magellan-admiral2-plugin": "4.0.2",
    "testarmada-magellan-local-executor": "2.0.0",
    "testarmada-magellan-nightwatch-plugin": "6.0.1",
    "testarmada-magellan-saucelabs-executor": "1.0.5"
}

So we encounterd some issue that just appeared after we had an npm cache clean.
All of our test are immediately reported as successful even though they have not been executed on saucelabs yet. We see that a connection is established to sauce labs but no test commands get executed there, this results in a timeout after 90 seconds.
Even with debug mode enabled we were not able to analyze where the error occured.
Maybe you have an idea?
[INFO] [Magellan] Will try to load configuration from default of ./magellan.json
Loaded configuration from:  /user/E2E/magellan.json
[INFO] [Magellan] Magellan is creating temporary files at: /user/E2E/temp
[INFO] [Magellan] Magellan 10.0.7
[INFO] [Magellan] Loaded test framework:
[INFO] [Magellan]   testarmada-magellan-nightwatch-plugin
[INFO] [Magellan] Loaded test executors:
[INFO] [Magellan]   testarmada-magellan-local-executor
[INFO] [Magellan]   testarmada-magellan-sauce-executor
[INFO] [Magellan Nightwatch Plugin] test iterator found nightwatch configuration at: ./nightwatch.json
[INFO] [Magellan Nightwatch Plugin] Scanning tests/nightwatch/tests for test files ...
[INFO] [Magellan Nightwatch Plugin] Found 2 test files in tests/nightwatch/tests
[INFO] [Magellan] Requested profile(s): all
[WARN] [Saucelabs Executor] Warning! No connectVersion is set. This is set via the environment variable $SAUCE_CONNECT_VERSION . This isn't required, but can cause problems with Sauce if not set
[INFO] [Saucelabs Executor] Sauce configuration OK
[INFO] [Saucelabs Executor] Connected to sauce without tunnel
[INFO] [Magellan] Running 4 tests with 20 workers with [env:chrome_58_Windows_10_Desktop|executor:sauce, env:firefox_53_Windows_10_Desktop|executor:sauce]
[INFO] [Magellan] --> Worker 4, port range: [12009, 12011], running test: tests/nightwatch/tests/e2eWithApproval.js @env:firefox_53_Windows_10_Desktop|executor:sauce
[INFO] [Magellan] --> Worker 3, port range: [12006, 12008], running test: tests/nightwatch/tests/e2eWithApproval.js @env:chrome_58_Windows_10_Desktop|executor:sauce
[INFO] [Magellan] --> Worker 2, port range: [12003, 12005], running test: tests/nightwatch/tests/e2e.test.js @env:firefox_53_Windows_10_Desktop|executor:sauce
[INFO] [Magellan] --> Worker 1, port range: [12000, 12002], running test: tests/nightwatch/tests/e2e.test.js @env:chrome_58_Windows_10_Desktop|executor:sauce
[WARN] [Saucelabs Executor] No meta data is found, executor will not report result to saucelabs
[INFO] [Magellan] (1 / 4) <-- Worker 4 PASS  tests/nightwatch/tests/e2eWithApproval.js @env:firefox_53_Windows_10_Desktop|executor:sauce
[WARN] [Saucelabs Executor] No meta data is found, executor will not report result to saucelabs
[INFO] [Magellan] (2 / 4) <-- Worker 3 PASS  tests/nightwatch/tests/e2eWithApproval.js @env:chrome_58_Windows_10_Desktop|executor:sauce
[WARN] [Saucelabs Executor] No meta data is found, executor will not report result to saucelabs
[INFO] [Magellan] (3 / 4) <-- Worker 2 PASS  tests/nightwatch/tests/e2e.test.js @env:firefox_53_Windows_10_Desktop|executor:sauce
[WARN] [Saucelabs Executor] No meta data is found, executor will not report result to saucelabs
[INFO] [Magellan] (4 / 4) <-- Worker 1 PASS  tests/nightwatch/tests/e2e.test.js @env:chrome_58_Windows_10_Desktop|executor:sauce
[INFO] [Magellan] ============= Suite Complete =============
[INFO] [Magellan]      Status: PASSED
[INFO] [Magellan]     Runtime: 5s
[INFO] [Magellan] Total tests: 4
[INFO] [Magellan]  Successful: 4 / 4
[INFO] [Magellan] Checking for zombie processes...

Before the NPM Cache clean our infrastructure worked fine, so we assume that it might be possible that there is a module required by magellan which is unavailbe by now.
We tried also with older versions of all magellan modules but this problem persists.
Would be great if you can help us :)

@DeltaLikeM My initial response for this is to create a base-test for your repo and inherit from https://github.com/TestArmada/nightwatch-extra/blob/master/src/base-test-class.js.
Example: https://github.com/TestArmada/boilerplate-nightwatch/blob/master/lib/example-base-test-class.js and https://github.com/TestArmada/boilerplate-nightwatch/blob/master/tests/demo-mobile-web.js#L1
But my second guess, which might not relate to the first response, is there is a js format issue in the test files. We've seen this fake pass before whose root cause can be highlighted by a lint.

Thank you very much for your answer

any updates on this?

I am also getting the same issue with magellan.. whats the solution?


Line 250 inserted with console fix

Fixes the console errors when not looking at a prop/player.

thanks!


Add death test for non-propagating swap when allocators are not equal

Adds a test for UB in swap with on-equal allocators
Fixes #202

I'm not sinking more time into getting this working. Will close.


Introduce type-descriptor precedence support to parser

Purpose
$subject.
Fixes #24035
Fixes #30225
Approach
N/A
Samples
type customType distinct Foo & readonly & int|Baz[] & Qux[a:b] & boolean|distinct float;

will be parsed as,
type custom3 ( ( (((distinct Foo) & readonly) & int) | ((Baz[] & (Qux[a:b])) & boolean) ) | (distinct float) );

Complex Sample  (click to expand)
type customType readonly & int | Baz[] & Qux[mod1:app] & boolean | distinct float |
function() returns Foo & distinct Bar | Baz & Qux[0] &
function() returns int[] & distinct distinct Bar[] | string[];

will be parsed as,
type customType ( ( ((readonly & int)| ( (Baz[] & (Qux[mod1:app])) & boolean )) | (distinct float) ) |
(function() returns ( (Foo & (distinct Bar)) |
(( Baz & (Qux[0]) ) & function() returns ( ( int[] & ( (distinct (distinct Bar))[] ) ) | (string[]) ) ) ) ) );

Remarks
Procedence from high to low as follows.
distinct T
T[]
T1 & T2
T1 | T2
function(args) returns T

Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[x] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Will fix the build failure. Parser changes are done.

@shehan360 docgen upated with 94e7804.


Video Settings Crash

Crash when attempting to open video settings from main menu (FD branch)
nslog2024-05-14 16-46-29.txt
nsdump2024-05-14 16-46-57.dmp

Well closing the issue as apparently it was a GPU Driver issue and not the issue with Northstar itself or the FD branch.


Consider reworking MasterAsset to use frozen collections

.NET 8 introduced new types optimized for quick lookups: https://steven-giesel.com/blogPost/34e0fd95-0b3f-40f2-ba2a-36d1d4eb5601
These are optimized for fast lookups at the expense of slow creation. Seems good for MasterAsset which is created once per program run.
If the cost to create really is large, we may want to change MasterAsset to load all at once on startup rather than as individual fields are accessed. Should also look at some benchmarks to see how much benefit we would get

Closed by #514


Bumps asset-builder verison

use carrot to get latest minor version as well
ref https://github.com/austinpray/asset-builder/issues/14

:shipit:


test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath test failure in //tensorflow/python/keras:callbacks_test

Hello,
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): N/A
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04 x86_64
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): source
TensorFlow version (use command below):  v2.2.0
Python version: 3.6.9
Bazel version (if compiling from source): 2.0.0
GCC/Compiler version (if compiling from source):  gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
CUDA/cuDNN version: N/A
GPU model and memory: N/A

Describe the current behavior
When running the test cases on 2.2.0, I encountered an error in //tensorflow/python/keras:callbacks_test
The failed test log snippet is:
FAIL: test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath (__main__.KerasCallbacksTest)
test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath (__main__.KerasCallbacksTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/peterbao/.cache/bazel/_bazel_peterbao/c55b467aea9f5b6a0b36d1bc596dae4f/execroot/org_tensorflow/bazel-out/k8-opt/bin/tensorflow/python/keras/callbacks_test.runfiles/org_tensorflow/tensorflow/python/keras/callbacks_test.py", line 821, in test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath
    model.fit(train_ds, epochs=1, callbacks=[callback])
AssertionError: OSError not raised

Describe the expected behavior
test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath   and //tensorflow/python/keras:callbacks_test to pass
Standalone code to reproduce the issue
The test case test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath appears to be introduced in https://github.com/tensorflow/tensorflow/commit/50256e69b727e49025020e80ab98d5d05d4c7dcc and seems not changed after that. So I am thinking the test case would still fail on the master. To reproduce the failure, you can run //tensorflow/python/keras:callbacks_test.
Other info / logs
I spent some time looking into the test case , and this is what I noticed,
(Pdb) list
1225                self.model.save(filepath, overwrite=True)
1226
1227            self._maybe_remove_file()
1228          except IOError as e:
1229            # `e.errno` appears to be `None` so checking the content of `e.args[0]`.
1230 ->         if 'is a directory' in six.ensure_str(e.args[0]):
1231              raise IOError('Please specify a non-directory filepath for '
1232                            'ModelCheckpoint. Filepath used is an existing '
1233                            'directory: {}'.format(filepath))
1234
1235      def _get_file_path(self, epoch, logs):
(Pdb) p e.args[0]
"Unable to create file (unable to open file: name = '/tmp/tem49izq6ff/tmplrdc03ul/temp.h5', errno = 21, error message = 'Is a directory', flags = 13, o_flags = 242)"

It looks like the code above wants an error message to be is a directory but the OSError actually has Is a directory as the error message. As a result, the more detailed error message is not outputted here and that results test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath to be failing.
Based on this information, I think the following can fix the problem:
diff --git a/tensorflow/python/keras/callbacks.py b/tensorflow/python/keras/callbacks.py
index bb9e61d01a..bfad1112d7 100644
--- a/tensorflow/python/keras/callbacks.py
+++ b/tensorflow/python/keras/callbacks.py
@@ -1227,7 +1227,7 @@ class ModelCheckpoint(Callback):
         self._maybe_remove_file()
       except IOError as e:
         # `e.errno` appears to be `None` so checking the content of `e.args[0]`.
-        if 'is a directory' in six.ensure_str(e.args[0]):
+        if 'Is a directory' in six.ensure_str(e.args[0]):
           raise IOError('Please specify a non-directory filepath for '
                         'ModelCheckpoint. Filepath used is an existing '
                         'directory: {}'.format(filepath))

Let me know if more information is needed.
Thanks,
Peter

@ruixin-bao
Please share simple stand alone code for us to replicate the issue faced along with the exact steps before which you encountered this issue

Hi,
@Saduf2019, thank you for the reply. I encountered this error while running the test cases, so might not have a simple stand alone code. I tried isolating that test case (and its related functions) into the following python file, would that work?
from tensorflow.python.keras import keras_parameterized
import os
from tensorflow.python.platform import test
from tensorflow.python.data.ops import dataset_ops
from tensorflow.python.keras.engine import sequential
from tensorflow.python.keras.optimizer_v2 import gradient_descent
from tensorflow.python.keras import testing_utils
from tensorflow.python import keras

class KerasCallbacksTest(keras_parameterized.TestCase):
  def _get_dummy_resource_for_model_checkpoint_testing(self):

    def get_input_datasets():
      # Simple training input.
      train_input = [[1.]] * 16
      train_label = [[0.]] * 16
      ds = dataset_ops.Dataset.from_tensor_slices((train_input, train_label))
      return ds.batch(8, drop_remainder=True)

    # Very simple bias model to eliminate randomness.
    optimizer = gradient_descent.SGD(0.1)
    model = sequential.Sequential()
    model.add(testing_utils.Bias(input_shape=(1,)))
    model.compile(loss='mae', optimizer=optimizer, metrics=['mae'])
    train_ds = get_input_datasets()

    temp_dir = self.get_temp_dir()
    filepath = os.path.join(temp_dir, 'checkpoint.epoch{epoch:02d}.h5')

    # The filepath shouldn't exist at the beginning.
    self.assertFalse(os.path.exists(filepath))
    callback = keras.callbacks.ModelCheckpoint(
        filepath=filepath, save_weights_only=True)

    return model, train_ds, callback, filepath

  def test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath(self):
    (model, train_ds, callback,
     filepath) = self._get_dummy_resource_for_model_checkpoint_testing()
    temp_dir = self.get_temp_dir()
    filepath = os.path.join(temp_dir, 'temp.h5')

    self.assertFalse(os.path.exists(filepath))
    os.mkdir(filepath)
    self.assertTrue(os.path.exists(filepath))

    callback = keras.callbacks.ModelCheckpoint(filepath=filepath)

    with self.assertRaisesRegexp(IOError, 'Please specify a non-directory '
                                        'filepath for ModelCheckpoint.'):
      model.fit(train_ds, epochs=1, callbacks=[callback])

if __name__ == '__main__':
  test.main()

faced along with the exact steps before which you encountered this issue

I originally encountered this issue after I build TensorFlow 2.2.0 on Ubuntu 18.04 x86 and run its test suite, but that might be a bit time consuming. I think I find a simpler reproducer:
1: I install TensorFlow 2.2.0 following https://www.tensorflow.org/install/pip
2: I have the above the test case written in a file called testcase.py
3: I run python testcase.py under a virtual environment
The test case then shows the following on my local environment:
(venv) peterbao@xxx:~$ python testcase.py
Running tests under Python 3.6.9: /home/peterbao/venv/bin/python
[ RUN      ] KerasCallbacksTest.test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath
WARNING:tensorflow:From /home/peterbao/venv/lib/python3.6/site-packages/tensorflow/python/keras/testing_utils.py:612: Layer.add_variable (from tensorflow.python.keras.engine.base_layer) is deprecated and will be removed in a future version.
Instructions for updating:
Please use `layer.add_weight` method instead.
W0527 05:24:02.982633<PHONE_NUMBER>68896 deprecation.py:323] From /home/peterbao/venv/lib/python3.6/site-packages/tensorflow/python/keras/testing_utils.py:612: Layer.add_variable (from tensorflow.python.keras.engine.base_layer) is deprecated and will be removed in a future version.
Instructions for updating:
Please use `layer.add_weight` method instead.
2020-05-27 05:24:02.988186: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory
2020-05-27 05:24:02.988473: E tensorflow/stream_executor/cuda/cuda_driver.cc:313] failed call to cuInit: UNKNOWN ERROR (303)
2020-05-27 05:24:02.988672: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (tithed1.fyre.ibm.com): /proc/driver/nvidia/version does not exist
2020-05-27 05:24:02.989427: I tensorflow/core/platform/cpu_feature_guard.cc:143] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-05-27 05:24:03.010707: I tensorflow/core/platform/profile_utils/cpu_utils.cc:102] CPU Frequency:<PHONE_NUMBER> Hz
2020-05-27 05:24:03.012074: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x7f49f4000b20 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-05-27 05:24:03.012298: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2/2 [==============================] - 0s 6ms/step - loss: 0.9500 - mae: 0.9500
[  FAILED  ] KerasCallbacksTest.test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath
[ RUN      ] KerasCallbacksTest.test_session
[  SKIPPED ] KerasCallbacksTest.test_session
======================================================================
FAIL: test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath (__main__.KerasCallbacksTest)
test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath (__main__.KerasCallbacksTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "testcase.py", line 51, in test_fit_with_ModelCheckpoint_with_dir_as_h5_filepath
    model.fit(train_ds, epochs=1, callbacks=[callback])
AssertionError: OSError not raised

----------------------------------------------------------------------
Ran 2 tests in 1.131s

FAILED (failures=1, skipped=1)

Thanks,
Peter

@ruixin-bao
I ran the code shared and face a different error, please find the gist here

Hi,
@Saduf2019, thanks for the reply and providing the gist. I saw the flag error as well when I am running this gist. I took some time to find why that is the case as this test case works for me locally.
According to https://github.com/jupyter/notebook/issues/2746 and its linked stack overflow, it seems that
unittest.main looks at sys.argv by default, which is what started IPython, hence the error about the kernel connection file not being a valid attribute.
By looking at the pdb output, I did see something similar to what the issue above describes:

So I am suspecting that is the issue. However, seems like when I use tensorflow platform's test  to run the test (i.e: from tensorflow.python.platform import test), the mentioned workaround in the issue does not work for me. To solve the problem, I switched to use unittest, hopefully it shouldn't change too much of what I try to show.
I have attached the gist I tried here. Let me know if that works for you.
Thanks,
Peter

@ruixin-bao
I need permission to view the gist shared.

@Saduf2019
oops, sorry,  I just learned how to use colab today.
does this: https://colab.research.google.com/drive/1FQPJfqnaHH6PuJpvxMaEHyv1mCK0AEoD?usp=sharing work?

@ruixin-bao
I ran the gist shared and here is the error faced.

@Saduf2019
Odd NameError: name 'unittest' is not defined looks like an import error, and running multiple times in colab did not catch this somehow..
this is the updated one with unittest imported. Do you mind having another quick check? Thanks

i am able to replicate the issue faced, please find the gist here

I tested out that https://github.com/tensorflow/tensorflow/commit/42e08300a053cced03292b430d51a1273bb642f0 indeed fixes the issue. Also, from https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/keras/BUILD#L520-L536, looks like this test has no_oss tag.
Hence, I am closing this issue. Thanks all for the help provided!


Long long int overflow in thirdparty/misc/open-simplex-noise.c

Godot version:
3.2.dev.custom_build. 3ea33c0e4
OS/device including version:
Ubuntu 19.04
Issue description:
thirdparty/misc/open-simplex-noise.c:195:14: runtime error: signed integer overflow:<PHONE_NUMBER>888963407 *<PHONE_NUMBER>846793005 cannot be represented in type 'long int'
thirdparty/misc/open-simplex-noise.c:196:14: runtime error: signed integer overflow:<PHONE_NUMBER>808476466 *<PHONE_NUMBER>846793005 cannot be represented in type 'long int'
thirdparty/misc/open-simplex-noise.c:198:15: runtime error: signed integer overflow: -7280499659394350823 *<PHONE_NUMBER>846793005 cannot be represented in type 'long int'
thirdparty/misc/open-simplex-noise.c:198:8: runtime error: signed integer overflow:<PHONE_NUMBER>496225463 +<PHONE_NUMBER>888963407 cannot be represented in type 'long long int'
thirdparty/misc/open-simplex-noise.c:194:14: runtime error: signed integer overflow: 2 *<PHONE_NUMBER>846793005 cannot be represented in type 'long int'
thirdparty/misc/open-simplex-noise.c:195:7: runtime error: signed integer overflow:<PHONE_NUMBER>362419545 +<PHONE_NUMBER>888963407 cannot be represented in type 'long long int'
thirdparty/misc/open-simplex-noise.c:194:7: runtime error: signed integer overflow:<PHONE_NUMBER>339275202 +<PHONE_NUMBER>888963407 cannot be represented in type 'long long int'

and other similar when running different projects
Steps to reproduce:
Open empty project
To see this error compile godot with this parameters
scons p=x11 -j6 use_ubsan=yes use_lsan=yes use_asan=yes

Maybe is culprit in one of these https://lgtm.com/projects/g/godotengine/godot/alerts/?mode=list&id=cpp%2Finteger-multiplication-cast-to-long .

Should be fixed by this commit in upstream, and we just need to update our version: https://github.com/smcameron/open-simplex-noise-in-c/commit/0fef0dbedd76f767da7e3c894822729d0f07e54d
The latest master of that repo is 1 commit ahead of that commit.


[Timeline] Remove use of nth-child in favor of nth-of-type

Uses nth-of-type instead of nth-child to target alternating timeline item elements
Fixes issues where DOM element location matters, for example when emotion is
inserting Server Side Rendered content into the DOM outside of the component's hierarchy

[x] I have followed (at least) the PR section of the contributing guide.

Closes #25875

Not merging this before argos is operational again so that we have visual confirmation.

@wellwellmissesanderson It's a great first pull request on Material-UI 👌🏻. Thank you for working on it!

Thanks all! Hopefully it won't be the last, thanks to @mnajdova for the answer 😂


Another WFSim <-> CMT patch

What does the code in this PR do / what does it improve?
Some patches for wfsim don't work well with URL configs #864 and in combination with #860, we now have some other issues in the WFSim context.
It's again another patch, and I think we should really go away from the entire cmt_run_id-hack from used for WFSim and just track the corrections used during processing entirely separate from the instructions as discussed during the Heidelberg workshop (@terliuk @jmosbacher @WenzDaniel @ramirezdiego ).
For a failing example please see: this fail from PR https://github.com/XENONnT/pema/pull/141

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 87.644%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
6313

Relevant Lines:
7203

💛  - Coveralls

So is electron_lifetime_liquid just not used? When we switched elife to a URLConfig we didnt realize it was still being used in the wfsim as a regular cmt config right? so switching the electron_lifetime_liquid to a URLConfig in the wfsim plugin i guess would be the cleanest but i cant find where its actually used? so i guess its used inside wfsim and not as a plugin config?

@jmosbacher no, the issue is that that config shouldn't need to use a URL config but just fetch a number.
The entire correction_options wrapper doesn't work anymore as far as I can tell, because with an URL config we should have replaced ?run_id=plugin.run_id with ?run_id=config.cmt_run_id or something. But as I said in the PR description as well as in the Heidelberg workshop, I think we should really drop this. The fax config can be based on numbers from CMT sure, but they should not be tracked with a lenght-5 tuple.

Ok, yeah that makes sense. Im wondering if there is a way to make the transition period a bit easier. Maybe I can add support for basic URLs in the straxen.get_correction_from_cmt function. Of course I cant support complex URLs that depend on arbitrary plugin attributes, but the simple ones like cmt://name?version=vx should be trivial to support for this transition period

@terliuk what do you mean by divergent? do you mean setting it to a constant value? since its a URLConfig, it can just be set to any value you want directly in the context config. If you mean taking it from cmt but from some other run_id then you need to set it to cmt://elife?version=VERSION&run_id=ALT_RUN_ID. Since the plugin itself is no longer calling the get_correction_from_cmt function there is no need to use these hacks with the length 5 tuples.

@JoranAngevaare I think its important to keep the promise of not breaking any working hacks ugly as they may be during this transition period. Im considering adding some extra logic here to just edit the URLs automatically for the "processing" part (the elife URLConfig) and constructing tuples for the "simulation" side which match what the hacks already expect. Should I make a separate PR for this or push directly to here?

I added some changes to the context creation script that will hopefully handle all use cases during the transition period, the goal is to make the transition as transparent as possible to users.
These are the cases I could find reading the existing code and the extra logic I added for each:

WFSim using CMT configs from the processing context - replace the URL with a tuple that WFSim expects
Overriding processing CMT configs with constants - just set the config to the constant
Overriding run_id in CMT URL configs for processing  - replace run_id value in the URL with a constant instead of plugin.run_id
Overriding simulation CMT configs with constants - replace the URL with a tuple that WFSim expects inside the fax_config_override_from_cmt

Anything I missed?


Proposal for Adding Android Environment Support to Flutter Desktop

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
I am writing to propose a valuable addition to the Flutter desktop framework—an Android environment support feature. This feature would enable developers to run Android or iOS virtual environments directly on the Flutter desktop, eliminating the need for external dependencies and constraints.
By incorporating Android environment support into Flutter desktop, developers would be able to work on both desktop and mobile platforms using a unified and streamlined workflow. This unified approach eliminates the need to switch between different development environments, resulting in improved productivity and efficiency.
Proposal
Flutter should support easy integration with native device features and third-party libraries, offer extensive testing and debugging capabilities, and provide comprehensive documentation and community support. Ultimately, I envision Flutter as a go-to solution for cross-platform development, empowering developers to create stunning and feature-rich applications with speed, efficiency, and flexibility.

Hi @ahmeedev
I don't really understand this feature request yet. For eg:

to run Android or iOS virtual environments directly on the Flutter desktop

What does Flutter desktop mean here?
Could you please share a specific example with other existing frameworks that supported this feature (if any)?

Emulating two entire operating systems is out of scope for Flutter, nor do we believe the result would be high quality applications.
If there are developers who believe that emulating iOS and Android for the purpose of hosting individual libraries is a good investment of engineering resources, and are not concerned with the significant performance implications on the resulting applications, they are certainly welcome to do so in the form of a plugin.


Please add my port!

I made a port
https://github.com/Starwort/wanakana-py
Published to PyPI as wanakana-python

Hey Starwort, thanks for your contribution!
I've updated the readme to include your port 👌


Helper for running e2e more quickly

It is possible to run many of the e2e (including conformance) tests in parallel but some do require that they are run in serial.
However, it seems like it would be a helpful configuration to share how to optimize the time to run.
It wouldn't be a replacement for the certified-conformance runs, but in CI systems or whatnot it would be nice to be able to cut the time to run in half (not sure the full time savings).
I think stuff like this can fit into the sonobuoy-plugins repo under the related folder. So I could make up an e2e serial/parallel configuration and so the run would look like:
sonobuoy run -p e2eparallel -p e2eserial

At first, you'd have to specify a yaml file or the URL, but with our new plugin management, it would really look like ^.

@johnSchnake do you know a way to run tests in parallel?
Flag --e2e-parallel even not showing in --help (but I can pass it without issues) and looks like sonobuoy ignoring E2E_PARALLEL env variable.
# in both cases tests are running in serial mode
E2E_PARALLEL=10 sonobuoy run --wait --mode=certified-conformance --kube-conformance-image gcr.io/google-containers/conformance:v1.19.0-rc.1
sonobuoy run --wait --e2e-parallel=10 --mode=certified-conformance --kube-conformance-image gcr.io/google-containers/conformance:v1.19.0-rc.1

Its the container that needs the E2E_PARALLEL value, not the CLI environment.
Are you sure the tests aren't running parallel when you provide the flag? The gen command below shows that the flag does set the env var as expected.
sonobuoy gen --e2e-parallel=10 --kubernetes-version=ignore | grep PAR --context=1

At that point, if it doesn't run in parallel it is an upstream issue I'll need to fix.
Going to test this myself but appreciate if you can confirm as well.

When I tried and looked in the logs I got:
Args (comma-delimited): /usr/local/bin/ginkgo,--focus=\[Conformance\],--skip=Serial,--noColor=true,/usr/local/bin/e2e.test,--,--disable-log-dump,--repo-root=/kubernetes,--provider=local,--report-dir=/tmp/sonobuoy/results,--kubeconfig=,--progress-report-url=http://localhost:8099/progress

So the focus/skip got set on the e2e invocation but not the parallel. The env var is set as expected. Going to look upstream.

https://github.com/kubernetes/kubernetes/blob/dbebb8f2e8361db92ccc72ab9da44d7e5b38f76f/test/conformance/image/go-runner/cmd.go#L34-L40 makes it seem like you and I both just misundertand the syntax. I remember being confused from the start but I was just trying to copy whatever was there before. It seems more like you turn parallel on/off rather than set it to a value.

When using --e2e-parallel=true then I saw this in the logs:
Running in parallel across 7 nodes

but its a bit odd since I only have a 3 node cluster :)
I'll have to dig into some but my guess is that it is all working as intended but I just dont understand it.

The "7 nodes" comes from the number of CPUs and is part of ginkgo itself:
https://github.com/onsi/ginkgo/blob/e4cff825178c07d5f3d68cb5f61e94c4a8beccdf/ginkgo/testrunner/test_runner.go#L318
So I guess that is why parallel is just 'on' or 'off' too. So it seems the e2e-parallel should just be a boolean flag; I'll go and see if there is any reason not to make that change. It would be a breaking change but very small and easy to fix.

SUCCESS! -- 291 Passed | 0 Failed | 0 Pending | 5376 Skipped
Ginkgo ran 1 suite in 14m54.061962467s
The speedup is real; 291 tests in 15m when in parallel.

Ginkgo docs say you can specfy the # of parallel though via:
ginkgo -nodes=N runs your tests in N parallel processes and print out coherent output in realtime

So maybe that was just never taken advantage of.


help needed - how to modify output of each map chain before reduce step of a MapReduceDocumentsChain ?

Everything is in the title,
I searched for hours...
anybody ?

@dosu-bot in Python.

Hey @stygmate, for this you'll need to implement the chain using LCEL and from there you can modify its behavior however you'd wish!
An example of the map reduce chain in LCEL can be found here