Lancache version 2 Supervisord rewrite

This is a total refactor of generic to run through supervisord instead of our single bootstrap.sh script
Brief features and changes overview

Nginx now started by supervisord in base image (/etc/supervisord/conf.d/nginx.conf runs /opt/startnginx.sh)
Heartbeat now started by supervisord (overlay/etc/supervisor/conf.d/heartbeat.conf)
bootstrap.sh now run through supervisord hooks (overlay/hooks)
nginx and generic config is now sharded to allow easier overriding of individual sections. (See later)

Advantages

SupervisorD handles process management
Layered config files, significantly improves ability to layer custom images on top whilst retaining updates from the base image
Steamcache/steamcache and Steamcache/monolithic could both layer from this file to minimise differences between the images and benefit simply from PR's without having to change all the images we maintain

Compatibility
Docker image is fully backwards compatible with existing docker image command line, env vars and cache data directories
Testing

This image has been run throughout stratlan (with a further monolithic cache overlay which can currently be found at vibroaxe/monolithic)
No issues found

New Structure Explanation
nginx and generic config is now sharded to allow easier overriding of individual sections.

overlay/etc/nginx/nginx.conf (primary config)
overlay/etc/nginx/conf.d/* (top level config includes)

overlay/etc/nginx/conf.d/10_log_format.conf (The defined log format for steamcache)
overlay/etc/nginx/conf.d/20_proxy_cache_path.conf (The defined proxy cache stucture)

overlay/etc/nginx/sites-available/* (All sites files)

overlay/etc/nginx/sites-available/10_generic.conf (Base level steamcache/generic file includes)

overlay/etc/nginx/sites-available/generic.conf.d/* (All generic conf files

overlay/etc/nginx/sites-available/generic.conf.d/10_generic.conf (Defines location blocks for / LoL and heartbeat)
overlay/etc/nginx/sites-available/generic.conf.d/root/* (Include files for / location block)

overlay/etc/nginx/sites-available/generic.conf.d/root/10_loop_detection.conf (loop detection)
overlay/etc/nginx/sites-available/generic.conf.d/root/20_cache.conf (main cache config declarations)
overlay/etc/nginx/sites-available/generic.conf.d/root/30_cache_key.conf (cache key, split for ease of overriding in monolithic)
overlay/etc/nginx/sites-available/generic.conf.d/root/40_etags.conf (etag handing)
overlay/etc/nginx/sites-available/generic.conf.d/root/90_upstream.conf (upstream proxy headers)
overlay/etc/nginx/sites-available/generic.conf.d/root/99_debug_header.conf (debug headers to aid clients)

just finishing up a few reworks which occurred to me whilst rewriting the PR

As discussed at StratLAN, I'm 100% happy for this to be merged.  It's proven under load and has clear advantages over the previous version.

LGTM, with comments:

By using a custom base image, we need to take responsibility for issuing new versions of that base image for security patches, etc, as its base image receives updates. Previously this could be done by an individual fairly trivially, by rebuilding our image with --pull, and they would receive security updates published via the nginx image, where this automation has already been done.
We should aim to have a replacement for the cache test page that is used in the new version that can be run both without internet access (e.g. self-contained, self-hosted dynamically generated page), and without incurring load on a third party, especially in the event of a failure to cache on our part.

After conversations:

Creating our own base image from ubuntu:bionic instead of using 1and1internet/ubuntu-18-nginx:latest seems to make more sense. The upstream has a lot of use-case specific modifications that don't necessarily line up with our own.
Custom base image security concerns can be alleviated by using Docker Hub's automated build repository linking to declare our build dependencies.
cache_test.sh only runs during unit tests at present, this doesn't cause undue concern to external parties.

Created new base images:
https://github.com/steamcache/ubuntu
and
https://github.com/steamcache/ubuntu-nginx
These are being automatically built at https://hub.docker.com/steamcache/ubuntu and https://hub.docker.com/steamcache/ubuntu-nginx and have been setup to autobuild on base repo build.
Last ubuntu image was pushed 15 days ago, i'm currently struggling to find "when" the base image gets updated. However we can run a cron/webhook if we feel that the builds aren't running regularly enough to pickup the relevant security patches etc. One to be monitored I feel.
Currently all 3 images (ubuntu:latest, ubuntu-nginx:latest and generic:supervisord) are successfully running their unit tests
If @GotenXiao and @JasonRivers would be so kind as to take a quick look at the base images and pick me up on anything I've done wrong that would be great. If nothing else jumps out then we are clear to build

Woo, CI on generic!

Approval received. Pulling the trigger. This will not currently deploy through circleci, but through docker hubs automated build process instead.
Circle CI deployment coming later


ENH: enable X11 support for macOS

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Follow-up for #23
Closes #22

Last time I checked X11 (used through XQuartz) had no proper support for retina screens, which is what most if not all macs have shipped with for quite some time now. Does the same hold here?
In general, I am hesitant to drag in a rather heavy dependency list for a very niche feature. I assume that this PR is driven by your bmad needs? If the problem lies with supporting plplot, you may want to explore using a different device instead, one that is more native to macOS.


mapnik: unstable-2022-10-18 -> unstable-2023-11-28

Description of changes
Removed two no-longer-needed patches:

cmake-harfbuzz.patch: Fixed here
include.patch: Fixed here

Enabled Checks, which requires allowing one test to fail:

datasource-ogr-test-should-fail.patch

This "release" also includes a patch which mod_tile is expecting for Mapnik versions >= 4:
Seen here

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

[x] 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
[x] 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 277128 run on x86_64-linux 1

10 packages failed to build:

apacheHttpdPackages.mod_tile (apacheHttpdPackages_2_4.mod_tile)
mapnik
perl536Packages.Tirex
perl536Packages.Tirex.devdoc
perl538Packages.Tirex
perl538Packages.Tirex.devdoc
python310Packages.python-mapnik
python310Packages.python-mapnik.dist
python311Packages.python-mapnik
python311Packages.python-mapnik.dist

Hmm, yes I see that. I am not having any issues building it locally, and the logs are not showing any errors. I have added a commit in order to attempt the build with enableParallelBuilding disabled, which is what previous versions of Mapnik did in order to build certain targets which required more RAM. And since the x86_64-darwin builds (which use -j1) are all building successfully, I think this might be a valid path. I cannot think of anything else to try at this time.

Nevermind, upon closer inspection of the logs, it looks like there is still an issue which requires cmake-harfbuzz.patch. I have re-included that patch.

Result of nixpkgs-review pr 277128 run on x86_64-linux 1

4 packages failed to build:

python310Packages.python-mapnik
python310Packages.python-mapnik.dist
python311Packages.python-mapnik
python311Packages.python-mapnik.dist

6 packages built:

apacheHttpdPackages.mod_tile (apacheHttpdPackages_2_4.mod_tile)
mapnik
perl536Packages.Tirex
perl536Packages.Tirex.devdoc
perl538Packages.Tirex
perl538Packages.Tirex.devdoc

I'm not sure why that was no longer working, I added python3Packages.boost to python-mapnik's propagatedBuildInputs

I don't think it has anything to do with adding boost to propagatedBuildInputs. I get errors like
src/mapnik_enumeration.hpp:71:20: error: invalid ‘static_cast’ from type ‘const mapnik::enumeration<mapnik::gamma_method_enum, mapnik::gamma_method_e_to_string, mapnik::gamma_method_e_from_string, mapnik::gamma_method_e_lookup>’ to type ‘long int’
   71 |                 ,  static_cast<long>( v ));
      |                    ^~~~~~~~~~~~~~~~~~~~~~

and
src/mapnik_enumeration.hpp:71:20: error: invalid ‘static_cast’ from type ‘const mapnik::enumeration<mapnik::gamma_method_enum, mapnik::gamma_method_e_to_string, mapnik::gamma_method_e_from_string, mapnik::gamma_method_e_lookup>’ to type ‘long int’
   71 |                 ,  static_cast<long>( v ));
      |                    ^~~~~~~~~~~~~~~~~~~~~~

I think python-mapnik is simply not yet compatible with recent versions of mapnik.
I suggest you open an upstream issue and mark python-mapnik broken.

https://github.com/mapnik/python-mapnik/issues/270#issuecomment-1653606505 claims to have a fix but after applying that commit using fetchpatch it complains about C++20.

Alright @dotlambda, I figured out the issue and I now have nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD" running without errors on my machine. Let me know if it's working for you.
It looks like support for Proj >= 6 isn't completely merged into the default branch, so I tried out the proj6 branch (omitting the latest commits which break the compilation.)
https://github.com/mapnik/python-mapnik/compare/master...proj6

@hummeltech Do you want to add yourself as maintainer?

Sure, that's fine, shall I add myself onto the list?

Sure, that's fine, shall I add myself onto the list?

Yes, you'll first have to add yourself to maintainers/maintainer-list.nix in one commit and then to mapnik's meta.maintainers in a separate one.

Result of nixpkgs-review pr 277128 run on x86_64-linux 1

10 packages built:

apacheHttpdPackages.mod_tile (apacheHttpdPackages_2_4.mod_tile)
mapnik
perl536Packages.Tirex
perl536Packages.Tirex.devdoc
perl538Packages.Tirex
perl538Packages.Tirex.devdoc
python310Packages.python-mapnik
python310Packages.python-mapnik.dist
python311Packages.python-mapnik
python311Packages.python-mapnik.dist


Guys, please stop deleting/changing tags

Posting here but this applies to many Inaka projects.
I am currently adding a test in erlang.mk to make sure all packages build. Some (many?) of the projects you submitted had the wrong tag to begin with, a project has been entirely removed (ebitly), but more importantly: some tags seem to have been removed or renamed. For example when elvis was added to erlang.mk the tag was explicitly set to 0.1.0-alpha. The tag is now gone and the 0.1.0 tag is more recent than the other one, suggesting it was renamed.
Please, never do this again. What you push to a public git repository, barring any legal obligation, should never change, otherwise tools and forks will break.
None of the projects from Inaka have worked so far, and all broken projects so far are from Inaka. I will update all project version to "master" to ensure it works. This may or may not be what you want.
Feel free to close. I just wanted to bring this issue to your attention.

Thanks for the advice, @essen
I'm sending an internal email now with this after closing the issue.
I'll be cc'ing you in it so we can discus this further there.

Cool thanks for humoring me. :-)


Implement W-3 scheme to the CESE solver

Bitbucket: https://bitbucket.org/solvcon/solvcon/issue/2
Originally reported by: Yung-Yu Chen
Originally created at: 2010-11-17T21:01:32.723

Remove unnecessary arrays; fixes #2.
→ <>
----------------------------------------
Original comment by: Yung-Yu Chen

Removing component: cuse (automated comment)
----------------------------------------
Original comment by: Yung-Yu Chen


⚠ Heritage of Faith Christian Church - Gold Coast has degraded performance

In a242d95, Heritage of Faith Christian Church - Gold Coast (https://heritageoffaith.com.au) experienced degraded performance:

HTTP code: 200
Response time: 11978 ms

Resolved: Heritage of Faith Christian Church - Gold Coast performance has improved in 353e8ea.


This is a test

Testing.

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

ID: dc8f031a-6896-463c-7dc7-76f94a993528
Version Independent ID: fcc85029-2874-a193-ba2b-05ca6067d6ff
Content: Quickstart- Set up Azure Kinect DK
Content Source: articles/kinect-dk/set-up-azure-kinect-dk.md
Product: kinect-dk
GitHub Login: @tesych
Microsoft Alias: tesych

This is a test. Closing issue.


ask for code

i have been studying your paper：《Wasserstein GAN》， could you share the code corresponding to figure 2, page 9 in your paper to me ?
thanks very much! And WGAN is a masterpiece in my mind !!

Hi! I was looking around but I couldn't find the exact code. I think @soumith may have it somewhere.
The code was a modification of this one with 1D gaussians instead of 2D, hope it helps :). I haven't run this code in centuries so you may have to play with it a bit but it's all in there.
https://gist.github.com/martinarjovsky/eaf675b622e512ba1b554f16a877b49b
Thanks for the nice comments!


CLI parses bad arguments

This may be an issue with the Parsec package itself, but when using the fly CLI it parses arguments in a strange way. Instead of throwing an error when an incorrect flag has been passed it will ignore what it doesn't parse as valid and attempt to run whatever command it may find. It should not be parsing potential flags from incorrect flags; it should require the exact flag needed and nothing more. Some examples:
fly -vdf
// > fly, 0.3.4
// returns the version, should throw an error that -vdf is not a valid flag

fly -l12312312312
//> Available tasks
//> default
// returns available tasks, should throw an error

fly -12345
//> [11:02:59] Flying with /Users/xxxx/xxxx/flytest/Flyfile.babel.js...
//> [11:02:59] -12345 not found in Flyfile.
// any argument with a preceeding - should be considered a flag, not a task

It should work much like the node CLI does, and throw errors if the flags are not valid.
node -v
// > v0.12.0
// returns node version

node -v123
// > node: bad option: -v123
// throws appropriate error

CLI arguments are one thing that should require strict equality between whats defined and whats passed at runtime.

Parsec will simply fill in the returned arguments object with whatever data it could gather from your arguments. This was a design decision, but it's not set in stone so I am open to suggestions.
In this case you have clearly stated what the expected behavior should be:

It should work much like the node CLI does, and throw errors if the flags are not valid.

Basically Parsec needs an option to make it throw an exception when unexpected flags are passed, we can catch that in Fly and act accordingly.
Does that make sense to you?

I think it'd be a good idea to include a 'strict mode' of sorts in parsec where exact flags are required and then implement that in Fly. We can prevent a lot of potentially strange behavior by being more restrictive with how flags are parsed.

Sounds good, would you mind opening the issue over there.

btw, why we are using parsec and not other tools like minimist?

as far as this issue is not releveant to fly it should be closed

A patch for this lands tonight in Parsec, I will follow up with an update to Fly's dependencies soon.

btw, why we are using parsec and not other tools like minimist?

There is no special reason. I was using minimist at first, but I wanted to support an elegant syntax like the one we are currently using. Parsec is also written in ES6 and uses generators, it's also less code and has no deps and it's fully tested.
Let's give Parsec a chance, if things start to break apart suddenly, we'll switch to minimist.


add leaky_relu activation layer

This PR adds the leaky_relu activation layer, which is mostly useful for generative models.
It is my first step towards implementing the DCGAN example in #1776.

Sweet, thanks for another PR :)

Looks good, thanks for another PR :)


Procedure Invalid object name 't1'.

This is related to the https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-temporary
When running the example procedure we get the error "Invalid object name 't1'.
The error is on the creation of the table that is trying to use a cte that was not created.
On top we need the WITH t1 AS  as we can see below:
CREATE TABLE #update_stats_ddl
WITH
(
DISTRIBUTION = HASH([seq_nmbr])
)
AS
WITH t1 AS (
SELECT
sm.[name]                                                                AS [schema_name]
,        tb.[name]                                                                AS [table_name]
,        st.[name]                                                                AS [stats_name]
,        st.[has_filter]                                                            AS [stats_is_filtered]
,       ROW_NUMBER()
OVER(ORDER BY (SELECT NULL))                                            AS [seq_nmbr]
,                                 QUOTENAME(sm.[name])+'.'+QUOTENAME(tb.[name])  AS [two_part_name]
,        QUOTENAME(DB_NAME())+'.'+QUOTENAME(sm.[name])+'.'+QUOTENAME(tb.[name])  AS [three_part_name]
FROM    sys.objects            AS ob
JOIN    sys.stats            AS st    ON    ob.[object_id]        = st.[object_id]
JOIN    sys.stats_columns    AS sc    ON    st.[stats_id]        = sc.[stats_id]
AND st.[object_id]        = sc.[object_id]
JOIN    sys.columns            AS co    ON    sc.[column_id]        = co.[column_id]
AND    sc.[object_id]        = co.[object_id]
JOIN    sys.tables            AS tb    ON    co.[object_id]        = tb.[object_id]
JOIN    sys.schemas            AS sm    ON    tb.[schema_id]        = sm.[schema_id]
WHERE    1=1
AND        st.[user_created]   = 1
GROUP BY
sm.[name]
,        tb.[name]
,        st.[name]
,        st.[filter_definition]
,        st.[has_filter]
)
SELECT
CASE @update_type
WHEN 1
THEN 'UPDATE STATISTICS '+[two_part_name]+'(['+[stats_name]+']);'
WHEN 2
THEN 'UPDATE STATISTICS '+[two_part_name]+'(['+[stats_name]+']) WITH FULLSCAN;'
WHEN 3
THEN 'UPDATE STATISTICS '+[two_part_name]+'(['+[stats_name]+']) WITH SAMPLE '+CAST(@sample_pct AS VARCHAR(20))+' PERCENT;'
WHEN 4
THEN 'UPDATE STATISTICS '+[two_part_name]+'(['+[stats_name]+']) WITH RESAMPLE;'
END AS [update_stats_ddl]
, [seq_nmbr]
FROM    t1;

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

ID: 8131ee36-cabb-0b6a-e27c-650159833a90
Version Independent ID: d32e56fb-1f0e-6152-85bc-743d0e04c49d
Content: Temporary tables in SQL Data Warehouse
Content Source: articles/sql-data-warehouse/sql-data-warehouse-tables-temporary.md
Service: sql-data-warehouse
Sub-service: development
GitHub Login: @XiaoyuL-Preview
Microsoft Alias: xiaoyul

@Vinhaman Thanks for the feedback! We are currently investigating and will update you shortly.

This issue is assigned to wrong people.

@Vinhaman Hello, thanks for bringing this to our attention! I have looked into this and the issue is that the example include an additional select statement that is not part of the example. the CTAS example should be:
CREATE TABLE #stats_ddl
WITH
(
DISTRIBUTION = HASH([seq_nmbr])
,    HEAP
)
AS
(
SELECT
sm.[name]                                                                AS [schema_name]
,        tb.[name]                                                                AS [table_name]
,        st.[name]                                                                AS [stats_name]
,        st.[has_filter]                                                            AS [stats_is_filtered]
,       ROW_NUMBER()
OVER(ORDER BY (SELECT NULL))                                            AS [seq_nmbr]
,                                 QUOTENAME(sm.[name])+'.'+QUOTENAME(tb.[name])  AS [two_part_name]
,        QUOTENAME(DB_NAME())+'.'+QUOTENAME(sm.[name])+'.'+QUOTENAME(tb.[name])  AS [three_part_name]
FROM    sys.objects            AS ob
JOIN    sys.stats            AS st    ON    ob.[object_id]        = st.[object_id]
JOIN    sys.stats_columns    AS sc    ON    st.[stats_id]        = sc.[stats_id]
AND st.[object_id]        = sc.[object_id]
JOIN    sys.columns            AS co    ON    sc.[column_id]        = co.[column_id]
AND    sc.[object_id]        = co.[object_id]
JOIN    sys.tables            AS tb    ON    co.[object_id]        = tb.[object_id]
JOIN    sys.schemas            AS sm    ON    tb.[schema_id]        = sm.[schema_id]
WHERE    1=1
AND        st.[user_created]   = 1
GROUP BY
sm.[name]
,        tb.[name]
,        st.[name]
,        st.[filter_definition]
,        st.[has_filter]
)
I have updated the article and you should see it soon. Please let me know if you need anything further. I will proceed with closing out this Git Issue. Thanks!

#80920

#please-close


Add missing matches

Some matches are missing in the generated JSON file, although being in the source files (see individual commits).
This pull request adds the missing matches directly to the JSONized project, since the source data is correct and the error must have happened during processing and Note: [..] please do NOT edit the JSON files but the source files in the country repos e.g.: is not a feasible solution here
I added kicker.de links to verify the correctness of my changes

After closer investigation, this seems to be caused by typos in the source data after all. I suppose this pull request will be redundant once the others to the source data are merged and files are regenerated

Thanks for your efforts and the fix in the source. Great help.  Note: Changes here get overwritten with the next build (but thanks to your fixes the missing matches should be now included). Thanks again.


[$1000] No error message received when adding up to 2 letters at the end of phone number string in the sign in page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the "Staging New Expensify" website.
Input the phone number and enter up to 2 letters at the end.
Observe there is no error message and the user taken to the magic code page.
Now add the 3rd letter at the end and observe an error appears.

Expected result:
The error message should be displayed when adding letters at the end of phone number string.
Actual result:
No error message if adding 2  or less cletters - the user is taken to magic code page and number entered is trimmed
But if the 3rd letter is added, an error message appears
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Version Number: 1.3.19-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/e0fef2ce-c869-4925-93e2-1371d3acaf7f
https://github.com/Expensify/App/assets/43996225/fea72946-4e16-46e2-8bd8-e662ea1e4cf9
Expensify/Expensify Issue URL:
Issue reported by: @OleksiiBashkyrov
Slack conversation:
https://expensify.slack.com/archives/C049HHMV9SM/p1683707368642449
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f2a4871cda7d066b
Upwork Job ID:<PHONE_NUMBER>295756288
Last Price Increase: 2023-06-06

Proposal
Please re-state the problem that we are trying to solve in this issue.
No error message until adding 2 letters, taken to magic code page and number entered is trimmed
But if 3rd letter added error message appears
What is the root cause of that problem?
The issue is from the function parsedPhoneNumber which we are using from a lib "awesome-phonenumber", this function return possible : true if 1 or 2 characters are added at the end and we have a condition against this property so the error doesn't pop.
https://github.com/Expensify/App/blob/f55c36ca9be7f347713a89521826449d90d07d06/src/pages/signin/LoginForm.js#L149-L158

What changes do you think we should make in order to solve the problem?
We can solve this by replacing the extra added characters if there are any with the empty string if the property possible is true otherwise the the state would be update with the original number which was added first.
if (!Str.isValidEmail(login) && !parsedPhoneNumber.possible) {
            if (ValidationUtils.isNumericWithSpecialChars(login)) {
                this.setState({formError: 'common.error.phoneNumber'});
            } else {
                this.setState({formError: 'loginForm.error.invalidFormatEmailLogin'});
            }
            return;
        }else{
            this.setState({
                login:parsedPhoneNumber.possible ? login.replace(/\D+/g, '') : login
            });
        }

the extra characters will be removed as soon as the user clicks the continue button.
After applying the solution
https://github.com/Expensify/App/assets/46372909/22f1f515-7965-42aa-81e0-ed7162e828e0
What alternative solutions did you explore? (Optional)
We can open an issue in github repo of the library we are using "awesome-phonenumber" and wait to get this fixed.

I can repro:
https://github.com/Expensify/App/assets/30815269/cbe6d5ab-3d2c-4d00-ba42-cb722042f841
I think for consistency's sake, we should either:

Surface the error if ant number of letters are added after a number OR
Automatically remove any letters after a number (since this isn't required)

Asking internally here - https://expensify.slack.com/archives/C01SKUP7QR0/p1685405176413529

Got some consensus on the behaviour we want:

We should not change the user’s input
Always throw an error if what they input is invalid

So this means, if they enter even 1 letter after a number, we need to throw the Invalid error.

Proposal
Please re-state the problem that we are trying to solve in this issue.
No error message is shown when adding up to 2 letters at the end of the phone number input on sign-in page.
What is the root cause of that problem?
The library we are using to parse phone number and get if is valid or not is parsing the last two characters internally and giving us validation of the phone number.
Example response -
{
    "number": {
        "input": "+14098797654ab",
        "international": "+1<PHONE_NUMBER>",
        "national": "(409) 879-7654",
        "e164": "+14098797654",
        "rfc3966": "tel:+1-409-879-7654",
        "significant": "4098797654"
    },
    "regionCode": "US",
    "valid": true,
    "possible": true,
    "canBeInternationallyDialled": true,
    "possibility": "is-possible",
    "type": "fixed-line-or-mobile",
    "typeIsMobile": true,
    "typeIsFixedLine": true,
    "countryCode": 1
}

What changes do you think we should make in order to solve the problem?
Keeping @jliexpensify points in mind that we do not need to change the user's input and show an error on any character addition after phone no, we can put regex phone check on phone input along with the library valid check like this -

        const phoneValidationRegex = /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/;

        if (!Str.isValidEmail(login) && (!parsedPhoneNumber.possible || !phoneValidationRegex.test(phoneLogin))) {

This will ensure that all the previous check works according to the library along with this new check on the phone input.
What alternative solutions did you explore? (Optional)
We can look for an overall solution for the library awesome-phonenumber parsePhoneNumber method.

Replace code
const phoneLogin = LoginUtils.appendCountryCode(LoginUtils.getPhoneNumberWithoutSpecialChars(login));
const parsedPhoneNumber = parsePhoneNumber(phoneLogin);
    if (!Str.isValidEmail(login) && !parsedPhoneNumber.possible) {
        if (ValidationUtils.isNumericWithSpecialChars(login)) {
            this.setState({formError: 'common.error.phoneNumber'});
        } else {
            this.setState({formError: 'loginForm.error.invalidFormatEmailLogin'});
        }
        return;
    }

With
const phoneWithSpChar = LoginUtils.getPhoneNumberWithoutSpecialChars(login)
    const phoneLogin = LoginUtils.appendCountryCode(phoneWithSpChar);
    const parsedPhoneNumber = parsePhoneNumber(phoneLogin);

    if (!Str.isValidEmail(login) && (!parsedPhoneNumber.possible || Number.isNaN(Number(phoneWithSpChar)))) {
        if (!ValidationUtils.isNumericWithSpecialChars(login)) {
            this.setState({formError: 'common.error.phoneNumber'});
        } else {
            this.setState({formError: 'loginForm.error.invalidFormatEmailLogin'});
        }
        return;
    }

It will work perfectly without changing your existing login

Contribute Details
Expensify account email<EMAIL_ADDRESS>Upwork Profile Link:

@hoangzinh Please check the recording in the issue thread. I tried the same.

Alright adding a plus help easily reproduce

May be this is intentional I guess https://github.com/google/libphonenumber/blob/master/FAQ.md#non_digits

In that case we should remove the extra added character which could be a typo and update the state before going onto the next screen

But if you click on the go back button from the magic code screen, you would not see the typo, which otherwise would be there and can be misleading

So if according to awesome-phonenumber this is intentional, then I guess it's intentional? Maybe there are phone numbers like that? I really don't know

Going by the consensus as @jliexpensify mentioned that we should not automatically change the user's input without notifying the user about the error.
@stitesExpensify After checking the reason in the awesome-phonenumber library [here](https://github.com/google/libphonenumber/blob/master/FAQ.md#why-does-the-library-treat-some-non-digit-characters-as-digits, it mentions that library doesn't aim to verify that string is only a phone number. It extracts the phone number from the given string.
Hence we should put a check from our side to the given input and show an error to the user in case of an error.
cc: @Julesssss @Santhosh-Sellavel

Hi Team,
I analyzed your issue and why it is not triggering.
parsePhoneNumber(phoneLogin) not validating if you add two alphabet
characters  at the end and it is provided as status "is-possible". If you
once more 3 alphabets at the end then it is providing invalid as status.
To fix this issue you have added one more condition and need to check if
the given input is number or not after removing the special character. Then
only it will trigger a message for the invalid phone number.
And more issue in logic is that,
*ValidationUtils.isNumericWithSpecialChars(login)
*line returns *TRUE *if the given input number is valid. Hear your ae
checking if given input number is valid then show error message.
Because of the above issues in your code, the message does not trigger an
error message.
Please follow my steps to fix this issue
Replace your code from line number 148 to 158
const phoneLogin =
LoginUtils.appendCountryCode(LoginUtils.getPhoneNumberWithoutSpecialChars(login));
const parsedPhoneNumber = parsePhoneNumber(phoneLogin);
    if (!Str.isValidEmail(login) && !parsedPhoneNumber.possible) {
        if (ValidationUtils.isNumericWithSpecialChars(login)) {
            this.setState({formError: 'common.error.phoneNumber'});
        } else {
            this.setState({formError:

'loginForm.error.invalidFormatEmailLogin'});
}
return;
}
With below code
  const phoneWithSpChar =

LoginUtils.getPhoneNumberWithoutSpecialChars(login)
    const phoneLogin = LoginUtils.appendCountryCode(phoneWithSpChar);
    const parsedPhoneNumber = parsePhoneNumber(phoneLogin);

    if (!Str.isValidEmail(login) && (!parsedPhoneNumber.possible ||

Number.isNaN(Number(phoneWithSpChar)))) {
if (!ValidationUtils.isNumericWithSpecialChars(login)) {
this.setState({formError: 'common.error.phoneNumber'});
} else {
this.setState({formError:
'loginForm.error.invalidFormatEmailLogin'});
}
return;
}
Regards,
Hanamantraya Rajashekhar
9582017725
Email : @.***
On Thu, Jun 1, 2023 at 3:40 AM Rajdeep Gupta @.***>
wrote:

Going by the consensus as @jliexpensify https://github.com/jliexpensify
mentioned that we should not automatically change the user's input without
notifying the user about the error.
@stitesExpensify https://github.com/stitesExpensify After checking the
reason in the awesome-phonenumber library [here](
https://github.com/google/libphonenumber/blob/master/FAQ.md#why-does-the-library-treat-some-non-digit-characters-as-digits,
it mentions that library doesn't aim to verify that string is only a phone
number. It extracts the phone number from the given string.
Hence we should put a check from our side to the given input and show an
error to the user in case of an error.
cc: @Julesssss https://github.com/Julesssss @Santhosh-Sellavel
https://github.com/Santhosh-Sellavel
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/19751#issuecomment-1571030298,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB6DYRCN5VHQFAP24OOFNJDXI66ULANCNFSM6AAAAAAYTASANA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@stitesExpensify

So if according to awesome-phonenumber this is intentional, then I guess it's intentional? Maybe there are phone numbers like that? I really don't know

Have a look at this

Why does the library treat some non-digit characters as digits?
When parsing, the library does its best to extract a phone number out of the given input string. It looks for the phone number in the provided text; it doesn't aim to verify whether the string is only a phone number.
If the input looks like a vanity number to the library, parse() assumes this is intentional and converts alpha characters to digits. Please read the documentation for PhoneNumber parse(String, String) in PhoneNumberUtil for details. Also see Iterable findNumbers(CharSequence, String).
Some examples:
+1 412 535 abcd is parsed the same as +1<PHONE_NUMBER>.
If someone mistypes and adds an extra alpha character in the middle, then the library assumes this was a mistake and fixes it. E.g. the extra c in +1 412 535 c0000 is ignored, and this is parsed the same as +1<PHONE_NUMBER>.
If someone mistypes and replaces a digit in the middle with an alpha character, and the remaining characters do not make up a valid number, this alpha character is not converted and the resulting number is invalid, e.g. with +1 412 535 c000.

After seeing this the library does it intentionally to ignore typos. Adding any additional validation checks makes the use of the library pointless here.

@rnsshrmb2010 Please start by reading our contributing guidelines. Understand our process,  and submit proposal following our guidelines & proposal template.

By using this library this issue can't fix.
@Santhosh-Sellavel
Sure I will read your guide line. I want to know one thing is that weather we have to use that library hear or we have find out some other way to fix issue?

By using this library this issue can't fix.
@Santhosh-Sellavel
Sure I will read your guide line. I want to know one thing is that weather
we have to use that library hear or we have find out some other way to fix
issue?

Please start reading our [contributing guidelines] (https://github.com/Expensify/ReactNativeChat/blob/main/contributingGuides/CONTRIBUTING.md) first, you will understand the process which clears all your queries.

Sure I am processing step by step
On Thu, 1 Jun, 2023, 10:23 pm Santhosh Sellavel, @.***>
wrote:

@rnsshrmb2010 https://github.com/rnsshrmb2010 Don't rush again we are
discussing to decide whether we want to handle this issue.
Please start reading our [contributing guidelines] (
https://github.com/Expensify/ReactNativeChat/blob/main/contributingGuides/CONTRIBUTING.md)
first, you will understand the process which clears all your queries.
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/19751#issuecomment-1572416643,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB6DYRGS6UM2FTC7UNNGZS3XJDCINANCNFSM6AAAAAAYTASANA
.
You are receiving this because you were mentioned.Message ID:
@.***>

My account created on slack and I want to know what the next process is?
please guide start work on this issue
On Thu, Jun 1, 2023 at 7:23 AM Hanamantraya Rajashekhar <
@.***> wrote:

Hi Team,
I analyzed your issue and why it is not triggering.
parsePhoneNumber(phoneLogin) not validating if you add two alphabet
characters  at the end and it is provided as status "is-possible". If you
once more 3 alphabets at the end then it is providing invalid as status.
To fix this issue you have added one more condition and need to check if
the given input is number or not after removing the special character. Then
only it will trigger a message for the invalid phone number.
And more issue in logic is that, *ValidationUtils.isNumericWithSpecialChars(login)
*line returns *TRUE *if the given input number is valid. Hear your ae
checking if given input number is valid then show error message.
Because of the above issues in your code, the message does not trigger an
error message.
Please follow my steps to fix this issue
Replace your code from line number 148 to 158
const phoneLogin =
LoginUtils.appendCountryCode(LoginUtils.getPhoneNumberWithoutSpecialChars(login));
const parsedPhoneNumber = parsePhoneNumber(phoneLogin);
    if (!Str.isValidEmail(login) && !parsedPhoneNumber.possible) {
        if (ValidationUtils.isNumericWithSpecialChars(login)) {
            this.setState({formError: 'common.error.phoneNumber'});
        } else {
            this.setState({formError:

'loginForm.error.invalidFormatEmailLogin'});
}
return;
}
With below code
  const phoneWithSpChar =

LoginUtils.getPhoneNumberWithoutSpecialChars(login)
    const phoneLogin = LoginUtils.appendCountryCode(phoneWithSpChar);
    const parsedPhoneNumber = parsePhoneNumber(phoneLogin);

    if (!Str.isValidEmail(login) && (!parsedPhoneNumber.possible ||

Number.isNaN(Number(phoneWithSpChar)))) {
if (!ValidationUtils.isNumericWithSpecialChars(login)) {
this.setState({formError: 'common.error.phoneNumber'});
} else {
this.setState({formError:
'loginForm.error.invalidFormatEmailLogin'});
}
return;
}
Regards,
Hanamantraya Rajashekhar
9582017725
Email : @.***
On Thu, Jun 1, 2023 at 3:40 AM Rajdeep Gupta @.***>
wrote:

Going by the consensus as @jliexpensify https://github.com/jliexpensify
mentioned that we should not automatically change the user's input without
notifying the user about the error.
@stitesExpensify https://github.com/stitesExpensify After checking the
reason in the awesome-phonenumber library [here](
https://github.com/google/libphonenumber/blob/master/FAQ.md#why-does-the-library-treat-some-non-digit-characters-as-digits,
it mentions that library doesn't aim to verify that string is only a phone
number. It extracts the phone number from the given string.
Hence we should put a check from our side to the given input and show an
error to the user in case of an error.
cc: @Julesssss https://github.com/Julesssss @Santhosh-Sellavel
https://github.com/Santhosh-Sellavel
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/19751#issuecomment-1571030298,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB6DYRCN5VHQFAP24OOFNJDXI66ULANCNFSM6AAAAAAYTASANA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@stitesExpensify

So if according to awesome-phonenumber this is intentional, then I guess it's intentional? Maybe there are phone numbers like that? I really don't know

Have a look at this

Why does the library treat some non-digit characters as digits?
When parsing, the library does its best to extract a phone number out of the given input string. It looks for the phone number in the provided text; it doesn't aim to verify whether the string is only a phone number.
If the input looks like a vanity number to the library, parse() assumes this is intentional and converts alpha characters to digits. Please read the documentation for PhoneNumber parse(String, String) in PhoneNumberUtil for details. Also see Iterable findNumbers(CharSequence, String).
Some examples:
+1 412 535 abcd is parsed the same as +1<PHONE_NUMBER>.
If someone mistypes and adds an extra alpha character in the middle, then the library assumes this was a mistake and fixes it. E.g. the extra c in +1 412 535 c0000 is ignored, and this is parsed the same as +1<PHONE_NUMBER>.
If someone mistypes and replaces a digit in the middle with an alpha character, and the remaining characters do not make up a valid number, this alpha character is not converted and the resulting number is invalid, e.g. with +1 412 535 c000.

After seeing this the library does it intentionally to ignore typos. Adding any additional validation checks makes the use of the library pointless here.

@stitesExpensify @Julesssss thougths?

After seeing this the library does it intentionally to ignore typos. Adding any additional validation checks makes the use of the library pointless here.

I disagree. I think that we should still validate that there are no letters. Doing additional validation does not remove the usefulness of the library validation.

Yep, lets still resolve on our side.

Julesssss Can I resolve by adding some extra condition on it?

@Julesssss Can you review my proposal, I have followed the given guidelines and conditions.

Proposal
Please re-state the problem that we are trying to solve in this issue.
No error message until adding 2 letters, taken to magic code page and number entered is trimmed
But if 3rd letter added error message appears
What is the root cause of that problem?
The issue is from the function parsedPhoneNumber which we are using from a lib "awesome-phonenumber", this function return possible : true if 1 or 2 characters are added at the end and we have a condition against this property so the error doesn't pop.
https://github.com/Expensify/App/blob/f55c36ca9be7f347713a89521826449d90d07d06/src/pages/signin/LoginForm.js#L149-L158

What changes do you think we should make in order to solve the problem?
We can solve this by replacing the extra added characters if there are any with the empty string if the property possible is true otherwise the the state would be update with the original number which was added first.
if (!Str.isValidEmail(login) && !parsedPhoneNumber.possible) {
            if (ValidationUtils.isNumericWithSpecialChars(login)) {
                this.setState({formError: 'common.error.phoneNumber'});
            } else {
                this.setState({formError: 'loginForm.error.invalidFormatEmailLogin'});
            }
            return;
        }else{
            this.setState({
                login:parsedPhoneNumber.possible ? login.replace(/\D+/g, '') : login
            });
        }

the extra characters will be removed as soon as the user clicks the continue button.
After applying the solution
https://github.com/Expensify/App/assets/46372909/22f1f515-7965-42aa-81e0-ed7162e828e0
Alternatively we can add a regex for validation if 1 or more characters are added at the end
like this
   const customPhoneValidationRegex = /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/;

        if (!Str.isValidEmail(login) && !parsedPhoneNumber.possible || !customPhoneValidationRegex.test(phoneLogin)) {
            if (ValidationUtils.isNumericWithSpecialChars(login)) {
                this.setState({formError: 'common.error.phoneNumber'});
            } else {
                this.setState({formError: 'loginForm.error.invalidFormatEmailLogin'});
            }
            return;
        }

After applying this solution

What alternative solutions did you explore? (Optional)
We can open an issue in github repo of the library we are using "awesome-phonenumber" and wait to get this fixed.

@Santhosh-Sellavel the regex here validates if the user has added the extra character and gives the validation error

@qasimkhan23 You have just modified your solution post-submission of the @sethraj14's proposal, your initial solution never  had regex.

@Santhosh-Sellavel I didn't know we can't modify after submission, I'll keep that in mind next time

We can modify the solution, but should not be a duplicate of other proposals. Also when you modify a solution should post a comment that the proposal updated.

@Santhosh-Sellavel The regex validates all the phone number inputs. It catches our issue and gives the required error to the user. As discussed here, we do not automatically want to modify the user input, this regex works with our library check.

@sethraj14

The regex validates all the phone number inputs.

Can you explain/elaborate on how this regex works, is this any standard regex?

@sethraj14

The regex validates all the phone number inputs.

Can you explain/elaborate on how this regex works, is this any standard regex?

Yes, the regex currently matches with all these possibilities of the phone number.

There is more extensive regex for phone number matching but as we are also using awesome-phonenumber library, this regex will be verifying the contents of the phone number.
We can surely modify the regex in the PR.
Alternate regex
^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$\

@Santhosh-Sellavel Detailed explanation of both regex -
/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/

^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$\

@Julesssss Are we good with adding yet another regex for  Phone validation?

Are we good with adding yet another regex for Phone validation?

I'm struggling to look for our existing phone regex (other than the lib), but I think it's okay in this case as long as we document why we needed this new regex.

@Prince-Mendiratta what was the need for us to include the library? To handle what special cases?

I think we can use this existing simple regex to ensure it only includes digits then use exiting lib to validate possibility of it.

@hoangzinh  I like the sound of this, though my only remaining question is whether the existing library would still be necessary.

I think we can use this existing simple regex to ensure it only includes digits then use exiting lib to validate possibility of it.

@hoangzinh I like the sound of this, though my only remaining question is whether the existing library would still be necessary.

@Julesssss  If we use the existing phone regex we need to remove the library as it adds no values.
Ex: Using the library we expect +1.800.555.1234 as a valid phone number, but as per our existing regex it's not valid.
@stitesExpensify @Prince-Mendiratta Can you help us this move forward?

What was the need for us to include the library?
To handle what special cases?
What characters are allowed as valid for phone number input?

cc: @Julesssss

I'm leaning towards replacing the library, but it would be good to clarify the questions above first so that we can be sure we're not losing any benefits the lib provides. I also asked in Slack here

Thank you. Maybe the simplest solution is to just close the issue and do nothing here then.

Please check https://github.com/Expensify/App/issues/16760#issuecomment-1564829986 (second paragraph)
TL; DR: A library feature/limitation. Probably nothing to do unless we can:

Disable the feature (need to read the above comment)
Replace the library

Okay, lets close this.


SAI-4401 : Deeper prs docCollection refactoring

This is based on the existing change from #83 but go a bit deeper.
This removes the PerReplicaStates field and reference from DocCollection instance. DocCollection no longer has 2 states for replicas (one in slices field and one in perReplicaStates field), the slices is now source of truth. This has certain advantage:

DocCollection is completely immutable, there's no longer the perReplicateStates/prs supplier field which might mutate after DocCollection object instantiation.
DocCollection looks a bit cleaner, no longer need special handling for PRS
The single source truth in slices also makes it easier to maintain consistent state. In the existing DocCollection with accepts a prsSupplier, it sets the same instance of supplier to Slice and Replicas. And might do updates directly to the "prs" field of such supplier, which the changes will then suppose to make visible automatically to Slice and Replica. However, this could be problematic as Slice and Replica might keep other information that is generated off the "older" prs field, so extra logic needed to added to ensure things are "in sync" (for example this https://github.com/cowpaths/fullstory-solr/blob/main/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java#L290).
This advantage only apply to the change in #83. We no longer need to make full copy of slice based on the provided PerReplicateStates when constructing the DocCollection. But of course, if we are building a Updated Collection with PRS changes, a full copy is still needed. This is unavoidable if we want immutability I suppose :/

The biggest change for removing the PerReplicaStates is that DocCollection used to keep track of such value, and it is required when fetching the PRS states with PerReplicaStatesFetcher (since it might return the existing object if it has not been changed, my guess is to save memory? and also to make sure we are updating the "correct" instance of PerReplicaStates so changes are visible to all the related Slice/Replica in memory).
So the proposed change is to keep the PerReplicaStates fetched so far in the PerReplicaStatesFetcher instead.
Also since DocCollection no longer accepts the PerReplicaStates (or the supplier), that means whoever construct the DocCollection needs to "figure out the final state of the slices/replicas" before pass the slices to the ctor. Those methods need to call the DocCollection#buildDocCollection with the supplier for now.

DocCollection is completely immutable, there's no longer the perReplicateStates/prs supplier field which might mutate after DocCollection object instantiation.

In the past, everything in a DocCollection Object came from state.json . With the introduction of PRS we are saying that state.json remains intact as long as we don't add/remove replicas. However the other data which contains state/leader keeps changing. The current design reflects this new reality. We shouldn't make copies of DocCollection just because PRS data changed. That is counterproductive

DocCollection is completely immutable, there's no longer the perReplicateStates/prs supplier field which might mutate after DocCollection object instantiation.

In the past, everything in a DocCollection Object came from state.json . With the introduction of PRS we are saying that state.json remains intact as long as we don't add/remove replicas. However the other data which contains state/leader keeps changing. The current design reflects this new reality. We shouldn't make copies of DocCollection just because PRS data changed. That is counterproductive

Yes, and this is the point that I wish to bring up the discussion. It's good that we see both sides of the arguments! As mentioned in previously discussion, i'm totally on-board with the idea of having PRS to reduce state.json data transfer/parse as it does not make sense to process the full state.json over and over again for individual replica changes.
However, when it gets down to code level, whether to sacrifice immutability (and making special cases occasionally) in favor of reduced memory footprint/computation, that's the part I wish to open up a bit more discussion on.
Of course as implemented in current PRS, it is one way to achieve that, however, could there be other options to achieve similar performance, yet minimize the deviation from non PRS execution flow/data model? For example, better batching strategy? or any other ideas? 🤔
IMHO, the less deviation of PRS design/implementation as with the existing non PRS collection, the more readily the community will be adopting the PRS idea. We all have put great effort into PRS and it will be awesome see even greater adoption! 😊


Doc comments cause RustEmbed derive to panic

Doc comments on the struct the derive is applied to cause rust-embed to panic
Sample code: https://github.com/lopopolo/rust-embed-panic

Can you also document the panic you see in the issue?

@Mcat12 done and updated the main comment


Unable to use the wildfly-maven-plugin run goal to execute WildFly Camel examples

The purpose of the examples is to help folks get started with the WildFly Camel subsystem. Therefore, it makes sense that some of the examples are interactive and not just basic integration tests.
At a minimum I'd expect a user to be able clone the project source, change into their desired example directory and deploy it to WildFly with mvn wildfly:run.
The current Maven project structure in this area prohibits this and needs rethinking. Having sub modules depend on resources located higher up in the directory tree (I.e usage of ../ in paths) is a terrible practice IMO.

The current usage of the arq managed container bootstraps a wildfly instance as part of the BEFORE_SUITE event (i.e. one wildfly instance for all example module). This is true when all examples are run as part of a -Dts.all build.
At the same time, it is possible to navigate to an individual example module and run 'mvn clean install'. In this case all test cases in that example would run in the same container instance.
AFAIK, we don't create a dependency on resources higher up the maven tree. The dependency is on the distro artefact, which needs to be available in the local maven repo for examples to run


Publish ESM

So far this is one of the only storybook packages which does not publish ESM files.  It would be great if it could, so vite doesn't have to pre-bundle from cjs to esm.

@IanVS @ndelangen I guess we should probably use tsup in this repo as well right?

I'm not sure if that's necessary, we also have ways to publish ESM using the older babel scripts as well, which might be easier to implement here until / unless the packaging strategy for all storybook-related projects changes.

I see no reason NOT to use tsup, it's helpful to use the same tool everywhere, for maintenance ease.

I think one downside to it is that it will increase the overall bundle size of storybook on disk, if we pre-bundle all dependencies into all packages (since node_modules will not be able to de-dupe those dependencies).  Or, do we already have a strategy to prevent that?

using ts-up doesn't mean any dependencies HAVE to get bundled in.

yeah it will not bundle in dependencies or `peerDependencies by default

Added tsup in this PR:
https://github.com/ComponentDriven/csf/pull/51

This is now used in the latest alpha


Could not find com.github.eschao:android-PageFlip:1.0.2.

When I try to run projeckt that I use PageFlip suddenly there is problem with importing project.
Whole error that I get:
[](

What went wrong:
Execution failed for task ':app:mergeDebugNativeLibs'.

Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
Could not find com.github.eschao:android-PageFlip:1.0.2.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/com/github/eschao/android-PageFlip/1.0.2/android-PageFlip-1.0.2.pom
- https://jcenter.bintray.com/com/github/eschao/android-PageFlip/1.0.2/android-PageFlip-1.0.2.pom
- file:/C:/Users/user_name/.m2/repository/com/github/eschao/android-PageFlip/1.0.2/android-PageFlip-1.0.2.pom
- https://jitpack.io/com/github/eschao/android-PageFlip/1.0.2/android-PageFlip-1.0.2.pom
Required by:
project :app)

Same Here Any Suggestion?

Still nothing?

Same Here...

Same Here... So I used PageFlip library directly and now It is working correctly

do you have a repo with updated sources that can works on 2023?


BUG - curvebots.fi: ETH shows 0 balance even though I have ETH

https://www.loom.com/share/65b9704b700f4209bf1511a920894e08

can no longer reproduce. My Chrome was not up to date


Syntax highlighting has visible latency for basic operations

When editing files of moderate size - the example below is https://github.com/zeux/meshoptimizer/blob/master/src/simplifier.cpp which is ~1500 lines - syntax highlighting tends to have a visible delay. For some operations, like deleting lines, the delay manifests as flashing highlights for the rest of the file, which is visually distracting. Unsure if this is limited to C++ (which is what I mostly edit) or a more general problem.
_simplifier.cpp - meshoptimizer - Onivim 2 2020-04-08 09-27-37.zip
As a comparison, Sublime on the same file has rock-solid syntax highlighting, any editing operations seem to immediately highlight the newly inserted text and don't disturb the highlighting for the rest of the file.
(by the way, I love the work you guys are doing - I've been using Vim exclusively since 2010, and I increasingly gravitate towards Sublime or Visual Studio with Vim emulation plugins to get more IDE functionality, so I'm excited about the future of onivim - just filing issues that come up as I start to explore the editor)

Hi, I have this with files that are only like 100 lines long when deleteting lines or adding lines.

I'd really like to see OP contributing to this project's performance optimization because he's pretty good at it.


0.8.4 has 3 new Strut selection commands

Scott,
Here's the cleaned up and refactored version of the 3 new commands I sent last week. I deleted the old branch so there's no confusion. I'll send a corresponding pull request for vzome-desktop in a few minutes.

Select Parallel, Collinear or Automatic struts.
Add new FilteredIterator and SubClassIterator classes.
Add new Manifestations class to provide common iterations and filters.
Add new ChangeSelection and ChangeManifestation constructors which provide a default groupInSelection.
Add getNormal and areCollinear static AlgebraicVector methods
Copy vertices in Panel c'tor so caller can't change them later.
Enable more verbose compiler warnings
Add more tests for Panel
Make a few more variables final.

Scott, I added another commit which addresses all of the points we discussed. It is ready for you to pull now. There is no change to the pull request for vzome-desktop, but remember it is based on the commit that was current at the time of the pull request, so it does not include your most recent "save-as" fix, but I think you can still merge it without loosing that fix. Once your master branch of both projects have all of these changes included, I'll sync up with them and rebase my color mapping branch on that master and send you a new pull request for it.


proxy node sometimes not reachable on gatetests

Sometimes proxy node is not reachable from the other nodes temporarily on gate tests, but retry proxy node after some time is working. This is causing gate failures

I'm marking this as closed by #408


[update] Modified syscalls mechanism

Therefore, each syscall is requested by a distinct SVC interrupt

Rationale:

Code simplification

Hello Arnauld !
3 questions here:

is it possible to avoid the 'when others' before calling exec_syncrhonous_syscall, as the t_svc type is strictly typed and the userspace may generate any SVC input value that may be invalid and generate an Ada exception
Are the end_of_task and end_of_isr dedicated SVC are stored in SVC value smaller than SVC syscall area ? (i.e. specific, non-syscalls SVC could be 1 and 2, and syscalls start at 10, to keep possible 8 free slots for any possible future specific SVC, and if syscalls number increase, the specific SVC are not impacted
is the replacement of the userspace do_syscall with a switch case impacting in term of performances ? As the syscall list is flat, the execution cost may increase for some constrained syscalls (e.g. get_systick)

What is your point of view on this ?

Re,
Is it possible to define a t_syscall_svc as a subset of t_svc for syscall execution functions (i.e. push_syscall and do_syncrhonous_syscall) ?

INFO: patch in association with libstd PR 1

is it possible to avoid the 'when others' before calling exec_syncrhonous_syscall, as the t_svc type is strictly typed and the userspace may generate any SVC input value that may be invalid and generate an Ada exception

Good comment ! I slightly modified the ewok.syscall.handler package and I removed the 'exec_synchronous' function whose presence was no more justified.

Are the end_of_task and end_of_isr dedicated SVC are stored in SVC value smaller than SVC syscall area ? (i.e. specific, non-syscalls SVC could be 1 and 2, and syscalls start at 10, to keep possible 8 free slots for any possible future specific SVC, and if syscalls number increase, the specific SVC are not impacted

I'm not sure that end_of_task() and end_of_isr() syscalls should be considered as special services.

is the replacement of the userspace do_syscall with a switch case impacting in term of performances ? As the syscall list is flat, the execution cost may increase for some constrained syscalls (e.g. get_systick)

It should not because switch statements are optimized by gcc using jump tables and ARM architectures have special instructions to deal with that kind of construct (TBB and TBH instructions).

Hello !
I'm asking myself... Should end_of_task and end_of_isr be replaced with a trap on effective return address on the isr root function or main function ? This would not be a svc no more, but a real trap. Svc would then be only syscalls, not events.
What do you think about it ?

Ack for sys_exit() :+1: Using task current state instead of defining 2 independent system calls is cleaner to handle ISR & thread exit


Initialize the DB when the DB container starts

Create the necessary tables and load the data for testing mounting .sql files under /docker-entrypoint-initdb.d
(https://github.com/docker-library/docs/blob/master/postgres/README.md#initialization-scripts)

I think this will have to be manual in some way, I wouldn't push too much for this one. If we need to make a manual step, the manual step can be to apply those files and that it, no need to think the process to be able to mount the files before the container is created.

For the future, I think this should not live in the database side. I think the responsible should be the sink/api that runs the database initialization before starting the application, as any other database application does. This will ensure that the moment the sink/api is started, the database is in the correct state.

I wouldn't let the API (a reader with only read permissions on the DB) should be able to create schemas / tables.
I have my doubts on the sink too. I prefer to have everything decoupled, and I would say that both sink and api should check the connection to the db when starting and if fails fail to start the container.
I get your point though of not having the tables provided in the database when the pod starts because I think that the user of kubearchive may provide its own DB without the schema, just provide the permissions in a specific database.
I think that in a production environment the operator should have the responsability of setting the tables.
Now, if we accept that the operator would be the responsible of configuring the DB schema, as in development we aren't using it and we are using helm, the equivalent procedure would be one of the following (as I see it):

Run the init_db script manually
Mount the .sql files in the DB pod as suggested in this issue

We are using helm to initialize the database?

I meant that we are using helm instead an operator.
If we agree on the operator to be the one that configure the schema in the database  (I see that we haven't yet) we should do something in development for initializing it. The two options that I see are:

Run the script manually (this is what we are doing now, and this is outside of the helm install command)
Make the DB container to automatically set up the kubearchive schema (so this will be done as part of the helm install command)

I'm not sure I agree with this. The operator, at least currently, isn't doing any sort of dependency configuration/installation.

It's not a problem that the operator doesn't do it right now but this is a good discussion to set up the expectations on what the operator should and shouldn't do in the future.
As I stated before, for me, configuring the schema makes sense to be done out from the sink/api, and as I see the operator as the "deployer" I also see it as "the one who configure every kubearchive component to get things working". I envision it as:

[DB] Create the appropriate tables/index (and lookup data if we have it at any point)
[Events] Create the APIServerSource CRs
[Sink] Deploy the sink
[REST API Server] Deploy the API Server

@ggallen what component should be creating the tables from your POV?

I meant that we are using helm instead an operator.

This is not true as they are not interchangeable. The chart and the operator do two different things. The chart deploys our main components, and the operator deploys the ApiServerSource on the namespaces that require it. With #107 we will use the operator in development too. Also, we will use the helm chart in production too.
The table configuration (migrations) will be perform by the sink, as it is the responsible to write into it. We can make the API check if the schema is the correct one, or just start and error 500 out if the table is not there.

Couldn't we have initializing the database be an optional part of the helm chart? There could be some value like database.init that if set to true would cause the helm chart to add XXX.sql a file mounted by the database pod. For example, the test namespace that the helm chart creates works like this. if you remove this entry for test in watchNamespaces then the chart won't create and configure it for you

I think the responsible should be the sink/api that runs the database initialization before starting the application, as any other database application does. This will ensure that the moment the sink/api is started, the database is in the correct state.

I would be worried about having the sink be responsible for initializing the database. With the way that it currently works, one replica is created, but there's not that would prevent you from increasing the number of replicas and with the way that cloudevents work, this would work perfectly fine. When an ApiServerSource sends a cloudevent to the sink, Kube DNS will replace the service url with the cluster IP of one of the replicas (which one depends on the Cluster's DNS configuration). If the sink becomes responsible for managing the database schema, this could introduce race conditions. I think that whatever method we use for installation/deployment of the database should handle initialization and maybe migrations as well. I could also see a world where cluster admins may need to perform manual steps if database migrations are required

Now that we are are talking about multi-cluster deployments with the inclusion of cluster_uid and cluster on the schema for the table, we have the very same problem with the operator too. There can be multiple operators being deployed on multiple clusters and we would get on the very same race condition. Maybe we can explore the option of leaving it as a manual step for the deployer to do it.

The discussion of who should be responsible of deploying the schema in the database is tabled for now but I think that we can still do one thing related to the initial goal of this issue, extract the SQL statements of init_db.go to a new file (maybe ddl.sql) so init_db.go just apply it the same way it does with resource.sql.
Maybe we can also rename resource.sql to dml-example.sql or something like that.
WDYT?

Revisiting this topic, I was thinking that we could still address this with some surrounding tweaks, please, let me know what do you think:

Move ddl-resource.sql to the chart conf directory (or create a link to it)
Declare in charts/kubearchive/template/database/ a ConfigMap that loads the content of ddl-resources.sql if .Values.global.production==false
Mount in the database deployment this configmap to be in /docker-entrypoint-initdb.d so it's loaded on initialization if .Values.global.production==false or in /ddl.sql otherwise
If .Values.global.production==true set the credentials of the database as root root password
In the hack/quick-install.sh script, replace the call of hack/database-install.sh for the following:

helm template kubearchive charts/kubearchive -n databases \
    -s templates/database/database.yaml \
    --set "database.enabled=true" \
    --set "global.production=true" > /tmp/kubearchive-database.yaml

kubectl create namespace databases
kubectl apply --namespace databases -f /tmp/kubearchive-database.yaml

kubectl rollout status deployment --namespace=databases --timeout=30s
sleep 15  # Wait for PostgreSQL to be really ready

echo "CREATE USER kubearchive WITH ENCRYPTED PASSWORD 'P0stgr3sdbP@ssword';" | kubectl exec -i -n databases deploy/kubearchive-database -- psql -h localhost
echo "CREATE DATABASE kubearchive WITH OWNER kubearchive;" | kubectl exec -i -n databases deploy/kubearchive-database -- psql -h localhost
kubectl exec -i -n databases deploy/kubearchive-database -- psql -h localhost --user=kubearchive kubearchive -f /ddl.sql

After that I believe we can remove hack/database-install.sh because the functionality of that script will be already covered.
The advantages I see for the changes described are:

Having the database resources declared just once (now the content of the YAMLs embedded in hack/install-database.sh and the content of charts/kubearchive/templates/database/database.yaml is almost the same)
Reduce the amount of code for the quick installation process
Keep a workflow similar to the one provided in the docs for the users to configure the database after the DB is deployed (i.e, creation of kubearchive user and database, and the application of the DDL)
Remove the step of applying the ddl-resource.sql in the development process. (DEVELOPMENT.md file should be updated too)

P.S. As a side note we could possibly also improve the script by extracting the kubearchive username credentials and DB from kubectl get secret -n kubearchive kubearchive-database-credentials -o jsonpath="{.data}" to avoid duplication there too.

echo "CREATE USER kubearchive WITH ENCRYPTED PASSWORD 'P0stgr3sdbP@ssword';" | kubectl exec -i -n databases deploy/kubearchive-database -- psql -h localhost
echo "CREATE DATABASE kubearchive WITH OWNER kubearchive;" | kubectl exec -i -n databases deploy/kubearchive-database -- psql -h localhost

These command should all be inside the database SQL file.  That file should entirely self-contained, so a user can just apply it using psql and get the entire database configured.
I haven't been following this issue closely, but it seems like things have become very complicated.

As I look more closely, I think this issue should be closed.   Initializing the database should not be done by KubeArchive at all.
The database configuration and setup should all be done outside of KubeArchive. We are not database experts.  The only thing KubeArchive should require is the database connection information.

TL;DR Please, note that my suggestion is only to simplify what we already have in place regarding the database which is only for testing and development.
We currently have the hack/install-database.sh for the hack/quick-install.sh that is used in this integration test
We also have a database in place for development purposes that is installed with the helm install command.
We are not configuring things for the users but we have to deploy and configure a database for development and testing purposes.
You can check https://github.com/kubearchive/kubearchive/pull/378 to see what are the instructions that we aim to give the users regarding their database configuration.

Hey, we have some different topics here, for

These commands should all be inside the database SQL file. That file should entirely self-contained, so a user can just apply it using psql and get the entire database configured.

I created #381 to discuss this.
For

TL;DR Please, note that my suggestion is only to simplify what we already have in place regarding the database which is only for testing and development.

Given that our development and production deployments are different, we talked about CI being closer to production to catch more problems. So if we want to simplify, I would go into the other direction: making development more similar to the CI (a proxy for production), not the other way around.

if we want to simplify, I would go into the other direction: making development more similar to the CI (a proxy for production), not the other way around.

What would be your suggestions?
I envision the output of the simplification by having:

The database resources just in one place
The default credentials for KubeArchive just in one place
Prevent having embedded YAML definitions inside a script (for readability)

Either way, I think my suggestion keeps the CI similar to the production workflow:

It deploys a database without a kubearchive user
It needs to create the user, the database and apply the rest of the DDL afterwards

I just "reuse" the Helm stuff for deploying a standard db

If we are potentially including the creation of the kubearchive user and the database in the DDL, we could adjust the db helm template to be more similar to the one that is currently in hack/install-database.sh and deploy the DB with a root user and then apply the DDL mounting it

What would be your suggestions?

I think the topic of approaching testing and development has enough content to move to another issue. Please open it and gather your proposal there. I will add my suggestions there.

I think the topic of approaching testing and development in regards of the database setup has enough content to move it to another issue. Please open it and gather your proposal there. I will add my suggestions there.

Opened https://github.com/kubearchive/kubearchive/issues/390

I believe that given all the changes we have done related to the database, moving it outside of helm chart and treating it as an integration makes this issue as non-applicable anymore.
Feel free to reopen it otherwise.


Add Cirrus Labs logo (for https://cirrus-ci.org/)

The logo can be found here: https://github.com/cirruslabs

Added in c122ccfcfdb15d9958a85696ff2460ac3b01f8ca
Thanks


SsaProgram does not support nulls

TPCDS queries #34, #73 doesn't work with block channels
Sample problem report: https://proxy.sandbox.yandex-team.ru/6854476973/index.html#suites/efe4970bacd9e1454955dc0317c12f5e/21b6d1b5165606bc/
Initially problem log looks like:

yql_provider_gateway.cpp:21: <main>: Fatal: ydb/library/yql/minikql/mkql_program_builder.cpp:5836: ScalarApply(): requirement !args.empty() failed. Required at least one argument, code: 1

I assume this expression causes problem, because the callable Nothing (which is NULL) has no arguments:
        (case when household_demographics.hd_vehicle_count > 0
	then household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count
	else null
	end)

Intermediate AST looks like:
  (let $7 (Bool 'false))
  (let $8 (Member $5 '"hd_vehicle_count"))
  (let $9 (Coalesce (> $8 (Int32 '0)) $7))
  (let $10 (If $9 (/ (Member $5 '"hd_dep_count") $8) (Nothing (OptionalType (DataType 'Int64)))))

Full AST (at some point): https://paste.yandex-team.ru/285f7141-a0ea-4412-9aaf-197d50760a2d

full ast https://gist.github.com/zverevgeny/06a7a86130537f1ac64b5e219d0f6552

Ssa is not supposed to support Nothing(nulls) in this case. All such Nothing should be optimized out

Rename title to the original one
The're several problem:

SsaProgram doesn't support passing Null in this case
Optimizer pushes down unsupported predicates to CS
Coalesce is not required here and may be optimized out


document scalars in api_spacex_land.graphql

There are a few custom scalar types in the graphql schema that need documentation.
In GraphQL, documentation is outlined with triple quotes, like
"""
this scalar is an RFC-3339 encoded date
"""
scalar Date

I'd love to take up this issue. Please assign me, thanks!

You're welcome to it, @aloks98 ! Per our contributing guidelines I'm assigning one issue at a time, so let's wait on the other one.
Thanks for contributing!


Cleanup backup related test code

There where issues in the test code

we where not waiting for the backup deletion during the backup_list test
we where trying to find the backup before waiting for the backup completion in the create_backup function
there is a couple of spots where we call find_backup but where not waiting for backup completion, since the backup.cfg only shows up once the backup is completed this would not work correctly all the time and introduce timing dependent flaky test behavior.

Since backup operations needs to be thought of as async, we always need to wait for completion of the backup operation. We do this in the utility functions delete_backup, create_backup, etc.
This is only tangentially related to the backup locks longhorn/longhorn#612

LGTM

@khushboo-rancher @meldafrawi I added 3 more commits, can you rereview the last 3 commits?

Reviewed the last 3 commits, LGTM


Yummly scraping not working!

I tried to scrape a few recipes on Yummly.com but they are failing with error : "No recipe found on page"
Example Recipe URL : https://www.yummly.com/recipe/Candied-Walnuts-2623506

My bad, the issue was with some chrome dependencies missing in my deployment. Closing this issue.


TMS-PMNGR: a tool to manage Teams profiles on Windows

Category

[ ] New script

What's in this Pull Request?
A PowerShell tool that allows you to manage Teams profiles on Windows.

While this is super cool, given it has an undocumented dependency, I'd recommend to host this personally. Really appreciate the work!


Create crates.io release and move library to different workspace

Hi,
Looks that your project allows to use duplicated videos, but currently I couldn't find any method how I could integrate it with my app Czkawka.
I suggest to move library to different workspaces and after that publish it in crates.io.
Currently also when I tried to compile app, I found that it require nightly Rust, which sadly prevents me from using it.

Hello, sorry for the late reply!
As you have suggested, I have split up the codebase into a library and an application, and published both to crates.io
this repository now only contains the gui/cmdline application.
I have also removed the need for a nightly compiler, and performed other refactorings. I have also written documentation for the lirbary.
The source for the library is now located here: https://github.com/Farmadupe/vid_dup_finder_lib


Fix AttributeError for older style transmission types.

Addresses issue #9 using the fix described within that issue.
This fix also makes the transmission type optional which may or may not be a problem. If it should not be optional, I can remove the try-except block surrounding the updated code.

@BuildingAtom , can you please share a URDF that you used to test this?

Sure, I attached it as a .txt file, but this is the URDF we were using. I did recently find out that we added the transmissions by hand in order to add the custom motorInertia tag, but it had worked with FROST, which is what we had used before.
About motor inertia, I've actually been thinking of opening an issue with urdfdom to get this added as an attribute to the dynamics element of the joint element since it doesn't exactly seem to fit within the scope of the transmission element.
gen3.txt

@BuildingAtom, I'm sorry I'm getting back to this so late. I think there are some errors in this URDF. For example on line 311, you have
    <actuator name="joint_2_motor"/>
      <motorInertia>11.996202461530364</motorInertia>
    </actuator>

This isn't valid XML because the first  closes itself.

I think this should be resolved by https://github.com/fishbotics/urchin/pull/14, so I'm going to close. Please re-open if it's still an issue


Conflicts between pymacaron and pyyaml

Hi, users are unable to run pymacaron due to dependency conflict with pyyaml package. As shown in the following full dependency graph of pymacaron, pymacaron requires pyyaml >=5.1.2，while pymacaron-core requires pyyaml ==5.1.2.
According to pip’s “first found wins” installation strategy, pyyaml 5.2 is the actually installed version. However, pyyaml 5.2 does not satisfy ==5.1.2.
Dependency tree-----------
pymacaron - 1.0.213
| +- click(install version:7.0 version range:*)
| +- flask(install version:1.1.1 version range:>=1.0.4)
| | +- click(install version:7.0 version range:>=5.1)
| | +- itsdangerous(install version:1.1.0 version range:>=0.24)
| | +- jinja2(install version:2.10.3 version range:>=2.10.1)
| | | +- markupsafe(install version:1.1.1 version range:>=0.23)
| | +- werkzeug(install version:0.16.0 version range:>=0.15)
| +- flask-compress(install version:1.4.0 version range:*)
| +- flask-cors(install version:3.0.8 version range:*)
| | +- flask(install version:1.1.1 version range:>=0.9)
| | | +- click(install version:7.0 version range:>=5.1)
| | | +- itsdangerous(install version:1.1.0 version range:>=0.24)
| | | +- jinja2(install version:2.10.3 version range:>=2.10.1)
| | | | +- markupsafe(install version:1.1.1 version range:>=0.23)
| | | +- werkzeug(install version:0.16.0 version range:>=0.15)
| | +- six(install version:1.13.0 version range:*)
| +- pyjwt(install version:1.7.1 version range:*)
| +- pymacaron-core(install version:1.0.164 version range:>=1.0.146)
| | +- flask(install version:1.1.1 version range:>=1.0.4)
| | +- bravado-core(install version:5.1.2 version range:==5.13.2)
| | +- PyYAML(install version:1.0.164 version range:==5.1.2)
| +- pymacaron-unit(install version:5.1.2 version range:>=1.0.10)
| +- pytz(install version:2019.3 version range:*)
| +- pyyaml(install version:5.2 version range:>=5.1.2)

Thanks for your help.
Best,
Neolith

Suggested Solution

Fix your direct dependency to be pyyaml ==5.1.2. I have checked this revision will not affect your downstream projects now.
Ask your upstream project pymacaron-core to loose the version range of pyyaml.
Remove your direct dependency pyyaml, and use pyyaml transitively introduced by pymacaron-core.

@ erwan-lemonnier Which solution do you prefer, 1, 2 or 3?
Please let me know your choice. I can submit a PR to solve this issue.


[Suggestion] Don't include examples.txt in the releases

Is there any particular reason to include the examples.txt in the yard releases?
It makes diffing a bit harder and makes the gem release a bit bigger:
https://diff.coditsu.io/diffs/fb7ec2d9-3950-4fd6-bc0c-235674c984ff#d2h-119238

Thanks for reporting this. There's no particular reason, this file is being incorrectly included in the gem bundle.

The next release of YARD will have this file excluded.


Fix method-decl-node

Purpose

$title
Also renamed the function-decl-node to method-decl-node to be consistent with the spec

Fixes #23699
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

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

@@           Coverage Diff           @@
##           master   #23700   +/-   ##
=======================================
  Coverage   14.59%   14.59%
=======================================
  Files          51       51
  Lines        1411     1411
  Branches      219      219
=======================================
  Hits          206      206
  Misses       1189     1189
  Partials       16       16

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 437561a...5102be4. Read the comment docs.


Project and todo task list

[EN]
It would be nice to create a project and create the tasks that are waiting, in progress, and finished to track and maybe even execute them.
[PT-BR]
Seria legal criar um projeto e criar as tarefas que estão aguardando, em progresso, e finalizada para acompanharmos e talvez até executarmos elas.

I typically use ZenHub for project management on GitHub. It's a free add-on for everyone when working with open source projects.
TicketDesk has a ZenHub board setup, and past milestones used ZenHub well... but the project is way behind schedule at this point. The board is nearly useless.
I'm currently putting together a new plan for TicketDesk, and when I am ready to move forward again I'll likely move the new development to a new repo. I'll look into setting up a traditional GitHub project for that.


Fix workerCount property in spec argument

What:
Fixes the http-test.js and round-robin-tests.js tests
Why:
The tests as they are right now are broken. I verified that the cluster-supervisor flow was working fine. The issue was the wrong naming of the workerCount property (named as numCPUs).

Thank you!

lgtm.


C++/WinRT modeling of a runtime class with its own type as a constructor parameter collides with copy constructor

This mostly works (consume works, produce fails) but is confusing to the caller. Need to either intentionally support this or block its use. At the very least we need to remove the WinRT copy constructor in favor of the projection's copy constructor. The consumer can always call the factory constructor directly if needed.
This is a somewhat theoretical case, since no such API exists, but I pointed this out to Raymond Chen recently and he's made a note of it in the API design guide so we should clean this up to have a clear story for developers.

Moved to https://github.com/microsoft/cppwinrt/issues/356


Missing DLLs in gRPC Scripting Tools Project

Hi Team,
Greetings!!!
The DLL 'labview_grpc_generator.dll' is not available in the repo for all platforms (Win32, Win64, Linux, LinuxRT)

Kindly assist in uploading them to the repo in the earliest.
Thanks

Found them in previous versions.
Thanks

The previous versions had the dll for Windows only
Please add the dlls of all platforms (Win32, Win64 and Linux) to repo.

Hi Team,
Previously, I had downloaded the source code (zip) where the function libraries were missing.
I found all the function libraries for all the platforms in the package grpc-labview.zip in Version 0.2.3.
Sorry for the inconvenience.
Thanks


Is it possible to page for rows when grouping is enabled?

Is it possible to page for rows when grouping is enabled?
The group row should be displayed on every page if an group is split over multiple pages.

#893


Rebasing webttle-mvp1 branch with master branch - 23-10-2024

Closing the PR as it is not required for MVP1


Latin1 encoded files are not auto-detected

I need to "Reopen file with Encoding" for a Latin-1 file every time i open that file to show accented chars correctly, i tried to save the file with the new encoding but does not work.
i wish Vscode can auto-detect the encoding or at least remember the encoding of the file when i open it.
Thank you guys, keep up the awesome work.

Version 1.14.2
Commit cb82febafda0c8c199b9201ad274e25d9a76874e
Date 2017-07-19T23:26:08.116Z
Shell 1.6.6
Renderer 56.0.2924.87
Node 7.4.0

OS Version:
Xubuntu 16.04 xenial
4.10.0-30-generic #34~16.04.1-Ubuntu

Steps to Reproduce:

Open a Latin-1 file in editor (displays in UTF-8 by default)
Change encoding to Western (ISO-8859-1)
Save and close the file
Open same file again and it's displayed as UTF-8

@clarking does it help if you configure "files.autoGuessEncoding": true ?

thank you for the response, when i use the option "files.autoGuessEncoding": true the file displays correctly but assigns the Windows 1252 encoding which is very similar to ISO-8859-1, it will be amazing if the editor can remember the encoding you set to the file when you open it for the first time. In the meantime i will keep the autoguesscontent option enabled
thank you again and keep up the awesome work


Cookie policy page contains a Source Code table that is not displaying correctly in radix

Is there something that can be done in with the issue? Alternatively should we look to build this page in Sanity instead of having as a static page rather than spend too much solving.
Which also means we need to look at how to solve source code displays? Not sure if this could be solve using an iframe or can it only be solved with Source code component?
https://www.equinor.com/en/cookie-policy.html
https://energyvision.app.radix.equinor.com/cookie-policy
Interactive element from from Cookie policy:
https://consent.cookiebot.com/f1327b03-7951-45da-a2fd-9181babc783f/cd.js" type="text/javascript" async>

@nicholas-haggerty The cookie declaration script tag should be inserted as is at the exact location where we want to show the declaration. So, we need a component to load this cookie declaration in order to load the cookie declaration on other satellite sites too.

@wenche Hey, see Padmajas comment above. Should we just create a new card for a specific component to host the script code?

Yes, that would probably make sense @nicholas-haggerty

On a side note, @BirteThornquist  and I briefly discussed if we should group these single-use, odd components in a separate component list item like "Special components" and choose the component in the popover to avoid to bloat the list with components like "REMIT (if needed)", "Stock information"

@wenche Great idea. Ill make a card and lets discuss

Closing the bug and have opened a new issue in backlog to solve this and other special/unique components that have limited use


profile elem accesses and emit fastpaths for cache types we've seen

Perf runs have shown a few scattered improvements of 2-4% across different Speedometer 2 tests (overall improves by ~0.8%). Also looks like it improves ARES-6 ML and Air tests by about 5% each.

// Currently only checks the local cache (not proto, accessor, or missing); we could consider generating extra checks

update comment

Refers to: lib/Backend/Lower.cpp:15698 in 181d889. [](commit_id = 181d889eb78fee61375aeb1cd2d8b89d7027133a, deletion_comment = False)


Bluetooth: RSSI Read command can be configured out even when mandatory

Describe the bug
When BT_CONN is enabled, the Kconfig option BT_CTLR_CONN_RSSI can be set to 'n', which disables support for the Read RSSI command. However, the Read RSSI command is mandatory if the Connection State is supported, leading to a configuration that cannot possibly pass qualification.
To Reproduce
Build with CONFIG_BT_PERIPHERAL=y and CONFIG_BT_CTLR_CONN_RSSI=n.
Expected behavior
The configuration system should not allow configurations that are obviously invalid. There might be a case to disable the Read RSSI command in combined host/controller builds if it is known to be unused. However, the Read RSSI command must be available if BT_CONN and BT_HCI_RAW are set.
Impact
Very low. Nothing prevents the user from selecting a valid configuration. However, users that set  CONFIG_BT_CTLR_CONN_RSSI=n may be surprised that the configuration is not qualifiable.

CC: @cvinayak @kruithofa @carlescufi @joerchan

CONFIG_BT_CTLR_CONN_RSSI consumes both more current and code space for applications that do not need to poll/query RSSI using HCI command. The default is CONFIG_BT_CTLR_CONN_RSSI=y when CONFIG_BT_HCI_RAW is selected, and applications should be allowed to deselect.

I agree with vinayak. This would only be an issue if we are making an HCI product, and the user would have to select an HCI qualifiable configuration. For host+controller build this is not a problem

I am fine with having this configurable in combined builds. However, I believe that BT_HCI_RAW should enforce BT_CTLR_CONN_RSSI instead of just defaulting it to 'y'.

Is BT_HCI_RAW really the right option to force HCI conformant configurations?
@jhedberg Any comments or ideas?

Is BT_HCI_RAW really the right option to force HCI conformant configurations?

That sounds like a fair assumption to me. BT_HCI_RAW is essentially for building the controller as an independent (and independently qualified) module, with HCI as the interface to talk to this module. For combined builds we know exactly what kind of host is paired with what kind of controller, and will anyway not be qualifying HCI separately (even though it exists as an internal interface).


Login page without overlapping

Related Issue
Fixes #904
Description
Now the login page contents are properly aligned and on scrolling there is no overlapping between navbar and the container.
Type of PR

[x] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)

[Attach any relevant screenshots or videos demonstrating the changes]
Checklist:

[x] I have performed a self-review of my code
[x] I have read and followed the Contribution Guidelines.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[x] I have commented my code, particularly in hard-to-understand areas.

Additional context:
Removed the overlapping on scrolling between navbar and the main container.
[Include any additional information or context that might be helpful for reviewers.]

Still the same

But it's working. I have added the screenshot also.

@Suchitra-Sahoo I will do another PR


Error: for v4 + setup interview, no test.yml is created and example.feature errors

How do we fix this?
Our previous test run setup process automatically created a test.yml. If needed, it would be automatically replaced by a developer's own test.yml when the code was pulled. Our kiln repo setup interview could then create an "example.feature" file for devs that ran the test.yml interview.
It was/is (in v3) a flawed system to begin with. What if the developer uses test.yml as a sort of scratch pad and it breaks. This might not mean that their tests should break.
For v4, now that we use the API, no test.yml is assured to exist. We need to prevent the setup interview from creating an "example.feature" that uses "test.yml", maybe with a v2 of the interview while v4 isn't ready. I think it would still be really useful to provide a ready test in their Sources folder. How can we provide that?
Maybe we can make a file with a totally unlikely name in their Project and use that for our "example.feature" test instead. Something like "ALKiln_example_test_demo.yml" or something? 👍 for this solution or comments with other ideas.
[Note: This would be annoying to implement in v3 and we're hoping to leave that in the dust as soon as possible, so probably not worth the effort [to update v3].]
Edit: Also, delete test.yml from our testing repository so we're accurately representing a repository that was newly set up.

From what I recall of our discussion, we said the best option might be to edit the setup interview to offer a dropdown of their .yml files for them to choose from to make their first test and an option to skip making an example test.
Also include a story table in the test that's commented out, though we probably won't be able to make it specific to their interview.
MVP could just ask if they want to add an example test and a text field for the name.


Folding is case sensitive

Folding should be case insensitive. Maybe foldmethod=syntax is the solution.

since v2.0.0 foldmethod syntax can be used to address this issue


integration test doesnt work

[Enter feedback here]

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

ID: 77889d43-fedb-f8b4-8fea-379ec946555c
Version Independent ID: f499b131-8b14-7e10-1728-543fdd5a5656
Content: Integration tests in ASP.NET Core
Content Source: aspnetcore/test/integration-tests.md
Product: aspnet-core
Technology: aspnetcore-test
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

What doesn't work?