OpenAPI support for map fields

Description:
The current OpenAPI document is not supporting map field in the representation.

Related to the new HATEOAS Support

Describe your problem(s)
Consider the following example :
import ballerina/openapi;
import ballerina/http;

public type Link record {
    string rel?;
    string href;
    string[] types?;
    string[] methods?;
};

public type Location record {|
    map<Link> _links;
    string name;
    string id;
    string address;
|};

@openapi:ServiceInfo {
    embed: true
}
service on new http:Listener(9090) {
    resource function get locations() returns Location {
        return {
            name: "Alps",
            id: "l1000",
            address: "NC 29384, some place, switzerland",
            _links: {
                room: {
                    href: "/snowpeak/locations/{id}/rooms",
                    methods: ["GET"]
                }
            }
        };
    }
}

Call the endpoint to retrieve the OpenAPI doc :
{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "",
    "version" : "0.1.0"
  },
  "servers" : [ {
    "url" : "{server}:{port}",
    "variables" : {
      "server" : {
        "default" : "http://localhost"
      },
      "port" : {
        "default" : "9090"
      }
    }
  } ],
  "paths" : {
    "/locations" : {
      "get" : {
        "operationId" : "getLocations",
        "responses" : {
          "200" : {
            "description" : "Ok",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Location"
                }
              }
            }
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "Location" : {
        "required" : [ "_links", "address", "id", "name" ],
        "type" : "object",
        "properties" : {
          "_links" : { },
          "name" : {
            "type" : "string"
          },
          "id" : {
            "type" : "string"
          },
          "address" : {
            "type" : "string"
          }
        }
      }
    }
  }
}

As you could see the _links field in the schema does not have any information about the Links record.
Describe your solution(s)
According to Swagger docs the schema can be represented as follows:
{
"Link":{
  "required":["href"],
  "type":"object",
  "properties":{
   "rel":{
    "type":"string"
   },
   "href":{
    "type":"string"
   },
   "types":{
    "type":"array",
    "items": {
     "type":"string"
    }
   },
   "methods":{
    "type":"array",
    "items": {
     "type":"string"
    }
   }
  }
 },
"Location":{
  "required":["_links", "address", "id", "name"],
  "type":"object",
  "properties":{
    "_links":{
     "type":"object",
     "additionalProperties":{
      "$ref" : "#/components/schemas/Link"
     }
    },
    "name":{
     "type":"string"
    },
    "id":{
     "type":"string"
    },
    "address":{
     "type":"string"
    }
   }
 },
}

[ ] map data type with primitive value

public type Location record {|
   map<string> _links?;
   string name;
|};

Location:
      required:
      - name
      type: object
      properties:
        _links:
          type: object
          additionalProperties:
            type: string
        name:
          type: string

[ ] map data type with record value

public type Location record {|
   map<string> _links?;
   string name;
|};

Location:
      required:
      - name
      type: object
      properties:
        _links:
          type: object
          additionalProperties:
            type: string
        name:
          type: string

[ ] map data type with record value

public type Location record {|
   map<string> _links?;
   string name;
|};

Location:
      required:
      - name
      type: object
      properties:
        _links:
          type: object
          additionalProperties:
            type: string
        name:
          type: string

Description:
The current OpenAPI document is not supporting map field in the representation.

Related to the new HATEOAS Support

Describe your problem(s)
Consider the following example :
import ballerina/openapi;
import ballerina/http;

public type Link record {
    string rel?;
    string href;
    string[] types?;
    string[] methods?;
};

public type Location record {|
    map<Link> _links;
    string name;
    string id;
    string address;
|};

@openapi:ServiceInfo {
    embed: true
}
service on new http:Listener(9090) {
    resource function get locations() returns Location {
        return {
            name: "Alps",
            id: "l1000",
            address: "NC 29384, some place, switzerland",
            _links: {
                room: {
                    href: "/snowpeak/locations/{id}/rooms",
                    methods: ["GET"]
                }
            }
        };
    }
}

Call the endpoint to retrieve the OpenAPI doc :
{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "",
    "version" : "0.1.0"
  },
  "servers" : [ {
    "url" : "{server}:{port}",
    "variables" : {
      "server" : {
        "default" : "http://localhost"
      },
      "port" : {
        "default" : "9090"
      }
    }
  } ],
  "paths" : {
    "/locations" : {
      "get" : {
        "operationId" : "getLocations",
        "responses" : {
          "200" : {
            "description" : "Ok",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Location"
                }
              }
            }
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "Location" : {
        "required" : [ "_links", "address", "id", "name" ],
        "type" : "object",
        "properties" : {
          "_links" : { },
          "name" : {
            "type" : "string"
          },
          "id" : {
            "type" : "string"
          },
          "address" : {
            "type" : "string"
          }
        }
      }
    }
  }
}

As you could see the _links field in the schema does not have any information about the Links record.
Describe your solution(s)
According to Swagger docs the schema can be represented as follows:
{
"Link":{
  "required":["href"],
  "type":"object",
  "properties":{
   "rel":{
    "type":"string"
   },
   "href":{
    "type":"string"
   },
   "types":{
    "type":"array",
    "items": {
     "type":"string"
    }
   },
   "methods":{
    "type":"array",
    "items": {
     "type":"string"
    }
   }
  }
 },
"Location":{
  "required":["_links", "address", "id", "name"],
  "type":"object",
  "properties":{
    "_links":{
     "type":"object",
     "additionalProperties":{
      "$ref" : "#/components/schemas/Link"
     }
    },
    "name":{
     "type":"string"
    },
    "id":{
     "type":"string"
    },
    "address":{
     "type":"string"
    }
   }
 },
}

+1

@shafreenAnfar, @TharmiganK Could you please verify these ballerina scenarios support in the http as well 🙂  ?

LGTM 👍


Mouse info: fix MIDI Inline Editor detection when MODE_ARRANGE is unset

:white_check_mark: Build sws 175-master completed (commit https://github.com/reaper-oss/sws/commit/af8e8bd6f2 by @cfillion)

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Visual Studio 2019, ARCH=x86

build/BuildUtils/SWS_Template.ReaperLangPack
build/BuildUtils/whatsnew.html
build/reaper_sws-x86.pdb
build/sws-<IP_ADDRESS>-Windows-x86-ctxtoolbar-fix-inline-wo-arrange-af8e8bd6.exe

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Ubuntu1804, ARCH=i686

build/sws-<IP_ADDRESS>-Linux-i686-ctxtoolbar-fix-inline-wo-arrange-af8e8bd6.tar.xz

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Ubuntu1804, ARCH=aarch64

build/sws-<IP_ADDRESS>-Linux-aarch64-ctxtoolbar-fix-inline-wo-arrange-af8e8bd6.tar.xz

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Ubuntu1804, ARCH=x86_64

build/sws-<IP_ADDRESS>-Linux-x86_64-ctxtoolbar-fix-inline-wo-arrange-af8e8bd6.tar.xz

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Ubuntu1804, ARCH=armv7l

build/sws-<IP_ADDRESS>-Linux-armv7l-ctxtoolbar-fix-inline-wo-arrange-af8e8bd6.tar.xz

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Visual Studio 2019, ARCH=x64

build/BuildUtils/SWS_Template.ReaperLangPack
build/BuildUtils/whatsnew.html
build/reaper_sws-x64.pdb
build/sws-<IP_ADDRESS>-Windows-x64-ctxtoolbar-fix-inline-wo-arrange-af8e8bd6.exe


navigation controller and tabbar color is not correct on iOS 15

Navigation controller and tabBar color is not correct on iOS 15. just install app on iOS 15 simulator to repreduce the bug.

Maybe you can set "UINavigationBarAppearance", and observe ThemeUpdateNotification to change it.

I have the same issue. Have anyone fixed it?

iOS 15
theme_backgroundColor
<  iOS 15
theme_barTintColor


Remove records by id from both elasticsearch and pycsw database

Coverage decreased (-0.9%) to 98.56% when pulling c8c0910350d88a5b1326bf22ab1f4e9c3738e1bd on JorgeMartinezG:remove_by_id into 2f723616b0864149ea5c3b24b27e6af0a50e6e37 on boundlessgeo:master.

Coverage decreased (-0.1%) to 99.346% when pulling c69c96f01080f806e6b8616792c715ff146c70cc on JorgeMartinezG:remove_by_id into 2f723616b0864149ea5c3b24b27e6af0a50e6e37 on boundlessgeo:master.


fixed pos on show()

position was set incorrectly when parent_pos != (0, 0).
This commit fix it, fix pox_x, and remove unused import and variable.

Thanks! However I'll need to elaborate more on this because the position is different when embedding this package in a RelativeLayout or in any other layout. I also added examples to examples dir that work now but these test only one type of layout right now.

Le vendredi 30 d�cembre 2016, 12:46:51 CET Martin Sikora a �crit :

Thanks! However I'll need to elaborate more on this because the position is
different when embedding this package in a RelativeLayout or in any other
layout. I also added examples to examples dir that work now but these
test only one type of layout right now.

Hello,
thanks for the component :). This change was fixing the menu on my tests with
BoxLayout and FloatLayout while the examples were still working, but it may
cause trouble with RelativeLayout indeed, didn't try it.
Goffi


MNT: rerender

Hi! This is the friendly automated conda-forge-webservice.
I've rerendered the recipe as instructed in #15.
Here's a checklist to do before merging.

[ ] Bump the build number if needed.

Fixes #15

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


-h switch

listpedeps doesn't accept the -h switch? I want to view help.

Originally posted by @chatchoi in https://github.com/skeeto/w64devkit/issues/168#issuecomment-2337442320

Option -h and proper help added to listpedeps


Add additional regexp function regexp_count()

Which issue does this PR close?

Closes #12079 and part of #11946
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

Finalizing the details takes a lot more effort than expected. Would you like to take a look?  Thanks! @alamb @jayzhan211
Benchmark
regexp_count_1000 string
                        time:   [6.6158 ms 6.6634 ms 6.7108 ms]

regexp_count_1000 utf8view
                        time:   [6.7117 ms 6.7647 ms 6.8183 ms]
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild

regexp_like_1000        time:   [3.7056 ms 3.7170 ms 3.7289 ms]
                        change: [-5.9843% -5.0861% -4.1952%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) high mild

regexp_match_1000       time:   [4.4132 ms 4.4287 ms 4.4466 ms]
                        change: [-9.8318% -8.4331% -7.0280%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) high mild
  2 (2.00%) high severe

regexp_replace_1000     time:   [3.4351 ms 3.4697 ms 3.5142 ms]
                        change: [-13.734% -11.848% -10.019%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) high mild
  6 (6.00%) high severe

