not able to compute event property duration

Current Behavior
when trying to calculate event duration as a property it fails.
Expected Behavior
it succeeds
or
remove it as event duration property
Failure Information (for bugs)
Steps to Reproduce
To reproduce:
import polars as pl
import pymovements as pm
import matplotlib.pyplot as plt

dataset = pm.Dataset('ToyDataset', path='data/toy')
dataset.download()
dataset.load()
dataset.pix2deg()
dataset.pos2vel('smooth')
dataset.detect_events('ivt')
dataset.compute_event_properties('duration')

Context
Please provide any relevant information about your setup.
This is important in case the issue is not reproducible except for under certain conditions.

Project Version / Commit: stable
Operating System: Ubuntu 24.04

Failure Logs
(venv) c-cube@c-cube-VirtualBox:/tmp/pymovements$ python s.py
Downloading http://github.com/aeye-lab/pymovements-toy-dataset/zipball/6cb5d663317bf418cec0c9abe1dde5085a8a8ebd/ to data/toy/downloads/pymovements-toy-dataset.zip
pymovements-toy-dataset.zip: 100%|████████████████████████████████████████████████████| 3.06M/3.06M [00:01<00:00, 2.99MB/s]
Checking integrity of pymovements-toy-dataset.zip
Extracting pymovements-toy-dataset.zip to data/toy/raw
100%|██████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 61.64it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 36.65it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 47.69it/s]
20it [00:00, 71.12it/s]
0it [00:00, ?it/s]
Traceback (most recent call last):
  File "/tmp/pymovements/s.py", line 11, in <module>
    dataset.compute_event_properties('duration')
  File "/tmp/pymovements/src/pymovements/dataset/dataset.py", line 640, in compute_event_properties
    new_properties = processor.process(
                     ^^^^^^^^^^^^^^^^^^
  File "/tmp/pymovements/src/pymovements/events/processing.py", line 209, in process
    values = filtered_gaze.select(
             ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/pymovements/venv/lib/python3.12/site-packages/polars/dataframe/frame.py", line 8008, in select
    return self.lazy().select(*exprs, **named_exprs).collect(_eager=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/pymovements/venv/lib/python3.12/site-packages/polars/lazyframe/frame.py", line 1706, in collect
    return wrap_df(ldf.collect())
                   ^^^^^^^^^^^^^
polars.exceptions.ColumnNotFoundError: offset

Error originated just after this operation:
DF ["time", "stimuli_x", "stimuli_y", "text_id"]; PROJECT */8 COLUMNS; SELECTION: "None"

Checklist

[x] I am running the latest version
[x] I checked the documentation and found no answer
[x] I checked to make sure that this issue has not already been filed
[x] I have provided sufficient information for the team

IMO, I'd remove it as a event property because we already automatically calculate it, see: here  and I don't see a case where we want to recompute it.

@SiQube What about datasets that contain event data? Duration might not be included in those, no?

if we just have event data, how can we compute the duration?

another solution would be to have two cases in the event(property)processor, one for duration and one for all other cases (see here)

@SiQube What about datasets that contain event data? Duration might not be included in those, no?

Currently calculating event properties is only supported for datasets containing gaze dataframes. since #716 is merged I am planning to add them to precomputed event dataframes as well but will take me a while


Nested components in detached branch render while being detached even with child suspensible suspense

Vue version
3.3.4
Link to minimal reproduction
https://play.vuejs.org
Steps to reproduce

Click on Show Async
Wait for everything to be displayed

What is expected?

The async child should render only once in the first click

What is actually happening?

The toggle causes the async child to render twice

System Info
No response
Any additional comments?
Previous bug https://github.com/vuejs/core/issues/5513 was closed due to the introduction of the suspensible option. But the bug is still present even when using suspensible on Suspense. This issue is blocking https://github.com/vuejs/router/issues/1324 from closing

Just noting for reference, verified this is still a problem with vue v3.4.6


WMS tilelayers and non-EPSG4326 axis order

I was looking at the problem at https://stackoverflow.com/questions/35337356/leaflet-epsg31466-wms-layer/ , and it seems that, with a custom CRS, Leaflet asks coordinates in northing-easting order whenever the WMS version is >= 1.3 and the CRS is EPSG:4326.
Unfortunately, for the case in question (EPSG:31466) this means that the order of coordinates is the wrong one (easting-northing).
I hereby propose having a flag or option in instances of L.CRS to specify the WMS axis ordering, instead of relying in the current code of:
            bbox = (this._wmsVersion >= 1.3 && this._crs === L.CRS.EPSG4326 ?
                [se.y, nw.x, nw.y, se.x] :
                [nw.x, se.y, se.x, nw.y]).join(','),

Axis order possibly wrong for other projected coordinates but EPSG:31466 is actually northing/easting
PROJCRS["DHDN / 3-degree Gauss-Kruger zone 2",
  BASEGEODCRS["DHDN",
    DATUM["Deutsches Hauptdreiecksnetz",
      ELLIPSOID["Bessel 1841",6377397.155,299.1528128,LENGTHUNIT["metre",1.0]]]],
  CONVERSION["3-degree Gauss-Kruger zone 2",
    METHOD["Transverse Mercator",ID["EPSG",9807]],
    PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.01745329252]],
    PARAMETER["Longitude of natural origin",6,ANGLEUNIT["degree",0.01745329252]],
    PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1.0]],
    PARAMETER["False easting",2500000,LENGTHUNIT["metre",1.0]],
    PARAMETER["False northing",0,LENGTHUNIT["metre",1.0]]],
  CS[cartesian,2],
    AXIS["northing (X)",north,ORDER[1]],
    AXIS["easting (Y)",east,ORDER[2]],
    LENGTHUNIT["metre",1.0],
  ID["EPSG",31466]]

http://www.epsg-registry.org/export.htm?wkt=urn:ogc:def:crs:EPSG::31466
For WMS 1.3.0 the order is always x/y where X is the first listed axis, and Y the second.


Missing AdminUI project

I cloned the project and it's running but noticed that \src\Frontend\Jp.AdminUI is missing. Looking around, I do see that both build.bat and start.bat in the build folder do reference the folder but it's not there. If the code in the JPProject.IdentityServer4.AdminUI repo up to date with the latest files? I did get it running and connected to this builds API but thought I'd mention it.
Before I forget, THANK YOU for all the work on this project! It's very much appreciated!!!

@206mph I'll change build and start files. Thanks to report it.
I've splited the code base. Now AdminUI and SSO are separated projects. You can check AdminUI at:
https://github.com/brunohbrito/JPProject.IdentityServer4.AdminUI


Merge tests into main

Current dependencies on/for this PR:

main

PR #98   👈

This comment was auto-generated by Graphite.


Docs.MS Release Updates for Azure.Data.Tables

Update docs metadata and targeting for release of Azure.Data.Tables

Docs Build status updates of commit 0023492:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

api/overview/azure/data.tables-readme-pre.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Make RazorEditorFactoryService VS agnostic.

Moved the editor factory service into the Editor dll. It did not have any windows specific functionality within it.
Supppper complex PR 😉

#1789
FYI @mkArtakMSFT

Looks great!


A possible bug about Array.prototype.reverse

Version
graalvm-ce-java8-20.1.0
Test case
x=[0];
print(x.length);
Object.freeze(x);
x.reverse();

Execution steps
graalvm-ce-java8-20.1.0/bin/js testcase.js

Output
1
TypeError: Cannot redefine property 0

Expected behavior
1

Description
According to ES standard, the steps of  Array.prototype.reverse are as follows.

When the reverse method is called, the following steps are taken:

Let O be ? ToObject(this value).

Let len be ? LengthOfArrayLike(O).

Let middle be floor(len / 2).

Let lower be 0.

Repeat, while lower ≠ middle,
...

Return O.

	In this test case, the length of  x is 1, so the middle shuold be 0. According to the steps, JS engines should directly execute the sixth step and return O instead of executing the fifth step, so it should passed normally without throwing any exceptions. Maybe this is a bug of graaljs.
Reference:
https://tc39.es/ecma262/#sec-array.prototype.reverse
Contributor：@YiWen-y

Thank you for the report. I agree that this is a subtle bug on our side.

Fixed by https://github.com/graalvm/graaljs/commit/53d78c883c0e74445b928446092e84b4b85cd266


availability sets vs availability zones

When I deploy an availability set with three fault domains with, say, 3 vms, in a region with 3 availability zones, does this mean vms will be spread evenly across zones, or not necessarily? does a single zone consist of multiple fault domains? I assume vms can land in any zone in that setting, is that true?

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

ID: 7342d51a-4565-df38-ec28-03c140464e73
Version Independent ID: 78938f56-dc65-055c-a238-015f1de5b900
Content: Availability sets overview - Azure Virtual Machines
Content Source: articles/virtual-machines/availability-set-overview.md
Service: virtual-machines
GitHub Login: @mimckitt
Microsoft Alias: mimckitt

@webczat
Thanks for your feedback! We will investigate and update as appropriate.

