ci: add Windows builds

We should add Windows builds to CI. Here, and in ros-industrial/abb_egm_rws_managers and ros-industrial/abb_robot_driver_interfaces.

Can probably re-use (parts of) the builds in abb_libegm and abb_librws.

Can probably re-use (parts of) the builds in abb_libegm and abb_librws.

Unfortunately those one use vcpkg for their dependencies, and as far as I know there is no easy to use/fast way to build ROS on top of vcpkg provided dependencies.
The two main options that come to my mind are:

Use Chocolatey binaries provided by the ROSOnWindows project, see for example https://github.com/ms-iot/ros_simulation_lab/blob/master/.github/workflows/build-windows.yml or https://github.com/ms-iot/ros_simulation_lab/blob/master/.github/workflows/build-windows.yml . This approach is the one officially supported by Microsoft.
Use RoboStack-provided conda-binaries for ROS dependencies (just noetic) and conda-forge for non-ROS dependencies. For an example, see https://github.com/RoboStack/ros-noetic/issues/69#issuecomment-797346081 . This approach is based on conda-forge and RoboStack that are currently purely volunteer-based organizations.

Related to the second point, I plan to eventually package abb_libegm and abb_librws in conda-forge, that should make the CI setup easier.

Personally I don't develop on Windows, which is also why this is labelled help-wanted -- which is from my perspective, as I created the issue.

The two main options that come to my mind are

Again, personally, I don't really have a preference, as long as whatever we end up implementing gives a good indication of whether or not Windows builds are successful and those builds can be used for CI purposes (ie: detecting regressions, etc).
btw @traversaro: the two links to the build-windows.yml files seem to be the same. Were those supposed to link to something different?

btw @traversaro: the two links to the build-windows.yml files seem to be the same. Were those supposed to link to something different?

Yes, sorry for that, I fixed the second link now.

Personally I don't develop on Windows, which is also why this is labelled help-wanted -- which is from my perspective, as I created the issue.

The two main options that come to my mind are

Again, personally, I don't really have a preference, as long as whatever we end up implementing gives a good indication of whether or not Windows builds are successful and those builds can be used for CI purposes (ie: detecting regressions, etc).

Same here, as I don't use ROS at least for ABB-related stuff.  I just wanted to drop a few pointers as I saw the abb_libegm/abb_librws CI setup mentioned, as I know that Windows CI and packaging usually scares a bit contributors, so having a few pointers could be helpful.

so having a few pointers could be helpful.

certainly. Grazie mille.

