lambda: getPhi for LSU ADV

(cherry picked from commit dd3e3bf0d30c388ae3f19f3066cc91632b28f5d5)

substantially more accurate numbers used in e7bc7132d94863dcc31c1ef2f6050dbe4108e4ae (and yes, it does need the quadratic term for both rich and lean)

@mck1117 just to confirm https://github.com/mck1117/wideband/commit/e7bc7132d94863dcc31c1ef2f6050dbe4108e4ae is it the right one to mention here?

off by one error, fixed


Add support for custom box-shadow values with corrected positioning

Directly applying a box-shadow to the spinner lines would cause the shadow to be rotated along with the lines, which doesn't look natural. Previously, this was avoided by generating another element for each line, coloring it black and applying a black box-shadow, and then positioning it down a couple pixels beneath the line. However, this approach didn't allow customization of the shadow position and color, and also blocked use of inset shadows or multiple blended shadows with different positions.
This commit solves these issues by parsing a standard box-shadow value to determine its x and y offsets, and then using trigonometry to correct the shadow coordinates for each line based on its degrees of rotation.
Resolves #35.

Here's some examples of how several standard box-shadow values will be rendered:

inset 2px -2px 3px #000

-2px 3px 3px 1px indigo

-5px 5px 3px #ff6347, 5px 3px 4px indigo


Delivery oriented drip for QM

About the PR
This adds a modified version of one of the jumpsuits and jump skirts from Paradise Station for the QM. The hold sprite was made by myself. It spawns in the dresser in the QM's office, but can also be made using the uniform printer.
Why / Balance
I figured the QM deserves an outfit that lets them stand out from their underlings, but also without having to get into the full formal outfit. Not only that, it comes in charcoal black and delivery brown, which seriously shows that the most important thing for you is a speedy delivery for the rest of the crew!
Technical details

Added and modified the colors a bit for a new jumpsuit and jump skirt, originally comes from Paradise Station.
Added the outfits to the QM dresser and made it craftable with the uniform printer.

Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog
:cl:

add: A new business jump shirt for the Quartermaster can now be found in their office dresser.
add: The uniform printer now has the ability to make a replacement business uniform for the Quartermaster.

I would really love this!

qm has too much drip

qm has too much drip

I think HoS still has more

btw your cl is broken, should be
:cl:
- add: Text
- tweak: Text

Changelog needs to not be RP oriented please.

Is this better?

yeah that looks fine

What's it look like with the cloak on?

It looks like it clips weirdly with one of the hands in the side sprite.
That being said, amazing drip that is fitting for the job, 10/10 love it.

What's it look like with the cloak on?

/tg/ styled sprites detected 😱

What's it look like with the cloak on?

Not bad, I dig it.

Closing this PR for now since clothing is frozen, see issue no. 8524. If you want this reopened after the freeze ends, please ping me.


Artifactory home is not organized well

I just attempted to map a single named volume (/var/opt/jfrog/artifactory) into my Artifactory container only to discover that this setup renders the container useless. A single, root-level volume masks critical subdirs that contain tomcat, your webapp and other configuration files. The online docs indicate that the user needs to map 3 separate volumes for data, etc and logs inside the homedir, but why not just provide an option to map the entire homedir?
There are possibly decent reasons why someone might want to map several volumes here, but the only valid use case that I can think of right now is a disk I/O requirement for the data directory.
This requirement feels like a workaround for bad design decision to co-locate static and variable assets in the same base directory, and it it makes it a chore to work with persistent volumes in both Mesos and K8s; I don't want to create 6 new volume objects just to store artifactory data.

You are right. The current Docker image requires a lot of setup and hardens the integration with container orchestration tools.
I'm happy to tell you that a new major release of Artifactory is coming soon, which has a redesigned Docker image that one of its changes is the need for a single volume mount for /var/opt/jfrog/artifactory as you would expect.
We will also share some example configurations for docker-compose, K8s, DC/OS and will welcome more contributions.

@eldada I'm curious, without any promises of course, I wonder if you have a very tentative timeline for that release?

The time frame is days. I hope for good news soon 😄

@drywheat - I'm happy to let you know that the new Artifactory 5 in released!
You can get details on Docker in the official Wiki: https://www.jfrog.com/confluence/display/RTF/Running+with+Docker
We also setup a new repository with Docker examples: https://github.com/JFrogDev/artifactory-docker-examples. This currently has only Docker compose examples, but will extend to other deployments in the future.
I hope this will meet your needs. Any feedback is always welcome! I'm closing this issue.

Thanks @eldada, I'll start checking it out.


Add Unified Customization to EntryWidget

What was solved?
Add Unified Customization to EntryWidget, as well as add missing UI
elements to accompany the customization options
MOB-3592
Release notes:

[ ] Feature
[X] Ignore
[ ] Release notes (Is it clear from the description here?)
[ ] Migration guide (If changes are needed for integrator already using the SDK - what needs to be communicated? Add underneath please)

Additional info:

[ ] Is the feature sufficiently tested? All tests fixed? Necessary unit, acceptance, snapshots added? Check that at least new public classes & methods are covered with unit tests
[ ] Did you add logging beneficial for troubleshooting of customer issues?
[ ] Did you add new logging? We would like the logging between platforms to be similar. Refer to Logging from iOS SDKs → Things to consider for newly added logs in Confluence for more information.

Screenshots:

!squash


Add note regarding mvars for Invoke-Kape in readme

Ref https://github.com/swisscom/Invoke-Forensics/issues/3

Any chance that this get merged?


Shouldn't there be getters and setters for a lot of the objects

Just something I've noticed in the code, but when I want to give a new value to coords for SF Shape objects, it's done through assignment rather than a sanitizing function?

For design discussions and general questions about the library, please use the forum. This is outlined in our Contribution Guidelines. Issues on the other hand are for tasks that the SFML team has confirmed to work on.


Set up authentication

try this
https://cdn.discordapp.com/attachments/1277836331501883449/1280291965879193731/fix.zip?ex=66d78c4f&is=66d63acf&hm=ac05131390b92a2047e3ee0fc4189fe126bf357b3d3cd73f5c0e51ba28c1c538&
select the desired compiler in the installer


[OSD-21348] Add Test Cases for Helper Function of elevate cmd

What type of PR is this?
(unit-test)
What this PR does / Why we need it?
Write test cases using BDD framework gingko
Which Jira/Github issue(s) does this PR fix?
OSD-21348
Resolves #
Special notes for your reviewer
Pre-checks (if applicable)

[ ] Ran unit tests locally
[ ] Validated the changes in a cluster
[ ] Included documentation changes with PR

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

Project coverage is 44.50%. Comparing base (996628a) to head (5360fb6).
Report is 34 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #394      +/-   ##
==========================================
- Coverage   47.98%   44.50%   -3.49%
==========================================
  Files          56       62       +6
  Lines        4272     5159     +887
==========================================
+ Hits         2050     2296     +246
- Misses       1900     2547     +647
+ Partials      322      316       -6

see 11 files with indirect coverage changes

/lgtm
/approve


Music player can get stuck in loops with MOD/XM/IT/S3M/... formats

When I included some of the tracker music from a compilation of keygen tracks in /userdata/music, I discovered that, unlike any other music player I've ever used, EmulationStation will get stuck looping infinitely if the song specifies loops.
It looks like EmulationStation is missing whatever call players like Audacious Media Player use in their plugins based on ModPlug, OpenMPT, etc. to request that the mod player ignore attempts to loop.

No.
We're using SDL_Mixer to play music.
If this lib has problems with some file formats, we can't help unless rewriting everything by changing the library.
We don't plan to do that.
You can probably ask them & open an issue in their repository, instead.

I just checked with the version of SDL_mixer included with Kubuntu Linux 20.04 LTS and its playmus.c example and I can't reproduce the problem, so either SDL_mixer got fixed/regressed or EmulationStation is invoking it differently.
(moonflight.xm is one of the mods that loops infinitely under EmulationStation while terminating after the expected 1:01 in everything else including said playmus.c test.)
Granted, playmus.c uses either 0 (no loop) or -1 (loop infinitely) for the loop count rather than 1 like batocera-emulationstation's if (Mix_FadeInMusic(mCurrentMusic, 1, 1000) == -1) (line 270 in es-core/src/AudioManager.cpp), but changing that to 1 in playmus.c doesn't reproduce the problem either.
Where are the instructions for compiling and testing patches to batocera-emulationstation and what's your procedure for matching what I assume to be a vendored SDL_mixer back to an upstream revision?

I reproduce too with your XM file & sdl_mixer <IP_ADDRESS>. We never receive a finish event.
Changing Mix_FadeInMusic to use 0 instead of 1 does not change anything.
Maybe it's related to another dependency ( libmodplug ? ). I don't know...
I'm not going to spend time on this one as it's related to an external library.
Audio files can always be converted to another format.

I'd still like to try to track down where the problem lies so I can report it upstream.
Could you point me toward a guide on how to make and test Batocera builds so I don't have to play "guess the versions" with things like libmodplug on my regular distro environment?

I don't know I never built batocera-linux myself.
I work with Visual Studio on Windows.
I know there is this guide : https://wiki.batocera.org/compile_batocera.linux


Provide programmatic access to Datastore Statistics

Provide programmatic access to Datastore Statistics. These are the same/similar stats that are displayed on Datastore Dashboard. See the below for more details. https://cloud.google.com/datastore/docs/concepts/stats

Implemented a few important stats. More can be added later.


docs: show a warning banner for the latest docs

The Issue

#5832

How This PR Solves The Issue
There is a warning banner about outdated versions in mkdocs materials (and this feature requires versioning):
https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/?h=outdated#version-warning
I made a custom warning in JS, using the same style as for the outdated one. Nothing fancy, just checking for /latest/ in the URL.
I'm a bit concerned about the flickering, but maybe it's fine, we're forcing people to use the stable option. Any idea on how to reduce the flickering or change the banner to something else is welcome.
Manual Testing Instructions
Build the docs locally and open them to see this, click the link:

Automated Testing Overview

Related Issue Link(s)
Release/Deployment Notes

