Consider consolidating constants for data sizes (i.e. kibibyte, mebibyte)

[Suggestion] For improved reusability and maintainability, all such unit converter constants could be consolidated into a single location.
Originally posted by @staheri14 in https://github.com/celestiaorg/celestia-app/pull/2834#discussion_r1406952062

I think one problem with a single and consolidated location is that some of these units are used across multiple packages. I'd really like to avoid a generic "utils" package because https://dave.cheney.net/2019/01/08/avoid-package-names-like-base-util-or-common
I couldn't find any instances where kibibyte or mebibyte is defined multiple times in the same package so closing this as won't do.


Potential EventEmitter memory leak for element explorer

My experience with protractor 2.1.0 with the latest stable release of node (0.12.x) has been:

Start element explorer
Enter any command
Watch REPL hang indefinitely

Even if the REPL processes the first command properly, it'll freeze up within the next few commands. In addition, there's often this message:

(node) warning: possible EventEmitter memory leak detected. 11 break listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Client.addListener (events.js:179:15)
at Client.Readable.on (stream_readable.js:671:33)
at CommandRepl.evaluate (/usr/local/lib/node_modules/protractor/lib/debugger/modes/commandRepl.js:106:15)
at CommandRepl.stepEval (/usr/local/lib/node_modules/protractor/lib/debugger/modes/commandRepl.js:34:8)
at REPLServer.stepEval (/usr/local/lib/node_modules/protractor/lib/debugger/clients/explorer.js:95:13)
at bound (domain.js:254:14)
at REPLServer.runBound as eval
at REPLServer. (repl.js:279:12)
at REPLServer.emit (events.js:107:17)
at REPLServer.Interface._onLine (readline.js:214:10)

duplicate of https://github.com/angular/protractor/issues/1890?

I don't see EventEmitter memory leak detected mentioned in #1890.

Can you provide me with some steps to reproduce this? I'm on 2.1.0 and node 0.12.4, but cannot observe the memory leak behavior you mentioned.

Press enter 20 times in the REPL.

I also cannot reproduce this. Could you share the system you are on, and your command line for starting element explorer?

$ node -v
v0.12.4
OS X 10.10.3
$ protractor --version
Version 2.1.0
In tab1 I run java -jar selenium-server-standalone-2.45.0.jar and in tab2

protractor --elementExplorer --browser firefox --seleniumAddress http://<IP_ADDRESS>:4444/wd/hub

Here is a screen recording I just made that showcases the problem.

Ok, yes I see what you're doing now.
The problem arises when you send additional commands (new line is a command too) while previous commands are loading. For example, sending enters while it is loading browser.get('http://www.angulrjs.org') in your video.
The reason is that elementexplorer handles one command at a time (in order to wait for the result of the command). On sending command, it sets up an event listener to wait for the response. Once the result for that command is received, it would clean up the event listener. However, because you're sending multiple commands simultaneously, you're actually creating multiple event listeners before it had the chance to clean up. You won't break element explorer, but yes you will get warnings. (also note that all commands sent while element explorer is waiting for responses will not be processed).
Hopefully that clears up the issue here.

The behavior is confusing, especially compared to a Ruby or Python REPL. It sounds like it's working as intended though. Thanks for explaining.

That's because normal REPL wouldn't try to resolve a promise before returning.
i.e. if you type $('abcd').getText(), it would return the promise, whereas protractor waits for the result of the promise and returns that.

Quick note, I can reproduce this on Protractor 5.x in the REPL.  Not sure if its still expected to see Warning: Possible EventEmitter memory leak detected.

Seeing similar error in protractor 5.4.1 and node 10.9.0 on Mac OS Sierra running 9 e2e specs:
(node:53205) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added. Use emitter.setMaxListeners() to increase limit

Sorry for commenting on this closed story, but there is no comment here explaining why it was closed.
I am experiencing the exact same issue as @demisx  using Protractor 7.0.0 with npm 8.1.0 and node v16.13.0 .   Running headless tests serially.    Using browser.restartAsync between each test.


Code Cleanup

Remove/rewrite unwanted or dead code
keep the theme basic
keep the basic theme ( calculator have a way to include multiple themes, would try to update it work properly )

partially fixed in a70cf9c1fefc3c7d63fd6bad7b0c08a442e1f105

Hello can I get this assigned to?

Hi @ricor07 please feel free to work on it.

Any way to work on it without Qt? Ain't downloading 6 gb of stuffo

@ricor07 I am afraid there isn't a way to build the source without QT
If you want a leaner installation, you can skip installing QT-Creator (IDE that comes with QT) and other things like (Qmake to build project ) and use your own alternatives of it, But that would require a lot more work and setting up

Just unassign me the issue. Sorry for disturbing you


move PrettyConfig methods into dedicated builder struct

This PR is a follow-up of #258. It moves the construction of a PrettyConfig instance into its own PrettyConfigBuilder struct, matching the same idea behind #249.
This is more if a place to discuss this further than a real PR. Tests aren't ported over, I just wanted to convey the idea behind it :) It's based upon #258 to already contain the correct method names.
Edit: From my point-of-view:

Pro:

More idiomic. The current PrettyConfig is definitely a builder pattern and this conveys it more explicitly.
Uses &mut self, allowing to pass the builder by reference to other methods if needed.

Cons:

The earlier approach is fine as well. Works without problems.
One more method call (build()).

Pretty obvious, but this would be a breaking change :)

Thank you for experimenting with this!
I believe the builder patter with an explicit build makes most sense where there are things to do in build. For example, an API to create a texture could have a builder object that returns you an actual texture in build().
For our case, there is nothing to do on build, and there is no need for a separate builder object either. So all in all, it appears to me that introducing it is not necessary, and would just complicate things a bit.


feat: Polynomial interface

We need a polynomial type, Maybe @Autoparallel you want to cook on this? I can help and would love to review. We need to be able to switch to Lagrange basis. It could be worth taking a look at this api from plonkathon

I'm on it


RWMobile issues, not handling response correctly

