[HUDI-5285] Exclude *-site.xml files from jar packaging

Change Logs
Exclude *-site.xml files from jar packaging. Fixes #7292
Impact
Minimal impact. Just excluding some test resources.
Risk level (write none, low medium or high below)
low
Documentation Update
Describe any necessary documentation update if there is any new feature, config, or user-facing change

The config description must be updated if new configs are added or the default value of the configs are changed
Any new feature or user-facing change requires updating the Hudi website. Please create a Jira ticket, attach the
ticket number here and follow the instruction to make
changes to the website.

Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

@xushiyan Can you please review this patch? I think we can exclude the test resources (especially the properties files that conflict with user-provided resources) from every module.

@xushiyan Can you please review this patch? I think we can exclude the test resources (especially the properties files that conflict with user-provided resources) from every module.

sounds good. make sure test resources are used strictly by test code

@xushiyan Can you please review this patch? I think we can exclude the test resources (especially the properties files that conflict with user-provided resources) from every module.

sounds good. make sure test resources are used strictly by test code

Sure. Created HUDI-5292 to track.


fix: Improve debug log in BLE connection

:recycle: Current situation
I have a slight problem with the log of the connectBLE function (in platform.ts). The this.switchBotBLE object is wrapped in a template literal in JS, so the output of that log is [object Object].

:bulb: Proposed solution
Wrap the this.switchBotBLE object in 'JSON.stringify' to inspect it in more detail

This change, causes this issue:

@donavanbecker
The class this.switchBotBLE is too big, so when stringifying it, a circular reference occurs. To work around this, you can log only the necessary information in the log, such as ${device.deviceType}: ${accessory.displayName} 'node-switchbot' found! or using a stringify library that prevents circular references. Which one looks better?

I already fixed doing it a different way. If you look at the last commit in the beta branch.


fix: use install_modules_dependencies to fix compilation issues on RN 0.73 with Fabric

📜 Description

💡 Motivation and Context

📢 Changelog

CI

build iOS apps on pull_request (in https://github.com/kirillzyusko/react-native-keyboard-controller/pull/305 it was specified for push only 😔)

JS

iOS

Android

🤔 How Has This Been Tested?

📸 Screenshots (if appropriate):

📝 Checklist

[ ] CI successfully passed

Seems like fabric build is failing for RN < 0.73. I asked a question here https://github.com/lottie-react-native/lottie-react-native/pull/1139#issuecomment-1868550486 👀

We need to wait for new RN 0.72 version to be released and after that we can update RN version in RNKC and merge this PR.


Add req_id to the jsonapi error handler

related to: https://github.com/fabric8-services/fabric8-wit/issues/1548

@hectorj2f snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1549-1

[test]

@hectorj2f snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1549-2

This sounds like the wrong fix. Wouldn't it be to change these to use the direct return jsonapi.XXXX verison? And possible make ErrorToJSONAPIErrors internal?

@aslakknutsen right! I agree on unifying the way we handle the errors and return them to the jsonapi. However, that isn't fully related to the purpose of this PR, although I can include it here if you want.

@hectorj2f I mean, wouldn't it make sense if the ErrorHandler does the logging instead of the 'Error Wrapper/Creator'.

@aslakknutsen I understand your chocie. But we can miss  error logs if I move the log to the error handler function. For instance, I won't see 404 error logs if an area isn't found...

@aslakknutsen That is why we should unify the error handling to pass trough a single function where it will be printed

@hectorj2f snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1549-4

@hectorj2f snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1549-6

@hectorj2f snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1549-7


Zend\Db\Adapter\AdapterServiceFactory always invoke Zend\Db\Adapter\Adapter

I created my own Db\Adapter\AdapterServiceFactory so I could be able to call my own Db\Adapter.
namespace RVMvp\Db\Adapter;

use Interop\Container\ContainerInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\Db\Adapter\AdapterServiceFactory as ZendAdapterServiceFactory;

class AdapterServiceFactory extends ZendAdapterServiceFactory
{
    public function createService(ServiceLocatorInterface $container)
    {
        return $this($container, Adapter::class);
    }
}

It should create a service of RVMvp\Db\Adapter\Adapter but keep creating Zend\Db\Adapter\Adapter.
This is happening because the invokable method is calling directly the Zend\Db\Adapter\Adapter instead of the requested name provided on createService method:
namespace Zend\Db\Adapter;

use Interop\Container\ContainerInterface;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;

class AdapterServiceFactory implements FactoryInterface
{
    /**
     * Create db adapter service
     *
     * @param ContainerInterface $container
     * @param string $requestedName
     * @param array $options
     * @return Adapter
     */
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
    {
        $config = $container->get('config');
        return new Adapter($config['db']); // HERE IT'S CALLING DIRECTLY
    }

    /**
     * Create db adapter service (v2)
     *
     * @param ServiceLocatorInterface $container
     * @return Adapter
     */
    public function createService(ServiceLocatorInterface $container)
    {
        return $this($container, Adapter::class);
    }
}

I did my workaround adding the invokable method to my own AdapterServiceFactory:
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
 {
        $config = $container->get('config');
        return new $requestedName($config['db']); // CHANGED TO REQUESTED NAME
 }

I'm suggesting a bugfix so we don't need to override the invokable method.

Hello @raivirtual , You should define a factory for the adapter interface:
'dependencies' => [
    //...
    'factories' => [
        //...
        \Zend\Db\Adapter\AdapterInterface::class => \My\Db\AdapterFactory::class,
        //...
    ],
    //...
],

In servicemanager config the Zend\Db\Adapter\Adapter::class service name is actually an alias for Zend\Db\Adapter\AdapterInterface::class::class (see ConfigProvider in zend-db), but you should build your dependencies upon the AdapterInterface::class interface as service name.
kind regards

This repository has been closed and moved to laminas/laminas-db; a new issue has been opened at https://github.com/laminas/laminas-db/issues/21.


NFS provisioner helm 3 setup documentation

Hello
Could anyone pls update the NFS provisioner docs for Helm 3? I'm unable to execute that example from docs here
Thanks!

Hi tampler, This issue has been fixed via PR #20 in openebs/dynamic-nfs-provisioner repo.
Installation:

For detailed instructions about installation of OpenEBS NFS provisioner please refer this doc

Closing this issue since it has been addressed via #20. Please feel free to re-open if there are any issues.


BT/OT l2 switch to new net_pkt api

Codecov Report

Merging #13592 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #13592   +/-   ##
=======================================
  Coverage   52.45%   52.45%
=======================================
  Files         322      322
  Lines       46592    46592
  Branches    10768    10768
=======================================
  Hits        24442    24442
  Misses      17247    17247
  Partials     4903     4903

Continue to review full report at Codecov.

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

hum CI does not built OT anymore as well.

With OpenThread it's a little trickier - there were complaints that OT builds are too slow -> #12206, as it currently downloads OT repo during build. Hopefully, once west allows us to integrate OT repository, we could reenable them.

Ok


Another breaking change that I've noticed is that this code now doesn't put the error "can't be blank" into changeset

Another breaking change that I've noticed is that this code now doesn't put the error "can't be blank" into changeset:
{%{}, %{uris: {:array, :string}}}
|> Ecto.Changeset.cast(%{uris: []}, [:uris], empty_values: ["", []])
|> Ecto.Changeset.validate_required(:uris)

but it was there in Ecto. 3.7.2
Originally posted by @fuelen in https://github.com/elixir-ecto/ecto/issues/3840#issuecomment-1117155628

@greg-rychlewski should a list of ["", ""] also be considered empty if the empty values are [[], ""]?

oh good catch...I would say yes. otherwise they are letting an empty value pass through without changing it to the default. I can submit a PR if you agree.

PR is VERY welcome :)


Value of changed for a collection reset should be value.toJSON(), not empty array.

https://github.com/reboundjs/rebound/blob/master/packages/rebound-data/lib/model.js#L112

Resolved here: https://github.com/reboundjs/rebound/pull/64


CB-16282 Extend datalake API with instance type

See detailed description in the commit message.

retest this please

retest this please

retest this please

TODO: new type instead of map

Please add instance group name


Address not displayed properly

Dear all,
I am trying to make a new website for a friend based  on your theme but i can't get the address to be displayed properly :-/ is there a specific way to write it on _config.yml file ? The address I want is : Themistokleous 64, 106 81 Athens, Greece here is my code : https://github.com/kavouras-rempetika

You can separate your address per line, like so:
address:
  - line: Themistokleous 64
  - line: 106 81 Athens, Greece

or
address:
  - line: Themistokleous 64
  - line: 106 81 Athens
Greece


Add references to root declarations

Some references are commented because adding those resulted in it not working again 😢

Build is breaking because with this change it tries to see if the types inside dist exist before creating them, trying to exclude index.d.ts in tsconfig.json didn't work 😞

Closing as this doesn't work and I'm not sure how to fix. 😢


Please do not pollute my DOM

Really like the server-side rendering but got one problem with it. Is it possible to not include the extra "react1" container div since it messes with the CSS. Would be great if there was an additional optional parameter on the helper like this:
@Html.React("HelloWorld", new {name = "Daniel"}, "my-own-container")
If the optional parameter is specified no "react1" div is rendered and the optional is used when doing:
document.getElementById("my-own-container")

Hi @Daniel15, on the same issue, is it possible include another additional optional parameter on the helper like this:
@Html.React("HelloWorld", new {name = "Daniel"}, "my-own-container", "my-own-class1 my-own-class2");
Situation:
I have to render a list of comments, like:

It has a class applied to it that you may want for styling all comments on the page, but it also has a unique ID value (dynamically generated, nicely enough). This ID value is useful for direct linking. Now I can link directly to a particular comment on a particular page easily and keep a standard.
To set a style for each id in my css will be a little ugly, like:
#comment-27299{
...
}
#comment-27300{
...
}

So, if have a possibility to set a class-name in @Html.React will be great.
Thanks.

Why when I use setInterval function with server-side rendering, I get an error that setInterval is undefined?

@mocanSergiu666 - setInterval can not be used when doing server rendering. setInterval is part of the BOM (Browser Object Model) which is not available in server-side JavaScript.

To render just the component (with an optional reactId), the following extension method should do the trick:
using System.Web.Mvc;
using System.Web;
using System;
using React;
using Newtonsoft.Json;

