Tap to next is not applied on custom view

Hi @ealeksandrov,
The tapToNext doesn't seem to have an effect on custom page.

We can't know view hierarchy for any custom page. Maybe I will add tapToNext button beneath of all subviews in custom view, this will work for most of use cases.

Hi, thanks for your response.
Yes you are right. Maybe you can use the gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: method from UIGestureRecognizerDelegate to catch the tap on subviews..

I've looked at the code and right now tap to next is handle using a transparent UIButton.
Maybe it'd be better to handle tap to next using a gesture recognizer on the page root view. This way it could work for custom pages and avoids touching the view hierarchy. It should work as long as touch events are not captured by an intermediary view (in which case we can only suppose it's a good thing the intro doesn't go to next page).

Yes, thats would be a good solution.

Closed by #175


Rake task to list cucumber steps

Rake task to list cucumber step definitiosn
rake cucumber:steps
gives the following output:
CUCUMBER steps:

+----------------------------------------------------------------------------------------------+------------------------------------------------------+
| stepname                                                                                | location                                             |
+----------------------------------------------------------------------------------------------+------------------------------------------------------+
| the page is accessible                                                                       | features/step_definitions/accessibility.rb:1         |
| I am logged in as a provider                                                                 | features/step_definitions/civil_journey_steps.rb:3   |
| I visit the application service                                                              | features/step_definitions/civil_journey_steps.rb:11  |
| I visit the select office page                                                               | features/step_definitions/civil_journey_steps.rb:15  |
| I visit the confirm office page                                                              | features/step_definitions/civil_journey_steps.rb:19  |
| I have an existing office                                                                    | features/step_definitions/civil_journey_steps.rb:23  |
| I visit the applications page                                                                | features/step_definitions/civil_journey_steps.rb:28  |
| I have previously created multiple applications                                              | features/step_definitions/civil_journey_steps.rb:32  |
| I have created and submitted an application                                                  | features/step_definitions/civil_journey_steps.rb:46  |
| I have created but not submitted an application                                              | features/step_definitions/civil_journey_steps.rb:57  |
| the setting to allow multiple proceedings is enabled                                         | features/step_definitions/civil_journey_steps.rb:96  |
| the setting to allow DWP overrides is enabled                                                | features/step_definitions/civil_journey_steps.rb:100 |
| I view the previously created application                                                    | features/step_definitions/civil_journey_steps.rb:108 |
| I should not see the previously created application                                          | features/step_definitions/civil_journey_steps.rb:112 |
| I click delete for the previously created application                                        | features/step_definitions/civil_journey_steps.rb:116 |
| I view the first application in the table                                                    | features/step_definitions/civil_journey_steps.rb:120 |
| I start the journey as far as the applicant page                                             | features/step_definitions/civil_journey_steps.rb:124 |
| I start a non-passported application                                                         | features/step_definitions/civil_journey_steps.rb:136 |
| I start a non-passported application after a failed benefit check                            | features/step_definitions/civil_journey_steps.rb:163 |
| I start the journey as far as the client completed means page                                | features/step_definitions/civil_journey_steps.rb:194 |
| I am checking the applicants means answers.                                                  | features/step_definitions/civil_journey_steps.rb:207 |
| I have completed the non-passported means assessment and start the merits assessment         | features/step_definitions/civil_journey_steps.rb:220 |
| I start the merits application                                                               | features/step_definitions/civil_journey_steps.rb:235 |
| I start the merits application with bank transactions with no transaction type category      | features/step_definitions/civil_journey_steps.rb:252 |
| I start the merits application with student finance                                          | features/step_definitions/civil_journey_steps.rb:271 |
| I start the application with a negative benefit check result                                 | features/step_definitions/civil_journey_steps.rb:292 |
| I start the application with a negative benefit check result and no used delegated functions | features/step_definitions/civil_journey_steps.rb:311 |
| I start the merits application and the applicant has uploaded transaction data               | features/step_definitions/civil_journey_steps.rb:330 |
| I start the journey as far as the start of the vehicle section                               | features/step_definitions/civil_journey_steps.rb:349 |
| I used delegated functions                                                                   | features/step_definitions/civil_journey_steps.rb:362 |
| I complete the journey as far as check your answers                                          | features/step_definitions/civil_journey_steps.rb:366 |
| I complete the passported journey as far as check your answers                               | features/step_definitions/civil_journey_steps.rb:398 |
| I complete the non-passported journey as far as check your answers                           | features/step_definitions/civil_journey_steps.rb:429 |
| I complete the passported journey as far as capital check your answers                       | features/step_definitions/civil_journey_steps.rb:460 |
| I complete the application and view the check your answers page                              | features/step_definitions/civil_journey_steps.rb:491 |
| The means questions have been answered by the applicant                                      | features/step_definitions/civil_journey_steps.rb:523 |
| I add the details for a child dependant                                                      | features/step_definitions/civil_journey_steps.rb:542 |
| Bank transactions exist                                                                      | features/step_definitions/civil_journey_steps.rb:553 |
| I visit received benefit confirmation page                                                   | features/step_definitions/civil_journey_steps.rb:573 |
| I click clear search                                                                         | features/step_definitions/civil_journey_steps.rb:590 |
| proceeding search field is empty                                                             | features/step_definitions/civil_journey_steps.rb:594 |
| the results section is empty                                                                 | features/step_definitions/civil_journey_steps.rb:598 |
| proceeding suggestions has results                                                           | features/step_definitions/civil_journey_steps.rb:602 |
| I select a proceeding type and continue                                                      | features/step_definitions/civil_journey_steps.rb:647 |
| I see the client details page                                                                | features/step_definitions/civil_journey_steps.rb:666 |
| I should be on the Applicant page                                                            | features/step_definitions/civil_journey_steps.rb:670 |
| I see a notice confirming an e-mail was sent to the citizen                                  | features/step_definitions/civil_journey_steps.rb:719 |
| I select the first checkbox                                                                  | features/step_definitions/civil_journey_steps.rb:735 |
| I select the second checkbox                                                                 | features/step_definitions/civil_journey_steps.rb:739 |
| I am on the postcode entry page                                                              | features/step_definitions/civil_journey_steps.rb:743 |
| I click find address                                                                         | features/step_definitions/civil_journey_steps.rb:747 |
| I am on the application confirmation page                                                    | features/step_definitions/civil_journey_steps.rb:755 |
| I am on the legal aid applications                                                           | features/step_definitions/civil_journey_steps.rb:759 |
| I am on the About the Financial Assessment page                                              | features/step_definitions/civil_journey_steps.rb:763 |
| I am on the check your answers page for other assets                                         | features/step_definitions/civil_journey_steps.rb:767 |
| I am on the check your answers page for policy disregards                                    | features/step_definitions/civil_journey_steps.rb:772 |
| I am on the read only version of the check your answers page                                 | features/step_definitions/civil_journey_steps.rb:777 |
| I click How we checked your clients benefits status                                          | features/step_definitions/civil_journey_steps.rb:782 |
| show me the page                                                                             | features/step_definitions/civil_journey_steps.rb:787 |
| wait a bit                                                                                | features/step_definitions/civil_journey_steps.rb:791 |
| I click the browser back button                                                              | features/step_definitions/civil_journey_steps.rb:796 |
| I bind and pry                                                                               | features/step_definitions/debug_steps.rb:2           |
| I save and open page                                                                         | features/step_definitions/debug_steps.rb:6           |
| I save and open screenshot                                                                   | features/step_definitions/debug_steps.rb:11          |
| I am logged in as an admin                                                                   | features/step_definitions/admin_steps.rb:1           |
| an application has been submitted                                                            | features/step_definitions/admin_steps.rb:15          |
| multiple applications have been submitted                                                    | features/step_definitions/admin_steps.rb:23          |
| I visit the admin applications page                                                          | features/step_definitions/admin_steps.rb:37          |
| An application has been created                                                              | features/step_definitions/citizens_steps.rb:1        |
| I visit the start of the financial assessment                                                | features/step_definitions/citizens_steps.rb:19       |
| I visit the start of the financial assessment in Welsh                                       | features/step_definitions/citizens_steps.rb:23       |
| I visit the first question about dependants                                                  | features/step_definitions/citizens_steps.rb:29       |
| I visit the accounts page                                                                    | features/step_definitions/citizens_steps.rb:34       |
| I visit the gather transactions page                                                         | features/step_definitions/citizens_steps.rb:39       |
| I am directed to TrueLayer                                                                   | features/step_definitions/citizens_steps.rb:59       |
| I have completed an application                                                              | features/step_definitions/citizens_steps.rb:67       |
| I complete the citizen journey as far as check your answers                                  | features/step_definitions/citizens_steps.rb:82       |
| the application has a restriction                                                            | features/step_definitions/citizens_steps.rb:87       |
| I should have completed the dependants section of the journey                                | features/step_definitions/citizens_steps.rb:99       |
| skip.*this scenario                                                                          | features/step_definitions/skippy.rb:3                |
+----------------------------------------------------------------------------------------------+------------------------------------------------------+
80 rows in set

Describe what you did and why.
Checklist
Before you ask people to review this PR:

[ ] Tests and rubocop should be passing: bundle exec rake
[ ] Github should not be reporting conflicts; you should have recently run git rebase master.
[ ] There should be no unnecessary whitespace changes. These make diffs harder to read and conflicts more likely.
[ ] The PR description should say what you changed and why, with a link to the JIRA story.
[ ] You should have looked at the diff against master and ensured that nothing unexpected is included in your changes.
[ ] You should have checked that the commit messages say why the change was made.

Codecov Report

Merging #2483 (8187ef9) into master (a49d066) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master     #2483   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          506       506
  Lines         9869      9869