@webczat
Thank you for your feedback!
Since this issue isn't directly related to improving our docs, and to gain a better understanding of your issue, I'd recommend working closer with our support team via an [Azure support request] (https://docs.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request). Or you can leverage our Q&A forum by posting your issue there so our community, and MVPs can further assist you in troubleshooting this issue or finding potential workarounds.
[Teams Q&A forum] (https://docs.microsoft.com/en-us/answers/topics/46488/office-teams-windows-itpro.html) for technical questions about the configuration and administration of Microsoft Teams on Windows.
[Microsoft Teams Community forum] (https://answers.microsoft.com/en-us/msteams/forum?sort=LastReplyDate&dir=Desc&tab=All&status=all&mod=&modAge=&advFil=&postedAfter=&postedBefore=&threadType=All&isFilterExpanded=false&page=1)
Thank you for your time and patience throughout this issue.

I mean, this is not quite true. This issue is not directly related to docs improvement, although it is the docs which should probably explain this better so that people have understanding on the differences, if something is confusing or inaccurate. So it might actually be worth improving relevant docs pages.

Hi @webczat
Thank you for your clarification .
I'm going to assign this to the document author so they can take a look at it accordingly.

@mimckitt
Could you please provide your inputs on above query.

We have some updates planned for the AV sets docs in the coming months. I will note your feedback for those updates.
As of now, rather than use AV sets, I suggest using Virtual Machine Scale Sets in Flexible Orchestration. You get the benefits of AV sets but with better reliability and scalability.
#please-close


The election process may elect a leader who has left the group

The election process is only happened on coordinator and in a separate thread. Assume there a cluster with 3 nodes A, B and C. A is the coordinator, and C has longer log, so C being elected to the leader, before the election result being published out, C leave the group and the  view has been updated in another thread, then the election result is applied to all nodes.
Check my comment in the source code.
	protected void runVotingProcess() {
		long new_term=raft.createNewTerm();
		raft.votedFor(null);
		/*
		before this point, B and C have joined the group and the view is updated
		 */
		votes.reset(view.getMembersRaw());
		num_voting_rounds++;
		long start=System.currentTimeMillis();
		sendVoteRequest(new_term);

		// wait for responses from all members or for vote_timeout ms, whichever happens first:
		votes.waitForAllResponses(vote_timeout);
		long time=System.currentTimeMillis()-start;

		int majority=raft.majority();
		if(votes.numberOfValidResponses() >= majority) {
			Address leader=determineLeader();
			log.info("%s: collected votes from %s in %d ms (majority=%d) -> leader is %s (new_term=%d)",
					local_addr, votes.getValidResults(), time, majority, leader, new_term);
			/*
			In this point, C has left the group and the view is updated
			 */
			sendLeaderElectedMessage(leader, new_term); // send to all - self
			raft.setLeaderAndTerm(leader, new_term);
			stopVotingThread();
		}
		else
			log.trace("%s: collected votes from %s in %d ms (majority=%d); starting another voting round",
					local_addr, votes.getValidResults(), time, majority);
	}

Thanks for reporting, @yfei-z. I added some more coverage to view changes during the election, but this scenario might still be an issue. I'll run a few tests to confirm it and open a PR with a fix if necessary.

There is another situation, if the coordinator itself leave the group before it send the elected message out, then the cluster will have no leader for this term, and the new coordinator won't start the election process for next term.

I think view change during election process will cause a lot of problem. Another one is if 2/3 of nodes is electing, before coordinator set itself to be the leader, view changed to 1/3 only coordinator online, then the cluster is working without majority.

How about letting the election thread handle view change events serially

I created some tests for all the examples you mentioned, and they all resulted in a liveness problem, no safety issues, even the one split in (1/3 and 2/3). I believe we don't need to go all in on handling the changes serially. I'll give some more context and possible solutions.
For the first, we can synchronize the voting thread stop/start. The start/stop uses the intrinsic lock. Maybe we'll need to add a synchronized block before sending the message and stopping to check the thread interrupt state. Another option is if the view result is leader_lost, we can stop and start the voting thread.
The other two scenarios you mentioned happen because the ELECTION does not consider who was the past coordinator. This issue causes the network partition or the coordinator leaving cases to result in a no_change. In the network partition, you don't end with two working partitions. Instead, it would end with two leaderless partitions that don't take commands, even though one has a majority. On the other hand, ELECTION2 also calculates the previous coordinator. However, it has an additional pre-voting phase before the election.
I have the tests in place, so I'll see something simpler to solve it. And, also take the chance and see if I think of some problems.

I'll release a new version this week.

1.0.13.Final is available in central for use.


remove validation from CreateRecordRequest

This PR removes client-side validation for properties which aren't required

LGTM


generator fails

I have just install with yo and then run npm start.
my npm version : 3.8.6
npm start

><EMAIL_ADDRESS>start /home/gborg/Téléchargements/ELK_installer/plugin_test
> plugin-helpers start

 watching for changes  (300 files)
  log   [09:26:03.305] [info][listening] basePath Proxy running at https://localhost:5601/cvj
optmzr    log   [09:26:04.880] [warning] Plugin "cloudunit_kibana" was disabled because it expected Kibana version "0.0.0", and found "6.0.0-alpha1".

Where is the problem about?
Plugin "cloudunit_kibana" was disabled because it expected Kibana version "0.0.0", and found "6.0.0-alpha1".
Thanks for all

Duplicate of https://github.com/elastic/generator-kibana-plugin/issues/36


Fixes win32 compilation

Sorry, proper PR this time.  Matched with PR to cryptopp https://github.com/ortclib/cryptopp/pull/2

@robin-raymond FYI need to pull this one in too


Add gameloop integration test for IOS & Android

Author the user story for this feature
As a developer I want functional gameloop integration tests running for both IOS & Android.
However more work needs to be done for the integration testing on Flank before this can be achieved.
Describe the solution
Integration tests for game loop on IOS and Android is included alongside other integration tests.
Definition of done:

A test(s) is(are) added in integration_tests module integration package
Test class name must end with IT (for instance MultipleApksIT) -- gradle test task filters
Compare file is added to the resources directory
Tests pass :)

@pawelpasterz is this possible after your Improve integration test topic is complete?

I would definitely wait until https://github.com/Flank/flank/pull/1316 is merged. We don't need to wait for the whole epic is done

@Sloox
I've added DoD to the description, let me know if it makes sense to you

@pawelpasterz happy with it 👍


Not an actual issue.  Just a thank you

I just wanted to thank you for writing this tool.
I absolutely love it and use it all the time.
Great work!

Thank you. I'm glad that people find this project useful.


Parse Server Cloud Code Error 141: Invalid Function, Version 1.12.0

I am using Heroku and mLabs with parse server.  My issue is that whenever I try to call a custom cloud code function that simply queries my database I get the following error:
2016-04-27 00:20:33.037 socialStudy[72482:37569786] [Error]: Invalid function. (Code: 141, Version: 1.12.0)
The function being called is as follows:
                   Parse.Cloud.define("test", function(request, response) {
                     var ratingQuery = Parse.Object.extend("StudentNotes");
                     var query = new Parse.Query(ratingQuery);
                     query.equalTo("displayName","Billy");
                     query.find({
                       useMasterKey: true,
                       success: function(results){
                        //console.log("received " + results.length + " result(s)");
                          response.success("done" + results);
                       },
                       error: function(error) {
                        //error
                         response.error("failed to add 1 to parse cloud code rating. " + error);
                       }
                     });

                   });

The response is the error message noted above.
The code being used to call Parse cloud code in my ios app in swift is:
        PFCloud.callFunctionInBackground("test", withParameters: ["":""]) {
            (response: AnyObject?, error: NSError?) -> Void in
            let hello = response// as? String
            print(hello)

        }

Why do I keep getting error 141?  I have tried TONS of cloud code functions that query my database and I cannot get any of them to work.
NOTE: I have successfully called the "hello" function and that works fine.
I am beginning to think that there is some problem accessing my database in specific.  At first I thought there was something wrong with the actual syntax of my function, if anyone can confirm that it is indeed correct that may be helpful, I am convinced that the syntax is correct, but having never gotten a function querying the database in cloud code to work I cannot be sure myself.

Did you restart the parse-server after changing the name of the function? Since the errors does indicate that the function does not exist..

Hmm.  No I did not, I am new to Heroku and Parse Server.  At the moment I make the changes in the main.js file (where cloud code functions go). I then commit and push said changes.  Could you detail how I go about "restarting" Parse-server from Heroku?

Restarting Heroku parse-server did not work, still getting error 141, any other ideas?

You may use Server Fault for questions about managing Parse Server.
For code-level and/or implementation-related questions or technical support, please refer to Stack Overflow.

I am unsure as to why this was closed, as this is not a question about managing Parse Server OR code implementation.  I have provided code implementation and the appropriate Parse Server management details highlighted above.  Someone suggested a fix of restarting Parse server, which DID NOT work.  This was not a question of "How do I implement X", I know how to implement cloud code, the problem is that it is not working and I have done all of the steps for implementation correctly making me believe that there is a problem with parse-server cloud code.

I closed this as we get a lot of coding and implementation questions that do not clearly point to an issue with Parse Server, which is what this issue tracker is for.
Error 141 typically refers to an issue with your JavaScript code. It is not clear, from what you have posted so far, that the issue lies in Parse Server as opposed to a coding error in your Cloud Code.
Please refer to this issue for an example of a great bug report. Happy to reopen this issue once we get more details.


API

[ ] oauth for authentication
[ ] Ability to specify files to be uploaded, return token to check status of import, files go into holding state
[ ] Ability to create episode from uploaded files
[ ] Ability to modify episodes
[ ] Ability to access analytics for podcasts and episodes (up to permissions for user's plan)

Closing this for now. Many of the features that would actually make an API attractive (payments, network features, identity, etc.) don't exist yet.


efloehr initial refactor to generate images to disk

This refactor starts with Jim Prior's refactor. Thank you Jim!
Much of Jim's comments shows iterations over some "m" search space, like 1/width, 2/width, 3/width, etc.
The goal of this refactor was to generate a bunch of images to disk, rather than display interactively.
This allows searching the "m" space quickly and allows for making movies.

I have not run the code yet, but love the idea of making movies
of interating over small (or large) changes in parameters.
Like you are doing now, I have continued playing with code after
a meeting for a challenge.
I think it's good to put such code in an "after-meeting" branch,
and have pushed your code as such a branch

By the way, the way I pushed your stuff to https://github.com/cohpy/challenge-201608-refactor/,
was all local on my machine.
The sequence was something like
git remote add efloehr https://github.com/efloehr/challenge-201608-refactor.git
git fetch efloehr
git checkout efloehr/efloehr
git checkout -b after-meeting
git push cohpy after-meeting
By doing all that from a local machine and avoiding clicking on the merge button
on github's web pages, unnecessary merge commits are avoided.
We should play with git and github together.
I have learned more about using git and github the last few months,
especially about using rebase and remote commands.

Folks love pretty pictures.
You should show your movies at the next meeting.

Thanks, and your command line merging the pull request is great, it will be nice to sit down with you and share what you've learned.
I disagree about the post-meeting branch. I think master should reflect the most current code, unless post-meeting becomes the default branch instead of master. By default, master is the branch that gets shown when you go to the repo on github, and the selected branch when you clone or fork. As such, I think master should reflect the most current codebase.
My preferred solution, since most people associate master with the most current codebase, is to create a "pre-meeting" tag at the commit that was most current at the time of the meeting.

On Tue, 27 Sep 2016 09:52:23 -0700, Eric Floehr<EMAIL_ADDRESS>wrote:

Thanks, and your command line merging the pull request is great,
it will be nice to sit down with you and share what you've learned.
I disagree about the post-meeting branch.
I think master should reflect the most current code,
unless post-meeting becomes the default branch instead of master.
By default, master is the branch that gets shown when you go
to the repo on github,
and the selected branch when you clone or fork.
As such, I think master should reflect the most current codebase.
My preferred solution, since most people associate master
with the most current codebase, is to create a "pre-meeting"
tag at the commit that was most current at the time of the meeting.

You can accomplish the above with something like the
following commands.
git remote add cohpy git@github.com:cohpy/challenge-201608-refactor.git
git fetch cohpy
git checkout 2f758f5
git tag 20160926-meeting
git push cohpy 20160926-meeting
git checkout master
git merge efloehr
git push cohpy master
That will give you a little experience working with github
more from the command line. If you resurrect the pull request,
before before you do the git push cohpy master, you will see
it as open. After you do the git push cohpy master,
github will consider that to sate the pull request,
and without the ugly superfluous merge commit.
By the way, github does not seem to care much about tags.
They like to call them "releases" and when you navigate
to them, they want one to download the code as a tarball
or zip file, but do not show the code like for branches.
If you click on the hash for the tag, you will get to browse
the code.

Do you want to save the above stuff for when we are side-by-side?

We can save for when we are side-by-side.
Too bad about tags. I still believe that the latest code should be what shows up by default on github or clone. It only makes sense that people coming to this see the latest code as most likely that's what they want. That makes the repo a living repo instead of a dead one, and how anyone working with code naturally works.
If we want to capture a snapshot of how the repo existed at some point in time, we can create a branch, called "pre-meeting" or something.
Thoughts?


Dataset preprocessing

Hello, I would like to know, why you have chosen to select only a subset of pedestrians in a scene, for which there are all self.seq_len points:
https://github.com/agrimgupta92/sgan/blob/691231e1adb6a344c7bcea9ebf2534518b226ead/sgan/data/trajectories.py#L131-L132
This effectively disables padding and loss masking - pad_front is always 0 and pad_end is self.seq_len. Therefore, subsequences created in this manner may not (usually will not) contain all pedestrians. Is that desirable and superior to masking?

@LogicStuff I would like to know if you understand why to do so? If you know, could you explain it? Thank you.


fix: unsaved changes is always visible

fixes #326
/claim #326
https://github.com/user-attachments/assets/0f5342d0-204e-4360-a825-846b98982f5d

Break out the complex boolean logic into multiple boolean vars to make it more clear, dont reset react query

Got it, thanks! I'll refactor the complex boolean logic into separate variables for clarity.

@seveibar I’ve fixed the Playwright test check error. Please review it and let me know if anything else is needed.

This seems even worse
https://github.com/user-attachments/assets/9d414f26-d6cd-4bc8-9b95-ced97f6b4329
Please write a playwright test that goes through an entire typical edit flow and verifies in each state that "has unsaved changes"
I've increased the bounty on this issue to reflect the increase requirements

This seems even worse
Kapture.2024-12-02.at.18.03.39.mp4
Please write a playwright test that goes through an entire typical edit flow and verifies in each state that "has unsaved changes"
I've increased the bounty on this issue to reflect the increased requirements

Does this look right?
https://github.com/user-attachments/assets/32600043-8cad-448a-8a64-b2315ac0a738
Can I get some time for the creating Playwright test ?

This seems even worse
Kapture.2024-12-02.at.18.03.39.mp4
Please write a playwright test that goes through an entire typical edit flow and verifies in each state that "has unsaved changes"
I've increased the bounty on this issue to reflect the increased requirements

Does this look right?
https://github.com/user-attachments/assets/32600043-8cad-448a-8a64-b2315ac0a738
Can I get some time for creating Playwright test ?

This seems even worse
Kapture.2024-12-02.at.18.03.39.mp4
Please write a playwright test that goes through an entire typical edit flow and verifies in each state that "has unsaved changes"
I've increased the bounty on this issue to reflect the increased requirements

Does this look right?
https://github.com/user-attachments/assets/0cec9d0d-4293-427c-9ae8-eeef5e869fbb
Can I get some time for creating Playwright test ?

Hi @seveibar, apologies for the delay. I wasn't familiar with how to use Playwright, so I took some time to learn about it and created the test file. Please take a look and let me know if there's anything else you need.

Hi @seveibar, apologies for the delay. I wasn't familiar with how to use Playwright, so I took some time to learn about it and created the test file. Please take a look and let me know if there's anything else you need.
https://github.com/user-attachments/assets/404aa8f1-e9be-438c-957c-acf4e7e28efd

@seveibar I think there is a problem in production. Also, I'm unable to log in on the Vercel preview url. When I clone the repository with the latest changes, the bug does not appear, and everything works properly. Should I create a new PR for the Playwright test?

@krushnarout yea you cant login with preview urls currently, which makes this really hard to test in preview... id like to fix it but not quite sure how yet

@krushnarout https://github.com/tscircuit/snippets/issues/359
Created that issue to fix login. Until then me or other contributors can pull the pr to do testing, and yes the playwright tests are a good idea (if u didnt already throw them in)


fix e2e tests after spectron update

update to https://github.com/MichMich/MagicMirror/pull/2443

(hopefully) fixed reviews of @fewieden
fixed several weather tests
@rejas your weather test "Compliments Integration" is a bitch 😜 I managed to get it running but only with an ugly loop, so feel free to update this later ...

Codecov Report

Merging #2448 (7ba7602) into develop (6fadc76) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #2448   +/-   ##
========================================
  Coverage    39.40%   39.40%
========================================
  Files           20       20
  Lines         1609     1609
========================================
  Hits           634      634
  Misses         975      975

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 6fadc76...7ba7602. Read the comment docs.


Unexpected error fetching IPMI resource status data: 'debug'

This error originated from a custom integration.
Logger: custom_components.ipmi
Source: custom_components/ipmi/init.py:352
Integration: IPMI connector (documentation, issues)
First occurred: 16:42:37 (30 occurrences)
Last logged: 16:56:14
Unexpected error fetching IPMI resource status data: 'debug'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 242, in _async_update_data
return await self.update_method()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/ipmi/init.py", line 91, in async_update_data
await hass.async_add_executor_job(data.update)
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/ipmi/init.py", line 352, in update
if (json["debug"] is not None):
~~~~^^^^^^^^^
KeyError: 'debug'

removing the two lines fixes it

I'm sorry about this. I'm not a Python expert and didn't know how to test if a json key is defined or not. Apparently that's not the way to do it. I have removed those lines because it does not make sense to log the debug info that the addon sends. The addon does that already in its log file.


ok to execute "ll_cpp_compression_example software_path", but core dumped at "/ll_cpp_compression_example hardware_path"

Dear,
could you please give me some advice about how to execute "./ll_cpp_compression_example hardware_path" successfully?
================
./ll_cpp_compression_example software_path
The example will be run on the software path.
Content was successfully compressed and decompressed.
Compressed size: 20
./ll_cpp_compression_example hardware_path
The example will be run on the hardware path.
qpl-diag: Intel QPL version 1.2.0
qpl-diag: loading driver: libaccel-config.so.1
terminate called after throwing an instance of 'std::runtime_error'
what():  An error acquired during compression job initializing.
Aborted (core dumped)
===============
bios setting: follow IAA user guide
grub setting:
cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-6.2.0-31-generic root=UUID=e84f2c14-d73c-4911-adb4-848f4664bc70 ro console=ttyS0,115200n8 console=tty0 biosdevname=0 net.ifnames=0 modprobe.blacklist=ipmi_ssif,qat_c62x,qat_dh895xcc,qat_c3xxx,qat_c4xxx,qat_4xxx,intel_qat,ucsi_acpi,nouveau selinux=0 consoleblank=0 intel_idle.max_cstate=0 intel_pstate=disable printk.devkmsg=on iomem=relaxed intel_iommu=on,sm_on
OS: Ubuntu23.04_1.07.006 [kernel 6.2.0-31-generic]
idxd driver:
modinfo idxd
filename:       /lib/modules/6.2.0-31-generic/kernel/drivers/dma/idxd/idxd.ko
import_ns:      IDXD
author:         Intel Corporation
license:        GPL v2
version:        1.00
QPL version: 1.2.0
ok to find iax device.
find / -name iax*
/sys/devices/iax1
/sys/devices/pci0000:f2/0000:f2:02.0/iax1
/sys/devices/pci0000:f2/0000:f2:02.0/iax1/wq1.0/iax!wq1.0
/sys/bus/event_source/devices/iax1
/dev/iax

Hello @happyvera1115, could you please print out the status value at https://github.com/intel/qpl/blob/develop/examples/low-level-api/compression_example.cpp#L60 (as it seems to be the place where exception is happening based on your description)?
Also, could you please double check that you have libaccel-config.so.1 available either in standard location or in LD_LIBRARY_PATH?

Thanks mzhukova..
This issue is solved by Oakley yesterday.
after having cmd "ldconfig /usr/lib64" in my system, this phenomenon is gone and no core dump error occurred.

glad it got resolved @happyvera1115, please let us know if you would need further help :)


google translate

Issue Reference
This PR addresses the Issue : Fixes #405
Summarize
Appended below code for translation.. Not tested..

Also, mention the key points if any to look into while code reviews

template/base.html

Works fine for me :+1:

Tested, works fine functionality wise.
But some suggestions
I know that Google translate is on top. Do you think a layman will be able to click this?
Should we add a few languages for "Select language" - common migrant labourer languages like bengali, tamil, odissa etc?

@drtechie I was jst checking.. M not sure about wat you are saying..  something is better than nothing

Just moved the button after the top banner. inside container

This is good. I am just concerned if non-malayali migrants will be able to find the dropdown and read "Select language"

If possible add language selection without dropdown, like google or fb language option

tested in chrome ff and mobile.


[HOLD E/E #290783] [$1000] Duplicate room name error doesn't appear if you aren't a member of the original room

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

Action Performed:

Go to staging.new.expensify.com
Create a workspace
Now create a New room and choose the workspace you created
Click the room header and leave the room
Now create a New room again using the same name of the room you just left and the same workspace you selected for the first room

Expected Result:
The room name field should have an in-line error message upon losing focus of that field
Actual Result:
You're allowed to proceed to create the room and run into an error after the creation attempt. We suspect this has something to do with the check for a duplicate room existing being limited to rooms you are a member of, not the workspace you are trying to create the room on.
Workaround:
Unknown
Platforms:

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

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

Version Number: 1.3.32-5
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/aa39727a-e159-4185-aba7-9eea714d546a
https://github.com/Expensify/App/assets/93399543/abdcad2e-e3fc-48aa-988d-d13fa9556c8b
Expensify/Expensify Issue URL:
Issue reported by: @priya-zha
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1687680050819699
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01cbde78f15d909ff4
Upwork Job ID:<PHONE_NUMBER>302105600
Last Price Increase: 2023-07-10

Issue OwnerCurrent Issue Owner: @jasperhuangg

Okay, so I actually don't think the user should be getting this far in the flow if the room name is a dupe. When you're still a member of a room, we show an in-line error:

But here, when you leave the room we don't do that. We let you continue on and error out on creation. So I think we should be showing a error message in-line the room name field if the room has a dupe name on the workspace you've selected. That would avoid this scenario.

Okay, updated the OP following the discussion in thread.
CC: @MitchExpensify

Awaiting proposals. @dukenv0307 not sure if you want to modify yours given the expected behaviour.

@trjExpensify Let's bump this on slack to get more eyes on this?

Bump where? We can chat more in the thread if you want though to discuss the best approach or clarify the intention. Thanks!

Okay, let's do that to get internal engineering eyes on it.

@thienlnam, did you look at this yet?

I have not, thanks for the ping
Just to get some clarification here @allroundexperts, the API call will succeed in this case?
It seems like it should just not let you create the room, since the room still exists and we haven't removed it even if you leave it

Bump on the question @allroundexperts! Let's get this over the line before it hits WAQ.

That's not what we want here. The API call should succeed but the response it returns should be changed.

I'm not quite following this.
Watching the original video in the post I think this is expected behavior. The user created a public room, left it (the room still exists BTW), and so when you try to create another room with the same name it fails. That seems expected - you can't have all knowledge of room names because you also just can't see private rooms so this will fail in the BE. What's the problem here?

But here, when you leave the room AND then try and create a new room with the same name, we don't do that. We let you continue on and error out on creation. So I think we should be showing a error message in-line the room name field if the room has a dupe name on the workspace you've selected.

If this is the expected response, we should be able to fix this in the front-end by checking all rooms in the workspace? But I'm saying this is still going to be a problem with private rooms so I still feel like we can do nothing here

Here's the thread @thienlnam!

Added a comment to that thread - https://expensify.slack.com/archives/C049HHMV9SM/p1689807082171029?thread_ts=1687680050.819699&cid=C049HHMV9SM, we might want to revisit this

Okay, so we're going to hold this on the user created rooms doc to introduce the ability to find rooms you aren't a member of on your workspace, as we'll likely need to use that here.
CC: @MitchExpensify - can you add this issue wherever works best for you in the tracker so it's accounted for?

CC: @MitchExpensify - can you add this issue wherever works best for you in the tracker so it's accounted for?
Done! Added to the main project tracking issue

Excellent. Thanks!

No change.

Same! Waiting on the linked project. :)

Still awaiting the doc to get through review :)

Detailed design doc is in review.

It seems like we’d have to fundamentally remove the front-end error checking since it doesn't seem like this check is something we can perform optimistically with the data we have in the front-end.
The check in Auth here has access to all the rooms on the policy. However the check in the front-end would only have access to rooms that are in the user's Onyx store, i.e. rooms they're a member of.

@thienlnam mind providing a summary of where we stand with proposals here?

Hm, Jasper.. how do we show policy rooms they aren't a member of in search?

I'll re-assign to @jasperhuangg since he's working on the linked held issue

@jasperhuangg @MitchExpensify not sure why Melv moved this to daily, but weekly held on the linked issue makes sense to me still.
Equally, would be good to firm up on how and where it's being addressed.

@esh-g Ah got it, I didn't realize we had a new form system for error messages.  We can work on the front-end proposal assuming that the error will exist in the form as expected. Thanks for clarifying.

@esh-g I think for now we should use the errors that are already being passed back by the back-end in ONYXKEYS::COLLECTION_REPORT<reportID> => errorFields => addWorkspaceRoom. I'm not seeing anywhere in the back-end where we're storing errors into these form keys yet.

@jasperhuangg We are doing it for the AddDebitCard page here:

But still if we want to show the generic error message on failure, let me know because I can draft a proposal for that because the error that is being set in the report itself isn't accessible while setting the failure data for the API write and I don't think we want to use a .then promise method to run after the request and check the report for errors...

@jasperhuangg how can this be worked on ahead of figuring on allowing people to discover rooms on their workspace that they aren't necessarily a member of yet?

Same question as above, Melv.

Friendly bump on this Q from @trjExpensify , @jasperhuangg

Same, @jasperhuangg can you shed any light on that question?

Got it! If that's the case then I'm convinced that we need back-end changes to set the form error.

Thanks, @jasperhuangg. Can you link that PR here?

Friendly bump for your catch up @jasperhuangg

Yup, I think @jasperhuangg you mentioned an issue here a couple of weeks ago but I can't see it?

Bump again.

Hey! Just catching up here. I wasn't able to create a PR for this yet, apologies for the delay. I created an issue for it here

Okay cool, it's unassigned, will you be taking that BE issue on? Also, should we update the hold of this issue to point to that issue for more accuracy of the chain of dependencies?

Hey guys, so I am adding the error in the back-end, the same way as addDebitCardForm but it seems it's not being handled properly in the front-end. Is it part of the issue to start handling in the form or am I missing some context in this issue?

Yes, we would need to update the newRoomForm to not be enabled offline and then prevent the room from being created optimistically

@esh-g Ok, so the update to Onyx I mentioned here is good, right? And then you guys can work with that in the front-end. Any other change I need to make in the back-end?

to not be enabled offline

what does that mean exactly?

@trjExpensify We would have to wait for a response from the API to check for the error, my exact meaning was not dismissing the modal immediately and wait to see if the API request succeeds, which it does not do currently. I'll draft a whole proposal based on @pecanoro's change to the backend (which I think is all that is needed)

@trjExpensify @jasperhuangg  Could you please confirm that this is the behaviour we want?
https://github.com/Expensify/App/assets/77237602/5f5d3828-f308-4754-a32a-d653c17ee404

I think we want it to work exactly as it does in the case where you are still a member of the room and try and use a dupe name:
https://github.com/Expensify/App/assets/16232057/8ecfd47e-5f78-4b76-a5e2-bbe4c55bf4e4

@trjExpensify Does the attached video look alright?
https://github.com/Expensify/App/assets/77237602/885b666e-2358-4a83-aaf9-e77d55437ea6
If this is the behaviour we want, we need to edit the backend failure response to be something like this (@pecanoro) :
{
      onyxMethod: Onyx.METHOD.MERGE,
      key: ONYXKEYS.FORMS.NEW_ROOM_FORM,
      value: {
          errorFields: {
              roomName: ErrorUtils.getMicroSecondOnyxError("Room already exists or some other error")
          }
      },
  },

Sure! @jasperhuangg Can you confirm so I can make the changes on my PR?

I think it would be best to wait and see the result of this discussion in slack before making any changes though...

Proposal
What change should be made on front-end?

We should add the isLoading state for the form by in the optimistic data of Report.addPolicyReport here:
https://github.com/Expensify/App/blob/24f306c9575212c4c4557a2ce5f102ce97c99a41/src/libs/actions/Report.js#L1572

{
    onyxMethod: Onyx.METHOD.MERGE,
    key: ONYXKEYS.FORMS.NEW_ROOM_FORM,
    value: {isLoading: true},
},

Set isLoading to false in successData and failureData.

Remove the dismiss modal call here:
https://github.com/Expensify/App/blob/24f306c9575212c4c4557a2ce5f102ce97c99a41/src/libs/actions/Report.js#L1634

We need to create a function clearNewRoomFormErrorAndSubmit to clear the error when opening the form:

function clearNewRoomFormErrorAndSubmit() {
    Onyx.set(ONYXKEYS.FORMS.NEW_ROOM_FORM, {
        isLoading: false,
        errorFields: {},
    });
}

In the WorkspaceNewRoomPage, we can add a use effect to call the above function:

useEffect(() => {
    clearNewRoomFormErrorAndSubmit();
}, []);

In the WorkspaceNewRoomPage we need to add the formData key in the withOnyx HOC:

formData: {
    key: ONYXKEYS.FORMS.NEW_ROOM_FORM
}

We need to add a useEffect to dismiss the modal if there are no errors:

useEffect(() => {
    if (wasLoading && !props.formData.isLoading && _.isEmpty(props.formData.errorFields)) {
        Navigation.dismissModal();
    }
}, [props.formData]);

const wasLoading = usePrevious(props.formData.isLoading);

Additional Change
With the above changes, on successful room creation, we are not able to be redirected to the created room because the navigation step has been moved from Report.js to the WorkspaceNewRoomPage so, to rectify that, instead of building the optimistic policy room report in the addPolicyReport function,  we can create the optimistic report in the submit function here itself:
https://github.com/Expensify/App/blob/49f730f534703e119bd01605960b6a113e99b07c/src/pages/workspace/WorkspaceNewRoomPage.js#L96-L99
And then pass the optimistic report to the addPolicyReport function. This way, we can store reportID of the newly created policy room via component state and redirect to it instead of just dismissing modal (in step 7)

Sure! @jasperhuangg Can you confirm so I can make the changes on my PR?

I think the error you included in your PR is enough, I think Room already exists or some other error is a bit strange. In the future if we think we need to change the error message again, I can create a followup.

@jasperhuangg That is not the error message from backend... I just put it as a placeholder for the actual error message to give you an idea of how it would look. Moreover, the question is whether we set form.errors or form.errorFields.roomName

Looks like we're making progress here. One outstanding question for @jasperhuangg directly above!

@pecanoro recently put up a PR that should set those errors in the back-end, thanks!
It seems like that PR was recently deployed to staging @esh-g

@jasperhuangg I have tested my proposal with the backend change that was done and it works just as expected.
https://github.com/Expensify/App/assets/77237602/e08e9480-5ac8-4a55-b8a3-78c552798990
Feel free to assign me and I can raise a PR!

@esh-g awesome, let's move forward with your proposal! thanks :)

PR is here: https://github.com/Expensify/App/pull/31655
cc @jasperhuangg @allroundexperts

@trjExpensify @jasperhuangg Could we get the payment for this processed before the holidays? Thanks!
Seems like since this is still marked as hold so the payment automation date didn't happen...

Confirming payments:

$1000 to @esh-g for the fix
$1000 to @allroundexperts for the C+ review
$50 to @priya-zha  for the bug report (predates the programme changes).

Settled up with @esh-g and @priya-zha. @allroundexperts you can request. Closing!

$1,000 payment to @allroundexperts based on comment above.


⚠ Bofrost.at has degraded performance

In c6c9f24, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1796 ms

Resolved: Bofrost.at performance has improved in 5b89a2a after 21 minutes.


BUG XMI - HasExtensions has two relationships to Referable

HasExtensions has two relationships to Referable, one is in the wrong package. Needs to be removed.
The diagram is correct.

Done


Make slider bar thumb a block as opposed to a line

Is your feature request related to a problem? Please describe.
I am trying to implement your card but have a button of some sort that is the slider thumb as opposed to a line..  I think especially on mobile devices it would be handy to be able to grab a square/box and drag it as opposed to a line.  I think it would give better feedback too as to what position you land on as again opposed to 2 pixel wide line as currently exists.
Describe the solution you'd like
I would love to have an option to set the width of that line.  I can see in the page source that it seems to be the element 'div.slider-thumb::before'.  I have changed the width from 2 pixels to say 15 pixels using CSS which is a good look, but the 'button' only shows up when im actually dragging on it, but as soon as i let go, it disappears.. not sure yet why that is.
Any help would be greatly appreciated.. i will keep plugging away to see if there is a CSS way to do this.
Describe alternatives you've considered
Additional context

Actually as an update, i have this working now.  Using the card-mod capability.  Here's what i have working so far:
        - type: custom:slider-button-card
          entity: media_player.office
          slider:
            direction: left-right
            background: gradient
          icon:
            tap_action:
              action: more-info
          action_button:
              mode: toggle
          style: |
            ha-card {
              border-radius: 10px;
            }
            ha-card .slider-thumb::before {
              opacity: 0.5;
              width: 70px;
              border-radius: 10px;
            }

you can adjust the width as you desire.  Still going to see how to tweak it further but this is what i was after.. Hope this helps others.

did a bit of an update on the styling.. i removed the background image that was there before the new rectangular slider thumb.  Now the background behind the entire slider is the same, and that can be changed colour etc.
        - type: custom:slider-button-card
          entity: media_player.toms_office
          slider:
            direction: left-right
            background: gradient
          icon:
            tap_action:
              action: more-info
          action_button:
              mode: toggle
          style: |
            ha-card {
              border-radius: 10px;
            }
            ha-card .slider-thumb::before {
              opacity: 1;
              left: -1px;
              width: 70px;
              border-radius: 10px;
            }
            ha-card .changing .slider-thumb::before {
              opacity: 1;
              width: 70px;
              border-radius: 10px;
            }
            ha-card .slider-bg {
              background-image: none;
            }

Still will do some tweaking but this is what it looks like so far:

Ok one final update.. i finally got it to where i wanted it.. again, more CSS.  For some reason the state wasnt vertically centered so i fixed that.  I also increased the size of the state and i removed the transition that was happening where the state text changed size when you moved the slider. I just wanted it all neat and simple.  Im using this for media-player components and i have other button-card entities for the other functions.
Big Kudos to @mattieha for creating this.. super useful.
Here's the current css:
        - type: custom:slider-button-card
          entity: media_player.toms_office
          show_name: false
          compact: true
          slider:
            direction: left-right
          icon:
            show: false
          action_button:
            show: false
          style: |
            ha-card {
              border-radius: 10px;
            }
            ha-card .slider-thumb::before {
              opacity: .8;
              left: -1px;
              width: 70px;
              border-radius: 10px;
            }
            ha-card .changing .slider-thumb::before {
              opacity: .8;
              width: 70px;
              border-radius: 10px;
            }
            ha-card .slider-bg {
              background-image: none;
            }
            ha-card .text {
              top: 0.3rem;
              height: 100%;
              font-size: 1.7rem;
            }
            ha-card .changing .state {
              font-size: inherit;
            }

And here's what it looks like:

One more cleaner update, was able to scale things so that the 'button' slider does not go off the right end when sliding to 100%.  Little tighter on the graphics.  Also added fully qualified css selectors so as not to upset any other cards.
        - type: custom:slider-button-card
          entity: media_player.toms_office
          show_name: false
          compact: true
          slider:
            direction: left-right
          icon:
            show: false
          action_button:
            show: false
          style: |
            ha-card.type-custom-slider-button-card {
              border-radius: 8px;
            }
            ha-card.type-custom-slider-button-card .slider-thumb::before {
              opacity: .8;
              left: -1px;
              width: 50px;
              border-radius: 8px;
              box-shadow: none;
            }
            ha-card.type-custom-slider-button-card .slider-thumb{
              transform:translateX(calc((var(--slider-value))* 0.95));
            }
            ha-card.type-custom-slider-button-card .changing .slider-thumb::before {
              opacity: .8;
              width: 50px;
              border-radius: 8px;
            }
            ha-card.type-custom-slider-button-card .slider-bg {
              background-image: none;
            }
            .compact .text {
              font-size: 1.25rem;
              top: -0.45rem !important;
              height: 140% !important;
              display: block !important;
              left: 0 !important;
            }
            ha-card.type-custom-slider-button-card .state {
              position: absolute;
              top: 0.4rem;
              line-height: normal !important;
            }
            ha-card.type-custom-slider-button-card .changing .state {
              font-size: inherit;
            }


No static method onDownload(Lio/ktor/client/request/HttpRequestBuilder;Lkotlin/jvm/functions/Function3;)V

using ktor version 3.0.0-beta-2,
using kamel version 0.9.5
@Composable
fun ImageLoader(url: String, desc: String, modifier: Modifier, contentScale: ContentScale) {
val imageResources = LocalImageResource.current
when (val resource = asyncPainterResource(url)) {
    is Resource.Loading -> {
        LoadingScreen()
    }
    is Resource.Success -> {
        val painter: Painter = resource.value
        Image(painter,
            contentDescription = desc,
            modifier = modifier,
            contentScale = contentScale)
    }
    is Resource.Failure -> {
        val fallbackPainter = imageResources.Company()
        Image(fallbackPainter,
            contentDescription = desc,
            modifier = modifier,
            contentScale = ContentScale.FillHeight)
    }
}

}
I always go to Resource.Failure, and got this message error
No static method onDownload(Lio/ktor/client/request/HttpRequestBuilder;Lkotlin/jvm/functions/Function3;)V

You probably have to use the latest beta version if you want to use the beta version of ktor


feat: add my username

Hi, pull request after adding my github. Thank you.

Hey there,
Thanks for your PR & contribution :wave:!
Don't forget to join follow me, join our organization, & follow our organization to stay updated with the latest developments 💻
Thank you, and have a good day ahead 😊

Before you go, I have a little surprise for you :)
@holopin-bot @# do your thing 🤖