Thanks for the very nice PR @xinlifoobar ! I'll try and take the time to do a full review of this PR next week if no one beats me to it.

I think this is a good PR and worthy of merging into main. My only thoughts are some small things noted in my comments and the fact that counts seems to be twice as slow as like and replace. I was able to reproduce the benchmark but unfortunately I cannot run flamegraph on my machine (perf and WSL is a black art) so I wasn't really able to narrow down the cause.

@alamb - since @xinlifoobar seems to be dormant my thoughts on this PR is to merge it in and file a couple of tickets to improve it, primarily the performance discrepancy.

Makes sense to me -- thank you @Omega359 -- would you be willing to make a new PR (merged/ rebased to fix the conflicts on main)? I can help with the review / merge / file follow on tickets.

Merged in https://github.com/apache/datafusion/pull/12970


[SPARK-36664][CORE] Log time waiting for cluster resources

What changes were proposed in this pull request?
Keep track of and communicate to the listener bus how long we are waiting for execs to be allocated from the underlying cluster manager.
Replaces previous PR with GHA issues (  #35172 ) and WIP PR https://github.com/apache/spark/pull/34650
Why are the changes needed?
Sometimes the cluster manager may choke or otherwise not be able to allocate resources and we don't have a good way of detecting this situation making it difficult for the user to debug and tell apart from Spark not scaling up correctly.
Does this PR introduce any user-facing change?
New field in the listener bus message for when a executor is allocated.
How was this patch tested?
New unit test in the listener suite.

Fair, I'll target this to 3.4 and backport internally :)

Thank you, @holdenk .

Fair, I'll target this to 3.4 and backport internally :)

Thank you. I will exclude this from the allow list for 3.3 if you don't mind.

+CC @otterc
This PR might be of interest to you, given some of the recent issues you are investigating.

Ok looks like GHA is having difficulty (again) with the rebased PR, so I'm going to close and re-open a new one, but I believe all comments are addressed and I'll merge this to 3.4 once the tests pass.

Curious, why are you opening a new PR ?


Build_visit fails building mesagl from within a Git checkout.

Describe the bug
Allen Sanderson reported that he did a checkout of the 3.0RC and then ran build_visit in a directory adjacent to src. Building of mesagl failed because it couldn't find the llvm library. Here is Allen's e-mail.
I am trying to build from scratch the 3.0RC and running into this error with mesa not finding llvm.
configure: error: Could not find llvm shared libraries:
Please make sure you have built llvm with the --enable-shared option
and that your llvm libraries are installed in /uufs/ash.peaks/sys/pkg/VisIt/BuildDirs/3.0RC_trunk/visit/Thirdparty/third_party/llvm/5.0.0/linux-x86_64_gcc-4.9/lib
If you have installed your llvm libraries to a different directory you
can use the --with-llvm-prefix= configure flag to specify this directory.
NOTE: Mesa is attempting to use llvm shared libraries by default.
If you do not want to build with llvm shared libraries and instead want to
use llvm static libraries then add --disable-llvm-shared-libs to your configure
invocation and rebuild.
The libs are there and all seems correct. Any clues? Last spring when I built I do not recall running into any issues. The builds seems the same.
Impact

[X] Medium - User productivity partially degraded

Likelihood

[X] Low - occurrence is specific to combination of multiple factors such as configuration, data, platform, etc.

To Reproduce
../src/tools/dev/scripts/build_visit --parallel --llvm --all-io --boost --zlib --no-visit --makeflags -j24 --no-fastbit --no-fastquery --no-gdal --openssl --embree --ospray --tbb --ispc --mesagl
on a RHEL7 system.

Jim Eliot replied with the following e-mail.
Hi all,
I ran into the same ‘mesa configure’ error message recently – I don’t know whether the cause is the same though.
For me the problem was caused by doing my VisIt build within a subdirectory of a Git project. The ‘fix’ was to not build within a Git tree.
The issue was  caused by a tool called llvm-config which is built by LLVM, which the mesa configure script calls like so:
llvm-config –version
The script outputs the version “5.0.0” and the mesa configure script looks for a file called libLLVM5.0.0.so (using the version number from llvm-config).
If llvm is built somewhere within a git tree, llvm-config --version  appends a  “git-” and a git hash on the end, something like this: 5.0.0git-b5f58f2. The mesa configure script then tries to find a file called libLLVM5.0.0git-b5f58f2.so which of course doesn’t exist and mesa configure fails to find llvm.
So for me, the fix was to not do the build within a Git tree --  your problem might be unrelated though.
I hope this helps 😊
Kind regards,
Jim

I used Allen's build_visit line on quartz and got the same failure. Allen later reported that building outside the git checkout worked. I looked at the failure and it was indeed as Jim reported.


Toggle buttons

Description
Responsive toggle buttons
Reference video given below
Screenshots
https://user-images.githubusercontent.com/76876383/147367086-845410e1-cd6c-47ef-88dc-9de36a6c38a1.mp4
Additional information
No response

I would like to work on this issue. Could you please assign this issue to me?


Add credential and role assignment warning for creating service principal

Context
The credential and role assignment warning currently only exists in the command help of az ad sp create-for-rbac, but not in Create an Azure service principal with the Azure CLI.
Azure PowerShell has this warning in both docs:

Cmdlet help New-AzADServicePrincipal (Added by https://github.com/Azure/azure-powershell/pull/13408)
Tutorial Create an Azure service principal with Azure PowerShell (Added by https://github.com/MicrosoftDocs/azure-docs-powershell/pull/1620)

Changes

Add the same credential and role assignment warning to Create an Azure service principal with the Azure CLI.
Declare the deprecation of the default Contributor role assignment

Docs Build status updates of commit b54a2bb:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/create-an-azure-service-principal-azure-cli.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit b54a2bb:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/create-an-azure-service-principal-azure-cli.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 70d30be:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/create-an-azure-service-principal-azure-cli.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 70d30be:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/create-an-azure-service-principal-azure-cli.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

@jiasli, I'm not sure who you are talking to in your comments.  :-)  Is this PR ready to merge?

@jiasli, I'm not sure who you are talking to in your comments. :-) Is this PR ready to merge?

I am not talking to anyone. Just some comment. 😉


[Question / Problem] Parameters

Great Reporting tool!!!
I'm trying to get the query below to work, but I get this error:
(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'AND \r\n GROUP BY u.username, e.EvaluationDate
WITH ROLLUP' at line 5")
Select u.username,e.EvaluationDate , Candidate Name, count(*)
FROM eval_evaluation e
LEFT JOIN eval_candidate c ON e.candidate_id=c.id
LEFT JOIN auth_user u ON e.user_id=u.id
WHERE e.status = 2 AND e.EvaluationDate  BETWEEN $$fdate$$ AND $$tdate$$
GROUP BY  u.username, e.EvaluationDate  WITH ROLLUP
The query works if I put in date strings instead of the parameters.  If I take out the GROUP BY, I get (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND' at line 5")
Any idea what's going on?  cheers

I would recommend doing something like:
BETWEEN '$$fdate$$' AND '$$tdate$$'

Note the string literals around the params. Then you can enter date strings into the generated param UI and should be good to go.


[disclosure-manager] Allow Disclosing Content to Define Title Value

Summary
Fix delayed disclosure headers by providing a mechanisms for disclosing content to define the disclosed content's title. Worse case, this allows user to define an empty string such that the header is rendered with the back/close buttons, etc.
This can be used in conjunction with existing DisclosureManagerHeaderAdapter in both the Slide Panel Manager and Model Manger.
Closes #1013

In general I'm against adding more responsibilities to the discloser. The disclosed content should be the primary driver of the title for the disclosed content. I realize this does not fix the issue you're working on but this is a slippery slope to having the discloser add items to the headers toolbar etc, then the discloser is responsible for composing the disclosed content which will have a detrimental effect on our content ownership model.


Bug in Kernel.init() when merging if no function has funcvars

There is an obscure but critical bug in Kernel.init() where an error is thrown if Kernels are merged, but none of them has any new variables defined. In that case, funcvars is empty, but pyfunc may not be a Kernel object; resulting in an error.
I'm working on a fix and unit-test. Should land soon

Fixed in #164


Restore wanted hydraJobs (Work In Progress)

This will hopefully fix the issue discussed in #5375, #5378, and #5379, where errors such as missing files in benchmarking code were not being detected in CI.

What's the status of this? I am noticing some weirdness regarding the CI and benchmarking job in #5385 too. So I'm hoping this will make it less weird.

What's the status of this? I am noticing some weirdness regarding the CI and benchmarking job in #5385 too. So I'm hoping this will make it less weird.

I think it should be ready to go, but I'll check with @zeme-wana to make sure he doesn't want to do anything else.

I had to add TypeOperators in a couple of places because I was getting a warning that we soon won't be able to use ~ without it.  Also I had to make all the imports of asum be from Data.Foldable instead of Control.Applicative because some of the CI machines are using GHC 8.12,which doesn't support the latter(see here and here).

@michaelpj FYI this reverts some things from #5351.

This is pretty small and will improve our testing, so I'm going to merge it. Reviews are still welcome!

I'm getting a failure in master because of a warning about needing TypeOperators if we want to use ~.  I fixed a similar one in this PR but for some reason I didn't get a complaint about the other one. The new one should be fixed in #5386 .


Gems on fabric can't be utilized (0.10.7 BETA)

Can I ask if there is a way to use gems to enhance tools in this version for fabric yet and I just can't find it? Thanks in advanced :)

Hey! Gems are absolutely suppose to be able to enhance tools, but we've had some reports of a bug that's preventing gems from being applied, so we're looking into it for a fix!

We've noticed on our server that gems can currently only be applied to mastercrafted and refined parts, which is a bit problematic with the fact you can currently only get the normal version of schematics for these parts.
Our temporary solution has been to add some override recipes in our own datapack, to add in mastercrafted schematic recipes - so that we can apply gems to these components.

Schematics are available, but only found as loot. I can see why some player might want to be able to craft it from existing parts. We'll have to take this into consideration when reworking/implementing some of the progression based mechanics in the mod.

Also, the loot injection system is migrated to a datapack format which makes it possible to add Forgero loot entries to all existing loot tables.

@AverageCodeEnjoyer2004 have you tested to most current 0.10.8 release of Forgero? I have tried to reproduce the issue with gems not being applicable to parts, but I haven't been able to reproduce the issue. Are you applying the gems to bindings in the smithing table?

Also, I bundle Forgero with Arrp, so if that is installed separately, it might cause issues. This is something I have to look into further.


Pose visualization

Description
PoseVis
PoseVis is a multi-camera streaming and visualization framework built upon LabGraph. PoseVis was built with modularity in mind and can be extended to many downstream applications relatively easily through its extension system and logging support.
Usage preview
Concepts
Overview
PoseVis supports up to 4 video streams producing the ProcessedVideoFrame message. There are a few different stream providers: CameraStream for device streaming, ReplayStream for log replaying, and ImageStream which reads images from a given directory.
These streams are initialized by a corresponding PoseVisRunner class that takes care of graph initialization. The PoseVis graph is based off of the DynamicGraph class, which allows us to build a graph based on run-time parameters.
Each stream provider enables and runs PoseVisExtension objects on their respective outputs and streams a CombinedExtensionResult message, which is a dictionary containing each extension's name, and the data it produced. Extensions can be enabled or disabled by the user. ProcessedVideoFrame has the original image, and an overlayed image containing any processing done by extensions (i.e a pose overlay).
CameraStreamRunner and ReplayStreamRunner initialize a Display node that aggregates all streams and displays the overlayed image for real-time feedback. ImageStreamRunner initializes a TerminationHandler node that shuts the graph down when processing is finished.
If logging is enabled, a GraphMetaData message is logged containing the stream count. Each stream's ProcessedVideoFrame and CombinedExtensionResult messages are logged under separate groups.
Usage
Requires Python 3.8 or later
Make sure to install:
cd devices/webcam
python setup.py install

Command Line
Check usage details:
(.venv) python -m pose_vis.pose_vis --help
usage: pose_vis.py [-h] [--device-ids [DEVICE_IDS ...]] [--replay REPLAY] [--replay-overlays] [--target-display-framerate [TARGET_DISPLAY_FRAMERATE]] [--device-resolutions [DEVICE_RESOLUTIONS ...]]
                   [--log-images] [--log-poses] [--log-dir [LOG_DIR]] [--log-name LOG_NAME] [--hands] [--face]

optional arguments:
  -h, --help            show this help message and exit
  --device-ids [DEVICE_IDS ...]
                        which device ids to stream
  --replay REPLAY       replay a log file (default: none)
  --target-display-framerate [TARGET_DISPLAY_FRAMERATE]
                        specify update rate for video stream presentation; separate from stream framerate (default: 60)
  --device-resolutions [DEVICE_RESOLUTIONS ...]
                        specify resolution/framerate per device; format is <device_id or * for all>:<W>x<H>x<FPS> (default *:1280x720x30)
  --log-images          enable image logging (default: false)
  --log-poses           enable pose data logging (default: false)
  --log-dir [LOG_DIR]   set log directory (default: webcam/logs)
  --log-name LOG_NAME   set log name (default: random)
  --hands               enable the hand tracking extension
  --face                enable the face detection extension

Streaming a single device: stream device 0 with no extensions or logging
python -m pose_vis.pose_vis --device-ids 0
Streaming multiple devices: stream devices 0 and 1 with no extensions or logging
python -m pose_vis.pose_vis --device-ids 0 1
Specifying resolution and framerate:
The format for specifying resolution is <device id>:<width>x<height>x<framerate>
You can also set the default resolution and framerate by using * in place of <device id>
python -m pose_vis.pose_vis --device-ids 0 1 --device-resolutions 1:640x480x30
Enabling extensions: this enables the hand tracking extension
python -m pose_vis.pose_vis --device-ids 0 1 --device-resolutions 1:640x480x30 --hands
Enabling logging: this enables both image and pose data logging
python -m pose_vis.pose_vis --device-ids 0 1 --device-resolutions 1:640x480x30 --hands --log-images --log-poses
Replaying logs: this will replay a log and stream the generated pose data (if present)
python -m pose_vis.pose_vis --replay webcam/logs/test_log.h5
You can also enable extensions and logging to generate a new log with new extension data based on the images in the log being replayed:
python -m pose_vis.pose_vis --replay webcam/logs/test_log.h5 --hands --log-images --log-poses
As a Module
See this Jupyter Notebook example for PoseVis usage as a module.
Reading Logs (HDF5)
For an example of logging output, check this Jupyter Notebook example.
You can download the log generated in this example here.
To-do
Testing
A testing solution needs to be implemented, this is a regression from the previous proposal for this pull request.
VRS Support
VRS support for logging needs to be added.
Other MediaPipe Solutions
Hand tracking is currently included, with other solutions on the way. MediaPipe Python supports hand tracking, pose tracking, and face mesh tracking. These solutions can be combined into the holistic graph. The plan is to implement them separately along with the holistic solution for modularity.
Other MediaPipe solutions will require C++ interop.
Other Thoughts
MediaPipe Performance
Currently, the hand tracking (and subsequent other) MediaPipe extensions run their neural networks on the CPU. A significant performance uplift could be achieved by running GPU-enabled MediaPipe graphs. It seems that MediaPipe's Python wrapper does not have GPU capabilitie. We could use C++ interop to achieve this.
n-Stream Support
Pose Vis is hard coded to support 4 streams simultaneously. This limitation could be avoided with a method to change node metadata (inputs and outputs) before graph startup. This idea has proven tricky to implement due to the multi-process nature of LabGraph, but it should be possible.
Multi-media Support
CV2 can be used to import a wide variety of media including videos and gifs. We could create more stream types to support this.
Type of change
Please delete options that are not relevant.

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

Feature/Issue validation/testing
Please describe the tests [UT/IT] that you ran to verify your changes and relevant result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[ ] Testing PoseVis

Checklist:

[ ] Have you added tests that prove your fix is effective or that this feature works?
[ ] New and existing unit tests pass locally with these changes?
[x] Has code been commented, particularly in hard-to-understand areas?
[x] Have you made corresponding changes to the documentation?

To clarify whether devices/webcam/test/thumbs_up.png is copy-right free?
And you please add the source of this file?

To clarify whether devices/webcam/test/thumbs_up.png is copy-right free? And you please add the source of this file?

Looks like it's for personal use only. I got it from here. I'll remove it in the next commit.

If you can include a demo video link or a gif image, that would be useful for users to understand the functionality.

Please also add github action support, reference: https://github.com/facebookresearch/labgraph/actions/workflows/main.yml

We have committed quite a few changes, notable additions are multiple camera support, multiple MediaPipe solution support, and integration with LabGraph's HDF5 logger. The PR's description has been updated with a better overview, a GIF preview, a Jupyter Notebook example, and other usage details/thoughts.
One issue I've noticed though is replaying large (500mb+) log files using HDF5Reader: the replay process will crash with just [Cthulhu][ERROR]. Tested on Windows with Python 3.9.13 and LabGraph 2.0.0. If we're not doing anything wrong, is this a memory constraint maybe? If that's the case, one solution might be to create an incremental reader instead of pulling the entire log into memory at once.

Please also add github action support, reference: https://github.com/facebookresearch/labgraph/actions/workflows/main.yml

What kind of actions should be added? Should we use the ATI force touch entries as a template?

For example demo image attached in this PR, how many cameras are used?
When supporting 4 video streams, do you know how does time synchronization work across 4 video streams?

replay

Replay function is relatively new for labgraph, Incremental reader may need to use in this case.

Please also add github action support, reference: https://github.com/facebookresearch/labgraph/actions/workflows/main.yml

What kind of actions should be added? Should we use the ATI force touch entries as a template?

You can refer to LabGraph Monitor as an example, link.

To control the size of the extension, can you share a link instead rather than upload the h5 file to the repo: devices/webcam/logs/logging_example.h5

For example demo image attached in this PR, how many cameras are used? When supporting 4 video streams, do you know how does time synchronization work across 4 video streams?

Just one camera in the demo.
There is no coupling, each stream is ran independently in its own process. Results are logged/displayed as soon as they become available.

Replay function is relatively new for labgraph, incremental reader may need to use in this case.

Excellent, we'll see what we can do.

You can refer to LabGraph Monitor as an example, link.

Okay, thanks. Will do once tests are re-introduced, working on that now.

To control the size of the extension, can you share a link instead rather than upload the h5 file to the repo: devices/webcam/logs/logging_example.h5

I have moved logging_example.h5 and preview.gif (it was also big) out of the repository.

Please see my comments as below in bold:

in the demo.
There is no coupling, each stream is ran independentl

For example demo image attached in this PR, how many cameras are used? When supporting 4 video streams, do you know how does time synchronization work across 4 video streams?

Just one camera in the demo.
There is no coupling, each stream is ran independently in its own process. Results are logged/displayed as soon as they become available.

In this case, multi-camera synchronization is not yet supported. Please mention this limitation in README.

@jfResearchEng
The annotation source from the meeting has been uploaded here.

Hi Dasfaust,
Thanks for the update. Do you also happen to have a link to the annotated video based on the video I shared earlier? And have you also shared the code generating the offline annotated video somewhere?
Thanks,
jfResearchEng

@jfResearchEng
The annotation source from the meeting has been uploaded here.


Support network log lines in cactbot

Mentioned in #1312.
cactbot currently only operates on act log lines, but this has some limitations.  There's more data in the network log lines that would be nice to write triggers against (like lightsteeped stacks, or zone ids, or effect ids, or cast bar lengths, etc).
Options look like this:
(1) provide network log lines in addition to act log lines (cons: now you're parsing 2x as much data for every trigger
(2) replace act log lines with network log lines (cons: a bunch of work, also risky, maybe confusing to developers)
(3) implement hypothetical new log injection technique to add new act log lines with this info, continue to use act log lines (cons: farther in the future, also a bunch of work)
I think #2 is plausible. Timelines use raw act log lines, but they're all faiiiirly normalized and we could...convert them magically into network log lines, and use tests to verify that they can be converted as such. Most other things use regex helpers, which could be converted to network log lines too.
This would also solve the zone id issue and effect id issues (to avoid translations on both of them), would provide positioning information on more lines, and some other good stuff.

Has anyone observed/measured the actual performance impact of option 1?
Doubling parsing load sounds bad, but maybe it's still well within the acceptable range

Whee, yes please! This would also mean no more need for supporting both types of log lines in the timeline utilities. That was a major source of confusion for me when I first started the updates to them.
Off the top of my head, I want to say that 1 isn't an option. It's a guarantee that it will double processing time, and that's only going to get worse as the plugin gets older. That being said, FabulousCupcake is right that we should get some hard numbers on it. Didn't panicstevenson do some benchmarking for us when we moved regexes to global case insensitivity? Maybe we could ~bribe~ persuade them to whip something up for us here too?
Honestly, I don't think it's too risky to switch to network lines. Just about all the timelines use 15 lines for everything, so in theory automatic conversion there should Just Work. I know there are a few here and there that use other lines (Fractal Continuum comes to mind) but the majority should be fine.

Re: Option 1.  Yeah, agreed that maybe I'm overthinking the performance impact, but it sure feels bad.  There's also (unmeasured) overhead for the plugin having to turn all the logs into strings and send them to javascript too.  An additional negative that there's also just added developer burden to have multiple kinds of log lines to match against, and some fields that would only work in certain cases.  It'd be simpler to think about everything if there was only one kind of log line.
Re: Option 2.  Another negative is any triggers or timelines that folks have made in their user directories.  I could certainly publish some "deprecation" warnings for a while to give people a chance to update them to regex helpers, and then we could switch over.  I'm not sure if there's a better way to do this, though.

I'd like to say that most people who use the user folder would be able to fix things at that point, or at least would know where/how to ask for help on it, but that's probably not a safe assumption. (I know for Eden's Gate I put some user triggers together for some static members who weren't comfortable with anything beyond "drop this into your user folder".)
I think you're right about a long-term deprecation warning as you did for the move to ngld. The population affected by this would be a lot smaller than the ngld move anyway.

This sounds like the sort of thing that should be done to coincide with a new major content drop or expac. Maybe add raw lines in the last raid tier for ShB along with a deprecation warning, and remove the old lines when the next expac releases, since custom triggers and such should be naturally phased out for the most part by that point?

I think you're right about aligning it with a new tier, but maybe a little prior. We really want to ensure any bugs are shaken out before everyone has to focus on Savage to the exclusion of everything else.
As far as straight replacement vs both alongside each other, my view is that the entirety of Eden's Verse has had regex replacements available. The only major content that would be affected by this is Ultimates, and I do think it's a ~safe~ not unreasonable assumption that anyone using cactbot for Ultimate content should be capable of fixing their own user files.

We really want to ensure any bugs are shaken out before everyone has to focus on Savage to the exclusion of everything else.

That's why I was suggesting adding the second alongside the first, so that things can be tested and transitioned to the new format over time rather than doing everything at once and risking that something isn't working or got lost in the shuffle.
So the timeline (heh) for Cactbot releases would look like:

Eden's ??? release: Add the raw lines
After Eden's ??? release: Replace helpers
After Eden's ??? release: Replace timelines
After Eden's ??? release: Replace triggers, etc
Next expac release: Remove old lines

I think you're overthinking the performance impact. OverlayPlugin already has an event for network log lines (LogLine). Due to the way it's implemented, the whole log line parsing and JSON encoding happens regardless of whether an overlay subscribes to the event or not.
ACTWS overlays always subscribe to that event since SkillDisplay requires that data and I have no way of telling whether the ACTWS overlay is SkillDisplay or MopiMopi.
Either way, OverlayPlugin already provides network log lines and that part seems to work fine.

Well, if the performance concerns aren't really an issue, then a hypothetical plan:

add support for triggers to use network logs

add some new netRegex / netRegexDe / etc ?
add some different NetRegexes file, akin to Regexes?

convert triggers to use new netRegex / NetRegexes

surely there's going to be some difference here that will bite us
I verified that nothing uses regex: /match/ anymore, so maybe this is just a search+replace?

auto-convert timelines to use network regexes

I think we should start with doing this implicitly in code rather than converting them in text
this would also let us convert to using NetRegexes, which match faster
probably need some tool to figure out which ones don't auto-convert
maybe somebody could make better hw trial timelines (ravana, sophia, etc) to fix these

insert JLGarber bat signal here

possibly remove the old regex stuff eventually? Or maybe just leave it??

I can certainly look into the Heavensward timelines, yes. Some of them will be rather more difficult though, since I don't have people on Crystal to drag through for the amount of time necessary. Sephirot in particular would be extremely difficult, for example. (I suppose given that we already have the existing timelines, I can try building them out from FFLogs. Not something I've done so far, but it has to be doable.)

I think everything supports network log lines and NetRegexes at this point.  I don't think it's a good idea to remove normal parsed log lines or Regexes.  So, I think this is done.


(WIP) Add Ray SDL

adds sdl and docker containers for ray clusters

Hey @rakataprime !
Awesome work.
Just few of edits:

Empty ./ray/README.md
Add information (links) about your templates to README.md in the root directory, repository awesome-akash.

Thank's!

hey @Dimokus88 - I've been working closely with @rakataprime on this and will take care of this review/ merge. Thanks!

@anilmurty  should be good to merge


Fix: table scroll

Looks good to me. Are you planning on fixing the tables on the dashboard in a next PR then?

Are you planning on fixing the tables on the dashboard in a next PR then?

sure. it will be the next step in https://github.com/VenusProtocol/venus-protocol-interface/pull/361


Standalone command-line functionality?

First off: thank you for this great piece of software! Long time gfxCardStatus user here.
I'm inquiring about the possibilty of a standalone (and slightly expanded) command-line functionality. The reason is this bug in the IINA media player, more precisely in the underlying mpv player. It will probably not be fixed for some time, if at all, so it would be great to have a gswitch CLI to (a) read the current state of the GPU (dynamic switching on/off, integrated or discrete), and (b) the ability to set a new GPU state (or lock the current state by disabling dynamic switching) without launching a new instance of the gSwitch GUI app.
Then we could create an IINA launcher app with AppleScript that would disable dynamic switching before launching IINA itself.
CLI possible?
EDIT: no, strike that. It's not important… just tested this with a "hungry" process, while set to integrated-only, and macOS switches to the dGPU for a brief amount of time, then switches back to the iGPU, and the mpv bug returns. So gSwitch won't be able to help in this matter.

macOS will always trigger the dgpu when a process has gpu acceleration.  gSwitch simply detects this had occurred and switches back to the igpu as fast as possible when integrated only is selected.  When you run gswitch from the command line you can see the triggers.
Disabling dynamic switching would simply use the dgpu.  Does the bug occur on dgpu or igpu?  or both?

@JayBrown  I skimmed through the thread you reference I think I understand the bug now.
If you want to play around with gpu states you can run
sudo pmset -b gpuswitch 0
sudo pmset -b gpuswitch 1
sudo pmset -b gpuswitch 2
Which is like a hard switch to the igpu, dpu, and dynamic switch, respectively.

That's some great info, thank you.
Is there a way to read which GPU is currently in use? iGPU or dGPU?
You can read the current battery status with pmset -g batt | head -1 | awk '{print $4}' | sed "s/'//", and the current pm setting with pmset -g | awk '/^ gpuswitch/{print $2}'. If pm is set to 0 or 1, it's clear that it's either the iGPU or the dGPU, but neither command will show you which GPU is actually in use, if pm is set to 2 (dynamic switching).

By the way, if you switch to the iGPU or the dGPU with the pmset command, gSwitch doesn't respond, and in the menu the tick doesn't jump from "Dynamic Switching" to "Integrated Only" or "Discrete Only".

Yea I know.  pmset is too low level it doesn't trigger the same events that gswitch looks for.  Honestly I have no idea how to read the current active gpu with pmset, not a whole lot of documentation on it.

@JayBrown gSwitch has an advanced pane that might help you debug in preferences -> advanced.  If you pass 3 in get gpu state that should show you the active gpu even with pmset.


Box Shadow Generator

Hello, I believe it would be valuable to include a Box Shadow Generator in web development tools for the benefit of web users. I am interested in working on this feature. Please assign this issue to me.

Hello, I believe it would be valuable to include a Box Shadow Generator in web development tools for the benefit of web users. I am interested in working on this feature. Please assign this issue to me.

It is a great feature. Also I will personally be using it.
Assigned


Enhancement/Fix to 'Report Bugs' functionality

Other Items:
When I went into the Report Bugs page and then went back to the Explore Water Use program, none of the graphics would work.

I think the best bet here would be to force that link to open in a new tab.


More simple Certificates directory structure

Is there a way to make Certificates directory be the same as in version 1?
It used to be a storage of both PEM and PFX certificates along with certificate chains, each having a human readable name, so it could be easily used in 3rd party config files.

So can I configure Win-acme to store the certificates the old way?

No there is not, architectually since version 2.0 the certificate path is considered to be an internal cache folder, not something that users or other applications should directly poke around in. Now you have to be more explicit, so if you want to use .pem files you have to ask for that (and specify where you want them) using the PemFiles store plugin. See some instructions here to on how to do that in bulk: #1417
I realise that a little more tedious, but the fact that it was "simple" before meant that there were a lot of file name collision bugs, private keys were unnecessarily vulnerable to exposure and maintainance of the program was generally more difficult.


Issue with JSX

So right now, the plugin works fine unless you have JSX pages. Is there a way we can bypass JSX checking in reactjs components?

Hi,
JSCS plugin runs JSCS command line, so you need to check with the docs if they support JSX.
http://jscs.info/overview.html

They do with the --esprima flag set to fb. From their docs, "Attempts to parse your code with a custom Esprima version."
jscs path[ path[...]] --esprima=esprima-fb
Is there a way we can configure this in the plugin?

add esprima option, will be available soon in version 1.0.3


Reset Password Breaks with $%

A user is trying to change his password and it Includes $%,  after the % percent sigh the Form stops working.
What steps will reproduce the problem?
Reset any users password,  enter %, Form Stops responding.
What is the expected result?
to use % in a password
What do you get instead?
AFU... and dead.  Reload page to try again...
Additional info

Q
A

Yii version
2.0.15

PHP version
7.2.15

Operating system
Ubuntu 18.04.1

Which password reset form do you mean?

we are using a pretty simple form that resets users passwords, It calls the standard models\ResetPasswordForm.

Issue occurs as soon as a '%' sign is entered in the password field. Once % percent is pressed the form stops working.  needin a reload to try again.

`
/* @var $this yii\web\View /
/ @var $form yii\bootstrap\ActiveForm /
/ @var $model \frontend\models\ResetPasswordForm */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
$this->title = "Reset password";
$this->params["breadcrumbs"][] = ["label" => "Admin Function", "url" => ["/badge/admin-function"]];
$this->params["breadcrumbs"][] = ["label" => "User", "url" => ["index"]];
$this->params["breadcrumbs"][] = $this->title;
?>

 "reset-password-form"]); ?>
            <?= $form->field($model, "password")->passwordInput(["autofocus" => true]) ?>
             <?= $form->field($model, "confirm_password")->passwordInput(["autofocus" => true]) ?>
            <div class="form-group">
                <?= Html::submitButton("Save", ["class" => "btn btn-primary"]) ?>
            </div>

        <?php ActiveForm::end(); ?>
    </div>
</div>

`
ResetPasswordForm
`use yii\base\Model;
use yii\base\InvalidParamException;
use common\models\User;
/**

Password reset form
*/
class ResetPasswordForm extends Model {
public $password;
/**

@var \common\models\User
*/
private $_user;

/**

Creates a form model given a token.

@param string $token
@param array $config name-value pairs that will be used to initialize the object properties
@throws \yii\base\InvalidParamException if token is empty or not valid
*/
public function __construct($token, $config = []) {
if (empty($token) || !is_string($token)) {
throw new InvalidParamException("Password reset token cannot be blank.");
}
$this->_user = User::findByPasswordResetToken($token);
if (!$this->_user) {
throw new InvalidParamException("Wrong password reset token.");
}
parent::__construct($config);
}

/**

@inheritdoc
*/
public function rules() {
return [
["password", "required"],
["password", "string", "min" => 6],
];
}

/**

Resets password.

@return bool if password was reset.
*/
public function resetPassword() {
$user = $this->_user;
$user->setPassword($this->password);
$user->removePasswordResetToken();
return $user->save(false);
}
}
`

I'm unable to reproduce it. Please provide a reduced test case else we cannot fix it.


add version 9 to avoid the check with version 8

https://github.com/openzipkin/zipkin/pull/3510 rebased as requested

Thank you for the pull request, but this still doesn't test that our code works with Elasticsearch 8, as I requested be added in https://github.com/openzipkin/zipkin/pull/3510#pullrequestreview-1297082145.

can we get this merged?

can we get this merged?

Not until my review is addressed.

@shakuzen I have created another PR by addressing your review comment. can you take a look.

Closing in favor of https://github.com/openzipkin/zipkin/pull/3552


add "feedback" API - outputs that produce inputs have problems

Related to #30:
When the state machine is producing outputs, it is in an intermediate, undefined state.  One of automat's big benefits is to eliminate the need for manual guards implemented around logic that requires set-up: any output generated by a state that has always had another output run before it can implicitly depend on that previous output having run.  (This can be useful for initializing counters, collections, etc)
If we resolve #30 by always forcibly exhausting the output generator, the externally-visible (i.e. non-reentrant) exposure to this state might go away, but an output method might still want to call self.<some input>(), which would potentially run outputs from the new input before the pending outputs have been invoked.
I ran into this issue while attempting to implement HostnameEndpoint as an explicit state machine, and my solution was to retrofit input() to add "feedback": https://github.com/glyph/twisted/blob/b5f7d36f3e69d352248c3d1d94b9d004dcea36cc/src/twisted/internet/_statefulhost.py#L18-L76
Roughly, I think this is the right shape of a solution, but another important piece is to give a sensible error message when outputs generate inputs without using this mechanism.

I don't have a useful solution at hand, but chiming in to say I often do something like this (i.e. an output() triggers some input -- either to "this" machine or another one).
One pattern / workaround I've used is callLater(0, ...) -- but of course that only works when you're doing Twisted.

Do I understand this ticket correctly that the suggestion here is to build the _FeedbackInput directly into Automat so that it:

notes when it is "doing outputs"
collects any called input() methods during that time
...and then only actually runs any such input methods after all the outputs are done?

@meejah something like that. Although my work in #137 might obviate this.

I think the work on #137 did obviate it.  There are still potentially improvements to be made here (the check for None might be too strict, we might be able to allow reentrancy on anything that uses .returns with a constant value since the result is available ahead of time, but in general, reentrancy is no longer difficult and the limitations are clearly explained in the documentation.


"arrow-end" throw an Error:  attribute d: Expected number, “….68028259277344CNaN,NaN,NaN,NaN,…”

Library: "raphael": "^2.2.8",
I want to render a line with an arrow end,
but when adding "arrow-end" attribute, it throw an Error: "attribute d: Expected number, "….68028259277344CNaN,NaN,NaN,NaN,…".
weirdly when adding "arrow-start" attribute there is no error
I tried already to change the stroke-width, it didn't help
this is the code:
http://jsfiddle.net/fzjc81ym/
this.canvas = Raphael('grid', '100%', '100%');

drawLine(this.canvas, path1, duration, arrowAtrr, color, strokeDasharray, strokeWidth, arrowend).then(() => this.resolve(item, callback))

const drawLine = (canvas, pathStr, duration = 1000, attr = arrowAtrr, color = Color.GREEN, strokeDasharray = '-', strokeWidth = 4, arrowend = "block-wide-long") => {
    return new Promise((resolve) => {
        attr.stroke = color;
        attr['stroke-dasharray'] = strokeDasharray;
        attr['stroke-width'] = strokeWidth;
        attr['arrow-end'] = arrowend
        var guidePath = canvas.path(pathStr).attr({ stroke: 'none', fill: 'none' });
        var path = canvas.path(pathStr).attr({ stroke: 'none', fill: 'none' });
        var totalLength = guidePath.getTotalLength(guidePath);
        var startTime = new Date().getTime();
        var intervalLength = 25;

        var intervalId = setInterval(function () {
            var elapsedTime = new Date().getTime() - startTime;
            var thisLength = elapsedTime / duration * totalLength;
            var subPathStr = guidePath.getSubpath(0, thisLength);
            attr.path = subPathStr;
            path.attr(attr)
            path.animate(attr, intervalLength);

            if (elapsedTime >= duration) {
                clearInterval(intervalId);
                resolve();
            }

        }, intervalLength);

    });
}

Any idea how to solve that error?

oh ok, added (edited the issue description)

oh ok, added (edited the issue description)

I suspect you don't want to animate arrow-end attribute.

I suspect you don't want to animate arrow-end attribute.

I want to animate the arrow line ( I don't think we need animation on the arrow-end )

I want to animate the arrow line ( I don't think we need animation on the arrow-end )

any idea how to solve it?

any idea how to solve it?

Can I just check I understand the problem correct...does it all work as
expected apart from the console error ?
On Sun, Jan 24, 2021 at 10:28 AM Hadas Maimon<EMAIL_ADDRESS>wrote:

any idea how to solve it?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/DmitryBaranovskiy/raphael/issues/1128#issuecomment-766324591,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA5YN5JDE3PQPJTE44CAYGDS3PY5PANCNFSM4WKYKV6Q
.

Can I just check I understand the problem correct...does it all work as
expected apart from the console error ?
On Sun, Jan 24, 2021 at 10:28 AM Hadas Maimon<EMAIL_ADDRESS>wrote:

any idea how to solve it?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/DmitryBaranovskiy/raphael/issues/1128#issuecomment-766324591,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA5YN5JDE3PQPJTE44CAYGDS3PY5PANCNFSM4WKYKV6Q
.

yes, exactly.
thanks for the answer!

yes, exactly.
thanks for the answer!

It's difficult without knowing the full spec, but personally I would optimise it to this...
http://jsfiddle.net/se29wkom/
I haven't completed all the attr vars, but hopefully you get the idea.

It's difficult without knowing the full spec, but personally I would optimise it to this...
http://jsfiddle.net/se29wkom/
I haven't completed all the attr vars, but hopefully you get the idea.

Ignore, there's a bug in that....

Ignore, there's a bug in that....

Interesting, looks a bit more fiddly than I thought. Seems to happen with a
combo of 'arrow-end' and 'stroke-width', I'm guessing Raph adds those
behind the scenes and tries to animate them even if not included in the
exact animate call, causing the issue. Will have a ponder.
On Sun, Jan 24, 2021 at 10:41 AM Hadas Maimon<EMAIL_ADDRESS>wrote:

yes, exactly.
thanks for the answer!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/DmitryBaranovskiy/raphael/issues/1128#issuecomment-766326066,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA5YN5ODMA5BIKHTVI4TMJDS3P2MBANCNFSM4WKYKV6Q
.

Interesting, looks a bit more fiddly than I thought. Seems to happen with a
combo of 'arrow-end' and 'stroke-width', I'm guessing Raph adds those
behind the scenes and tries to animate them even if not included in the
exact animate call, causing the issue. Will have a ponder.
On Sun, Jan 24, 2021 at 10:41 AM Hadas Maimon<EMAIL_ADDRESS>wrote:

yes, exactly.
thanks for the answer!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/DmitryBaranovskiy/raphael/issues/1128#issuecomment-766326066,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA5YN5ODMA5BIKHTVI4TMJDS3P2MBANCNFSM4WKYKV6Q
.

wow appreciating the efforts you made,
Do you think for a solution?

wow appreciating the efforts you made,
Do you think for a solution?

Tbh I can't think of a very non-hacky way of getting around it (eg having a separate arrow end that's transformed or something). At this point, I'd consider moving to Snap (it's pretty compatibly with Raph), although it doesn't include arrow ends as default (there are examples out there, eg below), it's a lot more flexible (you can call functions every frame to build an animation).
Example http://jsfiddle.net/4cvaM/9/

Tbh I can't think of a very non-hacky way of getting around it (eg having a separate arrow end that's transformed or something). At this point, I'd consider moving to Snap (it's pretty compatibly with Raph), although it doesn't include arrow ends as default (there are examples out there, eg below), it's a lot more flexible (you can call functions every frame to build an animation).
Example http://jsfiddle.net/4cvaM/9/

oh ok,
I want to try moving to Snap, but I see that
https://www.npmjs.com/package/snapsvg - (is it the correct link of the library?)
was Last publish 4 years ago...
compared to Raphael
https://www.npmjs.com/package/raphael
which was Last publish 1 year ago...

oh ok,
I want to try moving to Snap, but I see that
https://www.npmjs.com/package/snapsvg - (is it the correct link of the library?)
was Last publish 4 years ago...
compared to Raphael
https://www.npmjs.com/package/raphael
which was Last publish 1 year ago...

A solutions:
in my case, the arrow line was smaller than the arrow-end triangle,
so I set the min size of the path to be 11
var subPathStr = guidePath.getSubpath(0, Math.max(11, thisLength));


Fixed screeninfo.get_monitors returning empty on osx

Overview: What does this pull request change?
Fixes screening.get_monitors returning empty on OSX
Issue: https://github.com/ManimCommunity/manim/issues/2356

Motivation and Explanation: Why and how do your changes improve the library?

At the moment, the quick start example does not work for --renderer=opengl, this fixes it
Links to added or changed documentation pages

Further Information and Comments

The problem is also present in maningl: https://github.com/3b1b/manim/issues/1394
Seems it * should * be handled by https://github.com/rr-/screeninfo , but some probably related issues are open since mid-2020.
The get_monitors function seem to try all possible platforms when one is not supplied explicitly:
https://github.com/rr-/screeninfo/blob/master/screeninfo/screeninfo.py#L20-L35
But you can see in these lines:
    for enumerator in Enumerator:
        try:
            return _get_monitors(enumerator)
        except Exception:
            pass

it tries the next one only if previous raised exception, I suspect some enumerator that is tested before osx is returning successfully when it shouldn't.
I will investigate and try a PR on screeninfo, maybe I'll make it check and fail also for empty lists, but even if it makes it through, last release there was almost a year ago, will take some time to fix us

Reviewer Checklist

[ ] The PR title is descriptive enough for the changelog, and the PR is labeled correctly
[ ] If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
[ ] If applicable: newly added functions and classes are tested

@ryanmccauley211 sorry I'm late, holiday season is quite busy.
The update makes opengl work fine in macos.
        )
        try:
>           np.testing.assert_allclose(
                frame,
                self._frames[frame_number],
                atol=1.01,
                err_msg=f"Frame no {frame_number}. You can use --show_diff to visually show the difference.",
                verbose=False,
            )
E           AssertionError:
E           Not equal to tolerance rtol=1e-07, atol=1.01
E           Frame no -1. You can use --show_diff to visually show the difference.
E           Mismatched elements: 6 / 1639680 (0.000366%)
E           Max absolute difference: 255
E           Max relative difference: 1.94656489

manim/utils/testing/_frames_testers.py:41: AssertionError
------------------------------------------------ Captured stdout call ------------------------------------------------
(1, 480, 854, 4)
================================================== warnings summary ==================================================
tests/test_value_tracker.py: 16 warnings
tests/test_graphical_units/test_axes.py: 5 warnings
tests/test_graphical_units/test_mobjects.py: 5 warnings
tests/test_graphical_units/test_threed.py: 75 warnings
tests/test_graphical_units/test_updaters.py: 1 warning
  /Users/brendon.faccion/Desktop/meera/manim/manim/mobject/value_tracker.py:72: DeprecationWarning: This method is not guaranteed to stay around. Please prefer setting the attribute normally or with Mobject.set().
    self.set_points(np.zeros((1, 3)))

tests/test_value_tracker.py: 1 warning
tests/test_graphical_units/test_threed.py: 24 warnings
  /Users/brendon.faccion/Desktop/meera/manim/manim/mobject/value_tracker.py:133: DeprecationWarning: This method is not guaranteed to stay around. Please prefer setting the attribute normally or with Mobject.set().
    self.set_points(path_func(mobject1.points, mobject2.points, alpha))

tests/opengl/test_axes_shift_opengl.py: 4 warnings
tests/opengl/test_coordinate_system_opengl.py: 68 warnings
tests/opengl/test_opengl_vectorized_mobject.py: 1 warning
tests/opengl/test_ticks_opengl.py: 12 warnings
  /Users/brendon.faccion/Desktop/meera/manim/manim/mobject/types/opengl_vectorized_mobject.py:923: DeprecationWarning: Calling np.sum(generator) is deprecated, and in the future will give a different result. Use np.sum(np.fromiter(generator)) or the python sum builtin instead.
    target_length = alpha * np.sum(length for _, length in curves_and_lengths)

tests/test_graphical_units/test_axes.py::test_get_area
tests/test_graphical_units/test_axes.py::test_get_area
tests/test_graphical_units/test_axes.py::test_get_area
tests/test_graphical_units/test_axes.py::test_get_area
tests/test_graphical_units/test_axes.py::test_get_area
tests/test_graphical_units/test_axes.py::test_get_area
tests/test_graphical_units/test_axes.py::test_get_area
  /Users/brendon.faccion/Desktop/meera/manim/manim/mobject/number_line.py:424: DeprecationWarning: This method is not guaranteed to stay around. Please prefer getting the attribute normally.
    num_mob.shift(num_mob[0].get_width() * LEFT / 2)

tests/test_graphical_units/test_specialized.py::test_Broadcast
tests/test_graphical_units/test_specialized.py::test_Broadcast
tests/test_graphical_units/test_specialized.py::test_Broadcast
tests/test_graphical_units/test_specialized.py::test_Broadcast
tests/test_graphical_units/test_specialized.py::test_Broadcast
  /Users/brendon.faccion/Desktop/meera/manim/manim/animation/specialized.py:85: DeprecationWarning: This method is not guaranteed to stay around. Please prefer setting the attribute normally or with Mobject.set().
    mob.set_width(self.initial_width)

-- Docs: https://docs.pytest.org/en/stable/warnings.html
============================================== short test summary info ===============================================
FAILED tests/test_graphical_units/test_threed.py::test_Axes - AssertionError:
============== 1 failed, 559 passed, 2 skipped, 7 xfailed, 2 xpassed, 224 warnings in 183.41s (0:03:03) ==============

@ryanmccauley211 I don't get it, it failed before reaching the tests, did my PR changed something on the bootstrap config? O.o, I can't see how
ps: please note I rebased with this repository main branch before my last commit, is it something related to that?

it failed before reaching the tests, did my PR changed something on the bootstrap config? O.o, I can't see how

No, the failures seem to be unrelated. I'll re-run the pipeline.


feat:  Parent message

Added content for parent message

To do -

Add introduction for cross-origin communication
Discuss the placement of the content (Parent message and sidebar position of cross-origin communication)

Also add these callout in the relevant places

Thanks @danciaclara for bringing this up.
Iframe widget isn't part of the scope for this project.
But it seems like we would be able to re-use this method with some modifications in the future.
If that's the case, we might have to reconsider how we name this method.
Will confirm the and get back to you on this.

Thanks @danciaclara for bringing this up. Iframe widget isn't part of the scope for this project.
But it seems like we would be able to re-use this method with some modifications in the future. If that's the case, we might have to reconsider how we name this method.
Will confirm and get back to you on this.

Ok so you are saying at the moment, an external app/page that is embedded in an Iframe widget cannot send messages to the Appsmith app where it is embedded.

Almost right, It can send but we cannot make appsmith listen to those messages as of now.

Points Discussed with @eco-monk -

Add a disclaimer of business edition under subscribeParentMessage and unsubcscribeParentMessage section
These functions will be renamed to a more generic term. Waiting for the update from @eco-monk
iframe isn't part of the scope for this project right now. We can add details about that later when it is picked. Right now, we can skip it.
@jnikhila @danciaclara

Points Discussed with @eco-monk -

Add a disclaimer of business edition under subscribeParentMessage and unsubcscribeParentMessage section
These functions will be renamed to a more generic term. Waiting for the update from @eco-monk
iframe isn't part of the scope for this project right now. We can add details about that later when it is picked. Right now, we can skip it.
@jnikhila @danciaclara

in any case, lets try and add an image similar to the one Rimil shared to give an visual representation of what kind of communication is possible

Need to specify this is and EE feature under methods section.

https:// (not single slash)

Callback accepts a message object. Would be a good idea to show it in the example like this.

windowMessageListener(
	"https://eco-monk.github.io",
	(message) => { showAlert(message) }
)

Looks good to me.
@danciaclara, thanks for brining up the iframe widget point. We'd have badly named methods if not for that.
Here's a very simplified image of where this feature lies.

@danciaclara, for creating a visual representation of embedding communication.
I'd suggested splitting this into two. Would simplify things.

Appsmith communicating with parent website (We'd focus on external website and appsmith here)
Appsmith communicating with child website (We'd focus on Iframe widget and appsmith here)

When looking at both iframe widget and external website, it becomes difficult to follow.
e.g. a very old board
https://miro.com/app/board/uXjVOkVE-Pk=/

https://miro.com/app/board/uXjVOkVE-Pk=/

Thanks @eco-monk. Please do a tech review of the documentation and approve from your end.  Separate images sound like a good idea cc: @Pranay105

Looks good. We now need @eco-monk to confirm whether we can now also communicate from Iframe widget to Appsmith with the listeners.

@danciaclara, Actually there is a way to make appsmith listen to messages from Iframe widget as now. Our docs also cover this here.
example app created.
https://release.app.appsmith.com/app/iframe-widget-listen/page1-63c62b7e4ae4345e31af1253

https://github.com/appsmithorg/appsmith-ee/pull/967
Tech PR is merged in.

Looks good. We now need @eco-monk to confirm whether we can now also communicate from Iframe widget to Appsmith with the listeners.

@danciaclara, Actually there is a way to make appsmith listen to messages from Iframe widget. Our docs also cover this here.
example app created. https://release.app.appsmith.com/app/iframe-widget-listen/page1-63c62b7e4ae4345e31af1253

@eco-monk this is communication from an element(eg. button) inside the iframe widget to the Iframe widget. mentioned We don't yet have communication from Iframe widget to Appsmith app which is why I was checking if this is now possible with the listeners ?  cc: @rimildeyjsr


Timeout when using SSL on static website nginx image

Hi, thanks for the great work on this package.
I tried it with several images before they all worked fine on HTTP. Today I tried to put HTTPS on my simple static website on nginx with LETSENCRYPT. The certs generated just fine and nginx-proxy tried to redirect to HTTPS as per the documentation. However, my website always gives a timeout as a response.
Just to confirm, I ran the same setup with HTTPS_METHOD=noredirect and getting the same results. When I go to my website on nginx through http:// it works fine and I see from the console that it got the requests. But no request gets to the website on nginx through https://, the result is a timeout.
I'm using a Chrome Incognito Window each time.
Steps:

Running nginx proxy:
docker run -d -p 80:80 -p 443:443 --name nginx-proxy -v /var/certs:/etc/nginx/certs:ro -v /etc/nginx/vhost.d -v /usr/share/nginx/html -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
Running the companion:
docker run -d -v /var/certs:/etc/nginx/certs:rw --volumes-from nginx-proxy -v /var/run/docker.sock:/var/run/docker.sock:ro jrcs/letsencrypt-nginx-proxy-companion
Building the website:
docker build -t landing_test .
Dockerfile:

FROM nginx
COPY . /usr/share/nginx/html
EXPOSE 80

Running the website container
docker run -e VIRTUAL_HOST=mysite.com -e LETSENCRYPT_HOST=mysite.com -e<EMAIL_ADDRESS>-e HTTPS_METHOD=noredirect landing_test

My docker containers:
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS              PORTS                                      NAMES
d46bdade4e1a        landing_test                             "nginx -g 'daemon off"   16 minutes ago      Up 16 minutes       80/tcp, 443/tcp                            hungry_bartik
a6621e1bd2d2        jrcs/letsencrypt-nginx-proxy-companion   "/bin/bash /app/entry"   18 minutes ago      Up 18 minutes                                                  sleepy_rosalind
af20b30df08b        jwilder/nginx-proxy                      "/app/docker-entrypoi"   18 minutes ago      Up 18 minutes       <IP_ADDRESS>:80->80/tcp, <IP_ADDRESS>:443->443/tcp   nginx-proxy

Have I missed some configuration? I'm happy to provide more details if someone can point me in the right direction.
Thanks.

What does curl -I https://mysite.com say? can you verify that the browser can make a port 443 TCP connection to nginx-proxy?

Thanks. That really helped. It looks like the cloud provider we're using had a firewall restriction not to let 443 through to the host machine. It works totally fine now.


Unable to access maps API for analyses in new builder

I tried adding an area of influence analysis but I always get the following error:

Can you try again, your user was missing a permission setting.

worked thanks

can you also give access to the other intern ethan lampert. cartodb username: elampert


refac: Move to Next.js 13

Description
The project currently utilizes an older version of Next.js and follows an outdated directory structure with the pages residing in the old pages directory. This issue aims to migrate the project to the latest Next.js version (Next.js 13) and reorganize the project structure using the new apps directory pattern. This will enhance the project's maintainability, take advantage of new features, and align with best practices.
Addition Context
Next.js docs to migrate the project: https://nextjs.org/docs/pages/building-your-application/upgrading/app-router-migration

Can I work on this?

Thanks, @anubhav1206. I think unless @git-anurag-hub has already started on this, you are very welcome to give it a shot :)

Now Next.js 14 ;-)


Form validation javascript in wizard steps

When clicking on a runtime icon in Runtime step of the Wizzard, it fires "Validating form" javascript. Same in Mission step while clicking on radio buttons.
see screenshot

Overall the layout is broken when you are moving between wizard steps. This definitely need a revision.

could you elaborate what "overall broken" means

When you click on a runtime icon, it also shows two scroll panels (botom, right) and then they dissapear, see in the screenshot. At the same time, the "Next" button is greyed out. I will be testing launcher today, will let you know.

scrollbars have been fixed

no longer validates on the runtime and mission steps


Compling on EL-based Linux distributions fails because of install parameters

Compiling the software as unprivileged user fails on EL-based Linux distributions (CentOS, ScientificLinux, Oracle Linux, Red Hat Enterprise Linux) because of the install commands in Makefile.in:
       ${INSTALL} -o 0 -g 0 scponly ${DESTDIR}${bindir}/scponly
       ${INSTALL} -o 0 -g 0 -m 0644 scponly.8 ${DESTDIR}${mandir}/man8/scponly.8
       ${INSTALL} -o 0 -g 0 -m 0644 debuglevel ${DESTDIR}${DEBUGFILE}
...
               ${INSTALL} -o 0 -g 0 -m 4755 ${CHROOTED_NAME} ${DESTDIR}${sbindir}/${CHROOTED_NAME};    \

rpmbuild just crashes like this:
$ rpmbuild -ba scponly.spec
...
/usr/bin/install -c -o 0 -g 0 scponly /home/cstan/rpmbuild/BUILDROOT/scponly-4.8-1.el7.centos.x86_64/usr/bin/scponly
/usr/bin/install: cannot change ownership of '/home/cstan/rpmbuild/BUILDROOT/scponly-4.8-1.el7.centos.x86_64/usr/bin/scponly': Operation not permitted
make: *** [install] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.Zx3wsc (%install)

RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.Zx3wsc (%install)

The default user for installed files is always root so there is no need for -o 0 -g 0. Removing these parameters in Makefile.in makes the RPM build again.

Hi, are you dmlb2000 on FAS?
I just rebuilt for EPEL7. The build goes well. Please test the RPM here: https://kojipkgs.fedoraproject.org//packages/scponly/4.8/17.el7/x86_64/scponly-4.8-17.el7.x86_64.rpm
And report here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-e02d4a7c7c
I used this spec: https://pkgs.fedoraproject.org/cgit/rpms/scponly.git/tree/scponly.spec?h=epel7

And this is the patch that does what you are reporting in the latest spec:
https://pkgs.fedoraproject.org/cgit/rpms/scponly.git/tree/scponly-install.patch

Using this package (and various other ones) I'm not able to rsync from el6 to el7. Get this error:
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]


Links to items fail initially when browsing by year

Describe the bug
I recently noticed that when choose to browse By Issue Date in a collection and limit results by year I see strange behavior. Instead of following the route to the item, the browse page instead reloads. After that the route to the Item works fine. However, if I return to the list after viewing the item and select the next item in the browse list I see the same result. The item route is not followed, the browse page reloads, and after that I can follow the link to the item. The pattern repeats.
To Reproduce
Steps to reproduce the behavior:

Choose the by issue date browse option
Limit your search to a year that has items
Select the first item. The browse page will reload (if you haven't visited this item before)
Now select the item again and you should get the item view
Go back to browse and select the next item in the list (repeat)

Expected behavior
When you select an item from the browse list the item route should always be followed.
Related work
Link to any related tickets or PRs here.

@mspalti : I was able to reproduce this on demo7.dspace.org.  Not sure of when this behavior started.
But, I did notice it happens both for the global "Browse by Issue Date" (i.e. "All of DSpace" -> "By Issue Date") and for individual Communities/Collections:

Browse to a Community/Collection
Select "By Issue Date"
Filter by a Year (must have at least one matching item)
Click the Item title. Page will reload (like you describe).
Click the Item title again & you will finally go to the Item page.

I'll pull this over to the 7.6 board and see if I can find a volunteer.  Definitely need to try to fix in 7.6

@tdonohue: I took a look at this today. As nearly as I can tell this is not a new problem.  It's likely that it crept in with #1048.
It seems like Angular router is not acting on the item route -- and I'm guessing this may have something to do with the way that the starts-with-date component is responding to multiple route updates.
I find that this line in the starts-with-date component  seems to be part of the problem. At least in my tests, removing it doesn't break browsing or pagination.  It also reduces browse component updates and for me it solves the problem reported in this issue.
I can submit a PR with this small change. However this is a tricky section of code so I may be off the mark.

@mspalti : thanks for the summary.  I'm pulling in @artlowel and @YanaDePauw into this discussion, as that pagination work was done by the Atmire team. (That said, it's been a very long time since that #1048 PR was built... but they do know this code much much better than I.)
I don't have any great ideas myself (I am not familiar with this area of the code).  But, I would recommend creating a small PR if you feel you have an idea worth review.  At the very least, that might help trigger some more discussion/ideas regarding the problem.


Add a starboard https://discordbotlist.com/bots/starboard

apparently you can't link a project to a PR without creating an issue first. thanks github very cool


Python 3 support by bumping node-gyp to 6.1.0

I know similar pull requests have been declined before because it breaks compatibility.
However the current v4 uses<EMAIL_ADDRESS>which does not support python 3. Python 2 is now end of life since 1 jan 2020 and major distrubutions are starting to drop it (debian, fedora, ubuntu etc). Python 3 support landed in<EMAIL_ADDRESS>This is a problem because node-sass will no longer work for new installations where the precompiled binary cannot be used (enterprise firewalls anyone?). So for this user group (myself included) node-sass is effectively unusable right now.
I've already seen that v5 solves this issue but I don't see a timeline and it doesn't seem to be actively worked on. So my suggestion is to either declare this project dead and force users to use a replacement such as dart-sass or merge this or a similar fix.

Since<EMAIL_ADDRESS>requires node 10 the minimal node version is bumped here as well. This makes sense since node 10 is the current oldest supported version.
EDIT: downgraded to 6.1.0 to support/require node 6 instead of 10.

Downgrading to "node-gyp": "^6.1.0", would provide compatibility w Python 2 & 3 and also support Node.js >= v6.

I guess that would make a transition easier, I've updated to PR to use<EMAIL_ADDRESS>instead.

I would like to add a +1 to this PR. We are having problems using node-sass on newer platforms that provide Python3

@adamretter Please view the Files changed and then click the Review changes green button at the top right of that page and then click Approve.
Positive reviews give project maintainers confidence that these changes are in the best interests of the project.

+1 for this.  please include in the next merge

@surfaceowl Please view the Files changed and then click the Review changes green button at the top right of that page and then click Approve.
Positive reviews give project maintainers confidence that these changes are in the best interests of the project.

Any reason this hasn't been merged?

@keithslater Please do the following https://github.com/sass/node-sass/pull/2936#issuecomment-660965921

Any reason this hasn't been merged?

It seems like the maintainers are moving towards deprecating node-sass and libsass in favor of dart-sass, see #2952.


chore(core): deprecate prefixed accessors/mutators in CommandManager

All prefixed (actual) getters/setters in CommandManager have been deprecated, and non-prefixed alternatives have been introduced. I've also put some effort into improving the JavaDocs of these methods.

Why doing that ?

Why doing that ?

@Phinner Because right now we have a mixture of both prefixed, and non-prefixed methods. We should settle for one format, and this is the one that Java has decided to use, so we'll follow lead.

Oh really ? Ok, I just though it the inverse.


kotlin mutli platform project with custom detekt rule

Hi, looking through the Detekt documents there does not seem too much information on Kotlin DSL with Gradle for multiplatform projects when doing custom rules. Here I am wanting to create a module within my project and call this rather than integrating my own custom rules into the detect code base.
I have looked into this and have not manged to create a solution. I have tried many different gradle set ups within the sub modules and the top gradle.build.kts. I have attached an example of a test project I have setup for an idea of what I am trying to achieve.
example project
Any help on this would be great!

Do the following how-tos help?
https://diamantidis.github.io/2019/09/01/kotlin-multiplatform-project-code-styling-for-ios-and-android
https://blog.karumi.com/first-steps-into-kotlin-multiplatform/

I am looking more how to set up the Detekt DSL for custom rules with a multiplatform project rather in how to set up the project.

Sorry, I read over the custom DSL mention.  Is there a reason why you develop your custom detekt rule in a MPP setup?

Okay. What were your problems (stack traces etc.) while configuring the detekt custom rule Gradle script?
Have you tried doing the same in a standard JVM project? Does it work in this case?

I have added my custom rules onto the detekt code base and the rule has worked. I couldn't get the custom rule to run when it was within my MPP via the gradle setup. I was wondering how to do this for this particular setup as it doesn't seem to be documented.

Okay, thanks for the context. We've never considered writing detekt custom rules in a MPP app. So far now one has tried that to my knowledge. @arturbosch what's your opinion on this?

I couldn't get the custom rule to run when it was within my MPP via the gradle setup.

What went wrong here? Do you have any stacktrace or error message?

There is no stacktrace/error message to show as I couldn't integrate it within the MPP. I think this would be very useful use of detekt as it could run custom rules specifically designed for this MPP, while keeping my codebase light with only the custom rules I need. This would also make it very easy to update/add new rules within this MPP.

I think this would be very useful use of detekt as it could run custom rules specifically designed for this MPP, while keeping my codebase light with only the custom rules I need. This would also make it very easy to update/add new rules within this MPP.

I understand the use case, but it's a very seldom one. So far we haven't had a single user report about that. Considering the number of custom detekt rules, this is a strong statement. You can of course create a second JVM app write your rule and integrate the jar in your MPP app. This would be a feasible workaround.

The separate JVM app is the solution I believe I will have to go with for now. This was more of is there currently a way to do this, as I believe this to be a lightweight/clean solution.

I'm sorry to say this. We have to discuss internally, if we even want to support and maintain this use case.

@grbe1l in your example I see that you have added formatting but not your custom rule as detektPlugins.
I read this discussion as you want to write your custom rules in a gradle module next to your project.
Mozilla does the same here: https://github.com/mozilla-mobile/fenix/blob/master/build.gradle#L167


Update protoc

Update protoc to most recent version.

Just bumping protoc to most recent versions as possible. You can see full change lists on protobuf's repo: https://github.com/protocolbuffers/protobuf/releases

Node client has the latest version already.


Update to Bevy 0.10

Just creating this to track (haven't started anything).
Stageless should clean up the substep looping quite a bit :)

Closed by #4


buffer.String() returns "" instead of ""

What version of Go are you using (go version)?
go version go1.11.5 linux/amd64
What did you do?
I get information from an external command so at some point I read StdoutPipe into a bytes.Buffer like this:
buf := new(bytes.Buffer)
... lines of code ...
sizeFromBuffer := buf.String()
if sizeFromBuffer == "<nil>" {
		sizeFromBuffer = "0"
}

I noticed that String() function returns a "<nil>" instead a zero value string like "".
This way, I need to check and set a zero (or it could be a "") myself.
Reference:
https://golang.org/src/bytes/buffer.go?s=2482:2514#L51
Wouldn't be more appropriate to return "" ?

That can't be the code you're using. <nil> is only printed when the receiver is nil. For example:
var buf *bytes.Buffer
buf.String() // <nil>

But return a "" would be the proper way, right?

Please include a complete program that reproduces your problem on play.golang.org. A copy-pasted snippet is not enough, as those are usually not easy to run.
And like @bontibon said, this is likely just because you're using a nil *bytes.Buffer. If you want it to return an empty string, use a non-nil buffer.

https://play.golang.org/p/XgKoU2SAC4y
Shouldn't a nil receiver panic? <nil> is a perfectly ordinary string :-)

It's not required that calling methods on nil receivers panic. Plenty of types have special behavior when methods are called on nil, such as bytes.Buffer.
If you don't want to deal with the special <nil> string output, just don't use nil buffers.
And like @bontibon said, we can't change this behavior, as that would break programs.

If you don't want to deal with the special <nil> string output, just don't use nil buffers.

You meant "don't use buffer pointers" since the above means "just don't make mistakes" :-)

Closing because there doesn't seem to be anything to do.  Please comment if you disagree.

Making (*bytes.Buffer)(nil).String() panic might alert ppl to latent bugs.
Why would anyone check the .String() result for "<nil>" rather than check the pointer?

I don't know why the code works that way, but it has worked that way since before the first open source release.  We would need a really really good reason to change it now.

Generally, the String method is used to implement the Stringer interface. Here, it is also used to return the string representation of the current buffered bytes. Maybe there should be two methods at the beginning.

I believe that if you saw something wrong or that it could be improved, you should try to fix it...I understand that it could break thinks and that it's a old code that always existed like this, but this is not a good reason to ignore it and leave it that way, right?
Maybe it could be fixed in Go 2... :-)

