fix(client): prevent KeyError when inputs/outputs/sectors are not in sync with the cloud

Related Issues

Closes https://github.com/palazzem/ha-econnect-alarm/issues/115

Proposed Changes:
This update refines the query() method in the client, which fetches synchronized data between the main unit and the cloud (using _get_descriptions() under the hood). Issues arise when strings are not in sync, specifically when:

The central unit has defined and InUse outputs, inputs, or sectors.
The cloud is not in sync, leading to missing keys (9, 10, or 12) in _get_descriptions(), causing a KeyError.

To address this, we've implemented a safer access via the dictionary get() method. Now, if a string is missing, Unknown is returned instead of an error.
Testing:
Test with a central unit where an output is InUse, but no strings are configured in the cloud.
Extra Notes (optional):
n/a
Checklist

[x] Related issues and proposed changes are filled
[x] Tests are defining the correct and expected behavior
[x] Code is well-documented via docstrings

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
390

Relevant Lines:
390

💛  - Coveralls


Added port and SSL mode for Web App connection string

This PR fixes #13151
Added port number and ssl mode to web app connection string for Azure Arc enabled PostgreSQL Hyperscale and SQL Managed Instance.

Pull Request Test Coverage Report for Build 342233053

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 39.554%

Totals

Change from base Build 342127502:
0.001%

Covered Lines:
20676

Relevant Lines:
48007

💛  - Coveralls

@nasc17 Did we verify that the pg and sqlmi connection strings work for an azure web app?

It was decided to remove the Web App Connection String. Separate PR created for this https://github.com/microsoft/azuredatastudio/pull/13323


Added draynor stilte obstacle to agility plugin

https://gyazo.com/54234a12b6522692b4efb098794f01d7

You should have just combined your three PRs related to the agility plugin into one PR:
https://github.com/runelite/runelite/pull/6096
https://github.com/runelite/runelite/pull/6098
https://github.com/runelite/runelite/pull/6112

No need to comment the same thing on all 3. I don't see a strong reason to bundle them in one PR. Separate PRs for each is fine imo


Build Dynamic Library and use it for Unit Tests

Figure out how to build the library and build an CLI application with main.cpp in one run.
Figure out how to link the unit tests against the dynamic library

Done with #10


[BUG] Planet map shows all planets despite planetsMustBeDiscovered=true

Version of Advanced Rocketry

1.12.2-1.5.0-139

Have you verified this is an issue in the latest unstable build

[ ] Y
[x] N
[ ] N/A
We're running Enigmatica 2 v1.4.2 and I can't update individual mods outside of the pack, sorry!

Version of LibVulpes

1.12.2-0.4.0-56

Version of Minecraft

1.12.2

Does this occur without other mods installed

[ ] Y
[ ] N
[x] N/A

I'm constrained by the Enigmatica 2 modpack, but there seems to be different behaviors between my local instance and the server even with (apparently) the same advancedrocketry.cfg settings.

Crash report or log or visualVM (if applicable)

N/A

Description of the problem

Our server was originally configured with the default configuration from the Enigmatica 2 Light modpack, which had planetsMustBeDiscovered=false . After we'd built a warp core and controller and saw the whole list of planets available, we decided that discovering them individually would be more fun, so we changed planetsMustBeDiscovered to true.
However, when we use the warp controller we still see all of the planets displayed, they just can't be chosen as warp destinations (since they haven't been discovered).
I saw https://github.com/zmaster587/AdvancedRocketry/issues/1475 which suggests the client needs to have the same config as the server in order for planets to be hidden, but I have an exact copy of the server's advancedRocketry.cfg and am still seeing all planets.