Unable to glob files in session.run()

Describe the bug
When running some commands against many files whose existence may not be predictable, the most common method of addressing these files is with wildcards on the command line. Enumerating them with python inside the noxfile is certainly possible, but globbing is more readable and concise.
How to reproduce
@nox.session(reuse_venv=True)
def glob(session):
  session.run('ls', '*')

$ nox -s glob
...
nox > ls *
nox > Warning: ls is not installed into the virtualenv, is it located at /bin/ls. This might cause issues! Pass external=True into run() to silence this message.
/bin/ls: cannot access '*': No such file or directory
...

$ ls *
...happy list of files that do exist...

Expected behavior

$ nox -s glob
...
nox > ls *
nox > Warning: ls is not installed into the virtualenv, is it located at /bin/ls. This might cause issues! Pass external=True into run() to silence this message.
...happy list of files that do exist...

Try
@nox.session(reuse_venv=True)
def glob(session):
  session.run('ls', '*', external=True)

that only squelches the warning. problem persists even if you use a python tool installed in a venv.
eg, this is what i'm trying to do for a cookiecutter template i'm building:
@nox.session(reuse_venv=True)
def ansible_lint(session):
  """Checks the deployment playbook with ansible-lint"""
  session.install('ansible-lint')
  session.run('ansible-lint', 'ansible-play-deploy/*')