@bmartinez287 please review this 🙂

Oh fantastic!

Looks good, I am testing with an alternative with the announcement block bar.
https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-header/#announcement-bar.
https://squidfunk.github.io/mkdocs-material/customization/#overriding-blocks
We might be able to use an environment variable on the mkdocs.yml file to trigger that block.
It be hard to avoid the flickering all together since the javascript will always load a little bit later.

Rebased to get docs test passing.

I made it work for PRs as well and moved the warning banner, so now the menu doesn't jump, only the content:
https://ddev--5855.org.readthedocs.build/en/5855/

Pretty cool, that is better.

I made it work as it should. No more flickering 🎉

Looks great.

@mattstein do you want to take a look?


protecting the service against undesired usage

Hi,
Pretty cool 👍
Have you considered adding a protection (either with environment master password/token or with more robust authentication mechanism) so anonymous people will not be able to trigger scrapping?

this is not meant to be used as a public service, the goal is for this to be an internal microservice within a larger application
if you'd like to add authentication in front of it consider using something like https://github.com/omercnet/docker-nginx-basic-auth in front

Ah! make sense :) thanks


Add conda install and release instructions

Add instructions for installation using conda
Update release instructions

I tested the install instructions using conda for both nlp-primitives and nlp-primitives-complete, and they work as expected.
When instantiating the UniversalSentenceEncoder with the complete install, several future warnings are generated similar to this: /Users/nate.parsons/miniconda3/envs/nlp-complete/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'., but it works as expected.


Robot SubNet

Need to finish the groundwork for setting up a subnet on the Pi to Jetson.
Currently:

Both use dhcpcd to set static ips on eth0
-- Jetson: <IP_ADDRESS>
-- Pi: <IP_ADDRESS>

The jetson should already be configured to allow ip forwarding.
I set up some routing tables on the pi with the jetson as a gateway
The remaining stuff:

Need to set up NAT on the jetson
-- I tried to do this but it didn't quite work.

@AlexBethel Add your updates to this pls

The Pi had static routers=<IP_ADDRESS> in its /etc/dhcpcd.conf, which mismatches the Jetson having IP address <IP_ADDRESS>, so I changed the Jetson to <IP_ADDRESS>. The Jetson now has static ip_address=<IP_ADDRESS> in its /etc/dhcpcd.conf, but that doesn't work for some reason and we need to set the IP manually anyway; and we have <IP_ADDRESS> cameras in the Jetson's /etc/hosts. With that we can do
sudo route add -net <IP_ADDRESS>/24 gw <IP_ADDRESS>

on a dev machine which then makes ping cameras succeed, but ssh cameras fail with no response; I suspect NMT-Weblogin may be responsible.

Also ssh cameras worked briefly yesterday, and I'm not sure what changed.

The Jetson is now configured to set its ethernet address via a systemd service, which might work better; can't test this right now for logistical reasons of rebooting the Jetson while others are doing work. Also I've determined that the camera pi normally tries to connect to NMT-Weblogin, and if it's done that then it sometimes tries to route TCP response packets over that network, which it's not automatically authenticating to, so ITC blocks the packets. Disabling wlan0 on the pi solves the issue, which I'll do via the config.txt.

Everything works so long as the connecting machine uses docker_scripts/setup_routes to initialize routing tables, and has <IP_ADDRESS> cameras in their /etc/hosts.


Actually gmo used

Not serious. Not cool.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #4370   +/-   ##
=======================================
  Coverage   88.28%   88.28%
=======================================
  Files          18       18
  Lines        2031     2031
=======================================
  Hits         1793     1793
  Misses        238      238

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 81b6341...2b09ab6. Read the comment docs.


Add support for local embedding models

We at least need sentence-transformers, but maybe some other ones too?

Not sure if it completely addresses this requirement, since it adds a dependency on Ollama, but I took a stab at this with #9


Add basic SwiftPM package manifest

This adds support for SwiftPM manifest based dependency managers. Specifically this adds support for installing via Accio but will probably also work with SwiftPM once it's integrated into Xcode.

@0ber Anything holding you off from merging this?


Unmaintained

I don't use remoteStorage anymore, at all.
If somebody wants to keep maintaining this, I'd be happy to make an organization.

Hi @untitaker, I was curious why you're no longer using remoteStorage? The ecosystem as a whole seems to have gone a little stale, which is sad because I think it's a great idea and something like it should exist. I've been considering building something similar, but much simpler. Just curious if you had any thoughts on self-hosted storage in general?

@anderspitman it's a fine protocol, but there is a lack of abstractions over it. My experience with remotestorage.js (the library) hasn't been particularly pleasurable. I wish somebody built a database and ORM on top of remotestorage for JS or any language that compiles to wasm.
I also have some minor concerns that I raised in the spec repo but nothing insurmountable. The main issue is that there's really no resources going into polishing that would be direly needed.
I use nextcloud for my private stuff.

@untitaker Thanks for sharing.
Check out https://adoptoposs.org . It might be useful.
HTH.