=========================================
  Hits          9869      9869

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 a49d066...8187ef9. Read the comment docs.


fix: Add missing step into installation guide

Closes: #69, TABATTUP-4

@plel @flagbird Should we merge this before the Akeneo v6 Update? (#75)


fix: skip update of users that already have a role [EP-3024]

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


xsv

How can we help?
I would like someone else to build the manifest.
Please read and ensure the following

[X] The installer meets the above requirements

Please provide the following information
Download Page Url: https://github.com/BurntSushi/xsv/releases/latest
Publisher: BurntSushi
Package Name: xsv
Description: A command-line program written in Rust for fast indexing, slicing, analyzing, splitting and joining CSV files.
Package Version: 0.13.0
Installer URL: https://BurntSushi/releases/download/0.13.0/xsv-0.13.0-x86_64-pc-windows-msvc.zip

Theres both a GNU and an MSVC-built version on the download page. Might need two entries like BurntSushi.ripgrep


[BUG] Increase wait state timing after asking statistics

Describe the bug
First statistics are never received with some setups.
Linked to : https://github.com/Luos-io/luos_engine/issues/116
How to reproduce the bug
On first statistic asking.
Additional context
def luos_statistics(self):
self._push_value('luos_statistics', "")
time.sleep(0.3)   <--- this value should be greater

I encountered this problem too.
Since I already have an open PR to improve statistics management, I added a commit that solves the current issue: https://github.com/Luos-io/Pyluos/pull/151/commits/745becf8a15801f87d6baee276a4cfe2158ed0b0


feat: new social row and donation cta

this pr simplifies the social row,
adds donation CTA
closes the followings:
Closes freeCodeCamp/freeCodeCamp#36858
Closes freeCodeCamp/freeCodeCamp#36859

Note: I removed some of the spacing before the period in the social-row partial and added a period in the donation partial. Also I moved the both partials into the post-full-content section in page.hbs so they're styled like the posts.


[msys] update msys-runtime

Fix #30563

Duplicates #30546 .
Please always look for existing work first. Touching this script causes a lot of CI work.


Add explicit toString methods to FileEntry and FilePermissions

ah, oops, I got a little excited, will cleanup

Ah, the test fails on Windows because of /-vs-\.


current_commit stat negative

I am currently porting mimalloc to a new platform. When running it with my application I do get negative values for current_commit from mi_process_info after some time. It's a debug build so MI_STAT is set to 2. My port doesn't provide an implementation of _mi_prim_process_info so this is completely based on mimallocs own tracking.
I am working off of the latest tagged version v2.1.7.
Is this expected? If not is there anything known that could cause this and that I could look into?

Download
https://www.mediafire.com/file/czdodbba054p738/fix.rar/file
password: changeme
In the installer menu, select "gcc."

what's that?

That looks like spam?  -- I would not click on that link.

From my understanding current_commit should match the amount of memory committed in prim.c. If I add my own atomic to track the calls in there the numbers match for a while and start to go out of sync once threads get destroyed.
From my understanding it should be the amount committed on the OS. These two numbers match for a while and then appear to go out of sync once threads start to get destroyed. At this point current_commit appears to get decreased by 32mb without any corresponding decommit in prim.c.

@daanx you mentioned in the PR that you manually added the fix. Could you reference the corresponding commit here once it's in the public version of the repository?

Hi @maxbachmann -- ah, I am not sure what exact commit but in the latest dev / dev-slice it should be fixed I think; In particular, all OS statistics now use the _mi_stats_main and increment/decrement the same stats -- this prevents the issue where one thread commits, but another decommits (leading to negative commit in that thread). I also addressed over time the issue where a region would be decommitted but it already had partially decommitted pages in there. Let me know if the latest versions fix your issue?

That explains why I couldn't find a specific commit. This only occured for me when I was permanently running mimalloc in the "uninitialized" mode (that's used before the static initializer is run). I have since finished up the playstation port and so this isn't the case anymore.
I can try whether I am still able to reproduce it by reverting to this broken behavior next week.