It doesn't seem like there's anything worthwhile fixing. If you want to avoid <nil> strings, just do:
if buf != nil {
    output = buf.String()
}

@amandahla One of the features of Go is to be as backward compatible as possible, as described at https://golang.org/doc/go1compat.  That doesn't mean that we can't change anything, but it means that when changing something we have to weigh the cost.  We can't make a change simply because it will be an improvement.  The improvement is a benefit, but the change is a cost.  We have to compare the benefit and the cost when deciding what to do.
In this case, to me, the benefit seems quite small.  And the cost is very hard to determine, but is clearly non-zero.  So given a small benefit and an indeterminate cost, my bias is always going to be to not make the change.

@ianlancetaylor you need to make yourself a keyboard macro to insert that text -- or a wiki page and macro to insert link :-)
@amandahla did you do any searches among the issues or google groups or the web generally to see if others have raised the issue? That's the best way to make a case for benefit.


[FEATURE REQUEST] Template, if file is exist, just open it.

Or add an open command? Based on the specified address

Does the Open function work at all at the moment? It doesn't open on my current file, neither as new tabs when checked.


Create selectable pill component

Description
TBD.
Tasks
### Checklist
- [ ] Density (HD, MD, LD, TD)
- [ ] Mode (Light, Dark)
- [ ] Fill (Primary, Secondary, Tertiary)
- [ ] State (Default, Hover, Selected/Active, Disabled, Read-only, Other)
- [ ] Controlled API
- [ ] UITK accessibility parity (screen reader + keyboard interactions)

