Is this tool available in 'dotnet install'?

This article does not talk about this case, just the nuget and local tool.

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

ID: 6ffe064a-2c6e-284f-7706-528d1c861de3
Version Independent ID: 7ff2fe61-8884-694d-db38-3e2cc292fe61
Content: How to create a .NET Core Global Tool
Content Source: docs/core/tools/global-tools-how-to-create.md
Product: dotnet-core
GitHub Login: @Thraka
Microsoft Alias: adegeo

I'm not sure I understand the question. Are you saying that you can't figure out if a tool can be installed or not? Or are you trying to determine what tools are installed?

I mean if I don't know the way dotnet tool install works, I don't find a way to use it, because I do not know that uploading it to nuget.com means that it will be available through dotnet tool install.


cherry-pick support delete sub pred v2

Proposed changes
pick #22442

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

hold this PR, we should pick another PR before this PR.

run buildall

run buildall

Hold this PR， something is not very clear. We should check some code.

not merge this feature in 2.0


Snackbar isn't centered properly

Trying out the latest version of mdl (https://github.com/google/material-design-lite/commit/b7fd844a27c52905b2bf477421556887ecef6e92) in anticipation of the upcoming release, and I have noticed that the snackbar isn't quite centered right on the page:

I have verified that the margin-left: -50% property which is supposed to make this work is being loaded correctly and I have tried running in Chrome, Firefox & IE so I don't think it's a result of cross-browser inconsistency.

The current snackbar centering is a hack for IE support. And it also depends on the size of the content. In some cases it works, in others, as this one with short text it doesn't.
V2 can address this by going full-flexbox. For now though, this is close enough in the majority of cases.

@Garbee I just tried this with progressively longer strings of text and it hasn't solved any of the centering issues.

I had it working at some point. Maybe another change caused longer strings not to center.
Either way, it is a best-effort kind-of thing considering our browser support. The only true alternative is flexbox, which means the styles wouldn't work at all in IE9. So, it is stuck until 2.x. This was brought up in the review, it is a known mis-alignment on desktops due to the support required.

Can you re-open this in the meantime?

This isn't planned to be fixed unless a community member contributes a workable patch. It is a known mis-alignment from the spec for the 1.x series.

Personally I am using @media screen and (min-width:480px){.mdl-snackbar--active{transform:translateX(-50%)} } to fix the off-center problems. It is a very ugly hack, but it gets the job done in at least Chrome and Firefox for relatively long messages in the Snackbar.

The thing is, it is technically centered. It is just starting at the middle vs the middle of the snackbar being centered.
With flexbox this is trivial, without it and having dynamic content length... harder problem to get perfect by the spec.
I went with what at least functions for our browser support and is very close. 2.x can bring about complete alignment.

This could be "patched" with JS until MDL uses flexbox in v2

PR #4106 has been merged into master and will soon be cherry-picked into mdl-1.1 for the next patch release to address this.

Just wanted to share a small adaptation the snippet posted by @mfonville that prevents the snackbar from animating horizontally back to the original position when it hides. Might be useful for anyone else that comes across this issue in the meantime.
@media screen and (min-width: 480px) {
  .mdl-snackbar:not(.mdl-snackbar--active) {
    transform: translate(-50%, 80px);
  }

  .mdl-snackbar--active {
    transform: translate(-50%, 0);
  }
}


should this web view support the web location API?

If I try running a web page that access the location API, it doesn't appear to work.  Should it?

Any luck on this?

It seems to be disabled in
public void onGeolocationPermissionsShowPrompt(String origin,
                    GeolocationPermissions.Callback callback) {
                System.out.println("WebAR: onGeolocationPermissionsShowPrompt");
                // callback.invoke(origin, true, true);
                callback.invoke(origin, false, false);
            }

Enabling this worked.

Added support already.


BackupStatus not available in the ApiVersion written in the Swagger

The declaration of backupStatus is inside the 2017-07-01 file:
https://github.com/Azure/azure-rest-api-specs/blob/ccefbaf343f2c71f3314e93c149b48e9e76d2e90/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2017-07-01/bms.json#L67-L112
However, looking at ARM endpoint, this does not exists:
      {
        "additionalProperties": {
          "apiProfiles": [
            {
              "apiVersion": "2016-06-01",
              "profileVersion": "2018-06-01-profile"
            }
          ]
        },
        "aliases": null,
        "apiVersions": [
          "2016-06-01"
        ],
        "locations": [
          "West US",
          "East US",
          "North Europe",
          "West Europe",
          "Brazil South",
          "East Asia",
          "Southeast Asia",
          "North Central US",
          "South Central US",
          "Japan East",
          "Japan West",
          "Australia East",
          "Australia Southeast",
          "Central US",
          "East US 2",
          "Central India",
          "South India",
          "West Central US",
          "Canada Central",
          "Canada East",
          "West US 2",
          "UK South",
          "UK West",
          "Korea Central",
          "Korea South",
          "France Central",
          "Central US EUAP",
          "East US 2 EUAP"
        ],
        "properties": null,
        "resourceType": "locations/backupStatus"
      },

And when people try to use the generated SDK out of it, create this message:

Message: The resource type 'locations/backupStatus' could not be found in the namespace 'Microsoft.RecoveryServices' for api version '2017-07-01'. The supported api-versions are '2016-06-01,2016-08-10,2016-05-01,2015-12-15,2015-12-10,2015-11-10,2015-06-10,2015-08-10,2015-08-15,2015-03-15'

Ref:
https://github.com/Azure/azure-sdk-for-python/pull/3030

FYI @johanste

@lmazuel I've updated ARM endpoints to accept 2017-07-01.

Thanks @DheerendraRathor ! The customer who got the issue is using ukwest, is what you did available there as well?

Ok, I see it too, with even "ukwest". Thanks!


fix default account resolution in manifests to reduce confusion

Issue #, if available:
Currently we use the example 123456790 together with envVariable for specifying the account ID in manifests. Most users don't see that the 123456790 should be an environment variable name and mistakenly just replace the value with their account ID
Description of changes:

Removed the envVar resolution in example manifests and replaced with simple key: value mapping

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Can you update CHANGELOG with these changes

@a13zen LGTM, pls add an entry into the changelog as @dgraeber mentioned

Added entry to Changelog


Sub-section Heading Detection Issue

Not detecting non title case sub-section headings.

THPM056.docx


Installing beeware fails to pip install on Windows 10/Python 3.7

Attempted to pip install beeware into a fresh virtual enviroment in Windows.  Package pythonnet fails to install, pythonnet's docs state it works with Python<=3.6.  Botocore 1.12.26 also failed to install, shows it requires urllib3<1.24,>=1.20, but urllib3 1.24 is installed which fails.

This wasn't just Windows specific - it was a problem with the packaging of botocore. I pushed out an updated version of briefcase that should address this problem.
Closing this ticket on that basis; If you are still able to reproduce the problem, please let me know.


Releasing auto-ngtemplate-loader v3.0.0

Type of request
🎉Release
Proposed milestone
🥇Major
Breaking

auto-ngtemplate-loader no longer supports Node.js v8.x

Fixed

Updated outdated npm packages
Added new node versions

Closing this because I just need to delete stable and start over.


Support for Angular CLI 13

Please find the attachment. We are getting import.meta outside a module error when we use the latest 13.0.1 package with the angular 13. However it works fine with version 12.5.3 with angular 12.

I believe this is the same issue as https://github.com/angular-architects/module-federation-plugin/issues/96

Hi,
thanks for pointing this out. Seems like, there is an issue with how Angular 13 uses webpack. We are on it!
Best wishes,
Manfred

For further issues see https://github.com/angular-architects/module-federation-plugin/issues/96.


issue_level_description missing data

I added the {{field:item_data.issue_level_description}} right below the item call number field, but it's not showing up on the label. Is there anything else I need to do?
Thank you,
Michael

@msarmi2, @jdavis025 this is a defect. It will be repaired for the next release. You will need to update your templates once the fixed version is published.


Update active-directory-aadconnect-version-history.md

Updated release status of 1.1.750.0 to "auto-upgrade and download"

@RobdeJong : Thanks for your contribution! The author, @billmath, has been notified to review your proposed change.

#sign-off


Hold rust cmake back at 0.1.45 for android builds

Add back missing variables for i686 builds.

Current dependencies on/for this PR:

mc-develop

PR #107   👈

This comment was auto-generated by Graphite.


feat(renderer): Ignore never show on empty dirs

closes #906. Please read the issue for detailed explanation.
When a directory contains a never_show file (e.g. .DS_Store in the examples), those files are counted and prevent group_empty_dirs to be executed.
This PR fixes that behavior and ignores never_show files in the first place.
FYI, e.filtered_by.never_show is set here.
https://github.com/nvim-neo-tree/neo-tree.nvim/blob/8d485aab32da9b8841d4af977f992b82b14af469/lua/neo-tree/sources/common/file-items.lua#L114-L148
Old Behavior

New Behavior

Caution: this actually filters out the never show nodes in some occasions from the list, so if we want to implement such thing as H to toggle the visibility of never show files (tho I think that's nonsense) it becomes problematic.

I think it is a good idea but my question is whether there is a simpler way to accomplish the same thing. I noticed that you are filtering the never_show items out of the collection in many different places. If it is never going to be used for anything, wouldn't it be easier to short circuit as soon is it is decided that it is a never show item and just not create the node at all?
I would try to return here for never show items:
https://github.com/nvim-neo-tree/neo-tree.nvim/blob/8d485aab32da9b8841d4af977f992b82b14af469/lua/neo-tree/sources/common/file-items.lua#L118-L125
It might just work, but if there is an issue I would try to handle that function returning nil if it all possible.

if we want to implement such thing as H to toggle the visibility of never show files

That is actually the entire purpose of the never_show setting, to create a filter for things that are not shown when you toggle hidden with H.

Ok, let me look into it.

I am not quite following @pysan3. It seems like in every possible situation, we should treat "never show" files as if they did not exist, so being able to short circuit without creating the item at the lowest level possible seems like the correct thing to do.
Can you explain more about what situation it would be a problem to skip creating a "never show" item in the create_item function?
As for the error pop-up, that's likely just a bug to fix.

It's so hard to explain code in my second language lol. plz feel free to ask any more questions if you don't get it.
Let's say we have folder structure like this.
- root/
  - A1/
    - B1/
      - foo.txt
    - B2/
  - A2/
    - B3/
      - bar.txt

On first load of the plugin, Neotree does not scan through the whole subfolders but only load root and it's direct children. So in the above case, root, A1, A2 and does not know the content inside A1 nor A2.
But in order to do the group_empty_dirs (to make it look like - A2/B3/) from the beginning, the scan mechanism checks the number of children for each dirs just in case.
When the number of children in the dirs is exactly 1 and that grandchild is a folder, neotree goes deeper and go scan B3 as well.
(When scanning children of A1, it stops there cuz there're B1 and B2 (it does not even check if they are files or folders) resulting to only showing - A1/ in the tree initially.)
For the case of A1, B1 and B2 are only scanned when <CR> is pressed at A1 (scan is delayed), so neo-tree does not have any node about B1, B2.
Note that this mechanism only checks the number of children in the folders and does not do any high-level check.
create-item is called after the whole scan, in this example, to create 3 nodes (root/, A1/, A2/B3/). It's not A2/ and B3/ but are merged into a single node A2/B3/ while scanning.
When we have a (what is going to be a never_show item at create_item) file like below, the scan stops at A3 and we do not have the information of child items until the folder is expanded. But actually what we want is to merge to A3/B4/ at this moment (when scanning contents of root).
- root/
  - A3/
    - B4/
    - .DS_Store

What makes it worse is that there are multiple functions that does this scan scan_dir_sync, scan_dir_async and there should be more? So there is no silver bullet to change the above action.

As for the error pop-up, that's likely just a bug to fix.

No, this is expected. Calls to create_item is always wrapped in a pcall. Error guard in done by checking success or fail of pcall and the code after that expects the return value to be an item (table) if success.
-- It is always like this
local suc, item = pcall(create_item, ...)
if suc then
  item.whatever = xxx -- would fail: error: cannot access `whatever` of nil
else
  show_error!!
end

-- this would be error proof, but will still raise the error notification.
local suc, item = pcall(create_item, ...)
if suc and item then
  ...

So, to actually not break, we have to make suc = false with some kind of raise exception, or assert error. But then, it triggers the show_error!! part which is what the notification I posted earlier is.

@cseickel Any updates?

Sorry @pysan3, this one slipped through the cracks and I forgot to follow up!
In the meantime, @ghostbuster91 has been working on a major refactor of the fs scanning functions in #957, so we should probably wait for that to land and then proceed from that point.


⚠ ClamAV has degraded performance

In 043f949, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 201 ms

Resolved: ClamAV performance has improved in 6578cd0.


Fix/dc tmd minor bugs

Contrary to the title, this branch contains minor fixes in terms of spelling, documentation as well as a proper input handling for the friction smoothing function. Before, 'mode' and 'sigma' were not passed to scipy.ndimage.gaussian_filter. Fixing this made the tests fail. The tests were adapted.
Secondly, smoothing was so far contained in WorkEstimator and ForceEstimator. To avoid code redundancy, the SmoothBasisEstimator was introduced, which provides the smoothing method.

Sorry for splitting up the review into two parts. Hope the input helps.

Codecov Report

Merging #11 (e8e075e) into main (c00c944) will increase coverage by 0.04%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main      #11      +/-   ##
==========================================
+ Coverage   88.09%   88.13%   +0.04%
==========================================
  Files          10       10
  Lines         487      489       +2
==========================================
+ Hits          429      431       +2
  Misses         58       58

Impacted Files
Coverage Δ

src/dcTMD/__main__.py
92.10% <ø> (ø)

src/dcTMD/dcTMD.py
72.72% <100.00%> (+0.58%)
:arrow_up:

src/dcTMD/utils/plotting.py
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Let's move the remaining tasks to a new pr.


Script to write nz-building-outlines to parquet 0.3.0

@cholmes asked me to write a script to update the nz-building-outlines file to Parquet version 0.3.0. This reads from the GeoPackage version of the data, which you can download from here (1.3GB).
Part of this is derived from the GeoPandas code here. But this additionally uses pyogrio (reverted because it failed to build on CI) and pygeos to try and speed things up a little bit. It's probably not a bad thing to have a Python script here because the GeoPandas release schedule is likely slower than our release schedule (at least thus far).
You can install the new dependencies with poetry install and run it with
poetry run python write_nz_building_outline.py \
    --input nz-building-outlines.gpkg \
    --output nz-building-outlines.parquet \
    --compression SNAPPY

This takes about 2m45s on my computer. With Snappy compression, the 1.3GB GeoPackage file became 410MB in Parquet. (375MB with ZSTD compression).
To see the CLI options you can run
poetry run python write_nz_building_outline.py --help

Closes https://github.com/opengeospatial/geoparquet/issues/42

Thanks for working on this! It's indeed good to have a script here to create files, that doesn't depend on geopandas' to_parquet, to be able to be more up to date.
One question: do we want to make this a "generic" script for converting something to GeoParquet? Or specific to this file? Because now it is partly specific (the file name, the dtype casting), but also has some generic code from geopandas that could be simplified if it's only targetting this file.

But this additionally uses pyogrio (reverted because it failed to build on CI)

Yeah, as long as we don't have wheel (hopefully soon!), you need to have GDAL installed to built it from source (or easier, use conda ;))

One question: do we want to make this a "generic" script for converting something to GeoParquet? Or specific to this file? Because now it is partly specific (the file name, the dtype casting), but also has some generic code from geopandas that could be simplified if it's only targetting this file.

Yeah I figured I'd make the PR and then let people discuss 🙂 . As you mentioned most of the script is generalized except for dtype casting.

This is great! Will try it out when I get a chance, hopefully soon.
I agree it'd be great to have a generic script, as long as it had a bit of documentation for how to use it to create the nz-buildings one. The dtype casting does look a bit complicated, so curious how that could be done generically? Some optional config file? Some command-line options?

The dtype casting does look a bit complicated, so curious how that could be done generically? Some optional config file? Some command-line options?

You usually need dtype casting when loading data from csv, because csv is an untyped data format (everything is stored as string). In this case, the data as loaded from the GeoPackage file didn't match linz's public description of the data. Specifically a couple columns where int64 instead of int32, and three columns had been stored as strings instead of dates. For a file that we want to present as an example of good Parquet usage, I think it would be good to distribute it with as efficient dtypes as possible.

Ok, just tried this out. It seemed to work? But there were a couple little things:
(base) cholmes@x9t37m3hgt scripts % poetry run python write_nz_building_outline.py \
    -i nz-building-outlines.gpkg \
    -o nz-building-outlines.parquet \
    --compression SNAPPY
/Users/cholmes/Library/Caches/pypoetry/virtualenvs/geoparquet-scripts-DKHrdpBy-py3.9/lib/python3.9/site-packages/geopandas/_compat.py:111: UserWarning: The Shapely GEOS version (3.10.2-CAPI-1.16.0) is incompatible with the GEOS version PyGEOS was compiled with (3.10.1-CAPI-1.16.0). Conversions between both will be slow.
  warnings.warn(
Starting to read geopackage
Finished reading geopackage
Starting conversion to Arrow
/Users/cholmes/Library/Caches/pypoetry/virtualenvs/geoparquet-scripts-DKHrdpBy-py3.9/lib/python3.9/site-packages/pygeos/io.py:85: UserWarning: The shapely GEOS version (3.10.2-CAPI-1.16.0) is incompatible with the PyGEOS GEOS version (3.10.1-CAPI-1.16.0). Conversions between both will be slow
  warnings.warn(
/Users/cholmes/Library/Caches/pypoetry/virtualenvs/geoparquet-scripts-DKHrdpBy-py3.9/lib/python3.9/site-packages/geopandas/geodataframe.py:1350: UserWarning: Geometry column does not contain geometry.
  warnings.warn("Geometry column does not contain geometry.")
Finished conversion to Arrow
Starting write to Parquet
Finished write to Parquet

It did seem to take awhile, like longer than your 3 minutes. It warned about that with different GEOS installs. Though not sure how I got that / how I fix it - this machine is only a month or two old.
And then I'm not sure about the 'geometry column does not contain a geometry', if something went wrong? Is there a way to verify the output? It came out as 410MB, so in line with yours.

Ok, just tried this out. It seemed to work? But there were a couple little things:
(base) cholmes@x9t37m3hgt scripts % poetry run python write_nz_building_outline.py
-i nz-building-outlines.gpkg
-o nz-building-outlines.parquet
--compression SNAPPY
/Users/cholmes/Library/Caches/pypoetry/virtualenvs/geoparquet-scripts-DKHrdpBy-py3.9/lib/python3.9/site-packages/geopandas/_compat.py:111: UserWarning: The Shapely GEOS version (3.10.2-CAPI-1.16.0) is incompatible with the GEOS version PyGEOS was compiled with (3.10.1-CAPI-1.16.0). Conversions between both will be slow.
warnings.warn(
Starting to read geopackage
Finished reading geopackage
Starting conversion to Arrow
/Users/cholmes/Library/Caches/pypoetry/virtualenvs/geoparquet-scripts-DKHrdpBy-py3.9/lib/python3.9/site-packages/pygeos/io.py:85: UserWarning: The shapely GEOS version (3.10.2-CAPI-1.16.0) is incompatible with the PyGEOS GEOS version (3.10.1-CAPI-1.16.0). Conversions between both will be slow
warnings.warn(
/Users/cholmes/Library/Caches/pypoetry/virtualenvs/geoparquet-scripts-DKHrdpBy-py3.9/lib/python3.9/site-packages/geopandas/geodataframe.py:1350: UserWarning: Geometry column does not contain geometry.
warnings.warn("Geometry column does not contain geometry.")
Finished conversion to Arrow
Starting write to Parquet
Finished write to Parquet

It did seem to take awhile, like longer than your 3 minutes.

Yeah my 3 minutes was when I initially used pyogrio. But I reverted that because it caused CI to fail. So now reading the GeoPackage might take an extra couple minutes.

It warned about that with different GEOS installs.

This happens between Shapely and PyGEOS because they each have different versions of GEOS that they build against. It's not an issue with your machine. I did try to add a note to the README of how to recompile pygeos, which should fix the issue:
https://github.com/kylebarron/geoparquet/blob/77a0953728af8919f34ed63d198aaed34173cc5f/scripts/README.md?plain=1#L38-L46

And then I'm not sure about the 'geometry column does not contain a geometry'

No, that's expected. I believe that happens here:
https://github.com/kylebarron/geoparquet/blob/77a0953728af8919f34ed63d198aaed34173cc5f/scripts/write_nz_building_outline.py#L151-L152
Because I'm reassigning the GeoPandas geometry column to now be a binary buffer (the WKB data) instead of GeoPandas' native geometry types. I'm sure there's a way to do this properly such that it doesn't emit a warning.

Is there a way to verify the output?

Hmm, I'm not sure. You can verify the metadata against the json schema at least. You could use geopandas.read_parquet() to make sure the data could be read back into a GeoDataFrame.

Ok, great. As long as the geometry column thing is expected I'll just go ahead and put this one online after verifying the metadata.

I'd love for someone to check my work 🙂. We can probably defer the question of "generic script vs nz-building-outlines -specific" for later. If desired, it wouldn't be hard to make into a small installable Python library to do GeoDataFrame -> GeoParquet. Not sure if there's an appetite for that outside of the GeoPandas library though.

I have tested on my machine the generation of the parquet file (411MB).
$ time poetry run python write_nz_building_outline.py     --input nz-building-outlines.gpkg     --output nz-building-outlines.parquet     --compression SNAPPY
/home/jesus/code/geoparquet/validator/python/venvt/lib/python3.8/site-packages/geopandas/_compat.py:111: UserWarning: The Shapely GEOS version (3.10.2-CAPI-1.16.0) is incompatible with the GEOS version PyGEOS was compiled with (3.10.1-CAPI-1.16.0). Conversions between both will be slow.
  warnings.warn(
Starting to read geopackage
Finished reading geopackage
Starting conversion to Arrow
/home/jesus/code/geoparquet/validator/python/venvt/lib/python3.8/site-packages/pygeos/io.py:85: UserWarning: The shapely GEOS version (3.10.2-CAPI-1.16.0) is incompatible with the PyGEOS GEOS version (3.10.1-CAPI-1.16.0). Conversions between both will be slow
  warnings.warn(
/home/jesus/code/geoparquet/validator/python/venvt/lib/python3.8/site-packages/geopandas/geodataframe.py:1350: UserWarning: Geometry column does not contain geometry.
  warnings.warn("Geometry column does not contain geometry.")
Finished conversion to Arrow
Starting write to Parquet
Finished write to Parquet

real    6m7,805s
user    6m2,748s
sys     0m5,148s

IMO it solves the original task, which is having a script to update nz-building-outlines. I agree with talking about a generic script later.

I noticed that poetry install removes colorama 0.4.4 which is a dependency of geoparquet_validator. Could you include temporarily colorama = "^0.4.4" in the pyproject.toml file, or provide another solution to make this compatible with the validator?

I noticed that poetry install removes colorama 0.4.4 which is a dependency of geoparquet_validator. Could you include temporarily colorama = "^0.4.4" in the pyproject.toml file, or provide another solution to make this compatible with the validator?

I'm not sure I follow. Currently the Poetry setup is completely separate from the validator, and it's expected for these to run in two different virtual environments. The validator is not installed within this pyproject.toml, so it doesn't know about any of its dependencies.

I was using the same virtual environment for the validator and for this script, just to validate the file I generated. But if the idea is to use different virtual environments, then there is no issue.

Yeah as-is it's expected to use two different environments. If we want to use the same environment, we can declare the validator a dependency of this `pyproject.toml.

But there were a couple little things

I updated to hide the "column does not contain geometry" warning. Or maybe it would be better instead of ignoring the warning to construct a pandas DataFrame instead of modifying the GeoDataFrame 😄
I suppose now that GDAL is about to ship with a GeoParquet driver, converting other files to GeoParquet should be easier, but that might not always be up to date with the latest version of the spec.

Can we merge this? Will it need any updates for 0.4.0? Or will it just work once geopandas is updated?

I think the main question outstanding is how generic we want this to be. Probably fine to merge as it is now and follow up in the future. Would love another ✅ review though.

will it just work once geopandas is updated?

This doesn't rely on geopandas for actually writing the Parquet file. Using Geopandas was just easier to load the GeoPackage into memory. So it shouldn't require an updated version of geopandas.

Will it need any updates for 0.4.0?

I assume Projjson will be in 0.4.0, and then this script will need to change to store that instead of the WKT in the metadata.

I think the main question outstanding is how generic we want this to be. Probably fine to merge as it is now and follow up in the future.

Yeah, I think we should merge as is, and then in a future version make it more generic.

Would love another ✅ review though.

So it shouldn't require an updated version of geopandas.

Great

Will it need any updates for 0.4.0?

I assume Projjson will be in 0.4.0, and then this script will need to change to store that instead of the WKT in the metadata.

Yeah, prjjson will be in 0.4.0. Would be great if you could update this PR to include that.

It would probably be good to test this output against the v0.4 json schema validator as well

I was able to verify that the output of this validated against the current validator

Awesome. I've been hit with a morning of meetings, but I'm +1 on merging this, with a final thumbs up from @jorisvandenbossche or another python dev. I'll aim to try it out when I get some time between meetings.

Note
Moving the schema to format-specs broke the validator: pip install . does not work with a symlink resource. It works with pip install -e ., but this is something we need to tackle, especially if we want to distribute the validator as a python package.

Shoot, I somehow missed reading this before cutting the 0.4.0 release. I suppose it's not strictly necessary. But would be something that'd be good to fix soon. Made an issue #107 to track it.


feat: support LINE

Description

Part of LINE for #132
Sorry for late creating PR...
Thank you for your confirmation!

Thanks, the PR is perfect.
Would you please update the icon by using this one?
https://icon-sets.iconify.design/ri/line-fill/
Its size will be more consistent with icons for other networks.
Thanks

Thank you for your review!
OK, i changed icon to ri:line-fill.
Thank you for your review!


JamesGrid Element Arrangement Issue

How do I add placeholders if some cells don't need to contain any elements when using JamesGrid?
  <james:JamesGrid  ColumnCount="3" Columns="Auto,*,*" RowCount="3" Rows="Auto,Auto,Auto">      <TextBlock  Text="R1C1" />      <TextBlock  Grid.Column="1" Text="R1C2" />      <TextBlock Grid.Row="1"  Grid.Column="0" Text="How do I get it to display in R2C1" />   </james:JamesGrid>

Here's the translated content in English:
I also frequently face this situation. Typically, I resolve it in the following manner.
public class EmptyArea : Control
{

}

As shown above, I define an empty control class to fill unnecessary spaces.
<james:JamesGrid Rows="*" Columns="*, *, *">
    <units:EmptyArea/>
    <TextBlock Text="asdf1"/>
    <TextBlock Text="asdf2"/>
</james:JamesGrid>

This method, by explicitly defining specific controls, can effectively enhance readability.
@ErickWei  I will consider more fundamental solutions to this issue and provide updates in the future. Thank you for your insightful feedback!


Eager calls to textDocument/documentSymbol

When opening a java file (with vscode-java installed and "java.trace.server": "messages"), I see 2 calls to textDocument/documentSymbol. Any reason for that?
I can even see those 2 calls when the code outline view is collapsed. There are no textDocument/documentSymbol calls if the vscode-code-outline extension is disabled.

That may be a bug, I'll investigate. It should not ask for data unless it's actually needed.

I'm unable to reproduce this. I've added console.trace next to my call to vscode.executeDocumentSymbolProvider. It does not seem to be called more than once per document. I will need some more guidance to get to the bottom of this.


Added nodeExpanded function to determin expansion locally

See, #30

Rebased on latest commit. @chibicode can you merge this pr or are there any objections?

@martinhoefling on vacation now, will take a look when I'm back!

I would suggest removing expandRoot/expandAll, as nodeExpanded can cover these cases (obviously, that would be a breaking change).

I like @alexkuz suggestion of removing expand root and expand all logic and replacing it by a nodeExpanded function. How about keeping the params to not break existing api and making them mutual exclusive? Each of the two params (expandAll=true and expandRoot=false would then implicitly set the nodeExpanded function? What are your thoughts @chibicode?

How about keeping the params to not break existing api and making them mutual exclusive? Each of the two params (expandAll=true and expandRoot=false would then implicitly set the nodeExpanded function? What are your thoughts @chibicode?

@martinhoefling that sounds good to me!

So I have rebased on latest master and added the comments from @alexkuz . @chibicode  this part is ready to be merged, I hope :smile: . Concerning expandAll and expandRoot: As it is now, they are const within render. One option would be leaving the logics and just add the deprecation warning and then removing after deprecation (that's what I did now). Second option that comes to my mind is to change the const but I am not sure if this is a good idea for temporary functionality.

@alexkuz you're right, putting nodeExpanded there makes no sense. I removed level in index.js as well - currently I have no use use for it but in principal one could control the level from outside.

Since it’s a function, why not call it shouldExpandNode? nodeExpanded shoulds like a boolean.

Sounds good to me. What do you think @chibicode @alexkuz ?

I agree

nodeExpanded shoulds like a boolean.

Shoulds? Did I write that :sweat_smile: ? I meant “sounds”.

@martinhoefling I agree :)

@chibicode, do you want (me) to squash the commits? Or merge right away?

@martinhoefling it's better to squash them, yeah.

All right, everything in a single commit now. @alexkuz @chibicode - ready to merge.

@martinhoefling thanks! I saw one thing - maybe we might want to use console.error following React's convention?

@alexkuz you can change the settings to squash commits by default: https://github.com/blog/2141-squash-your-commits

@alexkuz: everything is now in one commit

@martinhoefling there are some errors from linter (indentation/trailing spaces/etc.), can you clear them up, please?

@alexkuz done

@martinhoefling Thank you! Sorry it took so long :)
I'll publish it in v0.7.0, when I'll finish refactoring theming (as it'll also change API)

No problem - The iterations and your feedback definitely improved the code.


Connection Issue

Hello,
I might be doing something totally off but having a hard time connecting to the server. I am getting an error of "Could not connect to the server."
Heres what I am trying:
var client = RealtimeClient(endPoint: "https://pkx....supabase.co/realtime/v1", params: ["apikey": "eyJhb..."])

A few questions.

Should use https and not wss in the url?
Should the url end in supabase.io or supabase.co?

Apparently there was an issue with my project. Contacted support and they are fixing it now.


[dcd] Rename reg top to u_reg

Using the same instance name is easy to support CSR backdoor access
In other IPs, we all use u_reg
Signed-off-by: Weicai Yang<EMAIL_ADDRESS>

Okay. Looks good to me.
-Eric


Sequence test infrastructure and some sequence tests for store.ts

@mykmartin ready for another pass, I think?

@mykmartin and again

FWIW there is the simple example in the slides I presented to the team. I'm not going to check that in as it doesn't have anything to do with arcs per se; perhaps could include a link to the slides or something?


TcpStream::try_clone() -> Function not implemented (os error 88)

Attempting to run try_clone() on a TcpStream results in the following error.
Os { code: 88, kind: Unsupported, message: "Function not implemented" }

In my use case, this makes it impossible to use Apache Thrift on my ESP32. Is it more of an issue with the Rust ESP toolchain not supporting cloning TCP streams, or with Apache Thrift not supporting platforms which don’t support it?
Here is a minimal reproducible example: https://github.com/victorbnl/esp-rs-tcpstream-clone-88

Sorry for reacting so late.
try_clone is unlikely to be implemented anytime soon, as there's a missing functionality in ESP-IDfFitself: it does not support the Posix dup syscall. In other words, it cannot "duplicate" a file/socket handle. This also means we cannot support try_clone, as after try_clone you should end up with two separate TCP streams which have their own lifetime, but for that, we absolutely need dup. :)

If you feel like contributing a dup support to ESP-IDF, implementing TCP stream try_clone would be a piece of cake afterwards.


Add new intent : Weather

https://github.com/the-vision/jarvis-telegram/wiki

I would like to take up this...may i know what is to be done in detail so that i can proceed as i am a beginner to this project

@nandanasreeraj123 Go ahead.

@nandanasreeraj123 Are you working on it? If you have created PR, then please mention PR number in this issue or this issue number in your PR.

@TeAmP0is0N I want to work on this issue. Please assign it to me.

@adityabisoi Go ahead.


[Feature]: kubectl user can see that BuildWorkload.spec.env uses a dedicated Secret for VCAP_SERVICES

Blockers/Dependencies
[#1029]
Background
As a kubectl user
I want to see that my CFApp.status.vcapServicesSecretName resources have a points to a Secret containing an accurate value for VCAP_SERVICES
And that BuildWorkload.spec.env uses this Secret to set the value of VCAP_SERVICES
So that VCAP_SERVICES is always accurate and not present in the user-specified CFApp.spec.envSecretName
Acceptance Criteria
GIVEN a working deployment of Korifi
AND a CFApp that has a CFServiceBinding to a CFServiceInstance
WHEN I use kubectl to describe the CFApp
THEN I should see that it has a status.vcapServicesSecretName field
WHEN I inspect the Secret named there in the same namespace
THEN I should see that the Secret contains only the VCAP_SERVICES key, and that its value is correct
WHEN I bind a second service to the app
THEN I should see that the same Secret I inspected before now includes the credential for the service instance I just bound
WHEN I create a build for that app (e.g. via cf push)
THEN I should see that the resulting BuildWorkload resource has a spec.env key that fetches the VCAP_SERVICES env var from the same Secret
Dev Notes

To avoid code duplication, you should also change the CFProcessReconciler to fetch VCAP_SERVICES from this same Secret, rather than recalculate it. Eventually the RunWorkload will exist and be able to pull the env var directly from a Secret like BuildWorkload, but this smaller change is a step in the right direction.

I think this has some overlap with https://github.com/cloudfoundry/korifi/issues/796, feel free to take some stuff from that and close or block this story on it.

Thanks, Tim. This is very similar to #796, but only affecting the BuildWorkload (which will change the Kpack Image). I think this story, plus the RunWorkload story I'm going to write to support pod-style Env variable will make the other issue obsolete.

I didn't cover the unbind scenario in the acceptance criteria, which led to a regression: deleting service bindings no longer updates the VCAP_SERVICES environment variable. @julian-hj wrote a bug to fix this: https://github.com/cloudfoundry/korifi/issues/1352


Webhook only works when certificates are valid for longer than 90 days.

Describe the solution you'd like
I want to have webhook pod running without issues to take advantage from its purpose on integration with Validating Webhook.
Give us examples of the outcome
No exceptional outcome expected, just want to have webhook pod up and running.
Observations (Constraints, Context, etc):

Kubernetes version: 1.21
Cloud provider: AWS (EKS)

I am using Helm to generate the full Kubernetes manifest. In addition, I am using cert-manager with a self-signed issuer, to generate a certificate that is attached to the ValidatingWebhookConfigurations and CRDs as an annotation, and its associated Secret mounted into the volume /tmp/certs of the webhook Deployment.
Here's a snippet of the logs (I reduced the certificate check-time to 30s on purpose to have quicker feedback and set the log level to debug):
> k logs -f -n external-secret external-secrets-webhook-66d99c6d5c-pc945
{"level":"info","ts":1654646190.2853827,"logger":"setup","msg":"validating certs"}
I0607 23:56:31.336631       1 request.go:665] Waited for 1.027699204s due to client-side throttling, not priority and fairness, request: GET:https://<IP_ADDRESS>:443/apis/certificates.k8s.io/v1beta1?timeout=32s
{"level":"info","ts":1654646191.4175885,"logger":"controller-runtime.metrics","msg":"Metrics server is starting to listen","addr":":8080"}
{"level":"info","ts":1654646191.4178233,"logger":"controller-runtime.builder","msg":"skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called","GVK":"external-secrets.io/v1beta1, Kind=ExternalSecret"}
{"level":"info","ts":1654646191.4178524,"logger":"controller-runtime.builder","msg":"Registering a validating webhook","GVK":"external-secrets.io/v1beta1, Kind=ExternalSecret","path":"/validate-external-secrets-io-v1beta1-externalsecret"}
{"level":"info","ts":1654646191.417944,"logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-external-secrets-io-v1beta1-externalsecret"}
{"level":"info","ts":1654646191.4181106,"logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/convert"}
{"level":"info","ts":1654646191.4181519,"logger":"controller-runtime.builder","msg":"Conversion webhook enabled","GVK":"external-secrets.io/v1beta1, Kind=ExternalSecret"}
{"level":"info","ts":1654646191.4181678,"logger":"controller-runtime.builder","msg":"skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called","GVK":"external-secrets.io/v1beta1, Kind=SecretStore"}
{"level":"info","ts":1654646191.4181745,"logger":"controller-runtime.builder","msg":"Registering a validating webhook","GVK":"external-secrets.io/v1beta1, Kind=SecretStore","path":"/validate-external-secrets-io-v1beta1-secretstore"}
{"level":"info","ts":1654646191.418204,"logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-external-secrets-io-v1beta1-secretstore"}
{"level":"info","ts":1654646191.4182596,"logger":"controller-runtime.builder","msg":"Conversion webhook enabled","GVK":"external-secrets.io/v1beta1, Kind=SecretStore"}
{"level":"info","ts":1654646191.4182816,"logger":"controller-runtime.builder","msg":"skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called","GVK":"external-secrets.io/v1beta1, Kind=ClusterSecretStore"}
{"level":"info","ts":1654646191.4182875,"logger":"controller-runtime.builder","msg":"Registering a validating webhook","GVK":"external-secrets.io/v1beta1, Kind=ClusterSecretStore","path":"/validate-external-secrets-io-v1beta1-clustersecretstore"}
{"level":"info","ts":1654646191.4183333,"logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-external-secrets-io-v1beta1-clustersecretstore"}
{"level":"info","ts":1654646191.4183936,"logger":"controller-runtime.builder","msg":"Conversion webhook enabled","GVK":"external-secrets.io/v1beta1, Kind=ClusterSecretStore"}
{"level":"info","ts":1654646191.4184053,"logger":"controller-runtime.builder","msg":"skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called","GVK":"external-secrets.io/v1alpha1, Kind=ExternalSecret"}
{"level":"info","ts":1654646191.41841,"logger":"controller-runtime.builder","msg":"skip registering a validating webhook, object does not implement admission.Validator or WithValidator wasn't called","GVK":"external-secrets.io/v1alpha1, Kind=ExternalSecret"}
{"level":"info","ts":1654646191.418437,"logger":"controller-runtime.builder","msg":"Conversion webhook enabled","GVK":"external-secrets.io/v1alpha1, Kind=ExternalSecret"}
{"level":"info","ts":1654646191.418443,"logger":"controller-runtime.builder","msg":"skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called","GVK":"external-secrets.io/v1alpha1, Kind=SecretStore"}
{"level":"info","ts":1654646191.4184473,"logger":"controller-runtime.builder","msg":"skip registering a validating webhook, object does not implement admission.Validator or WithValidator wasn't called","GVK":"external-secrets.io/v1alpha1, Kind=SecretStore"}
{"level":"info","ts":1654646191.4184725,"logger":"controller-runtime.builder","msg":"Conversion webhook enabled","GVK":"external-secrets.io/v1alpha1, Kind=SecretStore"}
{"level":"info","ts":1654646191.4184914,"logger":"controller-runtime.builder","msg":"skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called","GVK":"external-secrets.io/v1alpha1, Kind=ClusterSecretStore"}
{"level":"info","ts":1654646191.418496,"logger":"controller-runtime.builder","msg":"skip registering a validating webhook, object does not implement admission.Validator or WithValidator wasn't called","GVK":"external-secrets.io/v1alpha1, Kind=ClusterSecretStore"}
{"level":"info","ts":1654646191.4185133,"logger":"controller-runtime.builder","msg":"Conversion webhook enabled","GVK":"external-secrets.io/v1alpha1, Kind=ClusterSecretStore"}
{"level":"info","ts":1654646191.4185212,"logger":"setup","msg":"starting manager"}
{"level":"info","ts":1654646191.4185877,"logger":"controller-runtime.webhook.webhooks","msg":"Starting webhook server"}
{"level":"info","ts":1654646191.4186337,"msg":"Starting server","kind":"health probe","addr":"[::]:8081"}
{"level":"info","ts":1654646191.418634,"msg":"Starting server","path":"/metrics","kind":"metrics","addr":"[::]:8080"}
{"level":"info","ts":1654646191.4187977,"logger":"controller-runtime.certwatcher","msg":"Updated current TLS certificate"}
{"level":"info","ts":1654646191.4188728,"logger":"controller-runtime.webhook","msg":"Serving webhook server","host":"","port":10251}
{"level":"info","ts":1654646191.4189203,"logger":"controller-runtime.certwatcher","msg":"Starting certificate watcher"}
{"level":"info","ts":1654646220.2869182,"logger":"setup","msg":"validating certs"}
{"level":"info","ts":1654646220.2872288,"logger":"setup","msg":"certs are valid"}
{"level":"info","ts":1654646220.287284,"msg":"Stopping and waiting for non leader election runnables"}
{"level":"info","ts":1654646220.2873106,"msg":"Stopping and waiting for leader election runnables"}
{"level":"info","ts":1654646220.2873175,"msg":"Stopping and waiting for caches"}
{"level":"info","ts":1654646220.2873423,"msg":"Stopping and waiting for webhooks"}
{"level":"info","ts":1654646220.2873716,"logger":"controller-runtime.webhook","msg":"shutting down webhook server"}
{"level":"info","ts":1654646220.2884703,"msg":"Wait completed, proceeding to shutdown the manager"}

Closed as there was a typo in the secret name for the injected cert-manager's annotations

Hi @hugomcfonseca ! Can you share information on how you're deploying external-secrets in your setup? I'm interested to know if you're using cert-controller deployment or not.

Sure thing @gusfcarvalho, here's the procedure to replicate what I've been testing:

Apply the cert-manager Certificate

---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  labels:
    app: external-secrets-webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: external-secrets-webhook
    app.kubernetes.io/name: external-secrets-webhook
    app.kubernetes.io/version: 0.5.6
  name: external-secrets-webhook-cert
  namespace: "external-secrets"
spec:
  dnsNames:
    - external-secrets-webhook.external-secrets.svc
    - external-secrets-webhook.external-secrets.svc.cluster.local
  issuerRef:
    kind: ClusterIssuer
    name: selfsigned-issuer
  secretName: external-secrets-webhook

Then, apply the generated output from Helm, and annotate resources with annotation for the cert-manager Certificate's Secret.

helm repo add external-secrets https://charts.external-secrets.io

helm template external-secrets external-secrets/external-secrets \
  --set "certController.create=false" \
  --namespace=external-secrets | \
    kubectl apply -n external-secrets -f -

kubectl annotate crd externalsecrets.external-secrets.io cert-manager.io/inject-ca-from-secret=external-secrets/external-secrets-webhook
kubectl annotate crd secretstores.external-secrets.io cert-manager.io/inject-ca-from-secret=external-secrets/external-secrets-webhook
kubectl annotate crd clusterexternalsecrets.external-secrets.io cert-manager.io/inject-ca-from-secret=external-secrets/external-secrets-webhook
kubectl annotate crd clustersecretstores.external-secrets.io cert-manager.io/inject-ca-from-secret=external-secrets/external-secrets-webhook
kubectl annotate validatingwebhookconfiguration secretstore-validate cert-manager.io/inject-ca-from-secret=external-secrets/external-secrets-webhook
kubectl annotate validatingwebhookconfiguration externalsecret-validate cert-manager.io/inject-ca-from-secret=external-secrets/external-secrets-webhook

If you need further info, just let me know.

Can you share the cert-manager version you’re using? I’ll try to troubleshoot this issue

Sure thing @gusfcarvalho, we are using the version 1.6.1

Same happening is here.
external secrets: 0.5.6
eks: 1.22
cert-manager: 1.8.0

Did you check that the secret that has been created by cert-manager has the annotation to allow direct injection?
$ kubectl -n external-secrets \
    annotate secret external-secrets-webhook \
    cert-manager.io/allow-direct-injection=true

The webhook controller seems to come up correctly, please check that the CRD has the correct webhook.clientConfig.caBundle set and that cert-manager-cainjector doesn't show errors.
Does that solve your issue? I got it to work with cert-manager 1.8.1 and current ESO 0.5.6.
I used the steps described above plus the adding the annotation as described :point_up_2:

@moolen I used cert-manager.io/inject-ca-from` pointing to the certificate instead of adding more annotations.
Everything is up and actually is working, but the webhook controller dies without any reason from time to time.

Given the certificates @hugomcfonseca used in his comment the right way to annotate the objects (for 1.8.x), should be
kubectl annotate crd externalsecrets.external-secrets.io cert-manager.io/inject-ca-from=external-secrets/external-secrets-webhook-cert
kubectl annotate crd secretstores.external-secrets.io cert-manager.io/inject-ca-from=external-secrets/external-secrets-webhook-cert
kubectl annotate crd clusterexternalsecrets.external-secrets.io cert-manager.io/inject-ca-from=external-secrets/external-secrets-webhook-cert
kubectl annotate crd clustersecretstores.external-secrets.io cert-manager.io/inject-ca-from=external-secrets/external-secrets-webhook-cert
kubectl annotate validatingwebhookconfiguration secretstore-validate cert-manager.io/inject-ca-from=external-secrets/external-secrets-webhook-cert
kubectl annotate validatingwebhookconfiguration externalsecret-validate cert-manager.io/inject-ca-from=external-secrets/external-secrets-webhook-cert

In my case, it is restarting every five minutes.

@adebarbara same here, but that's because I am not setting a different sync period and use the default.

@hugomcfonseca
I just added a line a code before this to print out why the cert is invalid gettting the following error.
{
  "level": "error",
  "ts":<PHONE_NUMBER>.5024328,
  "logger": "setup",
  "msg": "unable to validate certificates",
  "error": "x509: certificate has expired or is not yet valid: current time 2022-09-15T17:17:18Z is after 2022-09-11T21:36:31Z",
  "stacktrace": "github.com/external-secrets/external-secrets/cmd.glob..func3.1\n\t/home/adebarbara/src/external-secrets/cmd/webhook.go:88"
}

Digging deeper I found out that the look ahead of the certificate validation period in code is 30d while the default certify duration in cert- manager is also 90. Therefore the certificate is always invalid.
I am testing this now, using the same values that are in crds_controller.go
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: selfsigned-issuer
  namespace: external-secrets
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: external-secrets-webhook
  namespace: external-secrets
spec:
  commonName: external-secrets-webhook.external-secrets.svc
  dnsNames:
  - external-secrets-webhook.external-secrets.svc.cluster.local
  - external-secrets-webhook.external-secrets.svc
  duration: 87600h0m0s
  renewBefore: 2160h0m0s
  issuerRef:
    kind: Issuer
    name: selfsigned-issuer
  secretName: external-secrets-webhook

That works. That duration looks excessive IMHO,

Hi @adebarbara ! Indeed this is a field that could be configurable within the webhook.
Thanks for investigating this! 🙏🏽

I changed the name of the issue to capture the bug now that we found it!

@adebarbara why we need to annotate crd(s) also - I believe validatingwebhookconfiguration is enough!

I have the same issue. Here we have a --check-interval of 1 hour, and it restarts every single hour without failure even though the certificates are always valid:
{"level":"info","ts":1657548269.669806,"logger":"setup","msg":"validating certs"}
{"level":"info","ts":1657548269.6701581,"logger":"setup","msg":"certs are valid"}
{"level":"info","ts":1657548269.670189,"msg":"Stopping and waiting for non leader election runnables"}
{"level":"info","ts":1657548269.670201,"msg":"Stopping and waiting for leader election runnables"}
{"level":"info","ts":1657548269.6702073,"msg":"Stopping and waiting for caches"}
{"level":"info","ts":1657548269.6702702,"msg":"Stopping and waiting for webhooks"}
{"level":"info","ts":1657548269.6702902,"logger":"controller-runtime.webhook","msg":"shutting down webhook server"}
{"level":"info","ts":1657548269.6714532,"msg":"Wait completed, proceeding to shutdown the manager"}

The intriguing part is why would it restart/stop the process if certs are valid?


Improve footer-dark-3

Need to improve this component: footer-dark-3
Improvements required :
Design is not as per the Figma file
Any reference image?

Please assign me @Rajdip019

@Dibyendu303 go ahead


roscpp_core: 0.5.7-0 in 'jade/distribution.yaml' [bloom]

Increasing version of package(s) in repository roscpp_core to 0.5.7-0:

upstream repository: git@github.com:ros/roscpp_core.git
release repository: https://github.com/ros-gbp/roscpp_core-release.git
distro file: jade/distribution.yaml
bloom version: 0.5.21
previous version for package: 0.5.6-0

cpp_common
* export symbols for Header (#46 <https://github.com/ros/roscpp_core/pull/46>)

roscpp_serialization
* fix serializer bool on ARM (#44 <https://github.com/ros/roscpp_core/pull/44>)

roscpp_traits

No changes

rostime
* Adjust return value of sleep() function (#45 <https://github.com/ros/roscpp_core/pull/45>)
* fix WallRate(Duration) constructor (#40 <https://github.com/ros/roscpp_core/pull/40>)

Waiting for coordinated release.


Cannot specify multiple items on the classpath when using CLI

Describe the bug
Cannot specify multiple items on the classpath when using CLI.
To Reproduce
Steps to reproduce the behavior:

Follow the steps from the CLI README to use the CLI
Attempt to specify more than one classpath parameter item

Expected behavior
Both classpath parameter items are accepted
Actual behaviour
Only one can be used.
Additional context
Attempted to use delimiters including semi-colon, comma and blanks, and wrapping with quotes, but none successful. It may be that the parameter in the refactor requires a property for the delimiter.

Have you tried repeating the same option multiple times with different values? Picoli's repeated options seem to indicate that you can just repeat, for example:
astra method --fqType com.example.Foo --name getFoo --newname getBar --parameters= --cp C:\Users\ExampleUser\.m2\repository\com\example\example-impl\example-impl-1.0.jar --cp C:\Users\ExampleUser\.m2\repository\com\foo\foo-impl\foo-impl-1.0.jar --directory C:/Code/CodeBase
By default, it seems that Picocli's Option handles splitting by assigning a regular expression of split characters to split. By default, it returns the empty string. That seems to be the problem, because: @return a regular expression to split option parameter values or {@code ""} if the value should not be split. So, it appears that Picocli is not attempting to split in the first place.
Let me know if specifying the option multiple times works. I can also PR a fix for the latter suggestions sometime in the near future, perhaps that will make user interaction easier. Intuitively, I'm thinking [,;] might be a good regular expression for accepted delimiters, but let me know what you think.

Excellent, thanks for pointing that out @Arraying!
Testing with an example like you've given above, Astra is provided multiple classpaths.
That suggestion sounds great - splitting on ; would be very useful!

Fixed by #49


People profile listing with map

Issue
Demo page
Note: the exposed Google Maps API key shows on the front-end of the site as well. It is locked down to only a select few referring urls.

@thetwopct I got the map working. I'll leave it for you to style the profile cards and anything else.

I went ahead and styled the profile cards, borrowing from CNCF code, so this is now ready for review.

I'm not overly convinced this is suitable for general inclusion in the theme. Its requirements seem very specific, and other than CNCF I've never seen a map + people layout like this used on a website. So all sites using this theme need to carry this odd component as overhead.
If it’s necessary to include, I would suggest the following:

Split out the code so its a bit more reusable (if possible within confines of Hugo)
-- add a person component, which would at be useful for users who want to show staff or members (without a map);
-- add a social component for displaying icons
Add details about how to use the components to the readme
Move the googlemaps script in to the theme rather than using unpkg CDN
I don't love the Google Maps key being in the config example, think it could be confusing, but then using google_maps_api_key: "{{ env 'GOOGLE_MAPS_API_KEY' }}" wouldn't be great either.

From a design perspective:

4 columns width on desktop looks pretty tight especially with that amount of text per person, 3 columns would look better
Can the job title / Company / Location be styled a bit better / closer to the name?

Before merging:

Please rebase on the latest main branch and fix merge conflicts.

Note: I've optimised the images a bit, they seemed very large for simple demo content.

Ok, I've moved this into the devrel theme and also incorporated most of your suggestions. I'll close this PR for now then.


Add curve preference option to configuration files

Add a curve_preference parameter to specify/order curve preferences.  e.g. to serve many connections, one could specify "CurveP256" in order to reduce CPU usage.
Add details to tls help
Deprecated older 1.4 cipher suite code

Coverage decreased (-0.2%) to 89.045% when pulling 9312ec21dbcd0032014b84bbe8bbfa6c9a2e0ccd on tls-curve-pref into 148446d97037b38a94c8378ae1e72acf016b20d5 on master.

Let's go ahead and add 1.8 for Travis if we have 1.8 specific code.

Coverage increased (+0.06%) to 89.387% when pulling afceb6ef1b88e944cc723c5f20c9fb22fc737153 on tls-curve-pref into bc3afada9324f1d75a4d0fd1eba79c95d7437c36 on master.


adding 'disabled' and 'hasFocus' to propTypes; add documentation for props to README.md

To Whomever It May Concern,
First wanted to start off by saying thank you for creating this awesome component!
This PR addresses the following:

Adds disabled and hasFocus to propTypes
Adds documentation for the props to the README document

Let me know if you have any questions/comments.
Thanks!

Rohit K

@aaronshaf have you had a chance to check this out?

Hi @rovolution - I'd love to merge this if you just remove the file changes to index.js. I'm guessing you had other changes in your local repositories to add in those prop types to index.es6.js (which I also plan on adding) but we'll take care of that in a separate PR.

whoa totally forgot about this PR! yea for sure let me remove the index.js changes

@BDiehr went ahead and made the changes

merged! Thanks


Adding interaction term with formula not compatible with skLearn.GridSearchCV

I'm using sklearn adapter to integrate the CPH model with my machine learning workflow (GridSearchCV, etc.). It works fine, however, when I add interactions "formula", it just ignored!
I'm able to use the adapter with formula if I'm just fitting directly, but if I tried to use GridSearchCV it is just ignored. I sent it as a parameter to the model or as a param to the GridSearchCV and both did not work.
Basically, I want to do this GridSearchCV lifelines example but with interaction: https://lifelines.readthedocs.io/en/latest/Compatibility with scikit-learn.html

I think I've found a related issue.  It seems that the only way to specify a formula is to call the .fit() function.  However, this seems to be incompatible with model comparison using the utils.k_fold_cross_validation function---that function seems to assume that each model object is self-contained.  One way around this might be to pass the formula into the object init function.  A possibly API-compatible (but less elegant) way might be to allow the fitter_kwargs to be a list of dictionaries.


TypeError: Cannot read properties of undefined (reading 'lastMessageId')

What happened?
my bot crashes when i use the kick command
Full error:
C:\Users\wlodz\Projects\revoltBots\construct\construct\node_modules\solid-js\store\dist\server.cjs:67
    next = current[part];
                  ^

TypeError: Cannot read properties of undefined (reading 'lastMessageId')
    at updatePath (C:\Users\wlodz\Projects\revoltBots\construct\construct\node_modules\solid-js\store\dist\server.cjs:67:19)
    at updatePath (C:\Users\wlodz\Projects\revoltBots\construct\construct\node_modules\solid-js\store\dist\server.cjs:64:7)
    at ChannelCollection.setStore [as updateUnderlyingObject] (C:\Users\wlodz\Projects\revoltBots\construct\construct\node_modules\solid-js\store\dist\server.cjs:83:66)
    at C:\Users\wlodz\Projects\revoltBots\construct\construct\node_modules\revolt.js\lib\cjs\events\v1.js:77:41
    at batch (C:\Users\wlodz\Projects\revoltBots\construct\construct\node_modules\solid-js\dist\server.cjs:105:10)
    at C:\Users\wlodz\Projects\revoltBots\construct\construct\node_modules\revolt.js\lib\cjs\events\v1.js:75:42
    at Generator.next (<anonymous>)
    at fulfilled (C:\Users\wlodz\Projects\revoltBots\construct\construct\node_modules\revolt.js\lib\cjs\events\v1.js:5:58)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

kick command code:
import { replyWithErr } from "../lib.js";

const log = console.log

export default {
    name: 'kick',
    aliases: [],
    // privilege: CommandPrivilege.Manager,
    async run(message, args, command, db, bot, { client }) {
        const isOwner = message.author.id == bot.owner.id
        if (!(isOwner || message.member.hasPermission(message.server, "KickMembers"))) { replyWithErr(message, "Missing permission"); return }
        if (message.server.ownerId == message.mentionIds[0]) { replyWithErr(message, "Unable to kick owner"); return }
        if (message.mentionIds == undefined) { replyWithErr(message, "Missing argument 1"); return }
        if (message.mentionIds[0] == bot.id) { replyWithErr(message, "I can't kick myself!"); return }
        var myRank = await message.server.fetchMember(bot.id).ranking
        var targetRank = await message.server.fetchMember(message.mentionIds[0]).ranking

        if (myRank > targetRank) { replyWithErr(message, "My rank is lower than the rank of the person you are trying to kick"); return }

        try {
            message.server.kickUser(message.mentionIds[0])
        } catch (err) {
            log(`! Fatal Error: ${err}`)
            console.log(err)
            message.reply("someting went wrong, check if the bot has permission to kick/ban and try again!")
            return
        }
        try {
            if (message.server.id == "01H36T7ZNX7ZMQ4FKB2TZHKX04") {
                Array.prototype.random = function() {
                    return this[Math.floor(Math.random() * this.length)]
                }
                let killers = [
                    ':01HJ1E0VN82X9HY5NZTDK93NJF:',
                    ':01HKF2GPK971GA0XP5DQQ3F78B:',
                    ':01HKJBBYTGFT42EKC6HYHDZVDT:',
                    ':01HKJBD22G8WA376S10VPZJP5X:',
                    ':01HKJBV6E07JG64HP7HSV450GA:',
                    ':01HKJC0KPYX980T3ARTBH4W97K:',
                    ':01HKJC124ZVN8JXRZ478X65ZCG:',
                    ':01HKJBWN7A59Q0K3AKCE37BJJN:',
                    ':01HKJBX09P4Z8NTBEZDHN09K61:',
                ];
                let weepons = [
                    ':01H36VVBSK3C72AFNGSFT6HQQ1:',
                    ':01H36VVSHZJS8JPZ55ZNCA0N08:',
                    ':01H36VWDPEQ3EYNEDRR933311E:',
                    ':01H36VWZ54FN14YV4ABYARAT22:',
                    ':01H36VXB1CJTM070PBZXAGGNY4:',
                    ':01H36VXVGQQZ9YQX5X991NA9PH:',
                    ':01H36VYF63ZNMN3Y0NKSQN3W5Z:',
                ];
                try {
                    if (client.channels.get("01H8A1BFF1F2Q2AT6629WC6A4Q")) {
                        client.channels.get("01H8A1BFF1F2Q2AT6629WC6A4Q").sendMessage(`${killers.random()}${weepons.random()}${message.args[0]}`)
                    }
                } catch (fatalError) {
                    log(`! Fatal Error: ${fatalError}`)
                    console.log(JSON.stringify(fatalError))
                }
            } else {
                try {
<EMAIL_ADDRESS>kicked`)
                } catch (fatalError) {
                    log(`! Fatal Error: ${fatalError}`)
                    console.log(JSON.stringify(fatalError))
                }
            }
        } catch (fatalError) {
            log(`! Fatal Error: ${fatalError}`)
            console.log(JSON.stringify(fatalError))
        }
    },
}

it gets to the client.channels.get("01H8A1BFF1F2Q2AT6629WC6A4Q").sendMessage(`${killers.random()}${weepons.random()}${message.args[0]}`) part before crashing
pls help

I've already explained my findings inside the Revolt server, but in summary:

A member leaves the server the bot is currently in
The client receives both ServerMemberLeave and ServerDelete
Since ServerDelete was received, the client deletes the server and it's channels from their respective collections
Then, when another member sends a message in one of those deleted channels, it attempts to update the channel's lastMessageId property
Since that channel does not exist, the code throws an unhandled exception and aborts

This is the code that deletes the channels.
My suggestion to this issue, for the time being, is commenting out this piece of code until ServerDelete can tell the client that the event is a leave or a delete on the client's end.

Does "client receives" imply the bot is receiving the ServerDelete for the member?
I was noticing some strange behaviour with member leaves, this might be a backend bug.


Adding a page to "Advanced topics" menu for process managers

Comparing PM2, Forever, and StrongLoop PM per #377.
@altsang

The PM2 part says you need to start with
pm2 app.js
which should be
pm2 bin/www
per express4.

Actually, it says pm2 start app.js but your suggestion might be preferable.
But I think that command presumes that you've created the app with the standard layout as the express-generator.
As I look at the other sections, they are not consistent.  Thoughts @dougwilson ?

Can't quite remember how i started it, but i think it was through the generator.

I agree adding some more context in that page makes sense.
I just tested it, andpm2 start app.js does work if you create the app manually following instructions in Installing and Hello World.  Admittedly, that might not be "best practice" but it does work.
Also pm2 start app.js is the command shown in the pm2 instructions at https://github.com/Unitech/pm2.

Sorry, forgot to reply here :) The issue woupd be how detailed this should be, which is a balancing act. Both are correct: bin/www is for the generator and app.js for thr single file hello world.

Thanks... My preference would be to just add a short note in each section stating that the example command (e.g. pm2 start app.js) is for a simple app whereapp.js is the main script and if the app is creatd w generator, you would use a different command.
Created #852 to track this.

Thanks for picking this up guys, this is encouraging for users like me  to mention fixes like these instead of keeping the fix for themselfs and let others suffer :)


Volume level seems non-uniform.

Is it already controlling dB, or does it linearly scale with sound pressure? The latter would explain the perceived lack of uniformity.
Moved from https://github.com/ppy/osu/issues/58

It does look like Bass is already using a linear curve by default, strangely enough...
http://www.bass.radio42.com/help/html/41bfc849-f9b4-39fa-8a27-5ac480e882b8.htm

Well, a linear (sound pressure) curve is bad. We want logarithmic (i.e. dB scale), since a logarithmic sound pressure scale is perceptually linear to humans.
Just like we use a non-linear brightness scale (e.g. sRGB) to obtain perceptually linear brightnesses in colours.

as per discussion on discord, it is already linear perceptual as per documentation. likely just a disagreeable curve


ignored macros #ifdef

When I tried to compile project for  Digispark (Attiny85) it fails with errors about not defined SPI registers. It is true, Attiny85 does not have SPI, but somehow platformio decides took it and create folder SPI in .pioenvs
I found why this happens ( but it must not happen ! ) . The bug that there is some includes of SPI.h but they are not active (paced in #ifdef section). Platformio includes all that can be found also if it actually not included after processing macros. Temporary solved by manually deleting of all includes of SPI.h and only then project was compiled.
Here is defined RH_PLATFORM_ATTINY and no SPI definitions must be included, but platformio thinks in different way. (Forgive me I'm saying Platformio, for end-user it is like Platformio bug)
RadioHead.h

#ifndef RadioHead_h
#define RadioHead_h

// Official version numbers are maintained automatically by Makefile:
#define RH_VERSION_MAJOR 1
#define RH_VERSION_MINOR 61

// Symbolic names for currently supported platform types
#define RH_PLATFORM_ARDUINO          1
#define RH_PLATFORM_MSP430           2
#define RH_PLATFORM_STM32            3
#define RH_PLATFORM_GENERIC_AVR8     4
#define RH_PLATFORM_UNO32            5
#define RH_PLATFORM_UNIX             6
#define RH_PLATFORM_STM32STD         7
#define RH_PLATFORM_STM32F4_HAL      8
#define RH_PLATFORM_RASPI            9
#define RH_PLATFORM_NRF51            10
#define RH_PLATFORM_ESP8266          11
#define RH_PLATFORM_STM32F2          12
#define RH_PLATFORM_CHIPKIT_CORE     13

////////////////////////////////////////////////////
// Select platform automatically, if possible
#ifndef RH_PLATFORM
 #if (MPIDE>=150 && defined(ARDUINO))
  // Using ChipKIT Core on Arduino IDE
  #define RH_PLATFORM RH_PLATFORM_CHIPKIT_CORE
 #elif defined(MPIDE)
  // Uno32 under old MPIDE, which has been discontinued:
  #define RH_PLATFORM RH_PLATFORM_UNO32
 #elif defined(NRF51)
  #define RH_PLATFORM RH_PLATFORM_NRF51
 #elif defined(ESP8266)
  #define RH_PLATFORM RH_PLATFORM_ESP8266
 #elif defined(ARDUINO)
  #define RH_PLATFORM RH_PLATFORM_ARDUINO
 #elif defined(__MSP430G2452__) || defined(__MSP430G2553__)
  #define RH_PLATFORM RH_PLATFORM_MSP430
 #elif defined(MCU_STM32F103RE)
  #define RH_PLATFORM RH_PLATFORM_STM32
 #elif defined(STM32F2XX)
  #define RH_PLATFORM RH_PLATFORM_STM32F2
 #elif defined(USE_STDPERIPH_DRIVER)
  #define RH_PLATFORM RH_PLATFORM_STM32STD
 #elif defined(RASPBERRY_PI)
  #define RH_PLATFORM RH_PLATFORM_RASPI
#elif defined(__unix__) // Linux
  #define RH_PLATFORM RH_PLATFORM_UNIX
#elif defined(__APPLE__) // OSX
  #define RH_PLATFORM RH_PLATFORM_UNIX
 #else
  #error Platform not defined!
 #endif
#endif

#if defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny85__) || defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtinyX4__) || defined(__AVR_ATtinyX5__) || defined(__AVR_ATtiny2313__) || defined(__AVR_ATtiny4313__) || defined(__AVR_ATtinyX313__)
 #define RH_PLATFORM_ATTINY
#endif

////////////////////////////////////////////////////
// Platform specific headers:
#if (RH_PLATFORM == RH_PLATFORM_ARDUINO)
 #if (ARDUINO >= 100)
  #include <Arduino.h>
 #else
  #include <wiring.h>
 #endif
 #ifdef RH_PLATFORM_ATTINY
  #warning Arduino TinyCore does not support hardware SPI. Use software SPI instead.
 #else
  #include <SPI.h>
  #define RH_HAVE_HARDWARE_SPI
  #define RH_HAVE_SERIAL
 #endif

#elif (RH_PLATFORM == RH_PLATFORM_ESP8266) // ESP8266 processor on Arduino IDE
 #include <Arduino.h>
 #include <SPI.h>
 #define RH_HAVE_HARDWARE_SPI
 #define RH_HAVE_SERIAL
#elif (RH_PLATFORM == RH_PLATFORM_MSP430) // LaunchPad specific
 #include "legacymsp430.h"
 #include "Energia.h"
 #include <SPI.h>
 #define RH_HAVE_HARDWARE_SPI
 #define RH_HAVE_SERIAL

#elif (RH_PLATFORM == RH_PLATFORM_UNO32 || RH_PLATFORM == RH_PLATFORM_CHIPKIT_CORE)
 #include <WProgram.h>
 #include <string.h>
 #include <SPI.h>
 #define RH_HAVE_HARDWARE_SPI
 #define memcpy_P memcpy
 #define RH_HAVE_SERIAL

#elif (RH_PLATFORM == RH_PLATFORM_STM32) // Maple, Flymaple etc
 #include <wirish.h>
 #include <stdint.h>
 #include <string.h>
 #include <HardwareSPI.h>
 #define RH_HAVE_HARDWARE_SPI
 // Defines which timer to use on Maple
 #define MAPLE_TIMER 1
 #define PROGMEM
 #define memcpy_P memcpy
 #define Serial SerialUSB
 #define RH_HAVE_SERIAL

#elif (RH_PLATFORM == RH_PLATFORM_STM32F2) // Particle Photon with firmware-develop
 #include <stm32f2xx.h>
 #include <application.h>
 #include <math.h> // floor
 #define RH_HAVE_SERIAL
 #define RH_HAVE_HARDWARE_SPI

#elif (RH_PLATFORM == RH_PLATFORM_STM32STD) // STM32 with STM32F4xx_StdPeriph_Driver
 #include <stm32f4xx.h>
 #include <wirish.h>
 #include <stdint.h>
 #include <string.h>
 #include <math.h>
 #include <HardwareSPI.h>
 #define RH_HAVE_HARDWARE_SPI
 #define Serial SerialUSB
 #define RH_HAVE_SERIAL

#elif (RH_PLATFORM == RH_PLATFORM_GENERIC_AVR8)
 #include <avr/io.h>
 #include <avr/interrupt.h>
 #include <util/delay.h>
 #include <string.h>
 #include <stdbool.h>
 #define RH_HAVE_HARDWARE_SPI
 #include <SPI.h>

// For Steve Childress port to ARM M4 w/CMSIS with STM's Hardware Abstraction lib.
// See ArduinoWorkarounds.h (not supplied)
#elif (RH_PLATFORM == RH_PLATFORM_STM32F4_HAL)
 #include <ArduinoWorkarounds.h>
 #include <stm32f4xx.h> // Also using ST's CubeMX to generate I/O and CPU setup source code for IAR/EWARM, not GCC ARM.
 #include <stdint.h>
 #include <string.h>
 #include <math.h>
 #define RH_HAVE_HARDWARE_SPI // using HAL (Hardware Abstraction Libraries from ST along with CMSIS, not arduino libs or pins concept.

#elif (RH_PLATFORM == RH_PLATFORM_RASPI)
 #define RH_HAVE_HARDWARE_SPI
 #define RH_HAVE_SERIAL
 #define PROGMEM
 #include <RHutil/RasPi.h>
 #include <string.h>
 //Define SS for CS0 or pin 24
 #define SS 8

#elif (RH_PLATFORM == RH_PLATFORM_NRF51)
 #define RH_HAVE_SERIAL
 #define PROGMEM
  #include <Arduino.h>

#elif (RH_PLATFORM == RH_PLATFORM_UNIX)
 // Simulate the sketch on Linux and OSX
 #include <RHutil/simulator.h>
 #define RH_HAVE_SERIAL
#include <netinet/in.h> // For htons and friends

#else
 #error Platform unknown!
#endif

////////////////////////////////////////////////////
// This is an attempt to make a portable atomic block
#if (RH_PLATFORM == RH_PLATFORM_ARDUINO)
#if defined(__arm__)
  #include <RHutil/atomic.h>
 #else
  #include <util/atomic.h>
 #endif
 #define ATOMIC_BLOCK_START     ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
 #define ATOMIC_BLOCK_END }
#elif (RH_PLATFORM == RH_PLATFORM_CHIPKIT_CORE)
 // UsingChipKIT Core on Arduino IDE
 #define ATOMIC_BLOCK_START unsigned int __status = disableInterrupts(); {
 #define ATOMIC_BLOCK_END } restoreInterrupts(__status);
#elif (RH_PLATFORM == RH_PLATFORM_UNO32)
 // Under old MPIDE, which has been discontinued:
 #include <peripheral/int.h>
 #define ATOMIC_BLOCK_START unsigned int __status = INTDisableInterrupts(); {
 #define ATOMIC_BLOCK_END } INTRestoreInterrupts(__status);
#elif (RH_PLATFORM == RH_PLATFORM_STM32F2) // Particle Photon with firmware-develop
 #define ATOMIC_BLOCK_START { int __prev = HAL_disable_irq();
 #define ATOMIC_BLOCK_END  HAL_enable_irq(__prev); }
#elif (RH_PLATFORM == RH_PLATFORM_ESP8266)
// See hardware/esp8266/2.0.0/cores/esp8266/Arduino.h
 #define ATOMIC_BLOCK_START { uint32_t __savedPS = xt_rsil(15);
 #define ATOMIC_BLOCK_END xt_wsr_ps(__savedPS);}
#else
 // TO BE DONE:
 #define ATOMIC_BLOCK_START
 #define ATOMIC_BLOCK_END
#endif

////////////////////////////////////////////////////
// Try to be compatible with systems that support yield() and multitasking
// instead of spin-loops
// Recent Arduino IDE or Teensy 3 has yield()
#if (RH_PLATFORM == RH_PLATFORM_ARDUINO && ARDUINO >= 155 && !defined(RH_PLATFORM_ATTINY)) || (TEENSYDUINO && defined(__MK20DX128__))
 #define YIELD yield();
#elif (RH_PLATFORM == RH_PLATFORM_ESP8266)
// ESP8266 also hash it
 #define YIELD yield();
#else
 #define YIELD
#endif

////////////////////////////////////////////////////
// digitalPinToInterrupt is not available prior to Arduino 1.5.6 and 1.0.6
// See http://arduino.cc/en/Reference/attachInterrupt
#ifndef NOT_AN_INTERRUPT
 #define NOT_AN_INTERRUPT -1
#endif
#ifndef digitalPinToInterrupt
 #if (RH_PLATFORM == RH_PLATFORM_ARDUINO) && !defined(__arm__)

  #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
   // Arduino Mega, Mega ADK, Mega Pro
   // 2->0, 3->1, 21->2, 20->3, 19->4, 18->5
   #define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : ((p) >= 18 && (p) <= 21 ? 23 - (p) : NOT_AN_INTERRUPT)))

  #elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)
   // Arduino 1284 and 1284P - See Manicbug and Optiboot
   // 10->0, 11->1, 2->2
   #define digitalPinToInterrupt(p) ((p) == 10 ? 0 : ((p) == 11 ? 1 : ((p) == 2 ? 2 : NOT_AN_INTERRUPT)))

  #elif defined(__AVR_ATmega32U4__)
   // Leonardo, Yun, Micro, Pro Micro, Flora, Esplora
   // 3->0, 2->1, 0->2, 1->3, 7->4
   #define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT)))))

  #else
   // All other arduino except Due:
   // Serial Arduino, Extreme, NG, BT, Uno, Diecimila, Duemilanove, Nano, Menta, Pro, Mini 04, Fio, LilyPad, Ethernet etc
   // 2->0, 3->1
   #define digitalPinToInterrupt(p)  ((p) == 2 ? 0 : ((p) == 3 ? 1 : NOT_AN_INTERRUPT))

  #endif

 #elif (RH_PLATFORM == RH_PLATFORM_UNO32) || (RH_PLATFORM == RH_PLATFORM_CHIPKIT_CORE)
  // Hmmm, this is correct for Uno32, but what about other boards on ChipKIT Core?
  #define digitalPinToInterrupt(p) ((p) == 38 ? 0 : ((p) == 2 ? 1 : ((p) == 7 ? 2 : ((p) == 8 ? 3 : ((p) == 735 ? 4 : NOT_AN_INTERRUPT)))))

 #else
  // Everything else (including Due and Teensy) interrupt number the same as the interrupt pin number
  #define digitalPinToInterrupt(p) (p)
 #endif
#endif

// On some platforms, attachInterrupt() takes a pin number, not an interrupt number
#if (RH_PLATFORM == RH_PLATFORM_ARDUINO) && defined (__arm__) && (defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_SAM_DUE))
 #define RH_ATTACHINTERRUPT_TAKES_PIN_NUMBER
#endif

// Slave select pin, some platforms such as ATTiny do not define it.
#ifndef SS
 #define SS 10
#endif

// These defs cause trouble on some versions of Arduino
#undef abs
#undef round
#undef double

// Sigh: there is no widespread adoption of htons and friends in the base code, only in some WiFi headers etc
// that have a lot of excess baggage
#if RH_PLATFORM != RH_PLATFORM_UNIX && !defined(htons)
// #ifndef htons
// These predefined macros availble on modern GCC compilers
 #if   __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
  // Atmel processors
  #define htons(x) ( ((x)<<8) | (((x)>>8)&0xFF) )
  #define ntohs(x) htons(x)
  #define htonl(x) ( ((x)<<24 & 0xFF000000UL) | \
                   ((x)<< 8 & 0x00FF0000UL) | \
                   ((x)>> 8 & 0x0000FF00UL) | \
                   ((x)>>24 & 0x000000FFUL) )
  #define ntohl(x) htonl(x)

 #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
  // Others
  #define htons(x) (x)
  #define ntohs(x) (x)
  #define htonl(x) (x)
  #define ntohl(x) (x)

 #else
  #error "Dont know how to define htons and friends for this processor"
 #endif
#endif

// This is the address that indicates a broadcast
#define RH_BROADCAST_ADDRESS 0xff

#endif

How do you set RH_PLATFORM macro? Could you try lib_ignore option in platformio.ini?
[env:myenv]
platfrorm =..
lib_ignore = SPI

Hi,
Thank you for quick replay.
In the file RadioHead.h (attached to my initial message) there several lines:
#if defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny85__) || defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtinyX4__) || defined(__AVR_ATtinyX5__) || defined(__AVR_ATtiny2313__) || defined(__AVR_ATtiny4313__) || defined(__AVR_ATtinyX313__)  #define RH_PLATFORM_ATTINY #endif
and the platform.ini is as follow :
[env:digispark-tiny] platform = atmelavr framework = arduino board = digispark-tiny
Adding lib_ignore = SPI solves the problem, but I still can't understand the source of the problem (I spent a lot of hours to figure the problem) and if it is safe to use Platformio for next projects.

Could you define manually RH_PLATFORM_ATTINY?
[env:...]
build_flags = -DRH_PLATFORM_ATTINY

I'll explain later all details...

If I remove lib_ignore = SPI and add this
[env:digispark-tiny]
build_flags = -DRH_PLATFORM_ATTINY

compilation fails with same error as initially (not defined SPI). However RadioHead.h has warnings in case if RH_PLATFORM_ATTINY is defined and these warnings are visible, so everything is ok, RH_PLATFORM_ATTINY is defined.
 #ifdef RH_PLATFORM_ATTINY
  #warning Arduino TinyCore does not support hardware SPI. Use software SPI instead.
 #else
  #include <SPI.h>
  #define RH_HAVE_HARDWARE_SPI
  #define RH_HAVE_SERIAL
 #endif

But as I mentioned at the beginning, the SPI is included and compilation fails.

Please try pio run -t clean and rebuild in verbose mode using pio run -v. Do you this macro in CLI?
Ok, let's em explain details. We introduced Library Dependency Finder (LDF) in PlatformIO 3.0. The role of this machinery is to automatically find project dependencies. LDF analyzes #include from source files and builds internal dependency map "on-the-fly". If you don't like it, you can turn-off this feature. See Dependency Finder Mode.
In 99% LDF works awesome!!! Super fast and reliable. Why is it cool? Because it doesn't depend on external GCC tools. We don't call gcc -E to fetch dependency for the one file. For example, Arduino IDE does it. This is expensive operation... Arduino IDE can use gcc -E because it doesn't provide project management and normal library/dependency manager. In the most case, newbies use 1 file(sketch) as a project... PlatformIO developers have big projects with dozens of files and dozens of library dependencies. Using gcc -E will increase build process in 10x time... Currently, PlatformIO Build System is No.1 in comparison with Arduino IDE, Make or CMake 3-rd party build systems for embedded. PlatformIO needs 1-3sec to build the whole project with the framework, where others need 15 sec and more for the same project.
Of course, this super optimization has a side effect. As I've told before, we don't call gcc -E per each file and use Python implementation that interprets (emulates) C/C++ Preprocessor conditional syntax (#ifdef, if, defined, else, and elif). The issue here, that we don't know about internal(built-in)  macros in compiler. These macors such as __AVR_ATtinyX313__ and etc are not visible for our Python-based build system. The solution here is to hint our build system about internal macros.
Finally, as LDF doesn't see __AVR_ATtiny84__ and etc, the RH_PLATFORM_ATTINY is not defined on the pre-processing stage. That is why LDF sees  #include <SPI.h>.
P.S: Try to define some marcos in platformio.ini and check in project source files. In this case, LDF will work correctly.

Thank you very much, this clearly explains the behavior I was stuck with.


Improve validation for gateway types

Please provide a description of this PR:

In response to a cherrypick label: new pull request created: #36197


fix: expose instant param for decreaseOperatorStake function arg type

:tada: This PR is included in version 2.7.0-alpha.5 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Issues with YouTube history

Hi, from the last few months I figured some issue with YouTube history and several others users too faced. When we use ur host in adaway fully updated to latest, the yt history will not work. When we disable and use the rest host sources provided by adaway by default, it starts to work.
Even whitelisting the *s.youtube.com doesn't work when we use ur host source.
Can you fix this issue if possible.

yes, i've just bumped into this one as well. Thanks for looking into it!

Yeah, I was having this issue and followed the upstream to here.

Has anyone solved this problem？

whitelist s.youtube.com

whitelist s.youtube.com

Solved it, thanks

Whitelisting doesn't fix it. Only disabling stevenblack does

i removed the s.youtube.com domain from the host list
works fine

Whitelisting doesn't fix it. Only disabling stevenblack does

Hallo! When you say "whitelisting", what do you exactly do? I simply removed (deleted) the s.youtube.com line, and theYoutube history then works.

Whitelisting doesn't fix it. Only disabling stevenblack does

Hallo! When you say "whitelisting", what do you exactly do? I simply removed (deleted) the s.youtube.com line, and theYoutube history then works.

Ok it had been long time since I used host source of stevenblack. Earlier there was an issue where allowing "s.youtube.com" doesn't use to work even trying with *. And disabling the source(removing from active sources) helps.
So just now after u replied to this thread, I tried it and after whitelisting with active stevenblack source, it worked.(Not without whitelisting)
So it's still somewhat an issue with this source but I am fine with what we are getting. If dev of this source can fix it so that we don't need to whitelist the url manually, that would be much appreciated. I am closing this issue for now.

Hi sir, we know that we can fix it by whitelisting the URL. but can't something be done to fix such an issue without needing to whitelist?


Fetch osgi sources from a new repository, use version <IP_ADDRESS>

Please elaborate what is the motivation for this change?

When searching for the URL specified in .properties files I found that the address is not searchable and does not provide a directory view over the released versions.
Then I found the upstream project repositories. I am myself not a fan of their ways (bundling jars, huge repo, the file structure). But I thought that this will be a stable repo for their subsequent updates.
However, it looks like we could work with jar obtained from maven central as well. They are mentioned here https://projects.eclipse.org/projects/technology.osgi

After a discussion, I don't see this as a necessary change nor a useful a one.


Add HEEx ftplugin

Sets basic stuff like the comment string and the tab settings.

i'll include it, thanks.  Setting and restoring 'cpo' is not really needed in this case.

@brammool really sorry about this, but I made a couple of mistakes here.
commentstring should be set commentstring=<%!--\ %s\ --%>
comments should be set comments=:<%!-- (I'm not actually sure if that : needs to be there for comments).
This comment syntax was added in Elixir 1.14, which was released very recently, and should be used moving forward.
Thanks, and sorry about that.

@brammool really sorry about this, but I made a couple of mistakes here.
commentstring should be set commentstring=<%!--\ %s\ --%>
comments should be set comments=:<%!-- (I'm not actually sure if that : needs to be there for comments).
This comment syntax was added in Elixir 1.14, which was released very
recently, and should be used moving forward.
Thanks, and sorry about that.

Thus the comment style mentioned here is no longer used anywhere:
	<%# This is a comment. %>

Seems like a drastic change.
Adding the undo variable, I end up with this:

setlocal shiftwidth=2 softtabstop=2 expandtab

setlocal comments=:<%!--
setlocal commentstring=<%!--\ %s\ --%>

let b:undo_ftplugin = 'set sw< sts< et< com< cms<'

--
hundred-and-one symptoms of being an internet addict:
119. You are reading a book and look for the scroll bar to get to
the next page.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


[PayPal] Render the Smart Payment Buttons

Regardless of where the PayPal component is stored, it should be using a Smart PayPal buttons under the hood.
details: https://developer.paypal.com/docs/checkout/integrate
Acceptance criteria:
[ ] - paypal.Buttons().render() is being used to show the payment buttons.
[ ] - buttons are shown properly on mobile as well as on the desktop.
[ ] - there are two callbacks within the paypal.Buttons hook registred with no logic inside: createOrder and onApprove that will be used to communicate with API in order to receive or send fragile data.

smart buttons are no longer needed due to new assumptions from #679