Ah, hrm.
Just as a workaround, you could glob out the file list within Python:
from pathlib import Path
...
@nox.session(reuse_venv=True)
def ansible_lint(session):
  """Checks the deployment playbook with ansible-lint"""
  session.install('ansible-lint')
  files = [str(x) for x in Path('ansible-play-deploy').glob('*')]
  session.run('ansible-lint', *files)

This approach is a bit antithetical to Nox's approach. Nox isn't bash/make with a little bit of Python, it's Python with a little bit of bash/make.
In these cases I'd do something like this using glob (or Pathlib):
import glob

@nox.session
def list(session):
    print(glob.glob("*"))

You can use the result of the glob in run commands if you need to:
files = glob.glob("**/*.py")
session.run("linter", *files)

If you actually want to use a shell, invoke the shell. But keep in mind that this will make your Noxfile non-portable (and there's usually a portable and Pythonic way to do it):
session.run("bash", "-c", "rm -rf build/*")


add Go version

Coverage remained the same at 96.12% when pulling 9fb7ebe0e5d243f11b1b2c2de0a816ec0e5ad575 on mozillazg:patch-1 into ac186e7751124419521080de87950cd277724e5e on vinta:master.

帥氣！


Convert triggers NodeList to Array - fixes #38

This PR tackles issue #38
forEach on a NodeList has a very limited browser support: https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach

@nlemoine Thanks, this is a clever solution.


[FEATURE REQ] Symbols for Microsoft.Azure.ServiceBus.dll

Microsoft.Azure.ServiceBus
Provide PDB symbols for Microsoft.Azure.ServiceBus.dll (version 4.1.1)
Is your feature request related to a problem? Please describe.
I'am trying to investigate an issue related to Azure ServiceBus queues. However the symbol files cannot be loaded. I have the following symbol locations configured:

Microsoft Symbol Servers
NuGet.org Symbol Server

//cc: @weshaggard, @danieljurek

We generally publish symbols for all of the packages we release to the Microsoft Symbol Server.
@chidozieononiwu, would you please look into where the symbols went for this package.

There was a brief period of time when our release pipeline failed to publish symbols. Unfortunately the build responsible for the release of version 4.1.1 has been cleaned up so symbols for this release cannot be published. I will work with the Service bus team to release a hotfix with symbols published.

Cough, cough, SourceLink. https://github.com/Azure/azure-sdk-for-net/issues/6239

BTW, this client used to have SourceLink enabled :(

If PDB would be shipped with the package (
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>) and SourceLink enabled, that would allow developers easily step into the code.

We are not including symbols in the package because of size. Hence the need to publish to symbols server.

My understanding is that we are not including symbols in the package because of size. Hence the need to publish to symbols server.

Portable PDBs are quite small. I don't see why you need to bother with a symbol server at all.

My understanding is that we are not including symbols in the package because of size. Hence the need to publish to symbols server.

Portable PDBs are quite small. I don't see why you need to bother with a symbol server at all.

Ok @weshaggard could you clarify why the symbols server needed?

Please make use of Microsoft.Azure.ServiceBus.4.1.2 which has symbols published.

There is a long discussion about using embedded pdb's and some of the drawbacks at https://github.com/dotnet/sdk/issues/2679. We are essentially using the same pdb policy that the .NET team is using which for the most part has served us well (minus a few publishing issues which were just oversights).
As for source link we have enabled it for all the data-plane libraries by default so that should be working as long as the pdb is present. If someone finds that not to be the case then we have a bug to fix.

We are essentially using the same pdb policy that the .NET team is using which for the most part has served us well (minus a few publishing issues which were just oversights).

I don't know what those policies are but can share my side of the story where I would agree with the arguments brought in https://github.com/dotnet/sdk/issues/2679 by supporters of embedding PDBs in the package - it simplifies troubleshooting and additional 20-30% of size increase justify it. Just as today no one claims that all data should be normalized just because storage was expensive, I hope to see this decision reviewed. Thank you, @weshaggard.

@chidozieononiwu I can confirm version 4.1.2 has symbols published. This issue can be closed.


✨ [WIP] Add bind workload cmd

Signed-off-by: Jian Qiu<EMAIL_ADDRESS>
Summary
Add a bind workload command to create placement to use locations in the compute workspace

kubectl kcp bind workload root:compute creates a placement, an apibinding to global kubernetes APIExport and an apibinding to kubernetes APIExport in compute workspace if at least one synctarget supports these APIExports.
kubectl kcp bind workload root:compute --apiexports root:ws1:foo.bar creates a placement, an apibinding to foo.bar APIExport if at least one synctarget supports the APIExports.
--location-selectos and --namespace-selector is to set placement, selectAll is set if not specified.

Related issue(s)
Fixes https://github.com/kcp-dev/kcp/issues/2102

@qiujian16 Do you plan to create a distinct PR for the following part mentioned at the end of the related issue description:

In this task we should also remove the defaultplacement_controller.go, since this command would replace it.

?


force_reply still waiting for a reply in multiple clients

Hi,
I'm having a problem with the force_reply: when I use it and I've two or more clients opened (example: desktop client + android client) when I insert something the force_reply close the input box only in the client where I replied but remains still opened in the other one, how can I "force" che closure of the input box in all clients?
Thank you.

Please see TelegramBotAPI.ReplyKeyboardRemove for more information.
In your reply, by the user, you may do sth like:
bot.sendMessage(chatId, text, {
    reply_markup: {
        remove_keyboard: true
    }
});

Hope that helps!


Setting up the local workspace in VS code to begin writing the YAML doc

Steps?

Sources

npm package for swagger-ui-react
Swagger UI Docs
StackOverflow Swagger UI Offline Installation


Sort by tag

Is there a way to sort my feeds by tag? I'm not saying look at a specific tag but in my entire list of feeds order them by there tag alphabetically.

There is currently no way to do this. However I can imagine a potential
feature that allows users to supply a custom sort function with the
understanding that it comes at a performance cost — the database is
indexed only by time.

Should be nice to have a way to group by tag. I mean, have feeds with the same tag one after another. Could elfeed-search-sort-function be used for this scope?
thanks

@ra1nb0w Yes, elfeed-search-sort-function should do it, with all the caveats of using a custom sort. This feature was added less than a month ago (b62a2d0040f1a8ad0a23a48e3843d2ed5cbc2a8c) and I forgot about it applying to this issue.

with all the caveats what do you mean except break the live search?

I should have said "caveat," singular. It just breaks the live search.
Live search needs to be fast, and it relies on the time index to quickly
fill the visible part of the buffer with results. Under an alternative
sort, all that's available is a very slow "table scan," though it
doesn't actually fall back on this.
During live search it picks out just enough matching entries to fill the
display, starting with newest first, then applies the custom sort. Under
correct (non-live) operation, the custom sort might list a very old
entry first, but in live search this entry wouldn't be included at all
due to that initial selection process.

ok. Thanks for the explaination.

@skeeto any chance you could show me an example on how I would sort by tag with this new function? Thanks.

This example serializes the tag list into a string (simple, but
inefficient), then sorts entries based on that string, falling back on
the date to break ties (descending).
(defun my-elfeed-tag-sort (a b)
  (let* ((a-tags (format "%s" (elfeed-entry-tags a)))
         (b-tags (format "%s" (elfeed-entry-tags b))))
    (if (string= a-tags b-tags)
        (< (elfeed-entry-date b) (elfeed-entry-date a)))
      (string< a-tags b-tags)))

(setf elfeed-search-sort-function #'my-elfeed-tag-sort)

Maybe my tags are too much of a mess for this to work, but I didn't find
this tag sort to be useful.


[Remote Translog] Use InputStream that supports mark and reset while uploading translog files

Description

Currently, we use Channels.newInputStream while uploading translog files.
But as per the documentation of method, it does not support mark and reset methods of InputStream.
This creates issues during upload of the translog files, if upload fails and remote store client tries to retry the upload, it fails as resetting the stream is not possible.
Solution is to pass InputStream that supports mark and reset while uploading the translog and checkpoint files.

Issues Resolved

https://github.com/opensearch-project/OpenSearch/issues/5843

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
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

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

Codecov Report

Merging #5868 (47d749d) into main (988284a) will increase coverage by 0.17%.
The diff coverage is 100.00%.

:exclamation: Current head 47d749d differs from pull request most recent head 68f1e1b. Consider uploading reports for the commit 68f1e1b to get more accurate results

@@             Coverage Diff              @@
##               main    #5868      +/-   ##
============================================
+ Coverage     70.72%   70.90%   +0.17%
- Complexity    58649    58717      +68
============================================
  Files          4769     4768       -1
  Lines        280634   280574      -60
  Branches      40523    40514       -9
============================================
+ Hits         198478   198936     +458
+ Misses        65845    65369     -476
+ Partials      16311    16269      -42

Impacted Files
Coverage Δ

...ensearch/index/translog/transfer/FileSnapshot.java
60.27% <100.00%> (-0.54%)
:arrow_down:

...arch/search/aggregations/pipeline/LinearModel.java
23.07% <0.00%> (-46.16%)
:arrow_down:

...adcast/BroadcastShardOperationFailedException.java
55.55% <0.00%> (-44.45%)
:arrow_down:

...earch/index/alias/RandomAliasActionsGenerator.java
52.00% <0.00%> (-40.00%)
:arrow_down:

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

...pensearch/action/ingest/DeletePipelineRequest.java
31.25% <0.00%> (-37.50%)
:arrow_down:

...main/java/org/opensearch/ingest/ProcessorInfo.java
21.05% <0.00%> (-26.32%)
:arrow_down:

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

...opensearch/persistent/AllocatedPersistentTask.java
44.23% <0.00%> (-21.16%)
:arrow_down:

...c/main/java/org/opensearch/geometry/MultiLine.java
80.00% <0.00%> (-20.00%)
:arrow_down:

... and 469 more

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

Is there a possibility to test out this change with a UT or IT?

This is mostly creating instances of different implementations of InputStream and binding them together.
We can add an assert before returning the inputstream instance to check markSupported.
Existing UTs of FileSnapshot should take care of this.

Is there a possibility to test out this change with a UT or IT?

This is mostly creating instances of different implementations of InputStream and binding them together. We can add an assert before returning the inputstream instance to check markSupported. Existing UTs of FileSnapshot should take care of this.

There are no UTs for FileSnapshot. I will get them added. For the UT of inputStream() method, I will check by resetting the stream.


Optimize data transfer/memory consumption

use buffers whenever possible and transport compression algorithms

Just made a quick test to send an ArrayBuffer instead of JSON array here and it did not really improve anything. It seems data transfer and/or deserialization was worse...

We need to test with a Float32Array, which should reduce size by 2. Indeed float values are double by default in JS and should be already sent as binary data in the socket. This could explain that using a buffer did not lead to any enhancement.

Switched to Float32Array.from(array) in order to reduce the size by 2 (8 bytes per value => 4 bytes per values). Unfortunately bandwith consumption was worse, on the client the deserialized object is actually an object with array indices as keys like { 1: value1, 2: value2, etc. }...
Don't know if there is something to configure in socket.io or if the fact that the field is included in a Feathers service response object makes this happen.

Protobuf?


Resource Definitions

I was going through the documentation part of Resource Definitions. Under "kubectl explain" section in "policy.spec"  file. In line number 1, I don't understand the meaning of  "λ". It doesn't suit here.
And I line 8,
Spec defines policy behaviors and contains one or rules..
According to me, it would be
Spec defines policy behaviors and contains one or more rules.

@viveksahu26 - λ is the prompt in the Cmdr shell - I agree it should be removed.
Do you want to submit a PR for this and fixing the sentence, Spec defines policy behaviors and contains one or rules?

/assign

Note that the schema definition needs to be fixed in kyverno/kyverno as well (this PR simply fixes the output but the source of it remains).


generating wrong type after update

model User {
  id            BigInt         @id @default(autoincrement())
  publicId      String         @unique @map("public_id") @db.VarChar(30)
  email         String         @unique
  password      String?
  name          String
  photo         String?
  userProviders UserProvider[]
  createdAt     DateTime       @default(now()) @map("create_at")
  updatedAt     DateTime       @default(dbgenerated("CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)")) @map("updated_at")

  @@map("user")
}

BigInt is being generated as number
export type User = {
  id: Generated<number>;
  publicId: string;
  email: string;
  password: string | null;
  name: string;
  photo: string | null;
  createAt: Generated<Timestamp>;
  updatedAt: Generated<Timestamp>;
};

on 1.0.11 is correct generated
export type User = {
  id: Generated<bigint>;
  publicId: string;
  email: string;
  password: string | null;
  name: string;
  photo: string | null;
  createdAt: Generated<Timestamp>;
  updatedAt: Generated<Timestamp>;
};

deps version
 "devDependencies": {
    "prisma": "4.13.0",
    "prisma-kysely": "1.2.0"
 }

Hey there. A few versions back I ran some real life tests and made sure the types we generate matched the ones returned by the database driver. So in all likelihood the old types (the ones that included bigint) were wrong. Could you tell me what database you're using?
Here's an example of the JS types returned from the SQLite driver:

hello, thanks for faster response! Im using mysql/planetscale

Okay and are you using the serverless Planetscale Kysely driver or are you using the MySQL driver. Also, could you verify that typeof user.id is "bigint" when you actually query the database.

using Planetscale Kysely driver, typeof user.id is number on<EMAIL_ADDRESS>

I'd like to clarify some points to ensure we're on the same page. Prisma Kysely only impacts TypeScript types, not the actual runtime types. The determining factor for the runtime types returned by a query is the database driver used by Kysely, rather than the dialect. Consequently, even within a single database type defined in a Prisma schema (e.g., MySQL), there can be various runtime types corresponding to a Prisma type (e.g., BigInt) depending on what driver you're using. This means that Prisma Kysely needs to choose one "sane default" to support for each dialect, and in this case it's the default MySQL driver that Kysely uses out of the box.
Consider the following code:
// Assuming your Kysely instance is called db
const user = await db.selectFrom('User').selectAll().executeTakeFirstOrThrow();
console.log(typeof user.id);

If what you say is true and it outputs "number", it means the database driver returns a number instead of a BigInt, despite having BigInt specified as the database type in your Prisma schema. In this case, the type is correct.
However, if it outputs "bigint", it indicates the PlanetScale driver behaves differently from the default Kysely MySQL driver. To address this, add an override in your Prisma schema:
generator kysely {
    provider = "prisma-kysely"
    bigIntTypeOverride = "BigInt" // ⬅ This line here
}

My practical tests show that the correct JavaScript type for Prisma's BigInt type when using the default MySQL driver should be number. Changing it to BigInt would be incorrect for users working with standard MySQL.

Check out the source code for the PlanetScale driver's cast function:
https://github.com/planetscale/database-js/blob/8b1a360abd9b7b28ab953984e2aa9bd242d8a169/src/index.ts#L332-L368
It seems to me that it casts all INT types to number.

sorry for the confusion, I did a test by running a select query in the db, the type of the returned id is a string
running this

return this

https://github.com/planetscale/database-js/issues/86#issuecomment-1450747309 this clarify the question about bigInt as string

Okay wow interesting. Thank you for clarifying. I'll take a better look at this over the weekend and see if there's any recommended approach to this for Kysely. In the meantime, you might be able to use the override I mentioned, or even kysely-planetscale's custom cast function feature https://github.com/depot/kysely-planetscale#custom-cast-function to get around the problem.

by now i will change my pk types to INT, that's enough for the moment, while analyzing the problem I saw that bigint is a cannonball for my problem, I believe that the returned bigInt can be safely converted to number in this way

I'm not sure whatprisma-kysely can do to support the insertedId type so I'm closing the issue for now.


Fixed a breakage while creating the store

When debug mode is disabled by running "mpn run dev:no-debug", createStoreWithMiddleware function fails since its not initialized.

Thank you for catching this!


linux_5_11: 5.11.2 -> 5.11.3

Motivation for this change
https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.11.3
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

I am including this in #115101
Do you mind waiting for that PR?

That's fine.


[q] change screen brightness in background

When I want to change the screen brightness while in the background, it doesn't change.(IOS)

Hi @cagridurmus, would you like to express more about changing brightness in background. As the os restriction on iOS. When user quit the app, brightness would reset back to system brightness. Which means as app developer you cannot change the system brightness, you can only change brightness when user is using the app.

You added the setAutoReset method for the package. When I change the screen brightness in my own application and then go to the main screen, the screen brightness value stops. What I want to do is I want to change the system brightness while it is in the background. But as far as I understand, such a thing cannot be done on the iOS side.

Yes, that what I meant. You cannot change system brightness in iOS side, only application brightness is allowed.

@cagridurmus Is there any other question? If not feel free to close this issue.

No, thanks bro.


⚠ Fortnite has degraded performance

In d8fc835, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1723 ms

Resolved: Fortnite performance has improved in 9bc9ed0.


Update main.go

Error Handling: Centralized error handling with the handleError function to reduce code repetition.
Function Decomposition: Split the main function and readFlags function into smaller functions for better readability and maintainability.
Comments: Added comments to describe the purpose of functions and key sections of the code.
Concurrency Handling: Improved handling of signals for a graceful shutdown.

Great, thanks so much for your contribution @geeknik !


fix: negative guids

Updates to<EMAIL_ADDRESS>

@daveplunkett please comment that you've seen this when you have a moment, thanks!


Add XNet Support

Please add xnet support!
Would be awesome to get down to one cable type, and would add more facades!

no

Any reason why not?


Rrw 42 - life the universe and everything

Whoo boy. SO ... MANY ... CHANGES. Still more to do, but it's at least at a point where everything seems to hold together.
Apologies, but I had to get opinionated to keep myself sane. If these opinions clash, feel free to push back (or reconsider whether a fork makes more sense).
Again: keep in mind that I barely know what I'm doing. Feel free to push back.
Big ticket items:

I removed any theming for scripts. I may also have broken some things you'd already done (I think I failed to capture your last 5 commits). Please test thoroughly to see what I've missed!

I've tried to use semantic variables for everything. It should be VERY easy to make wholesale color/theme decisions just by editing the very first rule (for :root).

One thing that was (and still is) driving me insane: many of the rules have crazy long lists of crazy specific selectors. The cascade is basically out the window. I've broken up things as I make sense of things (with huge comments delineating the sections for each page) but there are still many rules with selectors for completely unrelated things (sometimes on entirely different pages). This makes it harder to maintain. I'll continue to work on this.

There were a few things that I couldn't find our figure out what they do, so I couldn't figure out which semantic variable made sense. In those cases, I changed the background color to "chartreuse" (a hideous bright, sickly green). Please let me know if you see that color anywhere!

I've made some potentially contentious color decisions:

You were using the "radical red" is the primary color for "chrome" or "branding". I've decided to use the yellow color for this with red as brand-alt in a few places. (This is trivial to change if you want to go back: just define --ED-brand and --ED-brand-alt as you like.)

I added colors for the stages that are darkened, desaturated versions of the WK stage colors. I think it's important to visually distinguish between things that mean "SRS stage" and things that mean "radical/kanji/vocab". This is most visible on the dashboard page.

Related to the above: note the colors of the lessons and reviews button on the dashboard. I feel strongly the reviews button should be emphasized for newbies! I made the "reviews" color the same as the "apprentice" color because on any given day, most of your reviews will be apprentice items. I made the lessons button gray to de-emphasize it.

I darkened the vocabulary color! Things are a whole lot simpler and cleaner if all the types (R/K/V) work with light colored text. This is especially true in the kotoba list since there are items of multiple types (it looks ugly if the text color changes).

We can add separate files eventually into a "userscript-themes" folder. It will then be easy to publish a "official + common-scripts" version, as well as a smaller version for just the official site (and separate files for theming individual scripts.  This prevents the size of the file from getting too out of hand, while still allowing us to support theming arbitrary userscripts (if the authors themselves don't handle it).
Please review the comments and structure at the top of the file. Then play with changing values as you like (should help to explain what I'm trying to accomplish).
Then please use the theme for a few days as you do your reviews and help me squash any remaining bugs!

During my reviews today, I found one small nit:
The animated SRS level-up popups when moving an item to enlightened or burned on the review pages  have a super ugly bright green background. (It's not one of my chartreuse checks! It's an escape from the official colors.)
Not worth another commit just for that, but it's the only thing I noticed wrong. I haven't defined success/failure semantic variables, but it probably makes as much sense to use --ED--correct-clr and --ED-incorrect-clr as anything.

One more little thing. I'd backed off the brightness of the ED-text-darkbg (the original was #fff). In general, pure white is a bit harsh in a dark theme, but I think I backed it off a bit too much.
It looks better with more contrast (around #eee).
If you set it to red, you see all the places I missed where pure white bleeds through from the default theme.
I'll add a commit for both of these to the PR.

Okay, I'm pretty happy with this now.
We can't do much more than filter the colors on any WK images, but everything else seems to react to --ED-text-color correctly.
Fixed several consistency issues, too.
It's a subliminal thing, but seeing the little boxes animate into place with the correct apprentice/guru/master/englightened bucket colors is actually nice to know.
I also used --ED-grayed-text when an item moves down rather than up. I figure it's best to be subtle -- no sense in beating someone over the head for answering incorrectly!
All in all, from a usability perspective, I think this may actually be slightly superior to the WK official colrs.
I'm no designer, so my color choices may be a little weird, but I think providing semantic names makes everything MUCH more consistent (which pays off subliminally as you do your reviews). It's easy now for anyone to choose their preferred colors.
Once it stabilizes, I may even write an app to make it easy to modify these variables  from your WK dashboard (rather than editing the file directly in stylus or whatever). Ideally, it would have a UI to save/restore color schemes that the user or others came up with.

Cool! I just created this simple styling for the self-study userscript (separate folder).
Added it to stylus, and shazam! Worked like a champ.
The nice thing is that because of how custom props work in CSS, it doesn't really matter which order you load the stylus css files. All the props are defined on :root, so the userscript files inherit them just fine.

Wow, just wow! Incredible stuff!
I will definitely be merging your changes into the main repository. The new look is amazing, but that's just the icing on the cake. Want I for sure want to have in the main branch are the new reworked variables. They are easy to navigate and intuitively named. What's more, if you were to go the fork route down the line, it would make managing userscript theme compatibility a walk in the park.
I'm not so keen on the usage of hsl color declarations instead of traditional rgb or hex. But as they might make working with filters more intuitive, I don't mind keeping them in. At least for now.
Splitting up the huge selector chunks, or even some smaller ones, where the unified styling doesn't make sense, is alright by me. At some point during the initial creation, I got lazy and instead of typing out the whole desired style, I went back in the file, find a similar styling, and amended the new selectors. It didn't bother me at the time, since I didn't expect to ever go back, but now it got messy to work with.
The unaccounted-for selectors should be relatively easy to track down. I will get it in order and append a comment describing where to find each one of them. That way any further maintenance should be much easier.
Now for the big elephant in the room. The particular default colors:

I don't like how the R/K/V colors clash with A/G/M/E/B colors. So I will for sure be making changes to at least one of these sets.
I'm also not yet fully onboard with using the default A/G/M/E/B hues, but I will be experimenting with them for now. Lessening the burden on users who are switching to the theme should probably take precedence over my own aesthetic preferences. Doubly so, since I can now have a separate copy with my preferred colors, thanks to your awesome work.
The branding presents another issue. Initially, I envisioned the theme as an equivalent to that of bunpro. That would mean keeping everything as red as possible. But that made things awkward when there was a bar that was supposed to be red under an already red radical square. I will experiment in this space and won't make any definitive judgments just yet, but if possible, I would prefer to keep true to the original vision.
The highlighting of the review button on the expanse of the lesson button is a great idea, but I wouldn't go as far as making the lesson button gray all the time. There should be a subtle reminder of lessons aside from just the number/background image.

Another thing I noticed is the lack of bold lettering in highlighted text. That might be an intentional change since the improvements made it redundant or maybe even distracting. Nevertheless, I will try adding the bold text back in, since I found it to be beneficial for the overall experience, at least on the prior versions.
Lastly, with the amount of work you have done, I would like to give you some sort of recognition. If you don't mind, I would like to add your name to the @author section at the top of the stylesheet. It's just a minor thing, but I still thought it would be appropriate to ask before doing so.
Overall, Im stoked with how it turned out! Thanks a lot for all your hard work.

For now, I will just do the merger without updating the installation links. There are some rogue elements, that should probably be fixed first. I will try and put as many of them as I can find into a dedicated issue.

Awesome. I'm glad you like it!
I'm certainly not in it for recognition, I just like tinkering. I'm very happy with how it's turning out, though.
Hopefully it will be smaller piecework stuff (bug smashing) going forward.
The reason for HSL is that it makes it WAY easier to mechanically create harmonious colors without destroying things. Tints and shades are trivial, and saturation/desaturation doesn't change the "sense" of the color. I and many others had already built up unconscious associations with the official WK stage colors, so I was leery of disposing with them altogether. I'm okay with going to something else, but I'm not okay with just overloading colors that already "mean" R/K/V.
One thing I know about myself is that I'm no artist, though: finding harmonious color palettes is definitely not my strength. I'm NOT satisfied with the color scheme in the branch you just merged for certain. But I knew it needed semantic structure to find the optimal palette.
I'm much stronger with UX. I was responsible for product management professionally. I understand intuitively how people use things, and what's important to emphasize/de-emphasize.
While a smaller palette is more aesthetically pleasing, I know for certain that it's important to consistently distinguish SRS stages (A/G/M/E/B) from item types (R/K/V). It's probably possible to do this with fewer hues, but it's necessary IMO (my STRONG opinion) to keep them distinct.
My goal was to get the infrastructure (semantic naming) in place to make it easier to come up with a color scheme that makes sense.
Thoughts re: colors
There are 5 stage "buckets" that need to be distinguished, and three item types (as well as a handful of other concepts). While it's necessary to distinguish within stages or within types, I think the first order job for WK color is to immediately convey: THIS IS A STAGE, that is a type. Distinctions within those categories are secondary.
Correct/Incorrect and promotion vs. demotion already have standard red/green, bright/subdued, high-contrast/low-contrast expectations that probably shouldn't be deviated from.
Branding and progress is wide open (whatever looks good). That should probably be at the very top of the first rule: it provides the most freedom. Bunpro-red for a primary brand color is totally workable. It's common to need at least a primary brand color and an occasional second/alternative. Don't want it associated with anything negative (demotion, lower levels) but it's certainly okay to associate it with kanji! (One thing that struck me originally was that the branding color was the radical color: radicals are the LEAST important part of the whole process! It would have made more sense to swap the kanji and radical colors.)
One thought was o make all of the stages a single hue (or even shades of gray) that aren't used by R/K/V. Dunno. Needs experimentation.
The important thing is we now have the infrastructure in place to make decisions.

You make a valid point about overloading the colors. There should definitely be a separation between R/K/V and A/G/M/E/B. I'm just worried it could result in an overwhelmingly large palette, that would be detrimental to the user experience.
I will think about shifting the red color to the kanji. It seems reasonable, but from a purely aesthetic point of view, I like that the first R/K/V element you encounter on the dash shares the branding color.
When it comes to the A/G/M/E/B, my current vision would be to take the default hues and get them in line with the ashen/matte color feel the original R/K/V introduced. But that's subject to change.
Now all that's left to do is get the last rogue elements under control and the theme is good to go. I can't wait to see how it turns out.


project6-MVP-submission

https://github.com/ahmad2806/Animals-shelter/wiki/Iteration-1-MVP

missing test scenarios for use cases
missing board screenshots

I see boards but not test scearios

@robi-y
you can check scenarios for
iter 1 from
https://github.com/ahmad2806/Animals-shelter/milestone/2?closed=1
iter2 from
https://github.com/ahmad2806/Animals-shelter/milestone/3?closed=1


Breaking Change Request: normalize types and use mutual subtyping for type parameter bounds

Planned change
In preparation for null safety, we'd like to roll out several minor breaking changes. Two such changes are about types in the language. These changes are:

Types objects will now be normalized (see specification for details)
Subtyping of type bounds in function types will switch from using structural subtyping to use mutual subtyping.

Expected Impact
This affects equality of type objects and some subtyping checks, but the cases where we expect differences are pretty rare and small.
Most of the normalization rules are not visible to Dart programs today (most rules concern null safety features). Only only two rules are visible:

FutureOr<Object> normalizes to Object (similarly with other top types like dynamic and void)
FutureOr<Null> normalizes to Future<Null>

This change is visible when comparing or printing .runtimeType of objects involving those two FutureOr types, for example: <FutureOr<Object>>[].runtimeType == <Object>[].runtimeType will now be true.
For subtyping of bounds, this affects checks where the bounds were structurally different but would be subtypes of each other. Again we only expect this to affect cases where FutureOr<Null> or FutureOr<Object> were used within function type bounds.
For example, consider void Function<T extends List<Object>>() and void Function<T extends List<FutureOr<Object>>>(). With structural subtyping these two function types were not comparable, but with mutual subtyping they are both considered equivalent.
Note that there is a lot of overlap between these two breaking changes. With normalization we would start indicating that the two function types above would be subtypes using structural subtyping as well. We however introduce the concept of using mutual subtyping on the bounds to prepare for the future additions that come with null safety, where normalization will no longer be sufficient.
Mitigation
We think the most visible part of this change will be in tests that rely on using .runtimeType.toString() that also mention FutureOr<Null>, FutureOr<Object>, FutureOr<dynamic>, or FutureOr<void>. If those occur, then they will need to be updated to reflect the normalization changes.

@franklinyow @mit-mit @vsmenon

Please send breaking change mail
https://github.com/dart-lang/sdk/blob/master/docs/process/breaking-changes.md
Email Dart Announce (announce@dartlang.org):
Subject: 'Breaking change [bug ID]: [short summary]'
Very short summary of the intended change
Link to the above mentioned issue
A request that developers may leave comments in the linked issue, if this breaking change poses a severe problem.

@Hixie @matanlurey - let us know if you foresee any issues with this for either flutter or angular.

@franklinyow - announcement was sent here: https://groups.google.com/a/dartlang.org/forum/#!searchin/announce/breaking$20change|sort:date/announce/px2Qfe8UmYc/kclOKC10FwAJ

How will this affect the "await only futures" lint?
It seems reasonable to await FutureOr<Object>, but not to await Object.

cc @Hixie @matanlurey @dgrove @vsmenon for review and approval.

I am indifferent to things affecting FutureOr<>, it's my assumption that eventually we will be removing FutureOr from the language, adding type unions/intersections, and redefining FutureOr as:
typedef FutureOr<T> = Future<T> | T;

So long as what we're doing here is consistent with doing that on the long term, I'm happy.

lgtm

LGTM

Approved

Changes implementing this in the VM, dart2js, and DDC have now landed.


multiple fields can now be updated at once

#82 multiple fields can now be updated at once using the update_fields method on storedobject.

Merged into develop, and I've added a docstring.
My apologies for the delay in addressing this! I take full responsibility for not dealing with it sooner, and I'm committing to making sure this library is properly watched and maintained in the future.
As context, we're still growing very rapidly as an organization, and the person who was primarily responsible for Modular-ODM recently took a position elsewhere. I've been reacquanting myself with the codebase over the past few weeks, gave a lightning talk on it at PyCon, and will be taking it under my wing moving forward.
I'm not yet sure when you can expect to see this reflected in the PyPI-installable version, but I'll be sure to let you know when it gets pushed there.


x.com shows browser unsupported screen

I'm trying to go to smallcappicks (my dad's old twitter account), and it displays this browser is no longer supported.

You need to spoof another user-agent string. Any of chrome, Firefox or Safari should work. It’s dumb but they require it :/

Fixed with UA spoof.


qt3d-runtime: update to v2.3

Signed-off-by: Mikko Gronoff<EMAIL_ADDRESS>

Merged in warrior and master
c7e0ba56..60e61ea2  master -> master
c7e0ba56..60e61ea2  warrior -> warrior
Thanks