namespace YourProject.Extensions
{
    public static class HtmlHelperExtensions
    {
        public static IHtmlString ReactWithoutContainer(this HtmlHelper helper, string componentName, object props)
        {
            var serializedProps = JsonConvert.SerializeObject(props, ReactSiteConfiguration.Configuration.JsonSerializerSettings);

			//If you want to add a reactId to the top level element, uncomment the following line and render the
			//reactId property as an id attribute on the top level element in your component like this:
			//

			//
			//

			dynamic deserialized = JsonConvert.DeserializeObject(serializedProps, ReactSiteConfiguration.Configuration.JsonSerializerSettings);
            deserialized.reactId = "react_" + Guid.NewGuid().ToShortGuid();

			serializedProps = JsonConvert.SerializeObject(deserialized, ReactSiteConfiguration.Configuration.JsonSerializerSettings);
            var initializedCode = string.Format("React.createElement({0}, {1})", componentName, serializedProps);
            var code = string.Format("ReactDOMServer.renderToStaticMarkup({0})", initializedCode);
            return helper.Raw(React.ReactEnvironment.Current.Execute<string>(code));
        }
    }
}

To use it in your cshtml, just write the following:
    @Html.ReactWithoutContainer("Components.YourComponent", new
        {
            property1 = "value1",
            property2 = "value2"
        })

Please note that this extension method reaches quite far into ReactJs.net. It might get you into trouble down the road.


[FEAT]

Current state:
Wanted state:
Add running time since install system.
I like to run the following simple script in Bash to see how old the system is since install

# Get the creation time of the filesystem
creation_time=$(sudo dumpe2fs $(mount | grep 'on \/ ' | awk '{print $1}') 2>/dev/null | grep 'Filesystem created' | awk '{print $3, $4, $5}')

# Convert the creation time to epoch
creation_epoch=$(date -d "$creation_time" +"%s")

# Get the current time
current_epoch=$(date +"%s")

# Calculate the uptime in seconds
uptime_seconds=$((current_epoch - creation_epoch))

# Convert uptime to a more human-readable format
days=$((uptime_seconds / 86400))
hours=$(( (uptime_seconds % 86400) / 3600 ))
minutes=$(( (uptime_seconds % 3600) / 60 ))
seconds=$((uptime_seconds % 60))

# Print the uptime
echo "Server uptime: $days days, $hours hours, $minutes minutes, $seconds seconds"

You may use Command module.
{
  "type": "command",
  "text": "/path/to/your/script",
  "key": "time since install system"
}

Worth noting: because your script uses sudo, you may have to run fastfetch with root privilege to get it working.

What about the following:
#!/usr/bin/env python3
import subprocess
from datetime import datetime

# Get the filesystem device
device_info = subprocess.run(["mount"], stdout=subprocess.PIPE, check=True, text=True)
device_line = [line for line in device_info.stdout.split('\n') if 'on / ' in line][0]
device = device_line.split()[0]

# Get the creation time of the filesystem
creation_info = subprocess.run(["sudo", "dumpe2fs", device], stdout=subprocess.PIPE, check=True, text=True)
creation_time_line = [line for line in creation_info.stdout.split('\n') if 'Filesystem created' in line][0]
creation_time = ' '.join(creation_time_line.split()[3:6])  # Adjusting the indices to capture the date properly

# Convert the creation time to epoch
creation_epoch = datetime.strptime(creation_time, "%b %d %H:%M:%S").replace(year=datetime.now().year).timestamp()

# Get the current time
current_epoch = datetime.now().timestamp()

# Calculate the uptime in seconds
uptime_seconds = int(current_epoch - creation_epoch)

# Convert uptime to a more human-readable format
days = uptime_seconds // 86400
hours = (uptime_seconds % 86400) // 3600
minutes = (uptime_seconds % 3600) // 60
seconds = uptime_seconds % 60

# Print the uptime
print(f"Server uptime: {days} days, {hours} hours, {minutes} minutes, {seconds} seconds")

Whatever. You save your script to a file, run it and grab the output. That's all.
BTW. I think stat / is enough

Thanks for the info...


failed to generate coverage profile: failed to start -SW

