IPv6 Emulator Addresses not functioning

The Datastore emulator supports-- and automatically use sometimes-- IPv6 addresses (https://cloud.google.com/sdk/gcloud/reference/beta/emulators/datastore/start). Our code has only been parsing input such as "localhost:8081", which is still the default emulator address format. However, if you start a second emulator, or just define the address yourself, it can be IPv6.

So, this is a two part issue.

Our code needs to figure out how to handle these addresses. This will definitely involve changes to our code, and possibly to the generated client code or gax as well. That code automatically concatenates servicePath and port, but IPv6 is a bit different. We might be able to get creative with parsing the IPv6 to work around that, e.g. options.servicePath = '[::1:8244]' and options.port = ??.

I can't seem to get gRPC to send requests to the IPv6 address. Here are the settings our client passes and then the response.

{ libName: 'gccl',
  libVersion: '4.3.0',
  scopes:
   [ 'https://www.googleapis.com/auth/cloud-platform',
     'https://www.googleapis.com/auth/datastore' ],
  servicePath: '[::1:8244]',
  port: 443,
  projectId: undefined }
{ Error: Deadline exceeded
    at Http2CallStream.call.on (/Users/stephen/dev/nodejs-datastore/node_modules/@grpc/grpc-js/build/src/client.js:96:45)
    at Http2CallStream.emit (events.js:194:15)
    at process.nextTick (/Users/stephen/dev/nodejs-datastore/node_modules/@grpc/grpc-js/build/src/call-stream.js:71:22)
    at process._tickCallback (internal/process/next_tick.js:61:11)
  code: 4,
  details: 'Deadline exceeded',
  metadata: Metadata { options: undefined, internalRepr: Map {} } }

The emulator readout doesn't change, so it's not being hit.

Is there a default emulator port for these addresses?
Can gRPC handle directly pinging IPv6 addresses?
Is there a strict format we should be following?

Do we use http://?
Does the IP have to be wrapped within brackets?
Is a specific port required?

I've tried all of the combinations I can think of, and it's either "Invalid URL: http://::1:8244" or a Deadline Exceeded error.

@bcoe @JustinBeckwith any ideas where to turn for halp?

The grpc libraries can handle IPv6 addresses. I think the IP address you passed there is not the one you intended. The localhost address is ::1, also written as [::1]. The address [::1:8244] is an entirely different address, and I'm not even sure it's valid. If you want localhost with port 8244, the format is [::1]:8244. But if you're doing that, you probably shouldn't also pass port: 443, which appears to be conflicting
However, all of this should be unnecessary. localhost should resolve to both the IPv4 and IPv6 addresses, and grpc should automatically connect to whichever one has a running service.
In both cases, an important caveat is that grpc-js cannot handle IPv6 addresses at all on Node versions below 12.6 as a result of nodejs/node#28216.
http(s):// should be omitted from addresses passed to grpc. If you want to specify that it is a dns address, prefix it with dns://.

This servicePath and port setup is not gRPC's interface. The gRPC library accepts a single string that describes both the host and port. Some intermediate library is merging those two pieces of information to pass to gRPC, and that intermediate library is probably not sufficiently aware of IPv6 to enclose the servicePath in square brackets when that servicePath is an IPv6 address (but not otherwise).

We should add support to use IPv6 emulator, but I am not sure this is a bug. Relabeling.

For me the emulator generates this kind of address: [::1]:8052 . If I understood correctly, this should be in correct format. And yet it doesn't work either, while non-IPv6 addresses work just fine.


App just kept crashing and doing the loading screen right now.

Your issue may already be reported!
Please search on the issue tracker before creating one.
Expected Behavior

Current Behavior

Possible Solution

Steps to Reproduce (for bugs)

Context

Your Environment

Version used:
Operating System version:

NHentai link (if relevant):

Use version 2.9.4


Added functionality of sending password change email

https://auth0.com/docs/api/authentication#change-password

Already merged to main techgaun repo


PFS-47: Shared services POC

Proof of concept to prove multiple independent Go services can be built and deployed using a single go.mod file, while each sharing code and data that falls outside their package.
This POC has the following architecture:

Top level go.mod file, defining the dependency structure of the module
A user-facing service - "finance-hub" - that serves the UI
A back-end service - "finance-api" - that provides the data access and business logic for user requests
A shared package - "shared" - that contains the JSON structs that are used to transfer data between the services

To prove this worked, I did the following:

The existing /users/current route was moved so it is served by the finance-api service
The finance-api service reads from a postgres database and returns the value using the shared data structs
All services and dev dependencies have been dockerised
Both services have hot-reloading when run in dev mode and independent debugging is available (hub is on port 2345 and api is on port 5432)

Codecov Report
Attention: Patch coverage is 32.72727% with 74 lines in your changes are missing coverage. Please review.

Project coverage is 55.39%. Comparing base (8df9b5c) to head (feb9f9c).

Files
Patch %
Lines

finance-api/internal/handler.go
0.00%
41 Missing :warning:

finance-api/main.go
0.00%
25 Missing :warning:

finance-hub/internal/api/api_client.go
68.42%
4 Missing and 2 partials :warning:

finance-hub/internal/server/wrap_handler.go
50.00%
0 Missing and 1 partial :warning:

finance-hub/main.go
0.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #16      +/-   ##
==========================================
- Coverage   61.13%   55.39%   -5.74%
==========================================
  Files          22       24       +2
  Lines         633      713      +80
==========================================
+ Hits          387      395       +8
- Misses        222      292      +70
- Partials       24       26       +2

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


Bump pre-commit hooks

Codecov Report

Merging #216 (4dd7bc4) into main (e4edc59) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main      #216   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           23        23
  Lines          735       735
  Branches        84        84
=========================================
  Hits           735       735

Impacted Files
Coverage Δ

src/phantom/sized.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


'binding' $scope variables for persistence

Can it be simpler to store $scope variables?
From within a controller, I can assign the stored variable to a $scope variable like below:
if (!$scope.$storage.detailsQueue) { $scope.$storage.detailsQueue = []; }
$scope.detailsQueue = $scope.$storage.detailsQueue;
I could also use $default for initialization.
$default( { detailsQueue : [] } )
Is there already a simple, single statement, syntax I missed?
If not, maybe something like :
$storage.bind($scope,'varName',{defaultValue: 'randomValue123' ,storeName: 'customStoreKey'}); as found in https://github.com/agrublev/angularLocalStorage
The use case being to avoid editing existing code by declaratively providing immediate storage to existing variables.
Regards,

Closing this as there is no follow up details.


Use consistent format for verbs

Define verbs in a format that is consistent with the rest of the file.
Signed-off-by: Ian Stanton<EMAIL_ADDRESS>

Oh, actually, this file is generated from the helm chart now, so it needs to be done in the template.

Oh, actually, this file is generated from the helm chart now, so it needs to be done in the template.

Got it, will update


Chainsync cleanup

General cleanup of chainsync (that touches on a couple of other packages). Here's a rundown:
Major changes:

Moving crash reporting and test from chainsync to agent0

This requires some adjustments, this crash report is using postgres data structures, where it should be using a more generic data structure
After discussion, removed dead code and referenced in https://github.com/delvtech/elf-simulations/issues/479

Changing chainsync imports from within a subpackage to be relative imports. This fixes circular import issues

Need to go through other packages to match this import structure

Changing testing structure of chainsync to live close to the file it's testing, and renaming to be <file_to_be_tested>_test.py

elfpy still follows old testing structure, but the pytest config allows for both

Minor changes:

Moving chainsync base/hyperdrive to an outer db directory
Renaming postgres to db_interface
Moving hyperdrive specific transactions to hyperdrive dir, and renaming to HyperdriveTransactions
Moving get_hyperdrive_contract to ethpy
Moving helper functions for dashboard from the bin script to analysis
Adding checks to dashboard so it runs cleanly when there's no data
Removing pytest.ini in favor of defining in pyproject.toml

might as well remove the lib/chainsync/tests folder

What is the intended difference between scripts and bin?

I think it would be reasonable to just remove the db_ prefix in front of the files in the db folders. e.g. chainsync/db/base/db_schema.py --> chainsync/db/base/schema.py. Same for the ones in the db/hyperdrive folder.

What is the intended difference between scripts and bin?

bin are entrypoints to various services, e.g., from docker. scripts are one-offs, probably should be in jupytext format, and likely shouldn't really be tested or maintained, e.g., calculating previous leaderboards from trading competitions.
I don't know what the best way to keep something like scripts around, because for the time being, some of the functionality in those scripts can definitely be generalized once we get some time to look at it.


fix(Admin): do not prompt restart notification when it is STOP now

Issue:
What I did
How to test

Deploy preview ready!
Built with commit a9c71a5afe691fc7a79807fa8ca75a40dd49804e
https://deploy-preview-469--mcslite.netlify.com

Deploy preview ready!
Built with commit a9c71a5afe691fc7a79807fa8ca75a40dd49804e
https://deploy-preview-469--mcs-lite-introduction.netlify.com


SWARM-576: Create JPA example using Transaction fraction

Motivation
Provide example using JAX-RS, CDI, JPA and JTA.
Modifications
Two new modules added in jpa-jaxrs-cdi module.
Result
Gives examples including JAX-RS, CDI, JPA and JTA

Can one of the admins verify this patch?

ok to test


20019 - migrated TaskHeader to PressableWithFeedback

Details

Fixed Issues

$ #20019
PROPOSAL: #20019
Tests

[DEV] Change isTaskReport function to return always true
Log in
Enter any chat report
Click the area next to the Mark as done button. Verify behavior and the styles

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/39538890/776685e7-a582-46f9-9804-a4aacd7521d0

Mobile Web - Chrome

https://github.com/Expensify/App/assets/39538890/7d21f8d3-5b20-46f7-8c9e-c095e0f39933

Mobile Web - Safari

https://github.com/Expensify/App/assets/39538890/12e5e560-fba3-4626-b865-ae57a382fb47

Desktop

https://github.com/Expensify/App/assets/39538890/c65ae0e7-b77b-425f-9ff3-5cc8d841260e

iOS

https://github.com/Expensify/App/assets/39538890/45465740-c2dc-4368-ac09-c02676103e43

Android

https://github.com/Expensify/App/assets/39538890/58e78150-163c-420b-afa8-9bf3bfb7b5f5

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/Gonals in version: 1.3.24-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

Relaying question from Applause on the deploy checklist:

For https://github.com/Expensify/App/pull/20068 unsure if we need to execute step 1 to be able to verify this PR - @Skalakid @Gonals can you confirm please

I was able to verify this on staging, so I'm going to check if off. FWIW this UI is very unintuitive because if I hadn't looked at the code I would've had 0 idea that the task header was clickable at all, but that's not necessarily directly related to this PR.

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.24-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.24-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅


NHentai .webp Image Format Unsupported

Bug description
Nhentai.net submissions lately now include .webp galleries, which Grabber currently cannot handle (it only handles .png, .gif, and .jpg formats). Images from these galleries that are .webp cannot be loaded or downloaded by Grabber. Logs show that Grabber attempts to resolve this by changing the extension to .jpg which still fails.
Steps to reproduce

Open Grabber
Make a Search Query using Nhentai.net
Galleries that are .webp will appear in the results and can be opened but their images will not load, including the thumbnail. Downloading these galleries also does not work.

Expected behavior
.webp Galleries should also be handled by Grabber the same way as other image extensions.
Context
Error Log Snippet of Grabber trying to load gallery thumbnails with unsupported (.webp) format by replacing its extension with .jpg instead:
[12:10:00.007][Info] [nhentai.net][Json] Receiving page https://nhentai.net/api/galleries/search?page=1&sort=date&query=japanese
[12:10:00.014][Info] [nhentai.net][Json] Parsed page https://nhentai.net/api/galleries/search?page=1&sort=date&query=japanese: 25 images (25), 0 tags (167), -1 total (278650), 11146 pages (11146)
[12:10:02.075][Warning] Error loading thumbnail (Error transferring https://t.nhentai.net/galleries/3117280/thumb.undefined - server replied: ), new try with extension JPG
[12:10:02.075][Warning] Error loading thumbnail (Error transferring https://t.nhentai.net/galleries/3117322/thumb.undefined - server replied: ), new try with extension JPG
[12:10:02.075][Warning] Error loading thumbnail (Error transferring https://t.nhentai.net/galleries/3117329/thumb.undefined - server replied: ), new try with extension JPG
[12:10:03.117][Error] Error loading thumbnail (Error transferring https://t.nhentai.net/galleries/3117280/thumb.jpg - server replied: )
[12:10:03.118][Error] Error loading thumbnail (Error transferring https://t.nhentai.net/galleries/3117322/thumb.jpg - server replied: )
[12:10:03.120][Error] Error loading thumbnail (Error transferring https://t.nhentai.net/galleries/3117329/thumb.jpg - server replied: )
System information

OS: Windows 11
Grabber version: 7.12.2 (x64)

I HATE WEBP


Add elevation data to cities

Related github issue for this PR
Resolves #014
Checklist

[x] I have performed a self-review of my own code
[x] I added comments, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation README.md
[x] I added tests that prove my fix is effective or that my feature works
[x] bundle exec rake passes locally
[x] rubocop gives no error locally
[ ] My PR title includes "WIP" or is draft PR if work is in progress

Description

Type of change

New feature (non-breaking change which adds functionality)

Which tests are written for this PR? And what are the expected results for these tests?

Codecov Report

Merging #115 (a947565) into master (a9abcb7) will increase coverage by 1.92%.
The diff coverage is 99.18%.

@@            Coverage Diff             @@
##           master     #115      +/-   ##
==========================================
+ Coverage   97.76%   99.69%   +1.92%
==========================================
  Files          12       14       +2
  Lines         538      646     +108
==========================================
+ Hits          526      644     +118
+ Misses         12        2      -10

Impacted Files
Coverage Δ

lib/turkish_cities/helpers/decomposer_helper.rb
98.52% <87.50%> (-1.48%)
:arrow_down:

lib/turkish_cities.rb
100.00% <100.00%> (+23.07%)
:arrow_up:

lib/turkish_cities/elevation.rb
100.00% <100.00%> (ø)

lib/turkish_cities/population.rb
100.00% <100.00%> (+5.88%)
:arrow_up:

spec/classes/elevation_spec.rb
100.00% <100.00%> (ø)

spec/classes/population_spec.rb
100.00% <100.00%> (ø)

spec/turkish_cities_spec.rb
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Support runtime api for non isolated function scheduling

reduced to high because isolate infer support is not there yet and therefor stdlib can move yet.


Fix broken builds

Builds are broken because OMNIBUS_WINDOWS_ARCH is not set,
so ENV[OMNIBUS_WINDOWS_ARCH] returns nil

:shipit:

good catch, ill take this time to fix that


Dev

Codecov Report
Base: 43.75% // Head: 88.77% // Increases project coverage by +45.02% :tada:

Coverage data is based on head (47c93f6) compared to base (eb273b6).
Patch coverage: 82.22% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##             main       #9       +/-   ##
===========================================
+ Coverage   43.75%   88.77%   +45.02%
===========================================
  Files           5        5
  Lines         208      285       +77
===========================================
+ Hits           91      253      +162
+ Misses        117       32       -85

Impacted Files
Coverage Δ

src/predict.jl
80.00% <0.00%> (+30.00%)
:arrow_up:

src/structs.jl
68.96% <64.00%> (-31.04%)
:arrow_down:

src/metric.jl
84.61% <84.00%> (+69.80%)
:arrow_up:

src/fit.jl
94.00% <100.00%> (ø)

src/loss.jl
95.57% <100.00%> (+70.79%)
:arrow_up:

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

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

Codecov Report
Base: 43.75% // Head: 88.77% // Increases project coverage by +45.02% :tada:

Coverage data is based on head (61ee26f) compared to base (eb273b6).
Patch coverage: 82.22% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##             main       #9       +/-   ##
===========================================
+ Coverage   43.75%   88.77%   +45.02%
===========================================
  Files           5        5
  Lines         208      285       +77
===========================================
+ Hits           91      253      +162
+ Misses        117       32       -85

Impacted Files
Coverage Δ

src/predict.jl
80.00% <0.00%> (+30.00%)
:arrow_up:

src/structs.jl
68.96% <64.00%> (-31.04%)
:arrow_down:

src/metric.jl
84.61% <84.00%> (+69.80%)
:arrow_up:

src/fit.jl
94.00% <100.00%> (ø)

src/loss.jl
95.57% <100.00%> (+70.79%)
:arrow_up:

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

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


mdns advertising only supports WebSite (_http)

Mdns advertising seems to only support the _http service.
Code in example:
ESP_ERROR_CHECK( mdns_service_add(mdns, "_arduino", "_tcp", 3232) );
ESP_ERROR_CHECK( mdns_service_txt_set(mdns, "_arduino", "_tcp", 4, arduTxtData) );
ESP_ERROR_CHECK( mdns_service_add(mdns, "_http", "_tcp", 80) );
ESP_ERROR_CHECK( mdns_service_instance_set(mdns, "_http", "_tcp", "ESP32 WebServer") );
ESP_ERROR_CHECK( mdns_service_add(mdns, "_smb", "_tcp", 445) );
This should mean we get more then one service shown? I tried with avahi on linux:
=   wlo1 IPv4 ESP32 WebServer                               Web Site             local
hostname = [esp32-mdns.local]
address = [<IP_ADDRESS>]
port = [80]
txt = []
only the WebSite ("_http") is shown. I tried to set something different then "_http" but it was not shown.

@johsely1234 PR #340 made by @negativekelvin has been merged into master, so avahi should now be able to discover all services.


bootstrap-wysihtml5 crashes

I've installed bootstrap-wysihtml5-rails gem just as it described here
After it I got this message and the same for js
Asset filtered out and will not be served: add Rails.application.config.assets.precompile += %w( bootstrap-wysihtml5/index.css ) to config/initializers/assets.rb and restart your server
I added it and got another message
Asset was linked to from an alias rather than its exact path. Alias resolving may not be available in production. Use "bootstrap-wysihtml5/index.css" instead of "bootstrap-wysihtml5.css"
Why did I get it while I'm working in development? Furthermore my assets.rb looks fine:
Rails.application.config.assets.precompile += %w( bootstrap-wysihtml5/index.css )
Rails.application.config.assets.precompile += %w( bootstrap-wysihtml5/index.js )
# Be sure to restart your server when you modify this file.

# Version of your assets, change this if you want to expire all your assets.
Rails.application.config.assets.version = '1.0'

# Add additional assets to the asset load path
# Rails.application.config.assets.paths << Emoji.images_path

# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )

what's wrong?

Dup of #2307, please try the workaround discussed there.


Use QTextEdit for input instead of file

AoC inputs are very simple and can easily be copied and pasted without any filesystem usage. Try to use QTextEdit as originally proposed

It should work now as the "ISSUE" branch with the functionality required was merged into the main branch


Setting layers multiple times destroys tooltip functionality

I'm setting layers prop with interactions multiple times, after each relevant user interaction. Tooltip is defined with eox-map-tooltip element. The first time the tooltip shows, but subsequently, no tooltip is shown and the tooltip has even vanished from the DOM.
Possibly, this line does not work when setting interactions multiple times:
https://github.com/EOX-A/EOxElements/blob/00d7af5efa6bce88912c701e8dd777b9f8c794ec/elements/map/src/select.ts#L53
I've tried with, but I was not successful so far. My insight is limited, however.
    this.tooltip =
      this.eoxMap.querySelector("eox-map-tooltip") ||
      this.eoxMap.shadowRoot.querySelector("eox-map-tooltip") ||
      options.overlay?.element;

Could you specify how it was not successful for you?

Probably because it was Friday 5pm before Christmas holidays. :hand_over_mouth:


Added sentence on container support

Added a sentence outlining that Personalizer supports containers which is useful in high throughput and low latency requirements. This was not mentioned anywhere and some customers were self-selecting out as a result.

@bahree : Thanks for your contribution! The author(s) have been notified to review your proposed change.


investigate tooling scalability in the presence of barrel files

Barrel files are files which repackage multiple libraries into a single library by exporting them. https://github.com/flutter/flutter/blob/master/packages/flutter/lib/material.dart is a good example of a barrel file. Developers usually introduce barrel files to streamline their import management.
Barrel files have an obvious draw back they introduce false dependency edges between libraries. Consider for example the code below:
// a.dart
library a;

// b.dart
library b;

// c.dart
library c;

export 'a.dart';
export 'b.dart';

// d.dart
library d;

import 'c.dart';

// only use things from a.dart

In this situation when developer changes b.dart an incremental tooling which simply naively follows import edges will end up invalidating both c.dart and d.dart.
In the graph with many libraries this can have disastrous cascading consequences.
There is some evidence coming from users that eradicating barrel files considerably reduce reanalysis times for them. It would be nice to analyze this problem and understand what we can do to mitigate it.
This is both analyzer and CFE issue.

/cc @jensjoha @scheglov

Any update on this please @mraleph

I would like to add that personally, I've been observing this issue for quite some time and that there is a direct link between using barrel files and performance.
Context:
I'm working on a project which is fairly compartmentalised.
The structure of the project can roughly be described as:
- feature1/
  - subfeature/
    - file.dart
  - subfeature.dart - exports all from subfeature/*
- feature2/...

Other features export another's feature export file.
This works really well for organising code and initially when the project was small the analyzer performance was great.
Now after a few 1000s of files later, the performance can get quite bad (+10s for completions) when editing files that are imported by many other files.
Sometimes, when I'm editing a file that is directly or transitively used by many other libraries, the performance gets so bad, I just uncomment it's export definition from the barrel file, and the analyzer's responses are lightning fast again.

This issue has got me thinking...
Would it be possible for the analyzer to be made smart enough to detect boundaries of effect and only analyze the code that would be directly affected by the change?
For instance, suppose we have:
class A {
  void doB() {
    print('C');
  }
}

If I edit the body of doB for instance changeprint('C'); to print('C');, the analyzer should only have to reanalyze the body of doB since nothing outside the body is affected by the change.
Similarly, if I edit a private class, even add methods to it, the only code affected would be that of the library.
@scheglov Do you perhaps know, does the analyzer do any of this?

When you edit just a method body, the analyzer:

Discards LibraryElements for this library, and any library that depends on it (might be this 1000 files in a single library cycle). This is fast (breaking is faster than building).
Computes the API signature of the file. Because we postulated that only the method body changes, we know that the API signature is the same in this case.
We know that we need to analyze the changed file (with this method body). We load LibraryElement for it. Because all API signatures are the same, we reuse cached serialized LibraryElement (the summary). But deserializing costs something. This has low cost, we load mostly just header to know which libraries we have in the summary.
We analyze the whole modified file. During analysis we lazily create elements from summaries. This usually has the medium cost, we analyze just one file, presumably not too big, and actually access not too many libraries from the summaries. But we can easily construct a high cost example.
Other files are not reanalyzed, because the API signatures are the same, and so combined with the code signatures of these other files, we see that diagnostics would be the same, so we just skip.
For completion we actually need to deserialize all elements. This might be high cost.

We don't have ability to analyze individual method bodies, only whole files.
Although we do this for completion, but in these cases we skip computing diagnostics.
But when you edit a class, even private, then API signatures do change, and this causes a lot of work to relink all libraries, and reanalyze all files that depend on the changed file.
Optimizations are not impossible, but not trivial to implement and keep robust.
I suspect that this will require more effort than we can afford right now.

Thank you for the explanation.

@scheglov If it helps with diagnosing the root cause, I was able to write up a reproducer for this issue.
import 'dart:io';

const _core = 'core.dart';

final _folders = <String>[
  ...'abcdefghijklmnop'.split(''),
];
final _subfolders = [
  ...'qrstuvwxyz'.split(''),
];
final _filenames = [
  for (var i = 0; i < 10; i++) 'f$i',
];

void main(List<String> args) async {
  for (var folder in _folders) {
    final batch = <Future<void>>[];
    for (var subfolder in _subfolders) {
      for (var file in _filenames) {
        batch.add(putFile(folder, subfolder, file));
      }
      batch.add(_writeToFile(_rooted([folder, subfolder]) + '.dart', (sink) {
        sink.writeExportFileContents(libraries: _filenames.map((folder) {
          return '$subfolder/$folder.dart';
        }));
      }));
    }
    batch.add(_writeToFile(_rooted(['$folder.dart']), (sink) {
      sink.writeExportFileContents(libraries: _subfolders.map((subfolder) {
        return '$folder/$subfolder.dart';
      }));
    }));
    await Future.wait(batch);
  }

  await _writeToFile(_rooted([_core]), (sink) {
    sink.writeCoreFileContents(folders: _folders);
  });
}

Future<void> putFile(String folder, String subfolder, String file) async {
  final baseClass = '${folder.ucFirst}${subfolder.ucFirst}${file.ucFirst}';
  final parts = <String, String>{
    'part1': 'Impl1 implements ${baseClass}Source',
    'part2': 'Impl2 implements ${baseClass}Source',
    'part3': 'Impl3 implements ${baseClass}Source',
  };
  final fileBase = _rooted([folder, subfolder, file]);

  final lib = '$file.dart';
  await Future.wait([
    _writeToFile(fileBase + '.dart', (write) {
      write.writeFileContents(
        baseClass: baseClass,
        filename: file,
        parts: parts.keys,
      );
    }),
    for (var MapEntry(key: partName, value: suffix) in parts.entries)
      _writeToFile(fileBase + '.part.$partName.dart', (write) {
        write.writePartFileContents(
          library: lib,
          className: '$baseClass$suffix',
        );
      }),
  ]);
}

Future<void> _writeToFile(
  String filePath,
  void Function(StringSink sink) write,
) async {
  final file = File(filePath);
  if (!await file.parent.exists()) await file.parent.create(recursive: true);

  final sink = file.openWrite();
  write(sink);
  await sink.flush();
  await sink.close();
}

extension on StringSink {
  void writeFileContents({
    required String baseClass,
    required String filename,
    required Iterable<String> parts,
  }) {
    writeln('import "../../core.dart";');
    writeln();
    for (var partName in parts) {
      writeln('part "$filename.part.$partName.dart";');
    }
    writeln();
    writeln('class $baseClass {');
    writeln('  static const useOfCore = Core.hello;');
    writeln('}');
    writeln('class ${baseClass}Source implements $baseClass {}');
  }

  void writePartFileContents({
    required String library,
    required String className,
  }) {
    writeln('part of "$library";');
    writeln();
    writeln('class $className {}');
  }

  void writeExportFileContents({
    required Iterable<String> libraries,
  }) {
    for (var file in libraries) {
      writeln('export "$file";');
    }
  }

  void writeCoreFileContents({
    required List<String> folders,
  }) {
    for (var folder in folders) {
      writeln('export "$folder.dart";');
    }
    writeln('class Core {');
    writeln('  static const hello = "Hello, World!";');
    writeln('}');
  }
}

String _rooted(List<String> parts) {
  return (['lib']).followedBy(parts).join(Platform.pathSeparator);
}

extension on String {
  String get ucFirst {
    return this[0].toUpperCase() + this.substring(1);
  }
}

Steps:

Copy the provided code to a new project root, for example, name the file generate.dart
Run dart run generate.dart from the root of the project. (This will generate the necessary source code)
Open lib/a/z/f0.dart
Try changing

class AZF0 {
  static const useOfCore = Core.hello;
}

To
class AZF0 {
  static const useOfCore = Core.hello + Core.hello; // or AZF3.useOfCore
}

Observe code completion being slow.
Go to lib/a/z.dart
Comment out: export "z/f0.dart";
Go back to lib/a/z/f0.dart and attempt to perform the same edits as before.
Observe completions being fast again.

While this example is contrived, the dependencies between different libraries and the general structure closely resemble that of the real-life project I'm working on.
One other note I'd like to add is that in this example (and our live project) we have a circular dependency. There is a core.dart file which exports all files and is subsequently used by the leaf libraries. This might seem like it wouldn't happen in real world.
However, in our project, we have a genuine situation like this. We have code generators that pull specific configurations from different parts of the project and collect it in one library. That library is then also used by other parts of the app. Which probably leads to a certain file transitively importing most of the application simply because it uses the joint configuration.
I hope this helps.

Thank you for the code that generates the test case.
The reason we don't fix this is not that we don't know about the issue.
But implementing incremental resolution will require more effort than we can afford right now.

OK. So, this isn't a case of:

The analyzer has a small bug in resolving libraries., but rather
The way the analyzer resolves libraries is suboptimal.,

The thing about the test case that made it seem like there could be a simple answer is the fact if I removed export "z/f0.dart"; (the file I was editing), the performance was restored.
I hope at least the additional test case helps.
Sorry for the noise.

Yes, the way the analyzer works is not performant in this case.
The analyzer builds element models for Dart libraries.
But it does it for whole library cycles, where a single library cycles consists of libraries that import or export each other.
And when you change any file in this library cycle, the whole cycle should be linked.
When you remove export, this probably moves z/f0.dart out of the library cycle, so editing it does not invalidate the (large) library cycle, and so it is much faster.

Wouldn't removing z/f0.dart from lib/a/z.dart still cause a computation of a large library cycle?

It makes z/f0.dart no longer a (transitive) dependency of the core.dart file, which removes it from the cycle.
The issue really is not barrel files themselves, it is barrel files being imported by the libraries they export. That creates a cycle, because now every library depends on every other library.
If you removed the core.dart import from the top of the generated z/fx.dart files, it would also fix the issue.

Removing export of z/f0.dart will cause computation of a large library cycle, once.
This will cost you something, but at least after that typing in z/f0.dart during an attempt to get code completion will not immediately invalidate this same library cycle and cause computation during code completion.

To summarise:
Currently, when editing a library two types of analysis is going on:

Analysis of libraries the current library uses (this operation is fast)
Analysis of libraries that use the current library (this operation may be slow
depending on how many libraries use it)

Analysis 1. provides the information required for completions and correctness checks in the library the user is writing.
Analysis 2. informs the user of general program correctness.
However, only analysis 1. actually helps the developer when writing out a piece of library code.
Analysis 2. ensures the entire program is correct but while editing, the developer might not care about this as much.
For instance, if I'm modifying a class, I'm not really thinking about all the places this class is being used.
I'm just focused on writing out the code I need to write. And only after writing everything out, I'd like to know how my changes affect the program as a whole.
If this summary is correct (both technical and what developers value), it seems, the analyzer might be doing a lot of work for results that don't really help the programmer write new code. (If I'm editing a file and not looking at all the errors being highlighted in other files, I'm not leveraging the analyzer's full potential.)
So if we could delay analysis 2. until the user finishes, we might be able to make the editing as a whole smoother, even if the actual project wide analysis is still suboptimal for cases of large library cycles.

You are right that when you edit a library, the performance of editing (completion in particular) should not depend on how many uses of this library there are.
I have a couple of comments about this.

The hypothesis that "Analysis of libraries the current library uses" is fast might be false. I can imagine that if the current library is a part of the large library cycle, then in order to get the element model for this library cycle, so that we can resolve the current library, we need to parse and link all the libraries of this library cycle. We don't resolve method bodies, but still it is not necessary fast.

It is possible that because of the way scheduling work inside the Dart analysis server is implemented, we can pick up another, non-priority operation, e.g. analysis of a user of the current library after we finished with processing the current library. The user in the IDE might type one character, get completion, we start something else but heavy, the user types again, we don't respond because we are busy. Dart has only single thread of execution. We have an idea to push all non-priority work into a separate isolate, but again it is all limited by the availability of hands to do it.

Based on comments from @scheglov and @jakemac53, I was able to refractor our code base such that analyzer performance was greatly improved. Thank you for giving me the missing pieces and helping me solve our problem.
The key was in breaking the self-referencing library cycle.
In our case, this was achieved by moving configurations that pulled in most of the application aside and inject them into the main program rather than statically reference them across the application. (This means we provide the configuration to the application in main(). This file is never used by other parts of the app so it's ok that it pulls in everything.)
We got to keep all the barrel files and the desired structure, we simply needed to shift some imports around.
Some libraries that many other libraries depend on still aren't as performant to edit as I'd like, however, the performance is miles better than what it was at the start of the refractor. (And in these cases I can still use the export comment out trick and the full performance is back again)

Note that this issue is much more exaggerated when editing a macro - auto completion in the macro itself is always scheduled behind the re-compilation and re-application of the macro.

I have to question how useful it is to a macro author to have the macro run while they're in the process of editing it. What's the motivation for that decision?

I don't know how to fix this other then somehow changing the scheduler of tasks in the analysis server such that events could have some sort of priority ...

Currently there isn't any explicit scheduler, the analysis server just processes requests as they arrive. This needs to change for other reasons, and the scheduler that we've designed ought to be able to handle at least part of this proposal.
The ability for lower priority tasks to yield to higher priority tasks is an interesting idea, but will also require some work on the "handlers" (the objects that perform the tasks). Fortunately, supporting some kind of yielding would be an incremental piece on top of the work we're already planning to do, so we can return to this issue after there's a scheduler in place.
@keertip

When making a macro it is very handy to have the augmentation open for some library where the macro is applied, so you can see the actual output changing as you update the macro.

Absolutely! But not when the code is incomplete and the results are known to not be interesting. Seems like it would be a better UX if there were a way to signal when it's useful to rerun the macro. I'm not sure what the right signal would be, but it sounds like compiling and executing the code less often might improve completion performance, which might produce a better UX overall.

Quite possibly even just only re-compiling/applying macros on save, instead of for each character typed, would be enough. If that is feasible to do.

We do get notifications when a file is saved, but many IDEs, including IntelliJ and VS Code, have an auto-save feature that makes 'saved' a less interesting signal.

Depends on how long the delay is... honestly even a very short delay here would dramatically improve the situation, so that if you are actively typing on a line you would get a more instant response for auto complete and such. Once you stop typing you are less likely to notice if the analyzer is doing a bunch of other work.
It isn't a perfect solution to be sure, but should be better than the status quo.

We could certainly try it and see whether it's enough of an improvement. (After we have the ability to schedule work, of course.)


Automatic dynamic channel provisioning and maintenance

Currently all channel creation is a manual process that must be executed by users either on the command line or directly through a native program which drives the RPC interface. An alternative op-tin mode would be created wherein lnd examines the known channel graph from it's PoV, and using a set of heuristics opens up a series of channels that are deemed to be locally advantageous for the driving node and also possibly channels that tend the global channel graph to a more optimal state.
This mode should be added as new command line parameter, and governed by a set of policies set by the user. At a glance, two such possible policies come to mind:

The user states that N% of their available funds should be allocated towards channels at all times.
The users states that K channels funded with at-least P satoshis should remain funded at all times.

In order to complete this issue a new sub-system should be added to the daemon which automatically establishes channels in accordance with the policies defined above using heuristics guided by preferential attachment.
Steps To Completion

[ ] Add new configuration parameters which allow users to toggle auto channel creation governed by one of the policies described above, or one that is entirely new.
[ ] Create a new sub-system that is aware of the ChannelGraph the WalletController, and is able to receive BlockEpoch notifications.

The ChannelGraph will be used to traverse the known graph from the PoV of the driving lnd node to determine which channels to whom should be opened. A set of heuristics which take into account a variant of preferential attachment should be implemented.
The ChainNotififer will be used to be notified upon the attachment of a new block to the end of the main chain. Each time a new block is attached, the wallet's balance may have increased, which may trigger the necessary conditions to open another channel.
Finally, the WalletController will be used to obtain a TransactionSubcription which will allow it to receive notifications each time the wallet's balance changes.

[ ] The LightningNode struct contains the information necessary to employ the proposed set of heusrtics to figure out if a channel should be opened to a particular node or not. If a node has the Addresses struct populated, then this indicates that they've signalled that they wish to accept inbound connection, and therefore channels.

The ForEachChannel iterator on the node struct can be used to traverse the outbound edges of the node to figure out things like it's degree and total channel capitalization

[ ] The daemon should also dynamically maintain the set of channels according to the governing policy and set of heuristics. Meaning if a channel is closed, then it's possible that the sub-system attempts to re-open a new set of channels. The sub-system can use the TopologyClient can be used to receive such notifications.

This has been implemented by the autopilot package. Closing.


docs: add support details

LGTM. Any cons for giving a timeline for PR reviews? Say we will aim to review PRs within 3 days


fix: idk why that comment was there

The calendar comment for some reason copied the exact same text as the Chip jsdoc so I changed it to a more accurate one. Hope that helps!


Add support for --coverage_report equivalent in JUnit integration

I'd love to be able to run fuzz tests more easily via the JUnit integration, but still receive a coverage report like the one that the binary is able to generate.
In the future I could also see myself needing equivalents for --coverage_dump, -merge, and -runs so I'm not sure if a one-to-one mapping to annotation parameters is ideal, or if something more generic (e.g. a "libFuzzerArgs" parameter and/or a "args" parameter) would be better.

With IntelliJ Ultimate, you can actually just run the regression test "with coverage" (option on the play button) and you will get a report right in the IDE covering all corpus entries.
If you are using a different IDE, how are you usually determining coverage for your test suites? Ideally, that would cover @FuzzTests too and we wouldn't need to introduce special handling for this important use case.

Yep, makes sense. Any thoughts on future plans for e.g. -merge or -runs?

I think that -runs makes sense to expose on @FuzzTest, like we do with maxDuration.
-merge is more difficult since that involves multiple corpora. What usecase for -merge do you have in mind?

Makes sense. I've been using -merge to save off different corpus directories at different stages and then merge them back into one corpus later on. I guess I was wondering more generally about all the LibFuzzer single-dash options, which the CLI docs seem to punt as "just go read the LibFuzzer docs and do whatever you want", so I was wondering if the same approach was planned here... -merge being the main place where I've taken advantage of this flexibility (so far).

I don't have a fully fleshed out plan yet for how to deal with these "advanced" libFuzzer flags. I would like to keep them out of the @FuzzTest annotation, which should offer a friendly UX to users new to fuzzing. Instead, I'm thinking of making Jazzer available as a standalone JAR used from the CLI and/or making it possible to tune libFuzzer arguments via system properties.
I will close this issue as "not planned" for now since we will delegate coverage functionality to other tools that we intend to compose well with (e.g. JaCoCo), but will create a separate issue to track your -merge usecase.


CSharp Client enum not correctly generated

Hi,
I've a OpenAPI (swagger 2.0) specification that specifies an enum like this:
 "day_of_week": {
          "title": "Day of week",
          "type": "integer",
          "enum": [
            "any",
            "monday",
            "tuesday",
            "wednesday",
            "thursday",
            "friday",
            "saturday",
            "sunday"
          ],
          "default": "any"
}

The CSharp client enum is generated like this:
    [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "<IP_ADDRESS> (NJsonSchema v<IP_ADDRESS> (Newtonsoft.Json v<IP_ADDRESS>))")]
    public enum CreateScheduleWebScanDay_of_week
    {

        _any = any,

        _monday = monday,

        _tuesday = tuesday,

        _wednesday = wednesday,

        _thursday = thursday,

        _friday = friday,

        _saturday = saturday,

        _sunday = sunday,

    }

This gives the following error foreach property of the enum:
Error	CS0103	The name 'saturday' does not exist in the current context
This is quite obvious, but I would except the output to be generated like this:

I think the problem is your enum has "type": "integer", but the values are strings. Try changing the type to string, or moving the enum names to "x-enumNames": [...] and putting the integer values to the "enum"-array.

@ovska I noticed that too. The specification is from a thrid party, so I will let them take a look.


Change fingerprint to return fingerprint of cert, not parent issuer cert.

Fix for #10
Returns the fingerprint of the cert of the host name we are checking, not the cert's issuer fingerprint.
This is useful for SAN certs with more than 1 domain per cert. The results can be grouped on fingerprint since technically they are all the same cert.
Updated readme to include fingerprint information.
I did not add fingerprint to the command line interface since I feel that info is not useful there.
Here is an example of two hostnames that are in the same cert.

I'm tired of seeing this easy fix sitting in my created PR list. Closing


Love your work!

Hi @JLospinoso,
Really love, love, love what you're building here and all your work. We saw your information come in on this project a while ago and we're just now finalizing the announce for Mattermost 3.2 where we talk about the top projects that have come up since the last release.
We're kind of embarrassed to say this, and weren't sure how to approach you, but the term "matterbot" is something that we've been planning to use in the product itself.
While we want to let everyone know about what you're doing and get this project out to our community, we're worried about creating confusion when there's a matterbot that people interact with in the product.
That said, you and other folks in the community area out ahead of us on bots, by far.
I wondered if you'd be open to joining our integrations channel to discuss the best way to tell people about your work, and have people building on it, while avoiding potential confusion around naming?
Sorry it took so long to reach out, we just weren't sure how to approach you...

Done!


Replace phonegap-plugin-apploader with phonegap-plugin-contentsync

And modify as necessary.

Using content-sync plugin as is, there's no way to return to the PGB home screen. Could be solved with phonegap/phonegap-plugin-contentsync#144.


Fix crash when attempting to skip dialogue

If I press the continue key- say F for example- while the dialogue is still going, it crashes Roblox entirely. Not just in Studio, but on the actual platform as well.
When I click the GUI it works fine. It's the buttons that are causing problems.
I made a brand new project in Studio and attempted it without changing a single thing within the settings and code- it still crashed.

### Completion criteria for developers
- [ ] Add kitfulnines to the Acknowledgements list

Thanks for reporting this.

Unintentionally fixed the bug when developing text effects lol.
Not really sure what caused the problem.

I'll close #80 when I publish the fix


Installation of gcc 10 on python:3.8-slim started failing recently

I have a Dockerfile like this:
FROM python:3.8-slim

RUN echo 'deb http://deb.debian.org/debian testing main' >> /etc/apt/sources.list \
    && apt-get update && apt-get install --no-install-recommends -y gcc g++
...

I used this docker file to install gcc 10 to my build environment. This worked fine until recently (I have a nightly build that started failing since yesterday).
The error messages are:
Setting up g++ (4:10.2.0-1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Processing triggers for libc-bin (2.31-4) ...
E: Could not configure 'libc6:amd64'.
E: Could not perform immediate configuration on 'libnss-nis:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)

Is there any work around for this?

This is definitely due to mixing buster and bullseye (testing) -- you might have luck with something like https://unix.stackexchange.com/a/592703/153467, but your error message is a bit different, so this will likely require a slightly different solution (perhaps some other package that has to be pre-upgraded before you can install what you're actually after).

I made it working by adding -o APT::Immediate-Configure=false. So the new command is
RUN echo 'deb http://deb.debian.org/debian testing main' >> /etc/apt/sources.list \
    apt-get install -y --no-install-recommends -o APT::Immediate-Configure=false gcc g++

It just stoke me that it worked perfectly fine before I pulled the most recent python:3.8-slim. So I am just reporting this in case there was some change that had caused this. Thank you for your help!

Glad you got this figured out -- there isn't really anything more we can do here, so I'm going to close. :+1:


[enhancement] implementation - Etes regression

Motivación y Contexto
@valeserber

@valeserber
fijate que quedo subido la carpeta build de los samples que habíamos eliminado, acá se ve que hubo un add sin querer de la carpeta /build de los samples.

Codecov Report

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

@@            Coverage Diff             @@
##             develop    #1019   +/-   ##
==========================================
  Coverage           ?   28.28%
==========================================
  Files              ?      299
  Lines              ?    14592
  Branches           ?     1333
==========================================
  Hits               ?     4128
  Misses             ?     9939
  Partials           ?      525

Continue to review full report at Codecov.

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


Is this a new version that integrate Kubernetes with Hyper?

I thought it would be very promising to integrate kubernetes with hyper, and I found this project. But there is no documents in Hyper.sh and in this project. So will you please add some information about your plan

@scorpionis yes, we are preparing the documents and will show the first demo in the coming OpenStack summit in tokyo in this month.

@scorpionis Thanks for interest, doc is at https://github.com/hyperhq/hypernetes-book

thank you gues for your reply, im gonna try this


Show previous meetings on the Rest Reivew main page

Hi @markweitzel, thanks for the suggestion.
Actually, right now there's an implementation for this. By default, previous meetings will be shown in the list. Here's how it looks like:

Would it be helpful to add the filter like in the other meeting types, and only show them when the user turns on the option?

Perfect. I've not seen that yet in the dev environment--but could have missed it.


All fields become required if required key is not present on object

All all gereated fields should be optional not required
Schema
components->schema
"FindAllStudentsDto": {
                "type": "object",
                "properties": {
                    "page": {
                        "type": "number",
                        "default": 1
                    },
                    "from": {
                        "type": "string"
                    },
                    "to": {
                        "type": "string"
                    },
                    "limit": {
                        "type": "number",
                        "default": 50
                    },
                    "name": {
                        "type": "string"
                    },
                    "departments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/IdDto"
                        }
                    },
                    "subjects": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/IdDto"
                        }
                    },
                    "classGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/IdDto"
                        }
                    },
                    "yearGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/IdDto"
                        }
                    },
                    "formGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/IdDto"
                        }
                    },
                    "ids": {
                        "type": "array",
                        "items": {
                            "type": "number"
                        }
                    }
                }
            },

Generated Code
import 'package:json_annotation/json_annotation.dart';

import 'id_dto.dart';

part 'find_all_students_dto.g.dart';

@JsonSerializable()
class FindAllStudentsDto {
  const FindAllStudentsDto({
    required this.from,
    required this.to,
    required this.name,
    required this.departments,
    required this.subjects,
    required this.classGroups,
    required this.yearGroups,
    required this.formGroups,
    required this.ids,
    required this.withExamAndHomeworkStats,
    this.page = 1,
    this.limit = 50,
  });

  factory FindAllStudentsDto.fromJson(Map<String, Object?> json) => _$FindAllStudentsDtoFromJson(json);

  final String from;
  final String to;
  final num page;
  final num limit;
  final String name;
  final List<IdDto> departments;
  final List<IdDto> subjects;
  final List<IdDto> classGroups;
  final List<IdDto> yearGroups;
  final List<IdDto> formGroups;
  final List<num> ids;
  final bool withExamAndHomeworkStats;

  Map<String, Object?> toJson() => _$FindAllStudentsDtoToJson(this);
}

This is the correct behavior, because it has the nullable field set.

@Carapacik Mate, you might be not correct here, as per openapi standards
If both nullable and required are not specified in the schema, it means that:

Required: The field is not required by default. This means that when a request is made, the field does not necessarily have to be present in the request body.

Nullable: The field is not nullable by default. This means that the field, if provided, should not be null.

During network call if the key is marked required it should be always present, but if key is nullable that means key can be still present with null value
"name": {
    "type": "string",
    "nullable": true
}

then
Then, it is acceptable to have "name": null in your API request.

That is, you propose to do the required false and the nullable true?

yes. in effect
Mate, a field can be nullable and required at the same time, so its subtle. But as per openapi standard, during request key can be not passed and server should handle that unless its marked required. In that case error should be thrown.

I'll think about it in the next few days.


System dependencies

The python dependency mpi4py is either in requirements.txt or is needed by one of the other packages used, but the system wide Message Passing Interface requirements may not be there.
on Mac this is solved by doing brew install mpich before the install
on debian/linux this is solved by doing sudo apt-get install libopenmpi-dev before the install
It would be nice to automate this process for people installing the package via pypi - (or maybe you already have).

This is solved by adding it to the documentation because it's not supported to create an automatic solution with PyPi as far as I could see. The commands are also added to tests where it is necessary. It is the PyReplayBg dependency that requires the mpi4py, under the heavy dependencies.


SubAccount type is never technically specified

I would think that SubAccount should actually be a type in the standard. I imagine it is type SubAccount = nat; or something similar, but I'm not sure.

A subaccount is an arbitrary 32-byte byte array.
type SubAccount = blob;

Fixed: https://github.com/dfinity/ICRC-1/pull/26


Consume Muxer API

Provides example consumption for https://github.com/pulumi/pulumi-terraform-bridge/pull/880.

-get-provider-info flag stopped working which would be blocker to ship this. It should return muxed MarshallableProviderInfo just like the GetSchema call.

t0yv0@Antons-MacBook-Pro> bin/pulumi-resource-aws
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xb5f3d92]

goroutine 1 [running]:
github.com/pulumi/pulumi-terraform-bridge/pf/tfbridge.MainWithMuxer.func1.2(0xc002cbe9f8?)
        /Users/t0yv0/code/pulumi-terraform-bridge/pf/tfbridge/main.go:120 +0x52
github.com/pulumi/pulumi-terraform-bridge/x/muxer.Main.Server({{0xc0021e78a0, 0x2, 0x2}, {{0xc002fc0bd0, 0xc0        /Users/t0yv0/code/pulumi-terraform-bridge/x/muxer/main.go:127 +0xf8
github.com/pulumi/pulumi-terraform-bridge/pf/tfbridge.MainWithMuxer.func1(0xc002f1d2c0?)
        /Users/t0yv0/code/pulumi-terraform-bridge/pf/tfbridge/main.go:123 +0x5ee
github.com/pulumi/pulumi/pkg/v3/resource/provider.Main.func2(0xc0007ee000)
        /Users/t0yv0/go/pkg/mod/github.com/pulumi/pulumi/pkg/v3@v3.59.0/resource/provider/main.go:79 +0x2d
github.com/pulumi/pulumi/sdk/v3/go/common/util/rpcutil.serveWithOptions({0x0, 0xc0043ca330, 0x0, {0xc00240d3a        /Users/t0yv0/go/pkg/mod/github.com/pulumi/pulumi/sdk/v3@v3.59.0/go/common/util/rpcutil/serve.go:93 +0github.com/pulumi/pulumi/sdk/v3/go/common/util/rpcutil.ServeWithOptions(...)
        /Users/t0yv0/go/pkg/mod/github.com/pulumi/pulumi/sdk/v3@v3.59.0/go/common/util/rpcutil/serve.go:72
github.com/pulumi/pulumi/pkg/v3/resource/provider.Main({0xeb67b41, 0x3}, 0xc002b8e090)
        /Users/t0yv0/go/pkg/mod/github.com/pulumi/pulumi/pkg/v3@v3.59.0/resource/provider/main.go:76 +0x432
github.com/pulumi/pulumi-terraform-bridge/pf/tfbridge.MainWithMuxer({0xffb5e60?, 0xc00011e000}, {0xeb67b41, 0        /Users/t0yv0/code/pulumi-terraform-bridge/pf/tfbridge/main.go:108 +0x49f
main.main()
        /Users/t0yv0/code/pulumi-aws/provider/cmd/pulumi-resource-aws/main.go:32 +0x126

Didn't get to checking if renames get propagated into the PF branch looks like there's some simpler snafu getting in the way of this provider starting.

I've got a bit of progress after fixing the info capture.
error: fatal: failed to Init GRPC to register RPC handlers: failed to create resource provider: Failed to unmarshal
BridgeMetadata: unexpected end of JSON input

Looks like it's a poor error message - basically this is the var renames tfgen.Renames that it's trying to deserialize and it's not succeeding.

Closing in favor of https://github.com/pulumi/pulumi-aws/pull/2464.


Producer create method blocked forever

Describe the bug
When we call the create method from the producer and there are no partitions available in the broker, the create method never returns and the thread blocks trying to connect. The connectionTimeout does not seem to help. The only option is to restart the entire JVM
To Reproduce
Steps to reproduce the behavior:
Try to create a producer on a broker with insufficient partition.
Expected behavior
The producer should return after the timeout (connectionTimeout). Right now, the connectionTimeout does not have any effect. I do not have see anywhere in the code where the connectionTimeout is been used.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]

Additional context
Add any other context about the problem here.

there are no partitions available in the broker,

By default, when the used topic is not created, the specified topic is automatically created when the producer is created. We can modify this behavior in broker.conf:
# Enable topic auto creation if new producer or consumer connected (disable auto creation with value false)
allowAutoTopicCreation=true

Can you provide a simple code to stabilize this problem?

When a Producer.create is called, how long does it create request last ? does it wait forever for the producer to be created? Can I pass a timeout to the create method ?
I dont have to restart the JVM to remove blocking threads due to hanging Producer create call.

Here is the sample code base for the client and pruducer block:
/**
*
* @throws PulsarClientException
*/
private PulsarClient getProducerClient() throws PulsarClientException {
PulsarClient client = null;
if(producerOptionBean.isAuthenticationEnable()) {
Authentication authentication = AuthenticationFactory
.TLS(producerOptionBean.getClientCertificateFile(), producerOptionBean.getClientCertificateKey());
client = PulsarClient
.builder()
.serviceUrl(producerOptionBean.getPulsarBrokerUrl())
.tlsTrustCertsFilePath(producerOptionBean.getTrustCa())
.allowTlsInsecureConnection(producerOptionBean.isAllowTlsInsecureConnection())
.enableTlsHostnameVerification(false)
.authentication(authentication)
.build();
}
else {
client = PulsarClient
.builder()
.serviceUrl(producerOptionBean.getPulsarBrokerUrl())
.tlsTrustCertsFilePath(producerOptionBean.getTrustCa())
.allowTlsInsecureConnection(producerOptionBean.isAllowTlsInsecureConnection())
.build();
}
return client;
}
/**
*
* @throws PulsarClientException
*/
private Producer<byte[]> buildProducer(PulsarClient client, String producerName) throws PulsarClientException {
Producer<byte[]> producer = client.newProducer()
.topic(producerOptionBean.getPulsarTopic())
.producerName(producerName)
.enableBatching(producerOptionBean.isEnableBatching())
.batchingMaxPublishDelay(producerOptionBean.getBatchMessageMaxDelay(), TimeUnit.MILLISECONDS)
.sendTimeout(producerOptionBean.getMsgAckTimeout(), TimeUnit.SECONDS)
.compressionType(getCompressionType())
.maxPendingMessages(producerOptionBean.getMaxPendingMessages())
.batchingMaxMessages(producerOptionBean.getBatchingMaxMessages())
.blockIfQueueFull(producerOptionBean.isBlockIfQueueFull())
.create();
return producer;
}

Here is the JSTACK of the JVm where you can see that thread is stuck for forver in-order to create to be completed:
"Streaming.Test: netty server 5" #99780 prio=5 os_prio=0 tid=0x00002b41d431a800 nid=0x6929 waiting on condition [0x00002b40a1cda000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x000000071d8d0308> (a java.util.concurrent.CompletableFuture$Signaller)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1693)
at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3323)
at java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1729)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
at org.apache.pulsar.client.impl.ProducerBuilderImpl.create(ProducerBuilderImpl.java:86)

@wolfstudy  : I have provided above both buliding producer and JSTACK where thread is stuck on create method. Let me know if you need anything else.

+1
Failed to create Producer: ProducerBlockedQuotaExceededError

As a workaroud, I used createAsync()
try {
        f =
            (CompletableFuture<Producer<?>>)
                pc.newProducer(...)
                     ...some other config of the producer...
                    .createAsync();
        return f.get(maxWaitCreateProducerMillis, TimeUnit.MILLISECONDS);
      } catch (TimeoutException e) {
        if (f != null) {
          f.cancel(true);
        }
        throw e;
      }

I did solve this long time back using a different design model.

I did solve this long time back using a different design model.

Would you mind sharing it?

Closing as stale. If it's still relevant to maintained versions, feel free to open a new issue


Enhancing PR template

Summary
Updating the PR template to guide the creator to add more relevant details to each review, to help with the review process.

PR Metrics
✔ Thanks for keeping your pull request small.
✔ Thanks for adding tests.

Lines

Product Code
0

Test Code
0

Subtotal
0

Ignored Code
29

Total
29

Metrics computed by PR Metrics. Add it to your Azure DevOps and GitHub PRs!


/status returns error 500

Start WinAppDriver v1.3 Release Candidate 1 (1.2.99)
GET /status returns error 500:
{"status":13," value":{"error":"unknown error","message":"An unknown error occurred in the remote end while processing the command."}}
Some tools call /status as their first operation, and the error stops them from proceeding further. This is mentioned in several other bug reports (see for example #1728 or #1739).
@DHowett I am a MS employee and debugged this using internal sources. The root cause is that the build system isn't stamping a version number into winappdriver.exe. The /status handler fails when it tries to read the version number. Let me know if I can help with a fix in any way.

Thanks @mcooley. We've got a fix for this internally, it just hasn't been released. We've got some dependencies to update before we can do that. :)

Any updates on this?

Any update on this?


Update doc for match: empty argument doesn't match anything

resolve  #58368
Update documentation to reflect implementation.
https://github.com/godotengine/godot/blob/6a51999b7f4d9f7b1f950d7a655a464f28542318/core/string/ustring.cpp#L3208-L3211

Thank you!

Cherry-picked for 3.5.

Cherry-picked for 3.4.4.


As an open source contributor, I want to contribute to a "Help wanted" data ticket easily.

Description
We know we can make improvements to the onboarding and contribution process for external open source contributors. In order to guide what those improvements are, we want to have a spike where a developer (ideally outside of our core team, but not necessary) tries taking a "help wanted" data ticket and seeing how they far they get with the current documentation and state of the repository.
Solution
Find an issue in Github labeled "help wanted" and "data". Try to get started with the issue. As you go, document any problems you encounter with understanding the issue and trying to create a solution that addresses the issue. For example, maybe the structure of the issue is unclear and you don't know what it's asking for, or perhaps you can't find the related code in the repository, or it's difficult working with the existing python code.
Please post this documentation as a comment in the issue you've chosen. Then we will discuss there and create new Github issues targeting the issues encountered.
Definition of "Done"

[ ] Documentation of documentation, setup, code, etc, issues encountered while completing a data task.
[ ] New Github issues for the items identified above

A handy link for issues that are open and have the "help wanted" and "data" labels:
https://github.com/usds/justice40-tool/issues?q=is%3Aopen+label%3A"help+wanted"+label%3Adata


RatingColumn for table

Hi,
Thanks for this awesome package,
any plan to add it as column field for table ?

Also can we set a default value if the record is already rated ? useful for edit / view page

Agree, a rating column could be very useful!

Hi Package owner, Kindly release this latest changes into a version v0.1.2 by adding Tag in the Github.
I'm eagerly waiting for the Table Column implementation of Star Rating field.

@kingmaker-agm done at https://github.com/yepsua/filament-rating-field/releases/tag/v0.2.0 @aymanalhattami

Thanks for the quick action @oyepez003 👍


Subsequent runs of terraform apply fail due to FW association to dynamically created PIP

Is there an existing issue for this?

[X] I have searched the existing issues

Greenfield/Brownfield provisioning
greenfield
Terraform Version
1.4.6
Module Version
2.0.7
AzureRM Provider Version
3.61.0
Affected Resource(s)/Data Source(s)
azurerm_firewall, azurerm_public_IP
Terraform Configuration Files
## Variables

variable "location" {
  description = "Azure region in which instance will be hosted"
  type        = string
  default     = "eastus"
}

variable "environment" {
  description = "The Terraform backend environment e.g. public or usgovernment"
  type        = string
  default = "public"
}

variable "deploy_environment" {
  description = "Name of the workload's environnement"
  type        = string
  default = "dev"
}

variable "org_name" {
  description = "Name of the organization"
  type        = string
  default     = "antm29"
}

## Create the Hub

module "mod_hub_network" {
  source  = "azurenoops/overlays-management-hub/azurerm"
  version = "2.0.7"

  # By default, this module will create a resource group, provide the name here
  # To use an existing resource group, specify the existing resource group name,
  # and set the argument to `create_resource_group = false`. Location will be same as existing RG.
  create_resource_group = true
  location              = var.location
  deploy_environment    = var.deploy_environment
  org_name              = var.org_name
  environment           = var.environment
  workload_name         = "hub-core"

  # Provide valid VNet Address space and specify valid domain name for Private DNS Zone.
  virtual_network_address_space           = ["<IP_ADDRESS>/16"]     # (Required)  Hub Virtual Network Parameters
  firewall_subnet_address_prefix          = ["<IP_ADDRESS>/26"]   # (Required)  Hub Firewall Subnet Parameters
  ampls_subnet_address_prefix             = ["<IP_ADDRESS>/26"]   # (Required)  AMPLS Subnet Parameters
  firewall_management_snet_address_prefix = ["<IP_ADDRESS>/26"] # (Optional)  Hub Firewall Management Subnet Parameters
  gateway_subnet_address_prefix           = ["<IP_ADDRESS>/27"] # (Optional)  Hub Gateway Subnet Parameters

  # (Required) Hub Subnets
  # Default Subnets, Service Endpoints
  # This is the default subnet with required configuration, check README.md for more details
  # First address ranges from VNet Address space reserved for Firewall Subnets.
  # ex.: For <IP_ADDRESS>/27 address space, usable address range start from <IP_ADDRESS>/24 for all subnets.
  # default subnet name will be set as per Azure NoOps naming convention by defaut.
  # Multiple Subnets, Service delegation, Service Endpoints, Network security groups
  # These are default subnets with required configuration, check README.md for more details
  # NSG association to be added automatically for all subnets listed here.
  # First two address ranges from VNet Address space reserved for Gateway And Firewall Subnets.
  # ex.: For <IP_ADDRESS>/16 address space, usable address range start from <IP_ADDRESS>/24 for all subnets.
  # subnet name will be set as per Azure naming convention by defaut. expected value here is: <App or project name>
  hub_subnets = {
    default = {
      name                                       = "hub-core"
      address_prefixes                           = ["<IP_ADDRESS>/26"]
      service_endpoints                          = ["Microsoft.Storage"]
      private_endpoint_network_policies_enabled  = false
      private_endpoint_service_endpoints_enabled = true
    }

    dmz = {
      name                                       = "appgateway"
      address_prefixes                           = ["<IP_ADDRESS>/27"]
      service_endpoints                          = ["Microsoft.Storage"]
      private_endpoint_network_policies_enabled  = false
      private_endpoint_service_endpoints_enabled = true
      nsg_subnet_inbound_rules = [
        # [name, priority, direction, access, protocol, destination_port_range, source_address_prefix, destination_address_prefix]
        # To use defaults, use "" without adding any value and to use this subnet as a source or destination prefix.
        # 65200-65335 port to be opened if you planning to create application gateway
        ["http", "100", "Inbound", "Allow", "Tcp", "80", "*", ["<IP_ADDRESS>/0"]],
        ["https", "200", "Inbound", "Allow", "Tcp", "443", "*", [""]],
        ["appgwports", "300", "Inbound", "Allow", "Tcp", "65200-65335", "*", [""]],

      ]
      nsg_subnet_outbound_rules = [
        # [name, priority, direction, access, protocol, destination_port_range, source_address_prefix, destination_address_prefix]
        # To use defaults, use "" without adding any value and to use this subnet as a source or destination prefix.
        ["ntp_out", "400", "Outbound", "Allow", "Udp", "123", "", ["<IP_ADDRESS>/0"]],
      ]
    }
  }

  # Firewall Settings
  # By default, Azure NoOps will create Azure Firewall in Hub VNet.
  # If you do not want to create Azure Firewall,
  # set enable_firewall to false. This will allow different firewall products to be used (Example: F5).
  enable_firewall = true

  # By default, forced tunneling is enabled for Azure Firewall.
  # If you do not want to enable forced tunneling,
  # set enable_forced_tunneling to false.
  enable_forced_tunneling = true

  # (Optional) To enable the availability zones for firewall.
  # Availability Zones can only be configured during deployment
  # You can't modify an existing firewall to include Availability Zones
  firewall_zones = [1, 2, 3]

  # # (Optional) specify the Network rules for Azure Firewall l
  # This is default values, do not need this if keeping default values
  firewall_network_rules_collection = [
    {
      name     = "AllowAzureCloud"
      priority = "100"
      action   = "Allow"
      rules = [
        {
          name                  = "AzureCloud"
          protocols             = ["Any"]
          source_addresses      = ["*"]
          destination_addresses = ["AzureCloud"]
          destination_ports     = ["*"]
        }
      ]
    },
    {
      name     = "AllowTrafficBetweenSpokes"
      priority = "200"
      action   = "Allow"
      rules = [
        {
          name                  = "AllSpokeTraffic"
          protocols             = ["Any"]
          source_addresses      = ["<IP_ADDRESS>/19"]
          destination_addresses = ["*"]
          destination_ports     = ["*"]
        }
      ]
    }
  ]

  # (Optional) specify the application rules for Azure Firewall
  # This is default values, do not need this if keeping default values
  firewall_application_rule_collection = [
    {
      name     = "AzureAuth"
      priority = "110"
      action   = "Allow"
      rules = [
        {
          name              = "msftauth"
          source_addresses  = ["*"]
          destination_fqdns = ["aadcdn.msftauth.net", "aadcdn.msauth.net"]
          protocols = {
            type = "Https"
            port = 443
          }
        }
      ]
    }
  ]

  # Private DNS Zone Settings
  # By default, Azure NoOps will create Private DNS Zones for Logging in Hub VNet.
  # If you do want to create addtional Private DNS Zones,
  # add in the list of private_dns_zones to be created.
  # else, remove the private_dns_zones argument.
  private_dns_zones = ["privatelink.file.core.windows.net"]

  # By default, this module will create a bastion host,
  # and set the argument to `enable_bastion_host = false`, to disable the bastion host.
  enable_bastion_host                 = true
  azure_bastion_host_sku              = "Standard"
  azure_bastion_subnet_address_prefix = ["<IP_ADDRESS>/27"]

  # By default, this will apply resource locks to all resources created by this module.
  # To disable resource locks, set the argument to `enable_resource_locks = false`.
  enable_resource_locks = false

  # Tags
  add_tags = {
    Example = "Management Hub Overlay"
  } # Tags to be applied to all resources

  ## Added by Tim
  create_network_watcher = false
}

tfvars variables values
N/A

Debug Output/Panic Output
Error: deleting Public Ip Address: (Name "antm29-eus-hub-core-dev-fw-management-pip" / Resource Group "antm29-eus-hub-core-dev-rg"): network.PublicIPAddressesClient#Delete: Failure sending request: StatusCode=400 -- Original Error: Code="PublicIPAddressCannotBeDeleted" Message="Public IP address /subscriptions/xxxxx/resourceGroups/antm29-eus-hub-core-dev-rg/providers/Microsoft.Network/publicIPAddresses/antm29-eus-hub-core-dev-fw-management-pip can not be deleted since it is still allocated to resource /subscriptions/xxxxx/resourceGroups/antm29-eus-hub-core-dev-rg/providers/Microsoft.Network/azureFirewalls/antm29-eus-hub-core-dev-fw/azureFirewallIpConfigurations/antm29-eus-hub-core-dev-fw-forced-tunnel-ipconfig. In order to delete the public IP, disassociate/detach the Public IP address from the resource.  To learn how to do this, see aka.ms/deletepublicip." Details=[]
│
│
╵
╷
│ Error: deleting Public Ip Address: (Name "antm29-eus-hub-core-dev-fw-client-pip" / Resource Group "antm29-eus-hub-core-dev-rg"): network.PublicIPAddressesClient#Delete: Failure sending request: StatusCode=400 -- Original Error: Code="PublicIPAddressCannotBeDeleted" Message="Public IP address /subscriptions/xxxxx/resourceGroups/antm29-eus-hub-core-dev-rg/providers/Microsoft.Network/publicIPAddresses/antm29-eus-hub-core-dev-fw-client-pip can not be deleted since it is still allocated to resource /subscriptions/xxxxx/resourceGroups/antm29-eus-hub-core-dev-rg/providers/Microsoft.Network/azureFirewalls/antm29-eus-hub-core-dev-fw/azureFirewallIpConfigurations/antm29-eus-hub-core-dev-fw-ipconfig. In order to delete the public IP, disassociate/detach the Public IP address from the resource.  To learn how to do this, see aka.ms/deletepublicip." Details=[]

Expected Behaviour
After successfully running terraform apply, I should be able to run terraform apply again successfully.
Actual Behaviour
After successfully running terraform apply, if you try to run terraform apply again, the run will fail.
This appears to be because the Public IPs (management and client) used by the Firewall need to be deleted and recreated, but the PIPs cannot be deleted without first being disassociated with the Firewall.
No changes were made to the terraform config files between runs.
This makes it difficult to build up and onto your environment config, and to iterate on your infrastructure, without blowing everything away and deploying everything again, or manually intervening to disassociate the PIPs first.
Steps to Reproduce

terraform init -upgrade && terraform plan -o 1.plan
terraform apply 1.plan
terraform plan -o 2.plan
terraform apply 2.plan

Important Factoids
No response
References
No response

The current code base deploys and destroys with out error, closing


Add issue template, pr template and community guidelines

Add issue templates, PR templates and community guidelines.
Decide on the contribution guidelines and community guidelines.

I would like to take this up @sansyrox

@shivaylamba , go ahead


The related reference of the transformer.yaml in /recipes/LibriSpeech/hparams/transformer.yaml

Hi,
Could you please tell me the related reference paper of this transformer-based ASR model ( /recipes/LibriSpeech/hparams/transformer.yaml) ?
Thanks in advance!
Yuanyuan

Is this paper : https://arxiv.org/abs/2001.02674?

There isn't really a reference paper I believe, It's inspired from ESPnet, but we changed few things. It's a vanilla transformer for ASR.

Got it! Thanks for you fast reply!


New Contribution

Contributor: StanPoldark
SSH Public key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKSUPDB4zghABICtu+L0o0dOyTTnlho9WFhzTI1QsLVH
Attestation: [any form of attestation for contribution (e.g., signature) - Optional]

I've started the contribution process

ready


515 "stream errored out" when QR scanning

Hello. Many thanks for API.
When I scan the qr code I get this error:
{"level":50,"time":1674969516892,"pid":10552,"hostname":"User-PC","node":{"tag":"stream:error","attrs":{"code":"515"}},"msg":"stream errored out"}
And on the phone whatsapp says that an error occurred.
I send following data to 'sessions/add' endpoint:
{
    'sessionId': session_id,
    'browser': ['Windows', 'Chrome', '108.0.0'],
    'version': [2, 2304, 7]
}

Please tell me how to fix this?

Check if session_id is not undefined.

Make sure your connection is stable and try again. Let me know if the issue is still persist

Closing this due to inactivity


Update app to use new font sizes

What
Temporary branch for designers to review font size changes. DO NOT MERGE.
Uses a customised version of the gem from https://github.com/alphagov/govuk_publishing_components/pull/3819 in the govuk_publishing_components. See that PR for more information.
https://trello.com/c/cEedyatM/2361-typography-preview-for-feedback-app
⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
Follow these steps if you are doing a Rails upgrade.

No longer needed


Update to .NET Core SDK 2.1.400

This allows "dotnet sln add" to work.
Fixes #2430.
I propose that we merge if this is green for Travis and AppVeyor. We may then need to update Kokoro.

@jskeet Looks like AppVeyor and Travis aren't updated yet.  Maybe this is a good time to try and migrate all the CI/CD to Kokoro?

Travis we should be able to fix ourselves - I just failed to do so. AppVeyor we have less control over. Would like to keep at least Travis going, but don't mind losing AppVeyor, at least temporarily.

Okay, let's sync up when you are back in the office next week and discuss further.

Okay, it looks like AppVeyor now supports 2.1.400.
Ian, Chris - are you both happy for us to merge this and then update Kokoro if necessary?

Merging now, which may well break Kokoro - but we need to find out at some point anyway.
(This bit me yet again today...)


How to select columns in Repository

I want to hide some columns for some entities.
class UserRepository extends Repository implements ActorProviderInterface
{
    public function getActor(TokenInterface $token): ?object
    {
        if (!isset($token->getPayload()['userID'])) {
            return null;
        }

        return $this->findByPK($token->getPayload()['userID']);
    }
}

How would I hide the columns or add extra columns

If you want to select partial models you have 2 options:

use Embeddings
use buildQuery of select and then call columns method, you will switch from ORM to DBAL