### Deliverables
- [ ] Characteristics spec
- [ ] Interactions spec, where necessary
- [ ] In Code & Figma (Component + Guide)
- [ ] Supporting site documentation

Bumping priority

24 Nov - reviewed current spec.

Remove from release plan, no stakeholder is actively waiting for this. Won't be a blocker for pill's promoting to core.

this was delivered in #2871 clickable pill
https://www.saltdesignsystem.com/salt/components/pill/examples

This needs a business case, if you need this we will re-prioritise it.
Bump this issue by adding a comment.


Unwanted SDX deployment

when running the cloudera deploy playbook (tags=default_cluster,kerberos), in the last tasks , i can see this, I also have added when it is triggered, from:
/opt/cldr-runner/collections/ansible_collections/cloudera/cluster/roles/deployment/cluster/tasks/main.yml

TASK [cloudera.cluster.cluster : Create base cluster data contexts (SDX)]
 when:
    - cluster.type | default(default_cluster_type) == 'base'
    - cloudera_manager_version is version('6.2.0','>=')

when running the playbook twice (for example with unset proxy, import cluster template fails when downloading parcels, after manual proxy set-up in the CM UI, playbook deploys cluster successfully on the second run, but with NO SDX!)
Cluster is always deployed successfully, in the green state, however, when I click on the Basic Cluster in the CM, instead of CMS I am seeing SDX which is not configured...