failed to generate coverage profile: failed to start -SW [-SW /home/user/syzXXXX/vmlinux]: exec: "-SW": executable file not found in $PATH
But I saw:
syz-ci/syzupdater.go:
if _, err := osutil.RunCmd(time.Hour, upd.syzkallerDir, "make", "generate"); err != nil {
if _, err := osutil.RunCmd(time.Hour, upd.syzkallerDir, "make", "host", "ci"); err != nil {
if _, err := osutil.RunCmd(time.Hour, upd.syzkallerDir, "go", "test", "-short", "./..."); err != nil {
syz-fuzzer/fuzzer.go:
out, err := osutil.RunCmd(time.Minute, "", *flagExecutor, "version")
And thus this is definitely not correct:
syz-manager/cover.go:
out, err := osutil.RunCmd(time.Hour, "readelf", "-SW", vmlinux)
After inserting "" into cover.go I got correct

Another one which is buggy is also this:
vm/qemu/qemu.go:
if _, err := osutil.RunCmd(10*time.Minute, "ssh-keygen", "-t", "rsa", "-b", "2048",
There should be "" inserted before "ssh-keygen".   Thanks.


Downgrading fasterxml jackson to 2.6.7 to be spark compatible

For context.. 2.6.7 is where spark 2.4 is at .

tested an app that uses spark 2.2/jackson 2.6.5 and it seems to interop. landing


VTK8 - Known volume rendering differences which should be looked into.

Known volume rendering differences which should be looked into.
http://portal.nersc.gov/project/visit/tests/2018041722:00/surface_trunk_serial/rendering_volume.html
http://portal.nersc.gov/project/visit/tests/2018041722:00/surface_trunk_serial/legends_07.html
http://portal.nersc.gov/project/visit/tests/20180417-22:00/surface_trunk_serial/globe_04.html
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 3130
Status: Pending
Project: VisIt
Tracker: Bug
Priority: Normal
Subject: VTK8 - Known volume rendering differences which should be looked into.
Assigned to: -
Category: -
Target version: 3.0
Author: Eric Brugger
Start: 05/17/2018
Due date:
% Done: 0%
Estimated time:
Created: 05/17/2018 11:55 am
Updated: 05/22/2018 12:44 pm
Likelihood: 3 - Occasional
Severity: 4 - Crash / Wrong Results
Found in version: trunk
Impact:
Expected Use:
OS: All
Support Group: Any
Description:
Known volume rendering differences which should be looked into. http://portal.nersc.gov/project/visit/tests/2018041722:00/surface_trunk_serial/rendering_volume.htmlhttp://portal.nersc.gov/project/visit/tests/2018041722:00/surface_trunk_serial/legends_07.htmlhttp://portal.nersc.gov/project/visit/tests/20180417-22:00/surface_trunk_serial/globe_04.html
Comments:

I think the changes in the volume plot are as expected. I think the lighting in the default volume rendering method is a bit harsh. There are controls for ambient, diffuse, specular and shinines but they are grayed out with the default method. Here are some images from noise.silo with the default rendering and with OSPRAY. The lighting in the OSPRAY image is a lot more pleasing. The top image is the with OSPRAY. We should see if we can improve the lighting.

I took a quick look at this, and adding the ambient, diffuse, specular, etc. should be fairly simple.


feat: multi-profile support for git providers(#777)

Multiple Profile support for Git Providers
Description
Added TokenIdentity, TokenScope & TokenScopeType enum to GitProviderConfig struct to differentiate tokens and Saves git config id as combinations of GitProvider Name + Identity Name e.g., github_+_testToken

[x] This change requires a documentation update
[x] I have made corresponding changes to the documentation

This PR addresses issue #777
/claim #777

@the-johnwick the PR is ready for review but there's nothing in the description and one of the checks is failing.

That comment should go on the PR and not the issue.
Please include a description in the PR before requesting a review. The description should be filled out according to the template and be enough to describe all the changes made in the PR.

Did you run /hack/generate-cli-docs.sh?

It really does output a diff for me when running.
Are you maybe developing daytona inside of daytona?

It really does output a diff for me when running.
Are you maybe developing daytona inside of daytona?

@Tpuljak No, I wasn't using Daytona and in last commit those two files were modified but still failling the checks

Please rerun it and commit (without forcing) separately.

@the-johnwick can you please record your screen while running
./hack/generate-cli-docs.sh
git status

@Tpuljak Please check https://github.com/user-attachments/assets/45a09f06-af6d-4353-9c77-d0975e55a2de

Thanks for the video. I noticed that you're running this on windows. That's the issue. Please run with GOOS=linux set. The issue is that we exclude some files from the windows build so they're not generated in the docs in your case.

@Tpuljak Thank you for the review. Could you please share a screenshot of the error so I can better understand what happened? The expected behavior is that it should work perfectly across all branches since the changes I made are branch-independent. Additionally, I believe we don't have separate Git configurations for different branches from the same repository.

To reproduce:

dtn purge
Switch to the main branch
Start the server
Add a git provider with dtn gp add
Stop the server
Switch to your branch
dtn gp ls

I can't screenshot because the error just includes the entire list of Git providers I added which is confidential.

@Tpuljak I tried to reproduce the bug. but I failed to do so.

Okay, I'll try again later and let you know what I find.

Got this after adding two GitHub identities and running daytona create and selecting one

@Tpuljak I guess you must have git provider added already which has these fields token_identity, token_scope & token_scope_type empty that is why this is happening. you have to remove all the git providers and then readd them. to make it work perfectly. i just added it in commit message

That's what I've been saying 😄

@the-johnwick I already tried both without purging and after purging the config folder

If that's the case with purge, please raise and issue - might be Windows specific so don't forget to mention it.
 But I can see that the issue was resolved.
I ran into another issue when trying to remove one of the two GitHub configs

and my second GitHub identity didnt seem to work for daytona create private repos. Can you please try that and let me know.

@Tpuljak Can we get this merge as soon as possible? I am rebasing and resolving conflicts everyday 😂

Thanks for being patient with this. It's a big PR with big changes so it takes a bit more time of our hands. We're working on reviewing it asap.
In the meantime, please address this issue:

Seems that setting prebuild webhooks no longer works.
I added a Github provider, added a project config with pc add and then a new prebuild with pb add. You'll notice in the server logs that the webhook ping fails because it can not find the appropriate git provider on the server.

@Tpuljak If possible can you share project config and prebuild config.

The project config is for one of my private repos so can't share it fully. Everything in it is set to default values. The prebuild config is also set to default values.
I believe the issue is somewhere with finding the appropriate git provider

@Tpuljak actually I don't have idea about both some any sample config will help to reproduce the bug. Look at error log I am not sure whether it is auto selecting or not.

You can add them yourself with dtn pc add and dtn pb add and try it.

@Tpuljak in this comment https://github.com/daytonaio/daytona/pull/1032#discussion_r1754440264 you want to rename the flag to --git-provider-config-id does it mean that the user should pass Git config Id?

That's correct

if yes then we can remove the alias completely.

We should keep the alias because it's human-readable and makes it easier to remember which git provider is used for what. It's simply a label for UX purposes.

@Tpuljak Ok then I will rename it to alias so it will be more UX-friendly.

You can not rename the flag to alias because the alias doesn't have to be unique. It has to be git-provider-config-id

Ok no problem. i will rename it to git-provider-config-id and user will pass git provider config alias to it.

@the-johnwick no 😄
The user will pass the GitProviderConfigId to it, not the alias.
Furthermore, the user can pass nothing to it and that's also okay because you will assign the appropriate config id on the server when creating the workspace.

@Tpuljak https://github.com/daytonaio/daytona/pull/1032#discussion_r1754380496 To send the gitconfigId to the server I am thinking of adding GitProviderConfigId to the CreateWorkspaceDTO struct. what's your view on this?

No need for that. Each project has its own GitProviderConfigId. The workspace itself has nothing to do with git repositories.

@Tpuljak Right but when user passed the GitProviderConfigId then how can I add it to projects and send in the request to the server and check if it is nil or not

You will pass it in CreateProjectDTO for each project.

@Tpuljak There was no reply input for this comment #1032 (comment) Which one are you saying? I mean, in project creation, we let the user select a git provider from the list that we used to do before, and in the git provider add process, we added just one more input: Alias.  The user can skip it but enter.

You're right, all good. Let's keep it this way.

Also, please rebase with main to resolve the conflicts.

@Tpuljak Should we need to add --git-config-id to dtn pc add ?

Yes, of course.

@the-johnwick Yes, I will review this today

@the-johnwick you received way too many reviews for this PR and every time we review, you seem to rush to push the next change to rush us into reviewing.
As we already said, submitting untested code is not acceptable. Make sure to test everything that your PR addresses. Us testing your code for you is not acceptable.

@Tpuljak Testing done video link https://drive.google.com/file/d/1B6yLyidN3oY8nPqGLsUM-3OFiVXc2Jw5/view?usp=sharing Please take a look

Please upload the file directly into github.

@Tpuljak Video is more than 10mb and if I reduce it I might loose quality

Then either compress it (and reduce quality) or split it into multiple videos.

@the-johnwick again, please stop tagging us and requesting reviews. We will get to your PR when we have the time.
When I said to upload a video with reduced quality, I didn't mean to reduce it so much 😅 . Please cut it into a few smaller videos that can be uploaded in full quality so they are watchable.

@Tpuljak Can I Spilt this PR in to part since it is big PR and it implements more than one features and it would be easy for you to review as well.

There are more than 180 conversation items here and it's close to done. No need to split this into 2 PRs since it's only one feature that it implements.


refactor use of io.reactive.functions.Function into j.u.f.Function

is the dependency on reactor still necessary ?

What is the motivation pushing this PR ?


Generate an index

If the document has a section with the style "index", add an index to the output document at that location.
For more details about index creation, see https://github.com/asciidoctor/asciidoctor/issues/450

Any hints on how to make this happen? I'd love to help & I pretty much need an index and the Docbook-fop-PDF chain is just annoying.
So - where do I start?

I went ahead and took a stab at this. As it turns out, I couldn't use the references table since it doesn't contain any page number information. However, I can override convert_inline_indexterm to build the index incrementally, then emit it at the end in the convert_index method.
First, here's how I decide to (re)model the index data:
index = {
  'B' => {
    'Bengal Tiger' => [{ anchor: '__idx-234234', page: 3 }],
    'Big cats' => {
      'Lions' => [{ anchor: '___idx-873424', page: 1 }],
      'Tigers' => {
        'Bengal Tiger' => [{ anchor: '__idx-234234', page: 3 }],
        'Siberian Tiger' => [{ anchor: '__idx-234234', page: 3 }, { anchor: '__idx-89743', page: 5 }]
      }
    }
  }
}

Each level of nesting represents a term weight (primary, secondary, tertiary). The array are the references, which include the anchor and page number. This structure makes it easy to consume.
Here's the pull request containing the concept. https://github.com/asciidoctor/asciidoctor-pdf/pull/562

In theory, we could cut out the first level of the data structure and simply use a loop to detect when we change letters.

I forgot to mentioned that I arranged the index using the styles for the description list. Eventually, we'll probably want dedicated styles, but that should suffice for now.

@mojavelinux Your branch seems to work great!
I got around testing it and haven't seen issues with it so far - what's blocking this from landing in master?

@AVGP Your review ;)
One thing I was wondering is whether we should use two columns for the index. Most books do so and Prawn supports this.

I forgot about the case when a group can also have a reference. Therefore, we'll need to take the structure a bit deeper and introduce a refs key.
index = {
  'B' => {
    'Bengal Tiger' => {
      refs: [{ anchor: '__idx-234234', page: 3 }]
    },
    'Big cats' => {
      'Lions' => {
        refs: [{ anchor: '___idx-873424', page: 1 }]
      },
      'Tigers' => {
        refs: [{ anchor: '__idx-898971', page: 2 }],
        'Bengal Tiger' => {
          refs: [{ anchor: '__idx-234234', page: 3 }]
        },
        'Siberian Tiger' => {
          refs: [{ anchor: '__idx-234234', page: 3 }, { anchor: '__idx-89743', page: 5 }]
        }
      }
    }
  }
}

The index is now organized in two columns. I also implemented logic to prevent a letter category from being orphaned on a page by itself.

Due to how the index data is built, the index does have to be the last section in the document.

I decided to introduce a model to hold the index terms. See https://github.com/asciidoctor/asciidoctor-pdf/blob/master/lib/asciidoctor-pdf/index_catalog.rb


[restbed] fix static windows linkage

Allow static linkage on windows, by not defining dllexport and dllinport when build statically.

[X] Changes comply with the maintainer guide.
[X] SHA512s are updated for each updated download.
[ ] The "supports" clause reflects platforms that may be fixed by this new version.
[ ] Any fixed CI baseline entries are removed from that file.
[ ] Any patches that are no longer applied are deleted from the port's directory.
[X] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[X] Only one version is added to each modified port's versions file.

@JulZimmermann I converted this PR to 'draft' because we consider it to be in your hands right now to report this to upstream as it patches most declarations in the relevant library and we need upstream to at least be informed about that. Please feel free to come back with a link to how upstream has been notified and mark 'Ready for review'

Alright, I'll try to fix this upstream


[style]: align footer text

What's the style idea?
We need to align the footer text for desktop & mobile views
Add screenshots

Code of Conduct

[X] I agree to follow this project's Code of Conduct

You can assign this to me @priyankarpal

You can assign this to me @priyankarpal

I have assigned you another issue. now I can't assign you. so please work on that issue first

Hey @priyankarpal, Please assign this footer styling to me if no one is currently working on it. I would also like to add some other page links in the footer.

assigned to you @ritik48

Completed. Thanks for your contributions 🎉 ❤


feat(serve): find another port if default is already in use

Closes #1568

Sorry about that @hansl. I've updated the PR.

Linting errors. Please fix.

The lines were too long. Should we run the linting task before testing with a command like "pretest": "npm run lint"?

@clydin raised a pertinent objection in https://github.com/angular/angular-cli/issues/4201#issuecomment-274807646:

I would view the current deterministic behavior as an important trait of a development tool. Scripted and test-related scenarios, for example, rely on a particular setup. And if something is running on a port that is expected to be free, something is wrong.

Personally I think the automatic port behaviour should be opt-in, behind a flag if present. Even in day-to-day scenarios it's an insidious bug... it might take you a while before you notice that your port is now different, even though it's on the console.

Closing, please see https://github.com/angular/angular-cli/issues/1568 for details on how this is currently implemented.


Recursion limit reached when using vec of tuples

Description
I'm submitting a question:
Starting with an application that builds with no errors using cargo web deploy --release, when changing a field in a struct from listing: Vec<Entry> to listing: Vec<(Entry, bool)> the following error occurs:
$ RUST_BACKTRACE=full cargo web deploy -p the_app
   Compiling the_app v0.1.0 (/home/miklos/Code/my_app/the_app)
thread 'main' panicked at 'failed to parse cargo output: Error("recursion limit exceeded", line: 1, column: 25485)', src/libcore/result.rs:1084:5
stack backtrace:
   0:     0x55fcdeee4ee2 - backtrace::backtrace::libunwind::trace::he8b122396753abc9
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/libunwind.rs:88
   1:     0x55fcdeee4ee2 - backtrace::backtrace::trace_unsynchronized::h18fe1998c04a41d4
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/mod.rs:66
   2:     0x55fcdeee4ee2 - std::sys_common::backtrace::_print::habdbb4fd9d9c0917
                               at src/libstd/sys_common/backtrace.rs:47
   3:     0x55fcdeee4ee2 - std::sys_common::backtrace::print::hb1a087501dbb63e0
                               at src/libstd/sys_common/backtrace.rs:36
   4:     0x55fcdeee4ee2 - std::panicking::default_hook::{{closure}}::h24dac8a570d8db04
                               at src/libstd/panicking.rs:200
   5:     0x55fcdeee4bc6 - std::panicking::default_hook::h893744b6a334a746
                               at src/libstd/panicking.rs:214
   6:     0x55fcdeee5635 - std::panicking::rust_panic_with_hook::h86238c539b0cb6f7
                               at src/libstd/panicking.rs:477
   7:     0x55fcdeee51d2 - std::panicking::continue_panic_fmt::h40d8b593540103a4
                               at src/libstd/panicking.rs:384
   8:     0x55fcdeee50c6 - rust_begin_unwind
                               at src/libstd/panicking.rs:311
   9:     0x55fcdef073ea - core::panicking::panic_fmt::hd39929f6b65962b9
                               at src/libcore/panicking.rs:85
  10:     0x55fcdef074e7 - core::result::unwrap_failed::hba83d9a1c7cbeac2
                               at src/libcore/result.rs:1084
  11:     0x55fcde9507af - cargo_web::cargo_shim::BuildConfig::launch_cargo::hd9480118abca0cfb
  12:     0x55fcde950ec3 - cargo_web::cargo_shim::BuildConfig::build_internal::ha17125cf4e453047
  13:     0x55fcde94e7a1 - cargo_web::cargo_shim::BuildConfig::build::h09de474c85374d8f
  14:     0x55fcde7ff992 - cargo_web::build::Project::build_or_check::h5f1e7cfe4f9fea2a
  15:     0x55fcde87b2a8 - cargo_web::cmd_deploy::command_deploy::h2cab495cb49775f7
  16:     0x55fcde90c4f2 - cargo_web::run::h956ef2abc5adc4e9
  17:     0x55fcde7d4e20 - cargo_web::main::h882f7166863b526a
  18:     0x55fcde7cf4a3 - std::rt::lang_start::{{closure}}::h37d1f28b3af34129
  19:     0x55fcdeee5063 - std::rt::lang_start_internal::{{closure}}::h2d73454cf270e050
                               at src/libstd/rt.rs:49
  20:     0x55fcdeee5063 - std::panicking::try::do_call::h77a4575cf788f31b
                               at src/libstd/panicking.rs:296
  21:     0x55fcdeeef6ba - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:80
  22:     0x55fcdeee5bed - std::panicking::try::h52f0ea554a05d17e
                               at src/libstd/panicking.rs:275
  23:     0x55fcdeee5bed - std::panic::catch_unwind::h79d7d184f78cd1c9
                               at src/libstd/panic.rs:394
  24:     0x55fcdeee5bed - std::rt::lang_start_internal::hf6771be4bf884153
                               at src/libstd/rt.rs:48
  25:     0x55fcde7d4ff2 - main
  26:     0x7fad40dacee3 - __libc_start_main
  27:     0x55fcde7cc07e - _start
  28:                0x0 - <unknown>
thread 'main' panicked at 'failed printing to stdout: Broken pipe (os error 32)', src/libstd/io/stdio.rs:792:9
stack backtrace:

Even setting the recursion_limit to ridiculously high values does not seem to fix this - there must be infinite recursion somehow, but I'm unsure of how to debug what or where this may come from.
I've encountered recursion issues in the past as well but typically they are from the html! macro and can be avoided by restructuring the view, but I can't seem to solve this one.
Context (Environment)

Rust: rustc 1.39.0-nightly

yew: v0.8.0
stdweb: v0.4.18

target: wasm32-unknown-unknown

cargo-web: 0.6.26

Interesting, does this happen for you on rust stable?

Yep - same issue on stable. This is on the component struct for a component only 1 level down from the top-level component too.

@mdtusz Dang, that's not good. Do you think you could put together a minimal example showing this issue? That would be the quickest way to getting this fixed

Yep. I'll try to reproduce it in a small toy example. It is pretty strange though because I can create a vec of tuples in other places - just not in this one component struct.
Any hints for ways to inspect more under-the-hood for this? I'm still relatively new to rust so don't know all the debug tricks yet.

I got same error here with latest cargo:
thread 'main' panicked at 'failed to parse cargo output: Error("recursion limit exceeded", line: 1, column: 39083)', src/libcore/result.rs:1084:5
stack backtrace:
0:     0x55f9cd5a8dfb - backtrace::backtrace::libunwind::trace::h89fcc71e59e3bc5b
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/libunwind.rs:88
1:     0x55f9cd5a8dfb - backtrace::backtrace::trace_unsynchronized::h0bad9be1379e729a
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/mod.rs:66
2:     0x55f9cd5a8dfb - std::sys_common::backtrace::_print::hd3382a1f33c473da
at src/libstd/sys_common/backtrace.rs:47
3:     0x55f9cd5a8dfb - std::sys_common::backtrace::print::h0ec6f03cfb8e76a6
at src/libstd/sys_common/backtrace.rs:36
4:     0x55f9cd5a8dfb - std::panicking::default_hook::{{closure}}::h96cbf7b454e3f557
at src/libstd/panicking.rs:200
5:     0x55f9cd5a8ad6 - std::panicking::default_hook::h95a8f00337383d83
at src/libstd/panicking.rs:214
6:     0x55f9cd5a956d - std::panicking::rust_panic_with_hook::h92f98b46e22f14ed
at src/libstd/panicking.rs:477
7:     0x55f9cd5a90f2 - std::panicking::continue_panic_fmt::h25abfbb4e5b7043a
at src/libstd/panicking.rs:384
8:     0x55f9cd5a8fd6 - rust_begin_unwind
at src/libstd/panicking.rs:311
9:     0x55f9cd5cbccd - core::panicking::panic_fmt::h7e9f94035af782b3
at src/libcore/panicking.rs:85
10:     0x55f9cd5cbdc7 - core::result::unwrap_failed::hf7591c1dd9412006
at src/libcore/result.rs:1084
11:     0x55f9cd00a712 - cargo_web::cargo_shim::BuildConfig::launch_cargo::h52ad42de8a275f34
12:     0x55f9cd00aec0 - cargo_web::cargo_shim::BuildConfig::build_internal::he1797115f3a10735
13:     0x55f9cd008731 - cargo_web::cargo_shim::BuildConfig::build::h46a9e9d1f3e3605d
14:     0x55f9cceb10d9 - cargo_web::build::Project::build_or_check::h8bbe42c562628cc5
15:     0x55f9ccfc12c4 - cargo_web::cmd_build::command_build_or_check::h84a84f3c990bf2f3
16:     0x55f9ccfc32ee - cargo_web::run::h52c4c32bc5cf0f28
17:     0x55f9cce8610d - cargo_web::main::h906d67cf23fa185c
18:     0x55f9cce7f1f3 - std::rt::lang_start::{{closure}}::hdf763c575ab2059c
19:     0x55f9cd5a8f73 - std::rt::lang_start_internal::{{closure}}::h4e93c1949c7a1955
at src/libstd/rt.rs:49
20:     0x55f9cd5a8f73 - std::panicking::try::do_call::h9440ccd4dc467eaa
at src/libstd/panicking.rs:296
21:     0x55f9cd5b367a - __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
22:     0x55f9cd5a9b3d - std::panicking::try::hc046e7ee42ee744f
at src/libstd/panicking.rs:275
23:     0x55f9cd5a9b3d - std::panic::catch_unwind::h27dfc457c200aee0
at src/libstd/panic.rs:394
24:     0x55f9cd5a9b3d - std::rt::lang_start_internal::hea1b49a567afe309
at src/libstd/rt.rs:48
25:     0x55f9cce86302 - main
26:     0x7fb9a5255b6b - __libc_start_main
27:     0x55f9cce7c06a - _start
28:                0x0 -

As far as I can tell, this seems to be resolved in 0.9.2. I couldn't seem to make a minimal reproduction case either, but just changing the version number and recompiling solved the issue.

Interesting, well glad to hear it's no longer an issue! @godadada if you are still experiencing this issue, feel free to reopen

So I also encountered this issue (with yew 0.9.2) and here's what I was able to dig up. In the error message
failed to parse cargo output: Error("recursion limit exceeded", line: 1, column: <large number>)

the failed to parse cargo output part comes from cargo-web: src/cargo_shim/mod.rs#L823;
and the recursion limit exceeded part comes from serde, which is used to parse the JSON-encoded output of cargo proper.
After adding more logging to that part of cargo-web, the reason for the error turned out to be prosaic: in my project a typo in the use of the html! {} macro resulted in a 350KB JSON message describing the error. The bulk of the message comes from a deeply nested structure that looks like this:
  "message": {
    "message": "this close tag has no corresponding open tag",
    "code": null,
    "level": "error",
    "spans": [
      {
        <...>
        "expansion": {
          "span": {
            "file_name": "<::proc_macro_nested::count macros>",
            <...>
            "expansion": {
              "span": {
                "file_name": "<::proc_macro_nested::dispatch macros>",
                <...>
                "expansion": {
                  "span": {
                    "file_name": "<::proc_macro_nested::dispatch macros>",
                    <...>

This goes on for 157 levels, and as far as I can tell serde sets its recursion limit to 128 by default. Thus the panic in cargo-web.
The good news is that the root cause of the problem (HTML syntax error inside an html! {} block in my code) is included in the error message. The bad news is that it's buried under a lot of information that doesn't seem to be critical. One possible solution would be to have cargo-web disable the recursion limit in serde (via the unbounded_depth crate feature), but that seems like treating the symptom to me.

tl;dr for end-users: If you see the failed to parse cargo output: Error("recursion limit exceeded" error when running cargo-web, double check for malformed markup or any type errors inside your html! {} blocks.

Here's a minimal example to reproduce the problem: https://github.com/dmit/yew-recursion-limit


snapshot diff needs a -raw or -json option

It would be nice if snapshot diff could output an easily parsable format such as json.

aptly 0.9 would have snapshot diff REST API, which returns JSON objects.
I agree that having something parseable for the CLI mode would be great as well.

Beside this it would be helpful if the return value of aptly diff is identical with the diff command:
Exit status is 0  if inputs are the same, 1 if different, 2 if trouble.

csv output could also be useful.


Access official list of Indigenous names from PIP

To incorporate as LOV in IPA Resource Model processes and plans

Not going to use LOV's


Support for deriving OneofObject and Union +  OneofObject and Interface simultaneously

Description of the feature
Since the @oneOf directive only applies to input now (also see #915), it would be nice if other forms of output polymorphism could be supported using the same enum we use for OneofObject. This could be achieved by allowing to simultaneously derive OneofObject and Union or OneofObject and Interface.
This seems to be possible by (re)using #[graphql(input_name = "...")] (see the example below). Right now, derivation at the same time is not possible because of a runtime error:

thread 'main' panicked at 'Register Ab as Union, but it is already registered as InputObject

When using OneofObject and Interface simultaneously we get a compile time error:

error: Unknown field: field

Code example
OneofObject and Union
use async_graphql::*;

#[derive(SimpleObject, InputObject)]
#[graphql(input_name = "AInput")]
struct A {
    a: String,
}

#[derive(SimpleObject, InputObject)]
#[graphql(input_name = "BInput")]
struct B {
    b: String,
}

#[derive(Union, OneofObject)]
#[graphql(name = "AB")]
#[graphql(input_name = "ABInput")]
enum AB {
    A(A),
    B(B),
}

directive @oneOf on INPUT_OBJECT

type A {
    a: String!
}
input AInput {
    a: String!
}

type B {
    b: String!
}
input BInput {
    b: String!
}

union AB = A | B
input ABInput @oneOf {
    a: AInput
    b: BInput
}

OneofObject and Interface
use async_graphql::*;

#[derive(SimpleObject, InputObject)]
#[graphql(input_name = "AInput")]
struct A {
    name: String,
    a: String
}

#[derive(SimpleObject, InputObject)]
#[graphql(input_name = "BInput")]
struct B {
    name: String,
    b: String
}

#[derive(Interface, OneofObject)]
#[graphql(name = "AB")]
#[graphql(input_name = "ABInput")]
#[graphql(field(name = "name", type = "String"))]
enum AB {
    A(A),
    B(B),
}

directive @oneOf on INPUT_OBJECT

type A implements AB {
    name: String!
    a: String!
}
input AInput {
    name: String!
    a: String!
}

type B implements AB {
    name: String!
    b: String!
}
input BInput {
    name: String!
    b: String!
}

interface AB {
    name: String!
}
input ABInput @oneOf {
    a: AInput
    b: BInput
}

Using multiple procedural macros at the same time and avoiding conflicts is often cumbersome and requires a lot of compatibility work. 😂

Partially solved in #1116


Make optional-requirements.txt a source of version truth

Closes #1170
Code Changes

[x] Make isort know that versioneer is a first party dependency
[x] Allow engineers to set optional dependency versions only once

Steps to Confirm

[ ] Install fides with various optional dependency configurations

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
[x] Issue Requirements are Met
[x] Update CHANGELOG.md

@PSalant726 dependency truth is the name of my recently-formed nordic numetal band, what a coincidence


Expand ABSL_INTERNAL_DLL_TARGETS to avoid static libs on windows when BUILD_SHARED_LIBS=ON

Fixes #1114
More details in second commit message; first one has no changes other than alphabetizing the list for better legibility.

Hey @derekmauro
I'm very sorry this fell by the wayside so long. Would this PR still be useful / acceptable if it excluded all the flag targets?

@derekmauro: Can you remove the flags related targets?

@h-vetinari: Would this PR still be useful / acceptable if it excluded all the flag targets?

I've done this now.

With https://github.com/abseil/abseil-cpp/commit/6d806da76f9dff9c21729f850c6b0e5e727a4281 having landed, this PR is now much shorter. :)
PTAL @derekmauro

Sorry for the delay on this one. There are some things I need to take a look at before I can merge this one. Please be patient.

No worries, it also got stuck on my end for a while. Just wanted to let you know on the occasion of rebasing out the largest part of the PR.

Sorry for the delay on this one. There are some things I need to take a look at before I can merge this one. Please be patient.

Gentle ping @derekmauro; I also rebased the branch to current master.

@derekmauro @mkruskal-google
I rebased this for the new LTS now; it's still necessary for us in conda-forge, would be nice if we could get this merged.
The one thing I wanted to check is the status of absl_log_flags: further up, @derekmauro said that all the absl_flags* libs are not supported for shared builds, but it's unclear to me (just from the name) if that applies to absl_log_flags as well. For the moments I've included it in ABSL_INTERNAL_DLL_TARGETS along with all the other absl_log* targets.

Gentle ping @derekmauro :)

Rebased this PR. It's been shipping in conda-forge for quite a while now, and is also compatible with the test target installation. It's also not adding any more flag-related libraries.
PTAL @derekmauro


Need to upgrade glibc in Base OS for Ubuntu.

We got 2 vulnerability issues about glibc:
https://exchange.xforce.ibmcloud.com/vulnerabilities/110675
https://exchange.xforce.ibmcloud.com/vulnerabilities/110711
According to the report, there needs to upgrade glibc, the current version is glibc-2.19-1 in the stemcell.
Remedy
Upgrade to the latest version of glibc (2.23 or later), available from the GNU Web site. See References.

I dont know which stemcell you are running on but we are using latest available package: http://packages.ubuntu.com/trusty-updates/libc-bin


Task: Ensure change to blueprint_id forces resource replace

Look through schema of in-blueprint resources (likely those files in /apstra/resource_datacenter_*, ensure that their blueprint_id attribute uses the RequiresReplace() plan modifier:
PlanModifiers:       []planmodifier.String{stringplanmodifier.RequiresReplace()},

Note that because of how the code is organized, the schema isn't actually in the resource files, but can be found by following the method invoked within Schema():
func (o *resourceDatacenterGenericSystem) Schema(_ context.Context, _ resource.SchemaRequest, resp *resource.SchemaResponse) {
	resp.Schema = schema.Schema{
		MarkdownDescription: "This resource creates a Generic System within a Datacenter Blueprint.",
		Attributes:          blueprint.DatacenterGenericSystem{}.ResourceAttributes(), // <-- Right here: "ResourceAttributes"
	}
}

Closed by #223


Simpleinjector reimplementation

What kind of change does this PR introduce?
Bugfix
What is the current behavior?
Currently there's no way to use SimpleInjector in projects.
What is the new behavior?
SimpleInjector works well with Splat & ReactiveUI initializations.
What might this PR break?
Probably nothing.
Please check if the PR fulfills these requirements

[ x] Tests for the changes have been added (for bug fixes / features)
[ x] Docs have been added / updated (for bug fixes / features)

Other information:
I've tested the solution with my very small project based on WPF - all works okay. Anyway, I've no clue about performance of the solution (probably most important thing on mobile platforms).

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: jposert sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

There's some failing unit tests unfortunately. You can click the build action to see the details.
Thanks for the work so far

I made a little mistake and i pushed  invalid code (sorry). For now, everything should be okay but the build is failing - and I'm not sure why or how to fix it. It's all building on my machine and it passes all the tests successfully.

The latest is a build error that is on and off we've seen before with Nerdbank git versioning tool we use. I might make a report to the library author.

housekeeping comment
closes #597

cleaned up. documented weakness in dupe registrations


Intents "Analyzers" platform

A great addition to our intent engine would be the ability for users to write conditions based on the transaction they're asking to sign.
Currently, we interpret the signature request payload with SignMethods. Users are able to specify, for example, the "Ethereum SignMethod" and the input payload will be parsed as an Ethereum unsigned transaction. Some metadata can be extracted from it (amount, to, etc.).
We're not doing it yet, but this metadata can be put in the shield evaluator environment. Users could write intents referencing the extracted metadata.
What I would like to have instead is a CosmWasm contract that does this job. Instead of specifying a SignMethod from a fixed enum, with each SignMethod handler embedded in wardend, the users could specify a list of smart contract addresses that parses the input payload and provides the same metadata.
This is a paradigm shift, as we allow 3rd party developers to build their own "Metadata Providers" (do you have a better name?). For example, we can have a 3rd party developer add support for parsing Solana transactions or who knows what, as long as the parser can be written as a CosmWasm contract.
The flow would look like this:

user sends a MsgNewSignatureRequest, specifying one or more contracts (instead of SignMethod)
the msg server handler from the Cosmos SDK module invokes the smart contracts and receive the execution results in a standardized format. It'll store the metadata in the Action, as part of the frozen intent definition.
every time the Action is evaluated, the shield's execution environment will read the metadata present in the Action

I'll rename "Metadata Parsers" => "Analyzers"
it's shorter and imho more evocative

receive the execution results in a standardized format

Do you have any thoughts about this format, how it may looks and what it should describe?

receive the execution results in a standardized format

Do you have any thoughts about this format, how it may looks and what it should describe?

yeah good question!
The contract should return a collection of key-values. The key should be a string (it will be an identifier in the shield language), and the value could be any supported type in the shield AST (i.e. integers and booleans, for now).
By default, CosmWasm returns the message in JSON format to the SDK. I thought of reusing this encoding, but there is no easy way of doing something like this in Rust:
type AnalyzerResult struct {
    Values []KV
}

type KV struct {
    Key string
    Value any
}

So what I did in #279 instead is to have a custom JSON object like, for the sample contract:
#[cw_serde]
pub struct AnalyzeResult {
    pub length: u64,
}

that will serialize into a JSON like this:
{ "length": 2 }

Now, from the SDK module I'm unmarshalling this JSON into a map[string]any, then I have a type-switch to do a type check of the any value and converting it into the proper AST node.
In the example above I would have a key named length and a value float64(2). I check that the float64 is actually an integer and finally I'll convert it to an IntegerLiteral of shield's AST.

What I'm doing now is to get this a step further: beside key-value pairs I want analyzer contracts to return an optional data_for_signing binary, so the new AnalyzerResult looks like this:
// common result to all analyzers:
#[cw_serde]
pub struct AnalyzeResult<T> {
    pub data_for_signing: Option<Binary>,
    pub result: T,
}

// specific for my basic-analyzer, will be the <T> above:
#[cw_serde]
pub struct BasicAnalyzerResult {
    pub length: u64,
}

If an analyzer returns a data_for_signing, it will replace the DataForSigning field on the user request. The result field is parsed by the Go code described above.
Do you have other ideas or see any flaws in that?

Wow! Thanks for examples, it really helps.
My suggestion for now, as before for v1 intents, is to limit structure size, but I can't provide the way to do it on contract side. May be it's just can be done in go part.
Another potential problem is that user should trust the contract. What if 3rd party contracts will parse input and return AnalyzeResult but also make a transfer from the caller?

My suggestion for now, as before for v1 intents, is to limit structure size, but I can't provide the way to do it on contract side. May be it's just can be done in go part.

yeah I think #267 already captures that, the intent per-se might have a hard limit. I think the gas cost already disincentivizes to abuse calling too many smart contracts

Another potential problem is that user should trust the contract. What if 3rd party contracts will parse input and return AnalyzeResult but also make a transfer from the caller?

this is correct, the user in its Intent references a contract so it needs to be trusted (note that this always apply when you use a smart contract on any chain). I don't think a cosmwasm contract can initiate a transfer, but I might be wrong, if there's a way to limit capabilities of specific contracts we should look into that.


css: Fix long name overflow in user profile modal.

Fixes: #23781.
Set width of the div tag displaying name of the user, which enables the ellipsis property on text overflow, without pushing the edit icon next to the name off the user profile modal.
The width is set on the basis of different breakpoints, which makes it responsive, for all screen sizes.
Screenshots:

Different screen sizes -

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Works great manually, but have left some suggestions on the code

Works great manually, but have left some suggestions on the code

@N-Shar-ma I've made all the changes suggested and also updated the screenshots in the PR description.

Thanks, looks good to me now! Over to you @alya

Thanks!
Looks good to me in manual testing. @timabbott this bugfix PR has been reviewed by @N-Shar-ma and me -- over to you.

Nice, merged, thanks @SameepAher!


do not render certain activity types in webchat

fixes #1358
Fixed

[client] Do not render certain activities in webchat in PR #1363

Pull Request Test Coverage Report for Build 2179

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

Totals

Change from base Build 2173:
0.01%

Covered Lines:
4873

Relevant Lines:
8324

💛  - Coveralls


fix: Add a "session crash" warning

I've seen an engineer got stuck with the "session crash" message with our notebooks. I shared this with @polong-lin and he suggested me to create a PR for a fix to the template.

Thanks Holt!


Video

First off, Apologies for opening an issue for this. I'm currently not active on Social Media but wanted a way to share this.
Second, Thanks so much for this amazing open source library. This is amazing work! Kudos to @aniketmaurya and the contributors.
Here's my small video contribution to spread the word - https://youtu.be/0RJfKJEXUDg
Once again, I'm sorry for raising an issue for this. please close this issue after you read the message.
Thanks!

Hey @amrrs, thank you so much for creating this video. This will help us a lot!
Would you mind if we link this to our documentation?

That'll be my honor. Thank you @aniketmaurya


Add Metaculus-cp.yaml metadata

Thanks @nikosbosse, please consider including designated_github_users field in the metadata file to assist timely merging of PRs


CocoaAction Type Change

It's <Void, Void> right now, but it would be awesome to somehow feed input into it. The problem is we can't define a property using generics on a non-generic type. I haven't given this a tonne of thought, so there might be an obvious solution.

That's one of the reasons why I mostly use Action<SomeType, Void> instead -- and that's perfectly fine! I view CocoaAction as just a shortcut for the most common case but don't have an issue with using Action when more flexibility is needed.

Submitted a pull request: https://github.com/RxSwiftCommunity/Action/pull/30

Could we use protocols to be sneaky here? Like:
typealias CocoaAction = Action<ActionInput, ActionOutput>

And then define those two protocols as empty and users can conform with their own types? Not sure. There's no easy answer, but I think it's an important discussion to have.

Hmm of course Swift 3 is going to come along in a little while and then we will have generic typealiases negating all of these workarounds.  We could also consider a generic type wrapped in an enum/struct for now (the usual trick) until Swift 3?  I'm not a huge fan of these but could work, eg:
struct GenericAction<Y, R> {
  typealias T = CocoaAction<Y, R>
}

let action = GenericAction<Void, Observable<String>>.T()

The problem comes from the rx_action property which, last time I tried, caused a compiler error in the UIButton extension.

In ReactiveCocoa they've implemented it as a standalone NSObject that can be assigned to UIControls (or its  macOS equivalent, I'm not a Mac expert at all).
Basically it ties itself up to an existing Action and just provides a custom input parameter defined inside a closure whenever there's interaction with the control
I think it should be better to avoid useless creation of Actions (they involve too many observables in the process, it can be performance killer sometimes) if we only need a different input to perform the same thing.

I've tried to implement it (heavily "inspired" by RAC's CocoaAction) here
I've named it "ControlAction" so that it doesn't break current behaviour
[https://github.com/stefanomondino/Action/commit/9c4f5ee2d4e4f7528c3b1bc30e0effdb92564133]
The main drawback is that we're losing "Sender" type inside the closure, honestly I've never used it anyway.

Ah interesting, so it acts as like a wrapper for Action then? Neat idea. Anyone have feedback on this? Would love to discuss on a pull request.

I'm not sure that introducing Action wrapper is a right way for RxCocoa users.
I think our Action do not necessarily have to be the same as RAC's Action, because API design of each libraries differ from each other. RAC assumes that all actions triggered by Cocoa components is expressed as CocoaAction, but RxCocoa doesn't.
Additionally, we already have a mechanism that just provides a custom input parameter on Action.
inputs subject can receive flexible inputs like below:
let button = UIButton()
let barButtonItem = UIBarButtonItem()
let disposeBag = DisposeBag()

let action = Action<String, Void> { input in
    print("\(input) is pressed.")
}

button.rx.tap
    .map { _ in "UIButton" }
    .bindTo(action.input)
    .addDisposableTo(disposeBag)

barButtonItem.rx.tap
    .map { _ in "UIBarButtonItem" }
    .bindTo(action.input)
    .addDisposableTo(disposeBag)

Now, we have 2 choices to give a custom input parameters on Action:

Use existing RxCocoa API and connect it to inputs subject.
Add an action property to Cocoa components and set CocoaAction there.

Personally, I think 1 is more reasonable than 2.

@ishkawa this is really interesting, the main problem I see is that, in this way, the button's enabled property is not in sync with the action executing state.
I don't think either it's absolutely necessary to "mirror" RAC behavior, (otherwise I'd continue to use that instead of Rx.). It's not perfect at all, it's difficult to explain to new developers and has some "complications" that I don't need.
But, on the other hand, I don't see any downside to simply add a second "rx_action2" (I've called controlAction in my fork) that automatically many controls with a single action, with input customizations. It would not break (I think) any of the existing behaviors.
Let me also clarify why I came to this kind of conclusion.
Usually, when I do MVVM on iOS, I prefer to keep a single Action for each viewController's viewModel. In this way I can keep error and "showLoader" handling in one single place, and I don't have to replicate binding code for each action that could lead to an error (or could show a progress bar for long time operations). What really discriminates what the Action should do is the Input I provide to it. And the input depends on which button is pressed.
In this way, I have no business logic at all in the VC, i just have to tell the ViewModel to execute the Action with a converted input (usually an enum with all the possible choices in a viewModel). That's why I needed something different from your typealiased CocoaAction.
Maybe I can work out something on your suggestions that doesn't involve the creation of a new class, I'll let you know. In the meanwhile, THANKS :)

@ashfurrow should we close this? bindTo() should have taken care of this

Let's keep it open until we add documentation to the readme?

ok, I'm trying to do it right now BTW

Cool, thanks! And thanks again for adding it!


Save serial log after testcase completion

Save serial log of VMs after testcase completes.
Example log file path:

runtime\log\20230410\20230410-095213-491\environments\20230410-095223-846-generated_0\lisa-remote1234-20230410-095213-491-e0-n0
runtime\log\20230410\20230410-095213-491\environments\20230410-095223-846-generated_0\lisa-remote1234-20230410-095213-491-e0-n1

When is it needed? It costs time to capture on each test case. If some test cases need it, it can be called in the test cases.

When is it needed? It costs time to capture on each test case. If some test cases need it, it can be called in the test cases.

in v2. We collect dmesg when testing starts and ends. now in v3, at the end of test, we don't collect such info since it uses the cache. sometimes we want to check there is any call trace or errors shown up in log (the case may pass or fail)
is it feasible that we add a switch to enable collect log at end of testing, by default, it is set as false?

When is it needed? It costs time to capture on each test case. If some test cases need it, it can be called in the test cases.

in v2. We collect dmesg when testing starts and ends. now in v3, at the end of test, we don't collect such info since it uses the cache. sometimes we want to check there is any call trace or errors shown up in log (the case may pass or fail)
is it feasible that we add a switch to enable collect log at end of testing, by default, it is set as false?

That can be collected in test cases by calling the feature. Make it configurable is not easy to use than add one line code.

When is it needed? It costs time to capture on each test case. If some test cases need it, it can be called in the test cases.

in v2. We collect dmesg when testing starts and ends. now in v3, at the end of test, we don't collect such info since it uses the cache. sometimes we want to check there is any call trace or errors shown up in log (the case may pass or fail)
is it feasible that we add a switch to enable collect log at end of testing, by default, it is set as false?

That can be collected in test cases by calling the feature. Make it configurable is not easy to use than add one line code.

I can think of two cases where we would like to have the serial logs

Perf tests where test passes but perf numbers are low
Failed cases - sometimes failures pass on rerun. It is good to have serial logs in these cases.

When is it needed? It costs time to capture on each test case. If some test cases need it, it can be called in the test cases.

in v2. We collect dmesg when testing starts and ends. now in v3, at the end of test, we don't collect such info since it uses the cache. sometimes we want to check there is any call trace or errors shown up in log (the case may pass or fail)
is it feasible that we add a switch to enable collect log at end of testing, by default, it is set as false?

That can be collected in test cases by calling the feature. Make it configurable is not easy to use than add one line code.

I can think of two cases where we would like to have the serial logs

Perf tests where test passes but perf numbers are low
Failed cases - sometimes failures pass on rerun. It is good to have serial logs in these cases.

Can we collect log before the environments deleted? I think collect one time for each env should be enough. The serial log contains timestamp too. We can know what happened during each test cases from this log.

When is it needed? It costs time to capture on each test case. If some test cases need it, it can be called in the test cases.

in v2. We collect dmesg when testing starts and ends. now in v3, at the end of test, we don't collect such info since it uses the cache. sometimes we want to check there is any call trace or errors shown up in log (the case may pass or fail)
is it feasible that we add a switch to enable collect log at end of testing, by default, it is set as false?

That can be collected in test cases by calling the feature. Make it configurable is not easy to use than add one line code.

I can think of two cases where we would like to have the serial logs

Perf tests where test passes but perf numbers are low
Failed cases - sometimes failures pass on rerun. It is good to have serial logs in these cases.

Can we collect log before the environments deleted? I think collect one time for each env should be enough. The serial log contains timestamp too. We can know what happened during each test cases from this log.

@johnsongeorge-w , Please share your thoughts on this suggestion

When is it needed? It costs time to capture on each test case. If some test cases need it, it can be called in the test cases.

in v2. We collect dmesg when testing starts and ends. now in v3, at the end of test, we don't collect such info since it uses the cache. sometimes we want to check there is any call trace or errors shown up in log (the case may pass or fail)
is it feasible that we add a switch to enable collect log at end of testing, by default, it is set as false?

That can be collected in test cases by calling the feature. Make it configurable is not easy to use than add one line code.

I can think of two cases where we would like to have the serial logs

Perf tests where test passes but perf numbers are low
Failed cases - sometimes failures pass on rerun. It is good to have serial logs in these cases.

Can we collect log before the environments deleted? I think collect one time for each env should be enough. The serial log contains timestamp too. We can know what happened during each test cases from this log.

@johnsongeorge-w , Please share your thoughts on this suggestion

There are 2 major use case and I think few aspects are already discussed above.

Collecting dmesg before and after each test will help to narrow down the potential problem (from kernel error message perspective) when analyzing any test failure or performance issues.
Serial log is equally important to be collected after each failed test cases. In many situations, we are not able to conclude because lack of serial logs. Checking **last bootup (only for failed tests) ** will be more convenient rather searching the entire serial logs.

Collecting these logs will considerably optimize (avoid re-runs) the time required to triage/analyze the test failures. This is critical when issue is intermittent and cannot be reproduced always.


Closes #94: Allow to extract CSS into standalone files

Summary
Closes #94
What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[x] Feature
[ ] Code style update
[ ] Refactor
[ ] Docs
[ ] Build-related changes
[ ] Other, please describe:

If changing the UI/CSS related code, please provide the before/after screenshot:
Does this PR introduce a breaking change? (check one)

[ ] Yes
[x] No

If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:

[x] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)

You have tested in the following browsers: (Providing a detailed version will be better.)

[ ] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge
[ ] IE

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature
[ ] Related documents have been updated
[ ] Related tests have been updated

To avoid wasting your time, it's best to open a feature request issue first and wait for approval before working on it.
Other information:
Not sure 100% if it does everything as it should

closing because the necessary stuff was done in fb2832440886cc1ed3a5262fdb7a90cee7aa8125

My bad this shouldn't be closed


This is not an issue but rather an appreciation

Thanks for this awesome package, do you have a btc address or patreon ?, I would love to appreciate your effort with a donation

Good to hear you like to package! There is no need for a donation the offer is very well appreciated.


Implement the Settings button

The Settings button in the Controls section currently doesn't do anything.
One thing I know I want to add is ability to "Grant Sandbox Access" so the Lua engine has access to the file system for reading external files, etc.

I'm not sure we need a Settings button currently, so closing for now.


CLI interaction

It would be nice to have a way interact with mastermind while it is running an example of this would be the able to pause mastermind without having to close the session, the reason being some websites do not work while mastermind is running and having to constantly close the mastermind session is painful.
Others:

the ability to quit the app cleanly i.e pressing "x" with stop mastermind and disable the proxy

Both great ideas but they require an important change in architecture so it will take a while before we get there. I'll keep this open as a reminder.

 You'd probably have to add this to your visudo file though

I've been thinking about this.  An option would be making mastermind be a multiprocess system so the "master" process would deal with keyboard signaling and then it would delegate to the subprocess(es) (i.e. mitmproxy).  Given it changes the approach substantially I would suggest we schedule it for milestone 1.1 (we're still finishing 1.0).  Thoughts?

@arnau it's worth investigating. I think it might be good to do a spike.

@Ashraf-Ali-aa I just clicked with the obvious solution.  You don't need to stop mastermind every time you want to stop proxying all connections.  You only need to disable the OS proxy settings:
sudo proxyswitch --disable

After that mastermind will not receive any connections.

@arnau I like the idea of multiprocess system, also I did create a quick ruby client to make it easier to interact with mastermind in driver-mode, it would be nice to have a similar feature build into mastermind.
The following example loads a bad config ./mclient.rb BadConfig
https://gist.github.com/Ashraf-Ali-aa/b1a8bec3a756de35e055ee71e96c084c

@Ashraf-Ali-aa are you asking for a command line interface that mimics the proxapp HTTP interface?

@arnau yes, this would make it easier to intercept network requests when manually testing on devices.

We can definitely explore this, do you wanna take a shot and define how it should work? Feel free to open a dedicated issue for that.


How to add video player for Windows and Mac Desktop Apps?

There are no useful information until now for that on the Internet. Discussions on this topic suggest that:

Use webview to support Web SDK. However, some other discussions said that Desktop cannot support webview until now.

So if I want to write flutter plugin by myself, how I can do on that?
Thanks for help!

@Guo-Zhang
This issue doesn't seem to describe a bug or a feature request. Please see https://flutter.dev/community for resources.
You may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


Fix remote.add().

From https://github.com/farmOS/farmOS-client/issues/468#issuecomment-1004115085:

Hmm, well there's still something wrong with the origin not being used the first time you try to log in; it now seems to be using a relative URL, /oauth/token. I suspect this is a bug with the remote.add() method I replaced remote.setHost with in farmOS/farmOS.js@7781ec7. So when a fresh install of FK first starts up, it has a host of '', which should be changed to 'https://test.farmos.dev' when you log in, but that doesn't appear to be happening.

I think the issue is here:
https://github.com/farmOS/farmOS.js/blob/7781ec7574bcb23f05b1c983633d819bca77ed3f/src/index.js#L68
I should probably be using this instead of farm.

Actually, I'm pretty sure I was wrong about this. The problem seems to be in FK, where the new host is being overwritten inadvertantly in the setHost helper. It should be resolved by farmOS/farmOS-client@cdd76bf.
For good measure I also added an extra test to verify remote.add() should be working (e244309), and also caught another bug that should be fixed now (21996ff). Bumped it up to beta.5 for those changes.


Windows npm bin not on PATH

Description:
On Windows, it appears that the npm prefix C:\npm\prefix is on the PATH instead of the bin folder within the npm prefix, C:\npm\prefix\bin. This causes global packages to be unavailable when installed via npm install --global.
Action version:
3.1.1
Platform:

[ ] Ubuntu
[ ] macOS
[x] Windows

Runner type:

[x] Hosted
[ ] Self-hosted

Tools version:

Node 14, 16, and 18, included version of npm
Repro steps:

Use actions/setup-node with any Node version
Install a command line package with --global, like shx: npm install shx --global
Run the command.

I added a step to this CI run to print out all of the paths on the PATH, and you see C:\npm\prefix instead of C:\npm\prefix\bin (it's the fourth step):
https://github.com/grain-lang/grain/runs/6200569895
Expected behavior:
The command should be available and $(npm config get prefix)\bin should be on the PATH.
Actual behavior:
The command is not found.

Hello @ospencer. Thank you for your report. I've tried to reproduce the issue using the npm install shx -g command but it works as expected through npm. It looks like in your case you're using yarn to install global packages, that is why the output from the yarn global bin command should be added to the PATH.

Hey @dmitry-shibanov, I didn't think that was important because of yarn config set prefix $(npm config get prefix) (since that works on other OSes) but yep, the relevant documentation is here: https://docs.npmjs.com/cli/v7/configuring-npm/folders#executables
tl;dr yarn uses <prefix>\bin always but npm uses <prefix>/bin on Unix and just <prefix> on Windows.
Wanted to avoid having to alter the PATH just on Windows, but looks we've got to. 😅
I'll close this. Thanks for your help!


Cargo installation instructions incorrect

Describe the bug
The cargo installation instructions state to run cargo install linutil but that is incorrect, it should be cargo install linutil_tui.  (See additional notes below as well.)
To Reproduce
Steps to reproduce the behavior:
Look at the crates.io page.  Try copy pasting the cargo install line and run it.
Expected behavior
Copy pasting the command to install should work
Checklist

[X] I checked for duplicate issues.

Additional notes:
The version currently on crates.io does not compile anyway because someone broke semver.  You actually need to run cargo install linutil_tui --locked or it won't compile.

hmm... i wonder who wrote that (it was me)


WIP: Api testing

New rest assured API testing framework for B2B and Trade API automation.

B2B testing no longer required


Add Pricing Information for Azure OpenAI

Is your feature request related to a problem? Please describe.
The pricing information for Azure OpenAI is currently missing. Also, OpenAI and Azure OpenAI have the same pricing structure for the East US region.
Describe the solution you'd like
Can you please add the pricing details for Azure OpenAI . Even if you include only the East US region. itwould be helpful.
Here are the pricing pages :

link to Azure OpenAI pricing
link to OpenAI pricing

Hi @AmineDjeghri, we’ve just shipped 0.88.0, which includes the pricing information for Azure OpenAI models in East US. Thanks again for bringing this up - your feedback was really helpful! I'm going to work to automate price updates more in the near future.  Feel free to check it out and let us know if anything else comes up. Thanks again!


Cloudflare error: Error during WebSocket handshake: Unexpected response code: 400

HI , any ideas on this error pls?
I am using Cluster with AWS Opsworks + nginx reverse proxy + Cloudflare + SLL.
I turned on Cloudflare and I am seeing this is error in the browser console:
WebSocket connection to 'wss://<domain>/cluster-ddp/<long id>/web/651/ozzx4aqk/websocket' failed: Error during WebSocket handshake: Unexpected response code: 400

I have not done anything special with Cloudflare and/or Meteor. I just turned on Cloudfare a specific sub-domain and saw this issue.

Cloudflare doesnt support SSL in their basic plans so you need to turn off web sockets.
"env": {
  ...
    "DISABLE_WEBSOCKETS": "1"
  ...
  },


Require specific Frq for trilateration to detect something.

FRQ of radios can be placed on the radio object itself (the enemy radio to find)

FRQ we use to trilaterate signal can be the one set in the ACRE radio the player is using. Below piece of code return frq used by player:

_channelDescription = ["ACRE_PRC77_ID_1", "getChannelDescription"] call acre_sys_data_fnc_dataEvent; hint str _channelDescription;

Improve on new feature developed in https://github.com/gerard-sog/arma3-macvsog-columbia-scripts/issues/152

done in https://github.com/gerard-sog/arma3-macvsog-columbia-scripts/pull/179


disabling drag and drop

disable_uploads: True prevents the uploading of pictures but does not prevent the drag/drop hover overlay and action. I believe it should?
Meaning it should initialize summernote with disableDragAndDrop: true as well as removing the upload handler in widget_common.html.
Edit: I figured out how to do this using the 'summernote': {...} section in SUMMERNOTE_CONFIG. However, this is for all summernote fields in your Django project, so I submitted https://github.com/summernote/django-summernote/pull/279 to add per-widget settings.

I'm leaving this open as I think PR #279 solves an important scenario (not just for drag and drop, but any setting)

OK, now I got the point.
disable_upload option is not for disabling uploading images itself; it only affects whether we use django_summernote's attachment function or not.


Add returning SetOutput with block_height for set method

Closes https://github.com/NearSocial/social-db/issues/15

The thing here I am unsure about is the following. integration-tests binary should somehow import SetOutput. I put SetOutput into contract library. And just crate-type = ["cdylib"] is not an option for such import. That is why I also added "lib" to Cargo.toml in contract library. Which may add additional weight to the library.
Another solution I can think of is to create additional member of a workspace so that it has only SetOutput type in it and is included in both contract library and integration-tests binary.
Please let me know which is more preferred

@PolyProgrammist Proper integration tests should not depend on the implementation that it tests. Manipulate with raw JSON in integration tests to ensure that the expected result is actually JSON in the specific form.

All my review comments were addressed and I believe this PR is good to go

Looks good


Add route to get update script

We want to be able to tell users to run

curl -o- https://govuk-prototype-kit.herokuapp.com/docs/update.sh | bash

Hmm, so for this to work we need to allow update.sh to be in the release archive, because this is somehow related with what Heroku deploys :/

Alternatively we can make the route return a redirect, but then the command users need to run is curl -Jo- ...


Add accessibility features

Ensure that the web app follows accessibility best practices, including support for screen readers, keyboard navigation, high contrast mode, and alternative text for images.

I can work on this issue.

I can work on this issue.

Assigned!


Komf Kavita Network Error

I tried installing Komf from docker for my Synology DS420+
I first created "komf" folder and "config" subfolder in my docker folder:
I also put the application.yml file inside the config subfolder. I use the code from kavita wiki.
kavita:
baseUri: "http://<IP_ADDRESS>:5471" #or env:KOMF_KAVITA_BASE_URI
apiKey: "YOUR_API_KEY_HERE!" #or env:KOMF_KAVITA_API_KEY
database:
file: /volume1/docker/komf/config/database.sqlite # database file location.

I then use portainer to compose the docker container, the compose file is from komf wiki:
version: "3.7"
services:
komf:
image: sndxr/komf:latest
container_name: komf
ports:
- "8085:8085"
user: "1000:1000"
environment:
- KOMF_KAVITA_BASE_URI=http://<IP_ADDRESS>:5471
- KOMF_KAVITA_API_KEY=my-api-key
- KOMF_LOG_LEVEL=INFO
# optional jvm options. Example config for low memory usage. Runs guaranteed cleanup up every 3600000ms(1hour)
- JAVA_TOOL_OPTIONS=-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact -XX:ShenandoahGuaranteedGCInterval=3600000 -XX:TrimNativeHeapInterval=3600000
volumes:
- /path/to/config:/config #path to directory with application.yml and database file
restart: unless-stopped
The container is created successfully. I then setup the tampermonkey based on the kavita wiki.
https://wiki.kavitareader.com/guides/external-tools/komf
The jigsaw icon appeared but I cannot connect it to Kavita. It says network error.

Any idea how to fix this?

Any update on this?

Depending on your docker implementation and network, you don't want to as your KOMF_KAVITA_BASE_URI value. Instead of <IP_ADDRESS> you want to point it at the name of your container on your docker-network.
Part of the guide goes over this. Arguably it should be built in the docker-composable, but that could introduce some other issues for different configurations:

if you don't already have a komga or kavita network you'll need to network create a new one
docker network create my_network
attach komf and media server to new network:
docker network connect my_network komga_or_kavita
docker network connect my_network komf
start the container docker start komf

Depending on your docker implementation and network, you don't want to use your IP as your KOMF_KAVITA_BASE_URI value. Instead of <IP_ADDRESS> you probably want to point it at the name of your container on your docker-network. Assuming your komf and kavita containers are on the same box, I don't think there should be any use of of IP's, just ports and container names.
Part of the guide goes over this. Arguably it should be built in the docker-composable, but that could introduce some other issues for different configurations:

if you don't already have a komga or kavita network you'll need to network create a new one
docker network create my_network
attach komf and media server to new network:
docker network connect my_network komga_or_kavita
docker network connect my_network komf
start the container docker start komf

OK so I checked from portainer that I already have a default kavita network "kavita_default". Do I just add komf to the "kavita_default" network?

If I need to create a new network and attach both containers, can I do the whole process via portainer?


Fixed mistake in Hindi Translation of Website

Fixes #1119
Changes:
Changed Hindi translation of Website

@SanjaySinghRajpoot please review this PR ASAP .

looks good to me.

Hey, I have fixed the requested changes.

Looks good. Thanks!


"Other activities" bin support

Adds "Other activities" bin support to ITSI materials bin. This bin also respects cohorts like materials collections and search results. React components + related server API + API specs.
Notes:

I slightly refactored some other React components, they use _fetch_data_mixin now (it downloads data automatically when the component becomes visible).
I also renamed materials_collection_controller to materials_bin_controller, as the new API was really specific to "Other activities" bin, so it didn't make sense to try to keep this API generic. I grouped related functionality instead.

@pjanik: Do you want me to review this or Scott?

@dougmartin I'd prefer that you do it.  It is mostly Javascript. I'll take a quick look at the rails side.

Rails side looks good to me.

React bits look good.  I just had a couple of comments where you'll see console warnings about missing keys for components declared in loops.

Thanks! I've fixed React warnings in the last commit.


ylog_scale behavior

The newplot and plot commands have an argument, ylog_scale, for setting the scaling of the y-axis.
I assumed that this would plot both groups on a log scale:
larch> newplot(a.energy, a.loss, ylog_scale=True)
larch> plot(b.energy, b.loss)

It didn't.  Is that the intended behavior?
I understand that the answer is obviously different for other arguments.  For instance, if you said
larch> newplot(a.energy, a.loss, color='chartreuse')
larch> plot(b.energy, b.loss)

you would expect that the second trace would be the second-trace color, not chartreuse.
Somehow, it seems like ylog_scale should be set until the next newplot.

I agree, this should be fixed so that  explicit


ModuleNotFoundError: No module named 'keras.src

I get the following error when trying to instantiate a saved model. Can I get clarity on what module this is. I have the latest versions of tensorflow and keras installed.
Context: I am uploading the model using joblib.
The model saves just fine but I am unable to load it within my application.
ModuleNotFoundError: No module named 'keras.src'

Sounds like to could be a Keras version issue. What are your versions?

Hi @elbeetheone ,
Can you confirm the keras version you are using and also the reproducible code snippet.
It seems like the issue with keras<=2.12 versions. If we try something like from keras.src import layers it will raise
ModuleNotFoundError: No module named 'keras.src' since keras.src exists from TF2.13v onwards.
If we use keras>=2.13v or Keras3 the above import works.
Attaching a simple gist that reproduces the reported error with keras<=2.12 and which doesn't exists in  keras>=2.13v or Keras3.

Hi there,
The issue is most likely the version.
[keras - 2.6.0](https://pypi.python.org/pypi/keras/2.6.0)
I'll have to initiate a work around. It's a third party application that won't let me install the newest version.
Thanks for the assistance.

Hi @elbeetheone ,
Thanks for confirmation.Could you please close the issue as the root cause is clear now. Thanks!

@elbeetheone i am facing this issue No module named 'keras.src.engine', will you help me to solve the problem?

ModuleNotFoundError: No module named 'keras.src.engine'

@elbeetheone i am facing this issue No module named 'keras.src.engine', will you help me to solve the problem?

Please confirm the keras version you are using.

Hello I'm facing the same error
I'm using keras 2.6.0

Hi, if you are using new version of tensorflow then uninstall because its
due to mismatch with addons version and reinstall old version of tensorflow.
On Fri, Mar 29, 2024, 10:45 PM Blessing Agyei Kyem @.***>
wrote:

Hello I'm facing the same error
I'm using keras 2.6.0
—
Reply to this email directly, view it on GitHub
https://github.com/keras-team/keras/issues/18878#issuecomment-2027338920,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A64KYZVYUINQ6G2I7EUBQ6TY2V5A5AVCNFSM6AAAAABAFVL2W2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRXGMZTQOJSGA
.
You are receiving this because you commented.Message ID:
@.***>


Duplicate projects

I published a repo with the same name and very similar intentions a couple of months ago: didericis/github-contributions-api. Can you add me as a collaborator? I'd rather add PRs to this project and nuke the other repo than have two projects out there doing basically the same thing.

Hi @Didericis, that's a great idea. Would you be open to sending PRs? I can also add you as a collaborator.

@sallar Hey, just a friendly reminder about that collaborator request.

🎉 Thanks!


⚠ Samsung has degraded performance

In b314b9d, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2539 ms

Resolved: Samsung performance has improved in 5e0186d.


Stop all operations to resolve the SERVICE IS BUSY error

I got this error bellow while trying to discover peers.
Then phone was able to discover before but now I got an error.

@ksenia312 , when I try to use this following function context.read<AppService>().stopListeningAll() I face the same issue. The NearbyService is still busy

Yes, you're right
The problem here is that you have a pending request to another device.
It does not depend on your active subscriptions, and stopping listening will not help
It will be solved with functionality to cancel the request, and service will become free
I'm going to introduce it soon. Now you can catch this error and wait some time while the request is complete, or implement retry logic for this
Sorry for that🙌

Thanks @ksenia312, looking forward to have that option implemented !

Think, you are talking about this operation bellow :

val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager
val channel = manager.initialize(this, mainLooper, null)

manager.cancelConnect(channel, object : WifiP2pManager.ActionListener {
    override fun onSuccess() {
        // Connection request canceled successfully
    }

    override fun onFailure(reason: Int) {
        // Handle failure to cancel connection request
    }
})

Think, you are talking about this operation bellow :
val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager
val channel = manager.initialize(this, mainLooper, null)

manager.cancelConnect(channel, object : WifiP2pManager.ActionListener {
    override fun onSuccess() {
        // Connection request canceled successfully
    }

    override fun onFailure(reason: Int) {
        // Handle failure to cancel connection request
    }
})

Yes, definitely

Hello @ksenia312,  did you fix this issue, we are looking forward is option, please!!!

Hello @ksenia312, did you fix this issue, it's extremely important to help easy sharing between two flutter apps, please!!!

I plan to do it around May 15-20. Sorry, very busy now, I will definitely do a plugin update, but there's no way I'll be able to do it sooner than that
For now, you can use the options described above

Hello @jeremielodi
Update is available on https://pub.dev/packages/nearby_service
In android implementation there is a new method cancelLastConnectionProcess(). Use it as _nearbyService.android?.cancelLastConnectionProcess().
Check if everything is OK and close the issue if so!

Hello @ksenia312 ,
I faced this bug while calling the function cancelLastConnectionProcess()

Hello, @jeremielodi
Could you please provide some details of your code? I didn't get this error during cancellation, I need more information to fix it

Okay, I added this function in the app_service.dart,

I call the function before initialising the service or after. I get the same error.

What is curious, even when I uninstall the app and reinstall it, I face the same issue.
I wander if you can have an idea from those informations

You should call cancelLastConnectionProcess() when you have any peer with status CONNECTING
Otherwise, of course, it can lead to unexpected behavior because it doesn't really have any process to cancel
You can add this check:
 Future<bool> hasRunningJobs() async {
    try {
      final result = await _nearbyService.getPeers();
      // if one of devices is connecting, service is busy (android only)
      if (result.any(
        (element) => element.status == NearbyDeviceStatus.connecting,
      )) {
        if (kDebugMode) {
          print('Service has already running jobs');
        }
        return true;
      }
      return false;
    } catch (e, s) {
      _log(e, s);
      return false;
    }
  }

Or just catch and ignore this error, because predictably cancelLastConnectionProcess() will fail if we do not have any process to cancel

the function hasRunningJobs return false but the servis is still busy. Curious

You shouldn't call cancelLastConnectionProcess() if hasRunningJobs() is false

Yes, you are right, waht is complicated to know is why the service status is busy at the time there is no running job.

I agree that it is not really clear and I don't know why it is busy haha
I just provide the error from platform to flutter
That's reason code that platform returns, I actually have no idea what we can do with it
Seems like platform returns this code as indicator that there is no requests to be cancelled. BUSY is very common error for all situations when we use wifiP2pManager in a wrong way maybe