Steps to reproduce:
1, Run Enigmatica 2 Light server
2, Build warp core and controller on server
3, Observe planet list in warp controller
4, Stop the server, make planetsMustBeDiscovered=true
5, Restart server
6, Observe the planet list in warp controller
Expected result: Only known/discovered planets should be displayed in the warp controller.
Actual results: All planets are displayed.
Here's our server's advancedRocketry.cfg,txt
and planetDefs.xml.txt
I can also provide our server information and may be able to retrieve log files, or anything else that may be useful for troubleshooting.
https://github.com/zmaster587/AdvancedRocketry/issues/1533 seems like a similar issue (in the form of a question).
EDIT:
Seems like somethink gets funky with teleporters after doing this? Every time I try to follow the steps listed above, if I then teleport (using Tinker's items or RFTools teleporter) my space station appears to think it's in the overworld... I see my overworld waypoints, gravity is increased to overworld levels, the skybox and clouds look like the overworld, etc.
I can't jump down to the actual overworld (after falling for a bit I get put back on my station), and if I teleport back to the actual overworld and try to fly to the coordinates of the station there's nothing there. So my station hasn't actually moved, but it seems like the dimension data got lost or confused with the overworld for some reason.
Edit 2: Taking a rocket to the space station seems to prevent this from happening, but I'm still seeing all the planets in the list for the warp controller despite planetsMustBeDiscovered=true (I also set resetPlanetsFromXML=true and restarted the server, no difference).

Try setting the tag for a couple in the planetDefs of the world. Does that change anything?

Silly question, is the config advancedRocketry.cfg,txt on disk with the txt extension?

@Silfryi what do you mean by 'the tag'? Currently everything is marked as IsKnown=False (see the attached planetDefs config), but everything is still visible in the map.
@zmaster587 no, I just renamed a copy as .txt to upload here since I got an error when trying to upload the .cfg. The server has the original .cfg file. Sorry for the confusion!

@Nomad7 Change this line B:planetsMustBeDiscovered=false to true in your Advanced Rocketry config. That's likely the problem

@Silfryi Sorry, I hadn't intended for my config upload to cause such confusion, looks like the copy I uploaded is from before following the steps I described.
The server currently has planetsMustBeDiscovered=true: advancedRocketry.cfg_ServerCurrent.txt
But I've changed this setting back and forth several times now, the only apparent difference is whether we can select the various planets as a destination for warp or not. They all still show up in the Warp Controller list, regardless of the config setting.
Since setting planetsMustBeDiscovered=true on my single player game makes all the unknown planets disappear from the warp controller list, I'm guessing there's either a bug or some server/config/modpack issue that I've missed.
I'm at a bit of a loss at this point - I'd be happy to get on a Discord or Skype call and do a screen share to show the behavior I'm seeing and troubleshoot the root cause, if that would help.
If this is a modpack issue I'd be happy to report it to the Enigmatica folks, I was just hoping to confirm the nature of the issue here first - changing planetsMustBeDiscovered to true and reloading the planets from xml should remove planets where isKnown=false from the warp controller list, right?

New information from additional testing: I went through the planet discovery process and 'discovered' planet Sol-126: 3. I can browse through the (fully populated) planets list in the warp controller and select Sol-126: 3 as a warp destination.
However, the server's world/advRocketry/planetDefs.xml entry for this planet still says isKnown should be false:

false
1.0,1.0,1.0
0.0,0.86132765,1.0
42
194
0
323939
27
advancedrocketry:marsh,minecraft:swampland,minecraft:mutated_birch_forest_hills,minecraft:mutated_extreme_hills,minecraft:mutated_jungle_edge

I'm guessing this is because if any other players on the server set up their own warp drive they'd still have to discover Sol-126: 3 for themselves?
If so, this suggests that whatever it is that tracks whether a player has discovered a planet must be something outside of the server's  advancedRocketry.cfg and planetDefs.xml, right?
If so, then perhaps the issue with all planets being displayed in the warp controller is specific to me - and perhaps this whole issue could be resolved by purging/modifying this player-specific planet list data, wherever it may be.
Any suggestions where I should look? I've purged all my local data a couple times already so I'm guessing it's something on the server somewhere...

I made an interesting new discovery today - at the start of this process I'd noticed that in https://github.com/zmaster587/AdvancedRocketry/issues/1475 someone suggested that the client configs needed to be the same as the server, and I was sure I'd done that test, but apparently I neglected to close and relaunch the game after changing my local configs.
Turns out that if I set my local advancedRocketry.cfg to have planetsMustBeDiscovered=true and then launch the game after that, when I open the warp controller on the server all the planets are no longer listed.
I got excited for a minute, then I realized none of the planets are listed at all. Not the Sol-126: 3 my station was orbiting, not Earth, nothing but the stars.
So it seems like there's some funky relationship or interactions between the client and server going on here and I'm still not sure what the exact nature of the issue is. There are apparently three possible states for planets in the warp controller:

Listed and selectable
Listed but not selectable
Not listed at all

With planetsMustBeDiscovered=false all planets are in state 1.
With planetsMustBeDiscovered=true on the server only, all planets are in state 2 until they've been discovered, then they're in state 1.
With planetsMustBeDiscovered=true on both the server and client all planets are in state 3 from the perspective of that client.
The  tag in planetDefs.xml adds an additional wrinkle to this; I think with planetsMustBeDiscovered=true on the server, planets where isKnown is True will show up in state 1 for all clients (but it doesn't look like that value can ever be changed by the actions of a player).
What I'd really like to be able to do is have server-level control over which planets are displayed in the warp controller, but of course there has to be some way to handle per-player progression as individuals discover planets for themselves, and I don't know enough about all this stuff to guess how that would/should work. Any advice would be welcome.

One additional note regarding Beacons; before changing my local client config to planetsMustBeDiscovered=true I had discovered Sol-126: 3 (as noted above). After changing my local config Sol-126: 3 was no longer listed (despite my space station currently orbiting the planet :p). I built a beacon on the surface and turned it on, but Sol-126: 3 still didn't appear in my warp controller list. It should have, right? Or do beacons only work for other players, or something?

Thanks to zmaster's extraordinary patience in troubleshooting this with me on discord, it seems like there are basically two issues here:
DimensionManager.knownPlanets not syncing, and
planetsMustBeDiscovered not syncing between client and server.
The first issue seems to be the cause of planets which should be discovered (tagged as isKnown true in planetdefs.xml) disappearing from the warp controller list when the clients set their local config to planetsMustBeDiscovered=true.
The second issue seems to be the reason why clients still see all planets listed in the warp controller despite the server being configured for planetsMustBeDiscovered=true.
Once both these issues are resolved, requiring planet discovery on the server should result in clients only seeing planets that are marked as known in the planetdefs.xml and planets that they've discovered in the warp controller list.
(Note to self: test Beacon behavior too!)
And for the record, planet discovery is tracked on a per-station basis and can is stored in the server's /world/advRocketry/temp.dat file; /spaceObjects/spaceContents/ has subfolders (one per station) with a 'knownPlanets' entry where the value is the list of DIMIDs which have been discovered.


Electron-based standalone distribution is failing to open the variable creation dialog when clicking on the "Create variable..." button

blockly_compressed.js:820 Uncaught Error: prompt() is and will not be supported.
    at Object.t.prompt (blockly_compressed.js:820)
    at Object.t.Variables.promptName (blockly_compressed.js:812)
    at o (blockly_compressed.js:809)
    at Object.t.Variables.createVariableButtonHandler (blockly_compressed.js:809)
    at blockly_compressed.js:804
    at t.FlyoutButton.onMouseUp_ (blockly_compressed.js:908)
    at SVGGElement.l (blockly_compressed.js:56)
t.prompt @ blockly_compressed.js:820
t.Variables.promptName @ blockly_compressed.js:812
o @ blockly_compressed.js:809
t.Variables.createVariableButtonHandler @ blockly_compressed.js:809
(anonymous) @ blockly_compressed.js:804
t.FlyoutButton.onMouseUp_ @ blockly_compressed.js:908
l @ blockly_compressed.js:56

Seems to be caused by this Electron bug: https://github.com/electron/electron/issues/472

Fixed.


Switch linting from Codacy to default python tools

Is your feature request related to a problem? Please describe.
The codacy code analysis is too strict and somewhat hard to configure. We should switch to some standard python CLI tools and also harmonize with sodar-core (except for the sodar-core choice to use single quotes).
Describe the solution you'd like
Use

black -l 100
isort
flake8 and harmonize settings with sodar-core

Describe alternatives you've considered
N/A
Additional context
N/A

Resolution Proposal
We need to add proper configuration, adjust the Makefile, and add integration to CI. Then, we need to fix the found problems. We should further document the linting that we do.
Affected Components
VarFish server
Affected Modules/Files
None
Required Architectural Changes
None
Required Database Changes
None
Backport Possible?
No
Resolution Sketch

[ ] add configuration
[ ] adjust Makefile
[ ] adjust CI
[ ] adjust documentation
[ ] fix problems


trillian: Add version <IP_ADDRESS>

Trillian
https://www.trillian.im

The latest URL is https://trillian.im/get/windows/6.5/trillian-v<IP_ADDRESS>.exe, but 7z cannot extract it. @issaclin32 does it work for you?

The latest URL is https://trillian.im/get/windows/6.5/trillian-v<IP_ADDRESS>.exe, but 7z cannot extract it. @issaclin32 does it work for you?

Cannot extract either. (using 7-zip 21.07)

I've updated autoupdate URL.

Have you tested the manifest by installing it?

Have you tested the manifest by installing it?

I've updated version that was already installed for me on my computer with this manifest. Looks like versions 6.4 and earlier are downloaded from ceruleanstudios.com, but since 6.5 they moved to trillian.im. So autoupdate was broken. But thanks for your message I noticed it and fixed for now.

/verify


Use separate threadpool in remote deletion for remote-backed indexes

Description
Details present in #6104
Issues Resolved
This solves #6104
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #6109 (1e448b3) into main (7aea7d2) will increase coverage by 0.51%.
The diff coverage is 87.50%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##               main    #6109      +/-   ##
============================================
+ Coverage     70.78%   71.30%   +0.51%
- Complexity    58781    59174     +393
============================================
  Files          4775     4775
  Lines        280993   281044      +51
  Branches      40590    40593       +3
============================================
+ Hits         198910   200391    +1481
+ Misses        65784    64539    -1245
+ Partials      16299    16114     -185

Impacted Files
Coverage Δ

...rg/opensearch/index/translog/RemoteFsTranslog.java
71.42% <76.92%> (+2.85%)
:arrow_up:

...ex/translog/transfer/BlobStoreTransferService.java
82.60% <87.50%> (-4.06%)
:arrow_down:

...h/index/translog/transfer/FileTransferTracker.java
94.59% <100.00%> (+0.47%)
:arrow_up:

...dex/translog/transfer/TranslogTransferManager.java
84.61% <100.00%> (+1.81%)
:arrow_up:

...port/ResponseHandlerFailureTransportException.java
0.00% <0.00%> (-60.00%)
:arrow_down:

...h/action/ingest/SimulateDocumentVerboseResult.java
60.71% <0.00%> (-39.29%)
:arrow_down:

...cluster/coordination/PublishClusterStateStats.java
33.33% <0.00%> (-37.51%)
:arrow_down:

...min/cluster/snapshots/get/GetSnapshotsRequest.java
52.63% <0.00%> (-31.58%)
:arrow_down:

...ain/java/org/opensearch/common/geo/GeometryIO.java
48.64% <0.00%> (-30.41%)
:arrow_down:

...nsearch/index/shard/IndexingOperationListener.java
63.93% <0.00%> (-22.96%)
:arrow_down:

... and 463 more

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

Overall changes LGTM.

nit: In the description checklist, don't mark Commit changes are listed out in CHANGELOG.md file if changelog is skipped.


Fix lenght of PBKDF2 hash in AuthMe plugin

There is a need to sync a length of PBKDF2 hash
AuthMe hash is "pbkdf2_sha256$10000$b038420a37ee$[B@198d12a3"
Django 1.7.x hash is "pbkdf2_sha256$10000$P32oEaZVNQ1F$QBGmUc4mrs26G/m7OdyXxE6cTILkDJMVTeHgtG6fZYY="

This is a critical one bug - need to re-inforce Django Auth system in order to integrate it with AuthMe reload

Fixed by 8efb2e13f8173c5ecc16fc858336848b11abb014


[objc] Simplify EqualsHelper by calling WriteInvoke

This will pick up the virtual call fix once PR #191 lands.

Build and tests passed.


Add more Fastify options to the server schema

As an example, bodyLimit is missing: https://www.fastify.io/docs/latest/Reference/Server/#bodylimit.

I would like to take care off this Issue.

Sure!


[Enhancement](inverted index) set need to read data only when delete …

…predicate contains the column
Proposed changes
Issue Number: close #xxx

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

run buildall


Export TSDocs

We should have TSDocs as a reference for the TS SDK. https://tsdoc.org/
We could use: https://typedoc.org/

I renamed this to "export tsdocs", as we already have the tsdocs, we just need to figure out how to export them!


Problem Revoking an Active User's Access to Object Server

Goals
Revoke a user's access to our Object Server.  For background we use Amazon Cognito as a custom auth provider and do the revocations through there.
Expected Results
After revoking a user's access, they should no longer be able to access the server.  Additionally there should be some kind of in app notification or property to observe allowing us to update the UI state accordingly.
Actual Results
Revoking a user's access eventually locks them out of the server, but there is no way to act on this in the app.  Logs show the server connection is eventually closed and retries fail to reopen it, but the RLMSyncSession status property continues to report RLMSyncSessionStateActive.  Also in our testing we occasionally observed the connection to fail ( app side changes not reflected in the object server browser and visa versa ) without even notifying the logs.
Logs:
2017-06-30 16:20:55.259451-0600 fieldFLOW[1763:649451] Sync: Connection[2]: Resolving 'realmobj-tst.cartasite.com:9443'
2017-06-30 16:20:55.265088-0600 fieldFLOW[1763:649451] Sync: Connection[2]: Connecting to endpoint '<IP_ADDRESS>:9443' (1/1)
2017-06-30 16:20:55.315921-0600 fieldFLOW[1763:649451] Sync: Connection[2]: Connected to endpoint '<IP_ADDRESS>:9443' (from '<IP_ADDRESS>:57119')
2017-06-30 16:20:55.582264-0600 fieldFLOW[1763:649451] Sync: Connection[2]: Session[1]: Sending: BIND(server_path='/fieldFlow', signed_user_token_size=621, need_file_ident_pair=0)
2017-06-30 16:20:55.583063-0600 fieldFLOW[1763:649451] Sync: Connection[2]: Session[1]: Sending: IDENT(server_file_ident=1, client_file_ident=678, client_file_ident_secret=4475077953977722014, scan_server_version=17599, scan_client_version=285, latest_server_version=17599, latest_server_session_ident=6750056724695107441)
2017-06-30 16:20:55.629110-0600 fieldFLOW[1763:649451] Sync: Connection[2]: Received: ERROR(error_code=202, message_size=20, try_again=0, session_ident=1)
2017-06-30 16:20:55.630080-0600 fieldFLOW[1763:649451] Sync: Connection[2]: Connection closed due to error reported by server: Access token expired (202)

Steps to Reproduce

Reduce Realm refresh token expiration time something really short (e.g. 2 minutes)
Log a user in
Deactivate that user account in Cognito (our custom auth provider)
Wait until the logs show disconnection
Check the current RLMSyncSession's status property

Code Sample
Can't really show a code sample of the Cognito stuff, but here is the quick class we drew up to check the current status of the RLMSyncSession.  The checkConnectivity() function will always print active, even after the user has been disconnected.
class RealmConnectivity: NSObject {

    var timer: Timer? = nil

    @objc func start() {
        timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(RealmConnectivity.checkConnectivity), userInfo: nil, repeats: true)
    }

    func checkConnectivity() {
        guard let user = RLMSyncUser.__current() else { return }

        for session in user.allSessions() {
            switch session.state {
            case .active: print("active")
            case .inactive: print("inactive")
            case .invalid: print("invalid")
            }
        }
    }
}

Version of Realm and Tooling
Realm framework version: 2.7.0
Realm Object Server version: 1.7.6 (dev) 1.8.1 (prod)
Xcode version: 8.3.3
iOS/OSX version: 10.3.2
Dependency manager + version: Cocoapods 1.2.1
Thank you for looking into this!

@ChrisChares how do you propagate the revocation from Cognito to Realm Object Server? Does this just happen when the app/user attempts to login forcing a check then or does ROS continually check?

Copying over the solution for this provided privately:

Realm Object Server does not persist the AWS Cognito token when you send that from the client.
The custom auth code in JS is only run when you call the authenticate() method and get RLMSyncCredentials) (i.e. the token from AWS) and then you call SyncUser.login(credentials), thus the problem is that ROS actually does not know when your AWS token is revoked
The 202 error is not related to that but is instead what we use to tell the client to refresh the access token ROS provides to the client, so it is unrelated to this and the behavior with the sync session is correct.
So what I believe the issue is, is that ROS never knows when the AWS access token is expired because it doesn’t check on its own. The access token refreshing from ROS will continue unabated in the absence of being told to revoke.
To fix this, I would recommend doing the following:

Always calling authenticate() on ever app launch (such as in the background on subsequent launches when you have SyncUser.current!)

If this returns an Error then simply call logout() which is then the signal ROS needs to inform it that access has been revoked

Then pop back to the login screen


How do I set the steps_per_epoch parameter of a lr scheduler in multi-GPU environment?

What is your question?
For some learning rate schedulers, there is a required steps_per_epoch parameter. One example is the OneCycleLR scheduler. On a CPU or single GPU, this parameter should be set to the length of the train dataloader. My question is, how should this parameter be set on a multi-GPU machine using DDP. Does this parameter need to be updated to len(self.train_dataloader()) / num_gpus? Or is this done automatically?
What have you tried?
I've tried manually dividing the steps_per_epoch of the OneCycleLR scheduler by the number of GPUs when training on a multi-GPU machine. The LR doesn't seem to be following the expected update pattern and I think the scheduler may be the source of the problem.
What's your environment?

OS: Linux
Packaging: conda
Version: 0.7.6

After some more investigation, it seems like dividing the dataloader size by the number of GPUs is the correct way. The documentation could be more clear on this, but I'm closing this now.

You also need to divide by the batch size, no?


[NT-954] Personalization Explore Card

📲 What
Displays a callout card at the top of the Explore feed prompting users to view curated projects based on their chosen categories during the onboarding flow.
🤔 Why
To give users a way to return to their curated projects based on their preferred categories selected during the onboarding flow.
🛠 How

adds PersonalizationCell that is populated into the .personalization section in the Discovery feed
the section is only shown on the default filter: for logged out users, that's the All Projects filter, and for logged in users it's either the Recommended for you filter or the All Projects filter depending on your recommendation preferences
the section is displayed only if you've completed the onboarding flow, and if you haven't dismissed the card: both of these preferences are stored in .userDefaults
the section is displayed only if you're in .variant1 of the experiment
tapping the cell presents the CuratedProjectsViewController
tapping the X on the cell will dismiss it and it will not show again unless you re-install the app

👀 See
Trello, screenshots, external resources?

Dismissing the cell
Screenshot

♿ Accessibility

[x] Tap targets use minimum of 44x44 pts dimensions
[x] Works with VoiceOver
[x] Supports Dynamic Type

✅ Acceptance criteria
Prerequisites:

comment out the shouldSeeCategoryPersonalization function body and instead return true: this will guarantee that you will be put into the onboarding flow on app launch

delete the app from the simulator and launch a fresh build

Go through the onboarding flow, selecting 5 categories from the category selection screen. Hit "Continue", and the "Done" on the curated projects screen.

[ ] You should see the personalization cell appear in Explore
[ ] tapping the cell should present the curated projects screen
[ ] if you switch filters, the cell should not show
[ ] tapping the "X" dismisses the cell, and on app-relaunch it does not re-appear

⏰ TODO

[ ] string translations

          1 Warning

:warning:
Big PR

  Generated by :no_entry_sign: Danger


Build LoggableNetty4 for ES

Description
This change enables the ability to build the LoggableNetty4 capture plugin for ES.
To build the plugin for ES:
1- From the root of the project, go into the elasticsearch loggable-transport-netty4 plugin directory
cd plugins/elasticsearch/loggable-transport-netty4
2- Generate the gradle wrapper files.
gradle wrapper
3- Generate the zip file containing the plugin
./gradlew assemble
Issues Resolved
Migrations-985
Check List

[ ] New functionality includes testing

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented
[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #114 (60f6eed) into main (68fe642) will decrease coverage by 0.24%.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main     #114      +/-   ##
==========================================
- Coverage   91.74%   91.51%   -0.24%
==========================================
  Files          24       25       +1
  Lines        1115     1155      +40
  Branches      110      122      +12
==========================================
+ Hits         1023     1057      +34
- Misses         80       83       +3
- Partials       12       15       +3

Impacted Files
Coverage Δ

...core/cluster_management/docker_framework_client.py
90.37% <0.00%> (-3.75%)
:arrow_down:

...tion_core/cluster_management/docker_command_gen.py
100.00% <0.00%> (ø)

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

Based on the code, it looks like this builds the plugin specifically for ES 7.10.2. Is that true? Can you specify that in the PR description?

Closing this and reopening here (PR #125 ) for easier reviews.


Add cppcheck and clang-format check to github actions

Added two additional items to github actions: cppcheck and clang-format checks

Example of output of cppcheck:

Example of output clang-format:

It's cool idea!


Border points seem to generate wrong cells?

I'm having issues when it comes to the generation of the cells.
While the inner points seem to work fine the outer points are causing trouble.
(generate with the GetVoronoiCellsBasedOnCentroids() command)

I've added the points to the ticket
points.txt

This is with GetVoronoiCellsBasedOnCircumcenters

Hello @codewing
This is the limitation described in this article under the Convex Hull Section. Unfortunately I can't help you with this.
Cheers

Ah sorry that I skipped over that...


CN Temp mail extention added

Description

CN Temp mail extension added.

Hi @immortalsantee @pernielsentikaer Similar extensions already exist in the store. I checked the source code and your extension api and function are the same as the Temporary Email extension is the same

Hi @immortalsantee @pernielsentikaer Similar extensions already exist in the store. I checked the source code and your extension api and function are the same as the Temporary Email extension is the same

Yes @pernielsentikaer, but I wanted to have a choice to create my own username while using temp mail. And in some cases, using random UUID as username to generate temporary email, doesn't work as the website shows error that the email is not valid. Thus, I created this extension.

Thanks for pointing out @koinzhang, I'm not sure why I didn't find it while checking 😊
@immortalsantee it would be better to make a PR that enhances the other one, maybe make arguments so you can offer named inboxes 💯


Add mermaid charts support

Add support for mermaid graphs.
To test, add mermaid chat to the mdx file. E. g.:
```mermaid
graph LR
    Start --> Stop
```

Upd:
Default plugin didn't have all the options we needed, so I rewrote it to add them:

configFilePath for theme support. Put theme variables here to change colors.
destinationDir and staticPath will be needed after merging the #225 to cache images between builds correctly.

I tested as suggested. It looks like the module being imported is out of date. It will handle graph type graphs, but others like flowchart result in errors:
wait  - compiling /ver/11.x/installation (client and server)...
node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: Evaluation failed: Error: Parse error on line 1:
flowchart LR  C(End
^
Expecting 'NEWLINE', 'SPACE', 'GRAPH', got 'ALPHA'
    at Yt.parseError (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:486512)
    at Yt.parse (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:487678)
    at Object.e.getClasses (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:749437)
    at Object.render (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:759998)
    at s (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:8:233)
    at Object.init (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:8:318)
    at __puppeteer_evaluation_script__:17:20
    at ExecutionContext._evaluateInternal (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/ExecutionContext.js:122:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ExecutionContext.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/ExecutionContext.js:48:12)
    at async ElementHandle.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:55:12)
    at async ElementHandle.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:478:20)
  -- ASYNC --
    at ExecutionContext.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at ElementHandle.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:55:42)
    at ElementHandle.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:112:23)
    at ElementHandle.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:478:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  -- ASYNC --
    at ElementHandle.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at DOMWorld.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/DOMWorld.js:156:21)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  -- ASYNC --
    at Frame.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at Page.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/Page.js:347:29)
    at Page.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:112:23)
    at /Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:83:14
    at Generator.next (<anonymous>)
    at step (/Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:4:191)
    at /Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:4:361
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v19.4.0
node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: Evaluation failed: Error: Parse error on line 1:
flowchart LR  C(End
^
Expecting 'NEWLINE', 'SPACE', 'GRAPH', got 'ALPHA'
    at Yt.parseError (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:486512)
    at Yt.parse (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:487678)
    at Object.e.getClasses (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:749437)
    at Object.render (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:759998)
    at s (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:8:233)
    at Object.init (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:8:318)
    at __puppeteer_evaluation_script__:17:20
    at ExecutionContext._evaluateInternal (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/ExecutionContext.js:122:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ExecutionContext.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/ExecutionContext.js:48:12)
    at async ElementHandle.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:55:12)
    at async ElementHandle.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:478:20)
  -- ASYNC --
    at ExecutionContext.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at ElementHandle.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:55:42)
    at ElementHandle.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:112:23)
    at ElementHandle.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:478:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  -- ASYNC --
    at ElementHandle.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at DOMWorld.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/DOMWorld.js:156:21)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  -- ASYNC --
    at Frame.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at Page.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/Page.js:347:29)
    at Page.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:112:23)
    at /Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:83:14
    at Generator.next (<anonymous>)
    at step (/Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:4:191)
    at /Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:4:361
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v19.4.0
error - ./content/11.x/docs/pages/installation.mdx
Error: installation.mdx:Error: Unknown language: `mermaid` is not registered
info  - automatically enabled Fast Refresh for 1 custom loader
wait  - compiling /_error (client and server)...
node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: Evaluation failed: Error: Parse error on line 1:
flowchart LR  C(End
^
Expecting 'NEWLINE', 'SPACE', 'GRAPH', got 'ALPHA'
    at Yt.parseError (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:486512)
    at Yt.parse (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:487678)
    at Object.e.getClasses (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:749437)
    at Object.render (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:759998)
    at s (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:8:233)
    at Object.init (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:8:318)
    at __puppeteer_evaluation_script__:17:20
    at ExecutionContext._evaluateInternal (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/ExecutionContext.js:122:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ExecutionContext.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/ExecutionContext.js:48:12)
    at async ElementHandle.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:55:12)
    at async ElementHandle.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:478:20)
  -- ASYNC --
    at ExecutionContext.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at ElementHandle.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:55:42)
    at ElementHandle.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:112:23)
    at ElementHandle.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:478:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  -- ASYNC --
    at ElementHandle.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at DOMWorld.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/DOMWorld.js:156:21)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  -- ASYNC --
    at Frame.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at Page.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/Page.js:347:29)
    at Page.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:112:23)
    at /Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:83:14
    at Generator.next (<anonymous>)
    at step (/Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:4:191)
    at /Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:4:361
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v19.4.0
node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: Evaluation failed: Error: Parse error on line 1:
flowchart LR  C(End
^
Expecting 'NEWLINE', 'SPACE', 'GRAPH', got 'ALPHA'
    at Yt.parseError (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:486512)
    at Yt.parse (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:487678)
    at Object.e.getClasses (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:749437)
    at Object.render (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:1:759998)
    at s (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:8:233)
    at Object.init (file:///Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/mermaid.min.js:8:318)
    at __puppeteer_evaluation_script__:17:20
    at ExecutionContext._evaluateInternal (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/ExecutionContext.js:122:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ExecutionContext.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/ExecutionContext.js:48:12)
    at async ElementHandle.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:55:12)
    at async ElementHandle.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:478:20)
  -- ASYNC --
    at ExecutionContext.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at ElementHandle.evaluate (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:55:42)
    at ElementHandle.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:112:23)
    at ElementHandle.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/JSHandle.js:478:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  -- ASYNC --
    at ElementHandle.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at DOMWorld.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/DOMWorld.js:156:21)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  -- ASYNC --
    at Frame.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:111:15)
    at Page.$eval (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/Page.js:347:29)
    at Page.<anonymous> (/Users/alex/projects/gravitational/docs/node_modules/puppeteer/lib/helper.js:112:23)
    at /Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:83:14
    at Generator.next (<anonymous>)
    at step (/Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:4:191)
    at /Users/alex/projects/gravitational/docs/node_modules/mermaid.cli/index.bundle.js:4:361
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v19.4.0
error - ./content/11.x/docs/pages/installation.mdx
Error: installation.mdx:Error: Unknown language: `mermaid` is not registered