Checks for non existing key 'flwRef' in response
Describe the Bug
Traceback
res = rave.RWMobile.charge(payload)
wo8nb    File "/usr/local/lib/python3.6/site-packages/rave_python/rave_rwmobile.py", line 31, in charge
wo8nb      return super(RWMobile, self).charge(accountDetails, requiredParameters, endpoint)
wo8nb    File "/usr/local/lib/python3.6/site-packages/rave_python/rave_payment.py", line 209, in charge
wo8nb      return self._handleChargeResponse(response, paymentDetails["txRef"])
wo8nb    File "/usr/local/lib/python3.6/site-packages/rave_python/rave_payment.py", line 72, in _handleChargeResponse
wo8nb      flwRef = responseJson["data"]["flwRef"]
wo8nb  KeyError: 'flwRef'
Content of the response on rwmobile object.
{'_content': b'{"status":"success","message":"Momo initiated","data":{"code":"02","status":"pending","ts":1591965xxxx40,"link":"https://checkout.flutterwave.com/captcha/verify/57799:0dxxxxxxxxxxxxxxxxx"}}',
Contains a link to captcha verification.

Hello, I am facing this same issue with UGMobile, I have a backend that accept MTN Mobile money and it had been working but recently when a client initiate a payment they receive an OTP with this message inclusive "MOMO Verification Auth", yet the expected behaviour is initiate a pin input box where the user enters the Mobile money pin to initiate payment, @MaestroJolly, could you offer any help please
below is my implementation
from rave_python import Rave, RaveExceptions

rave = Rave(settings.RAVE_PUBLIC_KEY, settings.RAVE_SECRET_KEY, production=True)

payload = {
  "txRef": "67865",
  "amount": "34000",
  "email"<EMAIL_ADDRESS>  "user_phonenumber": "256784660058",
  "phonenumber": "256784660058",
  "firstname": "Jeffrey",
  "lastname": "Jeffrey",
  "redirect_url": "",
  "device_id": "sadsdadweqweqe",
  "IP": ""
}

try:
    try:
        response = rave.UGMobile.charge(payload)
    except RaveExceptions.TransactionChargeError as e:
        print(e.err)
        print(e.err["flwRef"])
        return Response(e.err, status=status.HTTP_400_BAD_REQUEST)
    except RaveExceptions.TransactionVerificationError as e:
        print(e.err["errMsg"])
        print(e.err["txRef"])
        return Response(e.err, status=status.HTTP_400_BAD_REQUEST)
except KeyError as e:
    print(f'missing key: {e.args}')

I keep get this as my error:
"flwRef = responseJson["data"]["flwRef"]
KeyError: 'flwRef'"

Theri implementation of the api now includes captcha verification.
I have ended up overwritting this method on RWMobile
class RWMobileCustom(RWMobile):
    def _handleChargeResponse(self, response, txRef, request=None, isMpesa=False):
        """ This handles transaction charge responses """

         # If we cannot parse the json, it means there is a server error
        res = self._preliminaryResponseChecks(response, TransactionChargeError, txRef=txRef)

        responseJson = res["json"]

        return responseJson
```

And using it as

```python
from .rave import RWMobileCustom as Rave
rave = Rave(os.environ['API_FLUTTERWAVE_PUBLIC_KEY'],
            os.environ['API_FLUTTERWAVE_SECRET_KEY'], production=True, usingEnv=False)

payload = {
        "amount": 100,
        "email"<EMAIL_ADDRESS>        "phonenumber": 250788000xxx,
        "txRef": uuid.uuid4(),
        "redirect_url": "http://web.com",
        "IP": ""
    }

        res = rave.charge(payload)
        print(res) # includes the link to cptcha verification
```

Thank you, though this is a breaking change for an Official library that should have been communicated

Hi @upatricck @Kyeza, We sincerely apologize for this. @Corvus97 would help update this accordingly.

@MaestroJolly Thank you very much, and a little documentation would really be helpful on this specific issue. Again thanks for the response.


docs system clean up and add README gallery

some URL changes because this package is now hosted under JuliaImages
CI configuration updates

The 1.0 failure is due to old Pkg resolving issue that it can't successfully resolve versions for ImageFiltering v0.7. Once other packages (e.g,. https://github.com/JuliaImages/ImageQualityIndexes.jl/pull/39) are compatible with ImageFiltering v0.7 this failure will disappear.


5.2.1 is on rubygems but no tag/changelog here

It is a little bit confusing that there is a patch version of the gem (5.2.1) on the rubygems from September 18 but there is nothing here (checked tags, releases, changelog...), so I couldn't check the changes. Would it be possible to update Releases?

The change in gem version refers to turbolinks-rails. The diff from v5.2.0 to v5.2.1 can be see here: https://github.com/turbolinks/turbolinks-rails/compare/v5.2.0…v5.2.1.

Thank you


feat(alaska): add dynamic backscraping support

Will help solve Alaska gap issue #937

Everything is correct, let's merge it.


Begin Test Run

Describe the aim of this enhancement
Begin test run (? or a better term) for the web application
Describe the solution you'd like

[x] Mini test run

[ ] Post findings

[ ] Answer Google Forms
[ ] Generate accounts and send emails
[ ] Log in and answer mock examination
[ ] Get suggestions/ concerns/ ideas/ issues
[ ] Browse quiz taking data clip from Heroku Postgres

[ ] Check if recorded quiz actions TRULY reflect users actions

Include sa meeting w/ ma'am tomro

Mini Test Run Findings

can handle 5 concurrent users

Browser

working: Chrome, Firefox
not working: Safari

Frontend

yung sa focus pala, nattrigger sya pagkarender ng page, so kahit wala modal, may focus agad sa simula, pano kaya pwede don?

Bawas na lang isa hahahahah

Heroku Pricing

Hobby Basic Plan, $9 a month, 10m rows,

test


Optionally pass cortex config as configmap.

What this PR does:
Optionally pass cortex config as configmap.
Note: I only updated the ingestor templates so far, to verify that the approach makes sense. If it does, I'll copy and paste the updated volume to the other templates.
Which issue(s) this PR fixes:
Fixes #235.
Checklist

[ ] CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX]

Nice!
with that approach however, we should really have the s3 credentials (or similiar) not in the configMap

Updated, lmk if I missed anything.

@jmcarp Please be careful when rebasing, my changes to the guide were lost

Ack, sorry, not used to collaborating on a branch 😓


Critical Vulnerability

Any secure email contact to report a critical vulnerability in your application?

Hello, you can contact us<EMAIL_ADDRESS>for now @Retr02332
Please let me know if you already sent an email
Thank you

Send !!

Thanks for the report @Retr02332


Expose a way to get the list of documents on ISwaggerProvider

Currently, there is no way to retrieve the list of documents which means that you need to know it's name before hand.
It would be nice to add an Api to get the list of available documents string[] ISwaggerProvider.GetSwaggerDocumentNames()
Are you willing to accept a PR for that?

It would also allow most people to get rid of that kind of redundant code:
UseSwaggerUI(options =>
            {
                options.SwaggerEndpoint("/swagger/All-1.0/swagger.json", "API 1.0");
                options.SwaggerEndpoint("/swagger/Security-1.0/swagger.json", "Security API 1.0");
                options.SwaggerEndpoint("/swagger/All-1.1/swagger.json", "API 1.1");
                options.SwaggerEndpoint("/swagger/Security-1.1/swagger.json", "Security API 1.1");
            });

@domaindrivendev is that a contribution you would accept?

It is looks like good feature, isn't it @domaindrivendev?

You can create a simple extension method for that
public static class SwaggerUIOptionsExtensions
{
    public static void AddSwaggerUIEndpoints(this SwaggerUIOptions options, IDictionary<string, string> endpoints)
    {
        foreach (var endpoint in endpoints)
        {
            options.SwaggerEndpoint(endpoint.Key, endpoint.Value);
        }
    }
}

and use it in Startup like
app.UseSwagger().UseSwaggerUI(c =>
{
	c.AddSwaggerUIEndpoints(endpoints);
});

@Marusyk that's not only for that specific case but also to use in other libraries. The goal is to avoid hacking around and have the proper API to implement elegant solutions.


Add getting started section to readme

##Readme update
Please add a getting started section to Readme so floks know how to start with this project

changed the content of read me file


cc number length less than 16 be valid??

Try 4222 2222 2222 2
It turns out $valid for this number, imo it should not.

It's valid, see https://github.com/bendrucker/creditcards-types for full definitions

Sorry, did not get it, please explain why an invalid credit number is valid?

https://en.wikipedia.org/wiki/Bank_card_number

get it, thx.


go and pypy

I've added a Go implementation and PyPy run.sh line.
You're welcome to use it :)

Hi, thanks for the contribution.
I've commented inline in the pull request two lines of code. They hint the compiler about the size of the array which I find "unfair" :) Since it's the dynamic array allocation & performance that we want to benchmark, I'd rather not hint the compiler about anything. If the algorithm we were about to implement wasn't the "Prime number theorem", we may not even had the chance to know the size prematurely (for example if we were expecting an unknown count of user input).
Long story short - is there a way to declare an array with an unknown size in Go? Something like the following:
s = []int{}

Thanks a lot for your response. In a couple of days I'll merge your code and re-do the tests + publish the results.

I won't be able to update the website results with the Go implementation. The setup I did the tests is no longer available, and due to personal tasks I can't spend more time to recreate it, in order to have all the languages and versions installed again.
From what I can say, Go performs as fast as Nodejs:
== JavaScript (nodejs) ==

real    0m4.365s
user    0m4.180s
sys     0m0.236s

real    0m4.301s
user    0m4.132s
sys     0m0.260s

v0.10.25

== Go (not optimized, default compiler) ==

real    0m3.819s
user    0m4.192s
sys     0m0.128s

real    0m3.222s
user    0m4.332s
sys     0m0.100s

I'm a little surprised to see that Go is using some multi-threaded approach. The "real" wall-clock time is less than the sum of User + System CPU times.
And PyPy is almost as fast as C++:
== C++ (optimized with -O2) ==

real    0m1.241s
user    0m1.104s
sys     0m0.128s

real    0m1.244s
user    0m1.092s
sys     0m0.148s

g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4

== PyPy 2.7 ==

real    0m1.642s
user    0m1.484s
sys     0m0.152s

real    0m1.637s
user    0m1.456s
sys     0m0.176s

Python 2.7.3 (2.2.1+dfsg-1ubuntu0.3, Sep 30 2015, 15:18:27)
[PyPy 2.2.1 with GCC 4.8.4]

The PyPy results are consistent with the comments at the blog page.

The default Go compiler isn't relay build for run-time performance, you might get better results with gccgo and -O2 compile option - similar to C++.
PyPy is awesome (and does some crazy black magic under the hood) :)
Would be interesting to see some memory usage when running these benchmarks.


fix: Incorrect toast in the marketplace accept swap

Bug Report
Swaplace version
1379894
Current behavior
When trying to accept the swap in the marketplace and you are not the owner, the toast message will show up as a generic error.
Expected behavior
Add a better suitable toast message for when the user is not owner of a token.
Like: "You can't approve this token, you are not the owner!"

Closed by #357


MPS2 touchscreen

This is a touchscreen driver for the STMPE811 as used on the MPS2 board. It makes use of the sensor API which required adding a new value to enum sensor_channel.
This pull request replaces my earlier 'touchscreen' pull request which added a touchscreen specific API.

I'm no longer working on Zephyr


Add IAM recommended policy

Issue #, if available:
Description of changes:

Add IAM recommended policy

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/lgtm

why not include this small change inside PR#3 for ct-controller?
This will help recommended-policy-test pass inside #3 , and you won't have to deal with failing e2e tests in 2 separate PRs.

why not include this small change inside PR#3 for ct-controller?
This will help recommended-policy-test pass inside #3 , and you won't have to deal with failing e2e tests in 2 separate PRs.

Primarily so we have different commits for different functionality/fixes.


docker compose and db connection

Hello,
I tried to install a miniflux soft on docker and I'm blocked with this error.
I use a docker compose.
Current schema version: 0, Latest schema version: 31, Migrating to version: 1, [FATAL] [Migrate] dial tcp: lookup db on <IP_ADDRESS>:53: no such host,
I tried several things but that hasn't resolved the issue.
Maybe on the db link ?
My conf
`version: "3"
services:
miniflux-db:
image: postgres:latest
container_name: miniflux-db
networks:
docker2_priv:
ipv4_address: <IP_ADDRESS>
environment:
POSTGRES_PASSWORD: xxxx
POSTGRES_USER: miniflux
restart: always
ports:
- "5430:5432"
volumes:
- miniflux-db:/var/lib/postgresql/data
miniflux:
image: miniflux/miniflux
container_name: miniflux
depends_on:
- miniflux-db
environment:
- DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=miniflux
- ADMIN_PASSWORD=xxxxx
networks:
docker2_pub:
ipv4_address: <IP_ADDRESS>
docker2_priv:
ipv4_address: <IP_ADDRESS>
volumes:
- miniflux_data:/config
ports:
- 8092:8080
restart: unless-stopped`
Tks for your help.

@Alderaaan you have to reference correct database IP address. Generally usage of fixed IP address is not recommended or from my point of view not necessary docker will do DNS for you. Try miniflux-db as DB address (service name).
TIP: Please use code formatting tools in markdown ;-), this is mess

@bilekt3 thanks for the help.
I will look to change for a dynamic IP maybe on the next docker.
For the IP database, I have to indicate in the environment part ?

@Alderaaan I still do not understand why you need to direct networking with containers, so I have created sample docker compose, please note verbose naming and logical composition and be careful for connection string to DB (better to use env variables).
version: "3"
services:
  database:
    image: postgres:latest
    container_name: database
    environment:
      POSTGRES_PASSWORD: xxxx
      POSTGRES_USER: miniflux
    restart: always
    volumes:
      - miniflux_postgresql_data:/var/lib/postgresql/data

  # Optional for PostgreSQL administration
  adminer:
    image: adminer
    container_name: adminer
    restart: always
    ports:
      - 8093:8080

  miniflux:
    image: miniflux/miniflux
    container_name: miniflux
    depends_on:
      - database
    environment:
      - DATABASE_URL=postgres://miniflux:xxxx@database/miniflux?sslmode=disable
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=miniflux
      - ADMIN_PASSWORD=123456789
    volumes:
      - miniflux_app_data:/config
    ports:
      - 8092:8080
    restart: unless-stopped
volumes:
  miniflux_app_data:
  miniflux_postgresql_data:

Ok thanks it's working right now 👍
My database url was wrong...


Upgrade the version of SBT in strongbox-web-integration to the latest

Task Description
As part of #1825 , we need to upgrade the version of SBT in strongbox-web-integration-tests to the latest.
Tasks
The following tasks will need to be carried out:

[ ] Update ci-build-images to use the latest version of SBT for Linux.
[ ] Rebuild the images for SBT.
[ ] Check if all the tests in the strongbox-web-integration-tests still pass.

Task Relationships
This task:

Is a sub-task of: #1825

Useful Links

strongbox-web-integration-tests
ci-build-images

Help

Our chat
Points of contact:

@carlspring
@sbespalov
@steve-todorov

please, mark the repositories above with a 'hacktoberfest' tag :)

What exactly do you mean? The issues are already tagged.

@dotbg : Done! Thanks! :)

Thanks for your help @dotbg and @steve-todorov ! :)


[BUG] Connect-PNPOnline fails in powershell docker container with "No such file or directory"

Environment
Powershell ubuntu LTS Docker image using VScode remote development
Dockerfile (vscode default-ish)
FROM mcr.microsoft.com/powershell:lts-ubuntu-18.04

# [Option] Install zsh
ARG INSTALL_ZSH="false"
# [Option] Upgrade OS packages to their latest versions
ARG UPGRADE_PACKAGES="true"

# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID
COPY library-scripts/*.sh /tmp/library-scripts/
RUN apt-get update \
    && /bin/bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" "true" "true" \
    && chsh "${USERNAME}" -s "$(which pwsh)" \
    && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts
SHELL [ "pwsh", "-c" ]
RUN Install-Module -Force -Scope AllUsers -Verbose -Name ExchangeOnlineManagement -RequiredVersion 2.0.5
RUN Install-Module -Force -Scope AllUsers -Verbose -Name PnP.Powershell -RequiredVersion 1.7.0
RUN Install-Module -Force -Scope AllUsers -Verbose -Name ImportExcel -RequiredVersion 7.2.1

# [Optional] Uncomment this section to install additional packages.
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
#     && apt-get -y install --no-install-recommends <your-package-list-here>

Log
Url: PS /workspaces/xxx> connect-pnponline -url 'https://xxx.sharepoint.com/sites/xxx' -interactive

Connect-PnPOnline: No such file or directory
PS /workspaces/xxx> get-error

Exception             :
    Type            : System.ComponentModel.Win32Exception
    NativeErrorCode : 2
    ErrorCode       : -2147467259
    TargetSite      :
        Name          : ForkAndExecProcess
        DeclaringType : System.Diagnostics.Process
        MemberType    : Method
        Module        : System.Diagnostics.Process.dll
    StackTrace      :
   at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean
redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32&
stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName, String arguments)
   at PnP.PowerShell.Commands.Utilities.BrowserHelper.OpenBrowserForInteractiveLogin(String url, Int32 port, Boolean usePopup,
CancellationTokenSource cancellationTokenSource) in c:\PnPPowerShell\src\Commands\Utilities\BrowserHelper.cs:line 347
   at PnP.PowerShell.Commands.Base.PnPConnection.<>c__DisplayClass100_0.<CreateWithInteractiveLogin>b__0(String url, Int32 port) in
c:\PnPPowerShell\src\Commands\Base\PnPConnection.cs:line 508
   at PnP.Framework.Utilities.OAuth.DefaultBrowserUi.OpenBrowser(String url, Int32 port)
   at PnP.Framework.Utilities.OAuth.DefaultBrowserUi.InterceptAuthorizationUriAsync(Uri authorizationUri, Uri redirectUri, CancellationToken
cancellationToken)
   at PnP.Framework.Utilities.OAuth.DefaultBrowserUi.AcquireAuthorizationCodeAsync(Uri authorizationUri, Uri redirectUri, CancellationToken
cancellationToken)
   at Microsoft.Identity.Client.UI.CustomWebUiHandler.AcquireAuthorizationAsync(Uri authorizationUri, Uri redirectUri, RequestContext
requestContext, CancellationToken cancellationToken)
   at Microsoft.Identity.Client.Internal.AuthCodeRequestComponent.FetchAuthCodeAndPkceInternalAsync(IWebUI webUi, CancellationToken
cancellationToken)
   at Microsoft.Identity.Client.Internal.AuthCodeRequestComponent.FetchAuthCodeAndPkceVerifierAsync(CancellationToken cancellationToken)
   at Microsoft.Identity.Client.Internal.Requests.InteractiveRequest.GetTokenResponseAsync(CancellationToken cancellationToken)
   at Microsoft.Identity.Client.Internal.Requests.InteractiveRequest.ExecuteAsync(CancellationToken cancellationToken)
   at Microsoft.Identity.Client.Internal.Requests.RequestBase.RunAsync(CancellationToken cancellationToken)
   at Microsoft.Identity.Client.ApiConfig.Executors.PublicClientExecutor.ExecuteAsync(AcquireTokenCommonParameters commonParameters,
AcquireTokenInteractiveParameters interactiveParameters, CancellationToken cancellationToken)
   at PnP.Framework.AuthenticationManager.GetContextAsync(String siteUrl, CancellationToken cancellationToken)
   at PnP.Framework.AuthenticationManager.GetContext(String siteUrl, CancellationToken cancellationToken)
   at PnP.PowerShell.Commands.Base.PnPConnection.CreateWithInteractiveLogin(Uri uri, String clientId, String tenantAdminUrl, Boolean
launchBrowser, AzureEnvironment azureEnvironment, CancellationTokenSource cancellationTokenSource, Boolean forceAuthentication, String
tenant) in c:\PnPPowerShell\src\Commands\Base\PnPConnection.cs:line 516
   at PnP.PowerShell.Commands.Base.ConnectOnline.ConnectInteractive() in c:\PnPPowerShell\src\Commands\Base\ConnectOnline.cs:line 553
   at PnP.PowerShell.Commands.Base.ConnectOnline.Connect(CancellationToken& cancellationToken) in
c:\PnPPowerShell\src\Commands\Base\ConnectOnline.cs:line 267
   at PnP.PowerShell.Commands.Base.ConnectOnline.ProcessRecord() in c:\PnPPowerShell\src\Commands\Base\ConnectOnline.cs:line 208
   at System.Management.Automation.Cmdlet.DoProcessRecord()
   at System.Management.Automation.CommandProcessor.ProcessRecord()
    Message         : No such file or directory
    Data            : System.Collections.ListDictionaryInternal
    Source          : System.Diagnostics.Process
    HResult         : -2147467259
CategoryInfo          : NotSpecified: (:) [Connect-PnPOnline], Win32Exception
FullyQualifiedErrorId : System.ComponentModel.Win32Exception,PnP.PowerShell.Commands.Base.ConnectOnline
InvocationInfo        :
    MyCommand        : Connect-PnPOnline
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : 4
    Line             : connect-pnponline -url 'https://xxx.sharepoint.com/sites/xxx' -interactive
    PositionMessage  : At line:1 char:1
                       + connect-pnponline -url 'https://xxx.sharepoint.com/sites/xxx'  …
                       + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    InvocationName   : connect-pnponline
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1

It appears to be an issue with installing the module in the AllUsers location, does the pnpmodule need some kind of write access to its module folder? (which should be a no-no)
If I install it currentuser instead, seems to be fine.

Hi @JustinGrote , did you ever get a solution to this? I am running into the exact same issue.

@Nibushi nope, just ended up installing as root in the container and running as root.

OK thanks.

Hi, could you try this?
docker run --rm -it m365pnp/powershell pwsh -c "\$securedPassword = ConvertTo-SecureString 's;eiufuisGw3()' -AsPlainText -Force; \$adminAccountCredential = New-Object System.Management.Automation.PSCredential<EMAIL_ADDRESS>\$securedPassword ); Connect-PnPOnline -Url https://pnppowershelltest00.sharepoint.com -Credentials \$adminAccountCredential; Get-PnPList"

@shurick81 you are our Docker expert :D What if you would go for the devicelogin? Or a non interactive login using  clientid and certificate? Sounds more feasible to me at least.

Yes, such using credentials works for me:
docker run --rm -it m365pnp/powershell pwsh -c "\$securedPassword = ConvertTo-SecureString 's;eiufuisGw3()' -AsPlainText -Force; \$adminAccountCredential = New-Object System.Management.Automation.PSCredential<EMAIL_ADDRESS>\$securedPassword ); Connect-PnPOnline -Url https://pnppowershelltest00.sharepoint.com -Credentials \$adminAccountCredential; Get-PnPList"

Not sure if you are aware, but you just pasted your username and password in the sample above.
Can you add some documentation around this in a new article under https://pnp.github.io/powershell/articles/index.html to help out others?

Should we add a separate page, similarly to https://pnp.github.io/powershell/articles/azurecloudshell.html?

Exactly what I had in mind, yes please :)

@JustinGrote, I have tried to use this image, as you say with using CurrentUser scope:
FROM mcr.microsoft.com/powershell:lts-ubuntu-18.04

SHELL [ "pwsh", "-c" ]
RUN Install-Module -Force -Scope CurrentUser -Verbose -Name PnP.Powershell -RequiredVersion 1.7.0

But I get the same error:
PS /> connect-pnponline -url 'https://pnppowershelltest00.sharepoint.com/' -interactive
WARNING:

 A newer version of PnP PowerShell is available: 1.10.0.

 Use 'Update-Module -Name PnP.PowerShell ' to update.
 Use 'Get-PnPChangeLog -Release 1.10.0' to list changes.

 You can turn this check off by setting the 'PNPPOWERSHELL_UPDATECHECK' environment variable to 'Off'.

Connect-PnPOnline: An error occurred trying to start process 'xdg-open' with working directory '/'. No such file or directory

Could you confirm that you have another experience? How did it work for you with CurrentUser? Container triggered opening a new tab in your host browser?

@JustinGrote have you had time for any more research?
@KoenZomers I have registered a separate issue: #2008

@JustinGrote have you had time for any more research?
@KoenZomers I have registered a separate issue: #2008

I have not, no, sorry! I ended up just moving to MS Graph for most of my operations because CSOM got too limiting.

Should we close the issue then?

By the way @JustinGrote, the Graph team has recently released an official Docker image: mcr.microsoft.com/microsoftgraph/powershell


Unable to run Hive locally with external composition enabled

Hiya! Hope you're all doing well.
We currently have all of our graphs running in an Apollo Federation v2 federated graph with the Apollo Gateway. We wanted to explore moving to use the Guild tooling to achieve the same functionality. I've been exploring running Hive locally (in the future with Mesh) with external composition enabled, but unfortunately I've been running into issues publishing my schema. The error I'm receiving in the Hive logs is the following (sensitive info removed):
docker-server-1                | {"level":30,"time":1677171225731,"pid":1,"hostname":"4c0bcdf7e400","msg":"Publishing schema (input={\"service\":\"identity\",\"url\":\"http://localhost:3000/graphql\",\"author\":\"FAKE_AUTHOR_NAME\",\"commit\":\"COMMIT_ID\",\"experimental_acceptBreakingChanges\":false,\"github\":false,\"checksum\":\"+M2xwukQIgdNYSlfmQkAWg==\",\"isSchemaPublishMissingUrlErrorSelected\":true,\"organization\":\"b5e4d621-4165-4d58-8b2c-4a5c778eb9ab\",\"project\":\"8c8663e9-19d3-4788-9ab6-5f509bfc9dd6\",\"target\":\"4d3c47c7-b298-4158-a4ed-846e4381b8f2\",\"sdl\":4774,\"experimental_accept_breaking_changes\":false,\"metadata\":false}) - (requestId=izONjSSlQV2hS+8p8N30uQ/0000000000)"}

docker-tokens-1                | {"level":30,"time":1677171225736,"pid":1,"hostname":"011fafeb6cea","msg":"[200] (::ffff:<IP_ADDRESS>) GET /trpc/getToken?input=%7B%22token%22%3A%226eb3bed51cc002156cbde52693d8f57c%22%7D (reqId=izONjSSlQV2hS+8p8N30uQ/0000000000)"}

docker-schema-1                | {"level":50,"time":1677171226957,"pid":1,"hostname":"0e8a896aded2","reqId":"izONjSSlQV2hS+8p8N30uQ/0000000000","msg":"connect ECONNREFUSED <IP_ADDRESS>:3069"}

docker-schema-1                | {"level":50,"time":1677171226960,"pid":1,"hostname":"0e8a896aded2","msg":"[500] (::ffff:<IP_ADDRESS>) POST /trpc/validate (reqId=izONjSSlQV2hS+8p8N30uQ/0000000000)"}

docker-server-1                | {"level":50,"time":1677171226966,"pid":1,"hostname":"4c0bcdf7e400","msg":"**connect ECONNREFUSED <IP_ADDRESS>:3069\n\nGraphQL request:2:3\n**1 | mutation schemaPublish($input: SchemaPublishInput!, $usesGitHubApp: Boolean!) {\n2 |   schemaPublish(input: $input) {\n  |   ^\n3 |     __typename - (requestId=izONjSSlQV2hS+8p8N30uQ/0000000000)"}

docker-server-1                | {"level":50,"time":1677171226966,"pid":1,"hostname":"4c0bcdf7e400","msg":"**connect ECONNREFUSED <IP_ADDRESS>:3069\n\nGraphQL request:2:3\n**1 | mutation schemaPublish($input: SchemaPublishInput!, $usesGitHubApp: Boolean!) {\n2 |   schemaPublish(input: $input) {\n  |   ^\n3 |     __typename - (requestId=izONjSSlQV2hS+8p8N30uQ/0000000000)"}

docker-server-1                | {"level":30,"time":1677171226968,"pid":1,"hostname":"4c0bcdf7e400","msg":"[200] (::ffff:<IP_ADDRESS>) POST /graphql 'schemaPublish'"}

Here is the Hive CLI command:
npx hive schema:publish ./build/schema.graphql --service fake_service_name --url http://localhost:3000/graphql
I can access the /_readiness endpoint in my browser and get the "Ok." response (also verified the composition service printed it's running on localhost at the expected port). The Hive instance and the external composition service are both running on localhost. I have tried different ports than 3069, as well as using the IP address directly instead of localhost in the Hive UI, both result in the same error. I followed the steps here and here for running Hive locally with the provided federation v2 external composition image. I made sure the secrets match in both the Hive UI and what I started the image with. Here are the image versions I'm using:
Hive image tag: f66f6714d5841620d8fa224b67907c534e21470b
Composition image tag: It's listed as latest (I pulled this morning), and this is my image shown in the history of the image => 256ba5312c76.
I'm likely not doing something correctly to enable Hive to talk to the external service, but I'm not sure what it is from the guides. If you need any more information please let me know and I will get it! Thanks :)

Hey @CPerry26, great to hear that you want to explore Hive!
From looking at your logs it seems like the configuration might be wrong.
docker-server-1 {"level":50,"time":1677171226966,"pid":1,"hostname":"4c0bcdf7e400","msg":"**connect ECONNREFUSED <IP_ADDRESS>:3069

The server container tries to connect to http://<IP_ADDRESS>:3069 WITHIN the server docker container. Instead it should connect to the host/ip of the container.
We recommend adding the container to the docker-compose.community.yaml file, similar to what we are doing in the integration tests: https://github.com/kamilkisiela/graphql-hive/blob/4b095a00ed86232e9479756044b955506f073291/integration-tests/docker-compose.integration.yaml#L62-L71
Instead of using http://<IP_ADDRESS>:3069, you then need to use http://composition_federation_2:3069, as the host for the composition service, as this is the hostname exposed in the internal docker network.
You can learn more on networking in docker-compose here: https://docs.docker.com/compose/networking/


[secded_gen] Enhance inverted ECC code

Follow-up for #9259.
This tweaks the inverted ECC codes so that neither all-zero nor all-ones
are valid code words in order to guard against glitch attacks.
Signed-off-by: Michael Schaffner<EMAIL_ADDRESS>

@moidx @cdgori FYI


Feature/547 timeline edit plantings dates in sidebar

Ref: #547
Basics

[X] I added a line to /doc/CHANGELOG.md
[X] The PR is rebased with current master.

[X] References to issues, e.g. close #X, are in the commit messages.
[x] The buildserver is happy.

Checklist

[x] I have installed and I am using pre-commit hooks
[x] I fully described what my PR does in the documentation
(not in the PR description)
[x] I fixed all affected documentation
[x] I fixed all affected decisions
[ ] I added unit tests for my code
[x] I added code comments, logging, and assertions as appropriate
[x] I translated all strings visible to the user
[x] I mentioned every code or binary not directly written or done by me in reuse syntax
[x] I created left-over issues for things that are still to be done
[x] Code is conforming to our Architecture
[x] Code is conforming to our Guidelines
(exceptions are documented)
[x] Code is consistent to our Design Decisions

Review

[ ] I've tested the code
[ ] I've read through the whole code
[ ] Examples are well chosen and understandable

jenkins build please

@markus2330

when selecting German, the date format should be German

The representation of the default browser date input is handled by the browser language. We would need a custom solution if we want to change how it looks currently.

there should be some text explaining what "delete plant" and "remove plant" means
"remove plant" and the button "delete plant" should be visually better separated
button "delete plant" should be smaller

Everything else I will do later today in this PR :)

@markus2330
If we go for a custom solution here I would suggest we use https://ui.shadcn.com/docs which is built upon https://www.radix-ui.com/
It is compatible with tailwindcss (that we use for styling), is headless (can be customized to the very last detail) and can be adopted one component at a time.
I would then also suggest that we swap out the selects and other form components for the ones in shadcn later.
The solution would follow the WAI-ARIA guidelines by default.

I like the idea but it is nothing we should do soon. Let us see if anyone in the user study has English browser settings and selects De. :wink: I created  #656

jenkins build please


Add Search to Docs

We need some way to search the docs, I can provide some kind of UI for this when I get a chance.

Think that has now been achieved by @somebee


Remove ksonnet page from "Components of Kubeflow"

This page is no longer necessary: https://www.kubeflow.org/docs/components/ksonnet/
We should consider adding a page about Kustomize.

@sarahmaddox I can work on removing the ksonnet page and adding a kustomize page that at the least explains what it is and how to install it.

@scottilee Please feel free to reference this page: https://github.com/kubeflow/manifests/blob/master/README.md

@richardsliu Will do, will have a pull request later today.

/assign @scottilee
Great! Thanks @scottilee and @richardsliu

I made a pull request here: https://github.com/kubeflow/website/pull/913
@sarahmaddox or @richardsliu could you please review and give me some feedback?

This is done.


question: get head from the server

First of all, the library is great! Very simple to use. Now the question:
For example, I would like to have a Component that will have a custom fb:app_id. But to get this id, I will have to make a request to the server.
But my tests failed, even using the functions to return the components. I tried to load the server information in the created phase of the component. https://vuejs.org/guide/instance.html#Lifecycle-Diagram
Do you think this is possible? What do you recommend for this scenario? Maybe using transition hooks (http://router.vuejs.org/en/pipeline/hooks.html)?
Well, this data is important for SEO, so I don't think any JS will be useful, but.. dunno
Thanks in advance!

Olá @paulocheque, tudo ok?
Não sei se entendi, mas se estiver utilizando o vue-router, é melhor utilizá-lo para isso
meta () {
  return {
    property: {
        'fb:app_id': 123456789

  }
}

Opa, jóia!
Ok, thanks. Well, this is what I imagine. We could use data instead of activate, but either way it is javascript, so this can be problematic for most robots. But for some properties this could be very useful. Thanks again!

This would talk about not facebook detection in dynamic data.
now is not cool, but they will adapt, I'll cheer for it.
Yeah, data It is most recommended

Hi !
First, thanks for this cool plugin !
We want to use it with Vue 2.0
I have fork your repo here https://github.com/kffein/vue-head
I have simply change ready for mounted
But it seem to be not reactive in my component...
  data () {
    return {
      title: ''
    }
  },
  mounted() {
    setTimeout(() => this.title = 'titi', 1000)
  },
  head: {
    title() {
      return {
        inner: this.title,
      }
    },
  }

the title still empty after 1 seconde...
Any idea ?
Thanks !

@stephanedemotte
Thanks for using!
I have not ventured in 2.0, but have you tried to updated hook?

From what I read, the mounted does not guarantee much if the DOM is ready.

If you can make it work, send a pull request as v2.0.0-beta.
I will begin testing the 2.0 and test the vue-head plug
Thanks for the feedback.


Fix the jupyterhub dockerfile after the 0.9 release of jupyterhub

@jirikuncar @ableuler did jupyterhub.renga.build/services/projects work for you? It doesn't work for me -- neither does jupyterhub.renga.build for that matter (bad gateway).


feat: add expressionUseOnlyWhitelistedLabelsForMetric

Adding a new validation - expressionUseOnlyWhitelistedLabelsForMetric :)

Also, please rebase since I merged some dependency updates and bumped version if linting in CI :pray:

All suggestions should be implemented now.
I'm not sure about the scenario in case validated expr will contain regexp match on metric name (e.g. {__name__=~"kube_.*_.labels"}).  Should it then be compared using regexp match with the configured metricNameRegexp, what in case this will be an actual regexp as well?
As it is now, the validation may be conterintuitive:
https://github.com/FUSAKLA/promruval/blob/836a2af170629b72ece4a37d7c262a63d77b2f49/pkg/validator/validator_test.go#L94

Great, thanks!
Regarding the issue with a metric name selector being a regexp, the correct solution would be to tell if both the regexps intersect in its matches, but that's not a simple task AFAIK.
Looking at the possibilities of the go regexp package, I'd go with

Get LiteralPrefix of the metricNameRegexp

If it returns complete==true (means the mtericNameRegexp wasjust plain string) -> try if the __name__ regexp matches the returned literal prefix
if complete==false, try if the metricNameRegexp matches the LiteralPrefix of the __name__ regexp

Does this sound somehow reasonable? :thinking:
It's not perfect, but I cannot think of anything better than this "heuristic", but I'd say it's enough

Great, thanks!
Regarding the issue with a metric name selector being a regexp, the correct solution would be to tell if both the regexps intersect in its matches, but that's not a simple task AFAIK.
Looking at the possibilities of the go regexp package, I'd go with

Get LiteralPrefix of the metricNameRegexp

If it returns complete==true (means the mtericNameRegexp wasjust plain string) -> try if the __name__ regexp matches the returned literal prefix

Sounds good.

if complete==false, try if the metricNameRegexp matches the LiteralPrefix of the __name__ regexp

I did not want to use such heuristic from the start, as it may return false-positives, for example:
params:
  metricNameRegexp: "kube_.*_labels"
  allowedLabels: [ "pod", "cluster", "app", "team" ]

record:
  expr: {__name__=~"kube_.*_annotations"...}

This is rather an edge-case and cannot even think about any real use-case with expr which would use regexp match for __name__. But I guess this can be left up for a user to consider as long as it will be documented (it has to be :).

You're about the false positives :/
In such case yes, lets rather not check the regexp name matchers at all and just add warning :+1:

You're about the false positives :/ In such case yes, lets rather not check the regexp name matchers at all and just add warning 👍

Done, PTAL. :)


Compiling libpcapreader is not documented and is not streamlined

 Issue by carlos.garcia
Wednesday Nov 02, 2016 at 16:53 GMT
Originally opened as https://git.tk.informatik.tu-darmstadt.de/SPIN/ID2T-toolkit/issues/13

libpcapreader needs to be compiled by each user, it is not sufficient to use a precompiled version.
The instalation instructions should address this issue.
The compilation needs to be streamlined to make it as easy as possible to compile.

 Comment by patrick.jattke
Thursday Nov 03, 2016 at 22:44 GMT

To be considered: Currently the generated libpcapreader.so library must be moved manually to the ID2TLib folder to make it accessible by the Python classes. This copying should ideally be included into the CMake file.
This task is related to #1 (CMake does not work in distributions other than Ubuntu) and should be addressed right after making the CMake file distribution independent.

 Comment by carlos.garcia
Thursday Oct 05, 2017 at 13:01 GMT


QFX support?

I have been looking for tools to convert CSV files to QFX files so that Quicken / QuickBooks can import.
Haven't looked at the code for the project.
Can it do it already?
Would you foresee much work modifying it to create QFX files instead?
Thanks.

QuickBooks can import OFX so it should work as is. Please update this issue if you try and it doesn't work.


OpenAPI spec does not document tasks generated by a GET to /declare

Environment

Application Services Version: 3.21.0-4
BIG-IP Version: N/A

Summary
The OpenAPI docs for the /task endpoint on AS3 do not document tasks that result from doing a GET on the /declare endpoint. These tasks have the declaration as an item in the  results array.
Steps To Reproduce
Steps to reproduce the behavior:

Have AS3 managed applications on the box (need something to get back from /declare)
Do a GET on the /declare endpoint
Do a GET on the /task endpoint

Expected Behavior
The results of the GET on the /task endpoint should be documented.
Actual Behavior
A result like the below is returned which does not match the OpenAPI spec:
{
  "items": [
    {
      "id": "4938b176-8836-47cf-bc5f-06dccd03d423",
      "results": [
        {
          "class": "ADC",
          "schemaVersion": "3.0.0",
          "foo": {
            "class": "Tenant",
            "bar": {
              "class": "Application",
              "template": "udp",
              "serviceMain": {
                "class": "Service_UDP",
                "virtualAddresses": [
                  "<IP_ADDRESS>"
                ],
                "virtualPort": 5555,
                "pool": "bar_Pool1"
              },
              "bar_Pool1": {
                "class": "Pool",
                "monitors": [
                  "icmp"
                ],
                "members": [
                  {
                    "serverAddresses": [
                      "<IP_ADDRESS>"
                    ],
                    "servicePort": 5555
                  }
                ]
              },
              "constants": {
                "class": "Constants",
                "fast": {
                  "template": "examples/simple_udp_defaults",
                  "setHash": "c2952188146772dc1adbcde6d7618b330cccd5d18c0c20952b2bd339b8889c87",
                  "view": {
                    "tenant_name": "foo",
                    "application_name": "bar",
                    "virtual_address": "<IP_ADDRESS>",
                    "virtual_port": 5555,
                    "server_addresses": [
                      "<IP_ADDRESS>"
                    ],
                    "service_port": 5555
                  },
                  "lastModified": "2020-08-07T20:51:46.749Z"
                }
              }
            }
          },
          "id": "fast%create%foo%bar%3f7d3920-96be-4ec9-89c2-a26e07ca5205",
          "updateMode": "selective",
          "controls": {
            "archiveTimestamp": "2020-08-07T20:51:50.394Z"
          }
        }
      ],
      "declaration": {}
    }
  ]
}

Possible Solutions
This behavior should be documented. It would also be nice to be able to easily identify what type of task is being dealt with when trying to parse the results of the /task endpoint, but that is a different issue/request.

Added to our internal product backlog as AUTOTOOL-1795.

This was resolved with the 3.31.0 release of AS3.


Dispatched events do not call Element properties

Basic info:

Node.js version: 6.9.1
jsdom version: 10.0.0

Minimal reproduction case
const jsdom = require('jsdom');

const dom = new jsdom.JSDOM(`
<!DOCTYPE html>

`);

const document = dom.window.document;

const div = document.createElement('div');
document.body.appendChild(div);
div.onclick = function () {
	console.log('I was clicked.');
}

const event = document.createEvent('CustomEvent');
event.initEvent('click', true, true);
div.dispatchEvent(event);

You get no output, though it is expected that onlick property would have been called.
How does similar code behave in browsers?
Logs I was clicked. as expected
Also, similar code worked in jsdom v9.

It seems you need to add , { runScripts: "dangerously" } according to https://github.com/tmpvar/jsdom#executing-scripts

That does resolve the issue, though I would say that is totally non-obvious in that there were no obvious scripts.  Setting element listeners via setting the property directly on the element is a super common way and lots of developers wouldn't realise that issue when writing isomorphic code.

Also, the documentation does say "inline event handlers", but I would expect still that most developers would not consider setting a property from the outside to be an inline event handler.  Even "outside-only" doesn't allow the handler to execute.

jsdom.jsdom previously set runScripts: "dangerously" implicitly. This has now been made explicit.

@vsemozhetbyt yes, I realise that, but I am dealing with testing some code written in the above way, which previously worked when running against jsdom v9.  I converted over to the new API, only to find that tests that ran previously stopped working.
@Sebmaster yes, I understand that.  My main point now is that the documentation does not make it obvious that the pattern above is actually considered an inline event handler.  It was counter intuitive.  The only examples in the documentation refer to inline script tags.  Even if there was an examples that had something like

 I don't think many developers would have assumed that that was the same thing as document.createElement('div'); div.onlick = function () { console.log('I was clicked.'); } and considered an unsafe inline script.

This does seem like a bug, although I'm not sure how fixable it will be to detect onclick set from outside vs. inside.

I thought a bit about how to implement this. We have the following cases:

Event handler properties set from the outside (the OP's issue)
Event handler properties set from the inside
Event handler attributes set during parsing
Event handler attributes set from the outside using setAttribute (and friends).
Event handler attributes set from the inside using setAttribute (and friends).

jsdom cannot distinguish between (1) + (2) and between (4) + (5). However, (2) and (5) are only really relevant in runScripts: "dangerously", since you can't run code inside otherwise.
(1) should work even with runScripts: undefined, I think.
(3) should be restricted to runScripts: "dangerously" because of the classic danger case where you point your JSDOM.fromURL() at an untrusted URL, and it includes script in its onload="" attribute that formats your hard disk.
My big question is about (4). I'm not sure where it lands. I can see arguments for allowing it with runScripts: undefined, or only with "outside-only", or only with "dangerously". What do others think?

I think (4) is more closely related to (3), in the sense that usually only works when the attribute existed on the original document during parsing, and are just as dangerous.  It might be arguable that they are equal to "outside-only" but essentially there is a risk that unsanitised strings could be being added to an attribute.
It is clearly different than the other two forms which you would expect to just work:
const div = document.createElement('div');
div.onclick = (e) => console.log(e); /* known scope */
div.addEventListener('click', (e) => console.log(e)); /* known scope */

div.setAttribute('onclick', '(e) => console.log(e)'); /* eval is evil */

FWIW, this works without { runScripts: 'dangerously' }:
const jsdom = require('jsdom');

const dom = new jsdom.JSDOM(`
  <!DOCTYPE html>

`);

const document = dom.window.document;

const div = document.createElement('div');
document.body.appendChild(div);

div.addEventListener('click', function () {
  console.log('I was clicked.');
});

const event = document.createEvent('CustomEvent');
event.initEvent('click', true, true);
div.dispatchEvent(event);

This is an old-fashioned way, for old browsers. And initEvent method is deprecated now.


gatt_security_server Example: Added services are displayed twice at nrfConnect App (IDFGH-1130)

Environment

Development Kit:      [ESP32-Wrover-Kit]
Kit version (for WroverKit/PicoKit/DevKitC): [v4]
Module or chip used:  [ESP32-WROVER|]
IDF version: v4.0-dev-478-gdf61612f8
Build System:         [Make]
Compiler version : xtensa-esp32-elf-gcc (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a) 5.2.0
Operating System:     [Ubuntu]
Power Supply:         [USB]

Problem Description
I extended the gatt_security_server example provided by esp-idf with additional services, namely the Battery Level Service and the Environmental Sensing Service. In order to do so, I followed the tutorials provided in the example folder and copied the lines of code used to create the Heart Rate Service in the original example.
I played around with any combination of HRS, Battery Level and ESS and then connect to the ESP32 using the nrfConnect Android and Linux apps.
As soon as I have created more than one GATT service at the ESP32, I see every service created twice (see screenshot. Let's number the services 1 to 4 beginning from the topmost Battery Service). I can read the characteristics of services 1 to 4 to get the dummy values written into the source code. However, only reading services 3 and 4 (i.e. the Battery Service and the Environmental Sensing Service displayed at the bottom of the screenshot) trigger an event in the debug logs on the monitor (e.g. V (1491156) HWS_SENSOR: event = 1).
Stepping through my Sourcecode with GDB shows, that the debug log messages
E (1076) BT_GATT: Active Service Found
E (1076) BT_GATT: Duplicate Service start - Service already started

appear directly after having stepped over line 56 of the following GDB log:
739         ret = esp_ble_gatts_app_register(ESP_BATTERY_APP_ID);
(gdb) s
Target halted. PRO_CPU: PC=0x400EFF42 (active)    APP_CPU: PC=0x4014C44A
esp_ble_gatts_app_register (app_id=87)
	at /opt/esp32_Development/esp-idf/components/bt/bluedroid/api/esp_gatts_api.c:44
44          ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
(gdb) l
39      esp_err_t esp_ble_gatts_app_register(uint16_t app_id)
40      {
41          btc_msg_t msg;
42          btc_ble_gatts_args_t arg;
43
44          ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
45
46          //if (app_id < ESP_APP_ID_MIN || app_id > ESP_APP_ID_MAX) {
47          if (app_id > ESP_APP_ID_MAX) {
48              return ESP_ERR_INVALID_ARG;
(gdb) s
Target halted. PRO_CPU: PC=0x400EFD6F (active)    APP_CPU: PC=0x4014C44A
esp_bluedroid_get_status ()
	at /opt/esp32_Development/esp-idf/components/bt/bluedroid/api/esp_bt_main.c:28
28          if (bd_already_init) {
(gdb) n
29              if (bd_already_enable) {
(gdb) n
30                  return ESP_BLUEDROID_STATUS_ENABLED;
(gdb) n
esp_ble_gatts_app_register(app_id=85)
	at /opt/esp32_Development/esp-idf/components/bt/bluedroid/api/esp_gatts_api.c:47
47          if (app_id > ESP_APP_ID_MAX) {
(gdb) n
51          msg.sig = BTC_SIG_API_CALL;
(gdb) n
52          msg.pid = BTC_PID_GATTS;
(gdb) n
53          msg.act = BTC_GATTS_ACT_APP_REGISTER;
(gdb) n
54          arg.app_reg.app_id = app_id;
(gdb) n
#stepping over this line prints "Active Service Found" message shown above
56          return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gatts_args_t), NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);

Trying to step into btc_transfer_context causes my debugger to stop, thus I could not dig deeper.
Am I mistaken about how to add services?
Expected Behavior
Every service created should be visible only once.
Actual Behavior
Every service created is shown twice.
Steps to reproduce

Add the code snippets posted below to the gatt_security_server example provided by esp-idf
use the nrfConnect or similar app to connect to the ESP32 and discover services

Code to reproduce this issue
Please see relevant snippets at https://gist.github.com/secureschwob/8e829e909a695b1338f269e07950c618.
Debug Logs
I (606) phy: phy_version: 4100, 2a5dd04, Jan 23 2019, 21:00:07, 0, 0
I (846) HWS_SENSOR: app_main init bluetooth
D (846) nvs: nvs_open_from_partition bt_config.conf 1
D (846) nvs: nvs_get_str_or_blob bt_cfg_key0
D (846) nvs: nvs_get_str_or_blob bt_cfg_key0
D (856) nvs: nvs_close 2
D (856) nvs: nvs_open_from_partition bt_config.conf 1
D (866) nvs: nvs_set_blob bt_cfg_key0 475
D (876) nvs: nvs_close 3
V (996) HWS_SENSOR: event = 0

V (1006) HWS_SENSOR: event = 0

V (1006) HWS_SENSOR: event = 16

I (1006) HWS_SENSOR: The number handle = 3
V (1016) HWS_SENSOR: event = 16

I (1016) HWS_SENSOR: The number handle = 3
V (1016) HWS_SENSOR: event = 16

I (1026) HWS_SENSOR: The number handle = 3
V (1026) HWS_SENSOR: event = 16

I (1026) HWS_SENSOR: The number handle = 3
V (1046) HWS_SENSOR: event = 16

I (1046) HWS_SENSOR: The number handle = 3
V (1046) HWS_SENSOR: event = 16

I (1046) HWS_SENSOR: The number handle = 3
V (1056) HWS_SENSOR: event = 16

I (1056) HWS_SENSOR: The number handle = 3
V (1056) HWS_SENSOR: event = 16

I (1066) HWS_SENSOR: The number handle = 3
V (1066) HWS_SENSOR: GAP_EVT, event 22

E (1076) BT_GATT: Active Service Found
E (1076) BT_GATT: Duplicate Service start - Service already started
E (1086) BT_GATT: Active Service Found
E (1086) BT_GATT: Duplicate Service start - Service already started
E (1096) BT_GATT: Active Service Found
E (1096) BT_GATT: Duplicate Service start - Service already started
V (1106) HWS_SENSOR: GAP_EVT, event 22

E (1106) BT_GATT: Active Service Found
E (1116) BT_GATT: Duplicate Service start - Service already started
E (1116) BT_GATT: Active Service Found
E (1126) BT_GATT: Duplicate Service start - Service already started
E (1136) BT_GATT: Active Service Found
E (1136) BT_GATT: Duplicate Service start - Service already started
V (1146) HWS_SENSOR: event = c

V (1146) HWS_SENSOR: event = c

V (1146) HWS_SENSOR: event = c

V (1156) HWS_SENSOR: event = c

V (1156) HWS_SENSOR: event = c

V (1156) HWS_SENSOR: event = c

V (1166) HWS_SENSOR: event = c

V (1166) HWS_SENSOR: event = c

V (1166) HWS_SENSOR: event = c

V (1176) HWS_SENSOR: event = c

V (1176) HWS_SENSOR: event = c

V (1186) HWS_SENSOR: event = c

V (1186) HWS_SENSOR: event = c

V (1186) HWS_SENSOR: event = c

V (1186) HWS_SENSOR: event = c

V (1196) HWS_SENSOR: event = c

V (1196) HWS_SENSOR: GAP_EVT, event 0

V (1196) HWS_SENSOR: GAP_EVT, event 1

V (1206) HWS_SENSOR: GAP_EVT, event 0

V (1206) HWS_SENSOR: GAP_EVT, event 1

V (1226) HWS_SENSOR: GAP_EVT, event 6

I (1226) HWS_SENSOR: advertising start success
V (1236) HWS_SENSOR: GAP_EVT, event 6

I (1236) HWS_SENSOR: advertising start success
V (1246) HWS_SENSOR: GAP_EVT, event 6

I (1246) HWS_SENSOR: advertising start success
V (1246) HWS_SENSOR: event = 0

V (1246) HWS_SENSOR: event = 0

E (1256) BT_BTM: Advertising or scaning now, can't set privacy
V (1266) HWS_SENSOR: event = 16

I (1266) HWS_SENSOR: The number handle = 3
V (1266) HWS_SENSOR: event = 16

I (1266) HWS_SENSOR: The number handle = 3
V (1276) HWS_SENSOR: event = 16

I (1276) HWS_SENSOR: The number handle = 3
V (1286) HWS_SENSOR: event = 16

I (1286) HWS_SENSOR: The number handle = 3
E (1296) BT_BTM: Advertising or scaning now, can't set privacy
V (1306) HWS_SENSOR: event = 16

I (1306) HWS_SENSOR: The number handle = 3
V (1306) HWS_SENSOR: event = 16

I (1306) HWS_SENSOR: The number handle = 3
V (1316) HWS_SENSOR: event = 16

I (1316) HWS_SENSOR: The number handle = 3
V (1326) HWS_SENSOR: event = 16

I (1326) HWS_SENSOR: The number handle = 3
V (1326) HWS_SENSOR: GAP_EVT, event 22

E (1336) HWS_SENSOR: config local privacy failed, error status = 1
E (1346) BT_GATT: Active Service Found
E (1346) BT_GATT: Duplicate Service start - Service already started
E (1356) BT_GATT: Active Service Found
E (1356) BT_GATT: Duplicate Service start - Service already started
V (1366) HWS_SENSOR: GAP_EVT, event 22

E (1366) HWS_SENSOR: config local privacy failed, error status = 1
E (1376) BT_GATT: Active Service Found
E (1376) BT_GATT: Duplicate Service start - Service already started
E (1386) BT_GATT: Active Service Found
E (1396) BT_GATT: Duplicate Service start - Service already started
E (1396) BT_GATT: Active Service Found
E (1406) BT_GATT: Duplicate Service start - Service already started
E (1406) BT_GATT: Active Service Found
E (1416) BT_GATT: Duplicate Service start - Service already started
V (1426) HWS_SENSOR: event = c

V (1426) HWS_SENSOR: event = c

V (1426) HWS_SENSOR: event = c

V (1436) HWS_SENSOR: event = c

V (1436) HWS_SENSOR: event = c

V (1436) HWS_SENSOR: event = c

V (1446) HWS_SENSOR: event = c

V (1446) HWS_SENSOR: event = c

V (1446) HWS_SENSOR: event = c

V (1456) HWS_SENSOR: event = c

V (1456) HWS_SENSOR: event = c

V (1456) HWS_SENSOR: event = c

V (1456) HWS_SENSOR: event = c

V (1466) HWS_SENSOR: event = c

V (1466) HWS_SENSOR: event = c

V (1466) HWS_SENSOR: event = c

@secureschwob, Can you provide your test code?

Dear @Weijian-Espressif , thanks for your fast response.
All lines of code, which modified the original esp-idf/examples/bluetooth/gatt_security_server/ example can be found at https://gist.github.com/secureschwob/8e829e909a695b1338f269e07950c618 .
Are you missing something particular?

@secureschwob, Sorry I can not open the URL, probably because of China's firewall. Can you send an attachment?

@Weijian-Espressif Please find the source code from the Gist below:
/* File: example_ble_sec_gatts_demo.h */

// Battery Service
enum {
	BS_IDX_SVC,

	BS_IDX_MEAS_CHAR,
	BS_IDX_MEAS_VAL,

	BS_IDX_NB,
};

// Environmental Sensing Service (ESS) (partly implemented)
enum {
	ESS_IDX_SVC,            // ESS service index

	ESS_IDX_ES_TEMP_MEAS_CHAR,   // Characteristic index
	ESS_IDX_ES_TEMP_MEAS_VAL,    // Characteristic value index
	 ESS_IDX_ES_MEAS_NTF_CFG,     ESS notifications configuration index

	ESS_IDX_NB,             // number of table elements
};

/* File: example_ble_sec_gatts_demo.c */
#include "example_ble_sec_gatts_demo.h"
#include "environmental_sensing_service.h"	#includes UUIDs of the service not found in

#define PROFILE_NUM                 2

#define BATTERY_PROFILE_APP_IDX         0
#define ESP_BATTERY_APP_ID              0x57	//arbitrarily chosen
#define BATTERY_SVC_INST_ID             0
static uint16_t battery_service_handle_table[BS_IDX_NB];

#define ESS_PROFILE_APP_IDX         1
#define ESP_ESS_APP_ID              0x75    //arbitrarily chosen
#define ESS_SVC_INST_ID             0
static uint16_t ess_handle_table[ESS_IDX_NB];

static struct gatts_profile_inst profile_tab[PROFILE_NUM] = {
		[BATTERY_PROFILE_APP_IDX] = {
			.gatts_cb = gatts_profile_event_handler,    //TODO set another event handler?
			.gatts_if = ESP_GATT_IF_NONE,
		},
	[ESS_PROFILE_APP_IDX] = {
		.gatts_cb = gatts_profile_event_handler, //TODO set another event handler?
		.gatts_if = ESP_GATT_IF_NONE,
	},
};

/*Environmental Sensing PROFILE ATTRIBUTES */
// Environmental Sensing Service
static const uint16_t ess_svc = ESS_UUID_SERVICE;   //0x181A

/// ESS Characteristic
static const uint16_t temperature_uuid = ESS_UUID_TEMP_CHAR;    //0x2A6E
static const uint8_t temperature_value[1] = {0x0A};

static const esp_gatts_attr_db_t ess_gatt_db[ESS_IDX_NB] = {
	// Environmental Sensing Service Declaration
	[ESS_IDX_SVC]                    =
	{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&primary_service_uuid, ESP_GATT_PERM_READ,
	  sizeof(uint16_t), sizeof(ess_svc), (uint8_t *)&ess_svc}},

	// Battery Service Characteristic Declaration - wenn ich das auskommentiere sehe ich nur einen Leeren Battery Service mit dem ich nichts machen kann
	[ESS_IDX_ES_TEMP_MEAS_CHAR]  =
	{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ,
	  CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read}},

	// Battery Service Characteristic Value - wenn ich das auskommentiere sehe ich den Battery Service nicht
	[ESS_IDX_ES_TEMP_MEAS_VAL]   =
	{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&temperature_uuid, ESP_GATT_PERM_READ_ENCRYPTED,
	  sizeof(uint8_t), sizeof(temperature_value), (uint8_t *)temperature_value}},
};
#endif

/* Battery Service PROFILE ATRIBUTES */
/// Battery Service
static const uint16_t battery_svc = ESP_GATT_UUID_BATTERY_SERVICE_SVC;

/// Battery Level Characteristic
static const uint16_t battery_level_uuid = ESP_GATT_UUID_BATTERY_LEVEL;
static const uint8_t battery_level_value[1] = {0x60};

/// Full Battery Level Service Database Description - Used to add attributes into the database
static const esp_gatts_attr_db_t battery_level_gatt_db[BS_IDX_NB] = {
	 // Battery Level Service Declaration - ohne den sehe ich in der Nordic App den Service nicht, HeartRate jedoch immer noch doppelt :D
	[BS_IDX_SVC]                    =
	{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&primary_service_uuid, ESP_GATT_PERM_READ,
	  sizeof(uint16_t), sizeof(battery_svc), (uint8_t *)&battery_svc}},

	// Battery Service Characteristic Declaration - wenn ich das auskommentiere sehe ich nur einen Leeren Battery Service mit dem ich nichts machen kann
	[BS_IDX_MEAS_CHAR]  =
	{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ,
	  CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read}},

	// Battery Service Characteristic Value - wenn ich das auskommentiere sehe ich den Battery Service nicht
	[BS_IDX_MEAS_VAL]   =
	{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&battery_level_uuid, ESP_GATT_PERM_READ_ENCRYPTED,
	  sizeof(uint8_t), sizeof(battery_level_value), (uint8_t *)battery_level_value}},
};

static void gatts_profile_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param)
{
	ESP_LOGV(GATTS_TABLE_TAG, "event = %x\n",event);
	switch (event) {
		case ESP_GATTS_REG_EVT:
			esp_ble_gap_set_device_name(EXCAMPLE_DEVICE_NAME);
			//generate a resolvable random address
			esp_ble_gap_config_local_privacy(true);

			esp_ble_gatts_create_attr_tab(battery_level_gatt_db, gatts_if, BS_IDX_NB, BATTERY_SVC_INST_ID);
			esp_ble_gatts_create_attr_tab(ess_gatt_db, gatts_if, ESS_IDX_NB, ESS_SVC_INST_ID);
		break;

		//(...)

	 case ESP_GATTS_CREAT_ATTR_TAB_EVT: {
				ESP_LOGI(GATTS_TABLE_TAG, "The number handle = %x",param->add_attr_tab.num_handle);
				if (param->create.status == ESP_GATT_OK){   //ESP_GATT_OK=0x0

						if (param->add_attr_tab.num_handle == BS_IDX_NB) {
							memcpy(battery_service_handle_table, param->add_attr_tab.handles,
							sizeof(battery_service_handle_table));
							esp_ble_gatts_start_service(battery_service_handle_table[BS_IDX_SVC]);

						} else if (param->add_attr_tab.num_handle == ESS_IDX_NB) {
							memcpy(ess_handle_table, param->add_attr_tab.handles,
							sizeof(ess_handle_table));
							esp_ble_gatts_start_service(ess_handle_table[ESS_IDX_SVC]);

					} else {
				ESP_LOGE(GATTS_TABLE_TAG, "Create attribute table abnormally, num_handle (%d) doesn't equal to BS_IDX_NB(%d) or ESS_IDX_NB(%d)",
							 param->add_attr_tab.num_handle, BS_IDX_NB, param->add_attr_tab.num_handle, ESS_IDX_NB);
					}
				}else{
					ESP_LOGE(GATTS_TABLE_TAG, " Create attribute table failed, error code = %x", param->create.status);
				}
	break;
  }

		default:
		   break;
	}
}

do {
		int idx;
		for (idx = 0; idx < PROFILE_NUM; idx++) {
			if (gatts_if == ESP_GATT_IF_NONE || /* ESP_GATT_IF_NONE, not specify a certain gatt_if, need to call every profile cb function */
					gatts_if == profile_tab[idx].gatts_if) {
				if (profile_tab[idx].gatts_cb) {
					profile_tab[idx].gatts_cb(event, gatts_if, param);
				}
			}
		}
	} while (0);

void app_main()
{
	// ---

	ret = esp_ble_gatts_app_register(ESP_BATTERY_APP_ID);
	if (ret){
		ESP_LOGE(GATTS_TABLE_TAG, "gatts app register error, error code = %x", ret);
		return;
	}

	ret = esp_ble_gatts_app_register(ESP_ESS_APP_ID);
	if (ret){
		ESP_LOGE(GATTS_TABLE_TAG, "gatts app register error, error code = %x", ret);
		return;
	}
}

An additional observation: Not only are the services shown twice, each characteristic within a service is also shown twice (please see the screenshot).

![nrf2](https://user-images.githubusercontent.com/48680239/57451954-d6f12480-7262-11e9-8085-402f5ef5e306.png)

Removing everything related to the Environmental Sensing Service, thus the Battery Sensing Service being the only service present, also removes the duplicate characteristics:
![nrf3](https://user-images.githubusercontent.com/48680239/57452003-00aa4b80-7263-11e9-9013-43aa75d0d999.png)

Thank you for your efforts!

@secureschwob  I can not visit the Gist because of China's firewall, please send .c and .h files as an attachment. or send your source code to the mail<EMAIL_ADDRESS>

@secureschwob

I have modified your test code, please replace your  hws_secure_sensor_node.c  file and try and restart your phone Bluetooth to clean the cache.

Please check your mailbox

You solved my problem, thank you very much!
My key error obviously was this:
static void gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if,
                                esp_ble_gatts_cb_param_t *param)
{
    //printf("%s app_id %d gatts_if %d", __func__, param->reg.app_id, gatts_if);
    /* If event is register event, store the gatts_if for each profile */
    if (event == ESP_GATTS_REG_EVT) {
        if (param->reg.status == ESP_GATT_OK) {
            //this!
            profile_tab[param->reg.app_id].gatts_if = gatts_if;
            // rather than this:
            // profile_tab[ESS_PROFILE_APP_IDX].gatts_if = gatts_if;
            // profile_tab[BATTERY_PROFILE_APP_IDX].gatts_if = gatts_if;

        } else {
            ESP_LOGI(GATTS_TABLE_TAG, "Reg app failed, app_id %04x, status %d\n",
                    param->reg.app_id,
                    param->reg.status);
            return;
        }
    }

together with using different gatts_profile_event_handler for each of my services.


px_sem_find_sem.c bug

Line 94，a semicolon at the end of the line is redundant.
                if(* dummy_name == '\0');
                {
                    match = TX_TRUE;
                    break;
                }

Thank you for this report. We've fixed this and it will be available in our next release.


Make setup.sh idempotent

Currently, running setup.sh against a project multiple times will cause it to fail.
As part of Implementing tests for the delivery component, we'll need to fix this.

Related PRs:

Terraform cleanup: #395 -> #396

This has been completed, thanks to the cleanup script.


support FreeBSD without a warning and fix a typo in the warning message

This small patch adds support for FreeBSD without the nasty warning and it also fixes a typo in the warning message itself.

Thank you for your pull request!
I merged https://github.com/scravy/node-macaddress/pull/16/files which took care of the typo and added your changes in commit https://github.com/scravy/node-macaddress/commit/e3e76d5d1c6e41777c750b9daa252c706d309f62


Mark irrelevant test for legacy b3 propagation style

Description
Per title
Motivation

Workflow

⚠⚠ Create your PR as draft
Follow the style guidelines of this project (See how to easily lint the code)
Work on you PR until the CI passes (if something not related to your task is failing, you can ignore it)
Mark it as ready for review

Once your PR is reviewed, you can merge it! :heart:
Reviewer checklist

[ ] Check what scenarios are modified. If needed, add the relevant label (run-parametric-scenario, run-profiling-scenario...). If this PR modifies any system-tests internal, then add the run-all-scenarios label (more info).
[ ] CI is green

[ ] If not, failing jobs are not related to this change (and you are 100% sure about this statement)

[ ] if any of build-some-image label is present

is the image labl have been updated ?
just before merging, locally build and push the image to hub.docker.com

[ ] if a scenario is added (or removed), add (or remove) it in system-test-dasboard nightly

First Ci run is here : https://github.com/DataDog/system-tests/actions/runs/6408761896


Serialization refactor step 2

Implemented null-value deserialization for Vec using Visitor.
This is part 2 of the serialization improvement efforts described in #247 .
(This PR was opened after part 1 was merged. It was easier to open this than to keep the original #257)
This PR is ready for review.

[X] Referenced an issue explaining the need for the change
[ ] Updated all relevant documentation in docs
[X] Updated all code comments where relevant
[X] Wrote tests
[X] Updated CHANGES.md

Codecov Report

Merging #269 into master will decrease coverage by 0.1%.
The diff coverage is 20.0%.

@@           Coverage Diff            @@
##           master    #269     +/-   ##
========================================
- Coverage    27.6%   27.4%   -0.2%
========================================
  Files          99      99
  Lines        3650    3710     +60
  Branches     1168    1170      +2
========================================
+ Hits         1009    1019     +10
- Misses       1831    1882     +51
+ Partials      810     809      -1

Impacted Files
Coverage Δ

tendermint/src/rpc/endpoint/abci_query.rs
0.0% <0.0%> (ø)

tendermint/src/serializers.rs
21.5% <20.8%> (+3.2%)
:arrow_up:

light-node/src/commands/version.rs
60.0% <0.0%> (-15.0%)
:arrow_down:

tendermint/src/abci/proof.rs
45.4% <0.0%> (-4.6%)
:arrow_down:

light-node/src/commands.rs
43.7% <0.0%> (-3.0%)
:arrow_down:

light-node/src/config.rs
47.3% <0.0%> (-2.7%)
:arrow_down:

tendermint/src/block/commit.rs
52.1% <0.0%> (-2.4%)
:arrow_down:

tendermint/src/amino_types/time.rs
33.3% <0.0%> (-2.0%)
:arrow_down:

tendermint/src/signature.rs
38.0% <0.0%> (-2.0%)
:arrow_down:

tendermint/src/block/id.rs
48.1% <0.0%> (-1.9%)
:arrow_down:

... and 40 more

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 14f09ba...9074270. Read the comment docs.

I think this is more to do about the strictness in Rust. When you omit a value in JSON, it defaults to null. Rust can deal with omitted values by using the Default trait. But if you explicitly set a value to null in JSON, that's not strictly a default value in Rust (becuase you can set the default to be, say "42"). Hence it's a value you need to receive and process. By default, nulls are Nones in Rust, so with an Option<> we would be able to receive and process it. But the whole point for us was to get away from Options, to make life easier for the developer, hence we need a "layer" of code that receives the explicit null value and turns it into something else. That's where the Visitor comes in.
If serde wanted to deal with this internally, they would need to assume that a null value translates to the default value. Since, even the Default trait is optional, I think they wanted to keep this optional too. Maybe an annotation for null values would help, like there is one for default values.

I might have thought that serde does treat null as an empty vector. Apparently it doesn't: https://github.com/serde-rs/serde/issues/836
So the code looks fine to me, I was just wondering if we can do without the extra visitor here. Also I though we'd have a separate serilziation type (which could have an option in the fields and the actual ideal tendermint type that just has a vec and From impls between those types.
Maybe I'm overthinking all this  😄

In the case of Vec<u8> it doesn't seem to make sense to turn it into a custom type (which would possibly allow us to use Option<> and convert internally, like in CommitSig) because the custom type wouldn't add any value (HexBytes and Base64Bytes are only different on the JSON side, it doesn't make any difference for the developer).
Built-in types can only be extended in the library we use them in (everywhere one-by-one) which would sprinkle serialization code all over the place. Or we write an annotation (like in the PR), which will require the Visitor so it can convert between two different types.
So, with annotating built-in types from weird formats, we might need to use a Visitor (like in this case). For custom types, most probably we won't need it, we'll have an internal struct (with Option<> or whatever it needs) and convert from that.
At least that's how I see it. If you think we can do this without the Visitor, point me in the right direction.

I might have thought that serde does treat null as an empty vector.

Maybe the solution would be to not have explicit nulls?

Maybe the solution would be to not have explicit nulls? Is it possible?

I would like that. But it would require some changes in the go code too and we'd need to communicate this clearly in the spec (nulls are not uncommon in JSON).
The work in https://github.com/tendermint/tendermint/issues/4828 could be an opportunity to validate this idea.

In the case of Vec it doesn't seem to make sense to turn it into a custom type

I didn't mean Vec type but the wrapping struct which has Vec<u8> as a field. E.g. let's say the Header:
serilaization::block::Header <---- TryFrom ----> core::block::Header
The left header can use an Option in the fields or whatever is necessary to correctly deserialize this and the TryFrom handles this accordingly and translates into a real, core value on the right (with absolutely no serde annotation whatsoever). See https://github.com/informalsystems/tendermint-rs/issues/197#issuecomment-606103374
Downside would be a lot of duplication as the types would be almost identical. But it would be really, really simple, too. Also, there would be a cleat separation between serialization types and ideal core types that hold more logic and with which devs would mainly deal with. Devs wouldn't need to care at all about the serialization specifics. The only thing they need to now is that under a serialization module, there are types from which you can use to (de)serilalize and translate to the core types. Does al that make any sense?
That all said, this PR is an improvement to current situation and excellent work! The above rather touches upon that we didn't yet decide on a clear strategy on serialization as a whole (and not about specific core types).I think we should merge this PR but keep in mind that there is a bigger question on howto handle serialization (also of different serialization kinds, e.g. binary proto/amino and different kinds of JSON). If we decide to go with the above mentioned approach, some of the custom serialization code (the questioned Visitor), can be deleted.


Refactor of sign-in page styles

Hey, I just made a Pull Request!
This PR is a potential implementation that provides customization of a SignInPage layout where the layout can be centered and title omitted.

⚠ Note
I've removed the height100 class from InfoCard component based on assumption that both height100 and fullHeight are trying to achieve the same goal but in different contexts. I believe property flex: 1 is more flexible 😊 that usage hardcoded values (Unless I don't understand the context of usage).

:heavy_check_mark: Checklist

[x] All tests are passing yarn test
[x] Screenshots attached (for UI changes)
[ ] Relevant documentation updated
[x] Prettier run on changed files
[ ] Tests added for new functionality
[ ] Regression tests added for bug fixes

📸 Screenshots

@stefanalund We can leave these classes as they are if this is a part of a bigger 'concept', but the part:
    fullHeight: {
      height: 'calc(100% - 50px)',
    },
    height100: {
      height: 'calc(100% - 50px)',
    },

is very confusing for me and it breaks when I use the component in the context of SignInPage.

Height (calc(100% - 50px)) of the content makes component overflowed. It is also hard to guess what the value of 50px refers to. If this is the height of a different element, it is good to declare it as a const (eg. const HEADER_HEIGHT = '50px') a shared between these elements. On the other hand, the usage of flex: 1 which stretches content vertically for a parent with display: flex, is always a better idea.

@kingasieminiak I trust your judgement here, my CSS foo is not where it should be 😄 Pretty sure the 50px comes from the need to align cards that have a footer  with those who don't.

Imo we should get rid of the calc() stuff, and if that breaks something, fix it in that location instead 😅

Thanks again @kingasieminiak -- merging this now 🎉


Break really long strings in code generation.

Description:

Good examples of lengthy text strings are the wxXrc rc/xrc files. These have strings that are over a thousand characters long. While technically that works in the compiler, it's annoying to try to read it in either our own code generation window. It might or might not be an issue in a code editor -- just depends on whether it can handle viewport wrapping. In any event, it would look a lot better if we use C++ string concatenation to break the lines.

This could be solved by if #165 gets implemented, so I'm removing the wontfix label.

Lines in all three generated languages are now broken based on user-preferences.


wpa_supplicant

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md

[x] I have searched the existing issues and I'm convinced that mine is new.

Describe the bug
A clear and concise description of what the bug is, including last known working version (if any).
Tip: to validate your setup was working with the previous version, use opnsense-revert (https://docs.opnsense.org/manual/opnsense_tools.html#opnsense-revert)
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Relevant log files
If applicable, information from log files supporting your claim.
Additional context
Add any other context about the problem here.
Environment
Software version used and hardware type if relevant.
e.g.:
OPNsense 19.1.1 (amd64, OpenSSL).
Intel® Xeon™ E3-1225V5 3.3Ghz Quad Core
Network Intel® I210-AT

Sorry - did press "enter" so Issue was opened before I finished my text

Sorry - did press "enter" so Issue was opened before I finished my text

feel free to reopen and edit the issue and let us know when you're ready :)

feel free to reopen and edit the issue and let us know when you're ready :)


Update Tangram tutorial

As discussed on MM, Tangram 4.0 came out 18 days ago and the tutorial should be updated.
Related issues #61
https://github.com/theislab/squidpy/issues/341

closed with #80


Install netbase package in Debian based builds

netbase is a tiny (~30kB installed) package providing some core TCP/IP files. It's somehow not included in debian:bookworm-slim which can lead to some unexpected errors when trying to use micromamba-docker based images (example: eventlet crashes with socket.error: protocol not found if netbase is not installed).
https://github.com/eventlet/eventlet/issues/370

python Debian docker images also include tzdata, which would also seem sane to include here:
https://github.com/docker-library/python/blob/master/Dockerfile-linux.template#L40

Hello @srstsavage and thank you for taking the time to contribute to our project.
Thus far we don't install things beyond what is required for micromamba and our shell scripts to work (SSL certs and bash). I think that arbitrarily adding other packages is going to be confusing to users. If you need netbase (or some other package) you can install it or use an image that includes it already.
As for tzdata there is a conda-forge package you can use to install it.

That's fair. Hopefully someone finds this PR if they run into the same issue (make sure you've installed netbase if you're using eventlet inside a micromamba-docker image!).


Document requirement to install docker-compose

This adds a new step to the developer setup documenting how to install the latest docker-compose version. This should address #364.
Since this step fits best right after the installation of Docker, I inserted it as second step and renumbered the steps which follow it.
The installation commands are taken directly from the official documentation, except that I changed the download URL to always download the latest version in order to avoid always having to update this documentation.
I only added instructions for platforms, which according to the manual on don't come already with a current docker-compose version:

Arch
Centos
Ubuntu
Windows WSL

For the other platforms, only the numbering was updated, to reflect the addition of a new, omitted step.
The one thing I wasn't sure on how to incorporate was the notice in the normal Docker installation step regarding the migration to docker-compose:

Note: MM-9791 introduced using docker-compose to manage containers. To preserve your data on upgrade, execute the following steps.
...

But after trying out different variations, leaving them as they are seems the best option to me.

Thank you as well, @lieut-data and all the other reviewers. 😊


[BUG] - empty list display always the model name not the title

Description

It would be better to provide a way to specify it with a title as a default value.
Reproduction URL
none
Reproduction steps
none

Next router
App router
Next Admin version
^5.3.0
Screenshots
![DESCRIPTION](LINK.png)

Next Admin options
No response
Logs
No response
Browsers
Chrome

Fixed in v5.3.1


Fix shellcheck error for update-git-repo script

This declares the local 'out' variable before assigning it, as well
removing the trap/rm lines, since the 'rm' functionality should be
handled automatically by our use of 'mktemp'.

since the 'rm' functionality should be handled automatically by our use of 'mktemp'.

Is that right?  mktemp makes a file in whatever the temporary directory is, but I don't think it does any automated clean-up.  The file is "temporary" in that it's in a place probably mounted as volatile storage (like a ramdisk).

@barrucadu perhaps this is related to my understanding of how to treat tempfiles. Historically, I've viewed them as a system feature a program doesn't need to care about, from a cleanup perspective. I think you may be thinking about them in a more conceptual way i.e. "this file should be considered temporary". This article suggests there is some automated cleanup...
https://superuser.com/questions/187071/in-macos-how-often-is-tmp-deleted
...but perhaps it's good practice to do it manually as well?

I guess it's not necessary---you're not going to run out of files with names matching update-git.XXXXXX unless you run this script a lot in 3 days---but I generally do clean up temporary files in the script which creates them.

@barrucadu that does seem like a good thing to do in general. My frustration with it was that I couldn't easily test it was necessary after fixing the linting error. Happy with it now, though.


Problem with the domain or scope

Example URL(s)
https://dash.cloudflare.com/126a1759069a7e721164748a3a34e42a/turnstile
Actual Behavior
I registered a domain in my name and the purchase was completed. How can I do so?
Knowing my knowledge and my data
<EMAIL_ADDRESS>Expected Behavior
a1dossari.net
cpanbel
Control panel linked to space
Additional information
No response

Howdy @A1dossari, closing as it's very unclear what the ask is here.
Feel free to re-open with more details though.

اسف كان يجهلني التواصل معكم


OLS-1233: Project URLs in project file

Description
Project URLs in project file
Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[x] Configuration Update
[ ] Bump-up dependent library
[ ] Bump-up library or tool used for development (does not change the final image)
[ ] CI configuration change
[ ] Konflux configuration change

Related Tickets & Documents

Related Issue #OLS-1233

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.48%. Comparing base (010acff) to head (4340cc1).
Report is 15 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1965      +/-   ##
==========================================
- Coverage   96.84%   93.48%   -3.37%
==========================================
  Files          69       69
  Lines        2883     2884       +1
==========================================
- Hits         2792     2696      -96
- Misses         91      188      +97

see 8 files with indirect coverage changes

/test verify
/test integration

/test 4.15-e2e-ols-cluster

/lgtm

/approve
/override "Red Hat Konflux / ols-enterprise-contract / lightspeed-service"

/lgtm


Any prebuilt weights available?

I notice you only went to epoch 22, which is still stage 1. Are you still training this?

@MccreeZhao
Is this what the training graph should look like? From your version.

I was unable to reproduce your results.
My best epochs: 12 / 17
LFW: 99.78 / 99.63
CFP_FF: 99.7 / 99.7
AGEDB: 97.75 / 97.95


Issue 38

This PR adds support for object links and proper support for pulling out string encodings. Whilst I'm not entirely satisfied with the interface, I'd like to tackle that in a separate PR.

Closes #38

:fireworks:


Attempted to set a non-object key in a WeakMap with redux in a tvOS 13 project

Hello, i've this error when i include redux in my tvOS project
Attempted to set a non-object key in a WeakMap
I've a blank screen after
React Native version:
System:
OS: macOS Mojave 10.14.6
CPU: (4) x64 Intel(R) Core(TM) i5-4260U CPU @ 1.40GHz
Memory: 20.27 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.16.0 - /usr/local/bin/node
Yarn: 1.19.0 - /usr/local/bin/yarn
npm: 6.9.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.1, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
Android SDK:
API Levels: 27, 28
Build Tools: 28.0.3
IDEs:
Android Studio: 3.5 AI-191.8<IP_ADDRESS>00203
Xcode: 11.1/11A1027 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native-tvos:  0.60.4-6
Code to reproduce
import { createStore, combineReducers } from 'redux';

//Reducers
import testReducer from 'store/reducers/test';

const rootReducer = combineReducers({
  test:        testReducer,
});

export default function configureStore(initialState) {
  return createStore(
      rootReducer,
      initialState,
  );
}

In the app.js file
import configureStore from 'store/configureStore';
const store = createStore(SettingsReducer);

Thank you in advance

@projetsdiy thanks for the report! Can you provide all of the JS code for your test project?  Also, does the same error occur on RN core version 0.60.4?

Also, please provide your package.json so I can see all of the project dependencies.

I think I found the origin of the problem. Part of the reducer code is shared with my android project. I save the user settings using the react-native-shared-preferences package ... and of course it was not installed on the tvOS project 🙃 really sorry for the loss of time.
The debugging is a little longer on tvOS because when I run JS Debugger, the tvOS app crashes. Do you have the same problem?

I am not having any problem with the JS Debugger.


Close db after environment is closed

Don't close the db before using it

I have no idea how the integration tests passed before...


More readable code about shutdown and shutdownGracefully

Motivation:
To make the shutdown related code more readable
Result:
Fixes  #6264

@Scottmitch , PTAL, thanks!

@Scottmitch Could you please check it again?

@trustin PTAL as well

Not strong on this but I guess the original one seems readable enough to me?

Agreed. IMHO this isn't too high a priority, and involves some time to review to make sure behavior is preserved. However it would be nice to have simpler code if possible.

Agree...

Okay, got it, so close it?

If it's not broken and isn't causing performance issues I would opt for leaving it as is.

Yeah let me close this for now


Implemented get / post / delete for a gitlab ci project's jobs through the REST api

& exposed Job class to Grape + Updated API documentation
Fully tested and functional

I created a proper MR on gitlab.com. Closing this one