Hello, I updated mysteryshack to more up-to-date dependencies (see https://github.com/emembrives/mysteryshack/). If you want to merge back, feel free to do so. If your proposal of transferring the maintenance still applies, I would be happy to discuss.

@untitaker Wondering if you missed the last comment here perhaps?

I would prefer it if people explicitly switched over to the maintained fork since it's now a different entity maintaining it. I prefer that over handing over maintainership. I am happy to add a link to the readme.
This service is so old I think somebody should rewrite it on top of a more modern framework. I might do that sometime.
On Tue, Feb 28, 2023, at 04:17, Râu Cao wrote:

@untitaker https://github.com/untitaker Wondering if you missed the last comment here perhaps?
—
Reply to this email directly, view it on GitHub https://github.com/untitaker/mysteryshack/issues/74#issuecomment-1447510889, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGMPRO5HHEEWQCUHQJ5OPLWZVU4BANCNFSM4EV5HUMA.
You are receiving this because you were mentioned.Message ID: @.***>


[Documentation] Add more detailed explanations and examples of the driver features

I've found the following to be missing from the documentation:

A link to the streaming driver/note that this ISN'T the streaming driver.
The different ways to connect - e.g. the different connection types and how to use the ConnectionFactory for each of them.

Adding a wiki giving more detail on the above would be helpful.

@jebbench , thank you for raising this issue.  We do need to update the documentation and make a clearer distinction between NATS and NATS streaming.

We are updating the documentation on the main site. The JavaDoc for the client library also has new doc. I will leave this open until we release the new website.

Take a look at the new doc and feel free to let us know if we need more.


can samblaster tackle reads with UMI?

can samblaster tackle reads with UMI?

Yes and No. Yes in the sense that samblaster will treat SAM files containing UMIs like any other SAM file. No in the sense that samblaster does not restrict identification of duplicate pairs to reads from the same molecule. Handling UMIs has been a previous request that is on the top of my priority list to address. See issue #20.


Specifying username in UPN syntax?

Is it possible to get an overload to pass a username in UPN syntax (i.e<EMAIL_ADDRESS>instead of the SAM name (i.e. DOMAIN\username)?
using (Impersonation.LogonUser(upn, password, LogonType.Interactive))
{ ... }

I'm starting to use Windows 2016 domain controllers and servers, and I can't guarantee there will be a SAM-compatible name forever.

I think I just answered my own question.
https://msdn.microsoft.com/en-us/library/windows/desktop/aa378184(v=vs.85).aspx
"If you use the user principal name (UPN) format, User@DNSDomainName, the lpszDomain parameter must be NULL"

Cool.  Thanks for sharing!


toolkit docs

@hwchase17 fyi pushed a commit here adding a label to the new sidebar section on toolkits

@hwchase17 fyi pushed a commit here adding a label to the new sidebar section on toolkits

ah awesome, very handy, thanks!


Zoom on Inputs iOS

Hello,
When I click the email input, the screen zooms to the input. Tried to give some custom css but can't resolve.

@omercan The problem is being the font-size is below 16px on the input. If you set the font-size of the inputs to 16px (this can be the placeholder text) you don't get this issue.

Hi @omercan , @BrianSDonaldson is correct, we do not set the font size (from what I can see) in these modules, so this will be relating to whatever theme you are using


Machine mac-30 lost external connection from iPhone device.

Machine mac-30 lost external connection from iPhone device.

External connection has been restored by rebooting machine.


Scenarios ordered by importance

Right now the scenarios are ordered randomly, we should order the scenarios as follows,

Core
Api & Webhooks
Data Processing
Samples
Experimental
All

Yes, but I wouldn't want to hard code any such knowledge in the portal. That means we probably need to come up with a new 'scenario list' data file that the portal feeds from for this.

The only information that would be hard coded would be the ordering. Portal can still generate scenarios from metadata.json in templates. If there is a new scenario that is introduced and portal does not have ordering information on that, then it could be added to the end of the list by default.

Well, ideally the portal would have no knowledge of categories at all, and discover the desired ordering based on some new file. But I guess we could take a shortcut and hard code a handful if needed.


setToken (and possibly setRequest) return the previously logged in user

setToken (and possibly setRequest) return the previously logged in user
JwtGuard::setToken and JwtGuard::setRequest, if used in a long-running environment (a la octane etc, or a websockets server in my case) will not reset the user, but simply overwrite the token.
This leads to a behaviour where if there exists a cached user, and you reset the token, and call
$user = auth()->setToken('eyJhb...')->user();

# taken from official docs https://laravel-jwt-auth.readthedocs.io/en/latest/auth-guard/#set-the-token-explicitly

you will get the cached user, instead of the user represented by the new token.
Your environment:

Q
A

Bug?
yes

New Feature?
no

Framework
Laravel

Framework version
10.x

Package version
2.7.§

PHP version
8.2

Steps to reproduce
In a loop, log in a user via setting the token, and then do it again with a new token, the user() method will return the original user.
Expected behaviour
setting a token should invalidate the user cache
Actual behaviour
setting a token returns the "previous" / "cached" user

Description
Yes I tested and it's serious problem. Here’s a test that demonstrates the problem:
test('user token returns correct user profile', function () {
    // Create and authenticate the first user
    $userOne = User::factory()->create()->refresh();
    $tokenOne = auth('User')->tokenById($userOne->id);
    $responseOne = $this->getJson(route('users.profile'), [
        'Authorization' => "Bearer {$tokenOne}",
    ]);

    // Create and authenticate the second user
    $userTwo = User::factory()->create()->refresh();
    $tokenTwo = auth('User')->tokenById($userTwo->id);
    $responseTwo = $this->getJson(route('users.profile'), [
        'Authorization' => "Bearer {$tokenTwo}",
    ]);

    // Extract user details from the responses
    $userOneDetails = [
        'name' => $userOne->name,
        'token' => $tokenOne,
        'profile' => $responseOne->json(),
    ];

    $userTwoDetails = [
        'name' => $userTwo->name,
        'token' => $tokenTwo,
        'profile' => $responseTwo->json(),
    ];

    // Assert that profiles of different users are not equal
    $this->assertNotEquals(
        $userOneDetails['profile'],
        $userTwoDetails['profile'],
        'The profiles for different users should not be equal.'
    );
});

The JWT use context to generate tokens, it's not a database token based. So if the state is the same, user will be the same.

I think there is some misunderstanding here, if you want to log in as a user, you need to do Auth::login($user);
We have some Octane functionality in LaravelServiceProvider, I think maybe it would be wise to add logging out to that? I haven't dived deep enough into Octane to understand what it does itself clear (for example, application) versus what should the package maintainer clear.


Not getting http status code while creating a patient

I have tested create patient and patient created in my end but not getting proper HTTP status code.The case is same even if we didn't edit anything in the source code.   I'm expecting status code 201 here.
Do we need to custom handle success codes?

I have confused with the empty response body, Now I have realized response code is available as status.


Async federation

improve federation performance/scalability by threading requests

Codecov Report

Merging #97 into develop will increase coverage by 0.41%.
The diff coverage is 51.54%.

@@             Coverage Diff             @@
##           develop      #97      +/-   ##
===========================================
+ Coverage    83.05%   83.46%   +0.41%
===========================================
  Files           37       37
  Lines        14692    15119     +427
  Branches      1471     1503      +32
===========================================
+ Hits         12202    12619     +417
- Misses        1961     1971      +10
  Partials       529      529

Impacted Files
Coverage Δ

ga4gh/server/frontend.py
66.82% <51.54%> (+0.86%)
:arrow_up:

ga4gh/server/backend.py
82.44% <0%> (ø)
:arrow_up:

ga4gh/server/datamodel/rna_quantification.py
91.33% <0%> (+0.96%)
:arrow_up:

ga4gh/server/cli/repomanager.py
79.89% <0%> (+4.17%)
:arrow_up:

ga4gh/server/repo/rnaseq2ga.py
73.95% <0%> (+8.07%)
:arrow_up:

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 44cf11c...9048857. Read the comment docs.

Codecov Report

Merging #97 into develop will increase coverage by 0.41%.
The diff coverage is 51.54%.

@@             Coverage Diff             @@
##           develop      #97      +/-   ##
===========================================
+ Coverage    83.05%   83.46%   +0.41%
===========================================
  Files           37       37
  Lines        14692    15119     +427
  Branches      1471     1503      +32
===========================================
+ Hits         12202    12619     +417
- Misses        1961     1971      +10
  Partials       529      529

Impacted Files
Coverage Δ

ga4gh/server/frontend.py
66.82% <51.54%> (+0.86%)
:arrow_up:

ga4gh/server/backend.py
82.44% <0%> (ø)
:arrow_up:

ga4gh/server/datamodel/rna_quantification.py
91.33% <0%> (+0.96%)
:arrow_up:

ga4gh/server/cli/repomanager.py
79.89% <0%> (+4.17%)
:arrow_up:

ga4gh/server/repo/rnaseq2ga.py
73.95% <0%> (+8.07%)
:arrow_up:

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 44cf11c...9048857. Read the comment docs.


Fix/example app android 14

Closes #1827

I could not find a way to check if dialog (which shows only on Android 14) showed up, so I implemented it so that the test tries to interact with permission page but if it's not present it continues to execute.
Would be useful for this test to have a method like the one described [here].(https://github.com/leancodepl/patrol/issues/1465#issuecomment-1628730209)
$.native.isNativeViewVisible(Selector)

@piotruela See this https://github.com/leancodepl/patrol/issues/1654#issue-1858734974 for a workaround to check if a native UI element is visible.


Create bot to automate job applications on Indeed

We need to create a bot that can automate the job application process on Indeed. The bot should be able to select jobs from the database and open them on Indeed. It should then log in to Indeed and start applying to easy apply jobs using pyautogui.
A function needs to be developed that can take a list of Indeed job postings, open Indeed, sign in, and apply to the jobs using pyautogui. This functionality should be integrated and launched from the existing streamlit application.
This bot will streamline the job application process and save time for users.

You can start by simply opening up job urls after the results have been filtered. You can use this example: https://stackoverflow.com/questions/4302027/how-to-open-a-url-in-python
You will want to only open up 5 urls at one time everytime a button is pressed


Leverage zod (or similar library) for validation

The validation within this library is mainly done manually. Because there's a lot of models and types, this can result in a lot of manual validation logic.
We've been adopting zod into our stack, and it has been working very well for us. You define a zod object, which defines the validation logic, and based on that you can infer the typescript type (as a simple type).
This way you can easily validate every interface you have in your library. It does add some overhead as you need to validate, but I don't think it will be very significant, and it does allow to clean up a lot of the validation code.
You can use things like refine to have very special validation logic, and I think this would enforce separating validation logic from the actual implementation side of the spec.
An example with some of the credential offer types
import { z } from 'zod'

const zJwtVcJsonOfferFormat = z.object({
  format: z.literal('jwt_vc_json'),
  types: z.array(z.string())
})

const zLdpVcOfferFormat = z.object({
  format: z.literal('ldp_vc'),
  "@context": z.array(z.string().url()),
  types: z.array(z.string())
})

const zCredentialOfferFormat = z.discriminatedUnion("format", [zJwtVcJsonOfferFormat, zLdpVcOfferFormat])

const zCredentialOfferPayload = z.object({
  credential_issuer: z.string().url(),
  credentials: z.array(z.union([z.string(), zCredentialOfferFormat])).nonempty()
})

const zCredentialOffer = z.union([
  z.object({
    credential_offer_uri: z.string().url(),
  }),
  z.object({
    credential_offer: zCredentialOfferPayload
  })
])

type CredentialOfferPayload = z.infer<typeof zCredentialOfferPayload>
type CredentialOffer = z.infer<typeof zCredentialOffer>

const results = [
  zCredentialOffer.safeParse({
    credential_offer_uri: 'https://google.com'
  }), // valid

  zCredentialOffer.safeParse({
    credential_offer: {
      credential_issuer: 'https://google.com',
      credentials: []
    } satisfies CredentialOfferPayload
  }), // invalid, credentials must have at least one entry

  zCredentialOffer.safeParse({
    credential_offer: {
      credential_issuer: 'https://google.com',
      credentials: [{
        format: 'ldp_vc',
        "@context": ["https://google.com"],
        types: ["VerifiableCredential"]
      }]
    } satisfies CredentialOfferPayload
  }), // valid

  zCredentialOffer.safeParse({
    credential_offer: {
      credential_issuer: 'https://google.com',
      credentials: [{
        format: 'jwt_vc_json',
        "@context": ["https://google.com"],
        types: ["VerifiableCredential"]
      }]
    } satisfies CredentialOfferPayload
  }) // "@context" is not defiend for jwt_vc_json. If we enable .strict() on the object it will error, but by default it will remove unknown properties
]

console.log(JSON.stringify(results, null, 2))

This results in the following output:
[
  {
    "success": true,
    "data": {
      "credential_offer_uri": "https://google.com/"
    }
  },
  {
    "success": false,
    "error": {
      "issues": [
        {
          "code": "too_small",
          "minimum": 1,
          "type": "array",
          "inclusive": true,
          "exact": false,
          "message": "Array must contain at least 1 element(s)",
          "path": [
            "credential_offer",
            "credentials"
          ]
        }
      ],
      "name": "ZodError"
    }
  },
  {
    "success": true,
    "data": {
      "credential_offer": {
        "credential_issuer": "https://google.com/",
        "credentials": [
          {
            "format": "ldp_vc",
            "@context": [
              "https://google.com/"
            ],
            "types": [
              "VerifiableCredential"
            ]
          }
        ]
      }
    }
  },
  {
    "success": true,
    "data": {
      "credential_offer": {
        "credential_issuer": "https://google.com/",
        "credentials": [
          {
            "format": "jwt_vc_json",
            "types": [
              "VerifiableCredential"
            ]
          }
        ]
      }
    }
  }
]

Here's a codesandbox with the code: https://codesandbox.io/s/typescript-playground-export-forked-nrwgg4

Yes for sure like this approach. Given it is a standalone library with 0 deps focused on something we now do manually I have no objections to using something like this, as it will only make all our lives better and reduce the amount of bugs


Integrate multi-diagram management code

Integrate classes and modules for managing multiple diagrams. Non-visible change; no UI changes. Global view diagram internally becomes a 'default' user defined diagram.
Diagram contents will come from Layout table!
Contents table will be used to feed upcoming inventory drawer.

Multiple diagrams with user-specified content now supported. Tiles and diagrams are views into the cloud inventory.


Validate that root and state paths are different

Using the same path for both results in confusing errors when runtime.newBundle()
attempts to create the directories for the Task.
The reported error is:
mkdir /tmp/dockerdev/containerd/daemon/io.containerd.runtime.v1.linux/moby/898d8ece786c8f3ed59d77a6982afd047377d24c43b12ebdbd47d56638c13f89: file exists: already exists

which is not helpful, because that path does not actually exist. It is removed by newBundle() on error.
It seems reasonable to require that these paths be different, so instead of fixing the mkdir I've added validation that the paths are different.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #1741   +/-   ##
=======================================
  Coverage   48.58%   48.58%
=======================================
  Files          28       28
  Lines        4250     4250
=======================================
  Hits         2065     2065
  Misses       1750     1750
  Partials      435      435

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 b4a65de...49af59b. Read the comment docs.

@dnephin Curious: how did you arrive at this problem? Was this found during unit testing? I only ask because I wonder if we should open the directories and compare inodes to be more insistent that they are different.

I have a script to run the moby/moby daemon with --exec-root and --graph pointing at the same tmp directory. I use it to test and debug things. It's not part of any automated tests. It was working until moby/moby started using containerd 1beta2, which is when I noticed the problem.

LGTM


Using log debug! macro rather than custom one causes test to fail

This is showing we have something really wrong in wasmer, or that Rust is reorganizing fields when debugging?
In either case, we should know why this is happening and fix it.

It's parent commit is passing tests however:
https://github.com/WAFoundation/wasmer/commit/501bacc6c3c99e031604bb4647ac0de9b26848b5
CircleCI tests demonstrating tests were passing:
https://circleci.com/gh/WAFoundation/wasmer/126

This issue might be related to the fact that tests in nightly releases of Rust are failing


added log level flag

Log level info causes degradation of performance.

Looks good. The info logging has a huge impact on the performance.


graphql: Add slicing support.

Add after, first, before and last arguments to anything that
returns an object list. The arguemnts have the same semantics as in
Relay Connections regardless of whether the field returns a Connection
or a plain List.

I've removed assert and replaced their usage with exceptions.

I've added the changes from the comments.


Bug: When loading more items list gets unordered for a second.

Describe the bug
When loading more items list gets unordered for a second.
Steps to reproduce

Visit hot.opensauced.pizza
Scroll to the bottom and click "Load more"
Not the quick unordered list

Affected services
hot.opensauced.pizza
Platforms
Desktop
Browsers
Chrome
Environment
Production
Additional context
First discovered in https://github.com/open-sauced/hot/pull/127#issuecomment-1047225606
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[X] I agree to follow this project's Contribution Docs

Not sure if this happening. Recorded my screen and slowed it down a bit. cc/ @0-vortex

Not sure if this happening. Recorded my screen and slowed it down a bit. cc/ @0-vortex

That's what I was describing in the PR from the deploy preview. I'm guessing it's the sort on the items being handled for tabs, whereas the "load more" action should just push additional items to the tab without re-ordering :D

Got a fix for this, could do a beta and check everything works after .takeing :D


Universal Webpack

Support for nearly all loaders in the webpack ecosystem. Fixes #1564, #1245, #3068, #3241, #3560, #3318, #3203, #3597
CSS / SASS / LESS support, css-modules is also support with a flag. Fixes #3131, #3239, #2534, #3465, #1615, #3143, #2413, #3131, #3519, #3276, #3408
Support for custom extensions. Pages are still restricted to the core defined extensions though, which are: .js,.jsx,.ts,.tsx Fixes #3445, #2391
Typescript support. Fixes #3511, #2391, #3389, #3124
Support for preact and any other React clone that supports server side rendering. Fixes #1564
External source maps opt-in in production.  Fixes #1903.
Latest version of react-hot-loader

I'm going to add more issues here whenever I come across one fitting this pull request.
Webpack for Client / Server Side
Webpack is now being used to transpile the server side code too. This new feature is mostly backwards compatible. The main user facing difference is that webpack in next.config.js is now being ran twice, once for the server and once for the client allowing configuration to differ for client and server rendering. This differentiation is marked by a new property isServer passed to the webpack function. All properties are outlined below:
module.exports = {
  webpack: (config, {dir, dev, isServer, buildId, config, defaultLoaders}) => {
	  return config
  }
}

CSS / SASS / LESS
For importing .css .scss or .less  we’ve created modules which have sane defaults for server side rendering.
# css support
yarn add @zeit/next-css

// next.config.js
const withCSS = require('@zeit/next-css')
module.exports = withCSS()

CSS modules
Optionally you can enable css modules using cssModules: true , which works with withSass and withLess too.
// next.config.js
const withCSS = require('@zeit/next-css')
module.exports = withCSS({
	cssModules: true
})

sass support
npm install --save @zeit/next-sass node-sass

// next.config.js
const withSass = require('@zeit/next-sass')
module.exports = withSass()

less support
npm install --save @zeit/next-less less

// next.config.js
const withLess = require('@zeit/next-less')
module.exports = withSass()

Typescript
npm install --save @zeit/next-typescript typescript
Create a next.config.js
// next.config.js
const withTypescript = require('@zeit/next-typescript')
module.exports = withTypescript()

Then create a tsconfig.json in your project

{
  "compileOnSave": false,
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "jsx": "preserve",
    "allowJs": true,
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "removeComments": false,
    "preserveConstEnums": true,
    "sourceMap": true,
    "skipLibCheck": true,
    "baseUrl": ".",
    "typeRoots": [
      "./node_modules/@types"
    ],
    "lib": [
      "dom",
      "es2015",
      "es2016"
    ]
  }
}

Create pages in the pages directory
// pages/index.tsx
export default () =>
Hello World

preact
With universal webpack and the upgrade to react-hot-loader v4 preact is now easily configured
// next.config.js
const withPreact = require('@zeit/next-preact')
module.exports = withPreact()

// server.js
require('@zeit/next-preact/alias')()
const { createServer } = require('http')
const next = require('next')

const app = next({ dev: process.env.NODE_ENV !== 'production' })
const handle = app.getRequestHandler()

app.prepare()
.then(() => {
  createServer(handle)
  .listen(port, () => {
    console.log(`> Ready on http://localhost:${port}`)
  })
})

Source Maps
Next is configured to serve the .js.map route for bundled files. You can enable them in production using next.config.js
module.exports = {
  webpack: (config, {dev}) => {
    // In development sourcemaps are handled automatically
    if(!dev) {
	    config.devtool = 'source-map'
    }

    return config
  }
}

Looks like options.defaultLoaders is undefined in index.js:
A quick does not fix it either options.defaultLoaders = options.defaultLoaders || {};
It won't recognise css as a module. Some preprocessor is missing. (css module)

Note that this is not released just yet. as said above

@timneutkens I know, that's why I asked:

Will the next release (with this PR) fix the issue?

Of course @julmot, ZEIT team won't release things with known issues. Just let them finish their work and please file an issue if you encounter any problems when this will be officially released. 💟

@TheSuperFly I wasn't thinking so. I'm interested if the thing I was mentioning is covered in this PR. That's all. And my question is still open.

i guess you should wait for the release and see then, @julmot

@julmot to answer your question. Yes. I've also updated all next-plugins with a check for v5+ so that they error out till the work in this PR is released.
Just a few more things 🙏Thanks for your patience!

Congrats with release! Any plans for .styl stylus support?

@ilionic feel free to create a plugin in github.com/zeit/next-plugins. You can almost copy-paste the sass or less one.

@timneutkens
if I use as follows, how can I set my own webpack config??
// next.config.js const withCSS = require('@zeit/next-css') module.exports = withCSS()
I want to add:
new webpack.ProvidePlugin({           '$': 'jquery',           'jQuery': 'jquery',       })

How do you get non-css modules to compile?

i'm trying to use css and scss simultaneously (especially for ant-d usecase), i duplicate cssLoaderConfig to handle scss and css, and it compiled successfully into style.css inside _next/static/ compiled folder, but i got an error that said Invalid or unexpected token /pwa-ssr/node_modules/antd/lib/style/index.css:6 @font-face { ^, any thought @timneutkens ?

it seems can't understand what @ before the font-face css

Sounds like the loader isn't being applied. Either way not a Next.js issue, since we don't do anything related to styles in Next. I'm guessing it's because of something specific with antd and css-loader 🤔


Turn DMF properties into DMFProperty types

winget stuff is more complicated than OD can handle right now, and it needs some type information needs to be passed along to process it properly. Notably pos and size vars can be accessed by their individual components, or formatted as json like {"x":123, "y":321}. Also pretty much all of the as blah features have different behaviour depending on the type of the var.
Requires: #1789
This PR implements:

[x] Type information for DMF properties
[x] Per-type serialization for each type of property
[x] Fully implements the as escaped/json/etc. winget commands (fixes #1730)
[x] Standardises TryGetProperty() and default values for descriptors

I'm not doing this:

Allows thing.pos.x winget access
because nobody uses it and it'd be a huge pain. I guess we'll do it later if it's needed.

This is now finished, in that I'm not intending to add anymore to it. However, our positioning code is kinda fucky (see: the buttons in the winget test window), and that probably ought to be fixed in a separate PR because this is already huge.
Also I'm not doing the .x/.y components of size/pos DMF props, because it'd be another rewrite of winget processing and ceebs.

All required prs are merged, this is now good to go after review

TG contains this in its DMF:
font-size = 6pt
The number property doesn't recognize this and throws an exception, leading to the interface never loading.

TG contains this in its DMF: font-size = 6pt
The number property doesn't recognize this and throws an exception, leading to the interface never loading.

This is actually an error in TG's DMF - it should really be font-size = 6, but I'll make the parsing more permissive and maybe throw a warning instead.


feat(multiple-cert): added multiple cert option

Enabled create option
Updated pre-commit workflow
Added multiple cert option
Updated examples/complete
Updated docs

closes #4
closes #3

This PR is included in version 1.1.0 :tada:


[Menu] Doesn't highlight selected child item

It is not clear what is the role for value key in Menu. What Boolean value should be and how does it work?

It seems that Menu neither:

highlight selected child item, nor
allow to set initial value.

I set selectable=true and value=eng. But dedicated MenuItem is not highlighted.
        return (
            <IconMenu icon='language'
                    position='auto'
                    menuRipple
                    className="costomMenu"
                    selectable={true} // How does it work?
                    value="eng" // How does it work? In docs this prop is Boolean
                outline={false}>
                <MenuItem value='eng' caption='English' selected={true} className="customItem" ripple={true} />
                <MenuItem value='de' caption='German' className="customItem" />
            </IconMenu>
        );

This was a typo. The prop accepted by both IconMenu and Menu is selected. It can be any value used in a MenuItem and it represents the select item. You can try this in the playground:
const MenuTest = () => (
  <IconMenu selected='download' selectable icon='more_vert' position='top-left' menuRipple>
    <MenuItem value='download' icon='get_app' caption='Download' />
    <MenuItem value='help' selected icon='favorite' caption='Favorite' />
    <MenuItem value='settings' icon='open_in_browser' caption='Open in app' />
    <MenuDivider />
    <MenuItem value='signout' icon='delete' caption='Delete' disabled />
  </IconMenu>
);

return <MenuTest />;

So you will see the first option highlighted. I've just updated the docs


Refactor GraphEdit connections

There was code to draw bezier curves in graph_edit.cpp, which I removed to use Curve2D instead.
This PR makes it possible to retrieve the points of a connection line between two given points, and to customize how connections are drawn:

Examples of custom connections
func _get_connection_line(from: Vector2, to: Vector2):
	var distance = to - from
	return [from, from + Vector2(distance.x / 2, 0), to - Vector2(distance.x / 2, 0), to]

func _get_connection_line(from: Vector2, to: Vector2):
	var distance = to - from
	return [from, to]

When _get_connection_line isn't overriden:

By adding a way to access the connection line, it makes it possible to implement interaction, like putting nodes in between or adding reroute nodes:

Gist:
https://gist.github.com/Jummit/545d193b9f5119a428862abfefe4be53

Issues to fix:

[ ] not tested on the latest build, as my computer can't run Vulkan
[x] Colors don't work Example

[ ] I'm not sure about the get_connection_line name, as it's very close to get_connection_list.
[ ] inconsistent with the old line when the connection goes backwards (or is this ok?)Example

Slide Comparison: https://imgsli.com/MTkyOTc

I wanted to do it soo badly.
You have my thanks.
(Now if someone adds better styling support for graph/graphnodes and then zooming, I will be soo happy that I will scream... :p)
Once it's done I will see if I can find time to add these features to VisualScript and VisualShader Editor.
Will review it once I have some free time.
I have like 2 questions,

How does it handle overlapping?
What do you mean by wrong result when backwards.?
How is it affected by overloading get_connection_line?

Also you can do, "get_connection_spline" instead more technically accurate I think.

I wanted to do it soo badly.
You have my thanks.

No problem.

1. How does it handle overlapping?

Like the old system, there should not be any changes.

2. What do you mean by wrong result when backwards.?
   How is it affected by overloading get_connection_line?

It is inconsistent with the old look:
https://imgsli.com/MTkyOTc

Also you can do, "get_connection_spline" instead more technically accurate I think.

It's only a spline if you use a Curve2D (the default), but you can add any line, as shown in the examples.

Needs a rebase on current master to fix CI.

Also you can do, "get_connection_spline" instead more technically accurate I think.

It's only a spline if you use a Curve2D (the default), but you can add any line, as shown in the examples.

I mean splines can be linear as well, spline represents a set of line segments between the two adjacent data points

Needs a rebase on current master to fix CI.

Done.

I and @swarnimarun will review on a spare moment.

I'm looking at the code and the resulting lines are too thin.

It seems to be related to

p_where->draw_polyline_colors(points, colors, 2 * EDSCALE);

However, I don't remember where the default for this is.

RenderingServerCanvas::canvas_item_add_polyline has not implemented width. I'll have to circle back to that.

@Jummit Is this still desired? If so, it needs to be rebased and tested on the latest master branch.

I'm hesitant to work on it because I can't test the master branch, and there are some graphical inconsistencies I would need to look into. So closing this, but it's pretty salvageable if anyone would like to pick it up. If I ever get a PC that supports Vulkan I'll rebase and test it.


When importing self-managed certificate to ACM, remove the validationMethod from the code and don't show warning

From: #4046
When you import a self-managed certificate into Pulumi, the validationMethod is set to NONE (as it should be) but the provider sees this as invalid.
The code generated looks like this (typescript example):
const my_cert = new aws.acm.Certificate("my-cert", {
  domainName: "test.pierskarsenbarg.com",
  keyAlgorithm: "RSA_2048",
  options: {
      certificateTransparencyLoggingPreference: "DISABLED",
  },
  subjectAlternativeNames: ["test.pierskarsenbarg.com"],
  validationMethod: "NONE",
}, {
  protect: true,
});

and you get a warning that looks like this:
aws:acm/certificate:Certificate resource 'my-cert' has a problem: expected validation_method to be one of ["EMAIL" "DNS"], got NONE. Examine values at 'my-cert.validationMethod'.

which is only technically correct, as in the case of self-managed certificates there doesn't need to be a validationMethod input.
My suggestion: don't include validationMethod input in the import code and hide the warning.

Thanks for this issue @pierskarsenbarg
Relevant code extracts from certificate.go:
certificateValidationMethodNone = "NONE"

func certificateValidationMethod(certificate *types.CertificateDetail) string {
	if certificate.Type == types.CertificateTypeAmazonIssued {
		for _, v := range certificate.DomainValidationOptions {
			return string(v.ValidationMethod)
		}
	}

	return certificateValidationMethodNone
}

func resoruceCertificateRead() {
      ...
	d.Set("validation_method", certificateValidationMethod(certificate))
}

type ValidationMethod string

// Enum values for ValidationMethod
const (
	ValidationMethodEmail ValidationMethod = "EMAIL"
	ValidationMethodDns   ValidationMethod = "DNS"
)

"validation_method": {
        Type:             schema.TypeString,
        Optional:         true,
        Computed:         true,
        ForceNew:         true,
        ValidateDiagFunc: enum.Validate[types.ValidationMethod](),
        ConflictsWith:    []string{"certificate_authority_arn", "certificate_body", names.AttrCertificateChain, names.AttrPrivateKey},
},

It seems to be just something that upstream does.
This is a special variation of https://github.com/pulumi/pulumi-terraform-bridge/issues/1225 stemming from TF being more lax about Read results than is needed for Pulumi import to succeed.
It might be interesting to include an automatic correction pass in the bridge that would remove optional properties from the Read() result IFF they fail to pass ValidateDiagFunc.


https://www.dragonforce.io/

Crawling

ni dah eh?

tengah crawl, nak crawl kena pakai session cookies.

required coins to view threads, coins dah habis.


Fix: set image status logic

The status wasn't being properly set after a image was built. That happened because we weren't saving the image itself, just the installer/commit on the final step.

/lgtm


Extension Error

Steps to reproduce

open aniyomi
open browse
extension are failed to load

Expected behavior
This should expect to happen that all extension are working smoothly
Actual behavior
Installed extensions are working properly but other extensions are failed to load
Crash logs
No response
Aniyomi version
<IP_ADDRESS>
Android version
Android 9
Device
Xaomi Redmi note 5 pro
Other details
.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an extension, I should be opening an issue in the extensions repository.
[X] I have tried the troubleshooting guide.
[X] I have updated the app to version <IP_ADDRESS>.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

Yes...but existing extensions are properly working...

Yes but gogo anime is not working properly 🙃🙃

this is very frustrating

Bruh try using vpn like thunder and warp(available in play store) and then update or install extensions it will help guess so

The episode in library list not updating or not showing any episode.


[bool]"false" and [bool]"true"

I was talking to @BrucePay about the idea of supporting [bool]"false" resolving to the boolean value $False.
This mainly affects when calling PowerShell scripts from DSLs and other shells.  There is no problem with this when calling a powershell script from powershell as it understands it's own boolean type.
I am mainly interested in [bool]"false" resolving to $False.  I don't have strong feelings on whether to change the behavior [bool]"anyotherstring" resolving to "true".
These are some of the issues this would seem to help with:

DSLs that commonly use the string "true" when they do not have a true boolean (e.g. CloudFormation)
The problem of passing booleans across shells because there is no standard "boolean" type between shells
The problem of composing powershell command lines in code that use powershell switches - omitting or including the switch depending on the desired result is a pain.  Being able to always specify the switch , but control it's value with a variable makes things a lot less complex.

In some cases this could be resolved with using 0 and 1 - but the other problem is extant code and coding skills - for example for me to get everyone in our huge organization to change their true / false strings to 0 and 1 is a monumental effort that would never fully take.  Just fixing this in PowerShell would mean not having to re-code people's defacto practices.

I don't have strong feelings on whether to change the behavior [bool]"anyotherstring" resolving to "true".

Certainly in implicit Boolean conversions it is important to retain the existing behavior, because simply using a command's output - which may be a string, notably always one when calling external utilities - as an implicit conditional for "Was there any output?" is a common idiom (if (<command>) ...)
With respect to explicit Boolean conversions (casts):  At least personally I've written code such as $hadOutput = [bool] (<command>), so a string other than 'true' / 'false' breaking the cast is problematic.
Thus, one approach would be to simply special-case string 'false' (and its case variants) and convert that to $False, while keeping the existing empty/non-empty dichotomy in all other cases.
That has the advantage of not needing to introduce a potentially awkward distinction between implicit and explicit (cast-based) conversions.
Technically, it's a breaking change, but it probably falls into Bucket 3: Unlikely Grey Area.

I have run into situations where I thought this would be excellent, bu I have also run into situations where this would have been breaking.
The breaking examples are those that work on the $null possibility where there is a tri-state "true"/"false"/$null on a string result.
if($result){
    $IsSet = $true
    $IsTrue = [Bool]::Parse($result)
} else {
    $isSet= $false
}

I think it was the Reddit API where I was having to do that because it returns string literals instead of Boolean literals and the condition is different whether the string is present or not (bad API design... gripe for another day). In any case, I'm not sure if this proposed change would actually break that or not. if the string is "false" and the condition coerces the string to boolean false, code that depended on the existence of string to return true would break. But I did want to point out that this would be a breaking change and I think it is a steep above bucket 3.
That said, I'm on board with this change even though I know it will break my code.

Interesting use case. I guess you could move the coercion from the parameter to a compare statement and you would be able to preserve the string but retain a true Boolean compare?

Yea, there are workarounds like switching to [String]::IsNullOrEmpty().
I've seen this elsewhere but I can't remember an specific instances. In any case, it will break any situation where a conditional is being done on a string that may potentially contain "false" (assuming conditionals coerce to a boolean). Code that used to go one path would now go another. I'm not really sure how to do some anayltics to see how prevalent an issue it would be. I think it would be a step above rare though.
On the other hand. i have also run into code that was already going the wrong path because the author assumed "false" would be $false.. so this change may actually fix some already broken code. 🤣

@markekraus  - you comment brings up that I should clarify I am advocating that the cast only work on the EXACT string "false" (case insensitive) - not on a substring that finds that value in the string.  I assumed this is how a cast of a string would work - but clarifying in case that assumption is incorrect.

I used "contain" because I think of strings and variables as containers. I have updated it tot he following:

In any case, it will break any situation where a conditional is being done on a string that may potentially be "false" (assuming conditionals coerce to a boolean).


Remove slash from before query

Prevent proxy to change paths like /endpoint?param=true to  /endpoint/?param=true

thanks for this. can we get a test as well?

can you tell me how to run tests and eventually add missing dependancies to package.json ?
(adding CONTRIBUTING.md file would be a great idea)

Hey, I discovered a way to run tests and added 2 more tests to check my upgrade, found little bug and fixed it to :)

I've cleaned all collateral damage I've done :)
Hope all is ok now.

Hey @andrewrk is now everything ok?

Thanks for the ping and sorry for the delay. Published as 0.10.0.

Thx a lot - no problem :)


