OPENSSL_VERSION_TEXT no longer a proper string

For as long as anyone cares to remember, the OPENSSL_VERSION_TEXT macro has been defined as a single string:
    #define OPENSSL_VERSION_TEXT    "OpenSSL 1.1.1  11 Sep 2018"

From 3.0.0, this is redefined as four separate elements:
    #define OPENSSL_VERSION_TEXT        \
        "OpenSSL " OPENSSL_FULL_VERSION_STR " " OPENSSL_RELEASE_DATE

This introduces compilation errors if OPENSSL_VERSION_TEXT is used in a context where a single string is expected.
Attempting to coerse OPENSSL_VERSION_TEXT into a single string using OPENSSL_MSTR produces a result with embedded "s resulting from premature evaluation.
    \"OpenSSL \"\"3\" \".\"\"0\" \".\"\"0\"\"-dev\"\"\" \" \"\"xx XXX xxxx\"

The following code produces something close to the pre-3.0.0 OPENSSL_VERSION_TEXT:
    #define OPENSSL_VERSION_PRE_RELEASE     -dev            /* NOT within quotes */
    #define OPENSSL_RELEASE_DATE    xx XXX xxxx             /* NOT within quotes */
    #undef OPENSSL_BUILD_METADATA                           /* NOT within quotes */

    #ifdef OPENSSL_VERSION_PRE_RELEASE
    # define _OPENSSL_PRE_RELEASE   OPENSSL_VERSION_PRE_RELEASE
    #else
    # define _OPENSSL_PRE_RELEASE
    #endif

    #ifdef OPENSSL_BUILD_METADATA
    # define _OPENSSL_BUILD_METADATA        OPENSSL_BUILD_METADATA
    #else
    # define _OPENSSL_BUILD_METADATA
    #endif

    #define _SPACE  _

    #define OPENSSL_VERSION_TEXT    OPENSSL_MSTR( OpenSSL _SPACE    \
            OPENSSL_VERSION_MAJOR.OPENSSL_VERSION_MINOR.OPENSSL_VERSION_PATCH       \
            _OPENSSL_PRE_RELEASE _OPENSSL_BUILD_METADATA _SPACE OPENSSL_RELEASE_DATE )

Devising a satisfactory definition of the _SPACE macro (inserting white space) is left as an exercise for the student.

Exactly what are you trying to do? Due to string concatenation, which any C compiler should do, I fully expect OPENSSL_VERSION_TEXT to be interpreted as a single string indeed.

This recycles the result of an investigation which involved #include file names assembled from #define arguments and encountered similar issues.
The following assumes that the goal is to provide a new OPENSSL_VERSION_TEXT,  incorporating the new OPENSSL_VERSION_* macros, but otherwise in the same form as previous versions.
In order to know for certain that the result is acceptable, the #include directive can be (ab)used to demonstrate that it consists of exactly one proper string.
#define BAD text
#include BAD
explore.c:10:10: error: #include expects "BAD" or <BAD>
   10 | #include BAD
      |          ^~~

which can be stringified using the existing OPENSSL_MSTR macro:
#define BAD text
#define GOOD    OPENSSL_MSTR(BAD)
#include GOOD
explore.c:11:10: fatal error: text: No such file or directory
   11 | #include GOOD
      |          ^~~~

All that then remains is to construct the pre-stringified token sequence.
Note: Quoted strings will be inserted verbatim, complete with enclosing quotes.
#define OPENSSL_VERSION_PRE_RELEASE     -dev
#define OPENSSL_VERSION_BUILD_METADATA  vendor stuff
#define OPENSSL_RELEASE_DATE            xx XXX xxxx

#define OPENSSL_GLUE(x) x               /* glue argument to following token */

#define _OPENSSL_VERSION  OPENSSL_VERSION_MAJOR.OPENSSL_VERSION_MINOR.OPENSSL_VERSION_PATCH

#define OPENSSL_VERSION_TEXT \
        OPENSSL_MSTR(OpenSSL OPENSSL_GLUE(_OPENSSL_VERSION)OPENSSL_PRE_RELEASE \
        OPENSSL_BUILD_METADATA OPENSSL_RELEASE_DATE)

Some practical details have been glossed over in the interests of clarity.
A fully worked patch is attached for your consideration.
opensslv.h-patch.gz

While it is legal C, using macro expansion as part of a #include directive is pretty ugly.

C has nothing at all to do with this.
Macro expansion, #define and #include directives are features of cpp.

C has nothing at all to do with this.

I disagree: string concatenation happens by the compiler after macro expansion

First, at translation phase 6 (after macro expansion), the adjacent string literals (that is, string literals separated by whitespace only) are concatenated.

(see https://en.cppreference.com/w/c/language/string_literal)

Macro expansion, #define and #include directives are features of cpp.

In this case you are right, and that's very likely the reason why your #include hack does not work, because after macro expansion (and before the C compiler concatenates it), OPENSSL_VERSION_TEXT consists indeed of several literal strings.
But who cares? Is there any practical use case for expanding OPENSSL_VERSION_TEXT inside an #include directive?

As for #include directives using macro expansion: those are called 'computed includes' and there is some limited use for them, see the gcc preprocessor documentation. But the essential part is that the macros must expand to one of the following two valid forms for include directives
	#include <some/header.h>
	#include "another/header.h"

and something like the following is not allowed:
	#include "another"  "/" "header.h"

(See also http://herbert.the-little-red-haired-girl.org/html/gcc/cpp_1.html#SEC6)

That misses the point.
It is explicitly stated in my post, that #include was being abused as a tool to determine if the macro definition cobbled together from the five already defined components consists of a single string.
I am using one part of cpp to verify the actions of my macro definitions, knowing that cpp will eventually be called upon to expand these same macros and deliver something that looks like a string.

OpenSSL moved away from using define's in include statements; this was done when #9204 was merged and I am sure that the team doesn't want to go back there. :)
It seems that you are trying to use version-dependent headers in your application, but you never clearly answered the question at https://github.com/openssl/openssl/issues/9489#issuecomment-516720522.
The macro OPENSSL_VERSION_STRING continues to remain a valid C string. It was never intended to be a pre-processor string, if that is what you are trying to do.

I'm still confused about the actual practical impact/complaint here.

This introduces compilation errors if OPENSSL_VERSION_TEXT is used in a context where a single string is expected.

is just a conditional statement without any evidence that the condition is ever met in practice.
To phrase it differently, there are a lot of places in openssl where people have assumed that historical behavior would continue into the future, even when that was a bad idea and caused problems for both the maintainers and the consumers making those assumptions.  (Consider the move to opaque structures as a move out of such a situation.)  Why should this particular historical behavior be promoted to an invariant?

That misses the point.

No it doesn't. You are missing it. Do you intend to start an academic discussion, or are you actually reporting a bug? We asked you that several times, and we still did not get an answer from you.

I will echo the sentiment by asking: why is it important for that macro to end up being a single string in cpp?
If we have an understanding, I'm not saying we will change its current nature, but might be able to advise better mechanisms to do what you're trying to do.
(unless this is just an academic discussion, in which case I personally find it moot, and reason for closing this issue immediately)

C has nothing at all to do with this.

It does.  The C standard defines how cpp works as well.  Macro expansion does occur in #include directives under some circumstances.  Thus:
#define S <stdio.h>
#include S

is defined to work.

The outcome is including a file based on the version number.  It seems, to me, that a series of #if directives would be as good or better than using #include this way.  E.g. slightly difference versions could share an include...

The string is now "OpenSSL 1.1.1c  28 May 2019". This does not
look like something you want to use in an include.
The new define is still a string for the compiler. cpp does not
even have a concept of strings. (The # operator turns it into a
string for the compiler, not for cpp.)
I suggest we just close this.

@kroeckx I concur.


[DebugInfo] Remove REQUIRES from test now that the issue is fixed.

Thanks to Slava for taking care of the XFAIL in the meanwhile.

@swift-ci please test and merge

The full test PR run should also run the simulator bits so we should be safe if this passes.


Add new commands

There are quite a few commands that are missing, can we add them, disableTelemetry in particular. I have a Cadillac Lyriq and can help debugging things. The Android app is an absolute trash so this HA addon is very handy.
{
    "description": "Enrolls a vehicle in telemetry.",
    "name": "enableTelemetry",
    "url": "https://api.gm.com/api/v1/account/vehicles/VIN/commands/enableTelemetry"
},
{
    "description": "Unenrolls a vehicle from telemetry..",
    "name": "disableTelemetry",
    "url": "https://api.gm.com/api/v1/account/vehicles/VIN/commands/disableTelemetry"
},
{
    "description": "Disables the hotspot on your vehicle",
    "name": "disableHotspot",
    "url": "https://api.gm.com/api/v1/account/vehicles/VIN/hotspot/commands/disable"
},
{
    "description": "Enables the hotspot on your vehicle",
    "name": "enableHotspot",
    "url": "https://api.gm.com/api/v1/account/vehicles/VIN/hotspot/commands/enable"
},
{
    "description": "Fetches hotspot information on your vehicle",
    "name": "getHotspotInfo",
    "url": "https://api.gm.com/api/v1/account/vehicles/VIN/hotspot/commands/getHotspotInfo"
},
{
    "description": "Fetches hotspot status information on your vehicle",
    "name": "getHotspotStatus",
    "url": "https://api.gm.com/api/v1/account/vehicles/VIN/hotspot/commands/getHotspotStatus"
},
{
    "description": "Set hotspot information on your vehicle",
    "name": "setHotspotInfo",
    "url": "https://api.gm.com/api/v1/account/vehicles/VIN/hotspot/commands/setHotspotInfo"
}

I'll check your Node-RED module. Why don't you want to make the commands available in the HA interface like switches and buttons, instead of creating the scripts?

The GM API for telemetry commands returns a 404 error, I guess it's not available to general public.


[KeyVault] Fix #11871: AKV10032: Invalid issuer error for operations in nondefault tenant/subscription

Description

Fix #11871
Previously, CX can't succeed to manage keyvault resources in nondefault tenant/subscription because KeyVault Data Plane Client Factory's KeyvaultAuthentication didn't honor --subscription parameter, it will always use the access token from the login subscription.
Testing Guide

First of all, login to SUB_A:
> az login
> az account set -s SUB_A

Try to list keyvault secrets in SUB_B:
Before
> az keyvault secret list --vault-name ystestkv --subscription "1c638cf4-608f-4ee6-b680-c329e824c3a8"
AKV10032: Invalid issuer. Expected one of https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/, https://sts.windows.net/f8cdef31-a31e-4b4a-93e4-5f571e91255a/, https://sts.windows.net/e2d54eb5-3869-4f70-8578-dee5fc7331f4/, https://sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/, https://sts.windows.net/975f013f-7f24-47e8-a7d3-abc4752bf346/, found https://sts.windows.net/54826b22-38d6-4fb2-bad9-b7b93a3e9c5a/.

After
> az keyvault secret list --vault-name ystestkv --subscription "1c638cf4-608f-4ee6-b680-c329e824c3a8"
[
  {
    "attributes": {
      "created": "2021-05-19T04:00:07+00:00",
      "enabled": true,
      "expires": null,
      "notBefore": null,
      "recoveryLevel": "Recoverable+Purgeable",
      "updated": "2021-05-19T04:00:07+00:00"
    },
    "contentType": null,
    "id": "https://ystestkv.vault.azure.net/secrets/testsecret",
    "managed": null,
    "name": "testsecret",
    "tags": null
  }
]

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

KeyVault

The correct/ultimate way to solve this issue is to honor the challenge:
GET https://cli-sni-kv.vault.azure.net/keys?api-version=7.0

401
www-authenticate: Bearer authorization="https://login.windows.net/54826b22-38d6-4fb2-bad9-b7b93a3e9c5a", resource="https://vault.azure.net"

{"error":{"code":"Unauthorized","message":"Request is missing a Bearer or PoP token."}}

CLI/SDK should be smart enough to get an access token for tenant ID 54826b22-38d6-4fb2-bad9-b7b93a3e9c5a provided by the challenge.
The fix proposed in this PR will force the necessity of --subscription which is actually not necessary.

CLI/SDK should be smart enough to get an access token for tenant ID 54826b22-38d6-4fb2-bad9-b7b93a3e9c5a provided by the challenge.

That's exactly what I want but sad story is with current structure SDK can't make it whether it's track1 or track2

The fix proposed in this PR will force the necessity of --subscription which is actually not necessary.

So to unblock customers(Actually the complaint is quite heavy), this PR aims to make it work when --subscription is provided manually.


[BUG] < Mobile Navbar Display Issue - Needs Fixing >

Description
I've encountered an issue with the mobile navbar display on the website/web app. While I'm not experienced with TypeScript, I wanted to report this issue and seek guidance from the community on how to fix it. The navbar(hamburger menu and close button) appears to not be displayed properly on mobile devices, and I'm not sure where to start with troubleshooting. I would appreciate any assistance or pointers on resolving this issue.
Screenshots

Additional information
No response
🥦 Browser
Safari
👀 Have you checked if this issue has been raised before?

[X] I checked and didn't find a similar issue

🏢 Have you read the Contributing Guidelines?

[X] I have read and understood the rules in the Contributing Guidelines

Are you willing to work on this issue?
None

safari is shit, so I'm guessing this is a iPhone only problem lol, i don't know how it can be fixed either, will let someone else take it

safari is shit, so I'm guessing this is a iPhone only problem lol, i don't know how it can be fixed either, will let someone else take it

Hey @Dun-sin , can you please assign this issue to me?

Hey @Dun-sin , can you please assign this issue to me?

Do you know what this issue is about?

Can I work on this?


Add the protobuf message and the selector API

Summary
Define the protobuf API for selectors - Creates a new protobuf message SelectorEntity that represents a set of attributes for a typed entity to be used in profile selectors.
At the moment, onyl SelectorRepository and SelectorArtifact are used and implemented. Additionally, the key-value store is not implemented either as it requires a new set of provider interfaces to fill this store.
Add the selector evalautor - Adds a new module called selectors that initializes CEL environments and evaluates selector
Fixes #3757
Change Type
Mark the type of change your PR introduces:

[ ] Bug fix (resolves an issue without affecting existing features)
[x] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[ ] Refactoring or test improvements (no bug fixes or new functionality)

Testing
there are unit tests included. I also cherry-pick these from a larger branch that takes this code into account
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[x] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[x] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 52.505% (+0.3%) from 52.204%
when pulling 2aeb88c7ac56e19749352bda9dc79cb69b267d16 on jhrozek:selectors_api
into 6274fe5c2dbfc85a35122fc39f7bd424ad6f99c5 on stacklok:main.

thanks for the reviews @evankanderson @blkt . I'm going to resolve the comments that I think are resolved (but feel free to unresolve if you don't think they are fully addressed) and I'm going to comments on parts of the code where I'm unsure that I'm going in the right direction.