I have found out this file
/opt/cldr-runner/collections/ansible_collections/cloudera/cluster/roles/config/cluster/common/defaults/main.yml
https://github.com/cloudera-labs/cloudera.cluster/blob/main/roles/config/cluster/common/defaults/main.yml
Should I edit this file directly or are there any better configuration options ?
also when it says default_cluster_type: base , why the task TASK [cloudera.cluster.cluster : Create Key Trustee server cluster]
is triggered ?

Added tag sdx in
/opt/cldr-runner/collections/ansible_collections/cloudera/cluster/roles/deployment/cluster/tasks/main.yml

as following:
- name: Create base cluster data contexts (SDX)
  include_tasks: create_data_context.yml
  loop: "{{ definition.clusters }}"
  loop_control:
    loop_var: _cluster
  vars:
    cluster: "{{ default_cluster_base | combine(_cluster) }}"
  when:
    - cluster.type | default(default_cluster_type) == 'base'
    - cloudera_manager_version is version('6.2.0','>=')
  tags:
    - sdx

with this modification, SDX is skipable via addin --skip-tags sdx to the ansible-playbook command


IPv6 curl not working

Hi there,
For some reason despite working IPv6 on my network, and being able to ping6 from the UDM-PRO, unless I append --ipv4 to all of the curl requests in the script they hang indefinitely. I'm reluctant to do this bypass without understanding why v6 seems to be stuck. Has anyone else been able to run this script on a network with v4 and v6?