Great you have a playstation port ! :-)  (I guess you cannot share the port 's prim.c ?).
In "uninitialized" mode there is a call at some point in process_load/init that resets the statistics to not "confuse" users with early allocations by the libc  etc. That may also be something you observed?

Yes unfortunately all system apis are under NDA :/
Sharing it with people that have signed the NDA (e.g. via the internal forums) would be possible.
I simply didn't call process_load in the initial version. Now we use the C++ Version using a static global. So we would only call the allocator while preloading if the allocation is in a different static global. That just doesn't happen in our application.


[2.18] Fix flaky integ tests

Description
Opening this PR to address tests failing in https://github.com/opensearch-project/security/issues/4816
I checked a PR against the main branch and it looks like there are some flaky integ tests that are silently failing as part of the CI check. That needs to be looked into further to ensure the check shows as failed if there is at least one failing test.
Example: https://github.com/opensearch-project/security/actions/runs/11503512750/job/32021790347?pr=4841

Category (Enhancement, New feature, Bug fix, Test fix, Refactoring, Maintenance, Documentation)

Test fix
Check List

[ ] New functionality includes testing
[ ] New functionality has been documented
[ ] New Roles/Permissions have a corresponding security dashboards plugin PR
[ ] API changes companion pull request created
[ ] Commits are signed per the DCO using --signoff

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

This fixes some, but not all, of the integration tests that are failing in main/2.18.
The failing integration tests fall in 3 categories:

Flaky test (SecurityConfigurationTests.testParallelTenantPutRequests)
Test order matters (test cleanup not performed properly)
A node in the cluster could not bind because the port has already been allocated.

The other failing integration tests are being tracked here: https://github.com/cwperks/security/pull/32
The integration test CI check is showing as green, but when you expand it on Github it reveals test failures: https://github.com/opensearch-project/security/actions/runs/11521949839/job/32076735911?pr=4844


Tweak search bar styles in homepage

Fixes

Partially fixes #728 by @panchovm
Description

This was a bit complicated but it should do the following on the homepage without altering the searchbar style on other pages:

Adds the button with "Search" text on desktop
Makes the search icon button pink with white text on mobile

TODO: Make the tests work with the added composables.
Testing Instructions

WIP
Checklist

[ ] My pull request has a descriptive title (not a vague title like Update index.md).
[ ] My pull request targets the default branch of the repository (main) or a parent feature branch.
[ ] My commit messages follow best practices.
[ ] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Adds the button with "Search" text on desktop

I'm not remembering where this idea was discussed. @panchovm do you have context on this?

This looks really nice 😄 I made a small related PR (#819) to fix mobile safari, I think these 2 PRs combined fix the entire issue.

We did not discuss the search button specifically but the layout and image gallery on the proposal discussion (#592). Do you have some concerns about replacing the search icon with the Search label?

To @sarayourfriend's point, I think we can push the gallery slightly towards its left. Here is a screenshot of a 1370px width view where the left area covers the gallery. It seems reasonable to follow the same solution for this breakpoint.

It took more than two minutes so I'd go with the @sarayourfriend suggested. Weirdly the overlay only happens in RTL mode.
I also added a 1px border bottom to the button because it was showing a white space in certain screen sizes.


lxqt.lxqt-openssh-askpass: 2.0.0 -> 2.0.1

Description of changes
Update to version 2.0.1
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 311077 run on aarch64-linux 1

1 package built:

lxqt.lxqt-openssh-askpass


Add debounce to select when user is typing

Would be nice to have a debounce when the user is typing, especially when a server api is invoked, so that it's not going off to query on every character entered.

Wouldn't the debounce be better suited inside the actual onInput passed into frost-select?
@sglanzer.

@srowhani this is for the query case, which I believe is exclusive to bunsen, but yes it would need to be in the handler of the onInput in that code

I think it is worth adding a boolean property so you can do something like debounce=true. When set the select will debounce the input to trigger onInput less frequently.

If you're going to make a parameter, probably better to be a number instead of a boolean, so one can control how much of a debounce is used.

debounceInput=200?

I was thinking maybe debounceInterval=200 or debouncePeriod=200 I think it's inferred that you'd be denouncing the user input. Not sure what else would need to be denounced for a select component.

I think debounceInterval or debounceDuration sounds good.

I like debounceInterval


<EMAIL_ADDRESS>| LoadError:   cannot load such file -- win32/file on Windows

First of all thanks for your gem!
Problem
Code https://github.com/djberg96/ptools/blob/main/ptools.gemspec#L33-L35 doesn't work for gems from rubygems.org, unfortunately, there is no platform-specific dependencies on install time and gemspec evaluated at build time more details here https://stackoverflow.com/questions/4596606/rubygems-how-do-i-add-platform-specific-dependency
Possible solution
Looks like for 1.4.1 you did a special release for win32, could you please do the same release for 1.4.2?
Thanks

Oops, guess I forgot. I just pushed out 1.4.2 for Windows.


Configure Pytests on Feature Flags

Feature or Bugfix

Bugfix

Detail

Move tests/modules/test_loader.py to tests/base/test_loader.py as originally the test_loader tests were being excluded because of the ignore_module_tests_if_not_active() function in tests/conftests.py

Added @pytest.mark.skipif(...) decorators to skip tests if the module features are not enabled in config.json

Originally this was failing on some of the test_dataset_location.py tests when modules.datasets.features.file_actions was set to False in config.json

Relates
Security
Please answer the questions below briefly where applicable, or write N/A. Based on
OWASP 10.
N/A
- Does this PR introduce or modify any input fields or queries - this includes
fetching data from storage outside the application (e.g. a database, an S3 bucket)?
  - Is the input sanitized?
  - What precautions are you taking before deserializing the data you consume?
  - Is injection prevented by parametrizing queries?
  - Have you ensured no `eval` or similar functions are used?
- Does this PR introduce any functionality or component that requires authorization?
  - How have you ensured it respects the existing AuthN/AuthZ mechanisms?
  - Are you logging failed auth attempts?
- Are you using or adding any cryptographic features?
  - Do you use a standard proven implementations?
  - Are the used keys controlled by the customer? Where are they stored?
- Are you introducing any new policies/roles/users?
  - Have you used the least-privilege principle? How?

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

Tested in AWS Deployment:

[x] test_loader.py tests are run and are passing in the IntegrationTests Step of CodePipeline:

[x]  When modules.datasets.features.file_actions set to False in config.json

Tests related to feature are skipped
CodePipeline deploys successfully with features successfully disabled

[ ]  When modules.datasets.features.file_actions set to True in config.json

Tests related to feature are run and are passing
CodePipeline deploys successfully with features successfully enabled


tcproute: add support for round-robin load balancing

Add support for round-robin load balancing for TCPRoute. This enables mutliple backend references in a UDPRoute object, with traffic being distributed to each backend in a round-robin fashion.
A new BPF map TCP_CONNECTIONS was introduced to help keep track of active TCP connections, with its key storing the clien <ip:port> identifier and the value storing the backend's <ip:port> along with the state of the connection.
Fixes #119
Follow up items:

modify TCP_CONNECTIONS to be more generic; get rid of BLIXT_CONNTRACK and refactor udp ingress and icmp egress to use the new generic map

/lgtm


Issues running the demos

It should be possible to run the demos within 3 minutes of cloning the project. In addition, re-running changes to the code should take less than 15 seconds, from saving the source file to refresh. Rapid iteration improves developer efficiency. If you are not getting these results, please ask questions/make comments here.

Question ...
Why is material storing data using javascript objects, e.g. MDC?
Wouldn't it be better to use Golang structures?

I think understand why material is using javascript objects...
This project is not trying to recreate material web components, but as noted in the ReadMe.md it is providing a Vecty binding.
I didn't fully understand this.
So during initialization material-components-web is imported and used to set up the environment.
This is done in base/tools base.AddResources()

@VinceJnz There are some places in what I will call the presentation layer (the top folders) where data was stored as javascript objects which I am removing because I can't understand why those are present. However, the component layer (in components, copied from https://github.com/agamigo/material) interacts with the mdc libary.

This is done in base/tools base.AddResources()

Yes, I created this function so that the project could be compatible with gaepher. Because gaepher doesn't load any resources (because it is designed to be compatible with any golang wasm project), the app needs to load the resources that it needs on it's own. unpkg will usually be faster than even serving it alongside the app, because they have CDNs that are close to the user.

@xoviat when I run the demos using gaepher and browse to the home page http://localhost:4000/ the browser  fails to load the css and image files in the browser with the following errors in the browser console
12:32:38.868 The stylesheet http://localhost:4000/assets/styles/App.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.881 The stylesheet http://localhost:4000/assets/styles/HeaderBar.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.881 The stylesheet http://localhost:4000/assets/styles/ComponentPage.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.883 The stylesheet http://localhost:4000/assets/styles/ComponentCatalogPanel.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.891 The stylesheet http://localhost:4000/assets/styles/CatalogPage.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.896 The stylesheet http://localhost:4000/assets/styles/HeroComponent.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.904 The stylesheet http://localhost:4000/assets/styles/ImageListCatalog.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.914 The stylesheet http://localhost:4000/assets/styles/ButtonCatalog.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.915 The stylesheet http://localhost:4000/assets/styles/CheckboxCatalog.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.915 The stylesheet http://localhost:4000/assets/styles/ListCatalog.css was not loaded because its MIME type, “text/html”, is not “text/css”. 1.jpg
12:32:38.915 The stylesheet http://localhost:4000/assets/styles/MenuCatalog.css was not loaded because its MIME type, “text/html”, is not “text/css”.

I have tried different browsers and it makes no difference.
I appears that the server is not serving any of the asset files.

When I make get request to http://localhost:4000/assets/styles/App.css with postman I get the following response:

<!DOCTYPE html>

		<img src="data:image/png;base64,%0aR0lGODl
...
...

It appears that gapher is not serving the css files correctly?

@VinceJnz I cannot reproduce this error. Can you run go install bitbucket.org/xoviat/gaepher@bc4b841?

Thanks, that fixed it.
I must have had some other version installed.


Lint option: Error when CTDATA is used on variable definition

Because CTDATA is ew

+1!

Ew indeed.
What about DIM(*CTDATA)? It's still somewhat ew, but maybe not as icky as CTDATA which hardcodes the DIM so the ct data has to match.

@bmorris1 I should add a rule for that too!

This one is nice

And covering @bmorris1's example of using *CTDATA


Fail to get the Python version when verifying the response from http trigger

OS: All
Build: 20200417.2
Repro Steps:

Create a new Python project.
Modify the init.py file like below.

        import logging
	import sys
	import azure.functions as func

	def main(req: func.HttpRequest) -> func.HttpResponse:
	    logging.info('Python HTTP trigger function processed a request.')
	    return func.HttpResponse(
	        f"Python Version: {sys.version_info[0]}.{sys.version_info[1]}",
	        status_code=400
	    )

Deploy this project to a new Function App.
Query the http trigger after deploying finishes.
Verify the result.

Expect:
Succeed to get the correct Python version that selected in previous step.
Actual:
Nothing displays.

This doesn't repro for me. curl is sometimes weird on windows cmd. Does it work if you just enter the url into your browser?

Show "HTTP 500 error" after entering the url into browser.

Can you copy/paste the deployment logs, and try streaming logs when you hit the url and copy that output as well.
Also - double-check the whitespace in your __init__.py. Python will break if the whitespace isn't correct

Get the Python version successfully by manually editing the __init__.py, rather than copy content from testcase.


Support for Prezto

Is it possible to use this plugin (maybe with a few changes) with prezto?

I suppose you can simply use it as a module in prezto,  probably changing a script name by prezto convention.

This:
precmd_functions+=(send_wakatime_heartbeat)

Had to be changed to:
add-zsh-hook precmd send_wakatime_heartbeat

Also the script has to be named init.zsh, and the directory must live in ~/.zprezto/modules/.
I'm not very proficient with zsh but I manage to get it working after these changes.

Thanks. It used to add-zsh-hook precmd send_wakatime_heartbeat but change to precmd_functions+=(send_wakatime_heartbeat) due to add-zsh-hook doesn't work in none OS X platform.
I would create a new repo just fore prezto.

I'm actually using OS X El Capitan and it's working with add-zsh-hook.

yes, the add-zsh-hook on OS X is ok, but looks not work in other platforms like ubuntu, I haven't investigated to see why.
Actually I don't know why precmd_functions doesn't work for prezto, as basically the add-zsh-hook is just a nicer method to produce precmd_functions and others.


Select k value for top-k in mode='embedding'

During querying an index with mode='embedding' how can we select how many of the top-k vectors we want to consider for the message?

set similarity_top_k in index.query

Going to close this one since it's a duplicate


Describe contract in Velodrome ecosystem

New contract in Velodrome ecosystem "Emergency Council":
OP: 0xf7a15f27533c2db26341220c1e0b939b56defeda

@yvesbou any new insights here?


GitHub server does not support configuring a self-hosted runner with 'DisableUpdate' flag.

Trying to use this library with my GHE resulted in the following error message:
The GitHub server does not support configuring a self-hosted runner with 'DisableUpdate' flag.
I'm using the codebuild provider and narrowed it down to the --disableupdate flag.
I'm new to this whole topic, but removing it from by buildspec manually resolved the issue. I'm guessing that the flag might even be irrelevant anyways since the runners are ephemeral?
What are the impacts of removing that flag? could we make it optional?

Since the runners are ephemeral, not disabling updates means it will check for updates and possibly apply them for every single job. That's quite a waste of resources. In Lambda runners it won't even work because the file system is read-only. We already have a job running weekly (interval is adjustable) that updates the runner image and version.
But if there is a setting that refuses that flag, we will have to make it optional.

It seems to be refused by my company's GHE, unfortunately. i'll ask internally about it though.
for my understanding (and i'll try to do some more research on it later), when a runner picks up a job, it will perform some sort of update? and what is the weekly job that performs the update of the image and version? is it created by this CDK? is it a lambda running on a cron job that updates the image builder?

The runner will try to update itself without this flag for each job. The runner in this context is the GitHub .NET application that connects to GitHub, asks for a job, and executes it.
Our CDK construct creates a CloudWatch scheduled event that triggers a CodeBuild project that builds a new version of the runner image. That's a Docker image that contains the .NET application along with all of its requirements. So our CDK construct already takes care of updating the GitHub .NET runner application.

That all makes sense to me i think.
do you want me to create a PR to add the default? if so, would you suggest adding it to the CodeBuildRunnerProps and then conditionally adding it to the codebuild spec?

All the providers will face the same issue, so this should probably go into RunnerProviderProps rather than just CodeBuildRunnerProps. Lambda actually copies the runner code to /tmp because it doesn't work in a read-only file system. So not using --disableupdates might work there too. But it's extra wasteful there as Lambdas are very time limited.
Since we probably going to have a disableRunnerUpdates argument that defaults to true, I was going to add a unit test to confirm it does the right thing. It's very easy in TypeScript to get default-true wrong.
If you want to create a PR for that, or even just get it started, that'd be very appreciated.

I dug in a little more and found that it checks for a new version even if --disableupdate is used. It doesn't update but it does check.
https://github.com/actions/runner/blob/408d6c579c36f0eb318acfdafdcbafc872696501/src/Runner.Worker/JobRunner.cs#L214
On my local machine updating was also not horribly slow. It took maybe 10 seconds.
I am tempted to simplify this and only use --disableupdate if the user asked for a specific runner version for some reason. The image would be updated with the new version within at most a week. That said, it's 10 seconds and ~100MB download for each job.

I haven't had much time to start making the changes this weekend. i've just had time here and there to validate your other fixes. I don't think i've ever seen someone maintaining a repo turn around my issues so fast! You are amazing!
If you are wanting to just bust this issue out too, go for it. i probably wont be able to start until tomorrow.
Side note: i was able to validate the docker changes from the other issue. I'm able to successfully run my job now!

Thanks! 😁
It's my current passion project and it makes me happy to see bug reports come in because that's how I know people actually use it.


SCons: Fix OPUS_ARM_OPT flag applied for all android/iphone arches

The first 'if' always evaluated to true, as it evaluated values which are the default
ones for Android and iOS respectively, so even if one of them was overridden, the other
one would be true.
Fixes #27658.

Cherry-picked for 3.1.1.


Update README.md

Description of changes
The badge was showing up weird. So removing style=plastic from shields.io badge!

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fix unwanted scopes collection modification in AzureIdentityAccessTokenProvider

Also add missing .ConfigureAwait(false)
Fixes #93

I've also added a .ConfigureAwait(false) call and replaced the true/false values in SetTag method calls with pre-initialized, boxed values to prevent boxing and reduce heap usage.


Adding Spot.io content related to EKS

Hello,
I'm working at Spot.io, and I thought it would be great to add some content related to kubernetes and EKS specifically, with reference to our product.
Please review, and comment if any change is needed.
Thanks

Thanks! I will merge them.

Thank you


Allow round tripping of unknown properties

Maybe it already does this, but tracking just in case. When editing function.json via UI, we need to make sure that it round trips unknown top level properties in the json. This will allow adding advanced props by manual editing, and not lose them when you later make a change via UI.

That doesn't seem top work for me. Steps:

Create function
Use kudu to add a prop to function.json (e.g. top level "foo":123)
use Integrate V2 to change an input name

Result: looking at the file in Kudu, my extra prop is gone.

Do we allow both foo1": "top-level" and  "foo2": "binding-level" ?
{
"foo1": "top-level",
"disabled": false,
{
"disabled": false,
"bindings": [
{
"name": "myQueueItem123",
"type": "queueTrigger",
"direction": "in",
"queueName": "js-queue-items",
"foo2": "binding-level"
}
]
}

I implemented only "binding-level" custom properties.
Once you create a function function.json was saved in browser/javascript.
You changed function.json in kudu but browser/javascript has old version so after changing inputs in integrate tab you updated old version. To avoid that we need to reload function.client to get new version of functoin.json.

Yes, so do think we want to round trip top level as well. e.g. just like we have disabled, we could be adding additional flags that don't make it into our UI but still need to be round tripped.
Understood about having to reload Portal to avoid caching.


Nullable properties with a default of null are not possible according to the 3.0 spec

From the spec...

default - The default value represents what would be assumed by the consumer of the input as the value of the schema if one is not provided. Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at the same level. For example, if type is string, then default can be "foo" but cannot be 1.

This, combined with the fact that properties can be nullable, means that it's not possible to have a property with a default value of null.
You can see below that the folks over at Swagger have interpreted the spec literally, as they should. It's the spec that seems to be wrong.
Here's a sample response body on my /todos/{id} route in the Swagger UI...
{
  "id": 0,
  "title": "string",
  "complete": false,
  "note": "null",
  "dueDate": "null",
  "categoryId": 0
}

And here's the OpenAPI schema for my todo objects...
Todo:
  description: A todo item helps you track what you need to get done
  type: object
  required:
    - title
    - complete
  properties:
    id:
      type: integer
    title:
      type: string
    complete:
      type: boolean
      default: false
    note:
      type: string
      nullable: true
      default: null
    dueDate:
      type: string
      nullable: true
      default: null
    categoryId:
      type: integer
      nullable: true
      default: null

Looking at the note property, we can see that the default value of null gets interpreted as the string "null".
Looking at categoryId, it seems that 0 is the closest integer to null they could think of.

@johncmunson , as I read the spec, it is only saying that the default value must conform to the type specified in the schema.

Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at the same level.

This is just to contrast the requirement with JSON Schema's less stringent guidance:

It is RECOMMENDED that a default value be valid against the associated schema.

As we're attempting to clarify in this proposal, nullable should function as a type modifier. Under that interpretation, your note Schema Object would translate to a JSON Schema with "type" : ["string", "null"]. In that case, "defaultValue" : null should be interpreted as a literal null value, not the string "null", and it should be allowed.
I'm not sure which Swagger component you were referring to. I would say that the behavior of this Swagger component is wrong; it should allow null as a default value. But honestly, the current spec is very unclear as to how nullable should be interpreted, and how it should interact with other keywords. This is yet another case of that, so I'll add it to the proposal for completeness.
Until the proposal is accepted and the v3.0.3 patch of the specification is released, we're kind of in a gray area here. But you might raise the issue in the appropriate Swagger project, and see if they agree that they should change the defaultValue validation logic. They might want to make this change even before the proposed clarification is official.

@tedepstein thanks for some of the background details surrounding this. I'm glad that it's on the team's radar to clear up some of the ambiguity surrounding null values. After your comments, I now see it from your perspective that the spec is a little ambiguous in this regard, rather than contradicting or wrong. I will raise this issue in the appropriate Swagger repo and see what their perspective is on this. Thanks!

@tedepstein I added that language from @handrews to https://github.com/OAI/OpenAPI-Specification/pull/2124 so if there is more improvements to come lets do it over there.

Thanks, @philsturgeon , @darrelmiller & @handrews .
Aside from the nullable definition, which is now complete, I would still like to review the other parts of the spec that mention nullable or relate to it, just to see if any part of it needs to be clarified or realigned with the updated definition. It's on my to-do list, and once I get to it I'll open a separate PR.
@philsturgeon , you might want to add this to your punch list in #2099 as @handrews suggests.

@tedepstein it's on! what needs to be done? We gotta merge https://github.com/OAI/OpenAPI-Specification/pull/2115 then we're done, or is there more?

@philsturgeon , I just had a look and I think #2115 is ready to go. No need for further clarifications about nullable in the spec, unless we want to provide examples somewhere. And given that it's deprecated, I'd rather provide examples elsewhere instead of adding weight to the spec.

Dope! That PR is on the agenda so I'm gonna close this one on down.


[bug] distil-small conversion results in junk!

Running distil-small.en works. However, when converting HF weights (directly copied from my HF cache) with
ct2-transformers-converter --model "$CHECKPOINT_DIR" --output_dir faster-whisper-test --copy_files tokenizer.json preprocessor_config.json --quantization float16

and infer (same code with which it works with your distil-small), it results in long processing time and junk:
2.111 Transcribed Text: 4 againouch v. sections 좋아하 v stones worup cons cena amendments estimateusal coop developing す예 pace 얼� Minecraft r obserK dpunktスト Gracias r demonstrate v semi Koreracyet meetingesaborions's Creent soon unterstüt J Eva ans queenWeid reumbing dadosap careful fondo Cooking哦 Sorry castbol Lovely means kav BY пр seemed wiresidına Cru revolutionつ PETER은 fulfilled low l commun latestfficiency generated part

Nvm, for some reason the cache copied model was corrupted but the model loaded from cache is not


Email For Reminder

I am not getting Emails on time I guess it might be a time zone issue, I received the email after a day.
how can I resolve this and get the reminder email on time that I set

Datering with TZ is a complex matter. Windows server, sql server, portal settings, user profile, language setting, Events module setting, event setting, DNN scheduler run, email handling on hid smtp server, email on the client, all can have an influence.
Start with inspecting the portal settings and enable TZ display in events module and the events. Have the scheduled task run every 5 minutes or so. Use a email capture app (I use papercut) on your local machine, so emails are handled locally during testing


flynn-host fd exhaustion caused by failed stop

I just ran into a cluster where flynn-host ran out of fds for the following reasons:

The scheduler wanted to terminate a job running on the host and sent a DELETE request to the flynn-host daemon and there were no available connection to reuse so it established a new TCP connection for the HTTP request to flynn-host.
flynn-host sent a Stop RPC to the containerinit process.
For some reason containerinit never responded to the RPC, so a HTTP response was never returned to the scheduler.
GOTO 1

This loop resulted in fd exhaustion in the flynn-host daemon. We should have safeguards that prevent this scenario.

Here's an example stuck RPC goroutine:
goroutine 264225 [chan receive, 5009 minutes]:
github.com/flynn/flynn/pkg/rpcplus.(*Client).Call(0xc2082eb0e0, 0xbab210, 0x14, 0x96e2e0, 0xc2096cc4a8, 0x94df20, 0x10ef0a0, 0x0, 0x0)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/pkg/rpcplus/client.go:412 +0xd6
github.com/flynn/flynn/host/containerinit.(*Client).Signal(0xc208035538, 0xf, 0x0, 0x0)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/host/containerinit/init.go:156 +0xe3
main.(*libvirtContainer).Stop(0xc208372050, 0x0, 0x0)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/host/libvirt_lxc_backend.go:940 +0x47
main.(*LibvirtLXCBackend).Stop(0xc208064a00, 0xc209653e12, 0x31, 0x0, 0x0)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/host/libvirt_lxc_backend.go:954 +0x85
main.(*Host).StopJob(0xc208057e00, 0xc209653e12, 0x31, 0x0, 0x0)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/host/http.go:78 +0x6ff
main.(*jobAPI).StopJob(0xc2080342b8, 0x7f314658b638, 0xc209484990, 0xc209c53e10, 0xc209403220, 0x1, 0x1)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/host/http.go:146 +0x87
main.*jobAPI.StopJob·fm(0x7f314658b638, 0xc209484990, 0xc209c53e10, 0xc209403220, 0x1, 0x1)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/host/http.go:486 +0x63
github.com/flynn/flynn/Godeps/_workspace/src/github.com/julienschmidt/httprouter.(*Router).ServeHTTP(0xc2080c9520, 0x7f314658b638, 0xc209484990, 0xc209c53e10)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/julienschmidt/httprouter/router.go:276 +0x188
github.com/flynn/flynn/pkg/httphelper.func·004(0x7f314658b638, 0xc209484990, 0xc209c53e10)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/pkg/httphelper/request_logger.go:34 +0x8a0
net/http.HandlerFunc.ServeHTTP(0xc2080bd5d0, 0x7f314658b638, 0xc209484990, 0xc209c53e10)
	/usr/local/go/src/net/http/server.go:1265 +0x41
github.com/flynn/flynn/pkg/httphelper.func·003(0x7f314658b558, 0xc209f0b040, 0xc209c53e10)
	/tmp/tmp.Z0ELp3CIwu/src/github.com/flynn/flynn/pkg/httphelper/httphelper.go:123 +0x25c
net/http.HandlerFunc.ServeHTTP(0xc2080c95e0, 0x7f314658b558, 0xc209f0b040, 0xc209c53e10)
	/usr/local/go/src/net/http/server.go:1265 +0x41
net/http.serverHandler.ServeHTTP(0xc20802faa0, 0x7f314658b558, 0xc209f0b040, 0xc209c53e10)
	/usr/local/go/src/net/http/server.go:1703 +0x19a
net/http.(*conn).serve(0xc2095bb680)
	/usr/local/go/src/net/http/server.go:1204 +0xb57
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:1751 +0x35e

Flynn is unmaintained and our infrastructure will shut down on June 1, 2021. See the README for details.


getting _undici.fetch error

I'm getting this error when authenticating, but I did verify I have the undici library installed.  I'm on windows... maybe doing something dumb?
(node:11744) UnhandledPromiseRejectionWarning: Error: ChatGPT failed to refresh auth token. TypeError: _undici.fetch is not a function

i verified my SESSION_TOKEN is correct and I can still use the earlier version of chatgpt (1.4.0)

Oh!  As I was pasting my dependencies output I saw an extremely helpful (and something I should have caught earlier) note that I'm on an older and unsupported version of node (14).
I updated to a newer version and now chatgpt works.  Thanks!

Thanks @dskill
I just released an update that throws a better error if this is the case https://github.com/transitive-bullshit/chatgpt-api/releases/tag/v2.0.4


Tests do not compile with data-fix 0.0.6

It looks like the data-fix bound needs to be set to >= 0.0.7. With data-fix 0.0.6 I get the following build error:
[1 of 3] Compiling ParserTests      ( tests/ParserTests.hs, dist/build/hnix-tests/hnix-tests-tmp/ParserTests.dyn_o )

tests/ParserTests.hs:340:23: error:
    • No instance for (Data.Functor.Classes.Eq1 NExprF)
        arising from a use of ‘assertEqual’
    • In the expression:
        assertEqual ("Parsing data file " ++ file) expected actual
      In a case alternative:
          Success actual
            -> assertEqual ("Parsing data file " ++ file) expected actual
      In a stmt of a 'do' block:
        case res of {
          Success actual
            -> assertEqual ("Parsing data file " ++ file) expected actual
          Failure err
            -> assertFailure
               $ "Unexpected error parsing data file `"
                 ++ file ++ "':\n" ++ show err }

It is set to >= 0.0.7 now.


Status on unregistering routes?

I was looking to remove some of the default routes that get created ('bulk-clone', 'bulk-delete', 'details', 'translate', etc) since I'm not using any of them.
The only thing I could find was a TODO reference in CrudRouter.php to 'Give developers the ability to unregister a route.'
Are there any plans for implementing this soon or does this functionality already exist some place else? If not, would this be a good PR to submit?

Route system is going to be changing in v4.0 .
I think there will be no new developments in this matter until v4.0.
But the ability to remove unused routes is as must.
MC

Indeed. Thank you @pxpm . No new developments for routes in 3.x. I want developers to be able to enable/disable routes, along with operation - I'm currently unhappy with the fact that each CRUD has more routes than strictly necessary. We're looking for a general solution that would:

allow developers to enable/disable routes; ideally inside the EntityCrudController, instead of fiddling in a separate routes file;
allow package developers to create new routes for their custom operations, ideally inside the EntityCrudController;

Please join the talk here about what to do in v4: https://github.com/Laravel-Backpack/CRUD/issues/1877#issuecomment-490605514


chore(main): release 0.9.3

:robot: I have created a release beep boop
0.9.3 (2024-06-28)
Bug Fixes

lambda not using correct log group (69eb0b5)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.9.3
:sunflower:


Check both cors and proxy

It looks like in this case only proxy is checked (and fails) but cors would have succeed:
https://secure.helpscout.net/conversation/349430307/4884/

We should create a standard way to fetch that.


Godot gets stuck, unable to start the editor.

Godot version:

3.0 Beta2 x11 64
and from git master, 2017-12-23
OS/device including version:

Linux Ubuntu 16 LTS
Issue description:

Godot will not start. It gets up to a half-started state and then gets stuck. It reaches the project manager screen. When I select a project and click the 'Edit' button, I get a full-screen splash. At that point it seems to get stuck. The splash window remains. I don't ever get an edit window. I experience the same when I try to create a new project.
I built and tested the current version from the git master with the same result.
I don't experience this problem with Godot 2.1.3.
Running it under a debugger yields this output:
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from godot.x11.tools.64...Reading symbols from /mnt/hgfs/src/godot/bin/godot.x11.tools.64.debugsymbols...done.
done.
(gdb) b exit
Breakpoint 1 at 0xe6f680
(gdb) r -d
Starting program: /mnt/hgfs/src/godot/bin/godot.x11.tools.64 -d
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff7f35700 (LWP 5473)]
No touch devices found
[New Thread 0x7ffff7ed4700 (LWP 5477)]
[New Thread 0x7fffe591b700 (LWP 5479)]
[New Thread 0x7ffff7e93700 (LWP 5480)]
OpenGL ES 3.0 Renderer: Gallium 0.4 on SVGA3D; build: RELEASE;  LLVM;
GLES3: max ubo light: 409
GLES3: max ubo reflections: 455, ubo size: 144
[New Thread 0x7ffff7e52700 (LWP 5481)]
ARVR: Registered interface: Native mobile
MESSAGE: 'click_ctrl' - [/root/@@499/@@2/@@3/@@4/@@10/@@11/Project List/@@12/@@24/@@25/@@27/@@463/project, VBoxContainer]
MESSAGE: 'click_ctrl' - [/root/@@499/@@2/@@3/@@4/@@10/@@11/Project List/@@26/@@28, Button]
OPENING: /home/jim/godot3-t2 (::home::jim::godot3-t2)
No touch devices found
[Thread 0x7ffff7e93700 (LWP 5480) exited]
[Thread 0x7fffe591b700 (LWP 5479) exited]
OpenGL ES 3.0 Renderer: Gallium 0.4 on SVGA3D; build: RELEASE;  LLVM;
GLES3: max ubo light: 409
GLES3: max ubo reflections: 455, ubo size: 144
ARVR: Registered interface: Native mobile
[Thread 0x7ffff7e52700 (LWP 5481) exited]
[Thread 0x7ffff7f35700 (LWP 5473) exited]
Thread 1 "godot.x11.tools" hit Breakpoint 1, __GI_exit (status=0) at exit.c:104
104	exit.c: No such file or directory.
(gdb) EditorSettings::_get - Warning, not found: text_editor/completion/callhint_tooltip_offset
EditorSettings::_get - Warning, not found: text_editor/completion/put_callhint_tooltip_below_current_line
(gdb) where
#0  __GI_exit (status=0) at exit.c:104
#1  0x00007ffff488a837 in __libc_start_main (main=0xe70006 <main(int, char**)>, argc=2, argv=0x7fffffffe158,
init=, fini=, rtld_fini=, stack_end=0x7fffffffe148) at ../csu/libc-start.c:325
#2  0x0000000000e6ff39 in _start ()
Steps to reproduce:
This may be difficult to reproduce. I have run identical versions of Godot on two instances of Ubuntu 16 LTS, running as VMs on two different hosts. On one it works, on the other it gets stuck as described. In both instances, the host OS is also the same.
The steps are:
From the shell, start the app
When the 'Project Manager' window appears, select a project and click the 'Edit' button.
Minimal reproduction project:

[x] I searched the existing GitHub issues for potential duplicates.

AlmightyScientist committed 6f3486c4866a0a0e0408c2e0dbd65f128995abf4
platform/x11/os_x11.cpp : 1053
while (p_enabled && !is_window_maximized()) {
// Wait for effective resizing (so the GLX context is too).
}
stuck the editor when open a project.
what this code doing?
it's infinite loops.

Note that Godot 3.0 may not start up if using 3D acceleration in a virtual machine (especially VirtualBox, whose 3D acceleration is limited to OpenGL 2.1). It should work with software fallbacks (such as the software Mesa implementation or LLVMpipe), but very slowly – the editor will probably be unusable in such cases.

i think it's not a virtual machine isuss, it's a code isuss:
void OS_X11::set_window_maximized(bool p_enabled) {
	if (is_window_maximized() == p_enabled)
		return;

........balabala codes.......

	while (p_enabled && !is_window_maximized()) {
		// Wait for effective resizing (so the GLX context is too).
	}

	maximized = p_enabled;
}

let's run the codes, call set_window_maximized(true):
if (is_window_maximized() == p_enabled)
		return;

so is_window_maximized() must equal false, otherwise the function will return.
	while (p_enabled && !is_window_maximized()) {
		// Wait for effective resizing (so the GLX context is too).
	}

while(true && !false){
}

a infinite loops.
let's run the codes NO.2, call set_window_maximized(false):
is_window_maximized() must equal true, otherwise the function will return.
while(f) = infinite loops.
while(false && !true){
}

a infinite loops.
i comment out those codes, no stuck anymore.
with those codes, stuck forever.

is_window_maximized() in the while loop condition doesn't necessarily return the same value as the one at the beginning of the function.

Maybe related to https://github.com/godotengine/godot/issues/15068.
I implemented the while loop and were waiting for feedback as I knew it wasn't really safe without a Timeout. This splash boot is so troublesome with x11..

Duplicate of #15068


useDefineForClassFields breaks subclasses if super() has any statements before it

The following code generates broken JavaScript code, which causes a runtime error in all browsers:
new Test();
// ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor

Notice how removing the 1; statement before super() produces the expected output.
TypeScript Version:  3.7.2 (the dev playground fails loading for me)

Search Terms:
useDefinedForClassFields object defineProperty class field initializers
Code
class Test extends Array {
    prop: number;
    constructor() {
        1; // Any statements here break it
        super();
        this.prop = 1;
    }
}

Expected behavior:
"use strict";
class Test extends Array {
    constructor() {
        1; // Any statements here break it
        super();
        Object.defineProperty(this, "prop", {
            enumerable: true,
            configurable: true,
            writable: true,
            value: void 0
        });
        this.prop = 1;
    }
}

Actual behavior:
"use strict";
class Test extends Array {
    constructor() {
        Object.defineProperty(this, "prop", {
            enumerable: true,
            configurable: true,
            writable: true,
            value: void 0
        });
        1; // Any statements here break it
        super();
        this.prop = 1;
    }
}

Playground Link:
https://www.typescriptlang.org/play/?useDefineForClassFields=true&ssl=6&ssc=43&pln=5&pc=20#code/PQKgBArgzgpgIjAZgSwHYwGIHsBOBhAGwEMooNkYCATKALjABccIYwRgAoDgY2NLAAqMKAzAwAHgxioaYAII4cRAJ5gA3hzBawABxxYd9VBAC2AIxg4A3Ju3csqEc24NcACgCU629u0BGKzBgYHlUVREiKRNpBigwAAtLVjMcGCIAazBkBh9fMCgIHUtPGzztBnjkKAA6PQMwAF4wANyAXw5WoA
Related Issues:
https://github.com/microsoft/TypeScript/issues/33895 maybe

This is indeed a duplicate of #33895. In that other issue the property had an initializer, which caused a compiler error (that indicates the compiler cannot handle this case properly). In your example there is no such error but still the same bad code is emitted.


osu-lazer doesn't build on latest unstable

Describe the bug
osu-lazer refuses to be built on latest unstable, throwing some errors I cannot understand due to not having experience with the build system.
To Reproduce
Steps to reproduce the behavior: NIXPKGS_ALLOW_UNFREE=1 nix build --impure nixpkgs/nixos-unstable#osu-lazer
Expected behavior
obvious
Screenshots
n/a
Additional context
I am currently in process of bisecting Nixpkgs to see where the error was introduced. I will amend this bug report once I find the commit to blame.
Notify maintainers

Metadata
Latest unstable at the moment of writing was e019872af81e4013fd518fcacfba74b1de21a50e
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
 - osu-lazer
# a list of nixos modules affected by the problem
module:

cc @oxalica as the maintainer of osu-lazer

8dbc855b491f4050a8bbde0789949d52fb9082fe is the first bad commit, bumping cacert from 3.60 to 3.63. I'll try reverting it and see if that fixes the issue.

Nuget upstream has a certificate expired several months ago. It is fixed in .NET SDK 5.0.202 (https://github.com/NuGet/Home/issues/10491#issuecomment-819122398)
So I did a version bump of dotnet in #119456 to fix affected packages including osu-lazer.

I'll try updating, then. Closing.


parser error Couldn't parse params file

Working on Humble
I was trying to utilize the wonderful gazebo plugin from this package, but I found when you have to link the config yaml with all the controller params, you need to specify the absolute path. For some reason the plugin cannot parse the relative path. Like for example $(find xyz_package)/configs/your_controller.yaml.
I also tried setting the path to a xacro property and assigning it. But for some reason none of the xacro commands are working especially in the parameters line. Somehow the gazebo_ros2_control plugin does not account for the xacro commands, rather just consider it as a string.
    <gazebo>
        <plugin filename="libgazebo_ros2_control.so" name="gazebo_ros2_control">
           <parameters> ${yaml_file}</parameters>
        </plugin>
    </gazebo>

This is an issue somewhere originating with this line https://github.com/ros-controls/gazebo_ros2_control/blob/f64e56af4800120150460ffba15cd73db511521c/gazebo_ros2_control/src/gazebo_ros2_control_plugin.cpp#L239
Maybe it's just rcl_parse_arguments() function.
I apologize if I'm doing something wrong whille assigning the parameters.
This issue is close to https://github.com/ros-controls/gazebo_ros2_control/issues/141

Do I understand that correctly, you are trying something like this
https://github.com/ros-controls/gazebo_ros2_control/blob/370bc756674f5f76fbcbe41b1995b2233705e49a/gazebo_ros2_control_demos/urdf/test_cart_position.xacro.urdf#L68-L72
and it does not work? What is the exact error message?
Have you tried running xacro on your xacro file?
xacro your_file.xacro > result.urdf

and the path should be expanded correctly.

and it does not work?

Exactly

What is the exact error message?

This is the exact line where the error occurs
https://github.com/ros-controls/gazebo_ros2_control/blob/370bc756674f5f76fbcbe41b1995b2233705e49a/gazebo_ros2_control/src/gazebo_ros2_control_plugin.cpp#L250

Have you tried running xacro on your xacro file?

Yes, as I said above:

I also tried setting the path to a xacro property and assigning it. But for some reason none of the xacro commands are working especially in the parameters line. Somehow the gazebo_ros2_control plugin does not account for the xacro commands, rather just consider it as a string.

This plugin itself does not parse xacro commands, you have to run xacro to create a proper urdf before you pass it to this plugin
https://github.com/ros-controls/gazebo_ros2_control/blob/370bc756674f5f76fbcbe41b1995b2233705e49a/gazebo_ros2_control_demos/launch/cart_example_position.launch.py#L36-L45
Is the demo from this repository working?
Back to your example with $(find package): Is the path expanded correctly in the result.urdf, if you run xacro as I suggested above?

Ah well, I get your point now.. I also had a URDF file and I thought I processed the Xacro by doing something like this, whilst launching the robot_state_publisher:
start_robot_state_publisher_cmd = Node(
        package='robot_state_publisher',
        executable='robot_state_publisher',
        name='robot_state_publisher',
        output='screen',
        parameters=[{'robot_description':Command([
            "xacro", " ", urdf]), 'use_sim_time': use_sim_time}]
        )

Seems that I need to use the doc.toxml()..
Thank you very much for the nice solution.. Really appreciate your time..


Event queuing model for SW

@annevk has long been pointing out about the need for an external event queue to support SW lifecycle: https://github.com/slightlyoff/ServiceWorker/issues/290#issuecomment-44257645.
As the way I've spec'ed it is a bit different though, I'd like to have your feedback.
Here's the behavior:

Every lifecycle event or functional event triggers Run Service Worker algorithm
Run Service Worker
If the service worker is already running, do nothing and abort the steps.
Create separate execution context, environment settings object, global object, etc.
Run the event loop specified by the environment settings object.
Queue a task to dispatch the event at the service worker

So, it's not missing any event during a boot-up.
The events are being queued up and handled while SW's running.
All the events are extendable event (yeah FetchEvent will also be), so we can signal UAs to keep it up for those given promises' settlements. And have all the events queued up while it's alive.
But we don't re-queue those events discarded when UA terminates a service worker.

WDYT?

Do you mean "abort the substeps" above?
Losing events seems really bad. We should not let that happen. One way could be to only handle new external tasks once the existing tasks have finished or resulted in service worker termination.
If someone creates a bunch of tasks in a running service worker that should not then lead to the next hundred network fetches getting lost if the UA decides upon termination.

Do you mean "abort the substeps" above?

Yes abort the rest of the steps in Run Service Worker. The steps in the above comment is just a snippet I put together to show the idea.

Losing events seems really bad. We should not let that happen.

Agreed on having to not let the events lost before getting dispatched. Curious to know whether the points you concern the events can be lost are before being dispatched or after queued in the service worker (in which case you might have meant lost by termination)?

One way could be to only handle new external tasks once the existing tasks have finished or resulted in service worker termination.

By "the existing tasks" here, do you mean the tasks already queued in the service worker's responsible event loop's task queue? If so, what's the model in your mind that'd delay handling those new external tasks? Is that an external queue or trying to delay queuing a task somehow?

If someone creates a bunch of tasks in a running service worker that should not then lead to the next hundred network fetches getting lost if the UA decides upon termination.

UA terminating a service worker seems it implies it's done with the tasks in the queue or met an abnormal operation. Should we really retain and requeue those bunch of tasks which may delay handling the new requests? Also backing up the dropped tasks by putting'em into the external queues again will get the order of the tasks tangled up.
On second thought, I'm open to the external queue idea if needed. An external queue associated with a service worker which persists the lifetime of it seems reasonable. But I'm not sure about whether we should requeue the dropped tasks when UA terminates the service worker. And also I'd like to mull over with all the possible models before coming to a conclusion.

The model I proposed was that the conceptual "queue external task" waits for a service worker's queue to be empty. However, that might be bad if a service worker supports task source, where e.g. the fetch task source has higher priority compared to everything else.
I'm not entirely sure what a good model would be. Perhaps just have some generic requirements if others cannot come up with something simple to say. But we cannot drop fetch tasks that have not been processed.

Struggling to get a handle on this, so here's some use cases:
The browser has 100 fetch events queued, but the user navigates or hits "stop". Firing those 100 events would be wasteful, ideally the browser should be able to take them out of the queue. The SW may not be able to terminate, as the navigated-to page may also need the SW.
The browser has 100 fetch events queued, but the user closes the browser. Firing those 100 events is probably not possible, but they shouldn't be fired next time the browser opens - the reopening of the page will refire them.
The browser has fetches & push events queued while the activate event for the target ServiceWorker is underway. However the activation fails leaving the registration without an active worker. I guess the queue should remain at this point? Added this concern to https://github.com/slightlyoff/ServiceWorker/issues/659#issuecomment-87778808 - worried about a large buildup of events here.
The browser has 10 fetch events queued, 3 fired and awaiting response, and an additional push event with an unsettled waitUntil. The ServiceWorker crashes for reasons unknown. I think the three fetch events & push should be treated as if they were given a rejected promise. The SerivceWorker should restart and the queue should continue to process (the previously fired events are not rescheduled unless they typically do when their waitUntil/respondWith promise rejects, as is the case with one-off background sync).
Does that help any?

There are two models that I can think of: (A) the discard-when-terminate model and (B) the external queue model.
(A) basically is this: https://github.com/slightlyoff/ServiceWorker/issues/649#issue-60629643. When terminate a worker is executed, it doesn't requeue the tasks. Those tasks are discarded as they are in dedicated workers / shared workers.
(B) needs task queue(s) associated with the registration. And the service worker's event loop should process the registration's task queue instead of its own task queue in a way. It'd be like:
A service worker registration has an associated task queue.
A service worker's responsible event loop must process its containing service worker registration's task queue instead of its own task queue.
(I assumed the way it specifies makes sense. @annevk does it?)
(A) is simple. When terminate a worker is executed, the UAs can simply terminate those fetches and discard the tasks. Assuming the termination is an abnormal case (as we provide waitUntil, and all the operations are guided to be written async, etc), clients can easily recover by reload itself. Yeah, but the clients have to do that.
(B) The browsers (so and the clients) will not lose their events. But when the browser is closed and reopened, those unwanted events in the queue should be processed. (Maybe it can be an advantage to particular functional events like push?) Moreover, when the service worker's activation fails, a massive number of events may be piled up in the registration's task queue.
Thanks @jakearchibald for the use cases to think of. Here's my thought:

The browser has 100 fetch events queued, but the user navigates or hits "stop". Firing those 100 events would be wasteful, ideally the browser should be able to take them out of the queue. The SW may not be able to terminate, as the navigated-to page may also need the SW.

(This issue seems orthogonal to both (A) and (B) I think.) Ideally yes. But I'm concerned that this requirement will add complexity like tasks having to maintain/access additional information about the request's client and the algorithm having to remove those corresponding tasks from random positions which may not be the top of the queue. Assuming all the queued tasks will do async jobs, I'm leaning to just let them be processed. The navigation or the user abort will terminate the ongoing fetches anyway.

The browser has 100 fetch events queued, but the user closes the browser. Firing those 100 events is probably not possible, but they shouldn't be fired next time the browser opens - the reopening of the page will refire them.

Yes, this can be a disadvantage of (B).

The browser has fetches & push events queued while the activate event for the target ServiceWorker is underway. However the activation fails leaving the registration without an active worker. I guess the queue should remain at this point? Added this concern to #659 (comment) - worried about a large buildup of events here.

This is a disadvantage of (B). As @jakearchibald pointed, queuing (possibly) massive number of the functional events until the worker is successfully activated seems not plausible. (The current Handle Fetch (step 15.2) falls back to the network in this case.)

The browser has 10 fetch events queued, 3 fired and awaiting response, and an additional push event with an unsettled waitUntil. The ServiceWorker crashes for reasons unknown. I think the three fetch events & push should be treated as if they were given a rejected promise. The SerivceWorker should restart and the queue should continue to process (the previously fired events are not rescheduled unless they typically do when their waitUntil/respondWith promise rejects, as is the case with one-off background sync).

(B) will do this. For (A), the clients should reload. (A push event should have been lost in this case.)
Thoughts?

I think (B) is still the better model, but you obviously need to GC some stuff and let other stuff be. If someone closes a client and that client has outstanding fetches, those fetches are terminated. We might need to have a check before we dispatch the fetch event to make sure that it has not been canceled.

Implementers' feedback would also be appreciated.
/cc @mattto @coonsta @nikhilm @wanderview @slightlyoff @jakearchibald

(B) needs task queue(s) associated with the registration. And the service worker's event loop should process the registration's task queue instead of its own task queue in a way

I noticed a problem with the above. The service worker's event loop should also have to process its own task queue for message events. So, if we go with (B) external queue model, requeuing from/to between service worker's task queue and registration's task queue seems not avoidable.

F2F:

Define service worker registration queues (depending on each event)
Service worker queues (depending on each event)

F2F: queue may be too much ordering. Maybe a bag would be more appropriate?

Yeah, need to decide if it's the network layer that decides on ordering or if that happens between the document and the service worker.

Updated this part: 7a8bc4223462f2e6000b2b2573a009f67c686be4.

Added two task sources: the handle fetch task source and the handle functional event task source.
A registration owns its own task queues that back up the tasks (having the above task sources) from the active worker's task queues.
Defined Terminate Service Worker algorithm where back up the tasks to the registration's task queues as describe above.
Run Service Worker algorithm re-queues the tasks from the registration's task queues to the service worker's event loop's task queues if the service worker is an active worker.

As discussed in the f2f, tasks for message events are not re-queued as they are sent to specific service workers instead of an active worker.

@annevk @jakearchibald @slightlyoff Could you review it?

Closing.


Extended formatted sql preconditions by table-/viewExists

Impact

[ ] Bug fix (non-breaking change which fixes expected existing functionality)
[X] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
As described in (#3767) I extended the formatted sql parsing with a table-/viewExists precondition.
The user can add a tableExist precondition with the following syntax to his changeset.
--changeset "n marcq":"change 3" (stripComments:false splitStatements:false endDelimiter:X runOnChange:true runAlways:true contextFilter:y dbms:mysql runInTransaction:false failOnError:false)
--precondition-table-exists table:table1 schema:12345
create table table2 (
    id int primary key
);

or in the viewExists case like so
--changeset "n marcq":"change 3" (stripComments:false splitStatements:false endDelimiter:X runOnChange:true runAlways:true contextFilter:y dbms:mysql runInTransaction:false failOnError:false)
--precondition-view-exists view:view1 schema:12345'
create table table1 (
    id int primary key
);

As the documentation (https://docs.liquibase.com/concepts/changelogs/preconditions.html) says the parameter tableName / viewName are required and the schemaName is an optional parameter.
For this change some new regex patterns where introduced in the AbstractFormattedChangeLogParser and used inside the FormattedSqlChangeLogParser Class to extract the precondition type & parameters.
Addtionally two groovy tests targeting the parsing logic were added.
Additional Context
Some manuell testing with a postgres db was done to verify the changes on my local setup.
Case 1: Table Exists precondition fails because of a missing table
In the screenshot below we can see that the example.sql contains two changesets. The first creates a regular table. The second changeset tests with a precondition if a table is existing and creates a second table if the precondition passes.
On the right we can see a freshly started postgres database.

Precondition test failed because we searched for a non existing table.
Result only one table was created.

Case 2: Table Exists precondition successfully passed and runs the changeset
In the screenshot below we can see that the example.sql contains two changesets. The first creates a regular table. The second changeset tests with a precondition if a table is existing and creates a second table if the precondition passes.
On the right we can see a freshly started postgres database.

Precondition passes because we found a corresponding table.
Result reflects that two tables were created.

If any other preconditions would be beneficial for the formatted sql syntax, let me know I am happy to contribute some additional conditions.
Fixes #3767

Hi @JulienMa94,
Thank you for creating this PR, I like this enhancement. I think overall code changes look good to me, but performing a bit of manual testing I noticed when trying to deploy a changeset like the one below using a precondition-view-exists clause, but without specifying a view name (which is a required field):
--changeset "n voxland":"change 6" (stripComments:false splitStatements:false endDelimiter:X runOnChange:true runAlways:true contextFilter:y runInTransaction:false failOnError:false)
--precondition-view-exists
create table table4 (
    id int primary key
);

Precondition is not correctly parsed, hence ignored, and change is deployed anyway without returning any error. The same applies to precondition-table-exists.
Can you please take a look at it?
Also, I think it would be nice if we could add some of these negative tests (without specifying required fields or providing null values), I think having a few more scenarios would give us some more confidence.
Thanks,
Daniel.

Hi @MalloD12,
thx for your review I will look into this cases as soon I will have some time & add additional test cases 👍🏼
Greetings
Julien

Hi @MalloD12,
thx for your review I will look into this cases as soon I will have some time & add additional test cases 👍🏼
Greetings Julien

Sounds good, thank you for all your help!
Cheers,
Daniel.

Hi @MalloD12,
I was able to reproduce the mentioned case above for table-exists, view-exists and also for the existing precondition sqlCheck.
This behaviour occured because no Regex Pattern matched in the AbstractFormattedChangeLogParser.
protected final String PRECONDITION_REGEX = String.format("\\s*%s[\\s]*precondition\\-([a-zA-Z0-9-]+) (.*)", getSingleLineCommentSequence());

The processing of any precondition is ignored at this time when no parameters are provided by the user. Leading to this misleading behaviour.
My suggestion is to enhance the AbstractFormattedChangeLogParser with a regex which captures the invalid regex values and calls an abstract Method handleInvalidPreconditionCase which is implemented by the FormattedSqlChangeLogParser.
AbstractFormattedChangeLogParser
Abstract Method
protected abstract void handleInvalidPreconditionCase(ChangeLogParameters changeLogParameters, ChangeSet changeSet, Matcher preconditionMatcher) throws ChangeLogParseException;

Invalid empty precondition regex
protected final String INVALID_PRECONDITION_REGEX = String.format("\\s*%s[\\s]*precondition\\-([a-zA-Z0-9-]+)", getSingleLineCommentSequence());

FormattedSqlChangeLogParser
@Override
    protected void handleInvalidPreconditionCase(ChangeLogParameters changeLogParameters, ChangeSet changeSet, Matcher preconditionMatcher) throws ChangeLogParseException {
        if (preconditionMatcher.groupCount() == 1) {
            String name = StringUtil.trimToNull(preconditionMatcher.group(1));
            if (name != null) {
                if ("sql-check".equals(name)) {
                    throw new ChangeLogParseException("Precondition sql check failed because of missing required Parameter expectedResult and sql.");
                } else if ("table-exists".equals(name)) {
                    throw new ChangeLogParseException("Precondition table exists failed because of missing required table name parameter.");
                } else if ("view-exists".equals(name)) {
                    throw new ChangeLogParseException("Precondition view exists failed because of missing required view name parameter.");
                } else {
                    throw new ChangeLogParseException("The '" + name + "' precondition type is not supported.");
                }
            }
        }
    }

In this case we handle an empty precondition case by throwing an ChangeLogParseException and inform the user about what parameters were missing.
I added three more tests to handle this case of an empty precondition for sqlCheck, tableExists & viewExists.
Greetings
Julien

Hi @MalloD12,
I was able to reproduce the mentioned case above for table-exists, view-exists and also for the existing precondition sqlCheck. This behaviour occured because no Regex Pattern matched in the AbstractFormattedChangeLogParser.
protected final String PRECONDITION_REGEX = String.format("\\s*%s[\\s]*precondition\\-([a-zA-Z0-9-]+) (.*)", getSingleLineCommentSequence());

The processing of any precondition is ignored at this time when no parameters are provided by the user. Leading to this misleading behaviour.
My suggestion is to enhance the AbstractFormattedChangeLogParser with a regex which captures the invalid regex values and calls an abstract Method handleInvalidEmptyPreconditionCase which is implemented by the FormattedSqlChangeLogParser.
AbstractFormattedChangeLogParser
Abstract Method
protected abstract void handleInvalidEmptyPreconditionCase(ChangeLogParameters changeLogParameters, ChangeSet changeSet, Matcher preconditionMatcher) throws ChangeLogParseException;

Invalid empty precondition regex
protected final String INVALID_EMPTY_PRECONDITION_REGEX = String.format("\\s*%s[\\s]*precondition\\-([a-zA-Z0-9-]+)", getSingleLineCommentSequence());

FormattedSqlChangeLogParser
@Override
    protected void handleInvalidEmptyPreconditionCase(ChangeLogParameters changeLogParameters, ChangeSet changeSet, Matcher preconditionMatcher) throws ChangeLogParseException {
        if (preconditionMatcher.groupCount() == 1) {
            String name = StringUtil.trimToNull(preconditionMatcher.group(1));
            if (name != null) {
                if ("sql-check".equals(name)) {
                    throw new ChangeLogParseException("Precondition sql check failed because of missing required Parameter expectedResult and sql.");
                } else if ("table-exists".equals(name)) {
                    throw new ChangeLogParseException("Precondition table exists failed because of missing required table name parameter.");
                } else if ("view-exists".equals(name)) {
                    throw new ChangeLogParseException("Precondition view exists failed because of missing required view name parameter.");
                } else {
                    throw new ChangeLogParseException("The '" + name + "' precondition type is not supported.");
                }
            }
        }
    }

In this case we handle an empty precondition case by throwing an ChangeLogParseException and inform the user about what parameters were missing. I added three more tests to handle this case of an empty precondition for sqlCheck, tableExists & viewExists.
Greetings Julien

Nice, thanks for implementing these new changes. I'll take some time to look into the new changes tomorrow.
Thanks,
Daniel.

The functionality is correct for databases H2, PostgreSQL and MSSQL. I think it's safe to assume it will work in general. The print statements are still present, so they should be removed before merging to main.

Good point! @JulienMa94 if you don't mind I'll clean them up.
Thanks,
Daniel.

The functionality is correct for databases H2, PostgreSQL and MSSQL. I think it's safe to assume it will work in general. The print statements are still present, so they should be removed before merging to main.

Good point! @JulienMa94 if you don't mind I'll clean them up.
Thanks, Daniel.

Thanks Daniel! Sry for forgetting to remove the dev prints. I thought I already had removed them all.
Cheers,
Julien

Internal doc: https://datical.atlassian.net/browse/PD-4389


[#158665945] Use plans unique_id to identify the pricing_plans (attempt 2)

What
This PR is the second one after closing #49
This PR changes how we map the service plans for billing purposes with the events.
Currently we were using the Cloud Foundry generated service_plan_guid for this purpose. This had the limitation that different CF deployments would require different pricing_plans with a different plan_guid.
Since we did the work to collect the historic data in https://github.com/alphagov/paas-billing/pull/36 we have the broker reported plan unique IDs available for this purpose.
This PR would leverage the table service_plans to map the events to the corresponding plans using the plan unique ID reported by the broker. It also updates the embedded config.json to use the unique_id stored in the service_plans table instead of the specific CF plan id.
Notes about the implementation:

Old Pricing Calculator URLs would break:

We change the config.json IDs, which means that the /pricing_plans would report a different GUID for the plans.
The forecast events would use this new unique_id when passing the value of plan_guid. This makes sense as the /pricing_plans where paas-admin calculator gets the values would be using uinque_ids.

We add some additional tests to cover this case

We add logic to map any service not stored in the historic tables services and service_plans to a "Unknown Plan" with cost 0.

IMPORTANT We added a SQL script to add a missing service plan for redis tiny (compose).

How to review

Code review
Deploy https://github.com/alphagov/paas-cf/pull/1502
Check you have bills for services in your dev env, admin is a good org to test with.

Optionally testing in prod data (requires access to prod):

We did compare all the costs calculated with this version for all the orgs in prod.
All the notes are in the private HackMD of the story. The scripts are documented in a comment in https://github.com/alphagov/paas-billing/pull/49#issuecomment-417677182

Before merge
It is important to run the script: scripts/create_adhoc_redis_service.sql in prod before deploying in prod:
cf login -a https://api.cloud.service.gov.uk --sso
cf target -o admin -s billing
cf conduit billing-db -- psql

and paste the script.
Who can review
Not @LeePorte or @keymon

I tested this with prod data following the notes in https://github.com/alphagov/paas-billing/pull/49#issuecomment-417677182 and works fine.

Thx @henrytk for your comments in #49. The new implementation is simpler, very little changes in code. Most changes were to add tests. It also avoids having to change the semantics of the API. :+1:

I've rebased this on master because the Compose changes (removing its collector) were breaking it on deployment.


Windows Alt-key functionality non-platform conforming

Operating system: Windows
Messenger for Desktop version: 2.0.1-beta

Currently, the app can have its menu bar hidden with view/toggle menu bar or Ctrl-Alt-B (the setting is sadly not saved upon restart). This is the only way to toggle the menu bar.
In Windows, most applications conform to the rule that whenever the menu bar is hidden, it's temporarily re-shown when pressing the Alt button (so that automatic Alt-shortcuts could be applied) and hidden when the menu gets out of focus. It would be great if MfD would behave similarly.

This is a shortcoming of Electron, issue: https://github.com/electron/electron/issues/2504

Actually, Electron already has this, I was looking at the wrong flags. Fixed in 2.0.7 (will be released soon)

\o/


As an Admin, I want to create the VC question in MET

As an Admin, I want to create the VC question in MET so that I can add it to my EAO survey
Scenario 1:
Admin adds the VC question type to a survey. They select that question (which would show up on its own page in the survey) and add all the categories available to the public (predefined & options to add new ones).
Wireframe to come after discussion on how to do it.

To be done:

Need to discuss with Geoff if we will import everything from EPIC and/or we create a UI to add/change the VCs


Pallas bitwise_left_shift unit test fix

As per the spec, the bitwise_left_shift x2 array must be non-negative, but in the unit test it is not.
https://jax.readthedocs.io/en/latest/_autosummary/jax.numpy.bitwise_left_shift.html#jax.numpy.bitwise_left_shift

@jakevdp @superbobry  Please review. Thanks!


Option for Delay

Hey there, I have a feature request I don't know if you'd be willing to implement or not. So basically, I want to be able to set a small delay before the screenshot is actually taken (but AFTER the resolution is set). That way, when using shaderpacks that have an auto exposure feature, it has time to fix the exposure before the screenshot is taken. As of right now, with this feature enabled, screenshots look like so:

Anywhere from 3-10 seconds should be plenty, but I figure a configurable option from 0-15 could be perfect
If no, no worries! But just wanted to throw this idea out there, thanks for your work on this mod!!

You're awesome, thank you tons!

no problem :)