Something like this, but we also need to account for isUpToSpeed:
      buttons.feedInFire.whenPressed(
        new InstantCommand(
          () -> {
            shooterSubsystem.turnOnFeeders();
            intakeSubsystem.ballManagementForward();
          }
        )
          .andThen(new WaitCommand(.4))
          .andThen(
            () -> {
              shooterSubsystem.turnOffFeeders();
              intakeSubsystem.stopBallManagement();
            }
          )
          .andThen(new WaitCommand(.2))
          .andThen(
            () -> {
              shooterSubsystem.turnOnFeeders();
              intakeSubsystem.ballManagementForward();
            }
          )
      );
      buttons.feedInFire.whenReleased(
        () -> {
          shooterSubsystem.turnOffFeeders();
          intakeSubsystem.stopBallManagement();
        }
      );
    }

We took a video and we think it takes about .4 seconds to feed a ball into the shooter.


Pipeline state mechanism

Implemented in https://github.com/wayfair-tremor/tremor-runtime/pull/59
For future RFC implementations, this kind of tracking issue will live in the tremor-runtime repo itself.
Closing this out here.


Proposal: tag version 0.1.0 ?

Hi,
firstly, thank your for investing your time in a general purpose library !
As your lib seems to be quite stable over the last couple of month, would you mind tagging it with a zero version; something like v0.1.0?  A zero version would not mean any commitment to API-stability from your side, as zero versions are supposed to be unstable.
However, it would help clients lock their dependencies in case you'll extend your lib to include fc-match or other feature-/API-changes.
Cheers,
--Norbert

Done.
Thank you for the proposal!


Popup table editor text overflows

Describe the bug
Russian translation (maybe not only russian) text is too long for table popup utils lines:

To Reproduce
Steps to reproduce the behavior:

set language: 'ru'
Set WYSIWYG mode
Right-click table
See text overflows with of ,te-popup-table-utils
(See error)

Expected behavior
A clear and concise description of what you expected to happen.

Desktop (please complete the following information):
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36 OPR/66.0.3515.95

OS: Windows 10
Browser Opera (Blink based)
Version 66 (As Chrome 79)

Additional
Can be simply fixed (But sadly I have not enough time resources to make PR):
remove width from .te-popup-table-utils and .te-popup-table-utils button
add display:block to .te-popup-table-utils button

@Zulcom Thanks for reporting the issue!


Reading disconnected camera returns true (3.1)

I have no problems opening and reading frame from a usb camera. However when disconnecting the read function will always return true. This occurs on Opencv 3.x but not on 2.4.x
Affects:
Windows:
Opencv 3.1
Opencv 3.0
Linux:
Opencv 3.1
Opencv 3.0
Works on
Windows:
Opencv 2.4.8
Linux:
Opencv 2.4.9
Test Code
int main() {
 int device = 0;
 VideoCapture cap(device);
 cap.open()

 if (cap.open()){
  while (1) {
   Mat frame;
   bool ret = cap.read(frame);
   if (ret)
    imshow(frame);
   else
    break;
  }
 }

}

Possible related tickets:
https://github.com/Itseez/opencv/issues

Duplicate #5746


[UWP] [Export] added additional checks for blank values

Short Name and Publisher Display Name are mandatory.
You can't even sign the app package without them in the manifest.

Thanks!


CTC-59: browse data for media clips page

Description
Music year: 2017
Teacher media clip pages now render their data from a query requests rather than hardcoded data on the page

Creates lessonMediaClips directory with query, test files, schemas and fixture data
Creates construct functions for both canonical and canonical lesson media clips
Adds these queries to the media pages so they render lesson data via the getStaticProps method

Issue(s)
Fixes #CTC-59
Acceptance Criteria

[ ]  A stub query is created for media clips page
[ ]  browse data returned from getStaticProps
[ ]  breadcrumbs implemented
[ ]  handles canonical and browse versions

How to test

Go to https://deploy-preview-3013--oak-web-application.netlify.thenational.academy/teachers/programmes/chemistry-secondary-ks4-foundation-edexcel/units/atomic-structure-and-the-periodic-table/lessons/atomic-structure-negligible-electron-mass/media
https://deploy-preview-3013--oak-web-application.netlify.thenational.academy/teachers/lessons/atomic-structure-negligible-electron-mass/media

or append /media to any lesson page

You should see a media page with a working breadcrumb component

Screenshots
How it should now look:
{screenshots}
Canonical Lesson

Non-canonical Lesson

Checklist

[ ] Added or updated tests where appropriate
[ ] Manually tested across browsers / devices
[ ] Considered impact on accessibility
[ ] Design sign-off
[ ] Approved by product owner
[ ] Does this PR update a package with a breaking change

@k-huggs just checking, when I open both links (and any other lesson with /media appended) I briefly see a 404 page. Is this expected as the page is built?
https://github.com/user-attachments/assets/a547ba2c-0aa3-4992-ae04-0d054ee2c957

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


gpg-agent plugin should check existence of ssh-agent before sourcing from GPG_ENV file

The gpg-agent plugin needs to check for the existence of an ssh-agent before sourcing the GPG_ENV file. The GPG_ENV file potentially contains SSH_AUTH_SOCK and SSH_AGENT_PID for an old gpg-agent started with --enable-ssh-support. In this case, sourcing the file and then checking for ssh-agent's existence results in a failure since the ssh-add -l check uses the stale environmental variables from GPG_ENV rather than the current values of the live ssh-agent.

Triaged.


Governance proposal: CEP review delegates

In the past we have discussed how the CEP process has a bottleneck with the votes from the Steering Council (SC). Two weeks need to be granted in practice so the quorum rules are softer and so on. We had also discussed the possibility of having a technical review team or panel, but we didn't get far with that.
In yesterday's call we came up with a compromise solution that is maybe enough to reduce the vote frictions. The principles are:

Each Steering Council member can choose a delegate reviewer who will review the PR and cast the vote on their behalf.
The delegate reviewer doesn't have to belong to SC, but we assume that the SC member will choose someone with the technical competence to do their job well.
SC members can choose their delegate reviewer from the panel of people that have kindly volunteer to be delegates. Maybe adding a review to the PR makes you a suitable volunteer already. To be decided.
A delegate reviewer can represent more than one SC member. The quorum rules apply as if the original SC members had voted.

This is a bit rough but that's the core idea. Thoughts @conda/steering-council?

I am emeritus, so do ignore, but did we not get far on the technical board at the last meeting or in general?
I'd much prefer a technical board as it is a more straightforward and sensible system.


Update deprecated lifecycle methods

Closes #350
This PR replaces soon to be deprecated React lifecycle methods with modern counterparts.
componentWillMount
straightforward fix, just replaced with componentDidMount
componentWillReceiveProps
This one is a bit tricky.
The big difference between componentWillReceiveProps (WRP) and getDerivedStateFromProps (DSFP) is that WRP is invoked ONLY when props change and DSFP invokes before every render, no matter if it is caused by props or state change.
To replicate WRP with DSFP there are two solutions:

mirror the last prop into state
invoke setState() in componentDidUpdate

Option number 2 would cause a re-render, so I decided to use option 1.
This is actually recommended way by Dans Abramov and React core team (React's docs Updating state based on props goes into a bit of details about why the decision was made.)

Yes. Our recommendation is to put such values on the state (like state.prevRow in the blog post example).
This frees up React to not hold into the whole previous props object in some cases in future versions.
It’s a bit more verbose but it also solves the problem of prevProps being null on first render (and thus forcing you to write an extra check every time you use this method).

Couple of other guides (SO Answer, Another guide) also suggest the same solution.
People are a bit pissed about it since it forces mirroring of prop inside the state but after couple of hours of research it seems that there is no easier way for it other than setState in componentDidUpdate but it will affect performance due to extra re-render cycle.

Also it would be great to merge #356 before this one since now expo is kinda broken...
just for the same of other developers :)

Good job @ArtemKolichenkov !

@ascoders Could this be released?

after updating to version 2.2.27 i still got the deprecated lifecycle warning.

@ascoders we appreciate the creation of this package.
That said, do you still mean to maintain it? And by maintain it, I mean, accept PRs from the community. I see that this PR was merged a while ago but still not released, and it seems like some of us are awaiting on this release, which can only be done by yourself.
Thanks in advance for your time and attention :)

Sorry for late reply, due to the large changes, major version upgrade is adopted to prevent the break change<EMAIL_ADDRESS>is now released!
By the way, anyone want to be a backup maintainer?

@ascoders I can become backup maintainer. Actually have some free time on my hands right now due to COVID-19 so wouldn't mind going through issues and fix some stuff. :)

Thank you for your help @ArtemKolichenkov, welcome to be a contributor! Below is the invitation link:
react-native-image-viewer, react-native-image-zoom


fix getRandomArray to handle primitives

Here is a fix. I tried but couldn't find a cleaner way to handle it.
I won't be able to spend any time on side projects for the next few weeks.
I really like the cleanup of the collection population tests, by the way.

Many thanks for the quick fix and for your effort on this feature.


Add : Code of Fibonacci series without recursion in python

Why:
Closes #283
What's being changed:
Added code of Fibonacci series without recursion in python
Check off the following:

[x] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Hey @NeelPatel31
Thanks for your contributions to this project 😃
This PR will be reviewed and merged shortly

LIVE : https://codinasion.web.app/programme/fibonaci-series-without-using-recursion/


Various improvements to "Review and Deploy" modal

What does this PR do and why?

Reorganise "Review and Deploy" modal into 2 sections to indicate which can be changed instantly and not
General layout tidy up of the modal for desktop and mobile (using Row/Col elements rather than just Space elements)
Adds sentence to 'Project details' drawer

Screenshots or screen recordings
https://user-images.githubusercontent.com/96150256/152669564-b77afdfb-6361-4a17-896a-b281df5e5859.mp4
When no duration set:
https://user-images.githubusercontent.com/96150256/152669556-ec076379-3ad7-41ac-91d1-be8def5c3900.mp4
Mobile:
https://user-images.githubusercontent.com/96150256/152669590-a2a8f4d0-0376-4aff-8699-f455c73d4d9b.mp4
If applicable, provide screenshots or screen recordings to demonstrate the
changes.
Acceptance checklist