It looks like remark-mermaid depends on a very old version of mermaid.cli, which is now a different package (https://www.npmjs.com/package/@mermaid-js/mermaid-cli). Should we vendor the package and update the dependency?

Ok, let me check it tomorrow. There are like 10 different versions of remark mermaid plugins. I will try some other ones, and if none of them works as intended, I will just copy it to the repo and manually adjust for our needs. They are all around 100loc.

Replacing mermaid.cli with @mermaid-js/mermaid-cli fixed the problem. Please try it again.

With this chart:
```mermaid
flowchart LR
  C(End User)
  D(Identity Provider)
  C==o A
  A-.-D
  subgraph lan[Internal Network]
    style lan stroke-dasharray: 5 5
    A(Teleport)
    B(Upstream Service)
    A --- B
  end
```

The dev server builds the page with the chart (but takes quite awhile), but the terminal is not happy about it:
event - compiled client and server successfully in 17.4s (1069 modules)
warn  - Fast Refresh had to perform a full reload. Read more: https://nextjs.org/docs/basic-features/fast-refresh#how-it-works
Error: Aborted because ./content/11.x/docs/pages/index.mdx is not accepted
Update propagation: ./content/11.x/docs/pages/index.mdx -> ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Falex%2Fprojects%2Fgravitational%2Fdocs%2Fpages%2Fver%2F11.x%2Findex.mdx&page=%2Fver%2F11.x!
    at applyHandler (http://localhost:3000/docs/_next/static/chunks/webpack.js?ts=1674668005390:869:31)
    at http://localhost:3000/docs/_next/static/chunks/webpack.js?ts=1674668005390:552:21
    at Array.map (<anonymous>)
wait  - compiling...
warn  - Fast Refresh had to perform a full reload. Read more: https://nextjs.org/docs/basic-features/fast-refresh#how-it-works
Error: Aborted because ./content/11.x/docs/pages/index.mdx is not accepted
Update propagation: ./content/11.x/docs/pages/index.mdx -> ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Falex%2Fprojects%2Fgravitational%2Fdocs%2Fpages%2Fver%2F11.x%2Findex.mdx&page=%2Fver%2F11.x!
    at applyHandler (http://localhost:3000/docs/_next/static/chunks/webpack.js?ts=1674668038282:869:31)
    at http://localhost:3000/docs/_next/static/chunks/webpack.js?ts=1674668038282:552:21
    at Array.map (<anonymous>)
event - compiled client and server successfully in 2.4s (1069 modules)

Thank you. Let me check it.

Ok, I updated this PR with my own version of the mermaid plugin because non of the existing ones worked as I needed. Added theme support and some variables that will be needed after #225 merge. For me, it does not throw any errors not at build time, not in the browser console, but please test it.

The mermaid charts are working. I'm still getting these errors on refresh, though I'm not sure they're related:

Error: Aborted because ./content/11.x/docs/pages/index.mdx is not accepted
Update propagation: ./content/11.x/docs/pages/index.mdx -> ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Falex%2Fprojects%2Fgravitational%2Fdocs%2Fpages%2Fver%2F11.x%2Findex.mdx&page=%2Fver%2F11.x!
    at applyHandler (http://localhost:3000/docs/_next/static/chunks/webpack.js?ts=1674851275871:869:31)
    at http://localhost:3000/docs/_next/static/chunks/webpack.js?ts=1674851275871:552:21
    at Array.map (<anonymous>)

Can we make the adjustments required to make it accept images?

It looks new files, both svg and mmd are created on every refresh.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        docs/pages/341ee9545a206e2332467a232fb0d7c049f14a7f.svg
        docs/pages/35cfbb05331c61282bef7756f0d6cdfd9069dcb2.mmd
        docs/pages/5955eae845992db594a22df47bed669089b8150f.svg
        docs/pages/7cbb69a581bc40ca7ad25b29de6d493a2fbcbe45.svg
        docs/pages/b4abcb2f451eb123e3b04b96cbf063ce385957ec.svg
        docs/pages/d8ce6f7453751e8670ed2af67075ca2b3809e49c.mmd

Does the final version of either need to be added to the commit? If so, how do we determine which one?

The mermaid charts are working. I'm still getting these errors on refresh, though I'm not sure they're related:

Still can't reproduce it. Tired the same page as in error message, both id dev and prod mode. I'm on Mac with Node.js v16.15.1. Can you please tell me what os and Node version you use?

Can we make the adjustments required to make it https://github.com/mermaid-js/mermaid/issues/1133?

Plugins itself insert image with "securityLevel": "loose" in the config. But the image is not shown on the page right now:

For 3rd party images like <img src='https://iconscout.com/ms-icon-310x310.png'; width='30' />, it shows the image if you access diagram directly, for the plugin itself works. But then you show image on the page linked image return error. My guess is that it is something related to Next's security settings, but it needs additional research and the resulting changes will probably be outside of the plugin.
It is more complicated with local images like ../../image.png. The diagram is generated correctly, but the image itself is not moved to the public location, so it will not work correctly. To make it work, we need to a) parse code block, b) find images and their SRCs, c) move images to public locations, d) update links inside the diagrams. It is possible, but it will take time.

It looks new files, both svg and mmd are created on every refresh.

Does the final version of either need to be added to the commit? If so, how do we determine which one?

mmd file is a tmp file that will be deleted immediately after generating the svg. svg is only needed to build docs there is no need to commit it. To leave the docs folder clean I added a couple of changes to save images not to the docs folder, but to the .next/static/assets - a tmp folder that will be saved between builds. And because of that I also added a check for images in the cache to speed up build time.

2. It is more complicated with local images like ../../image.png. The diagram is generated correctly, but the image itself is not moved to the public location, so it will not work correctly. To make it work, we need to a) parse code block, b) find images and their SRCs, c) move images to public locations, d) update links inside the diagrams. It is possible, but it will take time.

What about assuming (we could spell it out in our Docs reference) that images referenced in mermaid diagrams live in public/img? It should only be a small set of icon-type images that we'll want to re-use for diagrams.
I'll test the latest updates and get back to you with answers re: build errors.

It is more complicated with local images like ../../image.png. The diagram is generated correctly, but the image itself is not moved to the public location, so it will not work correctly. To make it work, we need to a) parse code block, b) find images and their SRCs, c) move images to public locations, d) update links inside the diagrams. It is possible, but it will take time.

What about assuming (we could spell it out in our Docs reference) that images referenced in mermaid diagrams live in public/img? It should only be a small set of icon-type images that we'll want to re-use for diagrams.
I'll test the latest updates and get back to you with answers re: build errors.

I did some research. It looks like nested images are disabled in browsers by default, so it will not work even for local ones. See: https://developer.mozilla.org/en-US/docs/Web/SVG/SVG_as_an_Image#restrictions

I did some research. It looks like nested images are disabled in browsers by default, so it will not work even for local ones. See: https://developer.mozilla.org/en-US/docs/Web/SVG/SVG_as_an_Image#restrictions

Would nested images work if the diagrams were rendered client side, as opposed to being statically generated at build? That method may also be desirable if/when we implement a "dark mode" theme for the docs, so that the images can be re-rendered with matching styles.

