A simple c++ example

I see that in the roadmap, there is the task of documentation :)
Could you maybe just provide a simple example of C++ usage, since I cannot get it to work
I have managed to get native UE websockets to work, but would like to try using socketcluster
I have this for now:
A method to try and connect and send a message, it is called in BeginPlay as a component of an actor (just to create a simple demo proof of concept)
void USocketCluster::ConnectSocketCluster()
{
	TSubclassOf<USCAuthEngine> AuthEngine = nullptr;
	TSubclassOf<USCCodecEngine> CodecEngine = nullptr;
	ESocketClusterProtocolVersion Version = ESocketClusterProtocolVersion::SocketCluster ;
	USCJsonObject* Query = nullptr;

	UE_LOG(LogTemp, Warning, TEXT("Trying socketcluster"));
	USCClientSocket* Client = USCClient::Create(
            GetWorld(),
            Query,
            AuthEngine,
            CodecEngine,
            TEXT("localhost"),
            false,
            3333,
            TEXT("/socketcluster"),
            Version,
            1000,
            true,
            true,
            1000,
            1000,
            2,
            5000,
            200,
            1000,
            false,
            true,
            TEXT("timestamp"),
            TEXT("auth"),
            false,
            false,
            false,
            TEXT("ue4_")
            );
	ESocketClusterState State = Client->getState();
	UE_LOG(LogTemp, Warning, TEXT("State: %hhd"), State);

	Client->send(TEXT("customRemoteEvent"));
	UE_LOG(LogTemp, Warning, TEXT("End Create socketcluster"));

}

and a node server from the examples
const http = require('http');
const socketClusterServer = require('socketcluster-server');

let httpServer = http.createServer();
let agServer = socketClusterServer.attach(httpServer);

(async () => {

  // Handle new inbound sockets.
  for await (let {socket} of agServer.listener('connection')) {
	console.log("someone connected");

    (async () => {
      // Set up a loop to handle and respond to RPCs for a procedure.
      for await (let req of socket.procedure('customProc')) {
        if (req.data.bad) {
          let error = new Error('Server failed to execute the procedure');
          error.name = 'BadCustomError';
          req.error(error);
        } else {
          req.end('Success');
        }
      }
    })();

    (async () => {
      // Set up a loop to handle remote transmitted events.
      for await (let data of socket.receiver('raw')) {
        console.log("clik")
      }
    })();

  }
})();

httpServer.listen(3333);

I have tried manually connecting, and all kind of param changes both on server and client, but cannot get a connection through.
This is the outputlog of the code above
LogOnline: OSS: Creating online subsystem instance for: :Context_9
LogTemp: Warning: Trying socketcluster
LogUObjectBase: Warning: NULL object
LogSCSocket: Creating Vhost 'default' (serving disabled), 1 protocols, IPv6 on
LogSCSocket: created client ssl context for default
LogTemp: Warning: State: 1
LogSCErrors: Error: {"name":"SocketProtocolError","message":"Socket closed without status code","code":1005}
LogTemp: Warning: End Create socketcluster
PIE: Play in editor start time for /Game/UEDPIE_0_Empty24 0.389
LogSCSocket: lws_client_handshake: got bad HTTP response '400'
LogSCErrors: Error: {"name":"SocketProtocolError","message":"HS: ws upgrade response not 101","code":1005}

Would it be possible to provide one simple working example of client server (UE4 c++ component) -> (nodejs server)
Thank you!

Yeah, we were planning on finishing the docs for blueprint and c++ but after the major change by epic now we have to make the client compatible first.
Oke a couple of things,
change the path to TEXT("/socketcluster/")
change the version to ESocketClusterProtocolVersion::ASyngular
The reason is that, when we were working on the next version we first decided to name it ASyngular but later we as a community decided to make it the next major version of Socketcluster with backward compatibility, so ESocketClusterProtocolVersion::SocketCluster -> v14
SocketClusterProtocolVersion::ASyngular -> v15 and higher
The client was updated right before we merged the 2 projects, that's why it's all over the place, i hope when we get time to make it work with 4.25 we can overhaul the code and make the function names the same as v15 for example
Let me know if it works with the changes.

You can view the default settings here btw https://github.com/ziicreater/socketcluster-client-ue4/blob/master/SocketCluster/Source/SCClient/Public/SCClient.h#L83

thank you for the tips. I tried them and it doesn't seem to make any difference.
I get in the log:
LogTemp: Warning: Trying socketcluster
LogUObjectBase: Warning: NULL object
LogSCSocket: Creating Vhost 'default' (serving disabled), 1 protocols, IPv6 on
LogSCSocket: created client ssl context for default
LogTemp: Warning: State: 1
LogSCErrors: Error: {"name":"SocketProtocolError","message":"Socket closed without status code","code":1005}
LogTemp: Warning: End Create socketcluster
PIE: Play in editor start time for /Game/UEDPIE_0_Empty24 0.114
LogSCSocket: lws_client_handshake: got bad HTTP response '400'

The interesting thing though I get this with the example server. With another test node express i get the same, but i see a connection on the server side, which leads me to think this could be a server issue, and not a client connection problem.
If you have any ideas, or a simple working server/client do not hesitate to send them :D
As I have mentioned, I have a working raw websocket solution, but would love to utilize all the socketcluster  goodies :)

No problem here to help,
Yeah the error is strange
got bad HTTP response '400'
means the page cannot be found, so basically it's something with the server.
i tested it with latest socketcluster-server with the following setup (pretty default)
https://gist.github.com/inQonsole/acb3a6ca602e917c5d0c9f4195f0905c

If your project has not private in it, you can upload the project files so I can take a look at it to narrow down the problem.
i also notice that you use Client->Send to send RPC call that's not the correct way to use that, send uses raw data with will call the raw event on the server side.
if you want to make a RPC call on the server side you need to call emit('customRemoteEvent', data, callback);

I just re-created your setup to see if i could see anything here.

No issues at all.

Hmm yes, it seems that the send part is the culprit.
If I have a Client->send(TEXT("customRemoteEvent")); call after connecting, then it doesn't do anything for like 7-10 seconds and then connects to the server. If I remove the ->send call then it connects instantly
I just never waited that long to see it happen :)
It seems to connect now, and thats the most important part, I guess I can figure out messaging sending from here :)
Thank you very much for your help!

Mmm that is strange, i'm deff going to look into that because it shouldn't affect it, it does not send anything until it's connected or until socketcluster completes the handshake.
Thanks for getting back to me, i'm going to look into that issue, and hopefully, get it fixed with the new version for 4.25
Let me know if there is anything else you run in to.

It has been a wild ride :D
But I finally managed to get some json messages from and to the server and clients.
I must say not having docs and examples lenghtens the process deeply, since I needed to go through the code and have no real reference as to how something should be done.
I am putting an example here, in hopes of helping someone that needs a similar working example
I emphasize this is a working example, probably not a perfect example as I made it up myself through ruffling through the code, If you see anything that should be changed to something better, please feel free to comment and let me know.
I especially feel there is a better way for accessing, reading and sending JSON values, as the only usable way I have managed to send a complex json object is by turning it from and into strings and using the FJsonDataBag.
I never need strings over the network, I always basically want to send nested objects, as that is the most complex example and I can derive anything from it.
Feels dirty, but as I said, it works :D
Nodejs server:
const http = require('http');
const path = require('path');
const eetase = require('eetase');
const socketClusterServer = require('socketcluster-server');
const express = require('express');
const serveStatic = require('serve-static');

const ENVIRONMENT = process.env.ENV || 'dev';
const SOCKETCLUSTER_PORT = process.env.SOCKETCLUSTER_PORT || 8000;

let httpServer = eetase(http.createServer());
let agServer = socketClusterServer.attach(httpServer);
let expressApp = express();
expressApp.use(serveStatic(path.resolve(__dirname, 'public')));

(async () => {
  for await (let {socket} of agServer.listener('connection')) {
    console.error("Someone connected");
    (async () => {
      // Set up a loop to handle remote transmitted events.
      for await (let data of socket.receiver('hello')) {
        console.log("hello event");
        console.log(data);
      }
    })();
  }
})();

send = function (){
  channel = "test";
  console.log("Sending to UE to channel: " + channel);
  json = {"Root":"hello", "params" : {"one" : 2}};
  agServer.exchange.transmitPublish(channel, JSON.stringify(json));
}
setInterval(send, 1000);

httpServer.listen(SOCKETCLUSTER_PORT);

UE4.24 client .cpp component file:
// Fill out your copyright notice in the Description page of Project Settings.

#include "SocketCluster.h"

#include "JsonObjectConverter.h"
#include "Serialization/JsonTypes.h"
#include "SCClient.h"
#include "SCClientSocket.h"
#include "Serialization/JsonSerializerMacros.h"

void USocketCluster::DisconnectSocket()
{
    Client->disconnect();
    Client->destroy();
}

void USocketCluster::ConnectChannel()
{
    Client->subscribe(TEXT("test"));
    Client->watch(TEXT("test"), [&](const TSharedPtr<FJsonValue> Data)
    {
        this->TestCallBack(Data);
    });
}

void USocketCluster::TestCallBack(TSharedPtr<FJsonValue> Data)
{
    FJsonDataBag JsonData;
    JsonData.FromJson(USCJsonConvert::ToJsonString(Data));
    USCJsonObject* RealJsonObject = USCJsonConvert::ToSCJsonObject(JsonData.JsonObject);
    USCJsonValue* OneJsonValue = RealJsonObject->GetField(TEXT("Root"));
    UE_LOG(LogTemp, Warning, TEXT("Im in TestCallBack! Got the data: %s "), *OneJsonValue->AsString());
}

void USocketCluster::ConnectSocketCluster()
{
    UE_LOG(LogTemp, Warning, TEXT("Trying to connect to socketcluster"));
    Client = USCClient::Create(
        GetWorld(),
        nullptr,
        nullptr,
        nullptr,
        TEXT("localhost"),
        false,
        8000,
        TEXT("/socketcluster/"),
        ESocketClusterProtocolVersion::ASyngular,
        100.0f,
        true,
        true,
        10.0f,
        10.0f,
        1.5,
        60.0f,
        0.0f,
        0.0f,
        true //const bool PingTimeoutDisabled
    );
}

USocketCluster::USocketCluster()
{
    PrimaryComponentTick.bCanEverTick = true;
}

void USocketCluster::BeginPlay()
{
    Super::BeginPlay();
    ConnectSocketCluster();
    ConnectChannel();
}

// Called when the game starts
void USocketCluster::EndPlay(EEndPlayReason::Type Reason)
{
    DisconnectSocket();
    Super::EndPlay(Reason);
}