[x] I have evaluated the Approval Guidelines for this PR.
[x] I have tested this PR in all supported browsers.

love this change @johnnyd-eth! awesome way to clarify the "reconfig rules" for different types of project info without adding any new components or big restructuring.
i'm also down to use the row/col structure—looks nice! though i'm wondering how text overflow is handled. have you tested this with website, twitter, pay disclosure set? pay disclosure could be quite long depending on how projects are using it and should probably have its own line, i've seen some long website urls as well

@peripheralist thanks for this feedback. Definitely wasn't considering long URL's and 'Payment disclosure'. I've reorganized the fields (see below): moved the disclosure to its own line, and gave 'Discord' and 'Website' a bit more space. I think in the case where these fields are short or empty it still looks decent.
Long fields:

Short fields:

nice @johnnyd-eth ! much better. still a little concerned about scrunching on the name handle, but overall no big deal. generally i think i prefer too much whitespace (with empty fields) over overcrowding (with full fields), but it'd also be nice to keep this form from getting too vertically long. this might be the best in-between solution
will play around with it when you push your changes!

Also, moved to full-width fields on mobile:
https://user-images.githubusercontent.com/96150256/152888884-89d0059b-eca6-4de5-94c1-1ff0b72f4178.mp4

@peripheralist Good call, defs agree we don't want it looking crowded. Gave a bit more space to the name and pushed my latest. LMK what you think 👀


(refact): Refactor processor benchmarking.

Summary

Create CountingDispatcher for asserting number of events dispatched.
Refactored various benchmarks into a single benchmark with all permutations.

During the bug bash yesterday I noticed that the assertion that we were doing for the processor benchmarks were a bit too lax (e.g. totalSent < numberRun). I wanted to make that a more exact assertion so I ended up refactoring a bit.
The resulting assertion looks more like b.N != dispatcher.visitorCount and is done with every benchmarking scenario. Running it on my machine there appears to be a one-off error with the ChanQueue implementation: (e.g.)
Total sent and run  1438934 1438935
FAIL: BenchmarkProcessor/Channel/BatchSize-10/QueueSize-10-8

Total sent and run  9999 10000
FAIL: BenchmarkProcessor/Channel/BatchSize-40/QueueSize-1000-8

Total sent and run  1719782 1719783
FAIL: BenchmarkProcessor/Channel/BatchSize-60/QueueSize-1000-8

Per multiple conversations, I'm going to just remove the ChanQueue entirely. We can revisit alternative implementations in the future, but now we have a descent framework for evaluation.


Apply a default filtering

A snippet of my schema looks like this:
type Swipe
  @model
{
  id: ID!
  owner: String
  recipe: Recipe! @connection
  liked: Boolean!
  group: Group @connection(name: "GroupSwipes")
  timestamp: AWSDateTime
}

type Group
  @model
 {
  id: ID!
  owner: String
  groupname: String!
  groupcode: String!
  swipes: [Swipe] @connection(name: "GroupSwipes")
}

In my app I only want the GroupSwipes created in the last 7 days.
So I thought I move Group.swipes.req.vtl to my resolvers folder.
How can I set a default filtering here?
Since I not yet know how to do date filtering correctly I started testing with the liked Boolean field
#set( $limit = $util.defaultIfNull($context.args.limit, 5000) )
#set( $filter = $util.defaultIfNull($context.args.filter, "{liked: {eq: true}}") )
#set( $query = {
  "expression": "#connectionAttribute = :connectionAttribute",
  "expressionNames": {
      "#connectionAttribute": "swipeGroupId"
  },
  "expressionValues": {
      ":connectionAttribute": {
          "S": "$context.source.id"
    }
  }
} )
{
  "version": "2017-02-28",
  "operation": "Query",
  "query":   $util.toJson($query),
  "scanIndexForward":   #if( $context.args.sortDirection )
    #if( $context.args.sortDirection == "ASC" )
true
    #else
false
    #end
  #else
true
  #end,
  "filter":   #if( $context.args.filter )
$util.transform.toDynamoDBFilterExpression($ctx.args.filter)
  #else
null
  #end,
  "limit": $limit,
  "nextToken":   #if( $context.args.nextToken )
"$context.args.nextToken"
  #else
null
  #end,
  "index": "gsi-GroupSwipes"
}

But this still gives my both liked == false and liked == true items

@sprucify one option is that you can edit the query itself so you can apply the filter. Should generate a graphql query for ListGroups which in the generated query you can set a default to avoid specifying this in a call to your appsync api.
query ListGroups(
  $filter: ModelGroupFilterInput  # replace with a filter here ex { "liked": { "eq": True } }
  $limit: Int
  $nextToken: String
) {
...
}

That filter is just passing to the resolver right?
Because the problem with this approach is that my api.service.ts file will be overwritten on every amplify codegen command.
That is why I copied the build resolver to the resolvers folder.
But placing exact the same filter { "liked": { "eq": True } } in there, it is not working.

I got it working for liked == true by adding the following line in my resolver:
#set( $context.args.filter = {"liked": {"eq": true}})
My swipe model also contains a timestamp field of type AWSTimestamp
{
            "id": "d7604e82-3921-4ee5-98e2-e506e8eaf220",
            "liked": true,
            "timestamp": "2019-07-05T17:09:38+02:00"
          }

How do I set the filter to get only the data of the past 7 days?

I think that can't be done in resolvers, since this is pretty static.
Why is there no filter option generated by amplify codegen on @connection fields?

@sprucify amplify codegen does code generation based on schemas. This type of implementation you are referring to here is changing the VTL resolver templates. Which is certainly an option as we do have documentation on custom resolvers. Using a custom resolver in this usecase might be a good option.


node-promise IS an npm module now

Source here: https://github.com/MaxMotovilov/node-promise. I couldn't stand to redistribute by copy so took matters into my own hands :-)
It is a straight fork with 1 significant change so far: Kris's all() does not work with non-promise arguments -- mine does (basically the same way as when()). Also I have added an alternative version of all() called allOrNone() which resolves to an error (i.e. reject()-s) if ANY of the arguments fail. Kris's version simply resolves failed arguments to instances of Error which I found inconsistent with the overall pattern but decided not to break the backward compatibility and added the alternative API.
I have to echo your appreciation of the promise concept -- I have worked with the original Deferred in Twisted and with its descendant in Dojo Toolkit so the first thing I did when I came to Node was to look for an implementation of the same concept -- as it turns out, from the same source as the one in Dojo... makes async code almost as simple as the sync version!

We recently dropped support for node versions prior to 8 and that will give us an opportunity to rewrite the code using ES 201x syntax. Promises are a native feature and I think we should give that a try. I'm closing this issue, thank you for contributing with ideas and suggestions. I am a new maintainer and would be very happy for more feedback and contributions!


setSerializer() not working on collection

i want to remove "data" from json. so i need to set ArraySerializer.
It's working fine with item.
return $this->response->item($user, new UserTransformer, function ($resource, $fractal) {
$fractal->setSerializer(new ArraySerializer);
});
but not working with collection
return $this->response->collection($users, new UserTransformer, function ($resource, $fractal) {
$fractal->setSerializer(new ArraySerializer);
});
Reference: https://github.com/dingo/api/wiki/Transformers#utilizing-the-callback

Have you tried setting the serializer globally (in a provider) instead of on the response to confirm that the serializer is working as expected?


AppVeyor CI is failing because of newer MSBuild getting selected

CI started failing when https://github.com/apache/cordova-windows/pull/329 was merged:
https://github.com/apache/cordova-windows/commit/95401b36b20e5c4b37a3253ed0042b98380caf27
https://ci.appveyor.com/project/Humbedooh/cordova-windows/builds/24305931
Example:
.Creating Cordova Windows Project:
	Path: temp\platforms\testcreate 応用
	Namespace: com.test.app
	Name: 応用
Windows project created with<EMAIL_ADDRESS>Building project: C:\projects\cordova-windows\temp\platforms\testcreate 応用\CordovaApp.Windows.jsproj
	Configuration : debug
	Platform      : anycpu
	Buildflags    : /p:AppxBundle=Never
	MSBuildTools  : C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
buildProject spawn: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild [ 'C:\\projects\\cordova-windows\\temp\\platforms\\testcreate 応用\\CordovaApp.Windows.jsproj',
  '/clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal',
  '/nologo',
  '/p:Configuration=debug',
  '/p:Platform=anycpu',
  '/p:AppxBundle=Never' ] { stdio: 'inherit' }
  prebuild.js: Patching platform `8.1`
  - Injected `base.js` reference to `www/index.html`
  - Removing /( *)(<script\s+(?:type="text\/javascript"\s+)?src="\/www\/WinJS\/js\/base.js">\s*<\/script>)(\s*)/ from www/index.html
  - Removing /( *)(<script\s+(?:type="text\/javascript"\s+)?src="\/\/Microsoft.Phone.WinJS.2.1\/js\/base.js">\s*<\/script>)(\s*)/ from www/index.html
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\AppxPackage\Microsoft.AppXPackage.Targets(828,5): error APPX3217: SDK folder containing 'Windows.props' for 'Windows 8.1' cannot be located. See http://go.microsoft.com/fwlink/?LinkID=798187 for more information. [C:\projects\cordova-windows\temp\platforms\testcreate ??\CordovaApp.Windows.jsproj]
C:\projects\cordova-windows\temp\platforms\testcreate 応用\cordova\node_modules\q\q.js:155
                throw e;
                ^
CordovaError: No valid MSBuild was detected for the selected target: Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild: Command failed with exit code 1
    at C:\projects\cordova-windows\temp\platforms\testcreate 応用\cordova\lib\build.js:83:29
    at _rejected (C:\projects\cordova-windows\temp\platforms\testcreate 応用\cordova\node_modules\q\q.js:864:24)
    at C:\projects\cordova-windows\temp\platforms\testcreate 応用\cordova\node_modules\q\q.js:890:30
    at Promise.when (C:\projects\cordova-windows\temp\platforms\testcreate 応用\cordova\node_modules\q\q.js:1142:31)
    at Promise.promise.promiseDispatch (C:\projects\cordova-windows\temp\platforms\testcreate 応用\cordova\node_modules\q\q.js:808:41)
    at C:\projects\cordova-windows\temp\platforms\testcreate 応用\cordova\node_modules\q\q.js:624:44
    at runSingle (C:\projects\cordova-windows\temp\platforms\testcreate 応用\cordova\node_modules\q\q.js:137:13)
    at flush (C:\projects\cordova-windows\temp\platforms\testcreate 応用\cordova\node_modules\q\q.js:125:13)
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)
ls: no such file or directory: C:\projects\cordova-windows\temp\platforms\testcreate 応用\AppPackages