Would nested images work if the diagrams were rendered client side, as opposed to being statically generated at build? That method may also be desirable if/when we implement a "dark mode" theme for the docs, so that the images can be re-rendered with matching styles.

It depends more not on rendering location but on the way they are inserted on the page. They will not work if we still use image tag, but will work if they are used as an inline svg (run a small manual test just now). Technically we can even inline svg's at the build time, but because mermaid generates random ids every time to prefix css classes we may need to spend some time caching them between page loads.

I am also still getting errors on page refresh. I cleared node_modules and did a fresh install and it's happening for me. Error importing the static (generated) assets. Error here
error - ./content/11.x/docs/pages/index.mdx:21:0
Module not found: Can't resolve '../../../../.next/static/assets/4296ab31c62343945109249f6bd07a5133ae4cd2.svg'
  19 |   title: 'Add your infrastructure'
  20 | }];
> 21 | import _______________next_static_assets_4296ab31c62343945109249f6bd07a5133ae4cd2_svg__ from "../../../../.next/static/assets/4296ab31c62343945109249f6bd07a5133ae4cd2.svg";
  22 | import Layout from "layouts/DocsPage";
  23 | export const meta = {
  24 |   title: 'Introduction to Teleport',

https://nextjs.org/docs/messages/module-not-found
info  - automatically enabled Fast Refresh for 1 custom loader
wait  - compiling /_error (client and server)...
error - ./content/11.x/docs/pages/index.mdx:21:0
Module not found: Can't resolve '../../../../.next/static/assets/4296ab31c62343945109249f6bd07a5133ae4cd2.svg'
  19 |   title: 'Add your infrastructure'
  20 | }];