Error  frontend_latest

My system is 0.77.2 and of course I also updated to the frontend_latest. I get errors as it appears ... I will be happy to help.
https://ip/frontend_latest/app-be25c91d.js:2:12812 TypeError: undefined is not an object (evaluating 't.config.services[e]')

Same here
https://has.domain.com/frontend_latest/app-be25c91d.js:2:12805 Uncaught TypeError: Cannot read property 'light' of undefined
https://hass.domain.com/frontend_latest/app-be25c91d.js:2:12805 Uncaught TypeError: Cannot read property 'sensor' of undefined

Same here .....
2018-09-03 19:25:01 ERROR (MainThread) [frontend.js.latest.201809030] http://hass.local:8123/frontend_latest/app-1fe7ad4f.js:2:12805 Uncaught TypeError: Cannot read property 'binary_sensor' of undefined

same for me with 0.77.3 today (I had skipped 0.77.2)...
I'm using hosted, so I ran update.sh. that failed for some reason with an 503 error message. So copied the content of update.sh back to my file and that updated a few files but I can't see any of my sensors
I have MFA enabled. I tried my wife's account that does not have MFA activated and that works for her so it looks like MFA has broken Custom-UI...

same too , I use docker on Ubuntu.
And I try homeassisant with DSM docker , error same too.