Hi @Xalaxis, these scripts pull information from two places:

The bootstrapping script retrieves version information from api.github.com and then retrieves a release artifact from github.com. In both of these cases it looks like GitHub doesn't offer a native IPv6 endpoint (dig github.com AAAA and dig api.github.com AAAA don't return an an answer section) and hence will likely cause curl to hang.
The management script, which installs Tailscale and runs it on the UDM, talks to pkgs.tailscale.com which is dual stack and should work correctly.

I'll look to get the bootstrapping script updated to ensure it uses the --ipv4 flag to bypass GitHub's lack of dual-stack support for now.

Hi Ben, thanks for the quick response!
Unfortunately I'm actually seeing the Tailscale package server fail on IPv6 about 50% of the time as well (it does work occasionally):

Perhaps it would be okay to make everything ipv4 only for now?

Damn, I'll pass that along to the Tailscale folks - I suspect that's not intended 😄.
In the mean time, yeah should be okay to move to IPv4 everywhere, I'll start the process of getting that changed.

Hoping it's not just my connection somehow 😅 . I've changed all of the calls in the maintenance script to -ipv4 locally and everything is installed and working :). Thanks for maintaining this!


Allow to change resolutions used in full-screen mode

Adds resolution picker to video settings menu and resolves #3505.
It can be found here:

The resolution picker works in the following way:

By default the best matching resolution will be shown in the picker.
After picking any resolution in windowed full-screen or windowed modes, it will only be persisted in config.cfg without actually changing the resolution.
After picking any resolution in full-screen mode, game resolution will change to the selected one and will be persisted in config.cfg file.

Outstanding before merging
When changing resolutions on Linux Mint 18 with dual-monitor setup, sometimes the game screen appears to be cut-off in the middle. This seems to happen based on which screen I start the game and occurs randomly.

Tested this out and it does indeed work.
However it's also very easy to accidentally select the wrong entry like I did and you end up with a wholly unusable screen.
I think we should add some form of timer, where after the timer the resolution changes revert, unless confirmed. This way if you accidentally select the wrong one you aren't stuck

@GooeyHub: Ok to test

Hooray Jenkins reported success with all tests good!

@jellysnake good point, I'll play around with this idea.

Added a popup which will appear once resolution is changed in full-screen mode. If the timer runs out, resolution will be restored to the previous one:

Hooray Jenkins reported success with all tests good!