> 21 | import _______________next_static_assets_4296ab31c62343945109249f6bd07a5133ae4cd2_svg__ from "../../../../.next/static/assets/4296ab31c62343945109249f6bd07a5133ae4cd2.svg";
  22 | import Layout from "layouts/DocsPage";
  23 | export const meta = {
  24 |   title: 'Introduction to Teleport',

On page http://localhost:3000/docs (index.md from context 11.x)
## Try out Teleport
```mermaid
graph LR
    Start --> Stop

Using the snippet above.

@avatus, thanks for the report. I'm traveling right now, but I will try to check it on Monday.

@avatus status update.  I was able to catch this error once, but I haven't found a way to reproduce it after it. Still looking into it.

Updated mermaid plugin to work with new hast version. As a side effect problem with non-existing images should be resolved too. (But in a not very beautiful way – we don't have an error anymore because there are no race conditions between updates and rerenders - as we need to manually update the page to see the new image it now has enough time to render).

@avatus can I merge it, or do we need additional reviews?

I'd wait for one more review 👍

Has this been rebased against main since the third version of the hast transformer merged?

Has this been rebased against main since the third version of the hast transformer merged?

@alexfornuto Yep

It depends more not on rendering location but on the way they are inserted on the page. They will not work if we still use image tag, but will work if they are used as an inline svg (run a small manual test just now). Technically we can even inline svg's at the build time, but because mermaid generates random ids every time to prefix css classes we may need to spend some time caching them between page loads.

Can you provide an example of the syntax needed for this to work?

Can you provide an example of the syntax needed for this to work?

It's more about how the plugin works. Right now plugin creates svg image and saves it to the filesystem. And then inserts it into the page with the img tag. E. g. <img src="path-to.svg"  />.
But with svg it is possible to inline svg files inside the page. E. g. instead of an image tag, write the content of svg file on the page <svg ...>...</svg>.
In the case of this plugin, it will mean updating this command https://github.com/gravitational/docs/blob/c2c9d1b5954424272ac1f0d3bf64b9daaa02ab77/server/remark-mermaid.ts#L48-L50 to return the generated string instead of writing it to file. And then creating new hast nodes from the parsed svg string. And then updating class names in the nodes to make them consistent between renders (right now, class names are randomly generated on each render).

to return the generated string instead of writing it to file. And then creating new hast nodes from the parsed svg string. And then updating class names in the nodes to make them consistent between renders (right now, class names are randomly generated on each render).

Well that's thoroughly over my head. I'll save that dream for another day. Thanks!


Update Qualys Webapp Parser to use Unique ID from tool

This PR fixes several issues with the Qualys Webapp parser

As of the latest dev update, which uses the new finding import structure, the qualys webapp parser was broken, as it did not directly assign the test field in a finding. This fixes that.
Previously, the parser would group all vulnerabilities with a QID under one finding. This means that even if there were 1000 reflected XSS vulns, DD would only display one finding. With this parser change, each vulnerability is considered a finding. Because of this, the number of findings in Defect Dojo now lines up with the number of vulnerabilities reported by Qualys WAS.
Because all findings with one QID were grouped under a single finding, the request response pairs listed in DD were not accurate. The finding would list one request/response pair, no matter how many vulnerabilities were listed under it. Because each vulnerability now has it's own finding, this is no longer an issue.

Hi @Hijerboa, the parser was originally written so that all findings under one QID would be aggregated under one finding. This idea was supported by the endpoint statuses that allowed partial remediation of a finding by mitigating individual endpoints.
There is also dedicated metrics pages that shows number of endpoints as well as number of findings to show the difference in these numbers.
If having multiple findings for identical issues works better for your flow, then please hide this feature behind a feature flag in settings.dist.py so it does not break other users work flow. Also please add some notes in the documentation so others users will know about it.
Thanks!

Hi @Maffooch I've updated the parser so that it now will only create a unique finding for each unique ID if a feature flag that I created in settings.dist.py has been set to True.
Additionally, this change also prevents an error on upload of a qualys webapp scan with the latest version of dev's changes to parser import structure.


Consider adding stylelint-prettier

https://github.com/prettier/stylelint-prettier

Actually, we should use https://github.com/prettier/stylelint-config-prettier instead.


Install CA-certificates in docker image

Description of proposed changes:
Make sure CA-certificates are installed in our docker image so that authority nodes can perform requests over SSL (without crashing)
Practical tips for PR review & merge:

[ ] All GitHub Actions report PASS
[ ] Newly added code/functions have unit tests

[ ] Coverage tools report all newly added lines as covered
[ ] The positive scenario is exercised
[ ] Negative scenarios are exercised, e.g. assert on all possible errors
[ ] Assert on events triggered if applicable
[ ] Assert on changes made to storage if applicable

[ ] Modified behavior/functions - try to make sure above test items are covered
[ ] Integration tests are added if applicable/needed

Codecov Report

Merging #476 (224e605) into dev (664b3e4) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #476   +/-   ##
=======================================
  Coverage   75.67%   75.67%
=======================================
  Files          45       45
  Lines        8444     8444
=======================================
  Hits         6390     6390
  Misses       2054     2054

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


[MRG] Add fit call to README.md

Pull Request Test Coverage Report for Build 45

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 88.037%

Totals

Change from base Build 43:
0.0%

Covered Lines:
287

Relevant Lines:
326

💛  - Coveralls


test ops==2.0.0rc2

test only

The tests for new ops release candidate passed.
The update to new ops library will be performed for all repos as a part Renovate routine update.
Closing PR for now to keep the house clean.


make sure instantiating draw on load works

Works only outside of load for me

Provide a testcase?

@peterqliu can't replicate this problem. The following code runs on my machine:
  map.on('load', function() {
    var Draw = mapboxgl.Draw({
      interactive: true,
      drawing: false
    });
    map.addControl(Draw);
  });

I take it back


The share button doesn't work properly

The share button on watch pages only works on the first video I watch, if I switch to another video, the share button still acts like if I was still watching the first video. No matter how many videos I open, it always showing the first video's url.
This is the first video i opened. The share button shows the correct url.

This is the second video I opened. The share button shows the previous video's url.

And this is the third video I opened. Still showing the first video's url.

I forgot to mention that this bug is present in 2012 - 2017 layouts, 2019 and the disabled option are unaffected.

Ah, I think I know why this happens, however some things would theoretically need to be significantly reworked in order to fix this. I imagine that trying to fix this right now could introduce other, much more serious bugs. I might look into it sometime down the line, but I can't say when.

The aforementioned watch button rework as occurred as of 1.2.5, so this is fixed now.


Update UI when reset triggered

Feature Request
Description
Provide feedback on Level Reset so user can accurately track progress through chat (live or exported).
Screenshots

Additional context
Figma
Disable the button when there's nothing to reset, enable it when there is.
We likely need to use aria-disabled here rather than disabled so that keyboard-only users can still tab to the button and see that it is disabled.
This shouldn't be an issue, however, as our ThemedButton component already supports this.
Note that this ticket is NOT to update the UI of the buttons, that is done in #573
Questions:

Do we disable the reset button when there's no chat? - no, no one was too bothered about this, so keep it as is for now.
Do we want to have the 'level progress reset' separator? - yes, it's a nice, clear indicator that the reset has happened.
Do we want to show old chat history before the separator? - no, this gets complicated when considering where and how this old chat history is stored.

Acceptance criteria
Do NOT test for updated UI here (aside from disabled look), just functionality.
 GIVEN chat is empty
THEN the "Reset Level" button is disabled
AND the "Reset Level" button is focusable
GIVEN chat is NOT empty
THEN the "Reset Level" button is enabled
AND the "Reset Level" button is focusable
GIVEN "Reset Level" button enabled
WHEN when the user clicks on the button
THEN the chat is cleared, and only shows the welcome message from the bot
AND emails are cleared
AND the button is disabled
GIVEN the user clicks reset level button
THEN previous messages (other than welcome msg) are cleared
AND "reset level"message  is added to a chat history
GIVEN the user clicks reset level button and exports logs
THEN reset level message is shown in logs
GIVEN the user clicks reset progress button
THEN history is cleared and no "reset" message shown

Haven't "officially" tested yet but I think I found a bug introduced in this PR
To Reproduce:

Run app
Go to sandbox
enable character limit defence and configure the character limit to, say, 5.
type a message and observe the character limit kicking in
reset the level
enable character limit defence again
type a long message and observe the character limit NOT kicking in

I think when we re-enable the character limit after reset, it doesn't reconfigure the value to what's in the config box in the front end. And if you step through the backend, it's back to its default value of 280 or whatever.

Haven't "officially" tested yet (so still worth testing this ticket properly). But I accidentally stumbled into this bug which I'm pretty sure was from this PR:
To Reproduce:

Run app
Go to sandbox
enable character limit defence and configure the character limit to, say, 5.
type a message and observe the character limit kicking in
reset the level
enable character limit defence again
type a long message and observe the character limit NOT kicking in

I think when we re-enable the character limit after reset, it doesn't reconfigure the value to what's in the config box in the front end. And if you step through the backend, it's back to its default value of 280 or whatever.

Might be related to #678 ?

TESTING:


feat(tun): windows auto-route

🤔 This is a ...

[ ] New feature
[ ] Bug fix
[ ] Performance optimization
[x] Enhancement feature
[ ] Refactoring
[ ] Code style optimization
[ ] Test Case
[ ] Branch merge
[ ] Workflow
[ ] Other (about what?)

🔗 Related issue link
#559
💡 Background and solution
https://learn.microsoft.com/en-us/windows/win32/rras/add-and-update-routes-using-rtmaddroutetodest
📝 Changelog
tun:
  enable: true
  device-id: "dev://utun1989"
  route-all: false
  routes:
    - <IP_ADDRESS>/1
    - <IP_ADDRESS>/1

☑ Self-Check before Merge
⚠ Please check all items below before requesting a reviewing. ⚠

[ ] Doc is updated/provided or not needed
[ ] Changelog is provided or not needed

实测能通吗？windows api那部分实在是看不懂

别修了吧，感觉没啥用，微软的文档都不全


Complete unit tests for trajectory.py

Unit test all methods.
See geopandas for inspiration.

[x] smooth_sg
[x] angles
[x] step length
[x] polar_to_z
[x] expected_sq_displacement
[x] traj_from_coords
[x] distance
[x] to_shapely
[x] transition_matrix
[x] _bins_to_tuples
[x] bins_to_tuples
[x] calculate_flow_angles
...

@aauss @JarnoRFB - Are you guys still interested in helping with unit tests?

Completed, closing issue.


How to setup Frankenphp with PHP 7.2/7.3/7.4

Describe you feature request
Hi how can we do a custom image with  PHP 7.2/7.3/7.4 ?

It's not possible. PHP 8.2+ is required (previous PHP versions have conflicts with the Go runtime).


New Rule (Link): Microsoft Dynamics 365 form phishing

Unfortunately, the form loads too slowly for LA to get a complete look at the contents, would have used CredPhish otherwise. Regardless, this should hold up with the initial NLU detection. Running hunts now.

@jkamdjou I went with concat instead of coalesce, NLU wasn't flagging our sample otherwise.

Hoping we can OCR the webpage screenshot and run it through NLU too, just to have a more confident detection.

LGTM!


Added stub generation to PHP generator

This change updates descriptor.proto and descriptor.pb.php with changes from the alpha version of Protobuf 3. It also modifies the code generator to generate an additional class for services, which is primarily useful for a project I am using this library for.

+1 can we get this merged?


feat: add interface to set default options

[ ] augroup!
[ ] autocmd!
[ ] map!
[ ] command!
[ ] highlight!

#227 closes this issue.


Streaming extensions: Cannot upload file, got 404

Versions
master and Node 12.
Describe the bug
When uploading a file using streaming extension protocol, seeing 404.

To Reproduce

Use https://compulim.github.io/webchat-loader to connect to MockBot with SE
Upload a file

Expected behavior
File should upload successfully, with response from the bot.
Screenshots
We send PUT to https://.../.bot/v3/directline/conversations/.../users/.../upload.
{"verb":"PUT","path":"https://webchat-mockbot-proxy.azurewebsites.net/.bot/v3/directline/conversations/HAepqHFO0VHGpxcww0SRs7/users/dl_8gesgg9htu2/upload","streams":[{"id":"fc43b7ee-ee5f-4dcc-af03-9e8fc9376ed3","contentType":"application/json; charset=utf-8","length":240},{"id":"8cf4cc80-7b62-4206-b3d0-4c0fcb68efaf","contentType":"image/png","length":556584}]}

The incoming stream returned {"statusCode":404}.

[bug]

Looks like this is due to incorrect path in the PUT request. The expectation is that it should be a relative path starting at /v3/directline.....

The fix has been checked in here - https://github.com/ckkashyap/BotFramework-DirectLineJS/commit/fc3a9aef38400402506d99f880a8ce33a30cd8f8#diff-4ea468cc7b0c950f26da99e8ca71ac57

This bug can be used to keep track of all the changes making into master. https://github.com/microsoft/botbuilder-js/issues/1188


fix(schedules): schedules failed to load on circuit overseer visit

:tada: This PR is included in version 2.53.5 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


How to include pem file

Hi,
I'm trying to include pem file for push notification ,but i'm not able to load this in file in the path of the padrino app.
i try this,but nothing
Padrino.set_load_paths("pem/*")
Federico

Closing as probably not a Padrino issue.


Issue with README

I am running Laravel 5.2
In the README.md there is a line stating to get the base config file over to config/slack.php you must run php artisan config:publish maknz/slack however this produces the following error:
  [Symfony\Component\Console\Exception\CommandNotFoundException]
  Command "config:publish" is not defined.
  Did you mean one of these?
      vendor:publish
      config:cache
      config:clear
```

I ended up running php artisan vendor:publish maknz/slack
This produces the error:
[Symfony\Component\Console\Exception\RuntimeException]
  Too many arguments, expected arguments "command".

So finish the job of installing maknz/slack I just ran a php artisan vendor:publish and git stash'd the garbage from the other packages... this was annoying and I wanted to ask, if you knew what the correct way to publish just maknz/slack's config is? Then place that in the README.md for this repo. Thanks!

@d4rkd0s
Please just run the command php artisan vendor:publish that should do the trick.
The instructions in Readme.txt needs to be updated.
I just checked on Laravel 5.3 and this command works fine.
php artisan vendor:publish
Plus location of config file is /app/slack.php and not what is mentioned in Readme.


create a readme-ZH_CN

@robinv8 nice! Thank you

Maybe the translation is not accurate, but I will adjust later。

@tuchk4 Maybe the translation is not accurate, but I will adjust later.


Update casing on aria-describedby to use all lowercase

Description
Use all lowercase for aria-describedby. In practice, any casing is fine, since it just all gets lowercased anyway. This is to avoid developer confusion.
Release notes:
N/A
Checklist

[ ] Added the correct label: < feature | bug | dependencies | infrastructure | ignore-for-release >
[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

Codecov Report

Merging #3455 (1c6d07c) into main (4e6f220) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main    #3455   +/-   ##
=========================================
  Coverage     80.41%   80.41%
  Complexity     2365     2365
=========================================
  Files           291      291
  Lines          9426     9426
  Branches        629      629
=========================================
  Hits           7580     7580
  Misses         1599     1599
  Partials        247      247

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


Incorrect public key derivation on react-native

Issue Type
Bug
Description
Given the private key:
0x4735f8b1af5002ce677ae96bbf8958d7213a858f76166047346f89e5597f964d

I can successfully derive the following (correct) information on my node (v8) console:
account.privateToPublic('0x4735f8b1af5002ce677ae96bbf8958d7213a858f76166047346f89e5597f964d').toString('hex')
> '253caada10d4ffc3ad90a8b20658a524df51b884ab0c213fce48b024f6dce4661539d81e2f776a4b087298b66fa4a46b020a2eb46046aeec171548539bcc679b'

account.publicToAddress(account.privateToPublic('0x4735f8b1af5002ce677ae96bbf8958d7213a858f76166047346f89e5597f964d')).toString('hex')
> '0x5C6a4899f99cd6A6c41a2aef0B3d355546e46F92'

However, when I run the following code in a utility function within React-Native:
let pub = account.privateToPublic(priv).toString('hex')

I get an incorrect public key:
04253caada10d4ffc3ad90a8b20658a524df51b884ab0c213fce48b024f6dce4661539d81e2f776a4b087298b66fa4a46b020a2eb46046aeec171548539bcc679b

Where priv is the 0x-prefixed private key specified above.

This is unfortunate because ethjs-account is the only account util I can find that doesn't error out in the RN environment.

react-native-cli: 2.0.1
react-native: 0.47.1

Hey Alex, how are you using the module? Is it the prebuild or an install of the module?
That is crazy it derives improperly and super dangerous.
Tell me more
Sent from my iPhone

On Aug 7, 2017, at 7:29 PM, Alex Miller<EMAIL_ADDRESS>wrote:
Issue Type
Bug
Description
Given the private key:
0x4735f8b1af5002ce677ae96bbf8958d7213a858f76166047346f89e5597f964d
I can successfully derive the following (correct) information on my node (v8) console:
account.privateToPublic('0x4735f8b1af5002ce677ae96bbf8958d7213a858f76166047346f89e5597f964d').toString('hex')

'253caada10d4ffc3ad90a8b20658a524df51b884ab0c213fce48b024f6dce4661539d81e2f776a4b087298b66fa4a46b020a2eb46046aeec171548539bcc679b'

account.publicToAddress(account.privateToPublic('0x4735f8b1af5002ce677ae96bbf8958d7213a858f76166047346f89e5597f964d')).toString('hex')

'0x5C6a4899f99cd6A6c41a2aef0B3d355546e46F92'
However, when I run the following code in a utility function within React-Native:

let pub = account.privateToPublic(priv).toString('hex')
I get an incorrect public key:
04253caada10d4ffc3ad90a8b20658a524df51b884ab0c213fce48b024f6dce4661539d81e2f776a4b087298b66fa4a46b020a2eb46046aeec171548539bcc679b
Where priv is the 0x-prefixed private key specified above.
This is unfortunate because ethjs-account is the only account util I can find that doesn't error our in the RN environment.
react-native-cli: 2.0.1
react-native: 0.47.1
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I was using an npm installation.
I just imported ethjs-account as a pre-build, which solves the problem. This is likely an issue with something in the internals of secp256k1 not liking the RN environment, but it may be helpful to include a pre-build distribution and make a note for RN users.

I think this issue should perhaps stay open, since ethjs-account is using elliptic directly and not secp256k1 (which detects the presence of a binary addon, and if missing uses elliptic.

Hey Matt, any chance at a PR? This thing runs on smart individuals like yourself ;)
Would love sep256 and RN support.
Sent from my iPhone

On Aug 7, 2017, at 9:19 PM, Alex Miller<EMAIL_ADDRESS>wrote:
Reopened #3.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.


securityIssue

Steps to reproduce
I face this issue

Expected results
d
Actual results
d
Code sample
Code sample
[Paste your code here]

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[Paste your output here]

pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")

repositories {
    google()
    mavenCentral()
    gradlePluginPortal()
}

}
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.1.0" apply false
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}
include ":app"
plugins {
id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
android {
namespace = "com.example.flutter_application_1"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
compileOptions {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
    jvmTarget = JavaVersion.VERSION_1_8
}

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId = "com.example.flutter_application_1"
    // You can update the following values to match your application needs.
    // For more information, see: https://flutter.dev/to/review-gradle-config.
    minSdk = flutter.minSdkVersion
    targetSdk = flutter.targetSdkVersion
    versionCode = flutter.versionCode
    versionName = flutter.versionName
}

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig = signingConfigs.debug
    }
}

}
flutter {
source = "../.."
}