Azure Edge Robotics has documentation for CI using Github actions for Windows:
https://ms-iot.github.io/ROSOnWindows/GettingStarted/GithubSetupCI.html
(Once we complete the MoveIt2 work, I'll check back on this thread)


Implement IPv6 support

is this module ipv4 only presently?
there is a configuration bit assign_generated_ipv6_cidr_block,
I take it this only asks aws to allocate a block,
and does not associate ipv6 subnets or addresses with anything managed by this module.


Security Group Rules support for other Security Groups as a target for the rule (instead of CIDR IP address directives)

Nope. I did an impromptu demo last night and discovered that not only do we not support it, we accidentally create an invalid rule record in the database instead if the AWS account is using a rule with this feature.


Disallow prints in all crates

As far as I can see, there is no way to configure this on a workspace level in stable Rust.
Note also that clippy isn't currently run in the CI. #661 fixes that. Running cargo clippy manually should catch all instances of println!() and print!(). I replaced all instances we had in the code with log::info!().
Also note that we currently have another lint error in the code base (also fixed in #661).

Do we need to add that line to the main module of every crate or how does it work?

Do we need to add that line to the main module of every crate or how does it work?

Yes, I think so. In the future, this type of stuff can be configured in Cargo.toml (https://github.com/rust-lang/cargo/issues/5034) but looks like his isn't available in stable Rust yet.


Portal not showing function errors

Repro:

create a new queue trigger function
make the connection property value in function.json invalid by wrapping it with %% (e.g. %functionfun_STORAGE%)

This results in an error, and the host captures it and exposes it via the admin https://<functionapp>/admin/functions/<name>/status?code=<key> API, but the portal is not showing these errors.
This seems to keep regressing.

@ahmelsayed - is this fixed in stage?

I just tried, and it looks like it is “kinda” fixed.
I can follow the repro steps to create the error, and on first run, I get a 404 error (since the function is invalid), WITHOUT seeing any error output or bubble. Only when I click on another function then back to the one in error does it show the error bubble. So it appears that you only do the error check when initially navigating to the Develop tab?
That doesn’t really work well, since users will create a function, go to integrate and set some invalid stuff, then go back to the Develop tab to run. They won’t see the error in that case.

I think we should refresh errors when the user runs the function and the response is not 200.


West: how to set up for external modules

Hi, I would like to use west for a multi repository setup. My idea is to setup a zephyr directory as:
/zephyrproject/zephyr
/zephyrproject/extmod/mod1
/zephyrproject/extmod/mod2
...
/zephyrproject/extboard/board1
/zephyrproject/extboard/board2

where extmod and extboard would have there own repository.
From the documentation it is clear how to setup each of the subdirectories /extmod/mod1, ... however it is not completely clear for me how to reflect this for west.
Should I add all the modules to the west.yml under zephyr ? Or is is better to remove the west.yml under zephyr and to construct a west.yml under /zephyrproject ?
Is there some kind of setup example ?

Hi @Laczen.  If so then you are very close to the Nordic usecase, and you can see how we handle that here:
https://github.com/NordicPlayground/fw-nrfconnect-nrf/blob/master/west.yml
Note that we have our own Zephyr fork, but you can point to upstream zephyr in your west.yml if you prefer.

Also see https://docs.zephyrproject.org/latest/guides/west/why.html#topologies-supported. We use Topology 2.

@carlescufi, thanks for the reply. I am indeed very close to the Nordic usecase. So basically the idea is to create a new west.yml manifest above the zephyr directory. But how do I get started?
Step 1: I create a west.yml, but what do I do with the self section (especially how to make sure the west commands are still working) ?
Step 2: How to call west init and update for the created west.yml ?

@Laczen
Step 1. You create a west.yml in your main "downstream" repository, let's assume it's called "foo":
foo/west.yml:
west:
  url: https://github.com/zephyrproject-rtos/west
  revision: master

manifest:
  defaults:
    remote: laczen

  remotes:
    - name: laczen
      url-base: https://github.com/laczen
    - name: zephyrproject
      url-base: https://github.com/zephyrproject-rtos

  projects:
    - name: zephyr
      path: zephyr
      west-commands: scripts/west-commands.yml
      remote: zephyrproject
      revision: <whatever revision you want>
   <add projects here>

  self:
    path: foo

Step 2.
west init -m https://github.com/laczen/foo
west update

will give you a set of 2 repositories at the same level, zephyr and foo and all of the flash commands will still work.

@carlescufi , cool, thanks.

@carlescufi I followed your directions, but I'm having trouble on the west init part. It is always resulting to:
usage: west [-h] [-z ZEPHYR_BASE] [-v] [-V] <command> ...
west: error: argument <command>: invalid choice: 'post-init' (choose from 'init', 'update', 'list', 'manifest', 'diff', 'status', 'forall', 'config', 'selfupdate', 'help')

I have this test repo that I want to use as a manifest with the T2 star west topology.
The west.yaml:
west:
  url: https://github.com/zephyrproject-rtos/west
  revision: master

manifest:
  defaults:
    remote: gon1332

  remotes:
    - name: gon1332
      url-base: https://gitlab.com/gon1332
    - name: zephyrproject
      url-base: https://github.com/zephyrproject-rtos

  projects:
    - name: zephyr
      path: zephyr
      west-commands: scripts/west-commands.yml
      remote: zephyrproject
      revision: v1.14.0

  self:
    path: west-test-project

The west init outcome:
~/D/west-test-project ❯❯❯ west init -m https://gitlab.com/gon1332/west-test-project                             master
Initializing in /home/gon1332/Development/west-test-project
=== Cloning manifest repository from https://gitlab.com/gon1332/west-test-project, rev. master into /home/gon1332/Development/west-test-project/.west/tmp
Initialized empty Git repository in /home/gon1332/Development/west-test-project/.west/tmp/.git/
Username for 'https://gitlab.com': gon1332
Password for<EMAIL_ADDRESS>warning: redirecting to https://gitlab.com/gon1332/west-test-project.git/
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://gitlab.com/gon1332/west-test-project
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
975ce7decd514ef0583814a4d1eff26e861c33f1 refs/remotes/origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Already on 'master'
cloning https://github.com/zephyrproject-rtos/west at revision master
=== Cloning west repository from https://github.com/zephyrproject-rtos/west, rev. master into /home/gon1332/Development/west-test-project/.west/west
Initialized empty Git repository in /home/gon1332/Development/west-test-project/.west/west/.git/
remote: Enumerating objects: 132, done.
remote: Counting objects: 100% (132/132), done.
remote: Compressing objects: 100% (79/79), done.
remote: Total 2246 (delta 64), reused 71 (delta 37), pack-reused 2114
Receiving objects: 100% (2246/2246), 636.78 KiB | 1.21 MiB/s, done.
Resolving deltas: 100% (1273/1273), done.
From https://github.com/zephyrproject-rtos/west
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
 * [new tag]         v0.1.0     -> v0.1.0
 * [new tag]         v0.2.0     -> v0.2.0
 * [new tag]         v0.2.0rc1  -> v0.2.0rc1
 * [new tag]         v0.2.0rc2  -> v0.2.0rc2
 * [new tag]         v0.2.0rc3  -> v0.2.0rc3
 * [new tag]         v0.3.0     -> v0.3.0
 * [new tag]         v0.3.0rc1  -> v0.3.0rc1
 * [new tag]         v0.4.0     -> v0.4.0
 * [new tag]         v0.4.0rc1  -> v0.4.0rc1
 * [new tag]         v0.5.0     -> v0.5.0
 * [new tag]         v0.5.1     -> v0.5.1
 * [new tag]         v0.5.2     -> v0.5.2
 * [new tag]         v0.5.3     -> v0.5.3
 * [new tag]         v0.5.4     -> v0.5.4
 * [new tag]         v0.5.5     -> v0.5.5
 * [new tag]         v0.5.6     -> v0.5.6
 * [new tag]         v0.5.7     -> v0.5.7
 * [new tag]         v0.5.8     -> v0.5.8
c724ee6a62b6b64ced0e832d0e3198c828406c4f refs/remotes/origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Already on 'master'
usage: west [-h] [-z ZEPHYR_BASE] [-v] [-V] <command> ...
west: error: argument <command>: invalid choice: 'post-init' (choose from 'init', 'update', 'list', 'manifest', 'diff', 'status', 'forall', 'config', 'selfupdate', 'help')

@gon1332 stick to v0.5.8 of west for now, master is undergoing changes. In your manifest:
west:
  url: https://github.com/zephyrproject-rtos/west
  revision: v0.5.8

Hi @carlescufi

@Laczen
Step 1. You create a west.yml in your main "downstream" repository, let's assume it's called "foo":
foo/west.yml:
west:
  url: https://github.com/zephyrproject-rtos/west
  revision: master

manifest:
  defaults:
    remote: laczen

  remotes:
    - name: laczen
      url-base: https://github.com/laczen
    - name: zephyrproject
      url-base: https://github.com/zephyrproject-rtos

  projects:
    - name: zephyr
      path: zephyr
      west-commands: scripts/west-commands.yml
      remote: zephyrproject
      revision: <whatever revision you want>
   <add projects here>

  self:
    path: foo

Step 2.
west init -m https://github.com/laczen/foo
west update

will give you a set of 2 repositories at the same level, zephyr and foo and all of the flash commands will still work.

thanks for this great tip, it worked for me. I have a related question on that.
According to the getting started guide  west zephyr-export command is required to export. So, I wanted to run that but when I type west command there is no zephyr-export cmd. I did some research on having a west command for my project and I developed my own script, so now I can run my command by west my-own-cmd. So basically my question is

to run zephyr scripts as the west commands now in my case what should I do, I mean how can I run west zephyr-export.  is it enough to address the zephyr script in my west-commands.yml file like this?

west-commands:
  - file: scripts/west_commands/commands.py
    commands:
      - name: netfeasa-cmd
        class: netCmd
        help: run commands for netfeasa
  - file: C:/zephyrproject/zephyr/scripts/west_commands/export.py
    commands:
      - name: zephyr-export
        class: ZephyrExport
        help: export Zephyr installation as a CMake config package

And also another question is that if I follow this instruction Most of the Zephyr modules are not installed unless I manually add these modules into my own my-project/west.yml file. I dont know why. Any suggestions will be appreciated. Cheers!

@zafersn the zephyr-export, build and flash commands are part of the zephyr tree, so you need to import the Zephyr tree from your own manifest. About modules not being installed, are you importing the zephyr manifest?

@carlescufi thanks for your reply.

so you need to import the Zephyr tree from your own manifest.

what do you mean exactly here Can you please elaborate on it?
you mean that just add the Zephyr into project lists? like this:
projects:
.
.
.
.
    - name: nrf
      repo-path: sdk-nrf
      path: nrf
      remote: ncs
      revision: v2.4.2
      import: true
    - name: zephyr
      repo-path: zephyr
      revision: main
      remote: zephyrproject.
      import: true
.
.
.

or you mean should I copy all zephyr manifest contents into my manifest file(west.yml)
BTW  I fixed the issue by adding import: true keyword into the manifest file. I am asking questions because  I am really wondering if I fixed the issue by doing it correctly or was lucky and everything worked luckily.
Thank you.

@zafersn you should not import both NCS and Zephyr in your manifest. In my opinion you should only import one or the other, since both come with a zephyr tree.


[Question] Can you set a static height in the nodes

Hello,
I'm trying to create a simple tree, but I don't need auto sizing at node level. So I'm trying to change the auto height using:

                         <Tree nodes={this.state.data} onChange={this.handleChange} >                             {({ style, ...p }) =>
{                                     createNodeRenderer([Expandable], p, columnIndex)                                 }
                             }                         </Tree>

but looks like the top: 40 * p.index. is not working on scrolling the tree, because I set a max height, my question is there is a way to set the a static node height?
Thanks,

Hey @PabloTheDarkLord there is nothing stopping that from happening, as you can see in the examples nodes will adapt to the heigh you use for the container of your nodes.
I can't understand that code as it isn't even formatted, but your css looks strange, you should not need any top or to position your nodes as absolute

I know it is closed:) but have the same problem (documentation update would be great to describe this task).
I have a Tree component with custom row :
                        <TreeNode
                          style={style}
                          node={node}
                          {...rest}
                          onClick={(): void => {
                            this.props.onHandleExpand(node);
                          }}
                          expanded={expanded}
                          expandable={expandable}
                          leaf={leaf}
                          selected={selected}
                          selectable={selectable}
                        >

style, node and ...rest comes from the Tree. The style tells the height of the element. In my case it is 28px. I need to change it, what drives that value? How can I change the height of the tree elements (I want all of them to be equal height, no dynamic resizing).


pkgs.vscode-extensions.matklad.rust-analyzer fails to build

Describe the bug
pkgs.vscode-extensions.matklad.rust-analyzer fails to build, with the errors:
$ nix build -f '<nixpkgs>' pkgs.vscode-extensions.matklad.rust-analyzer
builder for '/nix/store/3c70ni2db6x5y3jlcsjwk14npf5m1h2n-vscode-extension-rust-analyzer-0.2.751.drv' failed with exit code 1; last 4 log lines:
  unpacking sources
  unpacking source archive /nix/store/c5hzsmkddi1nk32mw7vldvyhfscigbjr-rust-analyzer-0.2.751-vsix/rust-analyzer.zip
  unzip:  cannot find or open /nix/store/c5hzsmkddi1nk32mw7vldvyhfscigbjr-rust-analyzer-0.2.751-vsix/rust-analyzer.zip, /nix/store/c5hzsmkddi1nk32mw7vldvyhfscigbjr-rust-analyzer-0.2.751-vsix/rust-analyzer.zip.zip or /nix/store/c5hzsmkddi1nk32mw7vldvyhfscigbjr-rust-analyzer-0.2.751-vsix/rust-analyzer.zip.ZIP.
  do not know how to unpack source archive /nix/store/c5hzsmkddi1nk32mw7vldvyhfscigbjr-rust-analyzer-0.2.751-vsix/rust-analyzer.zip
[0 built (1 failed)]
error: build of '/nix/store/3c70ni2db6x5y3jlcsjwk14npf5m1h2n-vscode-extension-rust-analyzer-0.2.751.drv' failed

Steps To Reproduce
Steps to reproduce the behavior:

Run nix build -f '<nixpkgs>' pkgs.vscode-extensions.matklad.rust-analyzer.

Expected behavior
The package builds without errors.
Additional context
The directory "/nix/store/c5hzsmkddi1nk32mw7vldvyhfscigbjr-rust-analyzer-0.2.751-vsix/" is empty. When I initially ran the build command, the output was different. It included something along the lines of "(0.0 MiB DL)", so it seems to have failed to download some data.
Notify maintainers

@oxalica
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
$ nix-shell -p nix-info --run "nix-info -m"
these paths will be fetched (0.55 MiB download, 2.68 MiB unpacked):
  /nix/store/07fzcdh37aa0gypf14rlhh67wbxp75rd-bash-interactive-5.1-p8-info
  /nix/store/131aq7qch2h8cd96nfqami97hq0kvhlk-bash-interactive-5.1-p8-man
  /nix/store/4fhkpf5cag2r0lwzhhfk9gv57h7yjyic-bash-interactive-5.1-p8-doc
  /nix/store/hkwbmwg2bzhrrjvwc1xassxcfy0ci76c-bash-interactive-5.1-p8-dev
  /nix/store/pybf1zwa09n15lc2dgnbpnm3a8jwiraq-nix-info
copying path '/nix/store/4fhkpf5cag2r0lwzhhfk9gv57h7yjyic-bash-interactive-5.1-p8-doc' from 'https://cache.nixos.org'...
copying path '/nix/store/hkwbmwg2bzhrrjvwc1xassxcfy0ci76c-bash-interactive-5.1-p8-dev' from 'https://cache.nixos.org'...
copying path '/nix/store/07fzcdh37aa0gypf14rlhh67wbxp75rd-bash-interactive-5.1-p8-info' from 'https://cache.nixos.org'...
copying path '/nix/store/131aq7qch2h8cd96nfqami97hq0kvhlk-bash-interactive-5.1-p8-man' from 'https://cache.nixos.org'...
copying path '/nix/store/pybf1zwa09n15lc2dgnbpnm3a8jwiraq-nix-info' from 'https://cache.nixos.org'...
 - system: `"x86_64-linux"`
 - host os: `Linux 5.13.19_1, void, noversion`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.3.12`
 - channels(a): `"home-manager, nixpkgs-21.11pre326545.9303cc04458"`
 - nixpkgs: `/home/a/.nix-defexpr/channels/nixpkgs`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

Might be fixed by  #142851.


Bug in InlineWindow()

I wrote a test to exercise the problem with InlineWindow().  Make sure that all possible occurrences of the base window/buffer get substituted, not just expressions.  I recommend auditing LoopIR to be sure they're all covered.

Oh, thanks!


Node version support

Will nodyn support node version 5.* ???? If not till which node version it is compatible?

@sathishceg thanks for your interest, but this project is no longer maintained.


[release-0.17] Bump sarama from v1.26.4 to v1.27.0

Proposed Changes

[release-0.17] Bump sarama from v1.26.4 to v1.27.0

/cc @matzew


'Option as member of some answer set'

The class 'option as member of some answer set' is currently a subclass of 'answer set.' However, an option that is a member of an answer set is not itself an answer set.

It looks like we fixed this at some point since I opened this issue. Both terms are currently undefined, but that is a separate matter. I'm going to go ahead and close this.


Update comparison section

From jaredwiltshire via prometheus-developers:
"The InfluxDB comparison highlights that Prometheus uses much less disk space than Prometheus due to its data storage model. However this seems to no longer be the case - https://influxdb.com/blog/2015/10/07/the_new_influxdb_storage_engine_a_time_structured_merge_tree.html
It also references a Github issue for InfluxDB regarding indexing which has since been closed."
I also believe we might want to include a few other monitoring and event-logging systems.

We should mention things like Sysdig, Nagios and Zipkin.

And Bosun I guess.

Expanded this a good bit recently.


Please provide binaries or a Dockerfile for building

Tools like yours have a target audience beyond Go developers. It should be made easy for those to get and use the tool.
Please have a look at my project's Dockerfile and Makefile to get an idea of what I'm talking about.
And/Or have a look at GoReleaser.
Thanks!

This is a package. It's not a cli tool. I don't know what "release" for non-Go developers there would be.

The README says:

The command line tool can be used as follows (assuming jwt is somewhere on $PATH):

This is a testing tool for the package itself. It would not be useful to those who are not developing the jwt source code. For the record, you don't need a Docker image or a Makefile to build a project like this. It's 100% in Go. All that's needed is to have Go installed.

This is a testing tool for the package itself. It would not be useful to those who are not developing the jwt source code.

Maybe this should be clarified in the README then.

For the record, you don't need a Docker image or a Makefile to build a project like this. It's 100% in Go. All that's needed is to have Go installed.

 But it's likely they already have Docker installed.

It's not exactly the world's most popular Go package ... :-)


ReadBuffer takes too long if compressed data > 90kb

What should I do if I don't know the uncompressed size? ReadBuffer takes too long if compressed data > 90kb with nil out, should I make a big enough out like this:
out := make([]byte, 1000000)
n, _, err := zr.ReadBuffer(message, out)
fmt.Printf("message read: %d, decoded message: %s, err: %v\n", n, out, err)
But how large should I make out? Is there any other method to decompress the data in one go?
edit: ReadBuffer will block if nil out

If your compressed packets are discrete and only slightly larger than the 90kB, your best bet would be to use go-libdeflate as it is optimized for these workloads. It is faster and easier to handle and fully zlib-compatible.
However, if you do not want to switch, make sure you have the latest version of zlib installed, as an old version might cause issues, especially if you encounter that blocking behavior.
If that also doesn't work, you can usually estimate the required size by multiplying the compressed size times your expected compression factor which is rarely higher than 10. E.g.:
compressionFactor := 10 // what you expect at most
out := make([]byte, len(message) * compressionFactor)

If that is not enough, you should check the error and if the input buffer was not large enough, you can create a loop that re-tries with larger input buffers. A common choice is to double the compressionFactor each try. This should be a last resort, though. Usually it suffices to estimate a compression factor.
I hope this answers this question.


Changed workflow to github runners from self hosted

#47 - This issue is other problem so i enabled legacy for this


not enough space in toolbox

i try to select a character but a character is in the edit button so when I try to edit it the character just edits the one under the edit button

fixed


[Enhancement] An RAII coroutine type

Search before asking

[x] I searched the issues and found no similar issues.

What happened + What you expected to happen
How about adding a new coroutine type co_resource ;)?
vector's blog post co_resource: An RAII coroutine
Implementation of co_resource in neo_fun
Reproduction way
Anything else
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

This method is not good for handling return values and exceptions

The design and intention looks a little bit weird to me. Since it looks like a generator which can only yield once.

The coroutine type serves as a more concise alternative to a regular RAII. Consider the following code:
//regular RAII
struct file_scope {
  std::FILE* file;

  file_scope(const char* path)
    : file(std::fopen(path, "rb")) {}

  ~file_scope() {
    std::fclose(file);
  }
};//warp the std::FILE* in a struct
int foo() {
  file_scope("hi.txt");  //create it
  //and then use it
  return 0;  //the destructor automatically close the file handle
}

//with co_resource<>
int foo() {
  co_resource<std::FILE*> cr = [](const char* path) -> co_resource<std::FILE*> {
    std::FILE* file;
    file = std::fopen(path, "rb");
    co_yield file;
    std::fclose(file);
  }("hi.txt");
  //and then use it, but through the co_resource<FILE*>;
  return 0;  //the resumed coroutine automatically close the file handle
}

By using the co_resource<>, we can simply get cleaner syntax when we just want a simple RAII handle. Also, we can express some complicated RAII scenes more easily.

But it is still odd that the coroutine type can only have exactly one co_yield and we don't have any method to constraint that. Also I feel it reads better to have something like on_exit(callable).

Close as not planned.


turn fast image back on

[x] ios
[x] android

This fixes (again) large gif crashing

@keybase/react-hackers


SNMP Integration Docs - Corrections Needed

When comparing the documentation in the site with what's present in the code on Github, we state that there is a host attribute, which I'm assuming should actually be bind. We should also add the examples from the trap extension into the integration doc.

I'm not sure a change is needed here but maybe I misunderstand.
The Enterprise integration sends traps to an SNMP agent, whose DNS name or IP address is specified via thehost attribute.
Conversely, the snmp-trap extension acts as an agent for receiving traps and thus has a bind attribute for specifying an IP address to listen on.

Ah! Ok. Yeah, I'd misunderstood and conflated the integration & the extension.


Add NOAA C-CAP colormap

Description
Add colormap for NOAA C-CAP dataset. Here's the stactools package.
Type of change

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
It hasn't. No tests for colormaps AFAICT.
Checklist:
Please delete options that are not relevant.

[x] I have performed a self-review
[x] Code is linted and styled ~(./scripts/format)~ (black pctiler/pctiler)

@mmcfarland @lossyrob ready for re-review.


Question: ESP32-C3? (EUB-57)

Would this USB->UART bridge firmware work on a ESP32 C3 device?

Currently only ESP32-S2 and ESP32-S3 are supported, meaning that we tested only on boards with these chips.
I don't see why it couldn't work on ESP32-C3. Maybe you will need to do some minor modification in the code.

AFAIK, only chips with the integrated USB peripheral are supported (ESP32-S2 and ESP32-S3).
ESP32-C3 only has USB-Serial/JTAG, which is implemented in HW and cannot be reprogrammed, therefore cannot support the esp-usb-bridge project.

Thank you @radimkarnis for the correction.

To add, it is possible to use ESP32-C3 as a USB-serial-to-UART adapter, with the limitation that the DTR and RTS signals of the virtual serial port will control ESP32-C3's reset & download mode, and can't be propagated outside the chip.
This design limitation was fixed on ESP32-S3. It is possible to use ESP32-S3's USB_SERIAL_JTAG peripheral to implement a USB to UART JTAG bridge mostly in hardware. The software only needs to forward the data between USB_SERIAL_JTAG and UART interfaces.
However, unlike this project, that solution wouldn't be able to support other USB classes, such as Mass Storage.

Thanks for the responses.  I also found this project, which I've been trying to use.  But so far, I can't get it to work.  I'm going to keep looking at it.

Looks like that project should indeed work! Make sure that your terminal program is not setting the DTR and RTS signals of the virtual serial port, as that would reset the ESP32-C3.
To debug the issue, I would suggest hooking up another USB-Serial converter to ESP32-C3's UART, and see the log output there while you are trying to connect the USB port to PC.

Thanks @igrr !

@marciogranzotto Can you clarify which this you mean? esp-usb-bridge project or https://github.com/aliengreen/esp32_uart_bridge?
I think the former won't work (again, no USB_OTG peripheral on C6) but the latter should work (C6 has a USB_SERIAL_JTAG).


test/test_test.c: fix wrong BN test [and rearrange tests a little bit].

why did this pass?  is it because @pauli-oracle used | and not || >

why did this pass?

It didn't. The failure was masked by run_tests.pl. All failures were masked, i.e. CI reports were coming out green even if there were failures. Currently there is one more failure in test_secmem...

AHA!  Thanks.  Look at #3455 which is ready to merge.

I merged this because I  also merged #3455 so maybe now we get clean builds?


feat: Improve the usability of moving posts through Kanban Boards

Is your feature request related to a problem? Please describe.
We want to make the funding process transparent, and currently, we use Kanban Board to represent the state of the sponsorship request. The process has multiple stages, and currently, the funding team has to learn how to edit posts to remove one label and add a new label to move a post from one Kanban Board column to another.
Describe the solution you'd like
There is no clear solution yet. We will revisit it once we collect more requirements.
Describe alternatives you've considered

A simple button "Move to X" that will update the labels accordingly in a single click. See #47 for the details and the reasons we did not go further in that direction.
We discussed with @ori-near that currently there are too many columns in the Funding board, and it would be great to hide the unnecessary complexity through the introduction of special sponsorship fields that would represent the timeline as a checklist while we will keep only 4 high-level funding states: New Funding Request, Application, Processing, Funded. With this change, we will need to design more like an end-to-end solution to the checklist and status updates.
We previously talked about drag-n-drop UI, but it is not that easy to implement with the current NEAR Social.

Additional context
Permissions should be taken into account, so we don't confuse Gigs Board users who don't have permission to update the labels with this button (see #10).

@ori-near is this ticket still relevant? I don't see any kanban board now


What is the behavior if Redis is unavailable?

From experience:
lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline
    raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR)
redis.exceptions.ConnectionError: Connection closed by server.

Is there any plan to fix this?

what i did is just add an exception that return 0 for pexpire if redis is unavailable in depends:RateLimiter class:
    async def _check(self, key):
        redis = FastAPILimiter.redis
        try:
            pexpire = await redis.evalsha(
                FastAPILimiter.lua_sha, 1, key, str(self.times), str(self.milliseconds)
            )
        except:
            logger.exception("Redis is unavaible - ratelimiter disabled")
            return 0
        return pexpire

prolly not the best way, it was a 5minutes craft for when I have maintenance to do, hope that helps,


Support ipsec left/right id

Adding some details here as I did not know much about ipsec leftid and rightid.

LEFT_ID and RIGHT_ID indentifier
LEFT_ID and RIGHT_ID are identifiers used in VPN configurations, particularly within IPsec setups, to specify the identities of the negotiating peers—typically the VPN client (LEFT_ID) and the VPN server (RIGHT_ID). These identifiers are used to ensure that the IPsec tunnels are established between the correct entities and can be validated during the IPsec negotiation phase.
Definition and Usage

LEFT_ID: This identifier represents the identity of the local endpoint of the VPN connection, usually the VPN client. It can be an IP address, an email address, or a distinguished name (DN) depending on the policy requirements of the VPN setup. LEFT_ID is used in the IPsec configuration to define how the local entity (client) is recognized and authenticated by the remote peer (server).

RIGHT_ID: Similarly, RIGHT_ID is the identifier for the remote endpoint of the VPN connection, typically the VPN server. Like LEFT_ID, it can also be an IP address, email address, or DN. It is used to specify and authenticate the identity of the VPN server to which the client is connecting.

Purpose in VPN Configurations
The use of LEFT_ID and RIGHT_ID allows for flexibility in how VPN peers authenticate each other. They are particularly useful in scenarios where the IP addresses are dynamic or when additional security measures are needed to validate the identities of the entities involved beyond just IP addresses. These identifiers help in scenarios where:

The peers have dynamic IP addresses which can change, such as when using DHCP.
Enhanced security is required, and identities need to be tied to specific users or devices beyond just their network address.
The VPN setup involves complex policies where different clients may have different access privileges or roles.

Practical Implementation
In a typical IPsec configuration file, you might see settings like these:
<EMAIL_ADDRESS><EMAIL_ADDRESS>
Here, leftid and rightid are configured as email-type identifiers, but they could also be set as IP addresses or any other form depending on the security requirements and the capabilities of the IPsec implementation.
By setting these identifiers, the VPN configuration ensures that the connection can only be established between entities that match these defined IDs, enhancing the security and integrity of the VPN connection.


Elisp manual packages: use melpabuild

Description of changes
Tracking issue: https://github.com/NixOS/nixpkgs/issues/278925#issuecomment-1879695673

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/)
24.11 Release Notes (or backporting 23.11 and 24.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.

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

When changing the version format, do not forget to change the update script to upstableGitUpdater.
In addition, free free to add update script.

I discovered that melpaBuild does not accept certain files  that go too much outside the melpa format.
But the others are working fine!

I discovered that melpaBuild does not accept certain files that go too much outside the melpa format.

Could you provide an example?

Could you provide an example?

I am bumping on them while updating this PR. Here is a list so far:

llvm-mode

List updated at 2024-07-15

@jian-lin now this PR is read for being reviewed!


Typos in Readme

line:
const pointAtLevel14 = point.parent(s2Level);
should be:
const pointAtLevel14 = point.parent(s2level); // both lowercase l

line:
console.log(coveringCells.contains(new s2.CellId(s2LatLong)));
should be:
console.log(coveringCells.has(new s2.CellId(s2LatLong)));

Want to open a PR?

I can. Do you have a branch or tag you prefer me to use?
On Thu, Dec 29, 2022 at 7:56 PM Jeff Kao @.***> wrote:

Want to open a PR?
—
Reply to this email directly, view it on GitHub
https://github.com/radarlabs/s2/issues/54#issuecomment-1367667342, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEVLYBQ2NEEBEN6P7DBA63WPYXKLANCNFSM6AAAAAARSJUY2U
.
You are receiving this because you authored the thread.Message ID:
@.***>

We don't have a strict convention for branch names right now. As long as
this issue is back linked in the PR, we should be good to go! :)
On Thu, Dec 29, 2022, 5:31 PM Steven Endres @.***>
wrote:

I can. Do you have a branch or tag you prefer me to use?
On Thu, Dec 29, 2022 at 7:56 PM Jeff Kao @.***> wrote:

Want to open a PR?
—
Reply to this email directly, view it on GitHub
https://github.com/radarlabs/s2/issues/54#issuecomment-1367667342, or
unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AAEVLYBQ2NEEBEN6P7DBA63WPYXKLANCNFSM6AAAAAARSJUY2U
.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/radarlabs/s2/issues/54#issuecomment-1367676087, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFUSG2IRC3KT7B7SMXRXWTWPY3PNANCNFSM6AAAAAARSJUY2U
.
You are receiving this because you commented.Message ID:
@.***>

Okay, just used your current branch. Just committed the update for you to review.

it may actually require a fork and a PR against this repo for it to work. I can update it in my existing PR.

That will work. It’s a very small change.
On Fri, Dec 30, 2022 at 2:21 PM Jeff Kao @.***> wrote:

it may actually require a fork and a PR against this repo for it to work.
I can update it in my existing PR.
—
Reply to this email directly, view it on GitHub
https://github.com/radarlabs/s2/issues/54#issuecomment-1368061314, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEVLYHFZGK5WTY3CV5PP63WP4Y5BANCNFSM6AAAAAARSJUY2U
.
You are receiving this because you authored the thread.Message ID:
@.***>

Fixed: https://github.com/radarlabs/s2/commit/96c395af13f74d449e3ce7f8d1a58a8fde08e350


Add DOOM 1993

Adding in Doom. I've discussed with Daivuk, the maintainer, already, and they gave general approval for this. The thing generates, and the options + triggers appear to work properly.

This seems good to merge.


Forward kwargs directly to h5py

Travis complains:
h5io/_h5io.py:120:80: E501 line too long (80 > 79 characters)

Also can you add a test that you can do what you originally wanted to with the format/multiple read?

Codecov Report

Merging #41 into master will decrease coverage by 2.45%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #41      +/-   ##
==========================================
- Coverage   94.47%   92.02%   -2.46%
==========================================
  Files           2        2
  Lines         489      489
  Branches      109      109
==========================================
- Hits          462      450      -12
- Misses         14       24      +10
- Partials       13       15       +2

Impacted Files
Coverage Δ

h5io/_h5io.py
90.95% <100%> (-1.65%)
:arrow_down:

h5io/tests/test_io.py
95.16% <0%> (-4.84%)
:arrow_down:

Continue to review full report at Codecov.

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


WSL starting directory not Linux home for fresh WSL instance

Windows Terminal version (or Windows build number)
1.8.1521.0
Other Software

Windows 10 Pro (21H1, 19043.1147)
Ubuntu-20.04 (Linux amd 5.4.72-microsoft-standard-WSL2 # 1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux)

Steps to reproduce
Ubuntu-20.04 is the default distro. Windows Terminal is set to start up at boot. Settings:

Command Line = wsl.exe -d Ubuntu-20.04
Starting Directory = //wsl$/Ubuntu-20.04/home/username

Expected Behavior
Ubuntu WSL starts up in the Linux home directory ~ (= /home/username)
Actual Behavior
For fresh WSL instances, Ubuntu WSL starts up in the Windows home directory: /mnt/c/Users/username
This is true for every WSL instance in Windows Terminal at boot, and every other time it has to start a fresh WSL instance (after closing it and waiting a while until the WSL instance is killed). When the WSL instance is already running, it does work as expected. I do not see a way to always start up WSL in the Linux home directory. This is especially important since WSL2 and its greater performance difference between Linux and Windows file systems.
There have been numerous issues regarding the Starting Directory that have now all been closed. I cannot find a reference to this specific issue, though: that it would be a bug or unexpected result to not have the //wsl$ path available for fresh WSL instances. I think it is. It is definitely unexpected to me. There is one comment describing the behaviour: https://github.com/microsoft/terminal/issues/592#issuecomment-629223710

Thanks for the report! This is actually already being tracked by another issue on our repo - please refer to #7197 for more discussion.
/dup #7197


HOW TO BUILD A RANDOM PASSWORD GENERATOR APP WITH HTML CSS AND JAVASCRIPT

We ask that you please be patient as our team works through approving and publishing all articles/tutorials in a timely manner. Allow 1-3 days for a topic to be reviewed and/or approved - allow 3-7 days for an articles to be reviewed and/or published.
Be sure to visit our Resources Page for tools, resources, and example articles to go over.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
NOTE: We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
We're looking for the first 2-3 paragraphs of the article that appropriately summarize what your article will be about.
Proposed title of article
HOW TO BUILD A RANDOM PASSWORD GENERATOR APP WITH HTML CSS AND JAVASCRIPT
Introduction paragraph (2-3 paragraphs):
In this article, readers will learn how to build a random password generator application with HTML, CSS, and JavaScript.
Before we dive in, you will need to know what a "password generator application" is all about.  This is an application that can automatically generate passwords randomly for you. These generated passwords consist of alphabets, numbers, and symbols. The main reason for this application is that it helps the user create a very strong password that cannot be easily guessed or bruteforced.
Key takeaways:

The reader will learn how to successfully build a password generator application with pure HTML CSS AND JAVASCRIPT.
The reader will learn about the createElement method, the execCommand method, and how to floor a decimal value in Javascript.
Lastly the reader will understand what is an ASCII Character table and why we need it for the application.

References:
Nil.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

seems like a cool topic - please be sure to check (if you haven't already) that this topic does not conflict with any past publshed works.
👍
Approved @destiny251

@destiny251 just wanted to follow up on this topic as I'm clearing up the queue where possible? Can be re-opened when needed.


Is it possible to create image supporting mac m1?

I'm trying to run the setup and unfortunately i get ErrImagePull and ImagePullBackOff statuses on the jmeter-slaves pods.
from the pod description i see the issue is "Failed to pull image 'rbillon59/jmeter-k8s-base:5.5': rpc error: code = Unknown desc = no matching manifest for linux/arm64/v8 in the manifest list entries"
I am running it meanwhile on minikube locally using docker
any idea how can i fix/bypass this?

Should be fixed with https://github.com/Rbillon59/jmeter-k8s-base/pull/6
Could you try ?

@NirGrotel Any update ?

Check in your Kubernetes JMeter deployments (slave and master) definition if the image pull policy is set to Always
In Dockerhub, the image are now built for both arm64 and amd64 (from Jmeter 5.1)

As I'am actually running it on my m1 mac, I close this issue


Protobuf 3.18.0 does not support python 2.7

Pinning it to prevent test failures on py27.

@xiangyan99 windows 2.7 has gone green 👍


Front Door Service is missing

Please add Front Door to this page.  I would recommend using fd as the name prefix.

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

ID: c6dff4c3-d2d7-3825-d753-fc7338004f43
Version Independent ID: b2c190ac-1d2e-93fc-caee-d59c278f549a
Content: Recommended naming and tagging conventions - Cloud Adoption Framework
Content Source: docs/ready/azure-best-practices/naming-and-tagging.md
Service: cloud-adoption-framework
Sub-service: ready
GitHub Login: @BrianBlanchard
Microsoft Alias: brblanch

Thanks for reporting - this issue is under review.  This is a Microsoft Internal DevOps Bug ID AB#218626

This issue has been resolved. Thanks!


Add building instructions and links to posts and source code in README

Build fails because of rust-lang-nursery/rand#91 and rust-lang/rust#30713


AttributeError in get_agent_data_from_coord_iter when not all grid cells contain agents

I've encountered an issue that arises when processing grid data using the get_agent_data_from_coord_iter function. The problem occurs specifically when handling empty cells in the grid.
Issue Description:
The model.grid.coord_iter() method returns a generator that yields tuples for each grid cell. These tuples are in the format ([<agent object>], (x, y)) for occupied cells and ([], (x, y)) for empty cells.
In the get_agent_data_from_coord_iter function, there is an attempt to access the __dict__ attribute of the agent object to serialize it to JSON. However, when the cell is empty, the agent part of the tuple is an empty list ([]), which naturally does not have a __dict__ attribute. This leads to an AttributeError.
Example of Problematic Output:
([], (3, 5))
AttributeError: 'list' object has no attribute '__dict__'

Proposed Solution:
The function needs to handle the case where the agent part of the tuple is an empty list. A simple check to see if the agent is a list and non-empty before attempting to access its __dict__ attribute would suffice.
Here is a potential fix:
def get_agent_data_from_coord_iter(data):
    for agents, (x, y) in data:
        if agents:  # Checking if the list is non-empty
            for agent in agents:
                agent_data = json.loads(
                    json.dumps(agent.__dict__, skipkeys=True, default=str)
                )
                agent_data["x"] = x
                agent_data["y"] = y
                agent_data.pop("model", None)
                agent_data.pop("pos", None)
                yield agent_data

This modification ensures that the function only tries to access the __dict__ attribute for actual agent objects and gracefully skips over empty cells.

It would also probably be good to check what happens if multiple agents are on a single cell.


move p5 question from FAQ to p5 specific pages

In the FAQ:
Why is wantarray or want gone? Can I return different things in different contexts?

We could also split the page and create a p5 specific FAQ...

It's place in the language specific pages (like https://docs.perl6.org/language/5to6-perlfunc). The only reason it would deserve a FAQ entry would be in a security contexts, but I woudn't bother to single that out.


Feature request: Update tag on the built package.

I have the following scenario.
I want to lint, test and build in prod mode all the affected packages beforehand because before going into release mode and creating tags and updating the package.json or building the docker image, etc, I want to be sure that everything is in order.
The issue is that while the tag is created and pushed to the repository correctly, the package was built before this, so it doesn't have the dist/libs/lib-name/package.json updated.
> nx run nx-appwrite:release
✔ bumping version in /builds/doesrobbiedream/nx-core/libs/nx-appwrite/package.json from 0.0.2 to 0.1.0
✔ outputting changes to /builds/doesrobbiedream/nx-core/libs/nx-appwrite/CHANGELOG.md
✔ committing /builds/doesrobbiedream/nx-core/libs/nx-appwrite/package.json and /builds/doesrobbiedream/nx-core/libs/nx-appwrite/CHANGELOG.md and all staged files
✔ tagging release nx-appwrite-0.1.0
ℹ Run `git push --follow-tags origin HEAD` to publish
📦 Skipping build
+<EMAIL_ADDRESS>npm notice
npm notice package<EMAIL_ADDRESS>
So I ended up with the tag 0.1.0 on my repository, but the package has the previous tag: 0.0.2.
I think that when this happens,
bumping version in /builds/doesrobbiedream/nx-core/libs/nx-appwrite/package.json from 0.0.2 to 0.1.0

Could it be that semver updates the package.json inside the /dist folder (which is the one that for example ngx-deploy-npm is using to deploy)?
How off-track would that be? I mean, for now, I can just set the noBuild: false on the deploy and re-build it.
I definitely don't want to lose the previous stage of checking if the build goes well.
I understand that is really sketchy practice to update the distribution after build... but I don't know how can this be achieved.

@nicolashzmor What about rebuilding after the release step? The downside is that you build twice (one before the release to check the build correctness and one after to publish an updated package.json). That's what we do in this repo.
One other way would be to use the ngx-deploy-npm --package-version option along with post-targets interpolation, this option will write to your distribution package.json. Something like:
    "version": {
     "executor": "@jscutlery/semver:version",
     "options": {
       "postTargets": ["my-project:publish"]
     }
   },
   "publish": {
     "executor": "ngx-deploy-npm:deploy",
     "options": {
       "access": "public",
       "packageVersion": "${version}" // <- overwrite dist package.json
     }
   }
 }

But I think I would prefer the first option, building twice as you are sure to publish exactly what's expected.

Yeah, I'm actually doing as you are. I like the packageVersion idea though, but again... Is a little bit sketchy to touch the dist once is built.
Thank you for everything! :)
Everything seems to be working right now.

Yeah, I'm actually doing as you are. I like the packageVersion idea though, but again... Is a little bit sketchy to touch the dist once is built.
Thank you for everything! :)
Everything seems to be working right now.


Option to download all rooms you are in

I am in about 500 Rooms, and would like to archive most of them.
Is there an easy way to download all rooms, you username is logged in?

Not yet, I'll get on it.

Support for this has been added. Just use the --all-rooms option. You might want to wait until issue #3 is resolved with that many rooms though.


Two icons in taskbar (Windows)

I am not sure if other people face the same issue or not.
When I launch the atom it shows two icons.
Here is the image:

I beleive you can fix this problem by removing all icons from the taskbar, then open Atom and then pin the opened instace of Atom to the taskbar.
I’m not sure, but maybe the (in you screenshot) shortcut to the left is a shortcut to the updater (which has the same icon) and if you click that it updates Atom and then opens the “real” Atom. Windows thinks it is a different program and thus creates the extra icon. Again, I’m not sure about that but I know it works like that for some programs.

I believe you can fix this problem by removing all icons from the taskbar, then open Atom and then pin the opened instace of Atom to the taskbar.
I have tried this, but after trying this the problem still exists.

What are the locations of both executables? You can view them by right-clicking Atom, then right-clicking the "Atom" field again and then clicking Properties (in the picture Eigenschappen). There you will be able to see from which executable the item in the taskbar really is.
Can you post those two executable locations? Maybe that gives more insight in which executables those items on the taskbar are.

Feel free to keep discussing how to get rid of the duplicate pinned icon here @mittalyashu @mpboom (thanks again for lending a hand),  but I'm going to go ahead and close this since it's a duplicate of https://github.com/atom/atom/issues/14813.

Sure, @rsese. But I was unaware of this (issue)[https://github.com/atom/atom/issues/14813]


Fix activeVoices erase

Trivial PR to fix a Segfault when an active voice must be erased while iterating it for ids
(Seen on Linux using GCC)
The fix is to simply copy the activeVoices container, iterating on the copy, then erasing the main container

@nsauzede Thanks for contributing! Merging this.


sap.ui.model.odata.v2.ODataModel

Congrats for the great new OData Model!
I just have played around on our HANA with OData Services from CoreDataServices.
The new badgeMode works by default. Maybe also the TwoWay Binding would be a good default.
The problem is that the Updates are always using the full payload (not only changed attributes).
The update is done using MERGE, but the complete DataSet is transfered to server.
Inside the model the hasPendingChanges works well, also the changed Props are correctly found.
From my point of view, update should only transfer properties that have been changed,
or am i wrong?
I have created a collection Users thats maps 1:1 to expand property UserAccount which depends on Accounts.
The view is binded to /Users with an $expand=UserAccount.
The UserAccount will not be directly bindable as documented, but binding a sub view fragment to /UserAccount(ID) will do the job for me.
Now i can use oModel.submitChanges() and User and also UserAccount properties will be updated,
but always the whole DataSet is transported.
I also got to know, that the User aggregation force an read call on the server after update while the UmeAccount update (on the expanded node) will not fetch an read after update?!?
This is currently maybe also an issue.
Do you have any addtional docu on the new
mBatchGroup{} and the relation of badgeGroup and changeSet?
I also miss a feature to rollback the changes for specific entities.
I think the resetChanges(aKeys) globally rejects all changes, but i think a feature like a rollback on badgeGroups or something like that would be useful.
In my case i have something like
var mGroup = {
"DataDictionary": {
batchGroupId: "SYS",
changeSetId: "?",
single: true
}, {
"Users": {
batchGroupId: "UME",
changeSetId: "?",
single: true
}, {
"Accounts": {
batchGroupId: "UME",
changeSetId: "?",
single: true
}
}
In this case i would only like to the corresponding binding for User and Account
resetChanges("UME")
But the first step is a huge step into the upcomming posibilities.
Cheers Holger

Hi Holger,
thanks for your message and improvement suggestions! I've informed the colleagues working on the v2 model and they will look into these. Presently, the updates indeed always send the complete entry, so this works as designed - at least for this version - so I can confirm it's not just a bug you are facing.
As for more extensive documentation, this is currently in the making. We'll keep you posted about it.
Kind regards,
Christiane

Hello experts, i'm using odata model v2, i've got a question, I have 1 to M relationship between 2 entities, I populate this data using $expand option in SAPUI5, the M entity name is ApprCategorySet, but the navegation property name is ToApprCategory (inline items), i bind my table to ToApprCategory navegation property, when i delete a row the program tries to call APPRCATEGORYSET_DELETE_ENTITY what is normal, but after that tries to call APPRCATEGORYSET_GET_ENTITYSET, but I need to refresh from the principal entity to the M entity, how do I achieve this.
Thanks in advanced.

HI Jjteran,
the dataset are internally stored as an flatened array concerning their keys, so they do not represent directly the 1..M assoc. What is your problem with deleting? i thinki this would be only problemativ on update if you do not have a category services. Currently deep insert/updates are also not supported ans should be done manually on the entity itself.
If the v2 OData does not fullfill your needs, maybe you need to attach events requestCompleted or batchrequestCompleted and manually trigger your reload on principal entity (maybe by replacing binding).
I am currently using 1::1 binding and also have to manually take care on saving root and depended entities independently.
Cheers Holger

Hello hschaefer123.
Thanks for your quick reply, finally i had to implement GET_ENTITYSET method to get data after deletion, now I am using batch request to send APPRCATEGORY entity data to the backend using v2 Odata and CHANGESET methods, this works well, but the records deleted doesn't disappear inmediatetly from my sap.m.table, and just dissappear when method submitChanges() is called. I tried deleting programatically from deleting button event, but no success with this. This same logic was working when the changes are inmediately posted to the backend (when not in change set batch). Please may be you know how to make batch changes that could be reflected inmediately in my view, because i can't wait to refresh the view when the save button is pressed.

Again i appreciate the help you could give me.

Are you on 1.28.2?
If not, play around with the oData params.
oDataServiceConfig : {
serviceUrl : "/uniorg/bonvendo/uis/MODUL/SUBMODUL/{launchPadId}.xsodata",
defaultCountMode : "None",   // None|Inline, None for fulltext search
sizeLimit : 500,
useBatch : false,
//deferredBatchGroups : ["changes"], // since 1.28.2.default
// changeBatchGroups default : {"" : {batchGroupId : "changes", single : true}}
/
changeBatchGroups : {
"*" : {
batchGroupId : "changes",
changeSetId: "ID",
single : true
}
},
Before 1.28.2 i had to overwrite the deferredBatchGroups to get such a behavior!
some params are in constructor
var oODataModel = new sap.ui.model.odata.v2.ODataModel(sServiceUrl, {
useBatch : mConfig.oDataServiceConfig.useBatch,
refreshAfterChange : mConfig.oDataServiceConfig.refreshAfterChange
});
some are/are not
oDataModel.setDefaultBindingMode("TwoWay");
oDataModel.setSizeLimit(mConfig.oDataServiceConfig.sizeLimit);
oDataModel.setDefaultCountMode(mConfig.oDataServiceConfig.defaultCountMode);                oDataModel.setChangeBatchGroups(mConfig.oDataServiceConfig.changeBatchGroups);                oDataModel.setDeferredBatchGroups(mConfig.oDataServiceConfig.deferredBatchGroups);
This way i was able to control insert/updates/deletions (with auto updating the binding)
if using TwoWayBinding (not the default)
Maybe this helps

Thanks Holger. I'm using sapui5 version 1.26.10 and using two way binding, when you say overwrite is that even if I set this parameters in constructor, I have to set using the setter methods as well? besides I can't see if you are using refreshAfterChange = false (I suppose). I also see that you set the useBatch = false, with this value it doesn't work submitChanges() method.

Regards.
Jhon Jairo Teran

Hello Holger, in post https://github.com/SAP/openui5/issues/420#issuecomment-98632762 they tell me that I can't have inmediate auto updating the binding with TwoWay binding and deffered batch changes, always I have to wait until submitChanges() method to refresh. Finally could you do some workaround to achieve this?
I apologize for the inconveniences but, I'm really stuck with this,I don't know if using a combination of json model and odata model I could get this to work.
Kind regards.
Jhon Jairo Teran.

Hello. So what is the right way to perform this action?


Users' Meeting 2020 prep tracking issue

https://nsls2cfnusersmeeting.bnl.gov/workshops/workshop.aspx?year=2020&id=163
Content we will present:

[ ] Data Broker v2 notebook @danielballan @tacaswell
[x] XAFS notebook #51 @danielballan @bruceravel
[ ] PDF notebook #44 @danielballan @DanOlds
[x] Xarray notebook #53 @tacaswell

Other stuff:

[ ] Deploy backup k8s @stuartcampbell
[ ] Plan introductory spiel
[x] Ensure local installation instructions are correct #56 @mrakitin @JunAishima @stuartcampbell

Extra credit:

[x] Use caproto with faster velocity. @MikeHart85
[ ] Use databroker in the NIST-provided notebooks #61 @tacaswell
[ ] Update stale content in case people go off the path and look at other notebooks. @JunAishima

https://github.com/bluesky/tutorials/pull/56 is closed, I've checked the corresponding item.


[UI/UX] align login page to center!

before:

after:

/assign

@Gaurav-Verma07 anyone working on this issue ?


Unit testing

write tests for every reduction. build an input graph and an expected output graph, run a reduction, and compare the output. test single steps, and total reductions. test that adding a vector to a scalar errors. write tests that dont pass yet but will pass, for example test that adding constants 2 + 1 folds to constant 3.

Should we close this? Maybe create a separate issue for the generalized constant folding


FE doesn't respond if BE is restarted

Describe the bug
We are running JTL reporter on ECS, using fargate. Each container is running independently.
When the BE container restarts, the FE can sometimes not function (i.e. display a white screen on the UI) until it is restarted.
To Reproduce
Restart BE after all containers are up and functional.
Expected behavior
The FE to auto-recover from losing connection to the original BE.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
To work around the hardcoded be value in nginx.conf we are running the below command on startup.
  command = [
    "/bin/sh",
    "-c",
    "sed -i 's/server be/server be.jtl-reporter.local/' /etc/nginx/nginx.conf && nginx -g 'daemon off;'"
  ]

Did JtlReporter make you happay in any way?
Answering this question is not required, but if you have anything positive to share, please do so here.

Hi @mcleodj.
Do I understand it correctly that if you restart the BE, the FE will never reconnect to the BE again?
Is this behaviour specific for your current setup or when running it using docker-compose?

That is correct.
I don't know if this is specific to running this on ECS or not as this is the only place that I've run the app.

I will try to reproduce it locally, but my guess it's specific to your setup, as it looks like something had changed in networking after you restarted the application.

It is actually an nginx "issue" (actually behaving by design). Nginx caches the upstream IP address until reload or restart. My options here are to either put the BE behind a load balancer with a persistent IP or to use the resolver directive in nginx.
Either way, not an application problem, thanks for looking anyway.


Add rules for remaining Linux libc functions

We could easily autogenerate them, but we'll still have to manually classify and tag them.
We should only include glibc functions that get a manpage, and make sure the metadata points to those manpages.

Going to close this for now as we're focused on libc calls that appear in malware.


Passing values into tween onStart/onComplete

There should be a way to pass arguments into the functions called in tween.onStart() and tween.onComplete(). For example, I'm chaining multiple tweens from paths returned from A*:
findPath: function(chara, tileX, tileY) {
  [...]
  var started = function(arg1, arg2) { console.log(arg1, arg2); };

  this.pathfinder.setCallbackFunction(function(path) {
    var speed = (32 / chara.speed) * 1000;

    path         = path || [];
    chara.tweens = [];

    for(var i = 0, plen = path.length - 1; i < plen; i++) {
      var pathX = path[i + 1].x * 32;
      var pathY = path[i + 1].y * 32;

      chara.tweens[i] = game.add.tween(chara.body).to({ x: pathX, y: pathY }, speed, null, false);
      chara.tweens[i].onStart.add(started, i); // This is where I'd like to pass the tween's array position

      if (i > 0) {
        chara.tweens[i - 1].chain(chara.tweens[i]);
      }
    }

    [...]
}

Logged values are: arg1 = the character.body object, arg2 = null (should be the value of "i" from the loop). This is needed so I can set a "currTween" property on the character object, and put a block of code in my update function to add custom collision detection and pause/resume chara.tweens[chara.currTween].

I don't like lewster32 solution, it's OK in some situations, but if "i" changes before the tween ends you will get an error.
I prefer this way:
    var myTween = game.add.tween(tweenTarget);

    myTween.to({
        alpha: 0
    }, 1000, Phaser.Easing.Quadratic.easeOut);

    myTween.onComplete.add(function (currentTarget, currentTween) {
    // Here currentTarget is a reference to tweenTarget, and currentTween is a reference to myTween,
    // even if I assign other values to tweenTarget and myTween before tween ends.
        tweenEnd(currentTarget);
    });

    myTween.start();

If you need reference to a property that is not in your tween target you can assign it dynamically before tween start like this:
    tweenTarget.property = whatever;

Even though closed I often find myself using IIFE immediately-invoked function expression with phaser  in this situation.
lets say I have a loop that is firing off some tweens and I want onComplete to do something with the original object.
What you do is have an outer function that executes immediately returning another function. The inner function will contain a reference to object as it was at the time it was called.
for(var i=0;i<some_array.length;i++){

 var some_item=some_array[i];// we want some_item but because of the loop this will keep changing
                            //and we have no idea what it will be when the tween completes

 //set up a tween or it could be a timer or an event or any thing else that will do something
// at some point in the future
 var myTween = game.add.tween(tweenTarget);
   myTween.to({
        alpha: some_data
    }, 1000, Phaser.Easing.Quadratic.easeOut);

  //here is the magic.  setup the callback as usual using an anonymous function
myTween.onComplete.add(function(magic_var){

         //the scope of this outer anonymous function contains magic_var.
         //We will force the outer function to invoke immediately
         // which will return another anonymous function

           return function(){
                //this inner anonymous function is where our actual callback lives.
                //Because it is defined inside the scope of the outer function it can access
               //magic_var
                var X=magic_var.some_data;
                //magic_var contains the value passed to it when the outer function was invoked
                //and of course we will pass some_item in
           };

  }(some_item));  //the brackets () causes the outer anonymous function to be invoked immediately
                      //which captures some_item inside magic_var - in fact it means magic_var will hold.
                      // a reference to the some_item object used when the function was called

                     //onComplete now contains the inner function which contains the some_item object
                    // as it was at the time it was created accessible via magic_var
}


tabeview image navigation nativescript angular

how can i tab on an image inside a tabview stacklayout then it navigate me to a another file(page)
i have no title coz am using an image for that
any ideas on that????????????

duplicated with #4246


Fix #40 Update semantic to v1.4.0

Coverage remained the same at 100.0% when pulling 0bac7889fa19dcb13a727730af382c161058f81f on issue_40_update_semantic_to_v140 into 7779f44bd37dde29f1c3e5c51fe90dfe3d19f710 on master.

Coverage remained the same at 100.0% when pulling 0bac7889fa19dcb13a727730af382c161058f81f on issue_40_update_semantic_to_v140 into 7779f44bd37dde29f1c3e5c51fe90dfe3d19f710 on master.


Test and warning fixes

Part 1 of fixes to different tests and warnings

So just to to clarify, was this fully obsoleted by #243?

Doesn't look like it, not sure why this one was closed.

This has some different fixes and improvements but turned into a mess, I didnt have a spearate branch for it. Closed so I can clean it up and move to a new branch


Blog - pagination

Blog pagination should sort newest --> oldest, so newest articles show first.

@Katiemoser is this still active ?
https://zesty-website-m3rbwjxm5q-uc.a.run.app/mindshare/


Implement best practices for cert-manager-app app

Coming from here.
The goal of this issue is to have the App eventually adhere to standard cloud-native best-practices. The points below are to be considered non-exhaustive. Feel free to add some that make sense and remove some that don't. If this issue does not make sense (e.g. is a duplicate or covers a deprecated app) please close it.
Expected outcome:

[ ] the app has properly set PDBs (as percentages)
[ ] the app can scale horizontally based on Custom Metrics (if it makes sense)
[ ] the app runs with more than 1 replica by default (if it needs HA)
[x] the app does not use emptyDir volumes if not strictly necessary

In the following Best Practises PR, PDBs are properly set as percentages.
No more than one replicas are needed on controllers


JSQMessagesComposerTextView not flexible to text inside

Question
I am using JSQMessagesViewController for chat view in my project. I am using swift. While message is small like.. "Hi","R u there?" I looks fine.. but when it's long enough of 5 words or more than that.. it's just showing starting 2-3 words.. that's all... if I copy that message it has the whole message... but not showing that in bubble... I have read another Question similar to this is https://github.com/jessesquires/JSQMessagesViewController/issues/846
But i don't found it helpful. Can you please help me to solve this... thanks in advance

Thanks @NidhiJoshi7 ! 😄
This sounds like a duplicate of #1034. Please check that and let us know if your issues is fixed.


Support more systems

Is your feature request related to a problem? Please describe.
I'm trying to use system-manager on debian server, however it is not supported currently.

Describe the solution you'd like
Since ubuntu is supported and debian is similiar to it imo, maybe we can add support for it without much effort (maybe just relax the assertion)

Describe alternatives you've considered

Additional context

Just ran into this on Arch. You can enable support on other distros with
system-manager.lib.makeSystemConfig.modules .config.system-manager.allowAnyDistro = true;

Did it work? Any issues?

Yeah it works. No problems with system-manager itself. I got systemd services and /etc files working on Arch no problem. Trying to integrate it with home-manager right now but not having much luck.

Cool, closing this issue then.


Added bookmark creation listener

In reference to #39
Hope I added it in the correct file :sweat_smile:

Hope I added it in the correct file 😅

Yes, the global background listeners like this have just been going into src/background.js so far. That's fine for now (maybe much later we'll reorganise it all a bit).
For the actual data transformation logic, I'd probably do that somewhere near where the page visits are handled (src/activity-logger/background/log-bookmark-creation.js maybe?).
For the bookmark doc transformation, you should be able to reuse the transformToBookmarkDoc fn in src/imports/background/imports-preparation. And yes, that doesn't really make sense there; planning to refactor bookmarks stuff out of there when I can figure out a good place.
Important to note though, is that for every bookmark doc there is an associated page doc. Bookmark doc is essentially just the bookmark-related metadata for a page, similar to visit docs.
So I'd have a look at how the logPageVisit fn in log-page-visit module currently works with creating a page doc then creating a visit doc based on it. One important thing to note is that log-page-visit gets page data from a tab, but with bookmarks you can't assume a tab since you can add bookmarks through the manager or whatever.
One of the many modules implemented with the imports feature is the fetch-page-data module, which essentially affords the same page data fetch but via XHR rather than tab, so that should be of use.

So if I understand correctly, following should be the flow:
Bookmark listener triggered -> Get page data using fetch-page-data.js -> Get page doc and visit doc using log-page-visit.js -> Call transformToBookmarkDoc
Question: I don't see storeVisit returning a page doc, I see it returning a visit doc.

That flow seems mostly right, apart from:

Get page doc and visit doc using log-page-visit.js

You will have to create the page doc from the data returned by fetch-page-data. I think the easiest way is to look at a page doc in the extension to see how it is structured, and match that structure using what you get from fetch-data-ouput.  There is some existing page doc creation code but they are specific to their use-cases (depend on a tab ID or an existing page stub in DB). To be unified somehow later. Visits don't fit into the use-case of creating a new bookmark, so you can ignore that.
One thing, however, is I think the page doc creation step should be skipped if there is already a matching page doc in the DB. Match would have to be done via URL. Then you would just create a new bookmark doc from the BookmarkTreeNode and reference to that existing page doc (all in the transformToBookmarkDoc params).
So the flow would be something like:
Bookmark listener triggered -> Get existing page doc OR create using data from fetch-page-data.js -> Call transformToBookmarkDoc -> store bookmark doc (and new page doc, if created)
What do you think?

Yes the flow seems appropriate. We should think about documenting all of this somewhere. For a new developer page, visit, and bookmark docs are a whole new concept. I can work on the documentation part.

We should think about documenting all of this somewhere

Yes, agreed. Codetour.md contains a high level overview of what each module does, although it needs to be updated a bit for some new things. That may be best for now, unless you want to detail the flows of certain use-cases. Code-wise, I encourage and have been using JSDoc, at least for exported module interfaces, as its flexible and fairly wide-spread and can be parsed by a variety of tools and editors/IDEs. If we want to fully document the code later, these annotations will help a lot.

One more minor thing: had a chat with @oliversauter the other day briefly regarding limiting the freeze-dry (tl;dr: it generates a local HTML version of the page for offline viewing/viewing at visit time) (issue #42). For new bookmarks, we want to automatically store the freeze-dry version. I'll update the fetch-page-data module later to optionally do this, so when you call it with a URL it will return { favIconURI, content, freezeDryHTML }. Currently just returns favIconURI and content.

Get existing page doc OR create using data from fetch-page-data.js
What if I call reIdentifyOrStorePage() from https://github.com/WorldBrain/WebMemex/blob/master/src/page-storage/store-page.js#L42 ?

@poltak added some code for creating page and bookmark docs. Would like your review :sweat_smile:

I separated the function, I guess that's what the conflict is about :sweat_smile:


A problem about opening localhost:8080 on Chrome

Hi ,
I have executed  the command "java -Xmx3000m -jar dexter-2.1.0.jar " successfully in the command-line tool of Windows 8.1

But I got a problem when I open the localhost:8080 on chrome .
It show that :

I have searched the problem on the google for all weekend ,
but still could not find a method to handle this problem, ~"~
Can you give me any hint or solution about this problem ?
Thank you ~

hei @TroisLiu  could you please try to visit localhost:8080/dexter-webapp ?

Wow , That work !! Thank you,  @diegoceccarelli
But I still want to ask, is the original problem a normal situation ?
And...in here  I have another problem that :
After I paste the text , I click the "dexterize" button , but the raw context doesn't change to the  annotated sentences which are similar to the presentation on your live-demo page.

Is there any step that I should do before I use it to annotate the text ? Or just something that I forget to setup?
Thanks : )

@TroisLiu  I apologize, that demo interface doesn't work since we changed the rest api in dexter2.0. You can test the api using the swagger interface available at localhost:8080/dexter-webapp/dev. If you want a nicer interface for testing the annotation feel free to copy our html demo http://dexter.isti.cnr.it/demo/  and our jquery plugin (http://dexter.isti.cnr.it/static/js/dexter.js) for performing the annotation. We are working on a new version of dexter, and we will solve this issue in the next release (I'll leave this issue open as a remind :))

The above answer answers my question, but I have another question, Is there any frequency limit for this API interface @diegoceccarelli


Update mjml to 2.3.0

After making all changes to the cask:

[x] `brew cask audit --download {{cask_file}}` is error-free.
[x] `brew cask style --fix {{cask_file}}` left no offenses.
[x] The commit message includes the cask’s name and version.

Thank you for the contribution. It was merged directly as 756375fa97f19eeff5ad7d1f334067d99aaa8c26. Your contribution is still credited to you.


Podfile.lock for example at wrong version

$ pod install Analyzing dependencies Fetching podspec for Birdsongfrom../`
[!] Unable to satisfy the following requirements:

Starscream (= 1.1.3) required by Podfile.lock
Starscream (= 1.1.1) required by Birdsong (0.2.2)

It seems like you've changed the constraints of dependency Starscream inside your development pod Birdsong.
You should run pod update Starscream to apply changes you've made.`

Good catch! Thanks. Sorry for the slow reply, I've been travelling lately. Will get this fixed ASAP.
Cheers!


expound on what export means

this is accurate right now, a definition we probably want to revisit at some point but since it does what it says here we should merge.

Currently DllExport and internal symbol may be the same symbol. This will cause linker warnings on Windows LNK4217 but can be silenced safely with /IGNORE:4217.

I know this shouldn't be in the spec, but until we've done the export redesign it should go someplace.


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-29-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 4196

Questions ?
Please refer to the Backport tool documentation


Simplify expanded menus

Fixes #7192

Why table-layout: fixed instead of auto?

Because the auto-width mixin will output a large amount of unneeded CSS.
See: https://github.com/zurb/foundation-sites/blob/develop/dist/foundation.css#L2279-L2293
Setting table-layout: fixed will equalize the items just as well.

@slavanga Thanks for putting this together! What browsers were you able to test in?

Also, we use the auto layout mixin on button groups as well, if you're interested in implementing it there as well.

Sorry, I was confused (was thinking about inline menus). :+1:

@gakimball This method is basically supported in every browser that can handle table display ([caniuse] (http://caniuse.com/#feat=css-table))


Questions about gumbel-softmax without gumbel sampling

Thanks for your excellent work!
While reading through your paper I find that you've mentioned Gumbel samplings are disabled for avoiding any randomness, and from my view, Gubel-softmax without Gumbel sampling is simply equivalent to the softmax function with annealing coefficient. I'm wondering if my understanding is correct,  thanks.

Hi, thanks for your interest!
Actually, for 'Gumbel-softmax', we referred to their re-parametrization trick instead of the entire Gumbel-softmax. That is, we only want a one-hot (argmax equivalent) output during forward, and smooth gradients (plain softmax equivalent) during backward.
You can have a look at our implementations: https://github.com/tiangexiang/CurveNet/blob/main/core/models/walk.py#L23 for details :)

I see, thanks for your kind reply!


Add --update option to only translate new fields

Given the following i18n files:

lang/foo/en.json

{
  "hello": "Hello",
  "bye": "Goodbye"
}

lang/foo/de.json

{
  "hello": "Hallo"
}

When providing the --update option, only the "bye" field should be translated, and the result should be added to the existing de.json:
dragoman translate lang/foo/en.json --update lang/foo/de.json --from English --to German

Implementation
When the user provides the --update option:

Load the file at the --update path
Check if the file is JSON (or other supported filetype)
Check if source file is same filetype
Create a temporary map that contains the fields that are only present in the source file
Translate only the JSON of that map
Merge the translated map into the target JSON
Save target JSON back to --update file

Implemented


Add new keymaster_zwave_network_ready binary sensor to replace pre-installation steps entities

Proposed change
Instead of requiring the pre-installation files, we now automatically can detect when the network is up or down. The data update coordinator is aware of this binary sensor and won't attempt to fetch data when the network is down. The service calls are not using this binary sensor but I think it's ok for the calls to fail because they will show up in the logs now versus before where they would silently not run.
A couple of minor bug fixes as well:

Data Update Coordinator no longer throws an error during HA start
Sometimes an options update would cause the update listener to fire twice. This resolves a potential endless loop.

TODO:

[ ] Verify that the new binary sensor for the zwave integration works.

Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (which adds functionality)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:

Codecov Report

Merging #85 (9b968b1) into main (93c48ec) will decrease coverage by 2.48%.
The diff coverage is 59.27%.

@@            Coverage Diff             @@
##             main      #85      +/-   ##
==========================================
- Coverage   81.20%   78.71%   -2.49%
==========================================
  Files           6        7       +1
  Lines         447      578     +131
==========================================
+ Hits          363      455      +92
- Misses         84      123      +39

Impacted Files
Coverage Δ

custom_components/keymaster/helpers.py
70.94% <31.03%> (+7.65%)
:arrow_up:

custom_components/keymaster/services.py
88.72% <40.00%> (+0.66%)
:arrow_up:

custom_components/keymaster/binary_sensor.py
58.64% <58.64%> (ø)

custom_components/keymaster/sensor.py
94.87% <95.83%> (+0.93%)
:arrow_up:

custom_components/keymaster/exceptions.py
100.00% <100.00%> (ø)

The test are failing due to the zwave-js updates, just FYI.

At this point I think we should fix forward with this. I haven't gotten confirmation about the zwave portion yet but we can fix forward since everything else appears to work


[DOC-3022] SMP release notes: remove non-RC tickets, fix typos

Remove SRM-14203, SRM-11985, PL-32113, PL-31862, PL-30882, PL-20547, PIE-8449, PIE-8310, and PIE-8097, fix typos
What Type of PR is This?

[ ] Issue
[ ] Feature
[x] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


Recipe page in redux. Actions, reducers, and sagas for editRecipe page.

I have migrated the recipe page to redux. It's state is now in the store and it makes API calls through saga. I have also included the new reducers, actions, and sagas for the editRecipe page in preparation for that PR. Would it be possible for you to take a look at the recipe page and see if anything is broken. Also, the tests are failing and I can't figure out why. I will push a fix as soon as I find one but if you know what I am doing wrong that would really help me.

Coverage decreased (-0.5%) to 7.358% when pulling ff73e143d85e48497697b44690693ccc76137c35 on jkozol:master into f6d5b703d924d06dede33c9a389e8cb9915e2005 on weldr:master.

Coverage decreased (-0.5%) to 7.358% when pulling eeadafa275748eb558818fa227edf8b3d60e8504 on jkozol:master into 645adb5d198ec2af34e2e0adb15f1ee27795f90f on weldr:master.

This is great! I just took a look at the Recipe page, and the UI looks as expected, with exception of the following note about tabs.
Also, I noticed that there's an action SET_ACTIVE_TAB for the primary tabs, but not for the secondary tabs "Selected Components" and "Dependencies" on the "Components" tab. Is there a reason for that?
Regarding the issue with tabs, we had discussed an issue that was only visible on FF. I created issue #129 to capture this issue, and then submitted PR #130 as a fix just now. I'm currently seeing this same issue while reviewing this PR in Chrome. Just something to check after these PRs are merged, I think.

The browser console report the following error when go to recipe page.

Warning: Failed prop type: Invalid prop recipePage of type array supplied to RecipePage, expected object.
in RecipePage (created by Connect(RecipePage))
in Connect(RecipePage)
in Provider

This error is caused by init value of recipePage. The init value of recipePage is an empty array.

When access a recipe page at the first time by following a recipe name, the Details tab will be the first active tab. Then active the Components tab automatically.
That causes the old Provider node was removed and a new Provider node was generated.

On view recipe page and when Components tab is active, click Create Composition button. Composition is still at Creating status on toast notification. It cannot go to Complete status.

Refresh one of view recipe page, the page will go into a wrong page layout.
If go to this view recipe page by click recipe name from recipe list, no this kind of issue happened.

Took too much time on fetch /api/v0/compose/types (5s) and /api/v0/projects/info/(10s). That why some of case failed by timeout.

Regarding this comment from @henrywang:

Refresh one of view recipe page, the page will go into a wrong page layout.
If go to this view recipe page by click recipe name from recipe list, no this kind of issue happened.
wrong view recipe page

I think this is a separate issue that should be handled in another PR. I create issue #129 to capture a similar issue that was only happening in FF prior to this PR. I then submitted PR #130 (still open) as a fix. It's possible this issue will be resolved when #130 is merged, so I'd suggest we test for this issue again after both PRs are merged

I agree with you @jgiardino.

I agree with you @jgiardino. I'll keep track the PR merge and give this issue a test when everything is ready.

Regarding this comment from @henrywang:

On view recipe page and when Components tab is active, click Create Composition button. Composition is still at Creating status on toast notification. It cannot go to Complete status.

I'm not able to reproduce this issue. Additionally, notifications are not currently included in the redux store but eventually should be added. Should we wait to test notifications until then?

Thanks for reviewing this, @henrywang!

The toast notification issue cannot be reproduced every time. I'm trying to find a common step to reproduce, not find one so far.

Thanks for reviewing this @henrywang and @jgiardino. I will change the store to no longer setState and instead just rely on a reducer. I will also fix the prop types. In regards to:

When access a recipe page at the first time by following a recipe name, the Details tab will be the first active tab. Then active the Components tab automatically.
That causes the old Provider node was removed and a new Provider node was generated.

Should we initially direct the user to the Components page or would it be fine to direct them to the Details tab?
In regards to:

On view recipe page and when Components tab is active, click Create Composition button. Composition is still at Creating status on toast notification. It cannot go to Complete status.

I have been able to reproduce this but not reliably. I will look into the toast notifications and see what causes this to occur. If I had to guess it would be due to the slow fetches as pointed out by:

Took too much time on fetch /api/v0/compose/types (5s) and /api/v0/projects/info/(10s). That why some of case failed by timeout.

I believe that the Provider node being deleted is causing some issues. When I go backwards and forwards between the recipes page and the recipe page too quickly I get sent to the Error page. I am looking into what causes this.

Coverage decreased (-0.5%) to 7.358% when pulling 86c90a7a51342e79212267a3382684911d17b32a on jkozol:master into f1980b34380914e3fc11e31bff006e8b932229f1 on weldr:master.

Coverage decreased (-0.5%) to 7.358% when pulling 409728a336c23ad8a5df479a9719f706a891c5ed on jkozol:master into f8c6c3cd075b366f140af66a4a240967f3793e09 on weldr:master.

Coverage decreased (-0.5%) to 7.361% when pulling eb4df67e3ef1b130de330144c13457e100d4b755 on jkozol:master into f8c6c3cd075b366f140af66a4a240967f3793e09 on weldr:master.

This is being closed because it is covered by PR 135. Some of the issues brought up such as the Provider have been fixed.


Resolve window root relative to project root

Fixes #410.

Coverage remained the same at 99.462% when pulling 9e988862a43cb465cf34083ef16efa5d0424b30f on rmccue:patch-1 into b932faac3f2a6531e5814a0a0e22412961326a92 on tmuxinator:master.

Can you add a test for this in keeping with the contribution guidelines, please?

Also a note in the CHANGELOG.md file under a new title of "## Unreleased"? Sorry, that should be in there but this is the first new change since our last release.

Not a Rubyist, just a fan of tmuxinator, so might take me a little while to get that sorted, but I'll give it a shot :)

While I do like that your change is explicit about what's being passed to File.expand_path, it may be worth considering that Project#root contains an identical ternary. As such, we could abide by the TellDontAsk principle and always pass its return value through to File.expand_path:
File.expand_path(value["root"], project.root).shellescape
I don't feel too strongly about this either way, I just thought I'd propose the change while this PR is still in-flight. :)

@rmccue Is there any chance you'll be able to revisit this PR? If not, I'd be happy to take over.

@ethagnawl it looks like @rmccue is not able to revisit this.  Do you want to take it on?
Closing due to inactivity.

@adamstrickland Sure, I can revisit this.


[Simulation, Humble] Robot has an inertia backwards in the beginning

The robot moves backwards in the beginning of the simulation:

The robot cannot move its base after this move, only the arm can be moved. How can I solve this problem?

The issue does not happen anymore. My hunch is that some plugin packages were missing in my ROS installation.


Add --kaas flag to Foundry commands

Start the server:
$ poetry -C kevm-pyk run kevm-server --level debug

Make a request:
$ poetry -C kevm-pyk run kevm foundry-show tests/foundry/out BlockParamsTest.testWarp --kaas


Some command line options does not work

Some configuration parameters exist both in command line options and system config.
For example, --suppress-repeated-stacktrace, --suppress-config-dump (and now i'm adding --workers).
Engine and other codes (in worker process) refers system_config object to handle these configuration values.
But Supervisor doesn't merge its configuration values (in instance variables) into system config object. So Engine.system_config has values just from <system> section in configuration files.
This causes that some command line options doesn't work as expected.
$ bundle exec bin/fluentd -c example/suppress_config_dump.conf --suppress-config-dump
{:here=>"suppress_config_dump", :value=>true}
2016-12-22 19:49:15 +0900 [info]: reading config file path="example/suppress_config_dump.conf"
2016-12-22 19:49:15 +0900 [info]: starting fluentd-0.14.10 pid=20088
2016-12-22 19:49:15 +0900 [info]: spawn command to main:  cmdline=["/Users/tagomoris/.rbenv/versions/2.3.1/bin/ruby", "-Eascii-8bit:ascii-8bit", "-rbundler/setup", "bin/fluentd", "-c", "example/suppress_config_dump.conf", "--suppress-config-dump", "--under-supervisor"]
2016-12-22 19:49:15 +0900 [info]: reading config file path="example/suppress_config_dump.conf"
2016-12-22 19:49:15 +0900 [info]: starting fluentd-0.14.10 without supervision pid=20117
2016-12-22 19:49:15 +0900 [info]: gem 'fluentd' version '0.14.10'
2016-12-22 19:49:15 +0900 [info]: adding match pattern="data.*" type="stdout"
2016-12-22 19:49:15 +0900 [info]: using configuration file: <ROOT>
  <system>
  </system>
  <match data.*>
    @type stdout
  </match>
</ROOT>
2016-12-22 19:49:15 +0900 [info]: starting fluentd worker pid=20117 ppid=20088 worker=0

#1398 fixes this problem in v0.14.


Start command executing in working-directory while CWD log statement seems to hint otherwise

Hi!
I tried using the following configuration, where I have an alternate Docker Compose file in my root directory:
- name: Cypress Run
   uses: cypress-io/github-action@v1
   with:
      record: true
      working-directory: frontend
      env: BASE_URI=http://localhost:3000
      start: docker-compose -f docker-compose.cypress.yml up -d
      wait-on: 'http://localhost:3000'

This is the resulting stack trace:
starting server with command "docker-compose -f docker-compose.cypress.yml up"
current working directory "/home/runner/work/life-after-hate/life-after-hate"
/usr/local/bin/docker-compose -f docker-compose.cypress.yml up
Cypress test command: npx cypress run --record --config-file cypress.json --env BASE_URI=http://frontend:3000
/usr/local/bin/npx cypress run --record --config-file cypress.json --env BASE_URI=http://frontend:3000
.FileNotFoundError: [Errno 2] No such file or directory: './docker-compose.cypress.yml'
(node:4234) UnhandledPromiseRejectionWarning: Error: The process '/usr/local/bin/docker-compose' failed with exit code 1
    at ExecState._setResult (/home/runner/work/_actions/cypress-io/github-action/v1/dist/index.js:1188:25)
    at ExecState.CheckComplete (/home/runner/work/_actions/cypress-io/github-action/v1/dist/index.js:1171:18)
    at ChildProcess.<anonymous> (/home/runner/work/_actions/cypress-io/github-action/v1/dist/index.js:1071:27)
    at ChildProcess.emit (events.js:210:5)
    at maybeClose (internal/child_process.js:1021:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)

It works completely fine if I change docker-compose.cypress.yml to an absolute path /home/runner/work/life-after-hate/life-after-hate/docker-compose.cypress.yml, but it doesn't seem like I should need to do that.
docker-compose on its own (i.e. not running in the Cypress action context) recognizes the relative path (I have a build step before the Cypress action where I just say docker-compose -f docker-compose.cypress.yml build and that works fine).
Edit: I was able to fix by doing ../docker-compose.cypress.yml since I realized it's attempting to execute within the context of working-directory.
But I think the logged line is inadvertently misleading since it's not executing in the current working directory.  I'm wondering if maybe here it were to instead log out that it will run in cypressCommandOptions.cwd.
Thanks!

Yeah, the working directory should be taken from https://github.com/cypress-io/github-action/blob/master/index.js#L46-L55 because it is passed to the start command there, but the log does the wrong thing and just uses process.cwd(). I will fix this