// Called every frame
void USocketCluster::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
    Super::TickComponent(DeltaTime, TickType, ThisTickFunction);

    if (!HasBegunPlay())
    {
        return;
    }

    TickNum++;

    if (TickNum % 120 == 0)
    {
        if (Client != nullptr)
        {
            FJsonDataBag Message;
            Message.FromJson(TEXT("{\"One\":\"Two\", \"params\":{\"something\":\"new\"}}"));
            Client->emit(TEXT("hello"), USCJsonConvert::ToJsonValue(Message.JsonObject));
        }
    }
}

Yes there is a better way, especially regarding JSON
TSharedPtr<FJsonObject> Data = MakeShareable(new FJsonObject);
Data->SetStringField("One", "Two");

TSharedPtr<FJsonObject> Params= MakeShareable(new FJsonObject);
Data->SetStringField("something", "new");
Data->SetObjectField("params", Params);

And there are many more JSON types they get auto-converted from UE4 to JSON standard
you can also make FJsonValue types or convert an FJsonObject to an FJsonValue using
USCJsonConvert::ToJsonValue(Data);
Hope that helps.

Thank you for the example!
The main problem i faced is TestCallBack(TSharedPtr Data) which expects a JSON value, and I couldnt get an object in there

The main reason you can't directly use a JSON object at the return data is that we don't know the data that is returned, it could be a number, string, object, boolean etc...
So value can be anything, from the value you can read it as anything.
FJsonDataBag JsonData;
JsonData.FromJson(USCJsonConvert::ToJsonString(Data));
USCJsonObject* RealJsonObject = USCJsonConvert::ToSCJsonObject(JsonData.JsonObject);

That can all be converted into this
TSharedPtr<FJsonObject> Object = DataValue->AsObject()

Object->GetArrayField("");
Object->GetBoolField("");
Object->GetIntegerField("");
Object->GetNumberField("");
Object->GetObjectField("");
Object->GetStringField("");

// check if the object has the field you are looking for returns true or false
Object->HasField("");


publish for scala 2.12

✅ https://bintray.com/univalence/univalence-jvm/spark-test/0.2%2B293-78c9ea2e


Street name expansion file should use regex matches not simple replace

For example, this fixadd:
fixAdd: concat("name=", replace(tag("name"), "N ", "North "));
Will incorrectly fixup an all cap street name of "N ACORN ST" to "North ACORNorth ST".
It was faster to get the simple rules set up and I'm review everything but better to patch it than leave a landmine.

Fixed!


Don't error on warnings

why do we want this?

This setting during development is punitive. Unused variable? No test execution for you.

My 2 cents would be: if we want an error behavior on warnings; then let's make it so they are actually errors.


print names of resource objects

I would like to make a simple change to BaseResource that will enhance debugging and testing.
The method unicode is responsible for converting an object to a printable format in print statements, so that adding this code
def __unicode__(self):
    return self.metadata.title

to baseResource will cause a BaseResource r to be printed (via print(r)) as
<BaseResource: my title>

This would make it much easier to debug test cases and log messages. We could put the short id into the unicode to make it even more useful.
I am using this hack on my branches and finding it useful.

I think this is related https://docs.djangoproject.com/en/1.10/topics/python3/

@alvacouch close or act on if needed

Done in prior pull requests.


StartService failed GetLastError() ==50

Can i use this code in the Vmware workstation 15.0.2 build-10952284？

AFAIK I think it's not possible as VMware doesn't emulate Intel PT functionalities in the guest CPU.


chore: Update developer-readme.md (Scala Style Check)

Adding a missing style check command for test projects.  The scala style check should run with the following command instead of "sbt test:scalastyle".

sbt test:scalastyle

Related Issues/PRs

#xxx
What changes are proposed in this pull request?
Adding scala style check command for test project.
How is this patch tested?
Not required.

[ ] I have written tests (not required for typo or doc fix) and confirmed the proposed feature/bug-fix/change works.

Does this PR change any dependencies?

[*] No. You can skip this section.
[ ] Yes. Make sure the dependencies are resolved correctly, and list changes here.

Does this PR add a new feature? If so, have you added samples on website?

[*] No. You can skip this section.
[ ] Yes. Make sure you have added samples following below steps.

Find the corresponding markdown file for your new feature in website/docs/documentation folder.
Make sure you choose the correct class estimators/transformers and namespace.
Follow the pattern in markdown file and add another section for your new API, including pyspark, scala (and .NET potentially) samples.
Make sure the DocTable points to correct API link.
Navigate to website folder, and run yarn run start to make sure the website renders correctly.
Don't forget to add <!--pytest-codeblocks:cont--> before each python code blocks to enable auto-tests for python samples.
Make sure the WebsiteSamplesTests job pass in the pipeline.

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/reference/developer-readme.md
84
100
61
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx


Port Boopickle to cats effect 3 and add basic munit infrastructure

This PR ports boopickle to run on CE3 but perhaps more important it lays the basics to use
munit/munit-cats-effect for tests.
There is still some work to do but I wanted to verify if the idea of munit seems workable

Also, if this works, we should consider backporting the munit infrastructure to series/0.21.  Keeping those branches aligned as much as possible works strongly to our benefit while we're finishing up 1.0.

Maybe we can merge this with the law check commented while we figure out how to check effectful laws with discipline and munit

I can do it, I'll rebase this and merge it

Ok I squashed this and I will merge to move on to others, The doc task is not yet building


Alignment of Question Paper section

Describe the bug
Currently, the alignment of the question paper section is not proper as it should be centered on user experience.
To Reproduce
Steps to reproduce the behavior:

Go to 'Home'
Click on 'Question Paper'
Scroll down to 'Mobile Responsive'
See error

Expected behavior
Alignment of question paper section should be align as center
Screenshots

Desktop (please complete the following information):

OS: Windows
Browser: Chrome,  Brave
Version 22

Smartphone (please complete the following information):

Device:  Realme GT2
Browser : Chrome

@yatulearn please assign this work to me


addChild/removeChild transform IDs were wrong

I thought that's critical, but i think it waits for 4.4, we can discuss it.
"child.transform._parentID" can be anything at the time of adding the child, thus, collisions may happen.
Also I removed some of double-tests, that checked both addChild and addChildAt the same way.