This is not a flutter issue.
It might be caused by your internet connection. If you're using a proxy, you might want to check that as well. See https://stackoverflow.com/questions/26697118/android-studio-unable-to-find-valid-certification-path-to-requested-target
Closing from here as this is not a flutter issue.
Thank you

i tried this before but still same error and i try otherway like adding the gradle properites manually all.zop with the path then it show new error for app andorid tool version erorr

Where:
Settings file 'C:\Users\Ebrahim.Alteneiji\Pictures\flutter_application_14\android\settings.gradle' line: 25

What went wrong:
Plugin [id: 'com.android.library', version: '8.2.2', apply: false] was not found in any of the following sources:

Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
Included Builds (No included builds contain this plugin)
Plugin Repositories (could not resolve plugin artifact 'com.android.library:com.android.library.gradle.plugin:8.2.2')
Searched in the following repositories:
Google
MavenRepo
Gradle Central Plugin Repository


add GS credentials to CI environments

Need to add the f2p account i use for testing to the CI environments

this is done


Fix: show widget when navigating from repository homepage

Fixes #34
You can test the fix by navigating to an issue/PR/discussion from a repository homepage—it should display the widget on this branch, but it doesn’t on main.

SORRY - this may be a false alarm, I think my extension was still trying to use OAuth from the other branch. Disregard this for now, I'll get back to you in a sec after some proper testing

Huh, that’s odd—I tried on the same repo and it worked on my end. I’m wondering if changes to the manifest.json require a full reinstall of the extension, rather than an update. Would you mind giving this a try?


Import arbitrary keys (not tied to identities)

I cannot deduce from the documentation how to do this, so I assume it's not implemented now.
I would like ssh-ident to be able to use arbitrary keys, without having them tied to identities. Pattern-based identities aren't a great fit for me, as the servers my keys belong to aren't named after any pattern I could match against.
I already have my ~/.ssh/config set up with specific IdentityFiles for specific hosts (since I'm adding other settings already), and would like ssh-ident to just use whatever key is configured in there for a given host. sshing to these hosts with ssh-ident prompts me for the password for these keys, ssh-ident simply doesn't save the password. Since the keys work, I presume it's possible for ssh-ident to start managing them.

If it's of any help, this blog post may help shed some light on why we use ssh-ident:
http://rabexc.org/posts/pitfalls-of-ssh-agents
This article also talks about ssh-ident:
http://www.ct-unlimited.org/2014/04/17/painless-ssh-agent/
I'll mark this issue as Closed, as I don't think there's much I need to do here right now. It's also been 2 years since the bug was opened :)


View  shared IG post within app

A user should be able to view IG posts shared in his inbox. As of now, the posts are only viewable on the browser.
These posts should be viewable within instead. We may also offer options to save the post (locally or on IG)
Videos may also have options to rewind/fast-forward.

fixed on this release


NLog.LogManager.Setup() - Introduced LoadConfiguration and friends for ISetupBuilder

Very small dive into the idea of fluent-api for setup of NLog-LoggingConfiguration:
LogManager.Setup().LoadConfigurationFromFile();

LogManager.Setup().LoadConfigurationFromFile("NLog.config", optional: false);

LogManager.Setup().LoadConfigurationFromXml("<nlog></nlog>");

LogManager.Setup().LoadConfiguration(nlogConfig);

LogManager.Setup().LoadConfiguration(builder =>
  // Targets where to log to: File and Console
  var logfile = new NLog.Targets.FileTarget("logfile") { FileName = "file.txt" };
  var logconsole = new NLog.Targets.ConsoleTarget("logconsole");

  // Rules for mapping loggers to targets
  builder.Configuration.AddRule(LogLevel.Info, LogLevel.Fatal, logconsole);
  builder.Configuration.AddRule(LogLevel.Debug, LogLevel.Fatal, logfile);
);

This will match the PRs here:
https://github.com/NLog/NLog.Extensions.Logging/pull/418
https://github.com/NLog/NLog.Web/pull/540
This allows one to setup a fallback configuration, if no NLog.config file was found:
LogManager.Setup().LoadConfigurationFromFile().LoadConfiguration(builder =>{
  var config = builder.LogFactory.Configuration;
  if (config != null)
        return;   // Config already assigned and loaded

  // Targets where to log to: File and Console
  var logconsole = new NLog.Targets.ConsoleTarget("logconsole");

  // Rules for mapping loggers to targets
  builder.Configuration.AddRule(LogLevel.Info, LogLevel.Fatal, logconsole);
}));

Or one can so this (Resolves almost #1429, but without autoReload=true support)
LogManager.Setup().LoadConfigurationFromFile().LoadConfiguration(builder => {
   // Dynamically adds the console-target after having loaded from NLog.config
   var consoleTarget = new ColoredConsoleTarget("console");
   builder.Configuration.AddRule(LogLevel.Info, LogLevel.Fatal, consoleTarget);
}));

One can also setup support for loading NLog.config first in Process-Directory (Before NLog5 is released)
var processDir = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
LogManager.Setup().
   LoadConfigurationFromFile(Path.Combine(processDir, "NLog.config"), optional: true).
   LoadConfigurationFromFile();  // Skips loading of default NLog.config if config already loaded

Notice no unit-tests yet, because 'm guessing we are entering discussion mode first.

This allows one to setup a fallback configuration, if no NLog.config file was found:
LogManager.Setup().LoadNLogConfigFromFile().LoadNLogConfig(logFactory =>{
  var config = logFactory.Configuration;
  if (config != null)
        return config;   // Config already loaded

  config = new NLog.Config.LoggingConfiguration(logFactory);

  // Targets where to log to: File and Console
  var logconsole = new NLog.Targets.ConsoleTarget("logconsole");

  // Rules for mapping loggers to targets
  config.AddRule(LogLevel.Info, LogLevel.Fatal, logconsole);
  return config;
}));