(CordovaError: No valid MSBuild was detected for the selected target:  is a known red herring here: https://github.com/apache/cordova-windows/issues/266)

Difference between working and broken build is this:
Before:
	MSBuildTools  : C:\Program Files (x86)\MSBuild\14.0\bin\
buildProject spawn: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild [ 'C:\\projects\\cordova-windows\\temp\\platforms\\testcreate 応用\\CordovaApp.Windows10.jsproj',

After:
	MSBuildTools  : C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
buildProject spawn: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild [ 'C:\\projects\\cordova-windows\\temp\\platforms\\testcreate 応用\\CordovaApp.Windows10.jsproj',

So improving the VS detector breaks on AppVeyor :/

Reason behind this is probably that VS17 does not support building for Windows 8.1 any more, so by fixing the VS detector to pick up the correct VS17 install, we broke the 8.1 builds that still are always tested.
Solution might be to separate the Win10 and Win8.1 tests and only run the matching ones?

Another solution might be to use pending similar to https://github.com/apache/cordova-windows/blob/585dc2f4e4c0794b72af6f4b448bb42ffd213800/spec/e2e/endtoend.spec.js#L218-L220 in all the Windows 8.1 tests.

Sure! Seems sensible, judging from what you wrote above. If a fair amount of tests are affected, you might even want to factor above snippet out into a function, so you only have a one-liner in the affected tests. Something like skipIfUsingVS2017().

Currently working on splitting the tests in Win8.1 and Win10 batches, then using pending on them to get rid of the failures. Additionally I will add another build with explicit MSBUILDDIR set to C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin - so future changes on the discovery logic will pop up earlier.

Build is green :D


Port #5175 to 13

Is your feature request related to a problem?
Map field is not implemented efficently.
The solution you'd like
Port https://github.com/ChilliCream/hotchocolate/pull/5175 to v13
Product
Hot Chocolate

This one is merged


SAK-38381 - Ensure color is not sole method of selection on high take 2

Followup on #5772. It looks like the border-left was causing an issue with high contrast, making the bar go all the way down the side without any indication of selection.

Side by sides of the before and after for both high contrast and regular contrast. Regular looks identical to me but a big difference on high.

Screenshots taken with MIcrosoft Edge on Windows 10 using the OS native High Contrast mode.


[BugFix]Fix unrecognize database name with uppercase in udf Function…

…ame (#22631)

Signed-off-by: liuzhongjun89<EMAIL_ADDRESS>Fixes #issue
What type of PR is this:

[ ] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto-backported to the target branch

[ ] 3.1
[ ] 3.0
[ ] 2.5
[ ] 2.4

[FE PR Coverage Check]
:disappointed: fail : 0 / 1 (00.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/analysis/FunctionName.java
0
1
00.00%
[58]


python312Packages.marimo: 0.8.15 -> 0.8.18

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.marimo is: Reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps
meta.homepage for python312Packages.marimo is: https://github.com/marimo-team/marimo
meta.changelog for python312Packages.marimo is: https://github.com/marimo-team/marimo/releases/tag/0.8.18
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.8.18 with grep in /nix/store/9mlsv8r48hgl3gn9ipxyiwxplw17c5la-python3.12-marimo-0.8.18
found 0.8.18 in filename of file in /nix/store/9mlsv8r48hgl3gn9ipxyiwxplw17c5la-python3.12-marimo-0.8.18

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

4 package rebuild(s)

First fifty rebuilds by attrpath

marimo
python311Packages.marimo
python312Packages.marimo

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9mlsv8r48hgl3gn9ipxyiwxplw17c5la-python3.12-marimo-0.8.18 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.marimo https://github.com/r-ryantm/nixpkgs/archive/197ca79a3cc9a85033efba153ea1786dc0a3e892.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/197ca79a3cc9a85033efba153ea1786dc0a3e892#python312Packages.marimo

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9mlsv8r48hgl3gn9ipxyiwxplw17c5la-python3.12-marimo-0.8.18
ls -la /nix/store/9mlsv8r48hgl3gn9ipxyiwxplw17c5la-python3.12-marimo-0.8.18/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

4 packages built:

marimo (python312Packages.marimo)
marimo.dist (python312Packages.marimo.dist)
python311Packages.marimo
python311Packages.marimo.dist

Maintainer pings
cc @akshayka @dmadisetti for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

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

Result of nixpkgs-review pr 343469 at 197ca79a run on aarch64-darwin 1

:white_check_mark: 2 packages built:

marimo (python312Packages.marimo)
python311Packages.marimo


Bootstrap form inputs are too tall

Here is the sample page with bootstrap enabled.
---
layout: page
title: Contact
permalink: /contact/
bootstrap: true
---

<form name="contact" netlify>

        Name
        <input type="text" class="form-control" id="name" placeholder="Your name">

        Email
        <input type="email" class="form-control" id="email" placeholder="Your email">

        Subject
        <input type="text" class="form-control" id="subject" placeholder="Message subject">

        Message
        <textarea class="form-control" id="message" rows="3" placeholder="Your message"></textarea>

    <button type="submit" class="btn btn-primary">Send</button>
</form>

The temporary fix for me right now is to add a style override to the page:

The style is retrieved from the bootstrap page: https://getbootstrap.com/docs/4.3/components/forms/

That's strange, because it should be the official CSS. I'll check if there's an issue with the file. :wink:

I pushed the newest version of bootstrap, let me know if you still have the problem

Thanks! I'll check it out tonight.

Looks good now.


Type.GetType() ignores assembly version in type name

Description
When calling System.Type.GetType() from an NUnit test, the method will successfully return the named type, even if the version in the specified assembly qualified name does not match.
For example,
Type.GetType("MyUtilities.Class1, MyUtilities, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null", throwOnError: false)

will return the Class1 type, even though the version of the MyUtilities assembly is 1.0.0, not 1.1.0
When I evaluate the same expression from a console application, the method will return null as expected.
This issue is preventing me from creating a test that fails when an assembly qualified name cannot be resolved due to a version mismatch.
Steps to reproduce

In a new solution, create a .NET Core Class Library named "MyUtilities"
Add a new NUnit test project to the solution.
Add a project reference to "MyUtilities" to the test solution.
Add the following test:

namespace TestProject1;

[TestFixture]
internal class TestGetType
{
    [Test]
    public void Test()
    {
        Assert.IsNotNull(Type.GetType("MyUtilities.Class1, MyUtilities, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null", throwOnError: false));
        Assert.IsNull(Type.GetType("MyUtilities.Class1, MyUtilities, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null", throwOnError: false));
    }
}

Run the test by executing the following command from the command line:
dotnet test TestProject1

Expected behavior
The above test should pass.
Actual behavior
The test fails since the second Type.GetType() call erroneously returns the type.
Diagnostic logs
log.txt
log.host.23-02-02_12-38-48_10956_5.txt
Environment
OS: Windows 10 Enterprise, 10.0.19045 Build 19045
dotnet --version: 7.0.100
dotnet test --version: <IP_ADDRESS>802
Microsoft.NET.Test.Sdk package version: 17.4.1

Can you try the same code with XUnit or MSTest? Do you have the same result?
Test platform and test adapters usually implements custom assembly resolver, so it's possible that the version is not checked in this chain of resolvers.
If you confirm the same behavior for the other two brothers it's possible that the fallback to the test platform is wrongly loading, but we never had issue like that for what I know.
@nohwnd for more advice.

I tried the same code in an xUnit and an MSTest project and got the same result in both cases.

We do register AssemblyLoadContext.Resolve, but there is no way to opt out. Maybe creating a new AssemblyLoadContext. I am wondering what is the goal of this test? What are you trying to prove? The version of the assembly?

The test in question was added in response to a bug in a program. The program would read a fully qualified type name from a file and try to load the type using Type.GetType(). This was causing an exception because the loaded assembly had a different version from that specified in the fully qualified name.
In the spirit of TDD, I added a test to replicate the bug, expecting the test to fail. However, it didn't fail due to the issue at hand. Not only did this prevent me from following a strict test-driven process, but it is evident that if the program code which exhibited the bug (but is now fixed) were to regress at some point in future, the test will not necessarily fail to point out the bug.


[Release] v2.0.0

Epic containing all the work items leading up to v2 release.
Must Haves:

[x] Create v2 label for GitHub issues feeding into v2
[x] Create beta branch to contain this work
[x] Update semantic release to publish prerelease from beta - #276
[x] Update storybook deploy to support beta branch, consistent static url - #305
[x] Upgrade Carbon to v10, Update our components #154
[x] Consolidate our components with Carbon variants - #369
[x] Provide wrapper components for all Carbon react components, #355
[x] Update to Carbon v10.4 - #436
[ ] Merge updates from master into beta - #437

Nice To Haves:

[ ] Align Components to Patterns -  #354
[x] Theme Storybook for consistent branding - #309
[ ] Dashboard/monitoring components updated to support Carbon v10 - #306

These are unlikely to be migrated before other updates have been made. They're currently experimental and baked with Carbon v9. Without the update, these components will likely not be included in the initial v2 release although we can upgrade them at any point thereafter. Existing development requirements can continue to be delivered to the v.1.x release

[ ] Unify Layout, Spacing, and Color to Carbon Tokens #303
[ ] Refactor styling approach from styled-components to scss to align with Carbon - #370

~- [ ] Migrate WIoT Theme file to this library - #332~

Items to accomplish during or shortly after the release:

[ ] Update links in the readme, no need to point to beta branch anymore.
[ ] Create v1.x maintenance branch - review semantic release documentation to ensure we config this properly
[ ] Create a v1 label, add this label to all current issues open for the v1 workstream.
[ ] Update issue template to ask submitter for the version of the lib they're opening an issue against
[ ] Any other beta-specific things we need to update?

:tada: This issue has been resolved in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Start, End events should occur simultaneously in order as a result of a Transition

When a Transition is managed by a StateGroup, the StateGroup should call the child State End, then the destination Start within the same cycle.
This would allow for more immediate effects of a Transition when observing the overall system. Technically, this could be seen as separating the Start, End events from traditional state, as they now may overlap.
This would be helpful where the client expects immediate Start evaluation after a Transition succeeds.
Current Behavior in Update Loop
Cycle (Update)

Start State 1
Update State 1

Cycle

Update State 1

Transition Succeeds to State 2

End State 1

Cycle

Start State 2
Update State 2

Proposed Behavior
Cycle (Update)

Start State 1
Update State 1

Cycle

Update State 1

Transition Succeeds to State 2

End State 1
Start State 2

Cycle

Update State 2

An example of this paraphrased, when Start is important for marking the State as officially "entered".
var fsm = new StateGroup();
var current = new State();
var dest = new State(
  start: () => isInDestState = true,
  end: () => isInDestState = false,
);

current.AddTransition(() => transitionToDestState, dest);
fsm.Entry = current;
fsm.Start();

transitionToDestState = true;
// Update once to complete current state
fsm.Update();
// Evaluates to false, which can be confusing despite being sensible based on FSM behavior
IsTrue(isInDestState);
// Update again to Start the dest state
fsm.Update();
// Evaluates to true
IsTrue(isInDestState);

An alternative to this would be a way to determine which State is Queued up or current in the StateGroup or entire FSM. Eliminate reliance upon manual State tracking within State events as in the example. Possible?


More improvements for check-runtime script

Description of proposed changes:
Practical tips for PR review & merge:

[ ] All GitHub Actions report PASS
[ ] Newly added code/functions have unit tests

[ ] Coverage tools report all newly added lines as covered
[ ] The positive scenario is exercised
[ ] Negative scenarios are exercised, e.g. assert on all possible errors
[ ] Assert on events triggered if applicable
[ ] Assert on changes made to storage if applicable

[ ] Modified behavior/functions - try to make sure above test items are covered
[ ] Integration tests are added if applicable/needed

Codecov Report

Merging #606 (75f4cc5) into dev (d109e40) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 75f4cc5 differs from pull request most recent head 448859c. Consider uploading reports for the commit 448859c to get more accurate results

@@           Coverage Diff           @@
##              dev     #606   +/-   ##
=======================================
  Coverage   79.27%   79.27%
=======================================
  Files          46       46
  Lines        8748     8748
=======================================
  Hits         6935     6935
  Misses       1813     1813

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Running locally against #582 produces correct result:
$ ./scripts/check-version.sh dev remotes/origin/dependabot/cargo/sha2-0.10.5
++ git rev-parse dev
+ FROM=4d16305a02fe82385fae6d131caebe3d26ca8cb0
++ git rev-parse remotes/origin/dependabot/cargo/sha2-0.10.5
+ TO=68bd4de2dd0feae3c8a549675f17fe11ec88f39f
+ greenprint 'DEBUG: Inspecting range 4d16305a02fe82385fae6d131caebe3d26ca8cb0..68bd4de2dd0feae3c8a549675f17fe11ec88f39f'
++ date -Isecond
+ echo -e '\033[1;32m[2022-09-13T14:30:46+00:00] DEBUG: Inspecting range 4d16305a02fe82385fae6d131caebe3d26ca8cb0..68bd4de2dd0feae3c8a549675f17fe11ec88f39f\033[0m'
[2022-09-13T14:30:46+00:00] DEBUG: Inspecting range 4d16305a02fe82385fae6d131caebe3d26ca8cb0..68bd4de2dd0feae3c8a549675f17fe11ec88f39f
+ '[' -z 4d16305a02fe82385fae6d131caebe3d26ca8cb0 ']'
+ '[' -z 68bd4de2dd0feae3c8a549675f17fe11ec88f39f ']'
+ git --no-pager diff --name-only 4d16305a02fe82385fae6d131caebe3d26ca8cb0...68bd4de2dd0feae3c8a549675f17fe11ec88f39f
+ grep -e '^runtime'
+ greenprint 'INFO: runtime/src/ didn'\''t change. Will inspect Cargo.lock'
++ date -Isecond
+ echo -e '\033[1;32m[2022-09-13T14:30:46+00:00] INFO: runtime/src/ didn'\''t change. Will inspect Cargo.lock\033[0m'
[2022-09-13T14:30:46+00:00] INFO: runtime/src/ didn't change. Will inspect Cargo.lock
+ git --no-pager diff 4d16305a02fe82385fae6d131caebe3d26ca8cb0...68bd4de2dd0feae3c8a549675f17fe11ec88f39f Cargo.lock
+ grep '+source = "git+https://github.com/gluwa/substrate.git'
+ greenprint 'INFO: Cargo.lock references to Substrate did not change'
++ date -Isecond
+ echo -e '\033[1;32m[2022-09-13T14:30:46+00:00] INFO: Cargo.lock references to Substrate did not change\033[0m'
[2022-09-13T14:30:46+00:00] INFO: Cargo.lock references to Substrate did not change

Running against a partial commit range from #285 which changed substrate references (but not version) results in FAIL as expected:
./scripts/check-version.sh 676616a6e031cbfae8b257727fea2c5096b183d1  7e5ab0bc485fa4fa4eb7984428b083caf1d541a0
++ git rev-parse 676616a6e031cbfae8b257727fea2c5096b183d1
+ FROM=676616a6e031cbfae8b257727fea2c5096b183d1
++ git rev-parse 7e5ab0bc485fa4fa4eb7984428b083caf1d541a0
+ TO=7e5ab0bc485fa4fa4eb7984428b083caf1d541a0
+ greenprint 'DEBUG: Inspecting range 676616a6e031cbfae8b257727fea2c5096b183d1..7e5ab0bc485fa4fa4eb7984428b083caf1d541a0'
++ date -Isecond
+ echo -e '\033[1;32m[2022-09-13T14:32:37+00:00] DEBUG: Inspecting range 676616a6e031cbfae8b257727fea2c5096b183d1..7e5ab0bc485fa4fa4eb7984428b083caf1d541a0\033[0m'
[2022-09-13T14:32:37+00:00] DEBUG: Inspecting range 676616a6e031cbfae8b257727fea2c5096b183d1..7e5ab0bc485fa4fa4eb7984428b083caf1d541a0
+ '[' -z 676616a6e031cbfae8b257727fea2c5096b183d1 ']'
+ '[' -z 7e5ab0bc485fa4fa4eb7984428b083caf1d541a0 ']'
+ git --no-pager diff --name-only 676616a6e031cbfae8b257727fea2c5096b183d1...7e5ab0bc485fa4fa4eb7984428b083caf1d541a0
+ grep -e '^runtime'
runtime/Cargo.toml
+ greenprint 'INFO: runtime/src/ has been modified'
++ date -Isecond
+ echo -e '\033[1;32m[2022-09-13T14:32:37+00:00] INFO: runtime/src/ has been modified\033[0m'
[2022-09-13T14:32:37+00:00] INFO: runtime/src/ has been modified
+ check_version 676616a6e031cbfae8b257727fea2c5096b183d1 7e5ab0bc485fa4fa4eb7984428b083caf1d541a0
+ from=676616a6e031cbfae8b257727fea2c5096b183d1
+ to=7e5ab0bc485fa4fa4eb7984428b083caf1d541a0
+ git --no-pager diff 676616a6e031cbfae8b257727fea2c5096b183d1...7e5ab0bc485fa4fa4eb7984428b083caf1d541a0
+ grep '^diff --git'
+ grep runtime/src/version.rs
+ greenprint 'FAIL: version.rs was not modified!'
++ date -Isecond
+ echo -e '\033[1;32m[2022-09-13T14:32:37+00:00] FAIL: version.rs was not modified!\033[0m'
[2022-09-13T14:32:37+00:00] FAIL: version.rs was not modified!
+ exit 1

Running against a larger commit range where version.rs was updated results in PASS as expected:
./scripts/check-version.sh 676616a6e031cbfae8b257727fea2c5096b183d1  dev
++ git rev-parse 676616a6e031cbfae8b257727fea2c5096b183d1
+ FROM=676616a6e031cbfae8b257727fea2c5096b183d1
++ git rev-parse dev
+ TO=4d16305a02fe82385fae6d131caebe3d26ca8cb0
+ greenprint 'DEBUG: Inspecting range 676616a6e031cbfae8b257727fea2c5096b183d1..4d16305a02fe82385fae6d131caebe3d26ca8cb0'
++ date -Isecond
+ echo -e '\033[1;32m[2022-09-13T14:34:59+00:00] DEBUG: Inspecting range 676616a6e031cbfae8b257727fea2c5096b183d1..4d16305a02fe82385fae6d131caebe3d26ca8cb0\033[0m'
[2022-09-13T14:34:59+00:00] DEBUG: Inspecting range 676616a6e031cbfae8b257727fea2c5096b183d1..4d16305a02fe82385fae6d131caebe3d26ca8cb0
+ '[' -z 676616a6e031cbfae8b257727fea2c5096b183d1 ']'
+ '[' -z 4d16305a02fe82385fae6d131caebe3d26ca8cb0 ']'
+ git --no-pager diff --name-only 676616a6e031cbfae8b257727fea2c5096b183d1...4d16305a02fe82385fae6d131caebe3d26ca8cb0
+ grep -e '^runtime'
runtime/Cargo.toml
runtime/src/lib.rs
runtime/src/tests.rs
runtime/src/version.rs
+ greenprint 'INFO: runtime/src/ has been modified'
++ date -Isecond
+ echo -e '\033[1;32m[2022-09-13T14:34:59+00:00] INFO: runtime/src/ has been modified\033[0m'
[2022-09-13T14:34:59+00:00] INFO: runtime/src/ has been modified
+ check_version 676616a6e031cbfae8b257727fea2c5096b183d1 4d16305a02fe82385fae6d131caebe3d26ca8cb0
+ from=676616a6e031cbfae8b257727fea2c5096b183d1
+ to=4d16305a02fe82385fae6d131caebe3d26ca8cb0
+ git --no-pager diff 676616a6e031cbfae8b257727fea2c5096b183d1...4d16305a02fe82385fae6d131caebe3d26ca8cb0
+ grep '^diff --git'
+ grep runtime/src/version.rs
diff --git a/runtime/src/version.rs b/runtime/src/version.rs
+ greenprint 'PASS: version.rs was modified!'
++ date -Isecond
+ echo -e '\033[1;32m[2022-09-13T14:35:00+00:00] PASS: version.rs was modified!\033[0m'
[2022-09-13T14:35:00+00:00] PASS: version.rs was modified!

This is ready for review!


How can I wrap iconv_t in boost::scope::unique_resource in just one line?

I try to do this:
using unique_iconv_t = boost::scope::unique_resource<iconv_t, boost::core::functor<iconv_close>, boost::scope::unallocated_resource<(iconv_t)(-1)>>;
unique_iconv_t cd(iconv_open("WCHAR_T//IGNORE", "UTF8"));

But the compiler gives:
error: ‘-1’ is not a valid template argument for ‘void*’ because it is not the address of a variable

Must I define my own trait class to solve this? Is there a simpler way to write this?

Yes, it looks like you have to define resource traits in this case.

In C++20 you could work around it with something like this:
struct invalid_iconv
{
    operator iconv_t() const noexcept
    {
        return (iconv_t)(-1);
    }
};

using unique_iconv_t = boost::scope::unique_resource<iconv_t, boost::core::functor<iconv_close>, boost::scope::unallocated_resource<invalid_iconv{}>>;

but this is a hack and is not much shorter code than the proper resource traits.

Could it be that MSVC is more permissive than GCC?

Apparently so. You can see in this CI run that MSVC succeeded but clang and gcc on Windows failed to compile this code.
Looks like I should remove the INVALID_HANDLE_VALUE example from the docs, or at least note that this code only works on MSVC.

Got it, thank you.


Project status

I am researching a project idea I have that would be using wasm, and either racket or a simpler scheme that takes a lot from racket. I imagine even if this project is dead, you might have some advice that would be useful to me. Or maybe schism is an appropriate tool. Thoughts? edit: basically I want to know if it's reasonable to cram an entire racket development environment into a web browser.

@bluepapaya77 Email Matthew Flatt from Racket and Marc Feeley from Gambit Scheme (you'll find their addresses on their university pages). Ask each a one-liner on the prospects of hosting a Racket or Scheme IDE on wasm. They will be able to give you pointers to existing work, and an outline for future work.
I'm not familiar with the internals of Schism or Racket, but AFAICT Racket started off from the R6RS Scheme standard which Schism targets. That would make Schism a good foundation for such work.

Thank you so much for including the suggestion of how to ask politely. I'm new at this. :)

@lassik Thank you so much for including the suggestion of how to ask politely. I'm new at this. :)

@bluepapaya77 I'm interested in this too. Did you find anything useful? Thanks a lot!

@glyh I didn't follow up on my idea very far, but I did email Professors Flatt and Feeley. Neither had much they knew of in this area. Do you have something specific in mind you want to do? I'd be interested in picking this trail back up.

I would like to write lisps to extend softwares that supports/will support WASM plugin systems(ideally via lisp compiled to WASM rather than lisp interpreter running inside WASM). Till now I didn't find a working solution. Schism is somehow broken, and I didn't find documents or how should I get it working.

I'm afraid I hit a similar wall last summer when I started this thread. If you get anywhere I'd love to know. Sorry that's no help. :(

Nevermind, thanks for your reply!

There's still active interest on this topic, but yet not a lot of research/development being done on this area.

Sorry to open an old thread, but have you guys hear about Hoot? It is a guile scheme to wasm compiler and runtime that's pretty active and has some real projects working on top of it like games.


A couple of gui screen fixups, as well as a bug fix

rather than try and derive a current gui screen, pass the one we get
from OnTickInGUI around instead. This means we are always using a valid
GUI when we have one at all, and we can drop a lot of the "is it this or
that" testing. InvTweaksContainerManager is now 100% responsible for
deciding if it's a valid GUI as well as extracting slot sections.
This means shift click to furnaces, custom inventories, other stuff all works, as does up click and down click.
Additionally fixed click in certain scenarios- you forgot to check
the result of the container.move method and can end up stuck in an
infinite loop.

I just made the changes for the potential infinite loop, thanks! (soon to be pushed)
Regarding the GUI screen changes, I'd prefer to make it in a slightly different way, for 2 reasons:

I intend to let the ContainerManager be part of an "Inventory API" at some point (it's almost ready for use actually, I mainly need to make some documentation and publish it somewhere). Rather than using parameters everywhere, it feels better to let my ContainerManager do the job of fetching the GUI, rather than risking user mistakes.

More importantly, it was a choice to be quite restrictive on which GUI is allowed and which one is not. While my code certainly deserves some refactoring, it's better to use a whitelist rather than just casting the GUI, because there will always be a mod to find a way to break InvTweaks. (Actually this was suggested first by the Millénaire's mod author, who kept receiving bug reports involving InvTweaks ^^)


Empty alert message in alert table for most bundled alerts

Setup

Rancher version: 2.6.3
Browser type & version: Chrome

Describe the bug
The alert table on the cluster dashboard and on the monitoring dashboard shows an empty for most of the alerts that are bundled with rancher-monitoring.
To Reproduce
Install rancher-monitoring
Result
The message column in the alert table is empty for most of the alerts, including the Watchdog alert which is always firing.
Expected Result
The message column is populated with the alert message.
Screenshots

Additional context
The UI looks for the message in a message annotation on the firing alert.
From the alerts bundled with rancher-monitoring only 13 contain a message annotation, 111 have the alert message in a description annotation.
❯ kubectl get prometheusrules -A -o yaml | grep message: | wc -l
13

❯ kubectl get prometheusrules -A -o yaml | grep description: | wc -l
111

This is probably broken due to the model changes - @richard-cox can hep you here.

I don't think it's due to a model change. Annotations in PrometheusRules are not really standardised. Some use the message annotation for a human readable alert message, a lot use description. Prometheus/Alertmanage just return all annotations defined in the PrometheusRules for firing alerts.

@aalves08 Sorry - there's a PR up for this already - can you review and merge as appropriate - https://github.com/rancher/dashboard/pull/4884

Connected to PR https://github.com/rancher/dashboard/pull/4884 which fixes this issue.

PASS Verified in 2.6-head Commit ID da382a8

Install rancher monitoring
check Active Alerts on Monitoring page

Fix in 2.6-head

Issue as filed, reproduced in 2.6.3


Add an argument to be able to provide the model that will be used to make the predictions (LR or GBM)

a1ffecd524f7bf7c19d8f6e134f0dceea58ac7db


Change comments around indexing

The page on Selecting with Indexing currently states:
Indexing polars with square brackets is considered an anti-pattern and the functionality may be removed in the future. Polars strongly favours the expression API with select and filter in favor of accessing by square bracket indexing. See the introduction to this section for more information.
This is clearly creating confusion among users.

There are no plans to remove [] so the comment on it being removed should itself be removed
We should explain when to use and not to use indexing

I'm happy to make these changes.
@ritchie46   would you review when ready?

Yes!

We should explain when to use and not to use indexing

When is indexing recommended?


Add built-in help

Add a built-in users guidebook.

This is related to Add input syntax help to the context menu #103.


test-branch/execute-job/wrong-commit-sha-on-pr/399256a0-43ef-4a28-ade4-44c977492c62

PR for testing 8811c132855679b841574d4a36db7530ddc21fec

/canonical/self-hosted-runners/run-workflows 931ad21dd9ace68aaa0a7d341e94de96ad93fa6b


feat(optional): split package optional into optval and optpair

BREAKING CHANGE: optional package is no longer available

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

Project coverage is 100.00%. Comparing base (0b4afa9) to head (d9cfeb4).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #11   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines          168       168
=========================================
  Hits           168       168

Flag
Coverage Δ

optional
100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

coverage: 100.0%. remained the same
when pulling d9cfeb4ad6d961eafc94941b0fba2971df6dbbdc on feature/optional
into 0b4afa9d720a1a18820c4b4878b70cc8012cb0dc on main.


Add rustfmt into CI workflow

This Pull Request solves #287
@lpil is this enough or do you have something else in mind?

Hmm... It's not running the build on this PR. Could you try adding pull_request to the on array


Handle web3 errors on view commands

commands like checkBalance also generate exceptions specifically in updateAll.js
catch exceptions and log.warn
example issue:
https://sentry.io/organizations/gooddollar/issues/1571797650/?project=1829798
find all places where view methods

Errors are handled
Checked on DEV V0.22.0
Desktop: Windows 10 // Google Chrome 83.0.4103.61


[Feature Request] Default config?

Is your feature request related to a problem? Please describe.
Users can see tps in the tab directly without issue server command /tabtps toggle tab
Describe the solution you'd like
User config are stored at plugins/TabTPS/userdata/*.json and it looks like:
{
  "tabDisplayHandler": {
    "enabled": true
  },
  "actionBarDisplayHandler": {
    "enabled": false
  },
  "bossBarDisplayHandler": {
    "enabled": false
  }

I can set a default value for it, so new users doesn't need to issue the command to enable it.
Describe alternatives you've considered
add a option to let me set DefaultTabDisplay=True

Oh, it placed in plugins/TabTPS/display-configs/default.conf.


Android/snippets/blob#L1-L783

https://github.com/android/snippets/blob/cf682eb855fef5e0117954ae8c80f1f8b622719b/compose%2Fsnippets%2Fsrc%2Fmain%2Fjava%2Fcom%2Fexample%2Fcompose%2Fsnippets%2Fanimations%2FAnimationSnippets.kt#L1-L783
/*

Copyright 2023 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

@file:Suppress("CanBeVal", "UNUSED_VARIABLE", "UNUSED_PARAMETER", "unused")
package com.example.compose.snippets.animations
import androidx.compose.animation.Animatable
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.Crossfade
import androidx.compose.animation.EnterExitState
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.compose.animation.SizeTransform
import androidx.compose.animation.animateColor
import androidx.compose.animation.animateContentSize
import androidx.compose.animation.core.AnimationVector1D
import androidx.compose.animation.core.AnimationVector2D
import androidx.compose.animation.core.Easing
import androidx.compose.animation.core.ExperimentalTransitionApi
import androidx.compose.animation.core.FastOutLinearInEasing
import androidx.compose.animation.core.FastOutSlowInEasing
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.LinearOutSlowInEasing
import androidx.compose.animation.core.MutableTransitionState
import androidx.compose.animation.core.RepeatMode
import androidx.compose.animation.core.Spring
import androidx.compose.animation.core.TargetBasedAnimation
import androidx.compose.animation.core.Transition
import androidx.compose.animation.core.TwoWayConverter
import androidx.compose.animation.core.VectorConverter
import androidx.compose.animation.core.animateDp
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.animateRect
import androidx.compose.animation.core.animateValueAsState
import androidx.compose.animation.core.createChildTransition
import androidx.compose.animation.core.infiniteRepeatable
import androidx.compose.animation.core.keyframes
import androidx.compose.animation.core.rememberInfiniteTransition
import androidx.compose.animation.core.repeatable
import androidx.compose.animation.core.snap
import androidx.compose.animation.core.spring
import androidx.compose.animation.core.tween
import androidx.compose.animation.core.updateTransition
import androidx.compose.animation.expandVertically
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi
import androidx.compose.animation.graphics.res.animatedVectorResource
import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter
import androidx.compose.animation.graphics.vector.AnimatedImageVector
import androidx.compose.animation.shrinkVertically
import androidx.compose.animation.slideInVertically
import androidx.compose.animation.slideOutVertically
import androidx.compose.animation.with
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.sizeIn
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Button
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.Icon
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Phone
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.State
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.runtime.withFrameNanos
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Rect
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp
import com.example.compose.snippets.R
/*

Copyright 2023 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
@Preview
@Composable
private fun AnimatedVisibilitySample() {
// [START android_compose_animations_animated_visibility]
var editable by remember { mutableStateOf(true) }
AnimatedVisibility(visible = editable) {
Text(text = "Edit")
}
// [END android_compose_animations_animated_visibility]
}

@Preview
@Composable
private fun AnimatedVisibilityWithEnterAndExit() {
// [START android_compose_animations_animated_visibility_enter_exit]
var visible by remember { mutableStateOf(true) }
val density = LocalDensity.current
AnimatedVisibility(
visible = visible,
enter = slideInVertically {
// Slide in from 40 dp from the top.
with(density) { -40.dp.roundToPx() }
} + expandVertically(
// Expand from the top.
expandFrom = Alignment.Top
) + fadeIn(
// Fade in with the initial alpha of 0.3f.
initialAlpha = 0.3f
),
exit = slideOutVertically() + shrinkVertically() + fadeOut()
) {
Text("Hello", Modifier.fillMaxWidth().height(200.dp))
}
// [END android_compose_animations_animated_visibility_enter_exit]
}
@Preview
@Composable
private fun AnimatedVisibilityMutable() {
// [START android_compose_animations_animated_visibility_mutable]
// Create a MutableTransitionState for the AnimatedVisibility.
val state = remember {
MutableTransitionState(false).apply {
// Start the animation immediately.
targetState = true
}
}
Column {
AnimatedVisibility(visibleState = state) {
Text(text = "Hello, world!")
}
    // Use the MutableTransitionState to know the current animation state
    // of the AnimatedVisibility.
    Text(
        text = when {
            state.isIdle && state.currentState -> "Visible"
            !state.isIdle && state.currentState -> "Disappearing"
            state.isIdle && !state.currentState -> "Invisible"
            else -> "Appearing"
        }
    )
}
// [END android_compose_animations_animated_visibility_mutable]

}
@OptIn(ExperimentalAnimationApi::class)
@Composable
@Preview
private fun AnimatedVisibilityAnimateEnterExitChildren() {
// [START android_compose_animations_animated_visibility_animate_enter_exit_children]
var visible by remember { mutableStateOf(true) }
AnimatedVisibility(
    visible = visible,
    enter = fadeIn(),
    exit = fadeOut()
) {
    // Fade in/out the background and the foreground.
    Box(Modifier.fillMaxSize().background(Color.DarkGray)) {
        Box(
            Modifier
                .align(Alignment.Center)
                .animateEnterExit(
                    // Slide in/out the inner box.
                    enter = slideInVertically(),
                    exit = slideOutVertically()
                )
                .sizeIn(minWidth = 256.dp, minHeight = 64.dp)
                .background(Color.Red)
        ) {
            // Content of the notification…
        }
    }
}
// [END android_compose_animations_animated_visibility_animate_enter_exit_children]

}
@OptIn(ExperimentalAnimationApi::class)
@Preview
@Composable
private fun AnimatedVisibilityTransition() {
// [START android_compose_animations_animated_visibility_transition]
var visible by remember { mutableStateOf(true) }
AnimatedVisibility(
    visible = visible,
    enter = fadeIn(),
    exit = fadeOut()
) { // this: AnimatedVisibilityScope
    // Use AnimatedVisibilityScope#transition to add a custom animation
    // to the AnimatedVisibility.
    val background by transition.animateColor(label = "color") { state ->
        if (state == EnterExitState.Visible) Color.Blue else Color.Gray
    }
    Box(modifier = Modifier.size(128.dp).background(background))
}
// [END android_compose_animations_animated_visibility_transition]

}
@Composable
@Preview
private fun AnimateAsStateSimple() {
// [START android_compose_animations_animate_as_state]
var enabled by remember { mutableStateOf(true) }
val alpha: Float by animateFloatAsState(if (enabled) 1f else 0.5f)
Box(
    Modifier.fillMaxSize()
        .graphicsLayer(alpha = alpha)
        .background(Color.Red)
)
// [END android_compose_animations_animate_as_state]

}
@OptIn(ExperimentalAnimationApi::class)
@Preview
@Composable
private fun AnimatedContentSimple() {
// [START android_compose_animations_animated_content_simple]
Row {
var count by remember { mutableStateOf(0) }
Button(onClick = { count++ }) {
Text("Add")
}
AnimatedContent(targetState = count) { targetCount ->
// Make sure to use targetCount, not count.
Text(text = "Count: $targetCount")
}
}
// [END android_compose_animations_animated_content_simple]
}
@OptIn(ExperimentalAnimationApi::class)
@Composable
private fun AnimatedContentTransitionSpec(count: Int) {
// [START android_compose_animations_animated_content_transition_spec]
AnimatedContent(
targetState = count,
transitionSpec = {
// Compare the incoming number with the previous number.
if (targetState > initialState) {
// If the target number is larger, it slides up and fades in
// while the initial (smaller) number slides up and fades out.
slideInVertically { height -> height } + fadeIn() with
slideOutVertically { height -> -height } + fadeOut()
} else {
// If the target number is smaller, it slides down and fades in
// while the initial number slides down and fades out.
slideInVertically { height -> -height } + fadeIn() with
slideOutVertically { height -> height } + fadeOut()
}.using(
// Disable clipping since the faded slide-in/out should
// be displayed out of bounds.
SizeTransform(clip = false)
)
}
) { targetCount ->
Text(text = "$targetCount")
}
// [END android_compose_animations_animated_content_transition_spec]
}
@OptIn(ExperimentalAnimationApi::class, ExperimentalMaterialApi::class)
@Composable
private fun AnimatedContentSizeTransform() {
// [START android_compose_animations_animated_content_size_transform]
var expanded by remember { mutableStateOf(false) }
Surface(
color = MaterialTheme.colorScheme.primary,
onClick = { expanded = !expanded }
) {
AnimatedContent(
targetState = expanded,
transitionSpec = {
fadeIn(animationSpec = tween(150, 150)) with
fadeOut(animationSpec = tween(150)) using
SizeTransform { initialSize, targetSize ->
if (targetState) {
keyframes {
// Expand horizontally first.
IntSize(targetSize.width, initialSize.height) at 150
durationMillis = 300
}
} else {
keyframes {
// Shrink vertically first.
IntSize(initialSize.width, targetSize.height) at 150
durationMillis = 300
}
}
}
}
) { targetExpanded ->
if (targetExpanded) {
Expanded()
} else {
ContentIcon()
}
}
}
// [END android_compose_animations_animated_content_size_transform]
}
@Composable
private fun AnimateContentSizeSimple() {
// [START android_compose_animations_animated_content_size_modifier_simple]
var message by remember { mutableStateOf("Hello") }
Box(
modifier = Modifier.background(Color.Blue).animateContentSize()
) { Text(text = message) }
// [END android_compose_animations_animated_content_size_modifier_simple]
}
@Composable
private fun CrossfadeSimple() {
// [START android_compose_animations_crossfade_simple]
var currentPage by remember { mutableStateOf("A") }
Crossfade(targetState = currentPage) { screen ->
when (screen) {
"A" -> Text("Page A")
"B" -> Text("Page B")
}
}
// [END android_compose_animations_crossfade_simple]
}
private object UpdateTransitionEnumState {
// [START android_compose_animations_transitions_box_state]
enum class BoxState {
Collapsed,
Expanded
}
// [END android_compose_animations_transitions_box_state]
@Composable
private fun UpdateTransitionInstance() {
    // [START android_compose_animations_transitions_instance]
    var currentState by remember { mutableStateOf(BoxState.Collapsed) }
    val transition = updateTransition(currentState, label = "box state")
    // [END android_compose_animations_transitions_instance]
}

@Composable
private fun UpdateTransitionAnimationValues(transition: Transition<BoxState>) {
    // [START android_compose_animations_transitions_values]
    val rect by transition.animateRect(label = "rectangle") { state ->
        when (state) {
            BoxState.Collapsed -> Rect(0f, 0f, 100f, 100f)
            BoxState.Expanded -> Rect(100f, 100f, 300f, 300f)
        }
    }
    val borderWidth by transition.animateDp(label = "border width") { state ->
        when (state) {
            BoxState.Collapsed -> 1.dp
            BoxState.Expanded -> 0.dp
        }
    }
    // [END android_compose_animations_transitions_values]
}

@Composable
private fun UpdateTransitionTransitionSpec(transition: Transition<BoxState>) {
    // [START android_compose_animations_transitions_spec]
    val color by transition.animateColor(
        transitionSpec = {
            when {
                BoxState.Expanded isTransitioningTo BoxState.Collapsed ->
                    spring(stiffness = 50f)
                else ->
                    tween(durationMillis = 500)
            }
        }, label = "color"
    ) { state ->
        when (state) {
            BoxState.Collapsed -> MaterialTheme.colorScheme.primary
            BoxState.Expanded -> MaterialTheme.colorScheme.background
        }
    }
    // [END android_compose_animations_transitions_spec]
}

@Composable
private fun UpdateTransitionMutableTransitionState() {
    // [START android_compose_animations_transitions_state]
    // Start in collapsed state and immediately animate to expanded
    var currentState = remember { MutableTransitionState(BoxState.Collapsed) }
    currentState.targetState = BoxState.Expanded
    val transition = updateTransition(currentState, label = "box state")
    // ……
    // [END android_compose_animations_transitions_state]
}

}
@OptIn(ExperimentalTransitionApi::class)
private object UpdateTransitionCreateChildTransition {
// [START android_compose_animations_transitions_dialer_example]
enum class DialerState { DialerMinimized, NumberPad }

@Composable
fun DialerButton(isVisibleTransition: Transition<Boolean>) {
    // `isVisibleTransition` spares the need for the content to know
    // about other DialerStates. Instead, the content can focus on
    // animating the state change between visible and not visible.
}

@Composable
fun NumberPad(isVisibleTransition: Transition<Boolean>) {
    // `isVisibleTransition` spares the need for the content to know
    // about other DialerStates. Instead, the content can focus on
    // animating the state change between visible and not visible.
}

@Composable
fun Dialer(dialerState: DialerState) {
    val transition = updateTransition(dialerState, label = "dialer state")
    Box {
        // Creates separate child transitions of Boolean type for NumberPad
        // and DialerButton for any content animation between visible and
        // not visible
        NumberPad(
            transition.createChildTransition {
                it == DialerState.NumberPad
            }
        )
        DialerButton(
            transition.createChildTransition {
                it == DialerState.DialerMinimized
            }
        )
    }
}
// [END android_compose_animations_transitions_dialer_example]

}
@OptIn(ExperimentalAnimationApi::class, ExperimentalMaterialApi::class)
@Composable
private fun UpdateTransitionAnimatedVisibility() {
// [START android_compose_animations_transitions_animated_visibility]
var selected by remember { mutableStateOf(false) }
// Animates changes when selected is changed.
val transition = updateTransition(selected, label = "selected state")
val borderColor by transition.animateColor(label = "border color") { isSelected ->
if (isSelected) Color.Magenta else Color.White
}
val elevation by transition.animateDp(label = "elevation") { isSelected ->
if (isSelected) 10.dp else 2.dp
}
Surface(
onClick = { selected = !selected },
shape = RoundedCornerShape(8.dp),
border = BorderStroke(2.dp, borderColor),
elevation = elevation
) {
Column(modifier = Modifier.fillMaxWidth().padding(16.dp)) {
Text(text = "Hello, world!")
// AnimatedVisibility as a part of the transition.
transition.AnimatedVisibility(
visible = { targetSelected -> targetSelected },
enter = expandVertically(),
exit = shrinkVertically()
) {
Text(text = "It is fine today.")
}
// AnimatedContent as a part of the transition.
transition.AnimatedContent { targetState ->
if (targetState) {
Text(text = "Selected")
} else {
Icon(imageVector = Icons.Default.Phone, contentDescription = "Phone")
}
}
}
}
// [END android_compose_animations_transitions_animated_visibility]
}
private object UpdateTransitionEncapsulating {
// [START android_compose_animations_transitions_encapsulating]
enum class BoxState { Collapsed, Expanded }
@Composable
fun AnimatingBox(boxState: BoxState) {
    val transitionData = updateTransitionData(boxState)
    // UI tree
    Box(
        modifier = Modifier
            .background(transitionData.color)
            .size(transitionData.size)
    )
}

// Holds the animation values.
private class TransitionData(
    color: State<Color>,
    size: State<Dp>
) {
    val color by color
    val size by size
}

// Create a Transition and return its animation values.
@Composable
private fun updateTransitionData(boxState: BoxState): TransitionData {
    val transition = updateTransition(boxState, label = "box state")
    val color = transition.animateColor(label = "color") { state ->
        when (state) {
            BoxState.Collapsed -> Color.Gray
            BoxState.Expanded -> Color.Red
        }
    }
    val size = transition.animateDp(label = "size") { state ->
        when (state) {
            BoxState.Collapsed -> 64.dp
            BoxState.Expanded -> 128.dp
        }
    }
    return remember(transition) { TransitionData(color, size) }
}
// [END android_compose_animations_transitions_encapsulating]

}
@Composable
private fun RememberInfiniteTransitionSimple() {
// [START android_compose_animations_infinite_transition_simple]
val infiniteTransition = rememberInfiniteTransition()
val color by infiniteTransition.animateColor(
initialValue = Color.Red,
targetValue = Color.Green,
animationSpec = infiniteRepeatable(
animation = tween(1000, easing = LinearEasing),
repeatMode = RepeatMode.Reverse
)
)
Box(Modifier.fillMaxSize().background(color))
// [END android_compose_animations_infinite_transition_simple]

}
@Composable
private fun AnimatableSimple(ok: Boolean) {
// [START android_compose_animations_animatable_simple]
// Start out gray and animate to green/red based on ok
val color = remember { Animatable(Color.Gray) }
LaunchedEffect(ok) {
color.animateTo(if (ok) Color.Green else Color.Red)
}
Box(Modifier.fillMaxSize().background(color.value))
// [END android_compose_animations_animatable_simple]
}
@Composable
private fun TargetBasedAnimationSimple(someCustomCondition: () -> Boolean) {
// [START android_compose_animations_target_based_animation_simple]
val anim = remember {
TargetBasedAnimation(
animationSpec = tween(200),
typeConverter = Float.VectorConverter,
initialValue = 200f,
targetValue = 1000f
)
}
var playTime by remember { mutableStateOf(0L) }
LaunchedEffect(anim) {
    val startTime = withFrameNanos { it }

    do {
        playTime = withFrameNanos { it } - startTime
        val animationValue = anim.getValueFromNanos(playTime)
    } while (someCustomCondition())
}
// [END android_compose_animations_target_based_animation_simple]

}
@Composable
private fun AnimationSpecTween(enabled: Boolean) {
// [START android_compose_animations_spec_tween]
val alpha: Float by animateFloatAsState(
targetValue = if (enabled) 1f else 0.5f,
// Configure the animation duration and easing.
animationSpec = tween(durationMillis = 300, easing = FastOutSlowInEasing)
)
// [END android_compose_animations_spec_tween]
}
@Composable
private fun AnimationSpecSpring() {
// [START android_compose_animations_spec_spring]
val value by animateFloatAsState(
targetValue = 1f,
animationSpec = spring(
dampingRatio = Spring.DampingRatioHighBouncy,
stiffness = Spring.StiffnessMedium
)
)
// [END android_compose_animations_spec_spring]
}
@Composable
private fun AnimationSpecTween() {
// [START android_compose_animations_spec_tween_delay]
val value by animateFloatAsState(
targetValue = 1f,
animationSpec = tween(
durationMillis = 300,
delayMillis = 50,
easing = LinearOutSlowInEasing
)
)
// [END android_compose_animations_spec_tween_delay]
}
@Composable
private fun AnimationSpecKeyframe() {
// [START android_compose_animations_spec_keyframe]
val value by animateFloatAsState(
targetValue = 1f,
animationSpec = keyframes {
durationMillis = 375
0.0f at 0 with LinearOutSlowInEasing // for 0-15 ms
0.2f at 15 with FastOutLinearInEasing // for 15-75 ms
0.4f at 75 // ms
0.4f at 225 // ms
}
)
// [END android_compose_animations_spec_keyframe]
}
@Composable
private fun AnimationSpecRepeatable() {
// [START android_compose_animations_spec_repeatable]
val value by animateFloatAsState(
targetValue = 1f,
animationSpec = repeatable(
iterations = 3,
animation = tween(durationMillis = 300),
repeatMode = RepeatMode.Reverse
)
)
// [END android_compose_animations_spec_repeatable]
}
@Composable
private fun AnimationSpecInfiniteRepeatable() {
// [START android_compose_animations_spec_infinite_repeatable]
val value by animateFloatAsState(
targetValue = 1f,
animationSpec = infiniteRepeatable(
animation = tween(durationMillis = 300),
repeatMode = RepeatMode.Reverse
)
)
// [END android_compose_animations_spec_infinite_repeatable]
}
@Composable
private fun AnimationSpecSnap() {
// [START android_compose_animations_spec_snap]
val value by animateFloatAsState(
targetValue = 1f,
animationSpec = snap(delayMillis = 50)
)
// [END android_compose_animations_spec_snap]
}
private object Easing {
// [START android_compose_animations_easing_usage]
val CustomEasing = Easing { fraction -> fraction * fraction }
@Composable
fun EasingUsage() {
    val value by animateFloatAsState(
        targetValue = 1f,
        animationSpec = tween(
            durationMillis = 300,
            easing = CustomEasing
        )
    )
    // ……
}
// [END android_compose_animations_easing_usage]

}
private object AnimationVectorTwoWayConverter {
// [START android_compose_animations_vector_convertor]
val IntToVector: TwoWayConverter<Int, AnimationVector1D> =
TwoWayConverter({ AnimationVector1D(it.toFloat()) }, { it.value.toInt() })
// [END android_compose_animations_vector_convertor]
}
private object AnimationVectorCustomType {
// [START android_compose_animations_vector_convertor_custom_type]
data class MySize(val width: Dp, val height: Dp)
@Composable
fun MyAnimation(targetSize: MySize) {
    val animSize: MySize by animateValueAsState(
        targetSize,
        TwoWayConverter(
            convertToVector = { size: MySize ->
                // Extract a float value from each of the `Dp` fields.
                AnimationVector2D(size.width.value, size.height.value)
            },
            convertFromVector = { vector: AnimationVector2D ->
                MySize(vector.v1.dp, vector.v2.dp)
            }
        )
    )
}
// [END android_compose_animations_vector_convertor_custom_type]

}
@OptIn(ExperimentalAnimationGraphicsApi::class)
@Preview
// [START android_compose_animations_vector_drawable]
@Composable
fun AnimatedVectorDrawable() {
val image = AnimatedImageVector.animatedVectorResource(R.drawable.ic_hourglass_animated)
var atEnd by remember { mutableStateOf(false) }
Image(
painter = rememberAnimatedVectorPainter(image, atEnd),
contentDescription = "Timer",
modifier = Modifier.clickable {
atEnd = !atEnd
},
contentScale = ContentScale.Crop
)
}
// [END android_compose_animations_vector_drawable]
@Composable
private fun Expanded() {
}
@Composable
private fun ContentIcon() {
}

#L1-L783


[FLINK-29504][rest] Add schema to jar upload content

Fixes an issue where no schema was defined for the jar upload content.

Verified by reporter in JIRA ticket.


Bug: Logger Timestamps Misaligned with Local Time

Expected Behaviour
The logger should emit records using local time timestamp by default as per docs.
Current Behaviour
logger emits records using utc timestamp when running in Australia/Sydney timezone
Code snippet
from aws_lambda_powertools import Logger
from aws_lambda_powertools.event_handler import APIGatewayRestResolver
from aws_lambda_powertools.logging import correlation_paths

logger = Logger(service="APP")

app = APIGatewayRestResolver()

@app.get("/hello")
def hello():
    logger.info("Request from unknown received")
    return {"message": "hello unknown!"}

@logger.inject_lambda_context(correlation_id_path=correlation_paths.API_GATEWAY_REST, log_event=True)
def lambda_handler(event, context):
    return app.resolve(event, context)

Possible Solution
No response
Steps to Reproduce
Run above lambda code snippet in Sydney region (ap-southeast-2).
Powertools for AWS Lambda (Python) version
latest
AWS Lambda function runtime
3.9
Packaging format used
Lambda Layers
Debugging logs
No response

Hey @hemanth-m19! Thanks for bringing up this unexpected behavior when using our Logger utility.
I was able to reproduce this error and indeed this should consider the localtime, but I have some considerations before we move forward:
1 - The default timezone in Lambda is UTC, it's means that doesn't matter the region the timezone always will be UTC. You can override the default timezone by setting the TZ env variable - https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime.
2 - Even if you define the env variable TZ, Powertools does not consider it and always creates the log with a UTC timestamp, whether using the utc parameter or not. For now I can suggest that an alternative is to use our Logger utility with the use_rfc3339 parameter. If you configure TZ env var and use this parameter, the log will be generated at the desired timestamp.
3 - I know the problem is here: https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/logging/formatter.py#L171. But I need time to investigate further and find the best solution.
4 - We need to update our documentation to inform about Lambda TZ env var.
So once again, thanks for opening this bug and we will try to fix it as soon as possible. If you want to submit a PR to fix it, or even have a suggestion, we're open to discussing about this. :rocket:

@leandrodamascena , Thanks for the detailed info,
You're absolutely correct, I tried the other day by configuring TZ env variable. However, powertools does not consider it.
I just tried your suggestion a moment ago! I used the Logger utility with the use_rfc3339 parameter and configured the TZ environment variable, and it worked perfectly.
logger = Logger(service="APP", use_rfc3339=True)

Sounds like a viable alternative to address the timestamp issue for now. Thanks again.

Hi @roger-zhangg! Can you take a look at this? :eye:

Hi,
The root cause for this issue is python's time.localtime in lambda python runtime doesn't accept TZ env variable. And it will always return UTC time regardless of TZ env var.  We are working on possible solution to avoid using time.localtime in time conversion so that the formatter will behave according to TZ value.


Index on Deteministic Always Encrypted Columns

You can index this column in SQL Server 2016

Thanks for posting this. Turns out we don't explicitly state this in the labs. This was just said verbally from the decks. Thanks for helping me get this fact right


BUG: Correcting the Disturbed UI of Contact Page

Is there an existing issue for this?

[X] I have searched the existing issues

What went down?

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I'm a VSoC'24 contributor
[X] I want to work on this issue

hi @SadafKausar2025 i think it works


Events API sends incorrect data

Description
The API endpoint /eth/v1/events sends incorrect data for the 'block' topic.
Acceptance Criteria
Data should match that described in the spec at https://ethereum.github.io/eth2.0-APIs/#/Events/eventstream
Steps to Reproduce (Bug)

run curl -H "Accept: text/event-stream" 'http://localhost:5051/eth/v1/events?topics=block'
check output

Expect to see data of the form:
event:block
data:{"slot":"877361","block":"0x84bc86680b329dbf4ab1d6d0be342da47ff5a80c8ba176edc6748e4855e02bcf"}

however Teku returns the entire SignedBeaconBlock struct.
Versions (Add all that apply)
teku/v21.3.0/linux-x86_64/-privatebuild-openjdk64bitservervm-java-14

Thanks for raising. I've put up a PR and adjusted our tests to reflect the standard api.
This is technically breaking obviously, but hopefully we can release it without too many issues.


Make more use of styles.xml rather than formatting every view

Background color in newer APIs, plus button and text formatting styles, for cleaner XML

It'd be nice to get UX opinion on buttons throughout the app before doing this.

For sure @perlajarillo! I think you're already in slack, drop in if you have questions.


Add include demo flag to staging CI

[ ] Bind vue-book existance to INCLUDE_DEMOS env variable.
[x] Add INCLUDE_DEMOS to CI context

So for some reason I'm getting weird errors once this gets to staging server.


sync-zh-files-from-1.12

/assign @xichengliudui

/lgtm

/cc @xichengliudui @chenrui333 @markthink

as discussed, it would be best that we dont lose any commit history of the migrations between the versions.

@chenrui333 Are you talking about cherry-picking all those PRs to "release-1.14" branch? That will be a daunting task.
@fleeto Shall we target "master" or "release-1.14"?

@tengqm not cherry-picking. Two additional commits to merge the branch release-1.12 to branch release-1.14.
In this way, our commit history would be potentially captured when we ultimately moved to master branch.

I am mostly thinking of this PR merge practice in terms of contribution credit.


Add ImGuizmo license info to readme

Fixes #474

SonarQube analysis reported 1 issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AncientFungus:LGEPR: Cppcheck cannot find all the include files (use --check-config for details)


Typing text at the end of a styled area

When the caret is placed at the end of a styled section, any new typed text will also belong to that styled section. Sometimes, this is what you want, but not all the time. For those times where you don't want the new text to inherit the style of the styled section, how can I temporarily disable that extending of the previous style span when new text is typed?

Why not apply a new style to caret position, then enter the new text?

I'm sorry, somehow I missed this before. You can set the useInitialStyleForInsertion property to true to use the default style of the text area, instead of the style immediately before the caret. To reset the behavior, just set it back to false.
@melkhaldi One can apply style only to a non-empty range of text, i.e. style of at least one character would have to be updated.

Thanks @TomasMikula, that's exactly what I was looking for.


rename controller button labels

the usb PS3 look alike controllers I am using (https://www.amazon.de/CSL-Gamepad-Vibration-Controller-LED-Anzeige/dp/B075FB3NHX/ref=sr_1_6?ie=UTF8&qid=1523723723&sr=8-6&keywords=usb+controller) has buttons labels 1,2,3,4 instead of the PS3 ones with square/circle/etc.
It would be awesome and less confusing if those could be configured so that I don't have to remember the mapping.

You could add an option in;
https://github.com/Aloshi/EmulationStation/blob/master/es-core/src/guis/GuiInputConfig.cpp
And make a pull request?  Or....
It looks like the labels are defined at the top within
static const char* inputName[inputCount]
You could just clone the repo, make the changes to whatever you want and then compile it for yourself?


Plugin use

Is there a way to use this as a plugin? i.e. Vue.use(VueStrap). That's because i want components to be injected globally.

Have you solved this problem? @Fleeck

No, I am using mixin.

got it . thx


[WIP] Update package refs to 3.0.0-preview3

Do not checkin. This is a step towards getting to preview4 packages, but is not shippable as-is.

@seancpeters - The tests are failing. Can you please take a look tomorrow?

@AndriySvyryd - These are the packages we are looking for the EF preview 4 packages?
  <!-- Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore -->
    <MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion>3.0.0-preview3-19153-02</MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion>

    <!-- Microsoft.AspNetCore.Identity.EntityFrameworkCore -->
    <MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion>3.0.0-preview3-19153-02</MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion>

    <!-- Microsoft.AspNetCore.Identity.UI -->
    <MicrosoftAspNetCoreIdentityUIPackageVersion>3.0.0-preview3-19153-02</MicrosoftAspNetCoreIdentityUIPackageVersion>

    <!-- Microsoft.Extensions.Identity.Stores -->
    <MicrosoftExtensionsIdentityStoresPackageVersion>3.0.0-preview3-19153-02</MicrosoftExtensionsIdentityStoresPackageVersion>

     <!-- Microsoft.EntityFrameworkCore.Design -->
    <MicrosoftEntityFrameworkCoreDesignPackageVersion>3.0.0-preview3.19153.1</MicrosoftEntityFrameworkCoreDesignPackageVersion>

    <!-- Microsoft.EntityFrameworkCore -->
    <MicrosoftEntityFrameworkCorePackageVersion>3.0.0-preview3.19153.1</MicrosoftEntityFrameworkCorePackageVersion>

    <!-- Microsoft.EntityFrameworkCore.SqlServer -->
    <MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-preview3.19153.1</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>

/cc @natemcmaster

Latest preview4 build versions:
aspnetcore packages 3.0.0-preview4-19210-17
efcore packages 3.0.0-preview4.19210.5

@natemcmaster - do you know which version of Microsoft.NETCore.App is coherent with the preview4 package versions you mentioned?

3.0.0-preview4-27610-0.
Here's a list of the coherent dependencies in case you need others too, like System.* packages: https://github.com/aspnet/AspNetCore/blob/8af6e9e49ac409e813ca9a8e4832631468f60ed7/eng/Version.Details.xml for aspnetcore  3.0.0-preview4-19210-17

Closing in favor of #988