@GoodBoyDigital Detached container :( That's one of tests: addChild, update it, parentID will be 0. remove child, ask getBounds(), you'll receive previous bounds instead of new ones.

awesome! That makes sense!


feat(all): emit build to example. Add jsdelivr and browser fields

@EisenbergEffect You will need to run build in at least 2 repos: templating & templating-binding to add the most recent fixes. And run npm run bundle inside this repo for a release. It's ready for unpkg. For jsdelivr, I think we will need to tag release before it can work properly, as their example for github is something like this:
<EMAIL_ADDRESS>
If we release this to npm, then probably no need for git tag.

@bigopon I'd like to request one addition to this PR. Can you add a section to the README which describes all the file outputs of the build process and what each one is?

@EisenbergEffect I've added the basic of what I think enough. Please have some modification as you see fit.

@EisenbergEffect Note that I'm installing from github repos, not npm. Not sure if it should be changed to npm.

Perfect. Thanks @bigopon !


Ensure initial values are present on first render

Attempt to fix #621

👍 @yesmeck

Published as v5.2.5.

👍  FWIW fixed my issue with checksum fail on server-side-rendered forms.

@yesmeck You're my hero! thanks!


Increase coverage

Codecov Report
Patch coverage has no change and project coverage change: +1.12 :tada:

Comparison is base (b4471fe) 96.57% compared to head (5a6b753) 97.70%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #87      +/-   ##
==========================================
+ Coverage   96.57%   97.70%   +1.12%
==========================================
  Files           9        9
  Lines         526      522       -4
==========================================
+ Hits          508      510       +2
+ Misses         18       12       -6

Impacted Files
Coverage Δ

cluster_experiments/experiment_analysis.py
95.16% <ø> (+0.76%)
:arrow_up:

cluster_experiments/perturbator.py
100.00% <ø> (+2.38%)
:arrow_up:

cluster_experiments/random_splitter.py
99.15% <ø> (+0.82%)
:arrow_up:

cluster_experiments/washover.py
100.00% <ø> (+3.33%)
:arrow_up:

cluster_experiments/utils.py
100.00% <0.00%> (+28.57%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


ensure that keyscan output includes port

Description
ensure that keyscan output includes port

older versions of openssh-client fail to output key with port despite being
specified. SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u2 exhibits this error.

Check List

[x] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable
[ ] The CLA has been signed. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

replaced by #63 and this PR included debugging code and failed to handle the non-keyscan case


SWARM-1252 - Don't treat on/off/yes/no as Yaml booleans.

Motivation
We like our booleans to be true or false, not on or off.
Modifications
Override the Yaml parser to not treat on/off/yes/no as
magical boolean-like creatures.
Result
John Ament is happier.

[X] Have you followed the guidelines in our Contributing document?
[X] Have you created a JIRA and used it in the commit message?
[X] Have you checked to ensure there aren't other open Pull Requests for the same issue?
[X] Have you built the project locally prior to submission with mvn clean install?

@gastaldi Approved although tests fail?

I forgot to add a comment: Merge it only if tests pass ;)


Command: gm hermes keys failed

Summary of Bug
https://hermes.informal.systems/tutorials/local-chains/start.html
It is said that gm hermes keys would automatically generate private keys.
gm hermes keys
echo $?
1

But it failed without any message.

Version
gm version
v0.1.3

Steps to Reproduce

Acceptance Criteria

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate milestone (priority) applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

Hi,
Thanks for opening an issue!
Can you paste the output of gm version ?

For completeness, this is an example successful output of gm hermes keys:
$ gm hermes keys
2022-10-27T15:15:41.186818Z  WARN ThreadId(01) key wallet will be overwritten
SUCCESS Added key 'wallet' (cosmos1rh3g09xnupaalle4peryxvphf3mugpgstk6lwe) on chain ibc-0
2022-10-27T15:15:41.331577Z  WARN ThreadId(01) key wallet2 will be overwritten
SUCCESS Added key 'wallet2' (cosmos1dlsgkltvaf0n6gy2kptmqfnv7x7a7uzzk99lsw) on chain ibc-0
2022-10-27T15:15:41.459928Z  WARN ThreadId(01) key wallet1 will be overwritten
SUCCESS Added key 'wallet1' (cosmos1nvg0q6ekrppw37dul90fumtv95ethvlfhwzc66) on chain ibc-0
2022-10-27T15:15:41.642505Z  WARN ThreadId(01) key wallet will be overwritten
SUCCESS Added key 'wallet' (cosmos1xsz4fscujr9td9duf9jdp40ll079z88vlpggnp) on chain ibc-1
2022-10-27T15:15:41.779992Z  WARN ThreadId(01) key wallet2 will be overwritten
SUCCESS Added key 'wallet2' (cosmos1tfymemj0ls8nncgstc5e0pnwls2eycz35fa235) on chain ibc-1
2022-10-27T15:15:41.958166Z  WARN ThreadId(01) key wallet1 will be overwritten
SUCCESS Added key 'wallet1' (cosmos10dlj48yyl3ffr4uppkqgyejfr6cr7747k8glva) on chain ibc-1

Hi,
Thanks for opening an issue! Can you paste the output of gm version ?

gm version: v0.1.3

@seanchen1991 @harveenSingh please transfer this issue to the gm repo, thanks!

gm version: v0.1.3

It seems you are using the latest version. Could you also please share your gm.toml file?

[global]
  add_to_hermes = false
  auto_maintain_config = true
  extra_wallets = 2
  gaiad_binary = "~/go/bin/gaiad"
  hdpath = ""
  home_dir = "$HOME/.gm"
  ports_start_at = 27000
  validator_mnemonic = ""
  wallet_mnemonic = ""

  [global.hermes]
    binary = "./hermes" #change this path according to your setup
    config = "$HOME/.hermes/config.toml"
    log_level = "info"
    telemetry_enabled = true
    telemetry_host = "<IP_ADDRESS>"
    telemetry_port = 3001

[ibc-0]
  ports_start_at = 27010

[ibc-1]
  ports_start_at = 27020

[node-0]
  add_to_hermes = true
  network = "ibc-0"
  ports_start_at = 27030

[node-1]
  add_to_hermes = true
  network = "ibc-1"
  ports_start_at = 27040

I managed to reproduce the problem. You found a bug, thanks!
The fix is to change:
-    binary = "./hermes" #change this path according to your setup
+   binary = "PATH-TO-HERMER-BINARY" #change this path according to your setup

Where the PATH-TO-HERMER-BINARY is a correct path to your hermes binary. This might be for instance:

hermes if the binary is installed and available on your $PATH
or /Users/.../ibc-rs/target/debug/hermes if the binary is only compiled (not cargo installed).

On our side, we should fix this bug in gm by adding a check to no longer fail silently when the Hermes binary path is inaccessible.


fix: typo in docs for DB_PORT

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Update sites.js

Full Name: Nicholas Ficara
Cohort Year: 2027
Full website URL: https://nicholasficara.dev/
So we know you're human: Hi!
LinkedIn or a similar profile: https://www.linkedin.com/in/nicholasficara/

@Green-Robot-Dev-Studios Thanks for the PR! Could you add a linkback to the webring though somewhere on your website?


The materialstore-mapper project should be a part of the materialstore project

The materialstore-mapper is too closely related to the materialstore project.
These 2 projects should be united to form a single project with multiple subprojects

It was done,
but now Dec 2022, I have decided to migrate the com.kazurayam.materialstore.mapper package back from the materialstore project into the materialstore-mapper project.
Why?
I want the dependencies list of the materialstore project as simple as possible.
But the classes in the mapper package has many external dependencies: PDFBOX, etc. These dependencies is poluting the materialstore.
It is better to isolate the mapper package form the materialstore project.

Also, I have successfully developed

https://github.com/kazurayam/inspectus4katalon-gradle-plugin

This Gradle plugin makes it easy to include many external dependencies into the Drivers folder of a Katalon Studio project.  Having another jar --- materials-mapper-x.x.x.jar is not a big issue any longer

done as ver 0.9.0


Web Components: [Lead space] Create and / or rename variants per functional specs and align with React storybook

User Story

As a [user role below]:
Carbon for IBM.com user

I need to:
have the aligned / available Lead space storybook variants

so that I can:
properly create the ibm.com web pages

Additional information
Naming:

Deprecate name "Default", so our Tall = 560, Super = 640

Visual bugs:

stack image on mobile (top priority)
gradient should be updated to spec

Storybook knobs:

size knob they might not get to make all the sizes, but at least the knob should be there in storybook
image knob

Corresponding React issue (#5507 )
Add height options for super, tall which would be default, medium and short
Include Knobs for adding button, button group, image

Desired storybook for Lead space is:
Lead space
|--- Super
|--- Tall
|--- Medium
|--- Short
|--- Centered

Acceptance criteria

[ ] Variant versions as documented in the functional specs are created
[ ] Aligned storybook naming between React and Web components is complete

Reviewed in the April 19 engineering refinement meeting.  Sized based on the discussions.  Shixie will update this issue with the additional details discussed in the meeting.  Work was not scheduled in the meeting.  Including in sprint 21-10 based on the bug takedown priority.
cc:  @shixiedesign @jeffchew

Duplicate.  Closing


Add test coverage for native fallback

We currently test using the *.dev.js versions of the polyfill. These do not include native fallback logic and as a consequence bugs relating to native fallback persist undetected until they are hit by users in the next release.
See: https://github.com/web-animations/web-animations-js/issues/123

I made an error here, we currently run the web-platform-tests suite with the fallback disabled by manually hiding the native implementation:
https://github.com/web-animations/web-animations-js/blob/dev/test/resources/testharnessreport.js#L412
The *.dev.js versions of the polyfill are not used for automated testing.


Filter by tagged items?

It's possible to use value "_untagged" in tagFilter  to get all items that are not tagged yet.
Is it possible to do the opposite - get all items that are tagged?
Perhaps by negating the condition, something like "NOT untagged"?

It doesn't look like this is an option in the Pocket API so you would need to do this after retrieval.


Uninterrupted-Nirvaan

This Midwestern landscape creates a feeling of unity and uninterrupted peace. The mountains and open skies symbolize a sense of boundless freedom, evoking a feeling of interruption—a state of undisturbed harmony and oneness with the environment. I spent a considerable amount of time working on this scene. I hope this gets selected to be part of your repository. I have a little bit of background in coding, mostly with Python. I made a program where it creates a word map out of the positive things about the world.

@leomcelroy Can you please review this submission? I made changes to my original submission and created a mountain/midwestern landscape.

The new submission is good! The PR is a bit messed up with the old one though. I just removed it for you.

Congrats you've earned your Blot and can order it here.


Error on running command 'npm run build'

I am getting ERR_INVALID_AVG_TYPE error on running command 'npm run build'. Could you help me on it?
npm run build

<EMAIL_ADDRESS>build
webpack -p

Browserslist: caniuse-lite is outdated. Please run:
npx browserslist@latest --update-db
node:internal/fs/utils:637
throw new ERR_INVALID_ARG_TYPE(propName, ['string', 'Buffer', 'URL'], path);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received undefined
at Object.open (node:fs:472:10)
at ReadStream._construct (node:internal/fs/streams:64:17)
at constructNT (node:internal/streams/destroy:288:25)
at processTicksAndRejections (node:internal/process/task_queues:80:21) {
code: 'ERR_INVALID_ARG_TYPE'
}
npm ERR! code 1
npm ERR! path C:\sap
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c webpack -p
npm ERR!      C:\Users\Win 10\AppData\Local\npm-cache_logs\2021-03-20T07_59_00_026Z-debug.log

Same error here!

Which version of node do you guys have ?

I have the latest version 14.16.0.

Can you try to run the app using powershell instead of cmd ?

I did it with powershell also but the same error occur.

I just tried the build script on W10, it works fine for me. Could you try cloning and installing the project again ?

Still with the same problem :(
I downloaded last version of the code, followed the steps but the same error occurs when running npm run build from the command shell inside the directory.
node:internal/fs/utils:637
throw new ERR_INVALID_ARG_TYPE(propName, ['string', 'Buffer', 'URL'], path);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received undefined
at Object.open (node:fs:472:10)
at ReadStream._construct (node:internal/fs/streams:64:17)
at constructNT (node:internal/streams/destroy:288:25)
at processTicksAndRejections (node:internal/process/task_queues:80:21) {
code: 'ERR_INVALID_ARG_TYPE'
}
npm ERR! code 1
npm ERR! path C:\temp
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c webpack -p
npm ERR!      C:\Users\Win10\AppData\Local\npm-cache_logs\2021-03-27T16_47_01_291Z-debug.log
I found that this can be a react-script related error, could that be the issue?

Same Error again!!!
But I think there is a problem, while running command 'webpack -p'.
Something is wrong in webpack configfile.

I initially got the webpack -p error and solved it by installing the specific version of webpack mention in the config.
Now I am stuck with the error -
node:internal/fs/utils:637
throw new ERR_INVALID_ARG_TYPE(propName, ['string', 'Buffer', 'URL'], path);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received undefined
I would want to know the version of Node you are using in your project. Please help.

I was able to get through webpack error. Now getting "Cant connect"
Starting script...
Going to: https://performancemanager.successfactors.eu/sf/learning?company=learninghub
Entering login: ****
Entering password: ***
Submiting...
Redirected to: https://accounts.sap.com/saml2/idp/usso/Learning_Hub
Can't connect :(
Error: Error during init
Looks like the SSO sign in is failing when needs a fix in the code. please help

For the webpack issue, you can try to set the webpack version to 4.43.0 (instead of ^4.43.0) ?
For the connection issue, someone has solved it : https://github.com/AZn5ReD/saplearninghub-pdf-downloader/issues/21#issuecomment-791359381.

I've got the same TypeError [ERR_INVALID_ARG_TYPE] but just in my OSx using the NodeJS version V15.9.0. In my W10 with Node version v12.19.0, this error didn't happen.

Hi all, I'm getting the following error:
"webpack" is not recognized as an internal or external command,
program or executable batch file.
How could I solve it?
Thanks in advance.

Looks like the version of NodeJS you are using is too high : https://stackoverflow.com/questions/69692842/error-message-error0308010cdigital-envelope-routinesunsupported
Please downgrade it or use nvm.

Looks like the version of NodeJS you are using is too high : https://stackoverflow.com/questions/69692842/error-message-error0308010cdigital-envelope-routinesunsupported Please downgrade it or use nvm.

It worked!
Thank you so much!!!


sessionStore deletion, server.request middleware call

So I've been trying to figure this out for a few hours, forgive my naivete.
When using connect's MemoryStore, (yeh, yeh I should be using redis, this is educational only.) Where is the Session stored?
If you don't assign a variable to it... and allow Express to initialize the default MemoryStore
app.use(express.session({ secret: "keyboard cat" }));

How do you access the MemoryStore ? Anything like, server.routes.session.store ?
I know you can access it with req.sessionStore, but I'm trying to access it with only the server variable. So my follow-up question is how do you simulate a request, or does Express have anyway to do "fake" requests? Like...
server.runFake(function(req, res){
req.blah  // Do some req/res stuff
console.log(res...)
});

// ...or...

console.log(server.request)  // Request object ?
console.log(server.response)  // Response object ?

Basically, must I have to do something like...
server = express.createServer({...})

server.get('/delete', function(req, res){
 req.sessionStore.clear()
});

require('superagent').get('http://localhost:3000/delete')

just to clear the sessions, with default MemoryStore, or is there a better way?
Thank You!

We had the same issue just today attempting to access the session from socket.io's connection event.
I poked around in the debugger and in the codebase to try and find where express was keeping the session stores but I could not find it.
We solved the issue by creating the store ourselves and passing it to express...
express = require 'express'

sessionStore = new express.session.MemoryStore

app = express.createServer()
app.configure ->
  app.use express.session store: sessionStore, secret: 'top secret'

This way you have the reference sessionStore to the session store.
Let us know if there's a reference from app...


Stop using Twitter for documentation examples.

Resolves #96.

@michal-niklas, does this seem better?


"Check for Updates..." disabled

Version 5.0a1 (2185)
I saw this before the alpha, but it's happening again in alpha 1. I have to download the full build from the website instead of using Sparkle.

This might have been user-error on my part. It worked fine for updating to alpha 3 tonight. I'll open again if it happens.

This is a bug in Sparkle, unfortunately.

What's the fix for this?  It happened to me too.

You can work around this issue by directly downloading from the NetNewsWire home page.  https://ranchero.com/netnewswire/

I quit and relaunched NNWit, and it offered me the update.


Add healthcheck to Portainer

https://github.com/portainer/portainer/issues/1364

Wontfix because we decided to remove Portainer from the stack (https://github.com/kalisio/kaabah/issues/123)


HIVE-28042: DigestMD5 token expired or does not exist issue while opening connection to HMS

What changes were proposed in this pull request?
Adding two changes to fix this issue:

Rework expiry thread to not remove token after renewal time has passed for that particular token. It will actually try to renew the token in this case.
Individual calls to retrievePassword during the TSaslClientTransport auth will also try to renew the token if required before retrieving the password.

Why are the changes needed?
Facing DigestMD5 token expiry issue in a session which has been open since a long time when a new new connection is opened to HMS using TSaslClientTransport with DigestMD5 based auth. This issue is happening due to the fact that the new connection is trying to authenticate using the token identifier which is removed by the expiry thread in the background.

Does this PR introduce any user-facing change?
No

Is the change a dependency upgrade?
No

How was this patch tested?
Added a test case to check the expiry thread renewing the token automatically after some time and removing a token automatically after the token has expired.
Tested the scenario on a machine with dedicated HMS, HS2 with Sasl enabled.
Added a test case to test the complete scenario of creating a new HMSClient after another.

Continuation of Old PR: https://github.com/apache/hive/pull/5049

@chinnaraolalam  @zhangbutao @alanfgates, could you guys please review this PR?


Adjust Windows Resource Activity class (201003) to be aligned with Windows event 4662

Related Issue:
#1090
Description of changes:

We add the attributes access_list, access_mask.
We create a new attribute called win_resources that is an array of win_resource objects. The new win_resources replaces the win_resource attribute under the Windows Resource Activity class.

Windows Resource Activity (201003) Class:

Dictionary:

Signed-off-by: Eliraz Levi<EMAIL_ADDRESS>

4662 is typically mapped to the Entity Management class. I don't think a new class would be needed to map this event, although there might be some opportunity to enhance the Entity Management attributes.

I am not certain that this change is necessary. 4662 should map to Entity Management, because the 'object' the event refers to is not a Windows Resource, but rather an Active Directory object, which is essentially an entity.
According to Windows description of 4662:

This event generates every time when an operation was performed on an Active Directory object.

This event generates only if appropriate [SACL](https://learn.microsoft.com/en-us/windows/win32/secauthz/access-control-lists) was set for Active Directory object and performed operation meets this SACL.

If operation failed then Failure event will be generated.```

Thanks for the comments @mikeradka .
I would be happy to discuss the alternative you've suggested here.


Kindle Display v0.5.3

Added one more display type stats, which combines the most important information.

Will be part of v1.10.0rc4 for testing.


[odbc] Move ODBC docs

Move ODBC docs (README.md) from ibmi-oss-examples repo
Signed-off-by: Mark Irish<EMAIL_ADDRESS>

Once this is moved, will submit a PR over at ibmi-oss-examples to replace the odbc/README.md file content with a link to this new page.

Oops, in my haste to merge it I missed that there was no reference to the page from the main README so it will be unindexed. Please open another PR to add a link to it in this section: https://github.com/IBM/ibmi-oss-docs/blob/master/README.md#contents


Covid Tracking returning 404

The NY Times has reworked their Covid tracking app so the REST calls are now returning a 404.

I'm going to remove the Covid feature.


Tooltips on disabled buttons do not go away on Chromium browsers

This is not an issue on Firefox.

Some discussion of this: https://github.com/ant-design/ant-design/issues/9581
not sure if this helps.

Some discussion of this: ant-design/ant-design#9581 not sure if this helps.

Thank you! I managed to fix it by using an AnchorButton instead of a Button for the control buttons. Detailed explanation in the upcoming PR.


[WAC] - Updated even with auto update turned off

Gateway Version: prior to 1.3.2111.01001 but not exactly sure which version
This instance of WAC runs on a domain that is not linked to Azure AD so, knowing what happened to our WAC in another domain with a link to Azure AD, I turned off auto updates a few days ago
I did not want this instance to be hit by https://github.com/MicrosoftDocs/Windows-Admin-Center-Ideas-and-Feedback/issues/69
I was also not so keen to be affected by https://github.com/MicrosoftDocs/Windows-Admin-Center-Ideas-and-Feedback/issues/61
Unfortunately, a short while after I connected this morning WAC updated to 1.3.2111.01001 and all the Domain groups that controlled access have gone. Also the auto update switch has now been turned on again
Fortunately other users can still access this WAC as I had added some domain groups to the local administrator group to get around this https://github.com/MicrosoftDocs/Windows-Admin-Center-Ideas-and-Feedback/issues/50
being able to turn off auto updates when there are known bugs would be really useful

Hey @PeterRoots,
We have not been able to reproduce this issue on our side. Would you be able to provide more information on this issue?
If it is easier, we can also schedule a call to sort this issue out.


Revert "extend/os/mac/keg_relocate: fix relocation of duplicate RPATHs"

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew typecheck with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

Upon reflection, I realised that this is probably a bug in ruby-macho,
and should be fixed there instead.
Needs https://github.com/Homebrew/ruby-macho/pull/362.
This reverts commit e8b5eb7e42c925b7cc10c78a029b8c70e4d7965b.

Review period will end on 2021-05-19 at 19:04:26 UTC.

We need this now that ruby-macho has cut a new release.


feat: refactoring of example and readme

scrapegraphAI tool example and readme had import errors

Hey @VinciGit00, Thank you for contribution!
One minor issue: Linting failed for the PR. Could you please take a look into that

@anoopshrma try again now


Individual chart color scheme not applied if we have created bar chart with same metric name

Individual chart color scheme not applied, when we create 2 bar chart with same metric name and added it in a dashboard.
How to reproduce the bug

Create a bar chart with metric name Count and color scheme as Superset Colors.
Create another bar chart with same metric name Count and color scheme as Airbnb Color.
Create a dashboard and add above 2 charts

Expected results
Charts should be displayed in different colors since each chart selected with different color scheme.
Actual results
Both chart display same color scheme.
Screenshots
Chart 1:

Chart 2:

Dashboard:

Environment

browser type and version: Google Chrome - Version 113.0.5672.126
superset version: Latest code from GitHub
node.js version: v16.18.1
any feature flags active: No

Checklist
Make sure to follow these steps before submitting your issue - thank you!

[*] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[*] I have reproduced the issue with at least the latest released version of superset.
[*] I have checked the issue tracker for the same issue and I haven't found one similar.

Additional context
Shared label color has been pushed with metric name for 1st chart.
Code snippet:
https://github.com/apache/superset/blob/master/superset-frontend/packages/superset-ui-core/src/color/CategoricalColorScale.ts#L123
If 2nd chart also have same metric name, then color has been taken from existing shared label color instead specific color scheme.
Code snippet:
https://github.com/apache/superset/blob/master/superset-frontend/packages/superset-ui-core/src/color/CategoricalColorScale.ts#L115

This should only be the case when a dashboard has a color palette assigned to it, which overwrites the charts' individual color palettes and applies "shared label colors'. Closing this as stale since it's been silent for so long, and we're trying to steer toward a more actionable Issues backlog. If people are still encountering this in current versions (currently 3.x) please re-open this issue, open a new Issue with updated context, or raise a PR to address the problem. Thanks!


Roll engine 2589785b5c5e..6d5aaa090abe (2 commits)

https://github.com/flutter/engine/compare/2589785b5c5e...6d5aaa090abe
git log 2589785b5c5eaad64d1da3403048e61d8f230c48..6d5aaa090abe19ff0f08eb28f6663173750fd80c --no-merges --oneline
6d5aaa090 Fix a11y in embedded Android views post O (flutter/engine#9321)
f54a8f13f Roll src/third_party/skia c3252a04b377..3fc5df443e24 (1 commits) (flutter/engine#9328)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
the roller if necessary.

Trybots failed. These were the failed builds: https://cirrus-ci.com/task/5144271993176064

Commit queue failed; closing this roll.


Encoding issue when using spark with mesos

When using nebula-spark-connector data is not reaching the nebula storage with the right encoding.
The issue is only reproducing when spark is running in a mesos cluster.
By trying to do the following
val df = Seq((1,s"测试")).toDF("id","value")
df.write.nebula(config, nebulaWriteVertexConfig).writeVertices()

The value arrives in nebula as ??
More env data:
spark version: 3.0.2
java version: 1.8.0_392
mesos 1.11
Data should arrive in nebula as 测试 not as ??
(please note that running with spark local or even on kubernetes works fine.)

We need to ensure spark cluster encoding with UTF-8
Sorry this post is CN but we could see from its bottom comment on where we may need to modify.
https://discuss.nebula-graph.com.cn/t/topic/5367/34?u=wey

As for mesos, I put some ref I got from my phone for ensuring UTF-8 encoding:

Set Java Options: Ensure that the Java Virtual Machine (JVM) options for Spark are set to use UTF-8 encoding. You can set this in the Spark configuration (spark-defaults.conf) or through command line arguments:
spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8
spark.driver.extraJavaOptions=-Dfile.encoding=UTF-8

Configure Mesos: Check the configuration of your Mesos cluster to ensure it's not overriding the environment variables or JVM options set for Spark. Mesos should pass the UTF-8 encoding settings to the Spark jobs.

Use Environment Variables: Set the environment variable JAVA_TOOL_OPTIONS to -Dfile.encoding=UTF-8 on each Mesos agent. This ensures that all Java applications, including Spark, use UTF-8 encoding by default.

Containerized Deployments: If you are using containers (like Docker) for deploying Spark on Mesos, make sure the containers are configured to use UTF-8 encoding. This can be set in the Dockerfile or the container’s environment settings.

Spark Job Submission: When submitting Spark jobs, explicitly specify the encoding:
spark-submit --conf "spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8" \
             --conf "spark.driver.extraJavaOptions=-Dfile.encoding=UTF-8" \
             ...

Test with a Simple Job: Create a simple Spark job that reads and writes UTF-8 encoded data to validate the configuration.

Logging and Debugging: Enable detailed logging for both Spark and Mesos to diagnose any issues related to encoding.

Cluster-wide Settings: If you have access to modify cluster-wide settings, ensure that the default character set and locale settings are set to UTF-8 on all nodes in the Mesos cluster.

Remember, consistency across your entire deployment (drivers, executors, and the environment they run in) is key to ensuring that UTF-8 encoding is used throughout.

I can confirm all encoding is utf-8, including  file.encoding and that we have tried with both 3.6.0 version of the connector and even built the git code.
I have made also a test with
--conf "spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8" \              --conf "spark.driver.extraJavaOptions=-Dfile.encoding=UTF-8" \ The results did not change.
We ran several tests with all spark modes:
when running with spark-shell or local mode, the issue does not reproduce
when running in client or cluster mode, submitting the application to mesos, the issue arises, so maybe it has something to do when exchanging data between driver and executors. As we are also using cassandra connector and running apps on the same cluster, we don’t think it could be a mesos issues, but who knows
lastly, checking some of the logs from storaged daemon, we see:
E20231209 15:27:39.185158    64 HeaderServerChannel.cpp:100] Received invalid request from client: apache::thrift::transport::TTransportException: Header transport frame is too large:<PHONE_NUMBER> (hex 0x6669736d, ascii 'fism') (transport apache::thrift::PreReceivedDataAsyncTransportWrapper, address ::ffff:<IP_ADDRESS>, port 34012)
looking at  ascii 'fism' could it be that the client doesn’t encode data properly when running in client/cluster mode?

Ok, it seems indeed that adding extraJavaOptions=-Dfile.encoding=UTF-8 is the key
Issue solved, thank you

Ok, it seems indeed that adding extraJavaOptions=-Dfile.encoding=UTF-8 is the key
Issue solved, thank you

Great to know this is the line, we should add this in docs of spark connecter🫡

it's the same with this issue.
https://docs.nebula-graph.io/3.6.0/import-export/nebula-exchange/ex-ug-FAQ/#q_how_to_correct_the_messy_code_when_importing_hive_data_into_nebulagraph


Params are missing.

The params seem to be on the md file: https://github.com/MicrosoftDocs/windows-driver-docs-ddi/blob/staging/wdk-ddi-src/content/storport/nf-storport-storportreadregisterbufferuchar.md (and missing from here: https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/storport/nf-storport-storportreadregisterbufferuchar). Though they are out of order on the md too.

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

ID: eeb23dbb-69e7-2f6a-7083-ce76d631d677
Version Independent ID: ed8483de-12ec-0452-1e79-5b862068bf31
Content: StorPortReadRegisterBufferUchar macro
Content Source: wdk-ddi-src/content/storport/nf-storport-storportreadregisterbufferuchar.md
Product: windows-hardware
GitHub Login: @windows-driver-content
Microsoft Alias: windowsdriverdev

Thanks, @csm10495
@aahill would you be so kind as to look into these TBDs?

Hi @csm10495, @EliotSeattle
Thanks for sending this to me. It looks like a number of topics here aren't having their param info showing up. I've gone through and fixed them; they should show up in a day or two. Thanks again for bringing  this to our attention!


PHP8 Nullsafe operator gets deleted

Bug report

PHP version: 8.0.0
PHP CS Fixer 2.18.1
Command used to run: vendor/bin/php-cs-fixer fix --dry-run --diff -vvv
to fix: Laravel 8 project

config
<?php
{
  -cacheFile: ".php_cs.cache"
  -customFixers: []
  -finder: PhpCsFixer\Finder^ {#847
    -mode: 1
    -names: array:1 [
      0 => "*.php"
    ]
    -notNames: []
    -exclude: array:2 [
      0 => "vendor"
      1 => "/.../someVendorFolder"
    ]
    -filters: []
    -depths: []
    -sizes: []
    -followLinks: false
    -reverseSorting: false
    -sort: false
    -ignore: 3
    -dirs: array:1 [
      0 => ".../FixerTest"
    ]
    -dates: []
    -iterators: []
    -contains: []
    -notContains: []
    -paths: []
    -notPaths: []
    -ignoreUnreadableDirs: false
  }
  -format: "txt"
  -hideProgress: false
  -indent: "    "
  -isRiskyAllowed: false
  -lineEnding: "\n"
  -name: "Laravel"
  -phpExecutable: null
  -rules: array:1 [
    "no_unused_imports" => true
  ]
  -usingCache: true
}

Code Snippet
<?php

namespace App\FixerTest;

use App\Http\Controllers\Controller;
use App\User;
use App\Organization;
use Illuminate\Support\Carbon;

class FixerTest extends Controller
{
    public function nullsafeOperator($id)
    {
        if (User::find($id)->last_active_at?->isAfter(Carbon::now()->subWeek())) {
            return;
        }
    }
}

Expected Outcome
deletion of line use App\Organization; since it is a unused import
Actual Outcome
deletion of unused import and nullsafe operator
$ vendor/bin/php-cs-fixer fix --dry-run --diff -vvv
PHP CS Fixer 2.18.1 Remote Void by Fabien Potencier and Dariusz Ruminski
Runtime: PHP 8.0.0
Loaded config Laravel from "........./.php_cs".
Using cache file ".php_cs.cache".
F
Legend: ?-unknown, I-invalid file syntax (file ignored), S-skipped (cached or empty file), .-no changes, F-fixed, E-error
   1) app/FixerTest/FixerTest.php (no_unused_imports)
      ---------- begin diff ----------
--- Original
+++ New
@@ @@
 use App\User;
-use App\Organization;
@@ @@
     {
-        if (User::find($id)->last_active_at?->isAfter(Carbon::now()->subWeek())) {
+        if (User::find($id)->last_active_atisAfter(Carbon::now()->subWeek())) {
             return;
         }
     }
 }

      ----------- end diff -----------

Checked all files in 0.025 seconds, 20.000 MB memory used

additional info
App\User is an Eloquent model and last_active_at is a nullable field.

hey, thanks for report.
to be honest, your config looks like some kind of weird export, not like a real .php_cs file

hey, thanks for report.
to be honest, your config looks like some kind of weird export, not like a real .php_cs file

Update to PHP 8.0.1 , ref https://bugs.php.net/bug.php?id=80462

Update to PHP 8.0.1 , ref https://bugs.php.net/bug.php?id=80462

to be honest, your config looks like some kind of weird export, not like a real .php_cs file

yea, it is. I just wanted to show that only one rule is actually used, my config file is maybe not transparent enough:
$config = (new MattAllan\LaravelCodeStyle\Config())
    ->setFinder(
        PhpCsFixer\Finder::create()
            ->exclude(base_path('nova'))
            ->in(app_path('FixerTest'))
    )
    ->setRules([
        // '@Laravel' => true,
        'unary_operator_spaces' => true,
    ]);

Thanks so much for the swift reply and having a look at it!!

to be honest, your config looks like some kind of weird export, not like a real .php_cs file

yea, it is. I just wanted to show that only one rule is actually used, my config file is maybe not transparent enough:
$config = (new MattAllan\LaravelCodeStyle\Config())
    ->setFinder(
        PhpCsFixer\Finder::create()
            ->exclude(base_path('nova'))
            ->in(app_path('FixerTest'))
    )
    ->setRules([
        // '@Laravel' => true,
        'unary_operator_spaces' => true,
    ]);

Thanks so much for the swift reply and having a look at it!!

updating PHP8.0.1 helped! Thanks so much!

updating PHP8.0.1 helped! Thanks so much!

welcome, @jpeinelt ;)

welcome, @jpeinelt ;)


Animate Discover Europython icon rotation on hover

Note: this patch actually needs to be applied to another file. We'll fix it asap.


Implementation of new config-file format

This PR implements the format which replaces the separate keywords.txt and authors.txt as discussed in #8.
Closes #8
TODO:

[x] Implement ini-style configuration using standard library configparser
[x] Implement conversion from old configuration style
[x] implement searching multiple paths for the config file

[x] locations on Unix
[x] locations on Windows
[x] locations on MacOS

[x] Hook new implementation into wordcounter
[x] Add options other than authors and keywords to file
[x] Update README

User facing changes:
There are now 4 more CLI arguments:

--config /path/to/configfile: Load configfile from specified path
--default-config [/path/to/config]: Write default config to ~/.scan_astro-ph.conf / specified path
--config-convert [/path/to/new_config]: convert keywords.txt and authors.txt to new format in ~/.scan_astro-ph.conf / specified path
--edit: Open config file in default text editor. If no config file exists, it asks if a new one should be created.

The config file paths are:

Default location, where configs are written to when no argument is given on the arguments above.

on Linux / Unix (except MacOS): $XDG_CONFIG_HOME/scan_astroph/scan_astroph.conf (XDG_CONFIG_HOME defaults to ~/.config)
on MacOS: ~/Library/Application Support/scan_astroph/scan_astroph.conf
on Windows: $HOME/Documents/scan_astroph/scan_astroph.conf. Behaviour of %APPDATA% is weird on Windows (at least in Python from MS Store. Therefore, I put the config file into ~/Documents, as many other programs are also using this for configuration files. Ugly, but what can you do.

search path for config file is:

$SCAN_ASTRO_PH_CONF
~/.scan_astroph.conf
default path described above

The new format is as discussed in INI-style, e.g.
[authors]
Alpher = 1
Bethe = 2
Gamov = 3

[keywords]
star = 1
planet = 2
habitable = 3

[options]
date = new
length = -1
minimum_rating = 6
reverse_list = False
show_resubmissions = False
show_cross_lists = True

scan_astro-ph.wordcounter has a new interface using argparse, it will update the config file it finds (using the above criteria), or will write a new one at ~/.scan_astro-ph.conf (or the one specified on CLI).
Implementation details.
The new implementation is a wrapper class Config around a configparser.ConfigParser object.
Properties are used to get an dict[str, int] output (as configparser.ConfigParser uses str internally).
Because the conversion is one way, there are extra methods to add new keywords and authors.

installation works flawlessly
convert option transforms existing config files to new format as it should
The order of the listing has changed. I would suggest to reverse the default order back to as it was before, as currently the lowest ranked paper appears on top.

* The order of the listing has changed. **I would suggest to reverse the default order** back to as it was before, as currently the lowest ranked paper appears on top.

Oh, I missed that. But adding numpy as a dependency is a bit overkill for this, I changed np.invert(reverse) to not reverse.

* The order of the listing has changed. **I would suggest to reverse the default order** back to as it was before, as currently the lowest ranked paper appears on top.

Oh, I missed that. But adding numpy as a dependency is a bit overkill for this, I changed np.invert(reverse) to not reverse.

right, this is simpler. Thanks!


Order methods and variables on functional components

Kind of like sort-comp #2408 but for functional components, an order could be something like

useContext
useState
useReducer
useSelector
useDispatch
...
customHooks
useEffect
useLayoutEffect
...
useCallback
...
useMemo
return

SFCs aren't declarative the way classes are - i don't think it makes sense to apply sorting rules to imperative code.
If you want that kind of structure, I think a class component is the ideal choice.


Pre token generation claim ARRAY or MULTIPLE custom groups

Amplify CLI Version
10.7.2
Question
Goal
create multiple access levels (simplified) on multiple resource levels

companyAdmin=[companyIds] provides CRUD access,
companycollaborator=[companyIds] provides RU,
locationAdmin =[locationIds] provides RU access
locationGuest=[locationIds] provides R access

Method
Dynamic group authorization + jwt token claims set by pre token gen trigger
Model
type Company
  @model
  @auth(
         {
        # allow CRUD if company Admin
        allow: groups
        groupsField: "id"
        groupClaim: "adminOfCompanies"
      },
       {
        # allow CRUD if company Admin
        allow: groups
        groupsField: "id"
        groupClaim: "collaboratorOfCompanies ",
        operations: ["read,update"]
      }
      }
    ]
  ) {
  id: ID!
  name:String!,
  ....

Pre token gen
const customClaims={}
customClaims.adminOfCompanies = getIdsFromDb....  (returns array of strings)
customClaims.collaboratorOfCompanies = getIdsFromDb... (returns array of strings)
customClaims.adminOfLocations= getFromIdsDb... (returns array of strings)
customClaims.guestOfLocations= getFromIdsDb... (returns array of strings)

...
event.response = {
    claimsOverrideDetails: {
      claimsToAddOrOverride: customClaims
    },
  };

###Problem

I cannot set an array to a custom claim field value Unrecognizable lambda output in red in the @aws-amplify/ui-vue Authenticator login screen, any workaround (note, assigning a string i.s.o. an array to the custom claim works)?

If no workaround

I cannot override the groups as then I cannot have different access levels (admin & collaborator) for different entities (Company and Location). So I need custom groupS, CompanyAdmins, companyCollaborators, LocationAdmins, companyLocationCollaborators, how can i create multiple groups using the pre token gen trigger?

if not possible
3.then I think I need to pass a stringified array as custom claim customClaims.guestOfLocations= getFromIdsDb(...).toSting() and create custom lambda authorizers that converts the string claim to an array an checks if thatarray contains the locationId, somethinglike guestOfLocationsArray.includes(event.variables.locationId), one per role, that parses the . Do I need to verify if the JWT claims received by the lambda event handler are valid? and if so, how should I do this?
THANKS!

Hi @unknown1337, please refer to my comment in this other similar issue and let us know if that works. Closing this in favor of the other linked issue.

Thanks @phani-srikar  for the link. I think your comment  will not solve my issue as I need dynamic group based auth.

@ login I set the IDs of the companies the user has access to + access level
customClaims.adminOfCompanies = getIdsFromDb....  (returns array of strings) customClaims.collaboratorOfCompanies = getIdsFromDb... (returns array of strings)
in the model I check for a given ID if the appropiate permissions are present:

type Company
  @model
  @auth({
        # allow RU if company collaborator access
        allow: groups
        groupsField: "id"
        groupClaim: "collaboratorOfCompanies ",
        operations: ["read,update"]
      } } ] )

So unfortunately the linked comment wont help me (dynamic vs static groups) if im correct. Could you with this note take a look again at the questions in the openingspost.
Thanks!

@phani-srikar , friendly reminder as we're still having the issue of assigning an array to a custom claim and validating if a groupsField is in that groupclaim array using @auth


bugfix:  restart_paused_container ci failed

Signed-off-by: Eric Li<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
restart_paused_container ci failed
FAIL: /go/src/github.com/alibaba/pouch/test/cli_restart_test.go:63: PouchRestartSuite.TestPouchRestartPausedContainer
/go/src/github.com/alibaba/pouch/test/cli_restart_test.go:68:
    command.PouchRun("pause", name).Assert(c, icmd.Success)
/go/src/github.com/alibaba/pouch/vendor/github.com/gotestyourself/gotestyourself/icmd/command.go:61:
    t.Fatalf("at %s:%d - %s\n", filepath.Base(file), line, err.Error())
... Error: at cli_restart_test.go:68 -
Command:  /usr/local/bin/pouch pause TestPouchRestartPausedContainer
ExitCode: 1
Error:    exit status 1
Stdout:
Stderr:   Error: failed to pause container TestPouchRestartPausedContainer: {"message":"container's status is not running: exited"}

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how you did it
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

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

@@           Coverage Diff           @@
##           master    #1272   +/-   ##
=======================================
  Coverage   15.21%   15.21%
=======================================
  Files         172      172
  Lines       10735    10735
=======================================
  Hits         1633     1633
  Misses       8981     8981
  Partials      121      121

LGTM

@shaloulcy https://github.com/alibaba/pouch/blob/master/CONTRIBUTING.md
commit message format  please check the CONTRIBUTING guidance, thanks a lot.


Validation and errors

Should provide some easy integration for validation and errors. Take a look at react-hook-form for inspiration.

Expose valid variable from useForm()?

Allow passing in custom validator function, that:

Receives the form, the patch and previous errors
Returns new errors object

Errors should be exposed through the errors object from useForm() and getErrors() on useFormContext().
I guess we should also track error subscriptions?


Adding back support for deprecated API methods to ease transition to Godot 3.0

I know that change in scene files and API is necessary, but usually scripting system mantain old words for scripting compatibility. It´s ok that stetic-reasons recommend that get_pos() will be get_position(), but... Any reason for lost old expresion in scripting system?
This words change can fragment the valid gdscript code base-date in internet (people don´t actualize blogs, youtube tutorials, etc...). Is not posible to keep synonym expressions like "const" to new expression or something like that in the code base ( I don´t know c++ but something like:  get_pos() -> get_position() in GDScript module is possible?). By the fact with this changes there will be GDscript 1.0 and GDscript 2.0, add words look ok, but lost words?. There is debate in this topic?

API renames aren't actually a GDScript matter. It's actually the classes which have changed the naming of their members. And that affects any scripting language usable with Godot.
Regarding keywords and syntax, those would be indeed changes in GDScript itself. But to keep moving on, in 3.0 a lot of compatibility has been broken because it was a good opportunity. I wouldn't expect changes as big as those for a long time.
But I feel your pain about online resources. It's the same as when you are learning Angular (2.0+) and you have to carefullly filter out search results about AngularJS (1.x), which are different animals. Problematic but probably not avoidable.

We could add compatibility bindings for old method names, and make them issue a deprecating warning in the console so that people replace them. That's just a lot of code to add, and it also means that the autocompletion will be full of duplicates that may hinder the learning of new users.
If someone is ready to make a list of all method renamings (at least the ones that can be converted, not the ones that were obsoleted altogether), we could assess how much work it would be. Maybe we could add a way to bind methods to GDScript that won't make them appear in the autocompletion and will automatically trigger a deprecation warning when used.
I did it this way a few releases ago for some methods that were being renamed/removed: https://github.com/godotengine/godot/blob/afbb5261e660acf08dd62f698d353e95fc7fb6bb/scene/3d/spatial.cpp#L356-L360
But as you can see, one of the obvious drawbacks is that one or two major releases later the compatibility code is still there and unnecessarily bloating the source.
All in all, I think that a good documentation page with a list of all renamed methods/classes would be better than adding tons of compatibility bindings. It means a bit more manual conversion work, but it's not that bad to be honest.

I'm in favour of documenting changes and let old things break, so the person who is trying to use an old tutorial can search for a new one or try to fix it instead.

Documenting is always the better option, and this changes don´t affect to current users (us) because we follow Godot develop. I see the problem in the new users, Godot have relatively tiny internet database, and this kind of changes can turn some resources obsolete, it´s important to remember the two main applications that are used to programming: Code editor and google, this changes affect the last aplication (Most important maybe?) and Godot need more and more users to become better. Probably this is an exageration, but is important to think in that for future changes. Mess the API with obsolete functions don´t help to the readability to the code, but standard syntax error menssage in console to the input methods deprecated, or set/get_pos(), or Arrays don´t help new users to jump to Godot. I like the console menssage: -Do you mean .......? it´s very helpfull, but i don´t know if it is a lot of work implement this to the deprecated methods.
I´m thinking in one of the best youtube tutorials to understand Godot, one of the Juan Linietsky youtube channel, "el tutorial del matamarcianos", is in spanish but if you follow the code you can understand the generic use of godot, he uses set_pos() function, and now this tutorial become obsolete, and is a pitty because it´s real first- to end minigame...

I believe the old tutorials will become (partially) obsolete when Godot's evolution changes the workflow of some topics, not really because of changes in the name of methods. Just because now you do position = new_pos instead of set_pos(new_pos) doesn't mean that the whole tutorial is useless.
For instance, the removal of the Opacity property in favor of Modulate is a much bigger change and while we could add a deprecated set_opacity() function to access from code, it would still not show in the editor. This would throw off people following old tutorials and it's much harder to add deprecated properties in-editor, because if it's there, people won't stop using it ever.
I understand that this will be a problem for new users, but eventually the tutorials will be update and the new users asking "why this doesn't work" will simply receive the answer "it changed in Godot 3" and can move on. It's not ideal but already happened in the past and it has been a long time the last I heard someone asking "where is the Resources dock?".
In the end, it's just easier to document the changes than to add deprecated functions that'll have to be maintained and someone will have to remember to remove then in the future (which will likely bring complaints anyway).

Could always do a bare-minimum implementation (with accompanying warnings about imminent deprecation and what the old-style is replaced with) for 3.0, and remove them in 3.1.

I disagree with what has been stated here.

If the problem is that the editor won't display any warning, then it should be made to.
If there is a warning, people will gradually stop using the deprecated feature. If they don't, it's their fault. Being against deprecation flags just because some people may decide they don't want to benefit from it is like being against hotkeys because some people may not use them at all.
Maintenance is not a problem. You only have to do it once per major release. When the alpha of a major release is about to come out, you just do a quick search for DEPRECATE_ (for example) and remove the deprecated stuff.
Documentation is not enough for this. How do you document that a method was removed or renamed?
Suppose I use the method do_something in my code. Now I download the next minor release, and my code stops working. In the case of GDScript, you won't even notice this until the method is called at runtime.
 I have to go ask on IRC/Discord, open a question in the QA or check the release notes (if I know about them).

What if I need this method, and there is no alternative now. I have to go back to the previous version. What a waste of time!
What if I were making extensive use of this method. If I want may game to run again, I have to refactor all its usages.
Before you mention it, no, it's not right to expect users to check the release notes for code breaking changes in a minor release.

I think the advantages of deprecation are being underestimated here. Suppose I want to rename the method do_smth to do_something...
If there are no deprecation flags you have three options:

Wait for the next major release. That could be a really long time during which you could completely forget that you had to rename it.
 Needless to say this is not a good idea.
Add the new method and keep the old one. There are no warnings, so people can't know about it.

On the other hand, with deprecation flags:

Just add the new method and mark the old one as deprecated with a description pointing to the new one.
People will see the warning and know the method will disappear in the next major release. They will also see the description telling them about the new version. There is no hurry to refactor the code, your game still runs; you can take your time.
Remove it in the next major release.

As discussion ended up a in a "better not", will close this. I'm against this, also. There's waaaay to much that broke in 3.0, not just the methods.


[sw/bitfield] Provide byte inspection builtins

These builtins are needed to implement some parts of some DIFs. This
change adds them in a way that most closely resembles the existing C/C++
style guide.
However, when following the previous style guide exactly, there were
conflicts when trying to include these inline functions transitively
from a (mocked) unit test. The host-side testing code includes glibc's
strings.h, which contains an incompatible definition of ffs (which
use int, not unsigned int). Thus we have relaxed the style guide
slightly to clarify how to deal with these incompatible definitions.

@silvestrst Does this address what you need for NAPOT and for simplifying the NCO code?

I added a separate commit which addresses some of @mcy's points - but also updates the types to properly match the GCC/Clang builtins (which have weirder argument/return types than you might imagine).

Ok, I've force-pushed two commits. The first contains changes to the style guide, the second the implementations that we seem to have mostly agreed on (as much as possible, matching the B instruction set).


Cocoapods outdated

Can you create the 1.0.5 tag  (or change the podspec to say 1.0.3) and push an update to cocoapods?

OK. Done that :)

Thanks!


Accounting for differing endianess

Thank you for the fix! This seems to do the trick on my emulated MIPS cpu, but due to its speed I could not test it thoroughly.


Repeated flags fix

Stop failing upon seeing a repeated value from a mutually-exclusive set of flags.
This adds an Equatable requirement to the Flag constructors from CaseIterable enums. Given the other requirements on those enums, Equatable conformance is automatic and therefore costs nothing.
The switch statement in ArgumentSet.updateFlag is also much simplified, by calling values.element(forKey:) only when it is needed.
Checklist

[x] I've added at least one test that validates that my change is working, if appropriate
[x] I've followed the code style of the rest of the project
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary

This fixes https://github.com/apple/swift-argument-parser/issues/59
This supersedes https://github.com/apple/swift-argument-parser/pull/70

Noting the draft PR https://github.com/apple/swift-argument-parser/pull/65, specifying the new EnumerableFlag to require Equatable would not be onerous, I think. It would be automatically generated in an overwhelming majority of uses.

@glessard This looks great — I think adding the Equatable constraint is fine here, and I'll add that constraint to EnumerableFlag as well.
Can you update with latest and I'll merge?

I rebased and squashed. Thanks!


Upload Java distribution to Maven Central

Please make numbertext usable as a maven dependency.
Hello,
I try to use numbertext.jar as a dependency in a project built with build tool maven.
Maven normally wants project dependencies declared as (so-called) coordinates consisting of a groupid, an artifactid and a version. With those it automatically accesses the files needed by e. g. downloading them from a (remote) repository (server) during build time.
This fails for libnumbertext, because it doesn't seem to be published at the usual place yet - i. e. Maven Central - which is kind of the default public location for libraries with a suitable license.
I can locally work around this by "publishing" a downloaded copy of numbertext.jar into a company-owned repository server but would have to supply those maven coordinates doing this. To not create a diversion from a Numbertext distribution later published centrally I'd prefer to specify official coordinates defined by Numbertext project so that newer versions could be used from a public repository automatically.
Please do (first or both of) the following to help me :-)

Declare official maven coordinates for numbertext (Guide for choosing)
Upload a numbertext distribution to Maven Central using those coordinates. Instructions can be found at https://maven.apache.org/repository/guide-central-repository-upload.html

Thank you for your help and for making numbertext (and for making it exactly when discovered that I needed it :-) )

Thanks for your nice words and request! I plan to fix this issue this month.

I can jump on this issue at the weekend. I made the POM file, but I didn't know about this issue :)

Any update on this request?


Amendments Raffles

The idea is for the developer of the body of work that is behind the new functionality to get paid.
Summary
When a new amendment is added and set to be released a NFT is commissioned by the developer(s) who wrote the functionality. There is then an agreed price tag associated with that work and the minimum bid on that NFT is locked to that price.
The amendment is voted in once the NFT minimum bid has been for filled and it has passed voting on the ledger.
Motivation
Developers get paid for their efforts.
Solution
This is then both a community tie into the amendment as well as a rigorous challenge to be approved by network operators.

Who pays the funds?

It is open to anyone that wants to contribute, grant programs could also use this (if those chose this payment route), participants of the network are also then open to fund work they see value in.
The idea is to open up funding to all network participants. There are two possible routes either as a payment for a delivered piece of work as discussed in opening of this request.
An alternative is also a gofund-me where by XLS proposals could be funded via a goal amount releasing development of that proposal along with the funds.
Any how it a vague idea, but opens an alternative funding model to core development past the current model.

I don't see how this applies to the code in this repository...


Add feedback source

Issue #:
https://github.com/bcgov/met-public/issues/698
Description of changes:
Add feedback source (internal/public)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the met-public license (Apache 2.0).

Codecov Report

Merging #700 (a480e7e) into main (f90acb2) will increase coverage by 0.12%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #700      +/-   ##
==========================================
+ Coverage   71.72%   71.84%   +0.12%
==========================================
  Files         136      136
  Lines        3445     3460      +15
  Branches      220      221       +1
==========================================
+ Hits         2471     2486      +15
  Misses        949      949
  Partials       25       25

Flag
Coverage Δ

metapi
76.32% <100.00%> (+0.14%)
:arrow_up:

metweb
65.73% <100.00%> (+0.07%)
:arrow_up:

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

Impacted Files
Coverage Δ

met-api/src/met_api/constants/feedback.py
100.00% <100.00%> (ø)

met-api/src/met_api/models/feedback.py
91.66% <100.00%> (+0.23%)
:arrow_up:

met-api/src/met_api/resources/feedback.py
72.72% <100.00%> (+1.99%)
:arrow_up:

met-api/src/met_api/schemas/feedback.py
100.00% <100.00%> (ø)

met-api/src/met_api/services/feedback_service.py
87.50% <100.00%> (+2.50%)
:arrow_up:

met-web/src/models/feedback.ts
100.00% <100.00%> (ø)


feat: preview for email templates

Currently the only way to see the email template is to send an email, we should instead have a simple way to display an email template without sending email.

Should the preview feature replace the actual email sending when enabled (like when on local env), or should it co-exists with a live sending ?

See PR https://github.com/snapshot-labs/envelop/pull/9

Closed via #9


Privacy Manifest

Subject: We need to incorporate the xcprivacy manifest into our app . Starting March 13, Apple will send notifications when uploading builds to the App Store, and this will become mandatory from May 1. All the SDKs used in our app needs to incorporate the xcprivacy manifest.
Reference: https://developer.apple.com/news/?id=3d8a9yyh
Actions needed: We need the compatible xcprivacy manifest version IOS SDK with xcprivacy manifest. We are expecting a seamless upgrade by upgrading to the latest version.

Hi,
It doesn't use any file timestamps, UserDefaults, active keyboard, system boot time or disk space API's. That's why, honestly I don't think that SkeletonUI uses any of the mentioned set of API's. Anyway:

Does the file need to be declared even if empty?
Are you already getting a warning specifying which one of the API's are being used?

Thanks!


As a developer, I want to include a set of contact KPI dashboard components for inclusion on page layouts.

**lurch: attach W-007312

Tracking W-007312

This has been marked as "Never" internally.


The shortcode details tag not works.

Description
I use the shortcodedetails with<EMAIL_ADDRESS>when execute npm run start, it broken with the error tip failed to extract shortcode: template for shortcode "details" not found.
Steps to reproduce

Ceate a child-theme: git clone https://github.com/h-enk/doks-child-theme.git my-doks-site.
Add shortcodedetails at content/en/docs/help/how-to-update.md:{{< details "details test" open >}}
    Good job.
{{< /details >}}

Run: npm run start

Expected result
It should works in<EMAIL_ADDRESS>Actual result
An error happened:
failed to extract shortcode: template for shortcode "details" not found.

Environment
><EMAIL_ADDRESS>precheck
> npm version

{
  'doks-child-theme': '0.4.0',
  npm: '8.3.0',
  node: '17.3.0',
  v8: '<IP_ADDRESS>-node.12',
  uv: '1.42.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.18.1',
  modules: '102',
  nghttp2: '1.46.0',
  napi: '8',
  llhttp: '6.0.4',
  openssl: '1.1.1m',
  cldr: '39.0',
  icu: '69.1',
  tz: '2021a',
  unicode: '13.0'
}

><EMAIL_ADDRESS>check
> exec-bin node_modules/.bin/hugo/hugo version

hugo v0.92.1-85E2E862+extended darwin/amd64 BuildDate=2022-01-27T11:44:41Z VendorInfo=gohugoio

Yes, that's correct. Will be part of the upcoming release v0.4.1 — available soon

Now part of Doks Child Theme v0.4.1


graphicsmagick: 1.3.28 -> 1.3.29

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/graphicsmagick/versions.
These checks were done:

built on NixOS
ran ‘/nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/bin/gm help’ got 0 exit code
ran ‘/nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/bin/GraphicsMagick++-config --version’ and found version 1.3.29
ran ‘/nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/bin/GraphicsMagick-config --version’ and found version 1.3.29
ran ‘/nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/bin/GraphicsMagickWand-config --version’ and found version 1.3.29
found 1.3.29 with grep in /nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29
directory tree listing: https://gist.github.com/014b06393c82c79d1f5dfeea620b71f3

Success on x86_64-linux (full log)
Attempted: graphicsmagick
Partial log (click to expand)
shrinking /nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/lib/libGraphicsMagickWand.so.2.9.0
shrinking /nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/bin/gm
gzipping man pages under /nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/share/man/
strip is /nix/store/j75dgadrff2d1fyc4fczmcgqkid2imdx-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/lib  /nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/bin
patching script interpreter paths in /nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29
/nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/bin/GraphicsMagick++-config: interpreter directive changed from "/bin/sh" to "/nix/store/xn5gv3lpfy91yvfy9b0i7klfcxh9xskz-bash-4.4-p19/bin/sh"
/nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/bin/GraphicsMagick-config: interpreter directive changed from "/bin/sh" to "/nix/store/xn5gv3lpfy91yvfy9b0i7klfcxh9xskz-bash-4.4-p19/bin/sh"
/nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29/bin/GraphicsMagickWand-config: interpreter directive changed from "/bin/sh" to "/nix/store/xn5gv3lpfy91yvfy9b0i7klfcxh9xskz-bash-4.4-p19/bin/sh"
checking for references to /build in /nix/store/j8gk0alkmajz7wsv7wn368blshmk89mk-graphicsmagick-1.3.29...

Success on x86_64-darwin (full log)
Attempted: graphicsmagick
Partial log (click to expand)
strip is /nix/store/kdff2gim6417493yha769kh00n63lnrw-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29/lib  /nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29/bin
patching script interpreter paths in /nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29
/nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29/bin/GraphicsMagickWand-config: interpreter directive changed from "/bin/sh" to "/nix/store/r8bx3qf1bpncb14i9gzma4vr089pc3pv-bash-4.4-p19/bin/sh"
/nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29/bin/GraphicsMagick-config: interpreter directive changed from "/bin/sh" to "/nix/store/r8bx3qf1bpncb14i9gzma4vr089pc3pv-bash-4.4-p19/bin/sh"
/nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29/bin/GraphicsMagick++-config: interpreter directive changed from "/bin/sh" to "/nix/store/r8bx3qf1bpncb14i9gzma4vr089pc3pv-bash-4.4-p19/bin/sh"
/nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29/lib/libGraphicsMagick.3.dylib: fixing dylib
/nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29/lib/libGraphicsMagick++.12.dylib: fixing dylib
/nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29/lib/libGraphicsMagickWand.2.dylib: fixing dylib
/nix/store/1n226f6fg223gfg1wwycpdvv50bl1f5q-graphicsmagick-1.3.29

Success on aarch64-linux (full log)
Attempted: graphicsmagick
Partial log (click to expand)
shrinking /nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29/lib/libGraphicsMagick.so.3.18.0
gzipping man pages under /nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29/share/man/
strip is /nix/store/gp7fylxwn18b7pl2c18ks89hsiaxyfvf-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29/lib  /nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29/bin
patching script interpreter paths in /nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29
/nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29/bin/GraphicsMagickWand-config: interpreter directive changed from "/bin/sh" to "/nix/store/a4qslf0yfs44mhnbagarn232sjnckhy0-bash-4.4-p19/bin/sh"
/nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29/bin/GraphicsMagick-config: interpreter directive changed from "/bin/sh" to "/nix/store/a4qslf0yfs44mhnbagarn232sjnckhy0-bash-4.4-p19/bin/sh"
/nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29/bin/GraphicsMagick++-config: interpreter directive changed from "/bin/sh" to "/nix/store/a4qslf0yfs44mhnbagarn232sjnckhy0-bash-4.4-p19/bin/sh"
checking for references to /build in /nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29...
/nix/store/05h3rsaimzi6p3v2w4m32hnxlhmrpb6m-graphicsmagick-1.3.29


[10.x] Adds seeding within transaction

What?
This PR adds the ability to declare a seeder run inside a database transaction by using the WithDatabaseTransaction trait. The aim is to avoid incomplete or orphaned records when the seeder fails during development, forcing the developer to truncate the tables affected manually.
namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Database\Console\Seeds\WithDatabaseTransaction;
use App\Models\Post;
use App\Models\Comment;

class CommentSeeder extends Seeder
{
    use WithDatabaseTransaction;

    public function run()
    {
        return Comment::factory(1000000)
                      ->sequence(fn() => ['post_id' => Post::inRandomOrder()->value('id')])
                      ->create();
    }
}

While this can be done manually using DB::transaction, the trait allows the developer to programmatically wrap it. For example, the developer can disable them for SQLite :memory: database, or for others RDMS on large lists of seeded records.
public function useDatabaseTransaction()
{
    $connection = Post::query()->getConnection();

    // Only run transactions when SQLite uses a file database for better performance.
    return $connection->getDriverName() === 'sqlite'
        && $connection->getConfig('database') !== ':memory:';
}

Would rather just let developers have full control using DB::transaction.


docs: create Dagster integration page

This adds an Integration page to the docs re: Dagster.

@roeap - I've moved the contents from the GDoc into this draft PR. LMK when you've had a chance to look over the rest and we can take it from there!

Maybe worthwhile to include also these changes in the docs: https://github.com/dagster-io/dagster/pull/19343

Would also like to suggest perhaps we add Dagster to the delta.io/integrations page if you think that makes sense?

@dennyglee - sounds good to me! I will finalize the text with @roeap here and then port it over to delta.io/integrations with pyspark code examples.

@dennyglee - good call to get this added to the Delta Lake website, I created an issue for this work.

Hey @avriiil - can you please take this out of draft mode and add this page to the table of contents (in this file)?  Thank you!

@MrPowers - ready for review!


Save checkpoint for Keras

@dmpetrov Shouldn't user make use of tf.keras.callbacks.ModelCheckpoint?

What about xgboost? If we start adding functionality to one callback, it should probably apply across all of them.
In that case, it might make more sense to add a save_model method to the MetricLogger class to wrap this call and ensure a consistent interface across integrations. This would also create more consistency between the built-in integrations like Keras and cases like PyTorch where no integration is available, since a save_model method would enable users to save models through dvclive calls in either scenario. Thoughts?

@dberenbaum @dmpetrov Sorry for getting to this so late, I forgot about it during my brief absence.
@dberenbaum How would user define model path? Would it be via init call? This approach makes sense to me because that would also force us to keep consistent behaviour between integrations, no matter how they are written.

How would user define model path? Would it be via init call?

I suppose it would need to be via dvclive.init(), right?

@dberenbaum yeah, I think so. It just makes me think whether we shouldn't change the init args a little so that first time user does not see 10 different args upon inspecting, but that's minor thing to resolve during review, I think I know how to handle that.

I agree with https://github.com/iterative/dvclive/issues/105#issuecomment-876739618 about not needing to add additional arguments to dvclive.init. It feels natural and very small overhead the fact of just passing an additional argument to the callback instantiation:
model.fit(X_train, y_train,  validation_data=(X_test, y_test),
    callbacks=[DvcLiveCallback(model_file="output_model.h5")])

One thing we might need to consider is to enable the option of saving weights_only, as this seems to be a common feature across different keras integration and also for consistency with ModelCheckpoint

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@9a98ac9). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Current head 9ddef1e differs from pull request most recent head c6611eb. Consider uploading reports for the commit c6611eb to get more accurate results

@@            Coverage Diff            @@
##             master      #69   +/-   ##
=========================================
  Coverage          ?   80.72%
=========================================
  Files             ?       10
  Lines             ?      249
  Branches          ?        0
=========================================
  Hits              ?      201
  Misses            ?       48
  Partials          ?        0

Continue to review full report at Codecov.

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

I have a some concerns about this.
When someone uses keras, in conjunction with other ML Loggers and the ModelCheckpoint callback, the behavior will be different to the one we provide would with DVCLiveCallback.
The following features will be missing:

ModelCheckpoint has the option to save individual model files for each epoch by formatting the given filepath
ModelCheckpoint has the option to monitor a metric in order to only save the best model file (save_best_only).

Good point, @daavoo! You raise good points, but I want to push back a little to make sure we think through both sides (I don't have a strong preference now as to whether we implement this).

* `ModelCheckpoint` has the option to save individual model files for **each** epoch by [formatting the given `filepath`](https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/ModelCheckpoint)

If we are assuming a dvc-like workflow, this PR will save models each epoch to the same file path, and each one can be checked out as needed. Even though dvclive is independent of dvc, do we want to start supporting workflows where the filepath designates the epoch number? This could impact how we save a lot more than the model files.
On the other hand, keras also supports saving less frequently than every epoch, similar to #103, and it supports saving only the model weights, both of which could be helpful.

What would be the benefits for the user if they replace ModelCheckpoint with DVCLiveCallback's model_file?

@dmpetrov answered a similar question above. What do you think @daavoo?

@pared good point and it is still possible with the current implementation. But it is better to have all DVCLive functionality in a single call.
Also, you can mix up the order if you separate them that will create checkpoints with previous models - another place when user can make a mistake.

If we are assuming a dvc-like workflow, this PR will save models each epoch to the same file path, and each one can be checked out as needed.

I understand.

Even though dvclive is independent of dvc, do we want to start supporting workflows where the filepath designates the epoch number? This could impact how we save a lot more than the model files.

We should probably stick with dvc-like workflows.

On the other hand, keras also supports saving less frequently than every epoch, similar to #103, and it supports saving only the model weights, both of which could be helpful.

Are you saying that we should add support to those features in our callback??

@dmpetrov answered a similar question above. What do you think @daavoo?

@pared good point and it is still possible with the current implementation. But it is better to have all DVCLive functionality in a single call.
Also, you can mix up the order if you separate them that will create checkpoints with previous models - another place when user can make a mistake.

I understand both points. Probably it would be worth mentioning in the (not currently existing) integration docs

Are you saying that we should add support to those features in our callback??

This makes providing our own saving capabilities problematic: where do we stop with repeating existing functionality.
Though in our particular case I would just stop with providing the model name in the constructor - so that it goes nicely with checkpoints. If the user wants a more advanced use case, well, that will require additional legwork.