How does this works if we load from file and enhance it from API? (so it isn't a fallback). And if we do reload, does that work then?

Notice no unit-tests yet, because I'm guessing we are entering discussion mode first.

I think it's nice! Only some naming things I guess

How does this works if we load from file and enhance it from API? (so it isn't a fallback). And if we do reload, does that work then?

Notice that the two last code-examples are a little different:
  var config = logFactory.Configuration;
  if (config != null)
        return config;   // Config already loaded (So no need to create fallback config)

And the other (enhancing loaded config):
  var config = logFactory.Configuration;
  if (config == null)
         config = new LoggingConfiguration(logFactory); // Create fresh config to enhance

Ofcourse with autoReload="true" then all is lost, when enhancing loaded config. I guess people who are into such exotic scenario will come with some great use-cases and suggestions for how to implement that logic. Much easier to work actual use-cases than trying to predict everything.
Like I said in my introduction of this. Then it is a very small dive into the fluent-setup of NLog-config.

I think it's nice! Only some naming things I guess

Created some unit-tests that increases code-coverage.

Btw. happy to see that NLog 4.7.0 seems to be swimming nicely along without any major issues. Not like NLog 4.6.0 where my refactoring of XmlLoggingConfiguration (To load NLog.config from appsettings.json) caused all kind of bad experiences.
But maybe I have just jinxed it, and the radio-silence comes from the corona dance :)

Should we include a CreateLogger() or GetCurrentClassLogger() / GetLogger() as extension-methods to ISetupBuilder ?
If you would like to remove the LogFactory-indirection ?
So this:
var logger = LogManger.Setup().LoadNLogConfigFromAppSettings().LogFactory.GetCurrentClassLogger();
Becomes this:
var logger = LogManger.Setup().LoadNLogConfigFromAppSettings().GetCurrentClassLogger();

Should we include a CreateLogger() or GetCurrentClassLogger() / GetLogger() as extension-methods to ISetupBuilder ?

Sounds good!  GetCurrentClassLogger() / GetLogger() sounds as the best option!

Sounds good! GetCurrentClassLogger() / GetLogger() sounds as the best option!

Created PR #3909

One name thing, would it be easier? (So drop the NLog in the name)
LogManager.Setup().LoadConfigFromFile().LoadConfig(logFactory =>{ ...

One name thing, would it be easier? (So drop the NLog in the name)

I did that on purpose, because there is both "NLog.config" and "appsettings.json" and "app.config". All of them are files.

I did that on purpose, because there is both "NLog.config" and "appsettings.json" and "app.config". All of them are files.

Ah well I expected that  "appsettings.json" and "app.config" would work (in the future) 👼
What about LoadConfig etc, and adding a optional "logFileType" parameter?

What about LoadConfig etc, and adding a optional "logFileType" parameter?

Ow that won't scale nice between other packages.
I stil prefer LoadConfig, but I think "appsettings.json" should be named other, e.g. LoadConfigFromAppsettingsJson

Ah well I expected that "appsettings.json" and "app.config" would work (in the future)

Never going to happen, since all of them have different dependencies, so they would require different methods.
P.S. It was my dream when I introduced LogManager.LoadConfiguration but now see it was a mistake.

my dream

To what is this referring?

To what is this referring?

LogManager.LoadConfiguration should load all kind of files.

ow yes, that would be nice.
But you still prefer LoadNLogConfig over LoadConfig? I never saw the relation between "NLog" word and NLog.config (as dumb user is still would try LoadNLogConfig("appsettings.json"))

Yes to me LoadNLogConfig is better than LoadConfig. As it signals the file has to match the format of NLog.config

I guess these two methods could have different name:
LogManager.Setup().LoadNLogConfig(nlogConfig);

LogManager.Setup().LoadNLogConfig(logFactory => )

Could also be called:
LogManager.Setup().LoadLoggingConfiguration(nlogConfig);

LogManager.Setup().LoadLoggingConfiguration(logFactory => )

Changed builder-method from LogFactory to ISetupNLogConfigBuilder then one can create config-extension-methods for the interface instead of for LogFactory.

I guess these two methods could have different name:
LogManager.Setup().LoadNLogConfig(nlogConfig);

LogManager.Setup().LoadNLogConfig(builder => )

Could also be called:
LogManager.Setup().LoadLoggingConfiguration(nlogConfig);

LogManager.Setup().LoadLoggingConfiguration(builder => )

That's IMO better. I don't think "NLog Should be in a method name, as we're already in a NLog context.
Why about LogManager.Setup().LoadConfiguration? It is consistent with  LogManager.LoadConfiguration then.

Why about LogManager.Setup().LoadConfiguration?

Have updated the PR with the new name.
Some adjustment is needed for:
https://github.com/NLog/NLog.Extensions.Logging/pull/412
https://github.com/NLog/NLog.Web/pull/540

Cool! Thanks!

Created wiki-page: https://github.com/NLog/NLog/wiki/Fluent-Configuration-API


Show a quick preview of different themes for "--themelist"

It would be great if we could show a short snippet of highlighted code for each of the syntax highlighting themes when using "--themelist".
Example

commit c0190c19840b2894a494ceb86542a52851046ee1closes this issue.


"artifact-repositories not found" error from the workflow-controller

I’m getting a new error on workflow-controller latest image:
It happens right after a workflow is processed
time="2021-04-28T09:40:03.025Z" level=info msg="Processing workflow" namespace=mynamespace workflow=myjob-m4fwj
time="2021-04-28T09:40:03.057Z" level=info msg="Get configmaps 404"
time="2021-04-28T09:40:03.057Z" level=error msg="Non-transient error: configmaps \"artifact-repositories\" not found"
time="2021-04-28T09:40:03.058Z" level=info msg="resolved artifact repository" artifactRepositoryRef=default-artifact-repository

I didn’t configure any artifact repository, I’m using a very simple configmap from the default manifests.
I don't have a configmap artifact-repositories but I think there isn't any in the default setup.
Going back to v3.0.2  the error disappears. I still see  Get configmaps 404 but no error follows.
I would expect no error in logs when using the default installation

This is due to the additional logging added to transient errors in https://github.com/argoproj/argo-workflows/pull/5501.
The error can be ignored and should have no impact. It would definitely be better if it can be removed though.

we should not log anything at error level that is not an error - so this should be changed to warn level
@copierrj could I please ask you to send a PR to change the log level?

@alexec  Hi, Could I take over this issue?


Add a way for S2I templates to obtain Route host names

In templates Route elements can have their host names generated which makes it difficult to refer to those URLs from other templates. It would be nice to have a way to refer to the generated host names of previously applied Route objects. (It will be impossible to do from within the same template)
First we need to make sure that templates are applied in some known order, preferably resource.yaml, service.yaml and finally application.yaml. That way an application template can refer to a Route in a service template for example. (Done fc5bd3d6f5063f290a8e7ec96bb1aa7639c2c862)
And then we either:

Create "magic" template parameters that have special names like ROUTE_HOST_XXX_YYY which would then get their value set to the host name of the Route named xxx-yyy. Or we
Create a special element named fabric8-value which can be added to template parameters and which would hold a default value to be used in case that no value was explicitly set for the parameter. The value would be a string that can contain special variables like {{route/xxx-yyy[.spec.host]}} that would look up the Route named xxx-yyy and return its host.

The first option is the easiest but has the disadvantage of not giving us full flexibility. Often we want the template parameter to be an entire URL, not just a host name.

The first option is implemented here: 11e68d8fc7f76a19a49b6b659137cb5b8a9b1c49
And the second here: f1d9007979a6774ceb3b4d668f3ab83f57c033ab
I rather like the second one to be honest even though the code is somewhat more complex.

I like the 2nd option too. Do you have an example of how the application.yml file would use this mechanism?

I've got this working already (https://github.com/fabric8-launch/launchpad-missioncontrol/pull/270) so yes you can see it here: https://github.com/quintesse/wfswarm-rest-http-secured/blob/testing-s2i/app/.openshiftio/application.yaml#L33

Wow, that's so cool! Thanks!


Batch size and iterator

Hello,
Thanks for the awesome work. I am trying to adapt this to my own dataset but having trouble in understanding the batch size used and the iterator as I am new to torchtext. The batch size is set as 12000 in the example but when I try to print the tensor sizes within the batch, the shapes don't really reflect that. Am I misunderstanding something?
   BATCH_SIZE = 12000
    train_iter = MyIterator(train, batch_size=BATCH_SIZE, device=0,
                            repeat=False, sort_key=lambda x: (len(x.src), len(x.trg)),
                            batch_size_fn=batch_size_fn, train=True)
    i = 0
    for b in train_iter:
        i+=1
    print("steps: " + str(i))
    for b in train_iter:
        print(b.src.size())
        print(b.trg.size())
        return

"""
output
steps: 402
torch.Size([31, 203])
torch.Size([59, 203])
"""

Sorry for my ignorance. But how should I interpret this? Does the step equal to total data size / batch size?
Thank you very much for your help

@richielo Hi there, I find the similar phenomenon.
I guess it is because the code uses dynamic batch size.
You can find batch_size_fn in MyIterator. This can dynamically build a batch according to the data length.

@richielo sorry I don't have any ideas on that problem. I'm trying to run it on a single-gpu. And deal with some OOM problems.

@richielo sorry I don't have any ideas on that problem. I'm trying to run it on a single-gpu. And deal with some OOM problems.

Hi, how do we change the MultiGPULossCompute class so that it works in a single GPU?

@Haruo195 did you ever find out the solution for single GPU?


Jasmine2 support

We've happily been using this plugin but it has stopped working since changing Protractor to use jasmine2.
Is jasmine2 support planned?

I've forked and hacked it, here's the relevant commit: https://github.com/mping/protractor-html-screenshot-reporter/commit/8b1bd6904f9e55868dd214707f13eac0681f6b74
I also made slight changes to suit my needs, but as soon as the maintainer supports jasmine2 I'm gonna go back to this repo.
For reference, here are the hooks on jasmine 2:
var currentSuite, currentSpec;
ScreenshotReporter.prototype.jasmineStarted = function () {
    //console.log("##test[progressStart 'Running Jasmine Tests']");
};

ScreenshotReporter.prototype.jasmineDone = function () {
    //console.log("##test[progressFinish 'Running Jasmine Tests']");
};

ScreenshotReporter.prototype.suiteStarted = function (suite) {
	currentSuite = suite;
    //console.log("##START[testSuiteStarted name='" + (suite.fullName) + "']");
};

ScreenshotReporter.prototype.suiteDone = function (suite) {
    //console.log("##test[testSuiteFinished name='" + (suite.fullName) + "']");
};

ScreenshotReporter.prototype.specStarted = function (spec) {
	currentSpec = spec;
    //console.log("##START[testStarted name='" + (spec.description) + "' captureStandardOutput='true']");
};

ScreenshotReporter.prototype.specDone = function (spec) {

Waiting for this to be fixed, thanks to @mping for your fork!

Is there any update on when/if this will be released?

+1

@jdann, @avnersorek , @cindoum : Sorry for the delayed response. Right now I am tied up with my work. Not getting time to spend on this. I see a similar one for jasmine2. Please check it out.
Jasmine2 Reporter

Thanks, I've moved to mping's fork - https://github.com/mping/protractor-html-screenshot-reporter

To use the fork replace in your file package.json
  "protractor-html-screenshot-reporter": "mping/protractor-html-screenshot-reporter"

 >  npm update protractor-html-screenshot-reporter

I think it is runnning into the issue of https://github.com/angular/protractor/issues/1938
I am running a standalone chrome driver. The first request to take a screenshot takes some time, and that stops the flow. Maybe good to fist update the metaData, and then see if you success in taking a screenshot

@mping have you submitted a pull request to merge in your changes?

@mping's fork worked for me as well, but it's already lagging behind upstream with some other fixes I would like :) I'll glady submit a PR if nobody else wants to...

..and in the meantime I switched to https://github.com/mlison/protractor-jasmine2-screenshot-reporter which Works For Me™.

@eddiemonge I don't have alot of time, just submitted a crappy PR: https://github.com/jintoppy/protractor-html-screenshot-reporter/pull/69
@toupeira feel free to do a better job, I know at least should have squashed but my code was really old.

@mping I used your fork for Jasmine2 to test out I just a suite with 2 tests (it blocks) it is displaying the report only for one.

any news on this PR?