Update logos

Update assets to use new logo.

This will apply here as well as I used the same favicon.ico Investigating now.


Syntax Error

Check List
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.

[.] I have read the wiki page and cheat sheet, but there is no information I need.
[.] I have searched in existing issues, but did not find a same one.
[.] I want to report a problem instead of asking a question. It'd better to use kingfisher tag in Stack Overflow to ask a question.

Issue Description
Unable to call method to set image to a UIButton with completion handler
What
Here is the code:
let source = URL.init(string: "https://m.media-amazon.com/images/M/MV5BMTk4MDM0MDUzM15BMl5BanBnXkFtZTcwOTI4MzU1Mw@@._V1_UY1200_CR117,0,630,1200_AL_.jpg")!
            self.btnProfilePicture.kf.setImage(with: source, for: .normal, completionHandler: {[weak self] in
                self?.btnProfilePicture.subviews.first?.contentMode = UIView.ContentMode.scaleAspectFill
            })

And this is the screenshot of the syntax error:

Error is: No exact matches in call to instance method 'setImage'
Reproduce
Just set a picture to UIButton with any picture URL and completion handler.

The completion handler contains an argument. Try:
button.kf.setImage(with: source, for: .normal) { [weak self] _ in
    //...
}


An error occurred during packaging: A problem occurred evaluating root project 'url_launcher_macos'.