coverage: 53.257% (+0.2%) from 53.077%
when pulling 35e207a748d5e1239c9e1cbee2c917e2476778cb on jhrozek:selectors_api
into 9877dba1b0602c4bb38f1ed407b0e67740a20663 on stacklok:main.

@dmjb I'd appreciate your thoughts here as well, you usually have a good direction on how to split the interfaces nicely.

It would help me a bit to see (in a comment) what this looks like wired in. I'm assuming that we'll have something like the following in executor.EvalEntityEvent:
	// entityProto is a SelectorEntity proto
	entityProto, err := provider.GetEntityObject(inf)
	// ...
	err = e.forProjectsInHierarchy(
		ctx, inf, func(ctx context.Context, profile *pb.Profile, hierarchy []uuid.UUID) error {
			selector := selectors.SelectorForProfile(profile)
			if !selector.Select(entityProto) {
				// record as skipped
				return nil  // or SkippedErr
			}
			// Get only these rules that are relevant for this entity type
			relevant, err := profiles.GetRulesForEntity(profile, inf.Type)
			if err != nil {
				return fmt.Errorf("error getting rules for entity: %w", err)
			}

But, this formulation suggests that the Env and SelectionBuilder interfaces shouldn't need to take a minderv1.Entity as a property, and should simply spit out a selector that works on generic SelectorEntity protobufs.

@evankanderson I keep a branch with patches that will be sent later. The wiring looks like this in executor:
			// this could be a private function for now and we could just select an inf
			selectors, err := e.selBuilder.NewSelectionFromProfile(inf.Type, profile.Selection)
			if err != nil {
				return fmt.Errorf("error creating selectors: %w", err)
			}
			selected, err := selectors.Select(provsel.EntityToSelectorEntity(ctx, provider, inf.Type, inf.Entity))
			if err != nil {
				return fmt.Errorf("error selecting entity: %w", err)
			}

Why does extracting the entity properties need to know the profile?  Naively, I'd expect that we could extract the entity properties once per evaluation, not once per profile in the evaluation.

Why does extracting the entity properties need to know the profile? Naively, I'd expect that we could extract the entity properties once per evaluation, not once per profile in the evaluation.

(not 100% sure I'm answering your question without more context)
it doesn't, we can call the extraction earlier. We should also only build the entity properties (the selector message) once we hit the first profile with non-zero selectors because extracting the entity properties might involve calling to the provider (e.g. to get the key-value pairs which we don't store in the database) which might be expensive.


Full page drop area?

Does anyone have any idea how I would go about implementing a full page drop area without attaching to body?

Attach to a div that takes over the whole page.


added links between prometheus dashboards

This PR

adds link from prometheus to prometheus/availability dashboard

adds link from prometheus/availability to prometheus dashboard

screenshots before:

screenshots after:

Notice the small "prometheus" link top-right? Clicking on it opens the main "prometheus" dashboard in a new tab, with the same parameters (selected cluster, timerange).
And the "prometheus" dashboard has the same to open the "availability" dashboard:

Checklist

[x] Update changelog in CHANGELOG.md in an end-user friendly language.

Tested on gremlin, looks good :smiley:


HTCondorJobSubmitter crashes if problem submitting

When trying to run on lxplus, with my working directory under /eos I observed the following traceback:
Traceback (most recent call last):
  File "/afs/cern.ch/user/b/bkrikler/.local/bin/fast_carpenter", line 11, in <module>
    load_entry_point('fast-carpenter', 'console_scripts', 'fast_carpenter')()
  File "/eos/user/b/bkrikler/CHIP/fast-carpenter/fast_carpenter/__main__.py", line 67, in main
    return process.run(datasets, sequence)
  File "/afs/cern.ch/user/b/bkrikler/.local/lib/python2.7/site-packages/atuproot/atuproot_main.py", line 49, in run
    return self._run(loop)
  File "/afs/cern.ch/user/b/bkrikler/.local/lib/python2.7/site-packages/atuproot/atuproot_main.py", line 101, in _run
    result = loop()
  File "/eos/user/b/bkrikler/CHIP/alphatwirl/alphatwirl/datasetloop/loop.py", line 55, in __call__
    self.reader.read(dataset)
  File "/eos/user/b/bkrikler/CHIP/alphatwirl/alphatwirl/datasetloop/reader.py", line 27, in read
    reader.read(dataset)
  File "/eos/user/b/bkrikler/CHIP/alphatwirl/alphatwirl/loop/EventDatasetReader.py", line 66, in read
    runids = self.eventLoopRunner.run_multiple(eventLoops)
  File "/eos/user/b/bkrikler/CHIP/alphatwirl/alphatwirl/loop/MPEventLoopRunner.py", line 93, in run_multiple
    return self.communicationChannel.put_multiple(eventLoops)
  File "/eos/user/b/bkrikler/CHIP/alphatwirl/alphatwirl/concurrently/CommunicationChannel.py", line 131, in put_multiple
    return self.dropbox.put_multiple(packages)
  File "/eos/user/b/bkrikler/CHIP/alphatwirl/alphatwirl/concurrently/TaskPackageDropbox.py", line 60, in put_multiple
    runids = self.dispatcher.run_multiple(self.workingArea, pkgidxs)
  File "/eos/user/b/bkrikler/CHIP/alphatwirl/alphatwirl/concurrently/HTCondorJobSubmitter.py", line 129, in run_multiple
    njobs = int(regex.search(stdout).groups()[0])
AttributeError: 'NoneType' object has no attribute 'groups'

The underlying problem in this case was that htcondor submission on lxplus doesn't work below /eos only under /afs, however the traceback there hid this somewhat.  It might be helpful if the match object from the regular expression on line 127 was first checked to be valid and not None.  If it is None, then the stdout and stderr could be printed and some exception raised.  That would help a user understand more immediately why the jobs weren't submitted I suspect.

With this commit https://github.com/alphatwirl/alphatwirl/commit/1286665060e215752014e57a83136f74f393d0dd, try_executing_until_succeed() will be used for executing condor_submit. It will keep trying to execte condor_submit until it succeeds. A warning level log will be made everytime it fails. stdin, stdout, stderr will be logged as the debug level log.


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-k8s-24-main" workflow

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

Questions ?
Please refer to the Backport tool documentation


Pzheng/gaussian euclidean

Add gaussian distribution monoid

Thanks for doing this! Just some minor cleanups requested.

Thank you!


Nested parser instructions

Remove "published" as a thing that we send, we should check locally on import.
Reformat to nested format.

Discussed making the individual entries mandatory -- so court always exists, but None means "we don't know, please tell us parser"


Create Header for jobadvisor homepage

[x] Create a branch header-navigation
[x] Create header component from material-ui
[x] Use Drawer component to make it responsive
[x] install necessary npm commands when required example install @mui/icons-material
[x] run pull request

I @minjupgeorge I will like to jump on this if you don't mind.


Deleted app appear in search

Environment
Docker
Version
0.11.2
Describe the problem
If I deleted an app some time ago and then recreated it, when I search for the app in the search bar, I will see two of them because it gets duplicated

Additional info
No response
Please tick the boxes

[X] You've read the docs
[X] You've checked for duplicate issues
[X] You've tried to debug yourself

Environment
Docker
Version
0.11.2
Describe the problem
If I deleted an app some time ago and then recreated it, when I search for the app in the search bar, I will see two of them because it gets duplicated
Additional info
No response
Please tick the boxes

[x]  You've read the docs
[x]  You've checked for duplicate issues
[x]  You've tried to debug yourself

Does it still show if you have 0 watchtower apps ?

only one if I deleted it.

That's really strange. It goes away on refresh tho right ?

No it will no go away, I see all the settings will remain in the config file.
The bug it's easy to replicate, I started again in a fresh homarr installation and have the same identical issue if I create an app in a category then delete it and recreate new one in a new category.

I cant replicate on my setup

I suspect that the actual app is not deleted, but it has no valid wrapper.

I deleted the entry configuration because of this bug, after delete it, I can't replicate again. Very weird.
I will close this.

Closing in favor of #630

Duplicate of #630


control maxdepth of the sidebar

Hi! Thanks for the PR!
Making the entire site structure visible in the sidebar was an intentional design choice, nudging documentation authors to avoid making deeply nested document hierarchies.
Is there any use case for hiding a part of the documentation from the user; and making it significantly more difficult to reach? Note that Furo is not intended to cover all potential site structures, and instead is (intentionally) biased toward small documentation sets.

I am automatically generating documentation for a project.
When there are more than 1000 files, the sidebar will exceed 200kb.

Sorry, but a documentation site containing 1000s of pages is way too big to be using Furo with as-is. I don't want to add a configuration knob for such a usecase.
I recommend changing the elements using the sidebar customisation options for such use cases though. You should be able to customize this by overriding sidebar/navigation.html.

Hi @pradyunsg, would you reconsider reopening this PR? I have a different use case that might justify this change.
The use case is as follows:
In a nested page (not index.rst), I have a toctree that is being used to link implementation examples inside an specific section of the document. Please notice that this toctree does not refers to the global toc of the current page, but it is just used in a subsection, after an h2.
In the RTD theme, this is rendered as expected: the links in the toctree appear as children of the preceding h2 in the page, as you can see here:

However, since Furo omits nested titles on the left sidebar in favour of the menu on the right sidebar, something very weird happen: the preceding h2 ends up being shown on the right sidebar, while the links in the toctree are displayed on the left sidebar right under the h1. As a result the left sidebar is confusing because the h1 and the toctree links are not directly related. (You can see it here

I was hoping that by using a maxdepth on the right sidebar I could simply hide the links of the toctree...
Is there any other way to get around this problem?
It seems to me that modifying the templates seem a bit too cumbersome to workaround a problem that is a direct consequence of splitting the menus between left and right...


Fix centos 6 kitchen tests with chef-client cookbook 6.0.0

Signed-off-by: Matt Wrock<EMAIL_ADDRESS>

@tas50 isn't this a bug in the cookbook?

It all seems to work in Vagrant, but in Docker land things aren't behaving. The init_package attribute isn't getting set. I need to fire up my local docker and figure it out because it seems like an Ohai bug. It should fail back to init, but it could be in the cookbook somewhere as well.


Don't silently ignore errors in docker build/push

Nightly builds are failing for a while and we never noticed that:
------
 > exporting to image:
------
ERROR: failed to solve: failed to push quay.io/maistra-dev/sail-operator:3.0-latest: unexpected status from POST request to https://quay.io/v2/maistra-dev/sail-operator/blobs/uploads/: 401 UNAUTHORIZED
docker buildx rm project-v4-builder
make: [Makefile.core.mk:247: docker-buildx] Error 1 (ignored)

/override ci/prow/e2e-ocp-4-15-arm


move tests to using snapshots + make coverage account for all files

currently, our coverage only shows coverage for files we started writing tests for.
we should fix that. also, using snapshots might be better for seeing the results of the tests and approving any user-facing changes (like error throwing and return values)

:tada: This issue has been resolved in version 1.1.0-next.4 :tada:
The release is available on:

GitHub release
npm package (@next dist-tag)

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ci: run e2e tests against new and old apis

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

This extends the CI coverage to run the e2e tests against the new api as well as the old. Once we've completed the migration to the new api, we can delete the old.
TODO:

[ ] run the third party tests against the new api.

Blocked because I forgot about the third party tests...


Remove uuids.md page

Related to https://github.com/pydantic/pydantic/issues/7322

Why the commit message is Removing booleans.md 🤔 ?

Why the commit message is Removing booleans.md 🤔 ?

When I opened the PR, the target was main. - The first commit in refactor-docs branch is that one.


shap explanation compared to attention distribution matrix

@maggiewu19 I don't understand the issue, could you provide more description?
@thatlittleboy Candidate for closing I believe.


Gpu passtrough video out only working after gpu drivers is loaded by the guest os

What happened:
Gpu passthrough is not working before the guest os has loaded the amd graphics drivers, this makes it impossible to install or debug an os without adding the VNC display adapter.
What you expected to happen:
GPU passthrough should work, even without any windows drivers loaded, like it does normally in libvirtd.
Environment:

KubeVirt version (use virtctl version): v0.58.0
Kubernetes version (use kubectl version): "v1.25.3+k3s1
Host: fc36
guest  os: Windows 10

I have installed a VM with gpu passthrough, but DP/HDMI on the gpu is only working after Windows 10 has loaded the amd drivers. Before that the screen is black.
Normally in KVM/ovmf you can see the OVMF UEFI screen before the OS has even started up or loaded any guest drivers.
Any why this is, or how to fix it?
I was thinking about trying to update the OVMF uefi file to a later version in virt-lanucher, but not sure how to do that.
Here is my vm yaml
kind: VirtualMachine
metadata:
  name: windows
spec:
  running: false
  template:
    metadata:
      labels:
        kubevirt.io/domain: windows
    spec:
      domain:
        clock:
          timer:
            hpet:
              present: false
            hyperv: {}
            pit:
              tickPolicy: delay
            rtc:
              tickPolicy: catchup
        cpu:
          cores: 8
          model: host-model
        devices:
          autoattachGraphicsDevice: false
          gpus:
          - deviceName: amd.com/6950xt
            name: gpu1
          - deviceName: amd.com/6950xt_audio
            name: gpu2
          disks:
          - disk:
              bus: virtio
            name: pvcdisk
          - cdrom:
              bus: sata
            name: winiso
          - cdrom:
              bus: sata
            name: virtio
          interfaces:
           - name: ovs-vlan-7
             bridge: {}
        features:
          acpi: {}
          apic: {}
          hyperv:
            relaxed: {}
            spinlocks:
              spinlocks: 8191
            vapic: {}
          smm: {}
        firmware:
          bootloader:
            efi:
              secureBoot: false
          uuid: 5d307ca9-b3ef-428c-8861-06e72d69f223
        resources:
          requests:
            memory: 16Gi
      networks:
      - name: ovs-vlan-7
        multus:
         networkName: ovs-vlan-7
      terminationGracePeriodSeconds: 0
      volumes:
      - name: pvcdisk
        persistentVolumeClaim:
          claimName: windows-claim
      - name: winiso
        persistentVolumeClaim:
          claimName: win10iso-pvc
      - name: virtio
        persistentVolumeClaim:
          claimName: virtio-pvc```

Hi! I was able to solve this, apparently the GPU was bound to vtcon, despite blacklisting it in the kernel args. Now I can see the UEFI bios on guests as well!


pubsub: remove experimental notice from DLQ related fields

DLQ is now GA, so any experimental notices can now be removed.
I took a look and it doesn't seem like C# has any experimental notices added in https://github.com/googleapis/google-cloud-dotnet/commit/173b01972761dae6ac2b6eea1d85648fb549e1fa#diff-e1a7b0f75e83047212fd8a0cf9d3c8b4, but if you could double check that would be great.

No, we don't tend to have experimental things in the code itself - we try not to release libraries to GA that contain experimental features. (Admittedly in this case we forgot that DLQ was experimental when I published 2.0.0 on April 9th...)
The experimental part in the generated code was removed in this commit.
We could potentially release a 2.0.1 to remove that from the released client library, but it's probably just simpler to wait until there's a new feature change in the protos and release 2.1.0 at that point.
Closing this issue as nothing needs doing - thanks for prompting the check though.


@to_string:  decorated_class.dict[attr], "call")) KeyError: 'xxx'

When I decorated my class with @to_string decorator, I got a KeyError. I found that there is a problem with the source code after I debugged.
  attributes = [
      attr
      for attr in dir(self)
      if not attr.startswith("_") and not (
          hasattr(self.__dict__[attr], "__call__") if attr in self.__dict__ else hasattr(
              decorated_class.__dict__[attr], "__call__"))
  ]

After I print dir(self) and self.__dict__, the attr of dict(self) are more than self.__dict__, thus result in the self.__dict__[attr] KeyError

Could you provide the class that is being decorated so I can repro this locally?

def test_pack_unpack(self):
        @to_string
        class Point(Struct):
            """
            Semantic eq method is provided by Struct
            @attr.define -- does not play well with the super-class
            @dataclass -- does not play well with the super-class
            """
            _endianess = Endianess.LittleEndian
            x = FieldType.WORD
            y = FieldType.WORD
            name = FieldType.String[6]("NONAME")

        original_point = Point(x=1, y=2)
        packed_point = original_point.pack()
        assert_that(packed_point,
                    is_(b'\x01\x00\x02\x00NONAME'))

        unpacked_point = Point.unpack(packed_point)
        assert_that(unpacked_point,
                    is_(original_point))
        self.log().debug(unpacked_point)

where Struct is defined at https://github.com/mrdor44/stru/blob/master/stru/stru_struct.py#L7
This test fails on its last line with:
.0 = <list_iterator object at 0x7f04687c6c20>

    attributes = [
        attr
        for attr in dir(self)
        if not attr.startswith("_")
        and not (
            hasattr(self.__dict__[attr], "__call__")
            if attr in self.__dict__
>           else hasattr(decorated_class.__dict__[attr], "__call__")
        )
    ]
E   KeyError: 'pack'

tests/python/venv/lib/python3.10/site-packages/paprika/oo.py:21: KeyError


Adding a note about consulting in the README.

Coverage remained the same at 93.249% when pulling 2112331f431059e5122ec668d3528b82df72f5aa on consulting-reference into 55ef0ad021a8ce5ffec3bec14f4c06d6a4afd74a on master.

Coverage remained the same at 93.249% when pulling 2112331f431059e5122ec668d3528b82df72f5aa on consulting-reference into 55ef0ad021a8ce5ffec3bec14f4c06d6a4afd74a on master.


integrated security

https://github.com/jeremylong/DependencyCheck/blob/e2a97738e176fd9bb7042f1f53a024c7c011460c/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/nvdcve/ConnectionFactory.java#L156
I think this may need to be "integratedsecurity" instead of "integrated security"
Thanks again for adding this!

@NickHarvey2 Integrated Security=true is the correct syntax. I copied the integrated security and trusted_connection directly from the connection string documentation.

ah. okay. I know my team has a number of apps that use the version without the space in the connection string, but I guess either must work.


[feature]: Make the Anchor Sweep Configurable (after commitment is confirmed)

Currently we have 2 situations where we are going to use the anchor output.

When the Commitment is not confirmed and either the sweeper uses the anchor to bump our commitment tx, or we use the bumpclosefee rpc which lets us bump the fee of a unconfirmed commitment transaction manually. This feature request does not touch these two scenarios

When the Commitment Tx is confirmed our anchor_resolver will try to sweep our anchor with the relayfee (253 sats/kweight). This is what this feature requests targets. Sweeping the Anchor only is economical only up to ~1.8 sat/vbyte (when sweeping before 16blocks). I propose to make this sweeping of anchors configurable. Allowing noderunners to switch off the anchor sweep either by just disabling this behaviour or maybe implement a check which  evaluates whether the fee-estimation for maybe 144 blocks would give us a higher feerate than maybe 1.5 sat/vbyte and then not sweeping the anchor programmatically.
Problem with this sweeping is, that it blocks useable outputs for the user. In bitcoin transactions can only be replaced so they would have to either replace this transaction (RBF) which makes it immediately not economical (size for p2tr output is around 194 byte), using CPFP to use the bigger output which was used to sweep this anchor makes it also not worth it, as soon as the effective feerate goes beyond 1,8 sat/vbyte. So allowing the user to switch off automatic sweeping makes totally sense in crowded mempool conditions.

I would like to tackle this issue if there is consensus that it is worth going in this direction :)

I had another thought where the anchor sweep could be improved:
When more than one anchor is swept it would actually make sense to pay more for fees to get maybe a small return rather than none. (make sure the input is not negative yielding). In case of an SCB a lot of anchors are batched and swept for a feerate of 1sat/vbyte, this leads to a situation where all anchors will be swept by a third party when the timeout runs out.
Example: https://mempool.space/tx/91a1bea0d92a5d6793e5d384646ca9c833542d5828ed4cb69ca5baf8f6b377aa
This is a sweep by the node with 60 anchors. Lnd will aggregate them with a feerate of 1sat/vbyte which is bad in full mempool conditions. So one could think of also improving this logic, so the user gets at least some of his sats paying more.
It got replaced by: https://mempool.space/tx/482091ef9edeba13a19228d25bc8a7173bc75037aa68e55e1d2b64a29a324346

Definitely a concept ACK from me for improving the anchor sweep code to be more economical (and more lazy even - ie, only sweep way later on once I have a couple of UTXOs lying around). However, i'm not too sure about disabling it completely - I guess I just dont love the idea of "I don't need to clean it up because i'm sure someone else will" but maybe that is just me?

IMO we should try to first fix the root issue here: that somehow the sweeper isn't getting the conflicting spend notifications it needs. We can ofc make this configurable, but this would just mask the issue.

IMO we should try to first fix the root issue here: that somehow the sweeper isn't getting the conflicting spend notifications it needs. We can ofc make this configurable, but this would just mask the issue.

Hmm not sure if we are talking about the same thing here? I know we have an issue backpropagating information when an anchor is swept by a third party. What I meant here is we could increase the sweeping feerate of those anchors. But that's only one suggestions of mine. The other is to just let it be configurable maybe? As described above it's really hard to CPFP/RBF economically.

IIUC, this should already be caught by our "negative yield" logic, where we make sure not to spend more on an output than its actual value.

I think this can be improved because it has some small weaknesses. Lets say we have 60 anchors in the pipeline to sweep.
Let's say we wanna sweep for 3Sat/Vbyte which is a sure bet mostly in current mempool conditions.

We have the BaseSize +Output: 8 + 43 +1 (P2TR) = 52 bytes * 3 => 156 sats
Every Anchor account for  2.6 sats for the output size.

The anchor has a Size of (when sweeping with own Sig): 41(inputsize) + 116/4 (29) = 70 vbytes = 270 sats

Every Anchor has now a yield when sweeping for 3 sat/vbyte of ~ 57sats => leading to nice 3420 sats profit

Can we also sweep 5 Anchors at 3 sat/vbyte: now every Anchor has to account for almost 52 sats for the base Size so we cannot sweep at this rate because our output would be below dust: 5*5 = 25 sats.
Let's say we sweep 200 channels (SCBing our node so all Channels get closed at once) at 3 sat/vbyte => now profit is almost 200*59 = 12000 sats profit.
But lnd currently would not sweep 200 anchors at a feerate of 3sat/byte because the logic only adds one input at a time. So sweeping 330 sats at 3 sat/vbyte would fail because its negative yielding at first.

Thank you for your thoughts @ellemouton :)

Definitely a concept ACK from me for improving the anchor sweep code to be more economical (and more lazy even - ie, only sweep way later on once I have a couple of UTXOs lying around). However, i'm not too sure about disabling it completely - I guess I just dont love the idea of "I don't need to clean it up because i'm sure someone else will" but maybe that is just me?

Hmm Problem with waiting is, that 16 blocks csv are pretty short timeframe. Lets say we are not SCBing, meaning that maybe at most we can anticipate 2 FC at once maybe? Then we have 2 anchors to sweep which (with our current sweeper logic) would only sweep them for 1 sat/vbyte. But it could be very well swept for (70bytes 2+ 52 = 192 Size of the Tx with 2 anchor Inputs and 1 P2TR output ). Generating an Output above Dustlimit ~310 sats we could sweep this output for almost (2330 - 310(Dustlimit) )/192vbyte = 1.8 sat/vbyte.
So the above example just illustrates that just increasing the "lazy period" will give us not much of a benefit with the current sweeper logic, which adds each input one at a time and evaluates the yield. Maybe in my opinion 2 approaches could be considered. Config setting which allows noderunners get rid of these annoying AnchorSweeps (0 conf outputs) in their wallet or improving the sweeper logic and aiming for higher fee rates, though calculating with at most 2 FCs in a medium time period this new logic would at most increase the sweep feerate up to 1.8 sat/vbyte so not sure whether it's worth it (there might also be the possibility to use this anchor to consolidate wallet utxos leading to another use case, because more Inputs increase the yielding of those anchors hence increase the fee rate).
I tend to just allow users to switch off the anchor sweep setting, which would be a simple solution.


Added Macedonian layout

Description
Hello, I've need an onscreen keyboard for a recent project in my native language. I forked this repo and simply made and added the layout following the template of all the others, and inserted it in layouts alphabetically. I taught I'd contribute the layout for anyone else that might need it.
Checks

ran npm run test and they passed

I'm very sorry for the delay - this PR seems not to be compliant. Please feel free to resubmit without committing the build folder. Thank you

Upon second thought - I will try to check it in. Thanks again for the contribution!

No, problem of course, thank you for accepting.


ccTweaks 1.8.9-1.3.1 - Key repeat not working with ccTweaks loaded

Not much to add - holding down a key doesn't result in key repeat kicking in while ccTweaks is loaded.  Loading the same map without ccTweaks allows key repeat to function normally.
MC 1.8.9
CC 1.79
ccTweaks 1.8.9-1.3.1
Forge <IP_ADDRESS>2
Not sure what other info to include - let me know if you require anything else.
EDIT:  After being plagued by this issue for more than a week and narrowing it down to ccTweaks, the problem seems to have resolved itself.  I just reloaded the map with ccTweaks and key repeat is working fine.  Since I can no longer replicate this issue I'm closing it.

I've encountered the same issue a couple of times, though I don't think it is CCTweaks' fault: I don't touch the GUI code. Were you by any chance running JEI? - I think the 1.8.9 versions mess with key repeats.

I am, in fact, running JEI with the map in question.  If the problem returns, I'll turn my eye toward JEI.  Thank you...again.

Also worth noting that I've only experienced this on 1.8.9. Comparing the 1.8.9 and 1.10.2 versions shows that this is almost certainly caused by JEI.

Reopening as it might be possible to fix this: see this commit for Plethora.

Wow - you are all over this - thank you for making life in 1.8.9 a bit easier.

Would be a good idea if I actually reopened this 😦.


Add support for async callbacks

Codecov Report
Attention: Patch coverage is 66.66667% with 39 lines in your changes missing coverage. Please review.

Project coverage is 57.58%. Comparing base (0acd575) to head (166ffd2).
Report is 1 commits behind head on master.

Files with missing lines
Patch %
Lines

keras/src/callbacks/callback_list.py
61.70%
24 Missing and 12 partials :warning:

keras/src/trainers/trainer.py
50.00%
3 Missing :warning:

:exclamation:  There is a different number of reports uploaded between BASE (0acd575) and HEAD (166ffd2). Click for more details.
HEAD has 6 uploads less than BASE

Flag
BASE (0acd575)
HEAD (166ffd2)

keras
4
1

keras-torch
1
0

keras-tensorflow
1
0

keras-jax
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #20284       +/-   ##
===========================================
- Coverage   78.86%   57.58%   -21.29%
===========================================
  Files         511      511
  Lines       48674    48733       +59
  Branches     8969     8981       +12
===========================================
- Hits        38389    28063    -10326
- Misses       8431    18861    +10430
+ Partials     1854     1809       -45

Flag
Coverage Δ

keras
57.58% <66.66%> (-21.15%)
:arrow_down:

keras-jax
?

keras-numpy
57.58% <66.66%> (+0.03%)
:arrow_up:

keras-tensorflow
?

keras-torch
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


⚠ Bofrost.lu has degraded performance

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

HTTP code: 200
Response time: 1146 ms

Resolved: Bofrost.lu performance has improved in 56f46a6 after 9 minutes.


en_CA unit test support added

Unit test support added to en_CA Provider, with PhoneNumberTest.php test kit.
Thank you.

Looks like the RegEx does not pass test cases without international calling code. I'll need to modify the RegEx a bit to make sure it includes both numbers with and without country dial in codes.

Thanks!

Tests fail, I'll revert this one.
There was 1 failure:

1) Faker\Test\Provider\en_CA\PhoneNumberTest::testPhoneNumberFormat
Failed asserting that '529-411-8627 x175' matches PCRE pattern "/^((([0-9]{1})*[- .(]*([0-9]{3})[- .)]*[0-9]{3}[- .]*[0-9]{4})+)*$/".

/Users/francois/git/Faker/test/Faker/Provider/en_CA/PhoneNumberTest.php:32

Interesting, when I did run the tests it actually passed. I'll need to re-check this one. Thanks for notification.

I also partially reverted #767 for the same reason (see 0456c4efc8faffe9359cc75b6896bcc92d458ef6)

OK. I need to re-check these commits. As I mentioned, the build passed while committing.


add styled frameworks for yew

Description

As we spoke in the channel, I add in the documentation all the styled frameworks that exists for yew currently (I don't know if I missed any of them). I'm not native in English then if someone can take a look would be great, thanks!

@teymour-aldridge I fixed already

Cool!

Thanks for adding these @dancespiele!

lol yes sorry :)

Now I think it is fine

@jstarry @teymour-aldridge  looks like documentation tests take Javascript and Vuetify as wrong

@dancespiele You'll need to add those two terms to ci/dictionary.txt (ideally alphabetically sorted)

Done


Feature: enable server-side-rendering

Added a couple of fixes to allow component to be server rendered.

fixed: Picturefill import throwing error on import
fixed: ieVersion check throwing error referencing window.document

Hey @braposo,
I don't really have a strong opinion either way regarding adding the dependency vs. defining the function.
That said, I have tended towards the habit of trying to externalize functions such as this, that otherwise end up being repeated time and again, across different modules.
While adding multiple dependencies such as this is a slight drawback for now, my thinking was more that stuff like this should really end up in a utility-belt module/library, similar to Lodash or Ramda.
So, on balance, I went with the dependency, rather than the code duplication.
Your call, though … happy to change if you'd prefer.
Cheers,
Brett

Sorry @brettgullan I just forgot about this... Let's merge it for now and I'll deal with the extra dependency later. I'm doing some improvements anyway so I'll change it if needed.
Thanks again for your help, I'm sorry it took so long to merge this! 🙏


Add securityFile/permissions/additionalHeaders support

Hello, I would like to know if you have any plans to add support for these features:

security file
permissions (geolocation, midi, payment, camera, etc..)
additional headers

Also, it would be great, if you export all of types/interfaces from module, for decompose security out of nuxt.config.

Hey,
Thanks for reaching out!
I am open for any feature requests. Could you please elaborate with each of the points what specifically do you mean and how would you like it to work? I will be happy to answer and implement all those once we agree on the form and need :)
For the types, yes I can export them. I will add it as a part of the documentation improvement so that it will be easier to document the module

@ccxdev
Any additional info here?

Closing the issue as there is no further response from the author about the details.


Trimming PackageReferences

Thanks for an awesome tool! ❤
Since PackageReference will pull in transitive references (and packages.config doesn't), I find myself having to go through all the converted projects and manually trim the references to only the top-level packages.
It would be really awesome if this tool could do that for me :smile:
I wonder if there's a NuGet API that would help out with resolving and giving back the only the top-level packages? @emgarten?

The easiest way would probably be to:

Restore the project with everything top level
Read project.assets.json with LockFileFormat in https://www.nuget.org/packages/NuGet.ProjectModel/
From the target graph (with no RID if there RIDs), find all libraries that are not depended on by other libraries.
Then determine which child packages actually need to be top level and keep those also. Example: A -> B >= 1.0.0 will bring in B 1.0.0 by default (lowest possible), but if the user had B 2.0.0 in packages.config then B 2.0.0 should be top level so that the dependencies stay the same.

You can take a look at a packages.config -> PackageReference migrator the nuget team is working on, the logic for trimming is around this area: https://github.com/NuGet/NuGet.Client/blob/86bca57154953ebee960af2a232866e2a0e44594/src/NuGet.Clients/NuGet.PackageManagement.UI/Actions/PackagesConfigToPackageReferenceMigrator.cs#L140
Note that migrator doesn't convert between project types like this one.

One thing to be careful of when trimming is not to trim too much.
Let's say in your package project is A and A -> B -> json.net. So internally B depends on json.net, but doesn't expose anything from it. In your package  you also depend on json.net for some other reason. If you only pull in B, and trim json.net, then any project just pulling in A will work today but you run the risk of a runtime exception at a later date when B gets updated and decides to remove the json.net dependency and the top level project manually installs this updated version.
Bit of a mess that I've tried to explain in this issue and this comment stream

@mungojam that was the entire reason I didn't put it in in the first place. It's not worth the risk of breaking a project, I believe this is better as a separate tool as it doesn't really have anything to do with the transition of project files.
This is an operation that you should be able to run over and over again.

Thanks, that makes a lot of sense to me. I've been thinking about how to tackle it for our codebase and it isn't an easy problem. I'm hoping that I can make use of nuget or roslyn libraries to do some magic around detecting packages that should be left in.

Trimming JSON.NET is exactly what I want. That's what makes transitive dependencies so nice, and the projects clean. If B decides to remove their dependency on JSON.NET and nothing else uses it, how will that lead to runtime errors? The package will just disappear. If you actually depend on JSON.NET, you'll get compile-time errors because you suddenly lost the (transitive) reference to it.

Anyway, I wrote up the code after @emgarten's awesome pointers yesterday. Thanks! Works pretty nice for the projects I needed it for. I guess people can wait for MS to publish their bits instead.

The scenario that gives runtime exceptions is a little contrived but it does happen, I reproduced it on the issue.
If you're pulling in Json.net transitively through B to A and using it in A, then you are referencing both A and B in your project. When you then update B in your project, everything will happily compile because only A is using Json.net but the compiler doesn't know that it is (A is already compiled). You only find out at runtime when you call the function in A that can't find json.net DLL.

BTW

It's not worth the risk of breaking a project

This tool already does that in several cases. Specifically around duplicate entries with explicit and implicit Compile elements. That's just an inherit risk when upgrading using a tool. That doesn't mean we shouldn't try to make it as good as possible.

it doesn't really have anything to do with the transition of project files.

IMO it has a lot to do with the transition. PackageReference is one of the most prominent features of SDK-based projects and one of the most compelling reasons to upgrade.

This is an operation that you should be able to run over and over again.

I don't understand why that's a problem? The console app I wrote up yesterday is totally idempotent. I can run it over and over and it will always produce the same package closure, as long as the project doesn't change.

@khellang I'm just trying to say, keep this as a transformation tool and have a separate tool do this package simplification. There's enough complexity and risk in there to split it out.
As to things breaking, I'd be very interested to see those cases if you can simplify them. Like you said, we should try to make it as good as possible :).

As to things breaking, I'd be very interested to see those cases if you can simplify them.

They were quick to fix and definitely within the threshold of issues I'd expect when migrating complex projects using a tool. I'll see if I can reproduce some of them (I could probably time travel back and re-run the upgrade) and get back to you...


[Feature request] card filtering

Currently there is an entity filter card which can display entities with a certain state.
But i would be extremely flexible to have a card filter. For example - what is the point of displaying AV receiver controls when it's off? In older UI this could be done with group visibility and automations. But as lovelace UI is a complete makeover - this feature is highly wanted.
Something like
  - type: glance
    visibility filter:
      - entity: temperature outside
         condition: below 25
    entities:
      - climate.balkon_convector
      - climate.balkon_floor

Already possible, see the 3rd example on https://home-assistant-lovelace-gallery.netlify.com/#demo-hui-entity-filter-card

@balloob it's not. Maybe it works on media player card but not in other cases.
The below config doesn't work properly
  - type: entity-filter
    entities:
      - media_player.onkyo
    state_filter:
      - 'on'
    card:
      type: glance
      entities:
        - media_player.kodi_cinema
        - input_number.zal_onkyo_volume
        - input_select.onkyo_mode
        - input_select.onkyo_dynvol


fix: Remove Google style guide

Removes the unmaintained Google style guide.
fixes #75

question: is this a breaking change? Not sure if it matters -in most cases users will default to using the latest.

I think we can treat this as a non-breaking bug fix.


add makefile target to publish docs to gh-pages.

Hey there,
I've added a publish_docs target on makefile to publish the html documentation on GitHub Pages. It may allow easy access to the documentation for new users of bgfx.
I've published the docs in my account, and the result is the following URL: http://endel.github.io/bgfx
Usage:
make publish_docs

Maybe it's a good idea to publish every update to gh-pages in a build server, or something. If you run the script, it will publish in your account: https://bkaradzic.github.io/bgfx
It also would be great to have the same on bx, which seems that doesn't have any documentation, is that correct?
Thanks you

Thanks, I'll take look at this. I have different plans for documentation based on ReadTheDocs.

Here it is: https://bkaradzic.github.io/bgfx/index.html


add metrics collector for BEAM VM

I'm not sure that this doesn't belong in the sdk since it's vm runtime. @tsloughter thoughts? I'm not sure how this is being handled in the other languages. I do know the otel collector receivers just hook into existing APIs of the thing they're integrated with and are configurable.
Some general notes on first glance, forgive me if I misinterpreted something. I see that you relied heavily on prior art but I believe a fair amount of it doesn't comply with otel requirements.

The naming here does not comply with semantic conventions for runtime names. Please review and adjust according to https://opentelemetry.io/docs/specs/semconv/general/metrics/
I think some units will need to be adjusted. Review the conventions and spec carefully.
How is filtering handled? Is that handled someplace else? In general, defaults are set for each available metric in a receiver, for instance, with the user having the ability to opt in and out of the defaults.

@bryannaegele

The naming here does not comply with semantic conventions for runtime names. Please review and adjust according to https://opentelemetry.io/docs/specs/semconv/general/metrics/

The intention was to keep the metric names compatible with VM collectors from prometheus.erl. That way the OTel instrumentation would be a simple drop-in replacement for projects that currently use prometheus.erl and Grafana dashboards from there could be reused with minimum changes.
However, I do like the semantic conventions from OTel better than the old names. So, I'll change to them.

How is filtering handled? Is that handled someplace else?

I was under the impression that filtering would always be handled in a collector and not in the metric. Can you point me to example (even in anther language) where filtering is done in the meter?

I don't have the time or context for that, so relying on you and Tristan to do that legwork ;)

@bryannaegele it looks like Java has their's in contrib, so probably belongs here. I'd have ben fine either way

Cool.
What do y'all think of making the prefix be beam rather than erlang.vm? I don't think the double-namespace provides anything and it provides better specificity imo.

@bryannaegele @tsloughter updated:

uses prefix beam
split some observable callbacks
based in proposed semantic conventions from https://github.com/open-telemetry/semantic-conventions/pull/827

@RoadRunnr thanks! taking another look.

new PR for semantic conventions for BEAM. This PR here will need to synced once that has been agreed upon.


Add Dependabot to repository for automatic package updates

Dependabot, a solution for automatic package updates, is being enabled on all production repositories to aid in vulnerability management. This is an automated PR which has taken a best-guess approach to detecting your repo lanauge and package manager. Please closely review and create additional commits if you would like (or need) to make modifications. Your prompt attention is appreciated! If you have questions, please comment directly on this PR. For more information about available configuration options, please see the available Dependabot options at https://dependabot.com/docs/config-file/

Security Insights

(1) Vulnerable direct dependencies were detected
4 vulns in lodash < 4.17.12 via package.json

Action Items

Review dependencies for available updates
See this Splunk dashboard for more CVE details
Review PR for security impact; comment "security review required" if needed or unsure
Verify aviary.yaml coverage of security relevant code

Questions or Comments? Reach out on Slack: #support-infosec.


Convert more unit tests to auto-driver generation

Problem
Less boilerplate in unit tests is better.
Summary of Changes
Removes a lot of boilerplate unittetst drivers from the code. Together with #3982 this should cover everything.
HOWEVER we still have some drivers that seem to work as integration tests (CHIPoBLE and InetLayerMulticast) by using command line arguments to decide if to really run or not. I assume these are to run if happy and return 'success' if run as part of the build. This is something I hope we can improve in a later PR.

Converting to draft - apparently mass converting still got failing unit tests, so I will create small PRs for each.

I believe the failing unit tests are due to old unit tests not using CHIP_REGISTER_TEST_SUITE so neiter zephyr nor qemu/esp32 are really running all tests.
Part of my migration is adding tests to these platforms and they start failing. This makes conversion tedious but likely a valuable exercise (we get more tests running on more platforms)

Closed: separate PRs converted a lot of tests. This PR is not needed anymore.


Uses fat jars instead of exploded directories

:+1:

rebuilding the images and testing again

sorry :cry:  should have said optional

NP it works!

@niccaluim fyi this changes some things


Don't always build pacman-git

Maybe you can host a known good version of pacman.git on pkgbuild.com, which can be used instead.

Solved with 62df6ac0cca099019fa53fa4ff9f7b842a7a9ad2


Team30 Review - [MIS] - 6. Input Parameter Module

The purpose of the module is unclear based on the specification, there is no exported constants, exported access programs or local functions
Other modules would likely need to use this module, so there should be some form of exported constants or access programs
Within other modules, it would also need to state this module as an import if it uses it afterwards
Be sure that the communication between the modules in the specification is clear

This module has been deleted.


No visible label provided for 'Field', 'Condition' and 'Value' combo box on 'Add Filter' pane.: A11y_.NetAspireDashboard_StructuredLog_Add Filter_LabelsorInstructions

"Check out Accessibility Insights! - Identify accessibility bugs before check-in and make bug fixing faster and easier."
Please do not close this bug. This bug should only be closed by Trusted Tester after verification.
Tags:
#A11yTCS; #A11yMAS; #A11ySev2; #FTP; #Win11; #ChromiumEdge; #FTP; #DesktopWeb; #.NET Core; #SH_.Net Aspire Dashboard_Web_Mar2024; #WCAG3.3.2; #LabelsorInstruction;
Environment Details:
Application Name: .Net Aspire Dashboard
URL: https://localhost:19888/
Chrome Version 122.0.2365.80 (Official build) (64-bit)
Window Version: Win 11
OS Build: 22621.3085
Repro Steps:

Hit the URL: https://localhost:15887/ and login with valid credentials.
TAB to "Structured Log" tab item and hit ENTER key.
TAB to "Filter" and hit ENTER key.
Observe that no visible label provided for 'Field', 'Condition' and 'Value' combo box on 'Add Filter' pane.

Actual Results:
No visible label provided for 'Field', 'Condition' and 'Value' combo box on 'Add Filter' pane.
Same issue repro on 'Structured log' page -> 'Select application' combo box.
Expected Results:
Visible label should be provided for 'Field', 'Condition' and 'Value' combo box on 'Add Filter' pane.
User Impact:
Screen reader users will not be able to understand the purpose of the dropdown and will miss the information about it.
Attachment:

This needs to wait for responsive design - moving it to 8.2

#Closed


[Refactor]Remove some unused code in old parser for admin stmt

What type of PR is this：

[ ] bug
[ ] feature
[ ] enhancement
[x] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

run starrocks_fe_unittest

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)

[FE PR Coverage Check]
:heart_eyes: pass : 9 / 9 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/analyzer/AdminStmtAnalyzer.java
3
3
100.00%
[]

:large_blue_circle:
com/starrocks/analysis/AdminSetReplicaStatusStmt.java
6
6
100.00%
[]

[FE PR Coverage Check]
:heart_eyes: pass : 9 / 9 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/analyzer/AdminStmtAnalyzer.java
3
3
100.00%
[]

:large_blue_circle:
com/starrocks/analysis/AdminSetReplicaStatusStmt.java
6
6
100.00%
[]

run starrocks_admit_test

@mergify backport branch-2.3


[hmac,dv] Fix rare issue with wipe_secret

When wipe_secret test is triggered from stress test and if the last
triggered wipe secret type is WipeSecretBeforeStart and HMAC is
enabled then rd_digest is not exercised thus wipe_secret_triggered
is not pulled back to 0.

@rswarbrick thanks for the explanation and for your review. Actually I have no idea why the RTL change came to the surface. I have rebased my commits. Now it should be clear and mergeable once the CI passes.

I don't see why would be needing this change anymore as this https://github.com/lowRISC/opentitan/blob/master/hw/ip/hmac/dv/env/seq_lib/hmac_smoke_vseq.sv#L94-L97 at the start of every new transaction should already be taking care of this and related issues.
(I was sure I had seen this error and dealt with it at some point.)


Transaction History

I have implemented the front end of the transaction history (https://github.com/stellar/account-viewer/tree/payment-history). An interesting observation here is that this is actually a Payments History rather than a Transaction History since it is meant to show "Payments" which is a subset of a transaction.
Responsiveness
Right now, it is only available in desktop table format. Users on smaller screens will have to horizontally scroll to see all the information.
Screen shots

"Business requirements"
The "transactions" displayed here are simply just all the payments involving the user's account.
In this simple version, there is no pagination. Instead, we should just Horizon ask for the past 100 payments.
Payment limit
If we received 100 payments from Horizon (meaning the user has more than 100 payments), show this alert box.

Date
We simple format the created_at from Horizon using the AngularJS date filter:
{{'2015-08-06T18:20:50Z' | date:"MMMM d, y H:mm:ss Z"}}

I chose to absolute time instead of relative time since it is often more useful than a relative date.
As of right now, Horizon does not show the date in the operations resource.
It should be added to Horizon soon though. https://github.com/stellar/horizon/issues/206
Account ID
Show the account ID of the other party participating in this transaction.
I think that in all operations, there are two parties: sender and receiver.
Amount
Positive and negative
If the amount is negative, the amount should appear in red. Always show the plus or minus symbol.
Asset code
If it is a native asset, just show XLM.
If it is a non-native asset type, show the asset code. We don't show the issuer as of right now but if it becomes more important later, we can add it in.
Memo
Type
Always show the memo type. If no memo, show NONE.
Contents
Show the memo body in the relevant format.
For hashes, show the hash.
Operation ID
This section helps a user get more in depth details about that operation. The operation ID should be a link to the operation (from _links.self).™

This is currently soft-blocked by horizon https://github.com/stellar/horizon/issues/206
The (AngularJS) backend of this transaction history can be implemented once that issue is resolved.

Edit to alert:
This tool shows up to 100 most recent payments. To view more, use the Horizon API.

Fixed in https://github.com/stellar/account-viewer/commit/d9c0d96b3926ef125a29d570cddec187b9dc2af1


The robot just moves backwards at full power no matter which angle the robot is leaning

I just built this, and ran the code- the robot just moves backwards at full power no matter which angle the robot is leaning. All firmware and sensors are updated

same here


Скласти таймлайн

Скласти список всіх (важливих) життєвих подій, визначних дат, досягнень, періодів, що дали приємний і неприємний досвід, тощо. В цьому конкретному випадку довгих списків не буває, натомість бувають погано згорнуті, тому пакуємо сюди все підряд, а про "лишні" події можна буде промовчати пізніше. Список повинен бути систематизованим і посортованим в такий спосіб, щоб читач швидко зрозумів "паттерн" і міг легко орієнтуватись в просторі і часі цього резюм

Peter Dinklage started off his career in the year 1995 with the film ‘Oblivion’. In the film, he played an actor who was frustrated at being offered only clichéd roles because he happened to be a dwarf.
He delivered his break-out performance as an actor in the film ‘The Station Agent’. He received a number of awards for his role as well as worldwide recognition.
He starred in the British comedy movie ‘Death at a funeral’ in 2007. The film was a huge success, which led them to remake an American version of it in 2010, in which Dinklage reprised his role.
In 2008, he played the role of a grumpy dwarf named Trumpkin in the sequel of the popular fantasy film series ‘The Chronicles of Narnia: Prince Caspian’. Many of the critics condemned him for playing the very stereotypical role that he has always boasted of avoiding.
His big break in television came in the year 2011 when he was selected to play Tyrion Lannister in the medieval-fantasy drama series ‘Game of Thrones’, which is based on George R. R. Martin’s novel series, ‘A Song of Ice and Fire’. People began to love and praise his character so much that his screen time was increased and with the start of the second season of the series, he was given the honor of top billing. His performance also brought along a shower of prestigious awards for him.
In 2014, Dinklage appeared in ‘Knights of Baddassdom’, which was a comedy-horror film. He also played the role of Boliver Trask in the movie ‘X-Men – Days of the future past’.
In 2015, he appeared in the film ‘Pixels’. Here, he played the role of an old arcade champion, Eddie Plant


GetUserAssetsAsync fails with json parsing error (number too big for decimal)

Describe the bug
The function call GetUserAssetsAsync fails with the following error:
{Error response: [DeserializeError] Deserialize JsonReaderException: Could not convert string to decimal:<PHONE_NUMBER>00000000000000000000. Path '[2472].networkList[0].withdrawMax', line 1, position 1221590., Path: [2472].networkList[0].withdrawMax, LineNumber: 1, LinePosition: 1221590 [Data only available when OutputOriginal = true in client options] received in 898ms}
The quantity is too big for a decimal.
To Reproduce
Just call the function GetUserAssetsAsync
Expected behavior
The function returns the user assets

Hi, this is fixed in the latest version 1.7.2

Thank you for you amazing work, that was fast :) just tested and its working now


chore: remove useless import

Description:
This PR removes a useless import - that appears to have been added by VS Code's autocomplete/autoimport feature.
Related issue (if exists): None

Thought we had tslint or compiler for unused import.

@kwonoj The in-built TSLint rule for unused imports is hugely problematic. There is a rule in tslint-etc that does a better job. If you want that enabled, I can submit a PR.

This kind of things can benefit from tools obviously, so I'm in for it if you're ok.


[zh-cn]Reference files to sync task 15

Reference files to sync task 15
Related to task-15 of issue https://github.com/kubernetes/website/issues/39987.

Thanks.
/lgtm
/approve


load -seekStride: Don't set global var

In the zed load command setting the global SeekIndexStride variable to the
value of the -seekStride flag made it so this value was ignored for
service load requests. Instead add seekStride option to the lake Load
command and propagate this value to the object writers. Add seekStride
query parameter for load requests.

This feels like a lot of wiring for a knob that won't get much use. Should we maybe make it part of a lake's or pool's configuration?

This feels like a lot of wiring for a knob that won't get much use. Should we maybe make it part of a lake's or pool's configuration?

Let's discuss

Closing and bringing this up as hidden pool config option.


RAC ComboBox isReadOnly does not disallow selections when menuTrigger is  set to focus

Provide a general summary of the issue here
The RAC ComboBox isReadOnly prop does not disallow selections from the combobox menu when menuTrigger is set to focus.
With menuTrigger='input' the user cannot open the combobox menu and not select any of the options, nor can they change the input. With menuTrigger='focus' the input still cannot be changed, but the menu keeps opening on focus, and the user can select a different option.
🤔 Expected Behavior?
Even with menuTrigger='focus' the combobox menu should not open if isReadOnly is set OR the user should not be able to make a selection.
😯 Current Behavior
The combobox menu keeps opening on focus, the user can select a different option.
💁 Possible Solution
No response
🔦 Context
No response
🖥 Steps to Reproduce
Sandbox: https://codesandbox.io/p/sandbox/gallant-wu-6xy5k2?file=%2Fsrc%2FApp.js
Both comboboxes are set to isReadOnly. In the second one, you can still make a different selection.
Version
<EMAIL_ADDRESS>What browsers are you seeing the problem on?
Firefox, Chrome, Safari, Microsoft Edge
If other, please specify.
No response
What operating system are you using?
macOS Sonoma 14.5
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response

Thanks for catching this! I think it makes sense to not open the menu on focus if isReadOnly is true even if menuTrigger="focus" is applied. https://github.com/adobe/react-spectrum/blob/81abb2185cb3a9c52a8feaf76a136c64852aea13/packages/%40react-stately/combobox/src/useComboBoxState.ts#L324 should probably be changed to if (menuTrigger === 'focus' && !props.isReadOnly) { to accomplish this


[MINOR] Quickstart.generateUpdates method add check

What is the purpose of the pull request
This pull request adds a check when calling QuickstartUtils.DataGenerator#generateUpdates.
Brief change log

Call QuickstartUtils.DataGenerator generateUpdates method directly throws exception java.lang.IllegalArgumentException: bound must be positive

Verify this pull request
This change added tests and can be verified as follows:

TestQuickstartUtils#testGenerateUpdates.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Codecov Report

Merging #2505 (a1ab5a8) into master (c4afd17) will decrease coverage by 40.49%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master   #2505       +/-   ##
============================================
- Coverage     50.18%   9.68%   -40.50%
+ Complexity     3050      48     -3002
============================================
  Files           419      53      -366
  Lines         18931    1930    -17001
  Branches       1948     230     -1718
============================================
- Hits           9500     187     -9313
+ Misses         8656    1730     -6926
+ Partials        775      13      -762

Flag
Coverage Δ
Complexity Δ

hudicli
?
?

hudiclient
?
?

hudicommon
?
?

hudiflink
?
?

hudihadoopmr
?
?

hudisparkdatasource
?
?

hudisync
?
?

huditimelineservice
?
?

hudiutilities
9.68% <ø> (-59.75%)
0.00 <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

The diff coverage is n/a.

@@             Coverage Diff              @@
##             master   #2505       +/-   ##
============================================
- Coverage     50.18%   9.68%   -40.50%
+ Complexity     3050      48     -3002
============================================
  Files           419      53      -366
  Lines         18931    1930    -17001
  Branches       1948     230     -1718
============================================
- Hits           9500     187     -9313
+ Misses         8656    1730     -6926
+ Partials        775      13      -762

Flag
Coverage Δ
Complexity Δ

hudicli
?
?

hudiclient
?
?

hudicommon
?
?

hudiflink
?
?

hudihadoopmr
?
?

hudisparkdatasource
?
?

hudisync
?
?

huditimelineservice
?
?

hudiutilities
9.68% <ø> (-59.75%)
0.00 <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Since you still did not get merge permission, I'd like to merge it right now.

@wangxianghu You can try to merge after the CI is OK.

Since you still did not get merge permission, I'd like to merge it right now.


Instructions failed

Hey this is a very cool idea, one-command setting up wordpress.
composer create-project zaherg/litepress litepress errors for me though

PHP Parse error:  syntax error, unexpected string content "sqlite3 ./public/content/datab..." in Command line code on line 1
Parse error: syntax error, unexpected string content "sqlite3 ./public/content/datab..." in Command line code on line 1

the error replicates from cli too:
sqlite3 ./public/content/database/.ht.sqlite "PRAGMA journal_mode=WAL;"

Error: unable to open database "./public/content/database/.ht.sqlite": unable to open database file

I did a mkdir -p litepress/public/content/database/.ht.sqlite and then re-ran composer install and it seems setup.
But then I will at some stage still need to put an apache or nginx around it won't I?
Once I ran php -S <IP_ADDRESS>:8000 -t public I was faced with another issue... I needed to add litepress.test to my hosts file.
This wasn't documented or expected.
Then finally I gave up and did find replace of litepress.test with <IP_ADDRESS>:8000
It's a great project. I was thinking this could make testing in CI even easier, but I think it needs a few more things worked out yet.

Missing information. Even with this fix I had to composer run several commands

install:db
install:core
install:theme

composer run install:db-update still fails with the same update, which is weird and may be a working-directory issue (I'm running from within the created litepress folder.
Other systems I am familiar with such as lando and cookiecutter, support prompting for details.

Oh and sqlite3 ./public/content/database/.ht.sqlite "PRAGMA journal_mode=WAL;" from the same folder I'm running composer run install:db-update succeeds where the composer command fails.

Hmm, I just changed the script to ignore the php -r so it now reads
        "install:db-update": "sqlite3 ./public/content/database/.ht.sqlite 'PRAGMA journal_mode=WAL';",

seems like it works...
Would you accept a patch?


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 68 ms

Resolved: ClamAV performance has improved in 71d3f0d after 22 minutes.


Mention connection to health checks for start-before/start-after annotations

Great, thank you!

Good stuff.
We do have the cmd-based liveness probes implemented, and we do the tini-pause trick to prevent containers starting before we are ready, so I think we have the primitives to actually make this work.
We will go where no k8s cluster has gone before!


Undefined array key "host"

Laravel-mongodb Version: 3.8.4
PHP Version: v8.1.2,
Database Driver & Version: 4.4.12

Description:
Connection returning undefined array key "host" on Connection.php:204, but I've used the "driver", "dns" (with full dns uri) and "database" keys, so I think is expected that the "host" is unnecessary. When I insert the host everything works.
If possible, I think I can correct and send the pull request.
Thanks.
Steps to reproduce

I used an atlas instance service, so I get the dns and database from atlas
Introduce driver, dns and database only inside mongodb key
Try to get some data

Expected behaviour
Connection established with DNS and not returning and Exception.
Actual behaviour
Returning Undefined array key "host"

How did you solve the issue? Might help others...
Thanks!

It was my mistake, I just changed dns to dsn in the connection array, sorry!
I just noticed this by doing some dumps in the method that checks if the dsn was informed  😅
Thank you!


CHIP-0019: Restricted CAT Standard

Add CHIP-19
Update status to Draft

This CHIP is now a Draft. It describes a standard for implementing Restricted Chia Asset Tokens (CATs) on Chia's blockchain. Feel free to discuss it either on Discord or on our developers' forum:
https://developers.chia.net/t/chip-0019-restricted-cat-standard
Please leave your formal review as a comment in this PR.


test_create_source_elevation is showing error trapped by MDCS

test_create_source_elevation is testing the Create Source Elevation Mosaic tools in the Elevation Tools.pyt. This toolbox has a dependency on the https://github.com/Esri/mdcs-py repo.
When running the above test the tool is trapping errors that I assume are from the configuation of MDCS-py in this repo:
     [exec] log-critical: Failed to execute. Parameters are not valid.
     [exec] ERROR 001641: The specified entry 'C:/Users/someuser/Documents/GitHub/solutions-geoprocessing-toolbox/data_management/toolboxes/parameter/RasterFunctionTemplates/AspectNumericValues.rft.xml' is invalid. A pro
cessing template must reference either a valid raster function template (RFT) XML file or a pre-existing template by name.
     [exec] Failed to execute (SetMosaicDatasetProperties).

The error mentions a path:
C:\Users\someuser\Documents\GitHub\solutions-geoprocessing-toolbox\data_management\toolboxes\parameter\RasterFunctionTemplates\AspectNumericValues.rft.xml
which does not exist, and never will. The file AspectNumericValues.rft file is part of the MDCS-py library, and is at:
C:\Users\someuser\Documents\GitHub\solutions-geoprocessing-toolbox\data_management\toolboxes\mdcs\Parameter\RasterFunctionTemplates
It seems that Create Source Elevation Mosaic is picking up a bad file path somewhere.
The full messaging output for the test is as follows:
test_create_source_elevation:
     [exec] scratch.gdb already exists
     [exec] Setting environment...
     [exec] Setting inputs...
     [exec] Starting Test: Create Source Elevation Mosaic
     [exec] log-msg: Using template:C:\Users\someuser\Documents\GitHub\solutions-geoprocessing-toolbox\data_management\toolboxes/MDCS/Parameter/Config/Elevation/S_DTED.xml
     [exec] log-msg: Using default command(s):CM+AR+CC+BB+SP+CS+BO
     [exec] log-msg: Processing command(s):CM+AR+CC+BB+SP+CS+BO
     [exec] log-msg: Command:CM->Create a new mosaic dataset.
     [exec] log-msg: Creating Geodatabase: C:/Users/someuser/Documents/GitHub/solutions-geoprocessing-toolbox/data_management/data/geodatabases/scratch.gdb
     [exec] log-warning:        File geodatabase already exists!
     [exec] log-msg: Creating source mosaic datasets:
     [exec] log-msg:    DigitalTerrainModel
     [exec] log-status: OK
     [exec] log-msg: Command:AR->Add rasters/data to a mosaic dataset.
     [exec] log-msg: Adding rasters:
     [exec] log-msg:    Using mosaic dataset/ID:DigitalTerrainModel/DigitalTerrainModel
     [exec] log-msg:    Using ART for DIGITALTERRAINMODEL: DTED
     [exec] log-msg: Adding items..
     [exec] log-msg: Calculating 'Dataset ID' for the mosaic dataset (DigitalTerrainModel) with value (DigitalTerrainModel)
     [exec] log-status: OK
     [exec] log-msg: Command:CC->Computes the minimum and maximum cell sizes for the rasters in a mosaic dataset.
     [exec] log-msg: Calculating cell ranges for:C:/Users/someuser/Documents/GitHub/solutions-geoprocessing-toolbox/data_management/data/geodatabases/scratch.gdb\DigitalTerrainModel
     [exec] log-status: OK
     [exec] log-msg: Command:BB->Build boundary.
     [exec] log-msg: Building the boundary ENVELOPE
     [exec] log-status: OK
     [exec] log-msg: Command:SP->Set mosaic dataset properties.
     [exec] log-warning: Original args may have been updated through custom code.
     [exec] log-msg: Calling (arcpy.SetMosaicDatasetProperties_management)
     [exec] log-critical: Failed to execute. Parameters are not valid.
     [exec] ERROR 001641: The specified entry 'C:/Users/someuser/Documents/GitHub/solutions-geoprocessing-toolbox/data_management/toolboxes/parameter/RasterFunctionTemplates/AspectNumericValues.rft.xml' is invalid. A pro
cessing template must reference either a valid raster function template (RFT) XML file or a pre-existing template by name.
     [exec] Failed to execute (SetMosaicDatasetProperties).
     [exec]
     [exec] log-msg: Status: FAILED
     [exec] log-status: Failed!
     [exec] log-msg: Command:CS->Calculate Statistics.
     [exec] log-msg:    Calculate statistic for the mosaic dataset : DigitalTerrainModel
     [exec] log-status: OK
     [exec] log-msg: Command:BO->Defines and generates overviews for a mosaic dataset.
     [exec] log-msg: Building overviews for:C:/Users/someuser/Documents/GitHub/solutions-geoprocessing-toolbox/data_management/data/geodatabases/scratch.gdb\DigitalTerrainModel
     [exec] log-status: OK
     [exec] log-msg: Done...
     [exec] Verifying results...
     [exec] DTM Footprint count: 8
     [exec] Test Passed

@NatalieCampos @abhiataero

Got an update from @abhiataero and re-ran the test successfully.
test_create_source_elevation:
     [exec] scratch.gdb already exists
     [exec] Setting environment...
     [exec] Setting inputs...
     [exec] Starting Test: Create Source Elevation Mosaic
     [exec] log-msg: Using template:C:\Users\matt2542\Documents\GitHub\solutions-geoprocessing-toolbox\data_management\toolboxes/MDCS/Parameter/Config/Elevation/S_DTED.xml
     [exec] log-msg: Using default command(s):CM+AR+CC+BB+SP+CS+BO
     [exec] log-msg: Processing command(s):CM+AR+CC+BB+SP+CS+BO
     [exec] log-msg: Command:CM->Create a new mosaic dataset.
     [exec] log-msg: Creating Geodatabase: C:/Users/matt2542/Documents/GitHub/solutions-geoprocessing-toolbox/data_management/data/geodatabases/scratch.gdb
     [exec] log-warning:        File geodatabase already exists!
     [exec] log-msg: Creating source mosaic datasets:
     [exec] log-msg:    DigitalTerrainModel
     [exec] log-status: OK
     [exec] log-msg: Command:AR->Add rasters/data to a mosaic dataset.
     [exec] log-msg: Adding rasters:
     [exec] log-msg:    Using mosaic dataset/ID:DigitalTerrainModel/DigitalTerrainModel
     [exec] log-msg:    Using ART for DIGITALTERRAINMODEL: DTED
     [exec] log-msg: Adding items..
     [exec] log-msg: Calculating 'Dataset ID' for the mosaic dataset (DigitalTerrainModel) with value (DigitalTerrainModel)
     [exec] log-status: OK
     [exec] log-msg: Command:CC->Computes the minimum and maximum cell sizes for the rasters in a mosaic dataset.
     [exec] log-msg: Calculating cell ranges for:C:/Users/matt2542/Documents/GitHub/solutions-geoprocessing-toolbox/data_management/data/geodatabases/scratch.gdb\DigitalTerrainModel
     [exec] log-status: OK
     [exec] log-msg: Command:BB->Build boundary.
     [exec] log-msg: Building the boundary ENVELOPE
     [exec] log-status: OK
     [exec] log-msg: Command:SP->Set mosaic dataset properties.
     [exec] log-warning: Original args may have been updated through custom code.
     [exec] log-msg: Calling (arcpy.SetMosaicDatasetProperties_management)
     [exec] log-msg: Status: OK
     [exec] log-status: OK
     [exec] log-msg: Command:CS->Calculate Statistics.
     [exec] log-msg:    Calculate statistic for the mosaic dataset : DigitalTerrainModel
     [exec] log-status: OK
     [exec] log-msg: Command:BO->Defines and generates overviews for a mosaic dataset.
     [exec] log-msg: Building overviews for:C:/Users/matt2542/Documents/GitHub/solutions-geoprocessing-toolbox/data_management/data/geodatabases/scratch.gdb\DigitalTerrainModel
     [exec] log-status: OK
     [exec] log-msg: Done...
     [exec] Verifying results...
     [exec] DTM Footprint count: 17
     [exec] Test Passed

Thanks Abhijit!!
Update will be installed today.


Isn't anonymous sign-in supported by SfB online?

I tried anonymous sign-in for SfB Online like below, the server responses '403 Forbidden'.
window.skypeWebApp.signInManager.signIn({
    version:  config.version,
    client_id: '<client id>',
    cors: true,
    name: $('#name').text(),
    meeting: $('#meetingUri').text()
}).then(function () {

So, I got a token from SfB Online server for anonymous meeting.
POST https://webdirjp1.online.lync.com/WebTicket/oauthtoken

Accept:application/json
Content-Type:application/x-www-form-urlencoded;charset='utf-8'
Origin:https://dv-xxx-test03.azurewebsites.net
Referer:https://dv-xxx-test03.azurewebsites.net/htmlcontents/UI/index.html
Host:webdirjp1.online.lync.com
client_id:

grant_type=urn:microsoft.rtc:anonmeeting&password=XXXXXXX&ms_rtc_conferenceuri=sip:xxxxx@xxxxx.co.jp;gruu;opaque=app:conf:focus:id:XXXXXXX
The response was like

{
"access_token": "cwt=AAID....7ubw",
"expires_in": 3543,
"token_type": "Bearer"
}
Then used the token for signin process like below.
window.skypeWebApp.signInManager.signIn({
    version:  config.version,
    client_id: '<client id>',
    cors: true,
    name: $('#name').text(),
    origins: ["https://webdir.online.lync.com/autodiscover/autodiscoverservice.svc/root"],
    auth: function (request, sendRequest) {
        request.headers['Authorization'] = "Bearer AAID....7ubw";
        return sendRequest(request);
    }
}).then(function () {

But the result was  '403 Forbidden', as well.
To clarify the reason, I sent a request to UCWA endpoint with a token which can be got like mentioned above. The response was also '403 Forbidden'.

I cannot understand the behavior of SfB Online.
UCWA of Sfb Online itself doesn't support anonymous sign-in?

the documentation was incorrect. The Web SDK does not currently support signing in to an anonymous SfB online meeting.
We have corrected the docs.


Accept old and new userid idp format in provider authorizer interceptor

Continuation of #2289 -  but with branch on my own fork instead of on the main cs3org repo.

Closing as stale.


Please Add Support Device Android 10 & Android 11

I ask the devs to support Android 10 to Android 11 in Cosmic EMU so that many users can use this emulator.

Perhaps with a few adjustments, I can bring support for Android 11, but not for 10. It will require many fixes, but I'll leave a note

I wonder when it will be released again for the alpha version which is already supported on Android 11 because I'm ready to take part in the trials for this cosmic station emu
because version 0.0.18 is still not supported on Android 11

I'll outline for the next version, but there's still a lot to do for version 0.0.19


Option - Custom options for harmony.conf

Ask if they are using more than 10 keys, get amount and set in harmony.conf

Ask if they would like to use a BLS.pass file for their BLS Keys.
This will require your password is the same for every BLS Key.

This one i've decided:
If you're going to go change it, why don't we just set it to 30 to start. You already know what you're doing if you want more than 10 keys on one node.


Add convenience initializer for computed properties

This PR adds a new convenience initializer for computed properties, making them as convenient to create as FunctionDecls.

@swift-ci please test


What is the recommended way to pass untrusted strings to the AST builder?

#1219 is one approach for preventing SQL injection, but since gluesql has the AST bulider, I'm sure there's a safe way to pass untrusted strings into queries. I'm just not sure what that is.
Here's what I've found that "works", but I want to make sure it's the proper approach:
use gluesql::core::ast_builder::*;
use gluesql::memory_storage::MemoryStorage;
use gluesql::prelude::{Error, Glue, Value};

#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<(), Error> {
    let storage = MemoryStorage::default();
    let mut glue = Glue::new(storage);

    table("foobar")
        .create_table()
        .add_column("message TEXT")
        .execute(&mut glue)
        .await?;

    let message = r#"
        "Even the smallest person can change the course of the future."
            — Galadriel, The Fellowship of the Ring
    "#;

    // Naive approach:
    let err = table("foobar")
        .insert()
        .columns("message")
        .values(vec![message])
        .execute(&mut glue)
        .await
        .unwrap_err();
    println!();
    println!("naive approach failed with: \n\t{}", err);
    println!();

    // "Working" approach:
    table("foobar")
        .insert()
        .columns("message")
        .values(vec![ExprList::from(
            &[ExprNode::QuotedString(message.into())] as &[ExprNode],
        )])
        .execute(&mut glue)
        .await?;

    let result = table("foobar").select().execute(&mut glue).await?;

    let first = result.select().unwrap().next().unwrap();

    let text = match first.get("message") {
        Some(Value::Str(s)) => s,
        _ => unreachable!(),
    };

    println!("select result:\n\t{}", text);

    Ok(())
}

An example showing how to pass untrusted values safely would be greatly appreciated!

An example showing how to pass untrusted values safely would be greatly appreciated!
👍 thanks, it would be certainly good to add this.

there exists some sugar functions you can consider to use.
currently we don't have parameter binding but there is safe way when we use ast builder.
e.g.
https://github.com/gluesql/gluesql/blob/235fd6e4cf8145dfb232f9618ba4954cce32fe45/core/src/ast_builder/expr/mod.rs#L332-L371