[go_router_builder] Custom type conversion for parameters

Use-case

Currently we are using go_router.

On pushing new routes, we are passing parameters using extra property. Parameter type could be primitive or non-primitive, doesn't matter as extra is of type Object?.
We cast the type of passed parameter into desired type during runtime in each route's builder. This is done within the route definition.
Defining routes like this is very verbose and centralized. Additionally there's no compile-time type-safety when passing parameters.

We are moving towards using go_router_builder

To make routes' definition concise and decentralized. Additionally to pass parameters in a type-safe manner.
We would like to push new routers, passing parameters of non-primitive type. Using go_router_builder.

Problem

As per go_router_builder's code generation. It only supports converting simple types.
We would like to stay away from using extra, as it defeats dynamic and deep linking. To rather opt in for path parameters params or query parameters queryParams.

It's not possible to use non-primitive types here in params or queryParams. As stated in the previous point.
If we stick with extra, its type is Object? which is not compile-time type-safe. Moreover, we would lose dynamic and deep linking.

Proposed solutions
A. User-side solutions:

A.a. Pass primitive types representing the non-primitive type. For example instead of sending UserObject as a parameter, we send UserId, and on the new route we fetch UserObject using passed parameter UserId.
A.b. Pass representation of the non-primitive parameter as a serialized JSON. But this feels odd as a large String would would be incorrect to have in a path or query parameter.

B. Pub-side solutions:

B.a Change extra type from Object? to T?.

But keep dynamic and deep linking intact. Perhaps by pairing each extra object to its route within in-memory route tree.

B.b. Provide a base class acting as a container for passed parameters. This base class implements an interface to serialize/deserialize its content.

Conclusion
I could be getting some things wrong here, that's why I am posting this issue.
Very excited for go_router 5.0 with its crucial companion go_router_builder.
Amazing to see this being built right before our eyes. Thanks to all maintainers and house-keepers for your hard and transparent work.

I don't really like the idea of completely drop the $extra parameter.
As a mobile developer I often need to pass complex objects from a page to another one (ex.: from a list of element to the element detail page).
Passing only path and query parameters to get again an entity I already had in memory would result in a redundant api call and an additional wait time for the user.
I currently use both id passed with path parameter and an $extra nullable object for the entity already resolved, this way I can support both dynamic links and reactive navigation.
In some more complex cases I also need to pass a callback to address the current impossibility of returning adata by calling pop as reported on this issue: https://github.com/flutter/flutter/issues/99663

I was thinking about a way to rethink the $extra param that could solve https://github.com/flutter/flutter/issues/106121 as well.
With typed routes, the GoRouteData itself is the actual extra param passed with GoRouterState, so adding an additional object? $extra might be redundant.
What about introducing a new field annotation that marks a GoRouteData attribute as non url or query param?
It must be nullable, or have a default value, to support deep and dynamic linking and must be handled of course.
It's already possible to test this solution with some tricks.
This is an example with a GoRouteData that causes https://github.com/flutter/flutter/issues/106121 :
class XboxGameAchievementsRoute extends GoRouteData {
  const XboxGameAchievementsRoute();
  const XboxGameAchievementsRoute.extra(
      XboxGameAchievementsExtra achievementsExtra)
      : _achievementsExtra = achievementsExtra;

  final XboxGameAchievementsExtra? _achievementsExtra;

  @override
  Widget build(BuildContext context) => Container();
}

I had to make the _achievementsExtra param private to avoid go_router_builder from considering it a path or query param.
With a dedicated annotation it might turn into
class XboxGameAchievementsRoute extends GoRouteData {
  const XboxGameAchievementsRoute({
    this.achievementsExtra,
  });

  @extra
  final XboxGameAchievementsExtra? achievementsExtra;

  @override
  Widget build(BuildContext context) => Container();
}

Is there anything being done regarding this issue?


Data Sharing: Accounts website catches the Data Sharing Request in the URL

Acceptance criteria:

[ ] The data sharing request is caught in the URL and sends it to Tonomy ID with the login request

I believe this is working


Shaders not updated to version 4

Might as well make this an issue now before we get any issues about blocky bloom in BotW Vulkan.

BotW packs are fixed with #411

Games left:

[ ] Bayonetta
[ ] Bayonetta 2
[ ] Devil's Third
[ ] Donkey Kong Country: Tropical Freeze
[ ] Dr. Luigi
[ ] Ducktales Remastered
[ ] Fist of the North Star
[ ] Hyrule Warriors
[ ] Kirby and the Rainbow Curse
[ ] LEGO Star Wars
[ ] Mario Party 10
[ ] Mario & Sonic at the Rio 2016 Olympic Games
[ ] New Super Mario Bros. U
[ ] Ninja Gaiden 3
[ ] Nintendo eShop
[ ] Paper Mario: Colour Splash
[ ] Pokkén Tournament
[ ] Runner 2
[ ] Skylanders Imaginators
[ ] Skylanders Trap Team
[ ] Star Fox Zero
[ ] Super Mario Maker
[ ] Super Smash Bros. for Wii U
[ ] Tokyo Mirage Sessions #FE
[ ] The Legend of Zelda: Twilight Princess HD
[ ] The Legend of Zelda: The Wind Waker HD
[ ] The Wonderful 101
[ ] Yoshi's Woolly World
[ ] ZombiU


added a unit for timespan

@nedpyle,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


can't set -Xmx properly

Trying to set the memory limits via -Xmx4G, and finding that I can't, because it is always putting in its own value (why would this be hardcoded?)
[INFO] Execute:Java13CommandLauncher: Executing '/opt/java/jdk_x64_1.8.0_65/jre/bin/java' with arguments:
'-cp'
''
'-cp'
'/mnt/STORAGE/repository/org/jruby/jruby-complete/<IP_ADDRESS>/jruby-complete-<IP_ADDRESS>.jar'
'-Xmx384m'
'-Xmx4G'
where did the 384m come from?
The plugin shouldn't specify any max at all by default, just let the JVM select... it will do a much better job than 384m.

oops, filed issue in wrong project.  Moved here https://github.com/torquebox/jruby9-maven-plugins/issues/2

Ahh, found the issue.  It doesn't check for memory values specified with a G.
https://github.com/torquebox/jruby-maven-plugins/blob/master/ruby-tools/src/main/java/de/saumya/mojo/ruby/script/AntLauncher.java#L85
The problem is actually in this project.  Would suggest checking for either m or G - and/or don't specify a default at all - just let the JVM pick a reasonable default which is likely to be much bigger than 384m these days.


Fix "Microsoft Visual C++ Build Tools" link

Summary of changes
Fix Microsoft Visual C++ Build Tools dead link.
Closes #1394
Pull Request Checklist

[ ] Changes have tests: Only change link in string.
[x] News fragment added in changelog.d. See documentation for details

According to @zooba in #1394:

The current best URL is https://visualstudio.microsoft.com/downloads/ and the title is "Build Tools for Visual Studio"

Given that Steve works for Microsoft I believe him - plus his link is https.

I'm tempted to add a # pragma: nocover comment to the version switch, but I think it doesn't really make sense to do so, so we can just merge even with 0% diff coverage for now.

The link I set in PR is in fact a redirection to the like you quoted. It look to work also in HTTPS. So I replaced the link.

Normalized formatting.


[✨ feature] Dashboard Page (List of projects)

Is your feature request related to a problem? Please describe.
We want to show a list of projects to choose from, search by name, sort or create them.
Describe the solution you'd like
This is the home page of the dashboard, we want the user to be able to see all of their projects, with a search box on the page to search by name, by default all project names are ordered by last updated time, there should also be a button for inverting the sorting order, and call to action button for creating a new one.
See Vercel homepage for inspiration.
Additional context

You can take shadcn blocks and try to adapt them to the wireframes : https://ui.shadcn.com/blocks

When there are no projects :

When there are projects :

instead of active, suspended and all, we should show only active and archived

we should take the search bar of vercel to filter and sort projects

When searching and there are no results, we should also show a clear button on the search input

Layout and wireframes

[ ] Are you willing to make a PR for this ?

done by #83


Update config.json

merged

woops... sorry about this.  doc wasn't quite clear and I went the wrong direction :)

No problem ☺
You are not the first and certainly not the last 😉


Public portal for models in STACKn

Status

[x] Ready
[ ] Draft
[ ] Hold

Description

Dynamically set the height for the model/project cards.
Add a custom image as a headline to the model card.
Create an Environment object for a reference to a Docker image and link it to a model.

STACKn-259
Types of changes
What types of changes does your code introduce to STACKn?

[ ] Hotfix (fixing a critical bug in production)
[ ] Bugfix
[x] New feature
[ ] Documentation update

Checklist
If you're unsure about any of the items below, don't hesitate to ask. We're here to help!
This is simply a reminder of what we are going to look for before merging your code.

[x] This pull request is against develop branch (not applicable for hotfixes)
[x] I have included a link to the issue on GitHub or JIRA (if any)
[x] I have included migration files (if there are changes to the model classes)
[x] I have read the CONTRIBUTING doc
[ ] I have included tests to complement my changes
[ ] I have updated the related documentation (if necessary)
[x] I have updated the release notes (docs/releasenotes.md)
[x] I have added a reviewer for this pull request
[x] I have added myself as an author for this pull request

Merged with different branch.


Allow mirroring private org repositories

The /users/{username}/repos endpoint does not return private org repositories.
The /search/repositories endpoint has to be used instead.
Related: https://github.com/orgs/community/discussions/24382

It is important to mention, that a new env variable is used: "GITHUB_ORG" instead of "GITHUB_USERNAME".
Works like a charm.

Hey :wave:
First of all thank your very much for your contribution!
Is there any specific reason we could not use the current environment variable and determine if the configured username is an org or user?
A call to the user lookup by id should reveal whether the configured user is an organisation or a regular github user, so we could use this to adjust the behavior.

Is there any specific reason we could not use the current environment variable and determine if the configured username is an org or user?
A call to the user lookup by id should reveal whether the configured user is an organisation or a regular github user, so we could use this to adjust the behavior.

Thanks for the hint, I just pushed some changes to use this approach.
The code now also supports MIRROR_PRIVATE_REPOSITORIES and modifies the query based on its value.
PS: Hide whitespace makes reviewing a bit easier

Thanks for your contribution :pray:
I will review this ASAP

I just had a look at he proposed changes. They look perfectly fine. Sadly the complexity of the method to get the repositories in addition with current pending changes seem to increase radically.
Due to that, I would love to do a refactoring and add tests for this particular part of the tool. Otherwise future requirements are likely to break existing functionality and I know that some people are using that in production.
If you are fine with that, I would love to use your proposed changes as blueprint to build the functionality test-driven after the refactoring.
Does that sound fine to you?

Due to that, I would love to do a refactoring and add tests for this particular part of the tool. Otherwise future requirements are likely to break existing functionality and I know that some people are using that in production.

That makes sense

Does that sound fine to you?