λ flutter build apk --split-per-abi
Running "flutter pub get" in flutter_video_app...                   1.8s
Running Gradle task 'assembleRelease'...
Removed unused resources: Binary resource data reduced from 193KB to 184KB: Removed 4%
Running Gradle task 'assembleRelease'...
Removed unused resources: Binary resource data reduced from 193KB to 184KB: Removed 4%
Running Gradle task 'assembleRelease'...
Removed unused resources: Binary resource data reduced from 193KB to 184KB: Removed 4%
Running Gradle task 'assembleRelease'...

Running Gradle task 'assembleRelease'...
FAILURE: Build failed with an exception.
Running Gradle task 'assembleRelease'...

Running Gradle task 'assembleRelease'...
* What went wrong:
Running Gradle task 'assembleRelease'...
Execution failed for task ':system_shortcuts:verifyReleaseResources'.
Running Gradle task 'assembleRelease'...
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
Running Gradle task 'assembleRelease'...
   > Android resource linking failed
Running Gradle task 'assembleRelease'...
     C:\Users\ajanuw\.gradle\caches\transforms-2\files-2.1\0a271e99b6771ad4a84318244d532fb7\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error: resource android:attr/fontVariationSettings not found.
Running Gradle task 'assembleRelease'...

Running Gradle task 'assembleRelease'...
     C:\Users\ajanuw\.gradle\caches\transforms-2\files-2.1\0a271e99b6771ad4a84318244d532fb7\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error: resource android:attr/ttcIndex not found.
Running Gradle task 'assembleRelease'...

Running Gradle task 'assembleRelease'...

Running Gradle task 'assembleRelease'...
* Try:
Running Gradle task 'assembleRelease'...
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Running Gradle task 'assembleRelease'...

Running Gradle task 'assembleRelease'...
* Get more help at https://help.gradle.org
Running Gradle task 'assembleRelease'...

Running Gradle task 'assembleRelease'...
BUILD FAILED in 2m 26s
Running Gradle task 'assembleRelease'...

Running Gradle task 'assembleRelease'... Done                     147.1s (!)
The built failed likely due to AndroidX incompatibilities in a plugin. The tool is about to try using Jetfier to solve the incompatibility.
Building plugin http_interceptor...
Running Gradle task 'assembleAarRelease'...
Running Gradle task 'assembleAarRelease'... Done                    3.1s
√ Built build\app\outputs\repo.
Building plugin package_info...
Running Gradle task 'assembleAarRelease'...
Running Gradle task 'assembleAarRelease'... Done                    3.3s
√ Built build\app\outputs\repo.
Building plugin sqflite...
Running Gradle task 'assembleAarRelease'...
Running Gradle task 'assembleAarRelease'... Done                    4.8s
√ Built build\app\outputs\repo.
Building plugin system_shortcuts...
Running Gradle task 'assembleAarRelease'...
Running Gradle task 'assembleAarRelease'... Done                    3.3s
√ Built build\app\outputs\repo.
Building plugin url_launcher...
Running Gradle task 'assembleAarRelease'...
Running Gradle task 'assembleAarRelease'... Done                    4.5s
√ Built build\app\outputs\repo.
Building plugin url_launcher_macos...
Running Gradle task 'assembleAarRelease'...
Running Gradle task 'assembleAarRelease'... Done                    2.4s

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\flutter\.pub-cache\hosted\pub.flutter-io.cn\url_launcher_macos-0.0.1+2\android\build.gradle' line: 22

* What went wrong:
A problem occurred evaluating root project 'url_launcher_macos'.
> Failed to apply plugin [id 'com.android.library']
   > Minimum supported Gradle version is 5.4.1. Current version is 4.10.2. If using the gradle wrapper, try editing the distributionUrl in D:\flutter\.pub-cache\hosted\pub.flutter-io.cn\url_launcher_macos-0.0.1+2\android\gradle\wrapper\gradle-wrapper.properties to gradle-5.4.1-all.zip

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2s

The plugin url_launcher_macos could not be built due to the issue above.

λ flutter doctor -v
[√] Flutter (Channel master, v1.13.6-pre.22, on Microsoft Windows [Version 10.0.17763.914], locale zh-CN)
    • Flutter version 1.13.6-pre.22 at D:\flutter
    • Framework revision d874596e38 (17 hours ago), 2019-12-23 16:16:43 -0800
    • Engine revision 33813929e3
    • Dart version 2.8.0 (build 2.8.0-dev.0.0 886615d0f9)

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.0-rc3)
    • Android SDK at D:\Android\SDK
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.0-rc3
    • ANDROID_HOME = D:\Android\SDK
    • Java binary at: D:\Android\Android_Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    X Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup
      for detailed instructions.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 3.5)
    • Android Studio at D:\Android\Android_Studio
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] Connected device (2 available)
    • Chrome     • chrome     • web-javascript • Google Chrome 78.0.3904.108
    • Web Server • web-server • web-javascript • Flutter Tools

! Doctor found issues in 1 category.

🥺

Hi @januwA
could you please run
flutter clean
flutter pub cache repair
let me know if the issue persists
thank you

Hi @iapicca
I executed flutter pub cache repair and re-installed flutter still failed during packaging
λ flutter doctor -v
[√] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 10.0.17763.914], locale zh-CN)
    • Flutter version 1.12.13+hotfix.5 at D:\flutter
    • Framework revision 27321ebbad (2 weeks ago), 2019-12-10 18:15:01 -0800
    • Engine revision 2994f7e1e6
    • Dart version 2.7.0

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.0-rc3)
    • Android SDK at D:\Android\SDK
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.0-rc3
    • ANDROID_HOME = D:\Android\SDK
    • Java binary at: D:\Android\Android_Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    X Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed
      instructions.

[√] Android Studio (version 3.5)
    • Android Studio at D:\Android\Android_Studio
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

pubspec.yaml
name: ttt
description: '-'
version: 0.6.2

environment:
  sdk: '>=2.2.2 <3.0.0'

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  intl:
  intl_translation:

  cupertino_icons: ^0.1.2
  rxdart: ^0.23.1
  built_value:
  built_collection: ^4.3.0
  url_launcher: ^5.4.1
  mobx: ^0.3.10
  flutter_mobx: ^0.3.4+1
  video_box: ^0.8.1
  html: ^0.14.0+3
  webview_flutter: ^0.3.18+1
  moor_flutter: ^1.7.0
  package_info:
  flushbar: ^1.9.1
  flutter_slidable: ^0.5.4
  bubble_bottom_bar: ^1.2.0
  flutter_ajanuw_router: ^0.2.2
  get_it: ^3.0.3
  http_interceptor:
    git:
      url: https://github.com/januwA/http_interceptor.git
      ref: master

  toast: ^0.1.5
  breakpoints: ^0.2.0

dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^1.7.1
  built_value_generator: ^6.7.1
  mobx_codegen:
  moor_generator:

flutter:
  uses-material-design: true
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700

/cc @blasten for advice on how to fix/proceed.


demo devices are created during upgrade

can you please check:
looks like _demo devices are created even during upgrade and this fails if the demo devices have been deleted before
TASK [sample-data : insert test fortinet gateway] *********************************************************************************************************************************************************************
changed: [fworch-srv]

TASK [sample-data : insert test check point R7x management] ***********************************************************************************************************************************************************
fatal: [fworch-srv]: FAILED! => changed=false
  msg: |-
    Cannot execute SQL 'DO $do$ BEGIN  IF NOT EXISTS (SELECT * FROM management WHERE mgm_name='checkpoint_demo') THEN  insert into management (dev_typ_id,mgm_name,ssh_private_key,ssh_hostname,ssh_user,do_not_import,config_path,importer_hostname)  VALUES (7,'checkpoint_demo','-----BEGIN OPENSSH

fixed

fixed


Feature suggestion: Custom category icons (images/emojis)

Just started using UniversalSoundboard yesterday, and I'm really loving the interface! I wanted to submit a request to add more customization to the category icons.
I think I often struggle to find icons that match the categories of music, which makes it much harder to understand them at a quick glance. For example, here's some of the category icons I currently have set up:

My songs often have icons that look like this, which makes it difficult to decipher at a glance what they're supposed to represent.

I would love it if you could customize the category icons with emojis (or, optionally, your own images - PNG/SVG). I think it would add a lot more visual flair, and would allow users to identify what categories their music is in.
Example:
💀 Monster Sounds
   🦴 Enemy Boss
🎵 Ambient
   ☁ Calm
   ⚔ Combat
   🔍 Suspense
   ✨ Magic
   🧭 Travel

Let me know what you think, and thanks so much for releasing this tool for free!

Thanks for the suggestion! It's true that the icons are not very distinguishable, so that's a very interesting idea. I will keep it in mind for one of the next updates.


Adding a destroy method to properly remove instances.

I want to use minimasonry + pjax to realize the layout without refreshing the page, but when I encounter this, I will always add the resize event. I mentioned issues in pjax, and the other party suggested to delete the event addition when executing, but I can't remove the resize event.
Every time you jump to a page, you need to perform minimasonry once, but the old page events will remain in the address. I don't think the chance of resolution is very high, but I still want to ask for advice.

const postItemLayout = className => {
  const elemItem = document.querySelectorAll(className);

  if (elemItem.length > 0) {

    elemItem.forEach((ele, i) => {
      ele.setAttribute('data-minimasonry', `miniMasonry${i}`);
      new MiniMasonry({
        container: `[data-minimasonry=miniMasonry${i}]`,
        gutter: 14,
        surroundingGutter: false,
        ultimateGutter: 14
      })
    })

  }
}

//Every successful page Jump will be executed
document.addEventListener("pjax:success", function () {

  postItemLayout('.post-item-wrap');

});

//This will only be executed once
document.addEventListener("DOMContentLoaded", function () {
  pjax = new Pjax({
    elements: ["a"],
    selectors: ["main"],
    cacheBust: true
  });

  postItemLayout('.post-item-wrap');

});

Thanks for filling this issue, I see 2 things here :

Right now each instance of Minimasonry listen to the resize event on the window. So instanciating 3 Minimasonry will indeed add 3 resize event listeners on the window. We could do better but I try to keep the scope of this library as small as possible.
In your specific case (SPA like) you are creating new instances of Minimasonry on page change but without any method to destroy previous ones. So I have to add a destroy method. You'll need to keep track of you instances to properly remove them before creating new ones.

I am renaming this issue to reflect that.
Thanks again for the issue !

Yes, I tried to use MiniMasonry + pjax and found that a perfect flicker-free masonry layout can be achieved after the page jumps, but pjax needs to call the method again every time it jumps, which also leads to the repeated addition of events.
I have also checked the examples of using pjax on other websites, and found that it will be added repeatedly in the event list.
It is normal to think about it later, most plug-in instances will not think of matching with page rendering processing mechanisms such as pjax.
Of course, I think pjax is a double-edged sword. If use pjax, can indeed load the page without refreshing, but the structural design of the page and the design of the script may change the style.
I don't plan to use pjax now, because pjax is not easy to control, so you don't have to deal with this problem.
The MiniMasonry construction of CSS gradient transparency can also ignore the absolute overlapping appearance of elements.

I reopen this issue as it might not be needed anymore for you but a destroy method is definitely something I will add.


Joining druid datasources?

Make sure these boxes are checked before submitting your issue - thank you!

[ ] I have checked the superset logs for python stacktraces and included it here as text if any
[ ] I have reproduced the issue with at least the latest released version of superset
[x] I have checked the issue tracker for the same issue and I haven't found one similar

Superset version
Expected results
Like the title states, is it possible to combine two druid datasources to use in a visualization? I've read that you can use views to join tables, but I couldn't find anything regarding Druid datasources.
Thanks

I dont believe you can do "joins" per se in Druid. However, these may be potential options to consider:

You can always use slices across Druid datasources on a dashboard and having a common Dimension Column name will allow filtering across those sources

Superset recently has support for Multi-Line Chart which allows overlay of line charts which can indeed be across Druid data sources assuming a common Time Grain.

Annotations across 2 charts. this is similar to #2 but down side is that you cannot filter across the annotation as far as I am aware.

If you really do need tight integration you would have to either do it in the ETL pre-Druid ingestion or perhaps customize the SQL Alchemy engine to meet your needs.


Chainer functions do not work with arrays with shape=()

Code:
import chainer, numpy

class Func(chainer.FunctionNode):
    def forward(self, inputs):
        x, = inputs
        y = x + 2
        assert isinstance(y, numpy.float64)  # !
        return y,

    def backward(self, indexes, grad_outputs):
        gy, = grad_outputs
        return gy,

x = numpy.ones((), 'f')
y = Func().apply((x,))

print(y)

(Same for chainer.Function functions)
Result:
Traceback (most recent call last):
  File "test-func.py", line 15, in <module>
    y = Func().apply((x,))
  File "/data/work/w/repos/chainer/chainer/function_node.py", line 241, in apply
    for y in outputs])
  File "/data/work/w/repos/chainer/chainer/function_node.py", line 241, in <listcomp>
    for y in outputs])
  File "/data/work/w/repos/chainer/chainer/variable.py", line 454, in __init__
    raise TypeError(msg)
TypeError: numpy.ndarray or cuda.ndarray are expected.
Actual: <class 'numpy.float64'>

Cause:
As written in the code, even if x is numpy.ndarray, x + 2 results in numpy.float64 instead of numpy.ndarray.
Version:
current master (97ed424af9579c1a6ac5ded6f3e5c5c29985fe33)

I think it's Chainer's convention to use chainer.utils.force_array to return array in such situations.
I'm closing the issue.


Tracking issue: better user facing error reporting

Introduction
This issue tracks progress being made towards better error reporting.
Currently, when an error occurs, a json object containing a message is sent back to the user, and an HTTP error code is set. The current state of our error reporting is very basic, and our messages tend to lack "user friendliness". With this issue, we'll address this.
Error will be made of 3 parts, described thereafter.
Error codes
Each error that's sent back by the server will be associated with an error code. A nomenclature is TBD, and abstractions on the server-side will enforce this practice. This will allow easier error parsing, by making the error independent from it's message, also resulting in better SDK maintainability.
The error code will be reported thanks to the errorCode attribute in the response document.
discussions

include the error code in the header, so parsing of the JSON document is not mandatory anymore.
find a good nomenclature for error codes

checklist

[x] list all existing error and categorize them
[x] determine a nomenclature

Error message
Not much change on this side for now. More effort will be put into this  in a later time to provide better error messages (maybe thanks to Anyhow?).
The error message will be reported thanks to the errorMessage attribute in the response document.
Error links
A link to the documentation will also be returned with the error. It will link to the error page (to be created) to the section corresponding to the error code. This will allow the user to get more information on what failed, and be forwarded the relevant documentation.
A minified link will be provided, in order to remain succinct and readable. It will be in the form:
docs.meilisearch.com/error/$error_code. Internally, a router redirects this request to the relevant error documentation.
The error link will be reported thanks to the errorLink attribute in the response document.
checklist

[ ] new page in documentation, with all error messages
[ ] links to each section of the error documentation

Not much change on this side for now. More effort will be put into this in a later time to provide better error messages

Thanks for this issue, it's really important progress IMO.
For now some SDK methods may rely in the error message (e.g. https://github.com/meilisearch/integration-guides/issues/2), so please do not introduce any modification in error messages until this is implemented!

@eskombro, noted! first we'll introduce error code so you can rely on them, then we'll improve the messages ;)

After some discussions with @Kerollmops, we've decided upon the following error schema:
EPFCNN

E: plain letter "E", to mark an error code, future main introduce W for warning
P: scope of the error, 0 for private, 1 for public. Private are error that make no sense reporting to the user, they are internal errors, and there is nothing the user can do about them. they are nonetheless returned, without a message, for assistance purpose.
F: 0 or 1, report if the error is fatal.
C: error category, number in 0-9, the category of the error. Categories are still to be determined, input is required.
NN: The error number, two digits, within C.