Sure, go ahead :slightly_smiling_face:


generated proper install-registry.sh / router.sh

For now those scripts were only examples.  Use the playbook to set up them properly.
for example : install-registry.sh should not come with the option --mount-host  if not needed

review all the options.

The idea is when post.yml ansible is done, scripts can be safely run.

We need to

clean the deprecated option (like inside the create certificat)
remove mount-host
add exemple to attach a pvc (volume) to the registry


Add robots.txt that excludes /helsetilstand/:passcode

And don't embed analytics scripts on that page (if that's easy). Would rather not have those codes in my Simple Analytics database. Not super important.

Yes, good catch. Let's wrap that script in an if block.


disk space not release after rm -rf & reboot

Output of docker version:
Client:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   9e83765
 Built:        Thu Feb 11 19:18:46 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   9e83765
 Built:        Thu Feb 11 19:18:46 2016
 OS/Arch:      linux/amd64

Output of docker info:
Containers: 10
 Running: 0
 Paused: 0
 Stopped: 10
Images: 11
Server Version: 1.10.1
Storage Driver: devicemapper
 Pool Name: docker-8:3-8126468-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 43.88 GB
 Data Space Total: 107.4 GB
 Data Space Available: 63.5 GB
 Metadata Space Used: 26.94 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.121 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /disk/ssd1/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
 Metadata loop file: /disk/ssd1/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.107-RHEL7 (2015-12-01)
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 3.10.0-327.10.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 46.98 GiB
Name: DOCKER-46
ID: ZYHB:ZYPS:XAIX:HGIR:LBS6:7XNA:PY2M:7F5K:MG3V:T2SD:WQG2:2S53
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

Additional environment details (AWS, VirtualBox, physical, etc.):
Linux DOCKER-46 3.10.0-327.10.1.el7.x86_64 #1 SMP Tue Feb 16 17:03:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
/usr/bin/docker daemon -g /disk/ssd1/docker -H tcp://<IP_ADDRESS>:2375 -H fd://
what happened
When Docker API hang up，I found devicemapper's data space was used up, little free memory is left, and strace docker ps was waiting for the docker socket. Then I stoped docker service difficultly, rm -rf /disk/ssd1/docker, and reboot. After system started, df -h:
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.8G  8.8G  415M  96% /
devtmpfs         24G     0   24G   0% /dev
tmpfs            24G     0   24G   0% /dev/shm
tmpfs            24G   17M   24G   1% /run
tmpfs            24G     0   24G   0% /sys/fs/cgroup
/dev/sda3       258G   42G  203G  17% /disk/ssd1
tmpfs           4.7G     0  4.7G   0% /run/user/0

It's very funny .....