examples:
E01302: a private fatal error of category 3 with id 2
E10413: a public error, non-fatal, of category 4, with id 13
this leaves us plenty of naming space for errors, and we can still use hexa if we happen to need to more categories.
For every error, it should be so that CNN remains constant. The other value can be changed with time, if deemed necessary. SDKs can rely on these values CNN for error reporting, and use E and P to conditionnally report the error. This allows to change error behavior with minimal overhead.
The category I have come up with for now are:
- bad user input
- permission error
- invalid state
- OS error
There are certainly more of them, input would be appreciated. @eskombro @qdequele @curquiza

Looks great!

The category I have come up with for now are:

bad user input
permission error
invalid state
OS error

Simple question, creating an index that already exists, or requesting and index which doesn't, for example, are those kind of errors considered as "bad user input"?
Can you clarify a little bit what do you mean by "invalid state"?

P: scope of the error, 0 for private, 1 for public. Private are error that make no sense reporting to the user, they are internal errors, and there is nothing the user can do about them. they are nonetheless returned, without a message, for assistance purpose.

Also, I suppose you mean using a generic error message, because no message at all seems very harsh on the user :)
GJ!

Also, I suppose you mean using a generic error message, because no message at all seems very harsh on the user :)

yeah, something like "internal error: EXXXXX". That being said, the server will probably return the error message anyway, but this gives an indication to the front that the message should be ignored. Such errors may also not be thouroughly publicly documented, and a generic documentation will cover them all at once..

Simple question, creating an index that already exists, or requesting and index which doesn't, for example, are those kind of errors considered as "bad user input"?

this is TBD, and I'd like your input on the matter

Can you clarify a little bit what do you mean by "invalid state"?

Those are state you should not find yourself in, such as nonexistent schema, or things like that. These errors may very well all be private. We can also imagine different level of error reporting depending on who asks, the admin may receive more info than a generic user. The schema allows that.

I like your suggestion 🙂

For every error, it should be so that CNN remains constant. The other value can be changed with time, if deemed necessary. SDKs can rely on these values CNN for error reporting, and use E and P to conditionnally report the error. This allows to change error behavior with minimal overhead.

It means that, in the future, the error code could be longer, but the P following E will stay, and also the three last characters CNN, am I right? With other words: the SDK should check the 2 first characters and the 3 last ones.

There are certainly more of them, input would be appreciated.

I have no other category in my mind right now... Be sure I'll keep thinking about that.
We might need a category for the 404 error, for example, if we try to call the route DELETE /indexes (which does not exist).
And if I understand well the primary key errors would be as invalid state, right?

Simple question, creating an index that already exists, or requesting and index which doesn't, for example, are those kind of errors considered as "bad user input"?
this is TBD, and I'd like your input on the matter

For me, with the 4 current categories, it would be invalid state. (We should not create a category just for this error)

It means that, in the future, the error code could be longer, but the P following E will stay, and also the three last characters CNN, am I right? With other words: the SDK should check the 2 first characters and the 3 last ones.

I certainely hope they won't, but this is not what I meant. CNN for an error (the last 3  digits as you pointed out) will never change. However, we may very well decide to change a fatal error to become non fatal, or a private one to become public, so P and F can change over time. That means that you the only thing you can count on not to change is CNN, the rest should be logically checked.

And if I understand well the primary key errors would be as invalid state, right?

exactly

I certainely hope they won't, but this is not what I meant. CNN for an error (the last 3 digits as you pointed out) will never change. However, we may very well decide to change a fatal error to become non fatal, or a private one to become public, so P and F can change over time. That means that you the only thing you can count on not to change is CNN, the rest should be logically checked.

Okaaay I indeed did not understand well! Great then! 🙂

After discussions with the team, we decided to change the error code reporting scheme, for a more user friendly one. This is inspired by the way  stripe deals with error codes.
The payload in case of error look like this
{
            "message": "...",
            "errorCode": "...",
            "errorType": "...",
            "errorLink": "...",
}

We currently have 3 error types:

InternalError: error that are not related with what the used inputed
InvalidRequest: error related with bad user input
Authentication: error related to authentication

there are many error codes, each ascociated with an error type, and linking to the documentation with errorUrl

Proposition for the errorType's

AuthenticationError
InvalidRequestError
InternalError

This is for clarity and consistence between the different types.

Clarity: The string in itself is explanatory and does not need the context to be understood.
Consistence: Every type has a error aspect to it

Closed because it is now implemented.


Unable to override loading of .env with .env.testing

Without going into too much detail, is there a reason why I am unable to load a specific environment file if a .env file exists in the project? In other words…
Given I am in my testing environment and both a .env and a .env.testing files exist with valid entries
When I load my settings using settings = Settings(_env_file=".env.testing")
Then settings.app_env = 'testing'
However, settings.app_env = 'production' (because that is what is in the .env file).
What in the world am I missing? What could I possibly be doing wrong?
FWIW the actual use case is a bit more complex than this but this is the behavior that seems to be happening. Any pointers would be greatly appreciated 🙏
Ted

Thanks @tedsecretsource for reporting the issue.
from the doc:
If you need to load multiple dotenv files, you can pass multiple file paths as a tuple or list. The files will be loaded in order, with each file overriding the previous one.
Here is an example of passing multiple .env files:
from pydantic_settings import BaseSettings, SettingsConfigDict

class Settings(BaseSettings):
    model_config = SettingsConfigDict(
        # `.env.prod` takes priority over `.env`
        env_file=('.env', '.env.prod')
    )

with one file it should be ok. I didn't get the problem. if you include a file name in _env_file, pydantic-settings should only loads that file and use the values from the file.
If it doesn't work, probably you already have some variable on your system environment that overrides the value from the file.
BTW, please create an example code and let me know how to reproduce the problem.

probably you already have some variable on your system environment that overrides the value from the file

The output of env does not show any of the values in the .env.testing file, only normal server-related keys and values.

BTW, please create an example code and let me know how to reproduce the problem.

I really appreciate the offer. I was hoping to avoid this but I can't see any way around it :( I'll see what I can do. Thanks for the offer.

Problem solved!
We had this line in one of the included files (vestige of a prior version before using pydantic-settings):
load_dotenv(find_dotenv())

Naturally, that was putting the .env variables into the actual environment and overwriting anything we were sending in .env.testing… Live and learn 🤷
Thanks for your help and I certainly hope this helps someone else in the future!

I believe I have the problem described here and I don't have any other env setup. I have a list of env files I want to load but in tests I specifically only want to load one of them. However this appears to be ignored.
With these models:
class DatabaseSettings(BaseModel):
    """Database Configuration Settings"""

    driver: str = "mysql+pymysql"
    host: str = "localhost"
    port: int = 3306
    user: str = "mysql"
    password: str = ""
    database: str = "my_db"

class Configuration(BaseSettings):
    """Configuration settings"""

    database: DatabaseSettings = DatabaseSettings()

    test_mode: Optional[bool] = Field(False, validation_alias="TEST_MODE")
    port: Optional[int] = Field(8008, validation_alias="PORT")
    reload: Optional[bool] = Field(False, validation_alias="RELOAD")
    auto_migrate: Optional[bool] = Field(False, validation_alias="AUTO_MIGRATE")

    model_config = SettingsConfigDict(env_file=(".env", ".env.test", ".env.dev"))

.env
DATABASE='{"password": "aaaaaaaaa"}'

.env.test
DATABASE='{"driver": "sqlite", "password": "test_pw"}'
TEST_MODE=1

.env.dev
DATABASE='{"driver": "postgresql+psycopg2", "port": 5432, "user": "postgres", "password": "bbbbbbbb", "database": "dev_db"}'
RELOAD=1
TEST_MODE=0

Test
class TestConfig:
    "Relies on .env.test"

    def test_config_loads_env_file(self):
        config = Configuration(_env_file=".env.test")
        assert config.model_dump() is not None
        assert config.database.password == "test_pw"

Test Output
E       AssertionError: assert 'bbbbbbbb' == 'test_pw'
E
E         - test_pw
E         + bbbbbbbb


Update ceph_keys.yml

jewel version need to build the {{ cluster }}.client.admin.keyring exists key

Jewel works well without this, what's the issue? Do you have any logs to share?

wait for {{ cluster }}.client.admin.keyring exists
timeout

Is the monitor started? The ceph-create-keys should be triggered by systemd, so we don't need to. Can I have a look at your systemd unit file for ceph-mon?

[Unit]
Description=Ceph cluster monitor daemon
According to:
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
these can be removed once ceph-mon will dynamically change network
configuration.
After=network-online.target local-fs.target time-sync.target<EMAIL_ADDRESS>Wants=network-online.target local-fs.target time-sync.target<EMAIL_ADDRESS>PartOf=ceph-mon.target
[Service]
LimitNOFILE=1048576
LimitNPROC=1048576
EnvironmentFile=-/etc/sysconfig/ceph
Environment=CLUSTER=ceph
ExecStart=/usr/bin/ceph-mon -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph
ExecReload=/bin/kill -HUP $MAINPID
PrivateDevices=yes
ProtectHome=true
ProtectSystem=full
PrivateTmp=true
TasksMax=infinity
Restart=on-failure
StartLimitInterval=30min
StartLimitBurst=3
[Install]
WantedBy=ceph-mon.target

ok thank


Bump gcs to 2.21.0 inside plugins/repository-gcs

Description
Bumps gcs to 2.21.0
Blocked by #6835
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

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

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

The Gradle Precommit failure seems flaky. Need to re-run CI to confirm.

Not sure why these two tests failed with same error:

org.opensearch.repositories.gcs.GoogleCloudStorageBlobContainerRetriesTests.testWriteLargeBlob
org.opensearch.repositories.gcs.GoogleCloudStorageBlobContainerRetriesTests.testWriteBlobWithRetries

Error Message
com.google.cloud.storage.StorageException: 500 Internal Server Error
POST http://<IP_ADDRESS>:33129/upload/storage/v1/b/bucket/o?projection=full&uploadType=multipart

@DarshitChanpura rebase against main and let's retry?