du -sk /*
0	/bin
130572	/boot
0	/dev
43268052	/disk
57828	/etc
4	/home
0	/lib
0	/lib64
16	/lost+found
4	/media
4	/mnt
3680	/opt
du: cannot access '/proc/17172/task/17172/fd/4': No such file or directory
du: cannot access '/proc/17172/task/17172/fdinfo/4': No such file or directory
du: cannot access '/proc/17172/fd/4': No such file or directory
du: cannot access '/proc/17172/fdinfo/4': No such file or directory
0	/proc
5372	/root
17256	/run
0	/sbin
4	/srv
0	/sys
92	/tmp
1079512	/usr
66408	/var

Are you sure that your rm -rf call succeeded? If the daemon wasn't running then I'm not sure if this is a Docker problem...

I am experiencing the same issue. docker daemon was running when I deleted. After reboot I still see the disk as full.

I believe you need to run fstrim after deleting files when using devicemapper in order to reclaim space.

@cpuguy83  While that did not work for me, it did send me on the path to eventually fixing this. Thank you!
Some notes:
fstrim would say operation not permitted for discard or something along those lines. This was because my EC2 Instances storage volume type was gp2.
I then learned of zerofree, but this tool is only meant for ext2/3 file systems. I was on xfs.
Finally came accross xfs_repair
xfs_repair -f /dev/xvdf1
While the above doesn't reclaim the space, it does put all unreachable data into lost+found so you can actually delete it.

@polym does that solve your case as well? ^^

I walked around the problem by changing devicemapper to overlayfs.

In that case, let me close this issue, thanks @polym


rosstalk:Transition Keyer doesn't work

From @tvwonder on August 5, 2018 17:34
Describe the bug
Trying to use the rosstalk:Transition Keyer function and it doesn't work. Assigning this feature to a button then pressing the button does nothing. I get a line in the log in Safari that shows a button was pressed but the switcher does not respond.
To Reproduce
Steps to reproduce the behavior:

Assign rosstalk:Transition Keyer to a button (doesn't matter which MLE or Keyer I select or whether Auto Transition is Yes or No)
Press assigned button (or Test actions in Safari)
None of the keyers transition on or off as expected

Expected behavior
I expect the keyer to turn on/off, with our without a transition, depending on how I set the button's parameters
Screenshots

Desktop (please complete the following information):

OS: macOS 10.12.6
Browser: Safari
Version: 11.1.2

Copied from original issue: bitfocus/companion#197

From @PerRoine on August 5, 2018 17:39
We have found the 'Transition Keyer' bug will update it shortly

From @tvwonder on August 5, 2018 17:58
Awesome. Thanks!
Dave
On Sun, Aug 5, 2018 at 12:39 PM Per Røine<EMAIL_ADDRESS>wrote:

We have found the 'Transition Keyer' bug will update it shortly
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bitfocus/companion/issues/197#issuecomment-410535762,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANKQ6sNnAwAGEdrPsTHHcmKDDxQ01RDOks5uNy3XgaJpZM4Vvdyg
.

From @PerRoine on August 5, 2018 19:0
Ok i Think the 'Transition Keyer' should work now, but i'm at home with no carbonite to test on so please test and give feedback watch for next master build at https://builds.bitfocus.io/companion/
but be aware that this is untested code and not suitable for production environments.

From @tvwonder on August 6, 2018 5:32
Great! I'll check it when I'm back in the office on Tuesday. Is there any
way to run this build without messing up the main build I already have
installed?
Dave
On Sun, Aug 5, 2018 at 2:00 PM Per Røine<EMAIL_ADDRESS>wrote:

Ok i Think the 'Transition Keyer' should work now, but i'm at home with no
carbonite to test on so please test and give feedback watch for next master
build at https://builds.bitfocus.io/companion/
but be aware that this is untested code and not suitable for production
environments.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bitfocus/companion/issues/197#issuecomment-410540389,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANKQ6htWOdSxxTCLv-kk5_s32XgAO4vAks5uN0C1gaJpZM4Vvdyg
.

Just install the new build. :) should be fine. To be 100% sure, take a backup of the config files in Library/Application Support/companion :)

From @tvwonder on August 6, 2018 20:13
OK thanks! :)

Can I resolve this?

Sorry for the delay in getting back to you. I got a chance to test this
yesterday in the latest build (I downloaded it yesterday) and it still
doesn't work. Not sure what else to test with this.
Thanks!
Dave
On Sun, Sep 23, 2018 at 5:50 PM William Viker<EMAIL_ADDRESS>wrote:

Can I resolve this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bitfocus/companion-module-rosstalk/issues/1#issuecomment-423854006,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANKQ6kOx2iqQJ3NAT_u4zU6yj5hbgcMEks5ueBBAgaJpZM4W16ow
.

Was there any progress on this? I'd be happy to help with testing.

Unfortunately, no. I just downloaded the latest update from yesterday and
it still doesn't work. The button just does nothing.
Dave
On Wed, Oct 17, 2018 at 2:14 PM jeremyrmck<EMAIL_ADDRESS>wrote:

Was there any progress on this? I'd be happy to help with testing.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bitfocus/companion-module-rosstalk/issues/1#issuecomment-430753646,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANKQ6plfAOfpzNs1lxA5ffe9GAcJuIweks5ul4GPgaJpZM4W16ow
.

@tvwonder are you seeing this behavior with an Acuity/Vision switcher or a Carbonite?

It's a Carbonite.
Dave
On Tue, Dec 11, 2018 at 12:10 PM Keith Rocheck<EMAIL_ADDRESS>wrote:

@tvwonder https://github.com/tvwonder are you seeing this behavior with
an Acuity/Vision switcher or a Carbonite?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bitfocus/companion-module-rosstalk/issues/1#issuecomment-446303221,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANKQ6gGNoeQuNgFxh6HcCqv7X4MY0SS3ks5u3_UNgaJpZM4W16ow
.

What frame version are you running?  The Carbonite spec is supposed to include direct on/off commands in addition to the standard toggle that is common across all of the switchers.  Right now this module only has implemented the direct on/off method, and it appears to follow the spec.

I'm a little behind - it's still on 11.1. Would a newer version work? I'm
not going to upgrade until after the first of the year but if this will fix
it then it's more incentive to upgrade.
Thanks.
Dave
On Tue, Dec 11, 2018 at 2:07 PM Keith Rocheck<EMAIL_ADDRESS>wrote:

What frame version are you running? The Carbonite spec is supposed to
include direct on/off commands in addition to the standard toggle that is
common across all of the switchers. Right now this module only has
implemented the direct on/off method, and it appears to follow the spec.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bitfocus/companion-module-rosstalk/issues/1#issuecomment-446343802,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANKQ6j9Lrl2inVSqJ3d04fcQbqwmxFCkks5u4BCHgaJpZM4W16ow
.


firefox-wrapper: stop creating new profiles when the binary path changes

Motivation for this change
With a recent change to firefox (that landed in 67) a new profile is
created whenever the install location changes. Since our install
location (the binary path) always changes when we do a new build it is
rather annoying.
Setting the environment variable SNAP_NAME to firefox is supposed to
workaround the issue.
related to #58923
Woarkound taken from https://github.com/rail/nixos-configs/commit/1ff8b6c3d8b98d0695045eedb97ce135025c36a1
cc @rail
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@andir can you backport this?

Thank you!


[FEATURE] Internationalization support for multi languages

实现思路

前端引入 vue-i18n 依赖
依照项目现有代码，整理需要随着【语言】替换的 message 字符列表
将 message 绑定到 vue-i18n 实例，将 vue-i18n 实例绑定到 vue 上
通过 {{ $t("message.[field]") }} 将配置到的字符串渲染到页面上
在菜单列表中增加可切换语言的菜单

初始化时的默认语言
第一次打开自动选择系统的语言（已从 rust 获取系统的语言）
语言设置的持久化
当选定一个语言，之后每次打开都应该保持当前选择的语言
TASKS

[x] get current system language
[x] add package vue-i18n globally
[x] extract text variables from all components to a json file
[x] replace all text field with {{ $t("[field]") }}
[ ] adjust UI display for different language
[x] add language switch in setting
[x] persistent storage for selected language

Anyone wishes to contribute, be free to comment and @DongHuiTiao.
Currently, only English is on the translations list. If you want to translate our app to another/other language(s), please let us know, and we will add it/them to the list.
Thank you for your support and help in making our app accessible to more people around the world!

Hi @DongHuiTiao,
I'm just right away to add support for internationalization. I been thinking of choosing between the following:

i18n pure :  easy to set up, requires us to add every sentence to a JSON file, making our flow intermittent.
FormatJS/vue-intl :  good when we work with values
Lingui.dev   : we just wrap the text, and extract all sentences by  running a CLI command, and then translate. We can keep building as long we wrap the texts.

I would choose LinguiJS. From my experience, it makes coding painless, but any of them is good enough.
What are your thoughts about it?

My bad, just realized Vue is not fully supported by LinguiJS, looks like that feature is on the way, but for now, let's go with i18n

Hi @davidramos-om
I found relatively little information on GitHub when searching for "lingui" and "Vue" as keywords, which is a pity.
While Lingui's ability to translate vocabulary by itself is convenient, there is a risk of inaccurate translations.
So, how about we try to use vue-i18n?? It appears to be very straightforward, If anyone need to add a language, just add a corresponding vocabulary configuration.

Hi @davidramos-om
I found relatively little information on GitHub when searching for "lingui" and "Vue" as keywords, which is a pity.
While Lingui's ability to translate vocabulary by itself is convenient, there is a risk of inaccurate translations.
So, how about we try to use vue-i18n? It appears to be very straightforward, If anyone need to add a language, just add a corresponding vocabulary configuration.

Sorry, I used translation software for English, so my words may look a bit strange.

As mentioned in the tasks, we have already decided to use vue-i18n as the default language support plugin.
I just pushed the configured commit b66a6ea0973b8ad2ec33f278c01c60c2ae9d0989 in branch dev_lang.
Please notice that the vite-plugin for vue-i18n is here, we need one that supports vite@4.

Thanks @orangelckc, sorry for the oversight.

Hi @davidramos-om ,
I have just extracted all the text variables from the project and updated them in the dev_lang branch.
You can find these variables in the json files under src/locales.
I used the I18n ALLY plugin in vscode to translate them, but my variable names and machine-translated English might not be very standard.
Could you please take some time to review the code and test it? Thank you!

Thanks  @DongHuiTiao
Translations were pretty good, I just made a few adjustments to the labels we familiarized, and also support for Spanish added.
I've open a PR from my cloned repo to dev_lang branch

Thanks @DongHuiTiao Translations were pretty good, I just made a few adjustments to the labels we familiarized, and also support for Spanish added.
I've open a PR from my cloned repo to dev_lang branch

Thanks David for your contribution, your pr has been merged, see if you have time to add a REDEME document in Spanish by the way!

@davidramos-om Thanks to David's contribution, your pr has been merged and if you have time, you can add REDEME in Spanish!

@davidramos-om Hi David, I uploaded the Spanish docs in the dev_lang branch, can you help me with the touch-ups? I translated it from the English docs!

done!  @bilibili-ayang , screenshots for English and Spanish added too.

@davidramos-om Thanks, it's cool, good cooperation

Hey everyone 👋
Recently Lingui had an official v4 release and the Vue.js support is already here - https://lingui.dev/tutorials/extractor-vue

That's a wonderful news @andrii-bodnar, thanks for the head up.

@davidramos-om Hey, it's been a while! We've developed a new app and we're in the process of internationalizing it, would you be interested in contributing in English and other languages?

@ayangweb  Hi there,
Thanks for letting me know. Sure, I can help with translations. I tried to install it on an M1 and ran into an issue (the app is damaged)

@ayangweb Hi there,
Thanks for letting me know. Sure, I can help with translations. I tried to install it on an M1 and ran into an issue (the app is damaged)

Hey, this is normal, just fix it with the following command!
sudo xattr -r -d com.apple.quarantine /Applications/EcoPaste.app

@ayangweb Hi there,
Thanks for letting me know. Sure, I can help with translations. I tried to install it on an M1 and ran into an issue (the app is damaged)

Hey, we have submitted the full English translation of the json file, but we are using machine translation, you can go as short as possible to shorten the sentence, our goal is short, shorter, shortest! 😁


⚠ Bofrost.lu has degraded performance

In 0f6c32f, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2540 ms

Resolved: Bofrost.lu performance has improved in 2e78b5d after 6 minutes.


'Failed executing cold-storage config: all proposed deals where rejected' when running ffs push

Running on devnet I setup a new FFS instance and then run,
▶ pow ffs addToHot hex.svg
> Success! Added file to FFS hot storage with cid: QmVWKkyqM7kRJqUxQxiXVax5R63PB8DgH4NEJqQB9YJVjD

followed by
▶ pow ffs push --watch QmVWKkyqM7kRJqUxQxiXVax5R63PB8DgH4NEJqQB9YJVjD
> Success! Pushed cid config for QmVWKkyqM7kRJqUxQxiXVax5R63PB8DgH4NEJqQB9YJVjD to FFS with job id: 6eb39816-2ef3-443f-aa8b-a5723d587b5a
               JOB ID                	                                STATUS
6eb39816-2ef3-443f-aa8b-a5723d587b5a	Failed executing cold-storage config: all proposed deals where rejected

the files i've tried are 70kb and 2.5mb

Okay, got it working. There are two solutions.
You'll get this error if you are running devnet without big sectors enabled.

You can reduce the size of your test files to less than ~700bytes
You can enable bigsectors. This is the default in the included devnet docker configurations, so the above error should only happen in custom setups. Here is how to add the setting https://github.com/textileio/powergate/blob/987988637484441509094b992fc5f8234b30790e/docker/docker-compose-devnet.yaml#L34


minor: export schemaEntityFactory

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


extract and replace image

Hi Hopding
Thank you first, your project is too great.
I have this special request: I need to extract the original image from the PDF, perform color correction, and then write the corrected image back to the PDF, and the size position remains the same.
I don't know if pdf-lib can do it: extract the image, replace the image (the size position remains the same)
In this issue, extracting images seems to be possible, I will test it further.
How do I replace the image?
Another way found on the web:
Https://arunmozhi.in/2019/01/29/replacing-image-in-a-pdf-with-python
thank you very much.

Hi
After testing, it is achievable, and the following problems still exist:
The transparent picture has two images in the PDF, one original image, one mask, reference to the issue export PNG, found that there is a problem, the mask picture is blank, open it with photoshop, the error 'Not a PNG file', the suffix Can be opened after changing to jpg
Regarding the replacement image, I replaced indirectObject.contents directly with the new image, and the saved file is correct. I don't know if this method will cause other problems.
Test file:  extract-replace-images.zip
npm install
node index.js

Take out the image and save it as jpg. The image with transparency looks weird and there is a problem with the mask image.
thanks a lot

In addition, I used pdftk to extract the comparison, the file size did not increase, this is a good thing, but I found that \Info lost after pdfDoc.save:

Hello @xh4010!
Unfortunately, pdf-lib does not currently provide any high level APIs for image extraction or replacement. This does not mean that these things cannot be done with pdf-lib. It's just that they require you to implement a fair amount of low-level code on your own, which requires a fairly in-depth knowledge of the structure of PDFs and their image format.
The example I provided in https://github.com/Hopding/pdf-lib/issues/83#issuecomment-487383843 provides a rudimentary implementation of image extraction that works for some types of images from a PDF document. The issues you are encountering here appear to stem from the fact that the images in your document require additional processing logic to extract correctly.
However, as I mentioned in https://github.com/Hopding/pdf-lib/issues/224#issuecomment-568545182, I simply do not have the time to implement this additional logic myself. But there are good reference implementations in other libraries (such as the PDFImage from pdf.js) should anybody be interested in implementing it themselves.
As for the last issue that you mentioned (losing the Info entry in the new file), this has been fixed in<EMAIL_ADDRESS>So if you update to that version (which does include a number of breaking API changes), you will no longer encounter this issue.
I'm sure this isn't exactly the answer you were looking for. I wish I could be of more help with this. But arbitrary image extraction just isn't super easy to do in arbitrary PDF files with pdf-lib right now. I hope this changes in the future though. I'd love to provide functionality that makes this easy and straightforward to achieve.

Has anyone gotten the file I/O method here to work https://arunmozhi.in/2019/01/29/replacing-image-in-a-pdf-with-python ? I'm getting "'charmap' codec can't decode byte" and other unicode errors trying to read the uncompressed PDF. Thanks in advance for any advice!

Hi
After testing, it is achievable, and the following problems still exist:
The transparent picture has two images in the PDF, one original image, one mask, reference to the issue export PNG, found that there is a problem, the mask picture is blank, open it with photoshop, the error 'Not a PNG file', the suffix Can be opened after changing to jpg
Regarding the replacement image, I replaced indirectObject.contents directly with the new image, and the saved file is correct. I don't know if this method will cause other problems.
Test file: extract-replace-images.zip
npm install
node index.js

Take out the image and save it as jpg. The image with transparency looks weird and there is a problem with the mask image.
thanks a lot

It is works if the sizes of the replace and original image are the same but shows zigzags if the size is different. I guess the width & height of the replaced image must be corrected at PDFRawStream object. Can anybody tell me how to do this ? The object itself looks like :
PDFRawStream {
  dict: PDFDict {
    dict: Map(9) {
      [PDFName] => [PDFNumber],
      [PDFName] => [PDFName],
      [PDFName] => [PDFArray],
      [PDFName] => [PDFName],
      [PDFName] => [PDFNumber],
      [PDFName] => [PDFNumber],
      [PDFName] => [PDFName],
      [PDFName] => [PDFName],
      [PDFName] => [PDFNumber]
    },
    context: PDFContext {
      largestObjectNumber: 169,
      header: [PDFHeader],
      trailerInfo: [Object],
      indirectObjects: [Map]
    }
  },
  contents: ....

The content is replacing by new one, But how to correct the width/height ?
Thanks !

Hi
After testing, it is achievable, and the following problems still exist:
The transparent picture has two images in the PDF, one original image, one mask, reference to the issue export PNG, found that there is a problem, the mask picture is blank, open it with photoshop, the error 'Not a PNG file', the suffix Can be opened after changing to jpg
Regarding the replacement image, I replaced indirectObject.contents directly with the new image, and the saved file is correct. I don't know if this method will cause other problems.
Test file: extract-replace-images.zip
npm install
node index.js

Take out the image and save it as jpg. The image with transparency looks weird and there is a problem with the mask image.
thanks a lot

It is works if the sizes of the replace and original image are the same but shows zigzags if the size is different. I guess the width & height of the replaced image must be corrected at PDFRawStream object. Can anybody tell me how to do this ? The object itself looks like :
PDFRawStream {
  dict: PDFDict {
    dict: Map(9) {
      [PDFName] => [PDFNumber],
      [PDFName] => [PDFName],
      [PDFName] => [PDFArray],
      [PDFName] => [PDFName],
      [PDFName] => [PDFNumber],
      [PDFName] => [PDFNumber],
      [PDFName] => [PDFName],
      [PDFName] => [PDFName],
      [PDFName] => [PDFNumber]
    },
    context: PDFContext {
      largestObjectNumber: 169,
      header: [PDFHeader],
      trailerInfo: [Object],
      indirectObjects: [Map]
    }
  },
  contents: ....

The content is replacing by new one, But how to correct the width/height ?
Thanks !

Solved by:
for (const [key, value] of newRef.dict.dict.entries()) {
    ref.dict.set(key, value)
  }

Solved by:
for (const [key, value] of newRef.dict.dict.entries()) {
    ref.dict.set(key, value)
  }

@Sfinx  and @xh4010 can you share how you managed to replace the image?

I've looked at the @xh4010 example, but I'm trying to do things in the browser and not in node.  The image turns out to be blank


ReviewUnusedParameter does not capture parameter usage within a scriptblock

Steps to reproduce
Run Invoke-ScriptAnalyzer against the following with the new 1.19.0 release.
function foo {
    Param(
        $MyParameter
    )

    Get-Item| ForEach-Object { Get-ChildItem $MyParameter }
}

Expected behavior
No rule violations.
Actual behavior
The new ReviewUnusedParameter rule doesn't notice the usage. I suspect this is similar to the limitation of the AvoidUsingCmdletAliases rule though. Not sure if we should relax the ReviewUnusedParameter rule in this case to search nested scriptblocks inside a function scope.
cc @mattmcnabb @rjmholt @JamesWTruher
RuleName                            Severity     ScriptName Line  Message
--------                            --------     ---------- ----  -------
PSReviewUnusedParameter             Warning      test.ps1   4     The parameter 'MyParameter' has been declared but not used.

If an unexpected error was thrown then please report the full error details using e.g. $error[0] | Select-Object *
Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      7.1.0-preview.2
PSEdition                      Core
GitCommitId                    7.1.0-preview.2
OS                             Microsoft Windows 10.0.18363
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.19.0

@mattmcnabb @rjmholt It seems we actually discussed this in the PR review with divided opinions: https://github.com/PowerShell/PSScriptAnalyzer/pull/1382#discussion_r366098223
Should we re-visit this decision? Maybe a Strict configuration option on the rule might be the best solution as the community has shown anger at false positives of UseDeclaredVarsMoreThanAssignments in the past and in the case of parameter usage, I don't think we need to be that rigorous. I don't have a strong preference whether a hypothetical Strict config option would be on or off by default (PSSA might even choose different default compared to the PowerShell extension of VS Code that defines its own default settings anyway)

This caused some of my CI pipelines to suddenly fail today. Since I hadn't pinned the version of PSScriptAnalyzer that was used in the pipelines, and since I hadn't updated to 1.19.0 locally, I thought something was wrong with the pipeline or that I'd inadvertently introduced an error to our scripts.
As a user I'd expect to receive a warning only if there really is an issue. I like the idea of the rule, but I'd rather forgo it entirely than have to add workarounds to our scripts or toggle Strict mode in certain cases. If a Strict config were to be added, I'd expect it to be off by default so that one would only (possibly) see false positive if one deliberately turned on the rule.
In case I'm not understanding what the Strict config would do, the behavior I'd expect as a user is: 1) by default, don't check for unused parameters at all, 2) require the user to explicitly enable the rule and 3) indicate that the rule may yield false positives (I would have appreciated a mention of that directly in the warning message).
(This is my first time commenting on a PSScriptAnalyzer issue or PR. -Even though this new rule has been negative for me, I want to thank you for your work on this tool--it's been a great help not only for ensuring a clear and consistent style for our scripts but also for teaching how to use PowerShell.)

We can theoretically know in this case that the variable will be used; ForEach-Object immediately calls the scriptblock it's passed, so the variable is inherited.
However, this is going to be undecidable in general, since I can write a program like this:
function New-ScriptBlock
{
   param($x)

   { "`$x: $x" }
}

$sb = New-ScriptBlock -x 'Hi'
& $sb

We can solve the common case problem for commands that pass and invoke scriptblocks, but the blocker there is parameter binding; to properly resolve when a scriptblock corresponds to a parameter that's going to be invoked immediately, we really need a general purpose way to decide which argument corresponds to which parameter.
That's where I got to here; it's not just that we need to solve it for ForEach-Object, but also the -Variable commands and a few others beyond that

I think for now it's ok to search nested scriptblocks though

There is also this proposal in PowerShell to help PSSA: https://github.com/PowerShell/PowerShell/issues/12287

@kmbn The idea behind Strict would be to only search in the current scope, which can lead to false positives like this one. If Strict is off (which the default should probably be), then it would search all child scopes and therefore the likelihood of a false positive is very small. Technically, the way PowerShell scoping works, one doesn't have to pass all variables to a called  function but I think it's considered a best practice to explicitly pass all variables through, hence why I'd still leave the rule enabled by default but have Strict off by default. Would you agree on that?

There is also this proposal in PowerShell to help PSSA: PowerShell/PowerShell#12287

Yeah, this proposal would help in the cases we don't know about, but most of the time people use ForEach-Object and we already know. The hard part for us is not knowing the common commands that do this, but being able to perform the analysis once we know.
In this case, the simple solution is to also look in the child scriptblock. The better solution is to search the child scriptblock when the command is ForEach-Object or Where-Object

In this case, the simple solution is to also look in the child scriptblock. The better solution is to search the child scriptblock when the command is ForEach-Object or Where-Object

To add to the list, we're also seeing this fail with Invoke-Command -ScriptBlock {} (though this using $using:varName), and with usage via @PSBoundParameters, which is frustrating. I'm unsure what to suggest, though.

@JPRuskin The rule looks only in the current scope at the moment, which is something we should definitely improve as per above comments. Thanks for the suggestion to also scan for $using: since this would tell PSSA implicitly that the scope is valid.
For the moment, I suggest to suppress for the parameter name specifically (or completely disable the rule if it is too much of a pain.
 [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'ReplaceWithParameterName',
        Justification = 'False positive as rule does not scan child scopes')]

This issue is also observed in Pester tests when you directly use Parameter in "It" statement.

@bergmeister I have tried suppressing the warning as you suggested:
        [Parameter(Mandatory=$false, HelpMessage="The SystemAttributeValue.ObjectId property (Required)")]
        [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', '$ObjectId', Justification = 'false positive')]
        [int] $ObjectId

But I am still getting the PSScriptAnalyzer warning.  What am I doing wrong?  Do I need to suppress it at the cmdlet level for the specific parameter?, ie
function Assert-ValidSystemAttributeValue {
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', '$ObjectId', Justification = 'false positive')]
    [CmdletBinding()]
    param(

I dunno, I've tried several things and none of them are working, and I'm not seeing any real documentation on it.

I think I have another example of this issue in Pester tests. The code below is based on actual code, but simplified as much as possible.
Expected behavior
No PSReviewUnusedParameter issues:

Actual behavior
A PSReviewUnusedParameter issue for $ParamA:

Environment data
> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.1.0
PSEdition                      Core
GitCommitId                    7.1.0
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }

1.19.1
1.18.3
1.18.2
1.18.1
1.18.0
1.19.1

I'm also seeing this for .foreach loops.  I'm not seeing it happening for standard foreach() loops, however.

Possibly related? #1775

I have tried suppressing the warning as you suggested:
[Parameter(Mandatory=$false, HelpMessage="The SystemAttributeValue.ObjectId property (Required)")]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', '$ObjectId', Justification = 'false positive')]

But I am still getting the PSScriptAnalyzer warning. What am I doing wrong?

To suppress PSReviewUnusedParameter for a specific parameter you should set SuppressMessageAttribute's checkId to the name of the parameter without the $ prefix.

thanks @michielvoo for stepping in, you are correct :-)

Sadly (even without the $) I'm unable to get this to work.
[Parameter(Mandatory = $False)]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'SkipModules', Justification = 'false positive')]
[Array]$SkipModules

Within the script:
$Modules = Get-InstalledModule | Where-Object { $_.InstalledLocation -like "$FilterPath*" -and $_.Name -notin $SkipModules }
As a workaround I just added a verbose statement in that uses the parameter 😁

@robinmalik the suppression example you wrote above works as-is, but with the attribute attached to the param block, not the parameter. Thanks for the tip though, because we had this rule disabled for our scripts, but this will be a great improvement!

I've noticed that it also doesn't appear to capture conditions where the use of the variable within the script is like so:  if($LogFile) {}. Apologies if this has already been reported.

@robinmalik I do not see the behaviour that you see, the following does not report a warning
function Test {
    Param (
        [String]$a
    )
    if ($a) {
        return
    }
}

@bergmeister Thanks, I can't recall what scripts triggered this originally but I'm also unable to see that behaviour with your example given. If I do come across the issue again I'll report back, but disregard it for now :)

@mrboring :
I think I have another example of this issue in Pester tests. The code below is based on actual code, but simplified as much as possible.

FWIW, I have avoided this problem in Pester tests by making any variable that will be used in multiple ScriptBlocks be $script: scoped. This ensures that the variables transcend the ScriptBlock boundary and can be accessed anywhere.
Just be careful that anything you dot-source doesn't also use a script-scoped variable of the same name or you will cause problems for yourself.
Before (analyzer warnings)

After (no warnings)

@FriedrichWeinmann The only problem with this suggestion I'm seeing for now is that a whitelisting based approach does not fix the issue where PSSA does trigger this rule for an "unused" parameter that is simply in a sub-scope regardless from some specific command usage, i.e. any locally defined function, for example.

@FriedrichWeinmann

Heya, as this rule has been bugging me for some time now

Same for me and we are apparently not the only one (looking to the visibility of this issue and the duplicates).
I suspect that everybody working with PSScriptAnalyzer will run into this bug and spends some troubleshoot and resolve it.
(as for #1163)

Any thoughts on that approach?

false positives are worse than false negatives (knowing that is the default behavior without PSScriptAnalyzer or specific rule). From that view, I think it is better to approach this with a Blacklist.
Meaning:

Main condition:
A warning should be returned If the concerned parameter (e.g. $MyParameter) is nowhere found in the processing blocks of the script.
unless (blacklisted constrains exceptions):

The variable is (re)assigned (rather than retrieved)
The variable out of scope, where I even have some doubts whether the concerned warning applies, as something like:

param(
    [String]$String1,
    [String]$String2,
    [String]$MatchCase
)
function Helper ($String1, $String2) {
    if ($MatchCase) { $String1 -ceq $String2 } else { $String1 -eq $String2 }
}
Helper $String1 $String2

Might not indeed be a good practice, but the reason for this is not because "The parameter 'MatchCase' has been declared but not used." but because "'MatchCase' is not defined in the current scope".

Please fix this bug.  It is not an "enhancement."  Using a variable in a script block = "using a variable."
Whether the script block is actually invoked is irrelevant.  "Using" a parameter by referencing it from an unused script block is like "using" it by storing it in an unused hashtable.  The question is no longer whether the parameter has been used, but whether the new value is used; the original parameter should no longer be linted PSReviewUnusedParameter.
Here's another replication case:
function Invoke-In {
    <#
    .SYNOPSIS
        Runs a block in a pushed directory, popping it afterwards.
    #>
    param (
        [Parameter(Mandatory=$True, Position=0)]
        [ValidateScript({Test-Path -PathType Container -LiteralPath $_})]
        [string]$Directory,
        [Parameter(Mandatory=$True, Position=1)]
        [ScriptBlock]$CodeBlock
    )
    pushd $Directory
    try {
        return & $CodeBlock
    } finally {
        popd
    }
}

function Build-Proj {
    param (
        [string] $Platform
    )
    Invoke-In vp3d {
        echo MSBuild -noLogo Proj.vcxproj -p:Configuration=Release -p:Platform=$Platform -consoleLoggerParameters:ForceConsoleColor
    }
}

If $CodeBlock were never actually invoked, that's a problem of Invoke-In, not Build-Proj!

Any progress over here, issue reported 3 years back and still no fix?

@muvijay There has been progress on this, actually.
Although https://github.com/PowerShell/PSScriptAnalyzer/blob/master/CHANGELOG.MD has not been updated, apparently. It's still on 1.21.0.  But it's mentioned on the Releases page for 1.22.0

PSReviewUnusedParameter: Add CommandsToTraverse option by FriedrichWeinmann in https://github.com/PowerShell/PSScriptAnalyzer/pull/1921

Reusing my own old testcase here, this does not work and still triggers a PSReviewUnusedParameter violation for $DemoSwitch

param(
	[Parameter(Position = 0)]
	[string] $ExampleInput = 'I am just a simple DEMO string',

	[switch] $Lower,
	[switch] $Upper,
	[switch] $Variant,

	[switch] $DemoSwitch
)

function Assert-Parameter ([string] $In) {
	if ($DemoSwitch) {
		return $In.Replace('string', 'string, DemoSwitch is SET! SUCCESS!')
	} else {
		return $In.Replace('string', 'string, DemoSwitch is NOT SET! ("default" operation)')
	}
}

if ($Variant) {
	Write-Output (Assert-Parameter -In $ExampleInput)
} elseif ($Lower) {
	Write-Output $ExampleInput.ToLower()
} elseif ($Upper) {
	Write-Output $ExampleInput.ToUpper()
} else {
	Write-Output $ExampleInput
}

To be fair, my custom function here is used inside parentheses as a parameter to Write-Output, but if I slightly change the testcase to:
param(
	[Parameter(Position = 0)]
	[string] $ExampleInput = 'I am just a simple DEMO string',

	[switch] $Lower,
	[switch] $Upper,
	[switch] $Variant,

	[switch] $DemoSwitch
)

function Assert-Parameter ([string] $In) {
	if ($DemoSwitch) {
		return $In.Replace('string', 'string, DemoSwitch is SET! SUCCESS!')
	} else {
		return $In.Replace('string', 'string, DemoSwitch is NOT SET! ("default" operation)')
	}
}

if ($Variant) {
	$Result = Assert-Parameter -In $ExampleInput
	Write-Output $Result
} elseif ($Lower) {
	Write-Output $ExampleInput.ToLower()
} elseif ($Upper) {
	Write-Output $ExampleInput.ToUpper()
} else {
	Write-Output $ExampleInput
}

It still triggers the PSReviewUnusedParameter violation for $DemoSwitch..
I have this in Rules = @{..} in my settings file for Invoke-ScriptAnalyzer:
        PSReviewUnusedParameter = @{
            CommandsToTraverse = @(
                'Assert-Parameter'
            )
        }

Seems like it does do what I think it is supposed to do here..
Tagging @FriedrichWeinmann here, maybe he can weigh in?

Heya :)
The configuration is intended for scriptblocks you provide to a command. Not for the command code itself.
With that configuration you could then do something like this without a complaint:
Assert-Parameter { if ($DemoSwitch) { "Yay" } }

I am fundamentally opposed to scope boundary violations, so I did not even consider implementing looking into child-functions for this, sorry. Honestly, I'm also against ever implementing it that way, in order to not encourage people to do so.

Hey, thanks for weighing in so quickly! 😄
Okay, I see what you mean by scriptblock only. But I'm a but confused, why would you describe this as a scope boundary violation? I mean, it's still a scope issue, this should be clear.
Assert-Parameter here is a local function and it creates its own scope, true, so far we're all on the same page.
I still don't see the fundamental difference here with regard to ForEach-Object and Where-Object though, besides from pipeline usage?
Also, what exactly would you intent to discourage here?
Do you consider my example testcase here to be non-idiomatic or conceptually suboptimal or something?
I'd like to understand that better, to be honest.

The scriptblocks provided to ForEach-Object & Where-Object do not become part of the code implementing the command - they are code provided to the commands, which the commands then execute for the caller (script). The scriptblocks are not executed within the context of those commands.
Pipeline usage doesn't really factor in here.

Scope Boundary Violation

There is a commonly propagated best practice where functions should not directly access variables from their parent scopes - all information a command needs should be provided via parameter, all results returned via output.
There is no technical issue with access variables directly from the parent command, so it's not like you are hurting your code with something like this:
function Get-Test {
  $Test
}
$Test = 42
Get-Test

But!!
There is one problem with that approach: It's really hard to track, where the information came from and where it's going to.
Imagine later on you update the script and decide to rename $Test to a name better representing the content, but forget to rename it in the nested function, since you forgot all about that?
Also, imagine your helper function turns out useful and you want to copy it over to another command/script. Now you need to remember exactly about that variable you used or figure out some other way to track this. If instead you had made it a parameter, you'd have a central location to look up what input the command needs:
function Get-Test {
  [CmdletBinding()]
  param (
    $Test
  )
  $Test
}
$Test = 42
Get-Test -Test $Test

I know, it's a slightly greater time investment upfront, but it pays its dividends in easier maintainability for your busy future self.
My rant on this topic is definitely not inspired by me having been hired several times to fix legacy code bases and having to figure out just where the heck that crappy piece of information is coming from and why it sometimes isn't what it should be :grml: ... ;)

I'm actually stuck with my habit of keeping the code without any flags (of whatever color) telling me "something is not right here" in VS Code. Right now my problem is PSUseDeclaredVarsMoreThanAssignments in similar fashion. I ended up in this post from desperate googling for solutions. I really couldn't understand what is going on here and what can I do to avoid this bug-flag.
$timeConsumption = Measure-Command -Expression { `
     $hashCsv = Test-Fn -HashData $someData }
write-host $hashCsv

Yeah, I need to patch that rule as well so it can do the same thing with Command Traversal as I did for ReviewUnusedParameter
It's on my backlog, but not in the week before the conference ;)

The scriptblocks provided to ForEach-Object & Where-Object do not become part of the code implementing the command - they are code provided to the commands, which the commands then execute for the caller (script). The scriptblocks are not executed within the context of those commands.

But the scriptblocks are passed on to ForEach-Object and Where-Object as arguments, or not? They do net get evaluated, or invoked or something beforehand, or what am I missing here? Granted, they are not in a child scope, they are still in the same (top) scope.

Pipeline usage doesn't really factor in here.

I see, thanks.

There is a commonly propagated best practice where functions should not directly access variables from their parent scopes - all information a command needs should be provided via parameter, all results returned via output.
There is no technical issue with access variables directly from the parent command, so it's not like you are hurting your code with something like this:

Yeah, I get what you mean. And I agree, although there's one possible difference to make here, and that is, like in my ad-hoc testcase here, if one is doing a read-only access into the parent scope. This is supported just fine by Powershell, without needing to use any scope modifiers. But I see the benefit of always using parameters for the inputs of a function etc.
Not sure, I've actually read https://github.com/PoshCode/PowerShellPracticeAndStyle
Maybe it's not really mentioned there, or at least not explicitly (enough).

This is supported just fine by Powershell, without needing to use any scope modifiers.

Yepp. Technically it works just fine - it's just usually not a great idea (but faster, especially if you need to access a dozen different pieces of data). I'm mostly arguing against expedience in the short term at the cost of long term pain.

But the scriptblocks are passed on to ForEach-Object and Where-Object as arguments, or not?

They are, but they keep their context - so when they get run from inside the command, they are not in the command context.
Otherwise they would be unable to access local variables in your script - those are invisible to ForEach-Object and its friends.
The scope pyramid goes like this:

Golbal > Script > Function in Script

Global > Module > Command of Module

What does NOT happen is this:

Global > Script > Function of Script > Module > Command of Module

The script scope (and the functions in that script) are invisible to any commands from modules you call.
What is more important however from a PSScriptAnalyzer perspective is the Abstract Syntax Tree - the structured view on the code as processed by the parser. There is a huge difference between a scriptblock and a function definition there. Making sure we do a proper, reliable detection is a lot more iffy when we have to traverse into a FunctionDefinitionAst.
Not saying it can't be done, but it would cost more performance and would require more coding, testing and troubleshooting.
And that to support/enable a practice I really don't want to encourage :)

@FriedrichWeinmann,
It is good to see that this issue is finally fixed in 1.22.0

PSReviewUnusedParameter: Add CommandsToTraverse option by @FriedrichWeinmann in https://github.com/PowerShell/PSScriptAnalyzer/pull/1921 🎉

There is although a quiet similar (I think) issue with PSUseDeclaredVarsMoreThanAssignment, see: #1163
Is it possible to apply your experience with this issue on that issue as well?


[SPARK-1680] [Docs] Explain environment variables for running on YARN in cluster mode

JIRA 1680 added a property called spark.yarn.appMasterEnv.  This PR draws users' attention to this special case by adding an explanation in configuration.html#environment-variables

Can one of the admins verify this patch?

CC @sryza @vanzin @tgravescs for a check

you should file a separate jira for this. The original went in and is closed.
I'm fine with the text, it might be nice to add something about preferring the use of spark.executorEnv.[EnvironmentVariableName] over the spark-env.sh file.

It looks like the original JIRA status is "RESOLVED" but it was never "CLOSED" and so it is currently showing this pull request, which is probably a good thing.  Since these documentation changes relate to the earlier code changes, I think it makes sense to put them on the same JIRA if possible.  Otherwise, I'd be tempted to call this doc change "trivial" and skip creating a new JIRA.
Can you assist with the text relating to spark.executorEnv.[EnvironmentVariableName]?  I don't have a deep understanding of when to use the property vs. when to use the .sh file.

@weineran agree with leaving it as is; my full logic: since that JIRA is soo old, and this change is still logically separable (i.e. one makes sense without the other), it's reasonable to make a new JIRA. However it's also trivial (i.e. diff ~= description of change) so in that sense, doesn't really matter.

Merged to master


Problems applying SerialVersionUidProcessor (rule 2057) to Spoon

I tried to apply the SerialVersionUidProcessor to INRIA/Spoon@2823e58503e62d863ec75fe26ddfb9bf8d900cb4, which has 9 violations, but there were two problems.

One NPE (this is a problem in the processor)
For almost every patch, the added field appears on the same line as the class header (this is a problem in the sniper printer, missing newline)

I'll look into this more tomorrow. Most likely, 1) can be fixed in Sorald, while 2) must be fixed in Spoon.

Confirmed that 2) is a problem in Spoon, working on a fix. See inria/spoon#3855

Here's the stack trace for 1)
java.lang.NullPointerException
	at sorald.processor.SerialVersionUidProcessor.repairInternal(SerialVersionUidProcessor.java:63)
	at sorald.processor.SerialVersionUidProcessor.repairInternal(SerialVersionUidProcessor.java:14)
	at sorald.processor.SoraldAbstractProcessor.repair(SoraldAbstractProcessor.java:87)
	at sorald.processor.SoraldAbstractProcessor.process(SoraldAbstractProcessor.java:164)
	at spoon.support.visitor.ProcessingVisitor.scan(ProcessingVisitor.java:72)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:170)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:143)
	at spoon.reflect.visitor.CtScanner.visitCtClass(CtScanner.java:336)
	at spoon.support.reflect.declaration.CtClassImpl.accept(CtClassImpl.java:58)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:178)
	at spoon.support.visitor.ProcessingVisitor.scan(ProcessingVisitor.java:68)
	at spoon.support.QueueProcessingManager.process(QueueProcessingManager.java:118)
	at sorald.Repair.repairModelWithInitializedProcessor(Repair.java:198)
	at sorald.Repair.defaultRepair(Repair.java:128)
	at sorald.Repair.repair(Repair.java:105)
	at sorald.Repair.repair(Repair.java:90)
	at sorald.cli.RepairCommand.call(RepairCommand.java:113)
	at sorald.cli.RepairCommand.call(RepairCommand.java:33)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1933)
	at picocli.CommandLine.access$1200(CommandLine.java:145)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2326)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2291)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2159)
	at picocli.CommandLine.execute(CommandLine.java:2058)
	at sorald.Main.main(Main.java:7)

So, the NPE is caused by the declaration not being found, which in turn is cause by the offending class actually being a subtype of ArrayList, and it's ArrayList that is serializable. The processor supposedly ignores this case, but I think that check was lost in the conversion to the new position matching, and there's no test for it.
However, I don't see a reason not to handle that case.


Raspberrymatic as HomeMatic-Addon kills zigbee communications (zigbee2mqtt)

Describe the issue you are experiencing
After moving raspberrymatic to HomeAssistant, i noticed that my zigbee devices arent working.
Start raspberrymatic addon after zigbee2mqqt: zigbee stops working. In zigbee2mqtt it shows: sendZclFrameToEndpointInternal error
Start zigbee2mqtt addon after raspberrymatic addon already startet: zigbee2mqtt does not boot. Opening in homeassistant shows: 502: Bad Gateway
Describe the behavior you expected
raspberrymatic should not affect other addons in homeassistant
Steps to reproduce the issue

Install zigbee2mqtt
install raspberrymatic
maybe have problems?

What is the version this bug report is based on?
<IP_ADDRESS>30114
Which base platform are you running?
ha-addon (HomeAssistant Add-on)
Which HomeMatic/homematicIP radio module are you using?
RPI-RF-MOD
Anything in the logs that might be useful for us?
I have one clue what could couse this problems.
Maybe raspberrymatic are trying to use/connect/break the USB Connection of the SkyConnect USB-Stick?
Im using HB-RF-ETH to connect the radiointerface to raspberrymatic
Homeassistant supervised in Proxmox

zigbee2mqtt Log stops at: Zigbee2MQTT:info  2023-02-19 21:49:46: zigbee-herdsman started (resumed)
... then it freezes

The next log line should be the info about the coordinator/USB-Stick
Zigbee2MQTT:info  2023-02-19 21:49:46: Coordinator firmware version: '{"meta":{"maintrel":"1 ","majorrel":"7","minorrel":"1","product":9,"revision":"<IP_ADDRESS> build 273"},"type":"EZSP v9"}'

Is it possible to "deactive USB" in raspberrymatic?

Additional information
No response

This is certainly the same root cause like here:
https://github.com/jens-maus/RaspberryMatic/discussions/2182
Thus, definitly no bug/issue in RaspberryMatic itself. Next time please use the discussion fora as well.


Added new website (Landings) under Design Inspiration

Added my new website under Design Inspiration :)
It did really well on Producthunt to become #4 Product of the Day so I hope it will be useful to people who come across this list - https://www.producthunt.com/posts/landings

Thank you @nilansaha


GH-42218: [Java] MapVector cannot be loaded via IPC

Rationale for this change
The MapVector keeps the KEY_NAME and VALUE_NAME as a constant values but rather it should be extracted from the provided fields.
What changes are included in this PR?
Updating KEY_NAME and VALUE_NAME from the provided fields. Adding a test case to validate that.

[x] Add IPC Test Cases
[x] Add C Data Test Cases

Are these changes tested?
Yes. A test case has been added to validate this.
Are there any user-facing changes?
No

GitHub Issue: apache/arrow-java#71
GitHub Issue: #71

Also, we should test this via IPC and C Data

Let's not add mutable global state

Would it be okay if we use getKey() across the static usages? That is going to be a larger diff.

Could you open a new PR in apache/arrow-java?

Sure I will look into it.


feat(loans): add mutation testing decorations

Decorates all functions in the loans pallet with #[cfg_attr(test, mutate)], so mutagen can mutate them and check if the unit tests break, "killing" the mutations. Only unit tests are used when checking, so some of the surviving mutants exist because they're tested in an integration test.
Most surviving mutants just remove the deposit_event call, however some logic in the interest rate model should actually be better tested. This is the output about surviving mutants: SURVIVED.txt
The mutagen dependency uses the latest master on their GitHub, because version 2.x wasn't released to crates.io for some reason.

Related: a long time ago we also looked into getting code coverage info in the CI. I remember it worked, but we never integrated it


Agreed


Supervisor

Use supervisord on http://localhost:9001/

https://github.com/suren1986/laravel-supervisor-dashboard
https://github.com/mlazarov/supervisord-monitor
https://github.com/bigdataplot/supervisord-monitor/tree/master
https://github.com/pierophp/laravel-queue-manager

Was not really an issue


Fix/issue #453 python32 support

PEP 414: return the u support to python3, python versions prior to 3.3 do not support u as unicode

Coverage increased (+0.0%) to 95.25% when pulling e16718b660c875c05c7c23f3a8dbfd8f55bcdf7b on leonardoo:fix/issue-453-python32-support into b398e079989d19d11a6c87a2aeb1ecb48dda7d96 on bread-and-pepper:master.

Great! Thank you very much @leonardoo :)


Fix Orchestration bugs.

A few bugs found while testing with the SDK usage.

Default name generated wasn't compliant with Kubernetes naming
Type errors in batch ensembling configurations when comparing SaveMode Enums with OpenAPI "enums"

@romanwozniak I have made the required changes including the checking of ensembler names.


Revert "chore(deps): update ci dependencies"

Reverts terraform-ibm-modules/terraform-ibm-powervs-infrastructure#613

/run pipeline

Going to go forwards instead - renovate should create a new PR to update to v1.21.0


Next

Improve types.
Replace dot-prop-immutable to object-path-immutable.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


OK to convert tabs to spaces in tests?

Unlike the main code, and contrary to PEP8, the tests use tabs for indentation.   I think most of us have editors set up to follow PEP8, and use spaces.   Do you mind if I convert the tabs to spaces, in a PR?

I went ahead and did the PR...

Merged


_eos

03/30/2022 03:17:24 PM <26320> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [65218|_EquationOfStateWorkChain|inspect_eos]: The birch murnaghan fitting results are: {'energy0': -1922.902594, 'volume0': 28.5515551, 'residuals0': 0, 'bulk_deriv0': -22.2951885, 'num_of_atoms': 1, 'volume0_unit': 'A^3', 'bulk_modulus0': 0.8782314, 'bulk_modulus0_GPa':<PHONE_NUMBER>, 'bulk_modulus0_unit': 'eV A^3', 'bulk_modulus0_GPa_unit': 'GPa'}
03/30/2022 03:17:25 PM <26320> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [65214|_EquationOfStateWorkChain|on_except]: Traceback (most recent call last):
  File "/home/jyu/miniconda3/envs/aiida-sssp-dev/lib/python3.9/site-packages/plumpy/process_states.py", line 231, in execute
    result = self.run_fn(*self.args, **self.kwargs)
  File "/home/jyu/miniconda3/envs/aiida-sssp-dev/lib/python3.9/site-packages/aiida/engine/processes/workchains/workchain.py", line 214, in _do_step
    finished, stepper_result = self._stepper.step()
  File "/home/jyu/miniconda3/envs/aiida-sssp-dev/lib/python3.9/site-packages/plumpy/workchains.py", line 299, in step
    finished, result = self._child_stepper.step()
  File "/home/jyu/miniconda3/envs/aiida-sssp-dev/lib/python3.9/site-packages/plumpy/workchains.py", line 250, in step
    return True, self._fn(self._workchain)
  File "/home/jyu/Projects/WP-SSSP/aiida-sssp-workflow/aiida_sssp_workflow/workflows/evaluate/_eos.py", line 177, in inspect_eos
    f"The birch murnaghan fitting results are: {output_birch_murnaghan_fit.get_dict()}"
AttributeError: 'dict' object has no attribute 'get_dict'

03/30/2022 03:17:25 PM <26320> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [65158|DeltaWorkChain|inspect_eos]: _EquationOfStateWorkChain failed with exit status None
03/30/2022 03:17:25 PM <26320> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [65158|DeltaWorkChain|on_except]: Traceback (most recent call last):
  File "/home/jyu/miniconda3/envs/aiida-sssp-dev/lib/python3.9/site-packages/plumpy/process_states.py", line 231, in execute
    result = self.run_fn(*self.args, **self.kwargs)
  File "/home/jyu/miniconda3/envs/aiida-sssp-dev/lib/python3.9/site-packages/aiida/engine/processes/workchains/workchain.py", line 214, in _do_step
    finished, stepper_result = self._stepper.step()
  File "/home/jyu/miniconda3/envs/aiida-sssp-dev/lib/python3.9/site-packages/plumpy/workchains.py", line 299, in step
    finished, result = self._child_stepper.step()
  File "/home/jyu/miniconda3/envs/aiida-sssp-dev/lib/python3.9/site-packages/plumpy/workchains.py", line 250, in step
    return True, self._fn(self._workchain)
  File "/home/jyu/Projects/WP-SSSP/aiida-sssp-workflow/aiida_sssp_workflow/workflows/evaluate/_delta.py", line 163, in finalize
    output_bmf = self.outputs["eos"].get("output_birch_murnaghan_fit")
KeyError: 'eos'

It is caused by failing of birch_murnaghan_fit calcfunction with Finished [100] get spurious volume0=0.. Add a handler in _eos workchain. The calculation problem caused from that in test protocol running, for some configurations, the EOS not able to process to give a volume makes sense. The typical volume-energy pairs that cause the issue here are:
PK: 66085
{
    "energies": {
        "0": -1923.2319474241,
        "1": -1923.2533718987,
        "2": -1923.2558312635,
        "3": -1923.272249932,
        "4": -1923.2727035458
    },
    "energy_unit": "eV",
    "num_of_atoms": 1,
    "volume_unit": "A^3",
    "volumes": {
        "0": 22.190777618249,
        "1": 22.653085483834,
        "2": 23.115393351606,
        "3": 23.577701218334,
        "4": 24.040009086167
    }
}


fix: removed gitter badge

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


One Dollar deducted but Auth failed on sign up azure

Idea Title
One Dollar deducted but Auth failed on sign up azure
Be as descriptive as you can with your idea/bug report/question/suggestion.
Issue Details
Im facing the issue on the sign up of azure cloud services .Im using UBL wiz card Pakistan  On every submit one dollar deducted but card authentication failed.
PS : Im doing my online course on AI , Course requirement is the Microsoft azure cloud services . can you solve this problem so i can save my time and cost . Im also attaching the snap .

Thanks

@skarmani2002 Can you provide the page link of docs.microsoft.com you refer to? If this is related to product issue, you can submit the issue through https://feedback.azure.com/forums/34192--general-feedback.

@skarmani2002 because this forum is dedicated to docs.microsoft.com feedback, we cannot help you with Azure questions.
You can refer to the following support options:

Get answers in Azure forums.
Connect with @AzureSupport  - answers, support, experts.
If you have a support plan, open a support request.
Check the status of Azure.
Search Azure documentation.


Replace branding link with the actual assets

Feature
Why is this feature being added?

We're currently hosting brand assets at https://ocbranding.squarespace.com which is costing us money and looks a bit unprofessional.
What should your feature do?
Copy all assets from https://ocbranding.squarespace.com and add them to this app
Create a zip of all assets
Replace the link on the /press page with a handful of these assets (try to pick a variety of shapes/sizes/color).
Create a link to the zip of all assets.

I can do this sometime next week, but I won't be assigning it lest somebody else grabs it.


[SPARTA-764] [SPARTA-772] New property added in transformations to control the returned values

sdk support split values

Coverage decreased (-0.06%) to 53.13% when pulling d311d8076ba3a4e8bb6582fe0bdca7e969ab7215 on compae:feature/parser-error-control into 20daf6a41dc06b40d7c42b41a2354fbe53078aa2 on Stratio:master.


Possible issue with very long number in Donation

@tylergaw reported an error in Blocks using GW.js in which entering very large number caused an unspecified error.
Steps to reproduce

Open up a payment block
Remove the maxlength constraint in the Other amount input
Enter a slew of 9's

Expected behaviour
Should format numbers until the end of time
Actual behaviour
Throws error
Client configuration
Browser / Node version: Chrome 56.0.2924.87 (64-bit)
Operating system: OSX
Logs / Stacktraces
Uncaught TypeError: Cannot read property 'length' of undefined

right here -->   if (d.split('.')[1].length) {
	                    d = languages[currentLanguage].delimiters.decimal + d.split('.')[1];
	                } else {
	                    d = '';
	                }

Which is inside: formatNumber  which is part of http://adamwdraper.github.com/Numeral-js/

Related to #56

If you don't want to remove the maxlength you can use a previous block release like https://cdn.thegroundwork.com/payments-block/1.4.0/


[SPARK-22075][ML] GBTs unpersist datasets cached by PeriodicRDDCheckpointer

What changes were proposed in this pull request?
PeriodicRDDCheckpointer will automatically persist the last 3 datasets called by PeriodicRDDCheckpointer.update.
In GBTs, the last 3 intermediate rdds are still cached after fit()
How was this patch tested?
existing tests and local test in spark-shell

Test build #81970 has started for PR 19288 at commit d39b028.

Test build #81970 has finished for PR 19288 at commit d39b028.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81970/
Test FAILed.

retest this please

Test build #81975 has started for PR 19288 at commit d39b028.

@srowen In MLlib, PeriodicRDDCheckpointer is only used in GradientBoostedTrees.
I just find that there is another checkpointer PeriodicGraphCheckpointer,  I will check it.

Test build #81982 has started for PR 19288 at commit 723c449.

@srowen  I check LDA : although unpersistDataSet is not called in it, no intermediate cached rdds is generated after fit().
Then I check Pregel, and find that each call of connectedComponents will add two intermediate cached rdds. So I call unpersistDataSet in it and the issue is fixed.
There is no other places using checkpointer.

Test build #81975 has finished for PR 19288 at commit d39b028.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81975/
Test PASSed.

@srowen I found that the cached rdds in Pregel is just the result graph. and the intermidiate rdds are already unpersisted directly out of the graphCheckpointer. So I think we don't need to modify Pregel

Test build #81991 has started for PR 19288 at commit 0f84ab9.

Test build #81991 has finished for PR 19288 at commit 0f84ab9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81991/
Test PASSed.

Test build #81982 has finished for PR 19288 at commit 723c449.

This patch fails from timeout after a configured wait of `250m`.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81982/
Test FAILed.

Merged build finished. Test FAILed.

retest this please

Test build #81996 has started for PR 19288 at commit 0f84ab9.

Test build #81996 has finished for PR 19288 at commit 0f84ab9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81996/
Test PASSed.

@WeichenXu123 It maybe better to destory intermediate objects ASAP

OK I agree.


Where can I get audio samples? The link in the README is broken.

In README:

Audio Samples: https://mindslab-ai.github.io/assem-vc/

However, it's 404. Can I get audio samples somewhere? Thanks a lot.

Sorry for the late response.
Due to the company's name change, it changed to https://maum-ai.github.io/assem-vc/.


Set up metric or Imperial - UIKit

Provide users with options for selecting their preferred units

This is supported for all fields that it makes sense to convert between on the backend. Please see schema for details.

It was found by Beta Tester Megan that the slope files are saved in metric units. Maybe for now switch the setting to metric in app and enable later.


Mesher queue empty warning, poor mesh generation?

Hello, I am trying to get the mesher working properly, and I keep getting very odd results that don't seem to line up with the environment, and I am wondering if that is due to the mesher queue issues that keep coming up? I put a piece of the outputs below so you can see, as well as a screenshot of what the mesh looks like. Any idea what is going wrong here and how to fix it to get a better mesh?

I1207 15:28:41.334957 932942 ThreadsafeQueue.h:305] Queue with id: mesher_frontend is getting full, size: 3
I1207 15:28:41.334964 932942 ThreadsafeQueue.h:305] Queue with id: lcd_frontend_queue is getting full, size: 3
I1207 15:28:41.334965 932942 ThreadsafeQueue.h:305] Queue with id: visualizer_frontend_queue is getting full, size: 3
W1207 15:28:41.366852 932864 Visualizer3DModule.cpp:133] Mesher queue is empty, yet Backend or Frontend queue is not!This should not happen since Mesher runs at Backend pace!
W1207 15:28:41.366900 932864 Visualizer3DModule.cpp:133] Mesher queue is empty, yet Backend or Frontend queue is not!This should not happen since Mesher runs at Backend pace!
I1207 15:28:41.366964 932864 KimeraVioRos.cpp:215] Statistics
-----------                                  #	Log Hz	{avg     +- std    }	[min,max]
Display [ms]                            	   61	0.616744	{0.704918 +- 2.59065}	[0,20]
Lcd [ms]                                	   31	0.313430	{69.0000 +- 4.26615}	[64,83]
Mesher [ms]                             	   31	0.313614	{3.61290 +- 1.68676}	[2,8]
Stereo Data Provider [ms]               	    0
VioBackend [ms]                         	   31	0.313639	{4.22581 +- 2.33395}	[0,11]
VioFrontend Frame Rate [ms]             	 1452	14.7060	{2.91736 +- 0.529818}	[2,9]
VioFrontend Keyframe Rate [ms]          	   30	0.304269	{66.5333 +- 6.46334}	[53,90]
VioFrontend [ms]                        	 1483	14.9846	{4.27175 +- 12.8059}	[2,90]
Visualizer [ms]                         	   31	0.313427	{0.516129 +- 0.724383}	[0,3]
backend_input_queue Size [#]            	   31	0.312995	{1.00000 +- 0.00000}	[1,1]
data_provider_left_frame_queue Size [#] 	 1485	14.9738	{1.00000 +- 0.00000}	[1,1]
data_provider_right_frame_queue Size [#]	 1485	14.9738	{1.00067 +- 0.00000}	[1,2]
display_input_queue Size [#]            	   61	0.615418	{1.00000 +- 0.00000}	[1,1]
frontend_input_queue Size [#]           	 1483	14.9529	{1.00000 +- 0.00000}	[1,1]
lcd_backend_queue Size [#]              	   31	0.313532	{1.00000 +- 0.00000}	[1,1]
lcd_frontend_queue Size [#]             	 1483	14.9795	{36.3122 +- 22.7148}	[1,77]
mesher_backend Size [#]                 	   31	0.312982	{1.00000 +- 0.00000}	[1,1]
mesher_frontend Size [#]                	 1483	14.9532	{36.3122 +- 22.7148}	[1,77]
visualizer_backend_queue Size [#]       	   31	0.313626	{1.00000 +- 0.00000}	[1,1]
visualizer_frontend_queue Size [#]      	 1483	14.9835	{36.3122 +- 22.7148}	[1,77]
visualizer_lcd_queue Size [#]           	   31	0.313429	{1.00000 +- 0.00000}	[1,1]
visualizer_mesher_queue Size [#]        	   31	0.313613	{1.00000 +- 0.00000}	[1,1]
I1207 15:28:41.398730 932942 StereoVisionImuFrontend.cpp:113] ------------------- Processing frame k = 1485--------------------
I1207 15:28:41.398806 932942 StereoVisionImuFrontend.cpp:138] Current IMU Preintegration frequency: 192308 Hz. (52 us).
I1207 15:28:41.401396 932942 Tracker.cpp:149] Optical Flow Timing [ms]: 2
I1207 15:28:41.401603 932942 Frame.h:144] Frame id: 1485 at timestamp:<PHONE_NUMBER>269879569
isKeyframe_: 0
nr keypoints_: 301
nr valid keypoints_: 301
nr landmarks_: 301
nr versors_: 301
size descriptors_: [0 x 0]
I1207 15:28:41.401628 932942 CameraParams.cpp:293]
******************** Camera Parameters ********************
Name                                                  Value
-----------------------------------------------------------
Camera ID ..........................................left_cam
Intrinsics:
- fx....................................1071.58
- fy.................................................1072.37
- cu.................................................659.288
- cv.................................................399.247
frame_rate_: ....................................4.65661e-10
image_size_:
- width...................................1280
- height.................................................720
depth_:
- virtual_baseline.............................0.01
- depth_to_meters..........................................1
- min_depth................................................0
- max_depth...............................................10
- is_registered............................................1
-----------------------------------------------------------
I1207 15:28:41.401636 932942 CameraParams.cpp:294] - body_Pose_cam_: R: [
	0, 1.11022e-16, 1;
	-1, -2.22045e-16, 1.11022e-16;
	0, -1, 0
]
t: 000000 0.0375 000000
- K: [1071.578979492188, 0,<PHONE_NUMBER>484375;
 0, 1072.369140625,<PHONE_NUMBER>664062;
 0, 0, 1]
- Distortion Model:1
- Distortion Coeff:[0, 0, 0, 0, 0]
I1207 15:28:41.402297 932942 Tracker.cpp:368] Low mono disparity.
W1207 15:28:41.416780 932864 Visualizer3DModule.cpp:133] Mesher queue is empty, yet Backend or Frontend queue is not!This should not happen since Mesher runs at Backend pace!
I1207 15:28:41.436164 932942 FeatureDetector.cpp:208] Number of points detected : 766
I1207 15:28:41.436188 932942 FeatureDetector.cpp:222] Need n corners: 0
I1207 15:28:41.436221 932942 NonMaximumSuppression.cpp:102] Running Binning: 6
I1207 15:28:41.436228 932942 NonMaximumSuppression.cpp:119] Non Maximum Suppression Timing [ms]: 0
W1207 15:28:41.436231 932942 FeatureDetector.cpp:160] No corners extracted for frame with id: 1485
I1207 15:28:41.436241 932942 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
I1207 15:28:41.436242 932942 StereoCamera.cpp:278] Rectifying already rectified stereo frame ...
I1207 15:28:41.459314 932942 StereoVisionImuFrontend.cpp:180] Keyframe 1485 with: 301 smart measurements
I1207 15:28:41.459421 932942 ThreadsafeQueue.h:305] Queue with id: mesher_frontend is getting full, size: 4
I1207 15:28:41.459427 932942 ThreadsafeQueue.h:305] Queue with id: lcd_frontend_queue is getting full, size: 4
I1207 15:28:41.459430 932942 ThreadsafeQueue.h:305] Queue with id: visualizer_frontend_queue is getting full, size: 4
I1207 15:28:41.459582 932943 RegularVioBackend.cpp:214] Tracker has a LOW_DISPARITY status.
I1207 15:28:41.463665 932943 VioBackend.cpp:1380] Backend: Update IMU Bias.
I1207 15:28:41.465530 932942 StereoVisionImuFrontend.cpp:113] ------------------- Processing frame k = 1486--------------------
I1207 15:28:41.465595 932942 StereoVisionImuFrontend.cpp:138] Current IMU Preintegration frequency: 217391 Hz. (46 us).
W1207 15:28:41.466771 932864 Visualizer3DModule.cpp:133] Mesher queue is empty, yet Backend or Frontend queue is not!This should not happen since Mesher runs at Backend pace!
I1207 15:28:41.468376 932942 Tracker.cpp:149] Optical Flow Timing [ms]: 2
I1207 15:28:41.468643 932942 Frame.h:144] Frame id: 1486 at timestamp:<PHONE_NUMBER>336546086
isKeyframe_: 0
nr keypoints_: 301
nr valid keypoints_: 301
nr landmarks_: 301
nr versors_: 301
size descriptors_: [0 x 0]

我有一样的问题
兄弟　你解决了吗

I am also having similar problems when working with the oak-d camera (not even getting meshes) which I believe are related. Can you please share the camera configuration yaml file, the params (in the Kimera_VIO resources), the launch file, and the rviz file. It would be nice to share as welll wish linux and ROS version you are using and gtsam version.

I have the same issue with Euros V1_01_easy.bag. Have you solved it?

我也没解决 我导给我安排别的活了 没有继续修改了
At 2024-07-14 06:51:48, "avb" @.***> wrote:
I have the same issue with Euros V1_01_easy.bag. Have you solved it?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

I had a bit of luck when I moved into environments with more, flat horizontal and vertical surfaces, but I have since discovered that the odometry (and actually the mesh too, now I'm thinking of it) in the ros version is utter garbage, so I've been working with getting the non-ros version working with live data instead. However, I've had no response from the writers (or anyone else who has solved it) on either getting the ros odometry to not be garbage (see here) and or getting the non-ros working with live data (see here). I've got a version of the non-ros that will compile and run the camera, but so far it just crashes right away after the camera boots.


"Cannot dlopen some GPU libraries." does not List what Libraries Failed to Load

Issue type
Feature Request
Have you reproduced the bug with TensorFlow Nightly?
Yes
Source
binary
TensorFlow version
tf-nightly               2.17.0.dev20240504
Custom code
No
OS platform and distribution
Ubuntu Jammy
Mobile device
No response
Python version
3.12
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
I have installed tf-nightly from the official PYPI package, like so:
pip install tf-nightly[and-cuda]

When I load Tensorflow, it isn't seeing my GPU, and I get the message
Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.

I normally use the conda-forge packages, in part precisely because it should handle some of these things for me so I don't have to worry. But I saw pip installing a large number of CUDA libraries during the process, so I'd expect most of what I need to be there.
The function MaybeTryDlopenGPULibraries() is responsible for attempting to load the required libraries in at runtime, however, it doesn't tell me what libraries it tried to find, what search path it was using, etc. As I've followed the steps in the guide at that URL, it's not the most helpful diagnostic message without further information.
Whilst short, and therefore not cluttering the screen (which may be good for many situations), the message isn't that helpful to try and work out what the problem is. Obviously on modern complex systems, library search paths can be pretty finicky to work out, so if not the default behaviour, I'd at least like to see a flag/environment variable I can set to see output of what library loads were attempted, what succeeded (and the path), and what was missing, in addition to other debugging output. If the short form of the message is kept as the default behaviour, then it would be good for this to print out how to set this option so that I can go round again and get more verbose output.
Thanks
Standalone code to reproduce the issue
See aobve

Relevant log output
No response

Hi @stellarpower ,
You need to install GPU driver manually.After that you need to set LD_LIBRARY_PATH to the path where nvidia libraries installed. You may refer this comment . Please refer #63362 for more details. Thanks

Thanks; I had done all this previously.
But I have opened as an issue irrespective of my own setup, because I believe it should be possible to get more information from the error message. Without knowing what libraries failed to be opened, just re-installing and following the instructions again isn't a particularly efficient way to debug what happened.

Yes, I agree. I am running into the same issue now. This is particularly frustrating because of the arcane versioning of CUDA-related toolsets (i.e. the Python packages vs. CUDA vs. the dependency matrix in the documentation). For example:

TensorFlow documentation lists the correct CUDA version as 11.8, so I installed that and updated my $PATH, $LD_LIBRARY_PATH, etc. accordingly (along with cudNN 8.6 as listed).
When I use a fresh Python 3.10 installation to install tensorflow[and-cuda] via Pip, it seems to be defaulting to CUDA runtime 12.3?

Collecting nvidia-cublas-cu12==<IP_ADDRESS>
  Using cached nvidia_cublas_cu12-<IP_ADDRESS>-py3-none-manylinux1_x86_64.whl (412.6 MB)
Collecting nvidia-cuda-nvrtc-cu12==12.3.107
  Using cached nvidia_cuda_nvrtc_cu12-12.3.107-py3-none-manylinux1_x86_64.whl (24.9 MB)
Collecting nvidia-curand-cu12==<IP_ADDRESS>
  Using cached nvidia_curand_cu12-<IP_ADDRESS>-py3-none-manylinux1_x86_64.whl (56.3 MB)
Collecting nvidia-cusparse-cu12==<IP_ADDRESS>
  Using cached nvidia_cusparse_cu12-<IP_ADDRESS>-py3-none-manylinux1_x86_64.whl (197.5 MB)
Collecting nvidia-nvjitlink-cu12==12.3.101
  Using cached nvidia_nvjitlink_cu12-12.3.101-py3-none-manylinux1_x86_64.whl (20.5 MB)
Collecting nvidia-nccl-cu12==2.19.3
  Using cached nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl (166.0 MB)
Collecting nvidia-cuda-nvcc-cu12==12.3.107
  Using cached nvidia_cuda_nvcc_cu12-12.3.107-py3-none-manylinux1_x86_64.whl (22.0 MB)
Collecting nvidia-cusolver-cu12==<IP_ADDRESS>
  Using cached nvidia_cusolver_cu12-<IP_ADDRESS>-py3-none-manylinux1_x86_64.whl (125.2 MB)
Collecting nvidia-cudnn-cu12==<IP_ADDRESS>
  Using cached nvidia_cudnn_cu12-<IP_ADDRESS>-py3-none-manylinux1_x86_64.whl (704.7 MB)
Collecting nvidia-cufft-cu12==<IP_ADDRESS>
  Using cached nvidia_cufft_cu12-<IP_ADDRESS>-py3-none-manylinux1_x86_64.whl (98.8 MB)
Collecting nvidia-cuda-cupti-cu12==12.3.101
  Using cached nvidia_cuda_cupti_cu12-12.3.101-py3-none-manylinux1_x86_64.whl (14.0 MB)
Collecting nvidia-cuda-runtime-cu12==12.3.101
  Using cached nvidia_cuda_runtime_cu12-12.3.101-py3-none-manylinux1_x86_64.whl (867 kB)

and relevant links in the docs only seem to link out to Docker-related stuff, like https://www.tensorflow.org/install/source so the vast majority of information on the internet is out of date.
Is there any clearer guidance for how to get TensorFlow working on GPUs assuming your CUDA install is non-standard, i.e., not installed out of the Ubuntu package repo (which is infeasible in many academic settings)?
Thanks very much in advance.

@wjno thanks - I resolved the underlying problem in the end, and from memory thought I had increased the log verbosity as high as it would go, but maybe I had not. If I encounter some library problems again I'll give it a go. Cheers!

EDIT: I was able to resolve this by using the TF_CPP_MAX_VLOG_LEVEL=3 (something buried in the above linked issue) to debug. It turned out that our new module system was nuking my LD_LIBRARY_PATH after cudNN was imported, so CUDA could be found but cudNN could not. Adding a note about this option to the error message around GPUs could potentially save a lot of grief (even in scenarios like mine where the issue lies not with TensorFlow, but something upstream). Just a thought. May help you as well @stellarpower (seems to be what you were looking for when you opened the issue)

Hi @wjn0 , AFAIK the setting TF_CPP_MAX_VLOG_LEVEL=3 will only disable the debugging logs from the console.I doubt and want to know whether after disabling these logs then only cudnn libraries are being detectable? Setting right path for LD_LIBRARY_PATH should resolve the issue irrespective of disabling the debugging logs.Correct me if i am wrong.
Thanks for the info.