Allow full dates to be entered in all date facets/single fields in SS/AS (from 1774)

Problem description:
Encounter dates, are often full DD-MM-YYYY dates, but UI only allows users to enter YYYY dates for all date facets in Simple and Advanced Search.
Expected behavior/Solution:
Provide a place for users to enter full dates.  May need discussion on how to handle dates/date ranges in ML. This will be for advanced search as well as facets on search results.
Requirements

All date facets must allow users to enter mm/dd/yyy dates
All date single fields must allow a user to enter mm/dd/yyyy dates.
Search results must be within the listed mm/dd/yy date a user submits.

Needed for promotion:

[x] requirements/inventory of all places where this functionality is needed (heather)
[x] research (peter)
[x] wireframes (heather)

UAT/LUX Examples

TST SS facets: https://lux-front-dev.collections.yale.edu/view/results/objects?q={"text"%3A"colors"%2C"_lang"%3A"en"}&sq=colors
TST AS: https://lux-front-dev.collections.yale.edu/view/results/objects?q={"AND"%3A[{"text"%3A"colors"%2C"_lang"%3A"en"}%2C{"encounteredDate"%3A"1900"%2C"_comp"%3A">%3D"}]}
https://lux-front-dev.collections.yale.edu/view/results/objects?objectsAq={"encounteredDate"%3A"1976"%2C"_comp"%3A"%3D"}&objectsSort=itemEncounteredDate%3Aasc (from original tix, unsure if needed)

Dependencies/Blocks:

Blocked By: Issues that are blocking the completion of the current issue.
Blocking: Issues being blocked by the completion of the current issue.

Related Github Issues:
Related links:

Bugherd: https://www.bugherd.com/projects/284041/tasks/1214

Wireframes/Mockups
Facet:

Updated Advanced Search:

~priority set at normal by LUX core team~

Notes 6/13:
This is going to take some work.

This should be done for all date facets.
A normal date input type will not work for this as it does not support B.C. dates.
The date slider operates on a percentage based on the years chosen, which are currently number types. Changing them to either string or date types will require more refactoring.

Tagging @prowns @roamye so you both are aware this is being worked on.

@kamerynB I have re-scoped it to include this change for all date facets.
Would it help to have this as a META ticket? we can then create sub tix for the work needed to make this change for all date facets.
Let me know what works best for you.

@roamye Once I figure out how best to tackle this, then I'll be able to decide whether the ticket should be split. Thank you though!

@prowns Can this be an agenda topic this week? I have some issues with possible solutions but I'd like to go over them with the team.

Per the 7/19 meeting:
Advanced search
The advanced search dates will include the date input type along with an option for selecting CE or BCE. The frontend will then add a negative to the date if it is a BCE date.
Below is an example of the layout.

Date Facets
The frontend will offer input as the date input type, similar to the advanced search. The option for selecting CE or BCE will be conditional and based on the dates returned.
Examples of layout will be added to the issue shortly. It was suggested that the earliest date input and latest date input are on their own lines.

Old wireframes:

@prowns @jffcamp @roamye Please review the updated wireframes I've added to the Wireframes section of the top comment. Let me know if this is something I can move forward with.

@kamerynB -
From UAT 7/22,
The mockups were approved and it is fine to move forward with.

From Ticket Forming July 30:
Note to self  (@roamye ) ---

There is a bugherd: https://www.bugherd.com/projects/284041/tasks/2453, which may be linked to this issue. When this issue is deployed in TST/PROD. Please review the BH to ensure it is fixed. If it is not a new BH issue will need to be made.

Discussed ML changes with Peter and a path forward has been cleared. The ML decision can be found here.
The frontend will process the epoch times, which are in seconds, by converting them to a Javascript date object such as new Date(epoch * 1000). It will use the epoch time to set the date range slider. It will be converted to the yyyy-mm-dd format for use by the HTML date input. The same date format will be submitted to ML.

This is supported by ML. ML's date format has been changed to the following:

Marklogic will continue to return dates in string format. Full ISO String for years [-9999:9999]. Just the year outside of that range.

Per the 8/23/24 meeting:
Issue:

Usability: Supporting dinosaur dates can impact frontend usability if we were to not allow users the enter the month and day if the year is less than -9999 or greater than 9999. The slider functionality would be impacted as it would be using epoch times for full dates, not years.
HTML Date Input: It does not accept negative dates.
Date Formatting: Which format to use when submitting the search?

Solutions:

Usability: The greatest range that is currently in ML is -9999 to 9999. Dinosaur dates will never be accurate down to the day and month and they may never use the timespan  property. It is feasible to support dates within the current ML range.
HTML Date Input: The date input/picker will not be used. The wireframe will be updated to allow users to enter the month as a dropdown, the day as a number, and the year as a number.
Date Formatting: The frontend will receive ISO strings from ML and will pass ISO strings to ML upon a faceted search submit.

cc: @clarkepeterf @kkdavis14

Old Wireframes:

@prowns @jffcamp @roamye @clarkepeterf @kkdavis14 @dcheather Now that we have clarification on what the frontend should present to users, please confirm that the requirements listed below are clear and I can proceed with continuing working on this issue.
Requirements for facets:

A user will be allowed to enter a full date for facets.
There will be 2 input groups, earliest and latest.
There will be 3 input fields for both earliest date and latest date.
A user can enter the month by selecting from the dropdown Month field.
The default month will be based on the month returned from the ML date.
A user can enter the day by entering a number.
The default day will be based on the day returned from the ML date.
The day input will be configured to only offer the appropriate number of days for the selected month.
If a user selects January then enters the day 31, and then switches to a month that does not have 31 days, the day input field will be reset to 1.
A user can enter a year by entering a number.
The default year will be based on the year returned from the ML date.
The maximum date allowed for earliest is the value of latest
The minimum date allowed for earliest is the earliest date returned from ML.
The maximum date allowed for latest is the latest date returned from ML.
The minimum date allowed for latest is the value of earliest.
The date slider will allow users to select the earliest and latest fields.
The date slider will be implemented using epoch time.
The frontend will parse ISO string formatted dates from ML.
The frontend will send facet requests in the ISO string format.

Requirements for Advanced Search:

A user will be allowed to enter a full date in the advanced search date fields.
There will be 3 input fields for the date field selected.
A user can enter the month by selecting from the dropdown Month field.
The default month will be January.
A user can enter the day by entering a number.
The default day will be 1.
The day input will be configured to only offer the appropriate number of days for the selected month.
If a user selects January then enters the day 31, and then switches to a month that does not have 31 days, the day input field will be reset to 1.
A user can enter a year by entering a number.
The default year will be the current year.
Negative years will represent BCE dates.
All three fields will be required.
The frontend will submit ISO string formatted dates to ML.
The frontend will parse ISO string formatted dates when displaying the advanced search after it has been submitted.

Comments to Kams question can be found in this teams thread: https://teams.microsoft.com/l/message/19:351e0281aaa144d0812b960d216958c6@thread.tacv2/1724442322814?tenantId=dd8cbebb-2139-4df8-b411-4e3e87abeb5c&groupId=4620eac6-0955-4c69-93e8-b493b21f0df6&parentMessageId=1724442322814&teamName=ML%2F Cultural Heritage Support&channelName=1 - LUX_ML&createdTime=1724442322814

@kamerynB - the reqs look good to me. I also like the mockup. Also - the month/year will also have this as well, yes ?

Some feedback from testing it in DEV:

when you select the created date (objects) and let it default to its fields it will not update the results when selecting "Search Lux". You would have to change one of the date fields for this button to work OR change the date field and change it back to its default for it to work. It is a problem for those that want to do a search with its default date fields.
If I look for objects that have the text "colors" listed anywhere within the record AND add the created date field to less than jan 1 2024, no records appear. if I do after jan 1 2024 no records appear. I also checked the json of each record before adding the field and cannot find a time stamp for any dates. Possibly the reason why it does not work? (https://lux-front-dev.collections.yale.edu/view/results/objects?q={"AND"%3A[{"text"%3A"colors"%2C"_lang"%3A"en"}%2C{"producedDate"%3A"2024-01-01T00%3A00%3A00.000Z"%2C"_comp"%3A"<"}]})
The selection of single fields has a functionality which closes the drop down after selecting a value. The new date fields do not do this. Is this something we can update so it matches the functionality of the other AS fields? (Ex: if I select the month feb, the drop down does not close and remains open until I re-click on the button. BUT if I select greater than it will close the drop down)
I get an error of "field not defined": https://lux-front-dev.collections.yale.edu/view/results/works?q={"AND"%3A[{"text"%3A"andy+warhol"}%2C{"publishedDate"%3A"2024-01-01T00%3A00%3A00.000Z"%2C"_comp"%3A"<"}]} . This also happens in People & Groups and events.

I have also made this comment on the teams thread here.

Old AS mockup:

I have updated the issue above to contain the new mockup (what it currently looks like in DEV)

FYI; @kamerynB - depending on the progress this may have to be pushed to the 09/23 milestone. Let me know.

My feedback, first couple of things have been discussed in Teams:

We need to decide how BCE dates are represented to users. Does year -1 represent 1 BCE? Or does year 0 represent 1 BCE ?

regardless of how it is represented on the frontend, MarkLogic is using ISO 8601 dates, where year 0000 represents 1BCE, year -000001 represents 2BCE, etc.

1 BCE should be a leap year. This is more easily represented by ISO years such that year 0 can be a leap year, and other years divisible by 4 are leap years. (Excluding years divisible by 100, including years divisible by 400). If using -1 to represent 1 BCE on the frontend, it's probably easier to calculate leap years by converting to ISO 8601 first (negativeYear +1) and then calculate leap years based on ISO.
Entering Valid dates - Currently If I choose Jan 31 as a date, I can change the month to Feb and have Feb 31. Something on the frontend should prevent this.

Unsure if this has to do with different date issue(s), but:
Issue 1 - Error Message:

submit a simple search for colors
change the earliest date to jan 1 2020 and the latest date to jan 1 2021.
go back to creation date and type in 2021 for the latest date. (notice the error message below)

Issue 2 - Incorrect Search Results:

submit a simple search for colors
change the earliest date to jan 1 2020 and the latest date to dec 31 2021.
Notice the creation dates does not match those in the selected filters. (which I believe is an already known issue and is tackled within a different issue)
Notice the records displayed does not show the original intended creation dates, but instead what is listed in the accordion (2020 to 2020)
Example: https://lux-front-dev.collections.yale.edu/view/object/2f46cbb3-25ef-4d88-a728-01bf4e4c75ef has an end of end of: 2021-12-31 and begin of: 2020-01-1. This should show when I do the earliest date of jan 1 2020 and latest date of dec 31 2021 BUT only shows if the latest date is jan 1 2022.
Example of results that do show: https://lux-front-dev.collections.yale.edu/view/object/b42fed2a-059d-46cd-afa1-741830b67e61 which only contain end_of_the_end and begin_of_the_begin of 2020-12-31 and 2020-01-1.

Issue 3 - Slide Bar extends further than expected.

submit a simple search for colors
change the earliest date to jan 1 2020 and the latest date to dec 31 2021. Click Apply.
change the latest date to june 1 2021.
Notice the slide bar extends.

Issue 4 - Drop downs do not close after a selection.

submit a simple search for colors
change the earliest date to May 1 -9999.
Notice the drop down for month remains open.
the same happens when changing the day.

AS:
Issue 1 - Text for year  is cut off on the desktop view for all dates across tabs

https://lux-front-dev.collections.yale.edu/view/results/objects?q=
select  Created Date

Issue 2 - Outputs results greater than the current date. (might be a different date issue)

https://lux-front-dev.collections.yale.edu/view/results/objects?q=
select  Created Date
change options to greater than | may | 3 | 2028
click apply

Issue 3 - Outputs results from simple search are not equivalent to its simple search. (unsure if this is to be expected)

Advanced Search vs Simple Search

Issue 4 - same as simple search issue 4 (see above comment)

In response to this comment:
Issue 1:
This is expected for that search. The results returned for that facet request only return 2020-01-01T00:00:00.000Z as a date. The frontend renders the date range based on what is returned in ML. Here is the same search but in PRD and only with years, not full dates.
Right now, we are using > and < comparators and not >= and <=. This may be having an impact as well.
Issue 2:
Same as issue 1 and probably has to do with the comparators as they are not inclusive.
Issue 3:
(Sigh) I thought I figured out how to fix that. I'll take a deeper dive into that.
Issue 4:
It's something to do with the function I'm using. It overwrites the default React Bootstrap behavior. I can fix that.
Issue 5:
I think I messed up the day change function so I will fix that.

From IT Meeting 9/27:

Issue 5 would be a hot fix priority. Further discussion will be had at UAT 9/27.

SS Issues:

Error message still appears.
Still an issue but unsure if this can be resolved through the FE or if something else is needed.
Slide bar still extends.
Days works fine, but month continues to have this issue.
Works well :) | Selected filters now show the exact date ranges, rather than the years. Refine objects appears, and results still show. No error message! BUTTT this is not working for Events -> Start Date. ( link -> select start date -> earliest date nov 9 1414 -> apply )

AS Issues:

Works well.
N/A as data issue
N/A was an error with my search.
Same as above. Days work fine but months continue to have an issue.

@kamerynB

@roamye I only fixed what was mentioned in this comment.

Looks good in PROD. Closing.
New tickets will have to be made to combat the remaining issues.


fix: added migrations files

Added migration files to deployment

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Flag
Coverage Δ

unittests
73.21% <ø> (ø)

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

keng makk kaa

Thank you for adding migration files, Tora.


Display 3 sets, A with 2 elements and B and C disjoint subsets of A with 1 elem each

When I choose the following set:
A: 2, B:1, C:1,
AB: 1, AC: 1, BC:0,
ABC: 0
I expect the B and C to be covering A entirely, have no overlap with each other, and remain fully within A.
None of these conditions is fulfilled.
I understand that this is a limitation of the circle-based approach.

There is a pretty comprehensive set of resources here: http://www.cvast.tuwien.ac.at/SetViz


Highlighting and error checking in Dartdoc code

We often have code examples in DartDoc. They get out of sync with the actual code very easily, and are harder to read because they aren't syntax highlighted. It would be really nice if the editor could recognize code fragments in DartDoc comments and do syntax highlighting and error checking on them. There are already mechanisms that DartDoc uses to indicate code fragments, so this ought to be recognizable. There might be an issue with needing to recognize that this code isn't actually part of the file, as it might break, or two different code fragments might define a function with the same name, so each needs to be treated somewhat separately, and not compiled as part of the file. But it would be really really nice.

This seems like it would be impossible to do without false positive warnings. The following code blocks, that might be found in Dartdoc comments, would produce false analyzer warnings:

Dart code with pseudocode:
callAFunction();
callSomethingElse();
...
var a = foo();

Code blocks that don't contain Dart:

This is html. Not dart. The analyzer probably wouldn't take kindly to that.

Code with undeclared identifiers. Would the analyzer know that only a subset of warnings are valid in example code?
someFunction(myVariable);

This would also pull in package:markdown as a dependency to the analyzer.

Close as infeasible for the reasons above?

There are ways to make things better than they are, but I don't care that much whether we leave this as a reminder or close it.


kvstore: Remove Consul support

I was looking at a CI issue that involved Consul... and figured it's probably best to just finally remove the Consul support.
Consul support has been deprecated in v1.12 with commit fb65f8c55b ("docs: Deprecate Consul support"). It's been almost three years and it seems nobody stepped up to maintain it. It's time to fully remove it.
This commit deletes all Consul logic, replaces Consul with Etcd in tests where it still was the default, removes Consul-specific tests, and removes the dependency to hashicorp/consul.

/test

/test

Does this warrant a brief discussion in today's or next community meeting?

Some users to notify might be found in https://github.com/cilium/cilium/issues/18851

/test

/test

/test


JUnit-format report

I'm trying integrate scapegoat to Atlassian Bamboo CI, but it takes only JUnit-xml reports out of box.
JUnit has a simple format, so its implementation will not get a lot of time
https://www.ibm.com/support/knowledgecenter/en/SSQ2R2_9.5.0/com.ibm.rsar.analysis.codereview.cobol.doc/topics/cac_useresults_junit.html
But, may be, there is an easier way to do it?

I'm not sure if it makes a lot of sense. JUnit XML format is written for tests:
<?xml version="1.0" encoding="UTF-8" ?>
<testsuites id="20140612_170519" name="New_configuration (14/06/12 17:05:19)" tests="225" failures="1262" time="0.001">
    <testsuite id="codereview.cobol.analysisProvider" name="COBOL Code Review" tests="45" failures="17" time="0.001">
       <testcase id="codereview.cobol.rules.ProgramIdRule" name="Use a program name that matches the source file name" time="0.001">
          <failure message="PROGRAM.cbl:2 Use a program name that matches the source file name" type="WARNING">
WARNING: Use a program name that matches the source file name
Category: COBOL Code Review – Naming Conventions
File: /project/PROGRAM.cbl
Line: 2
      </failure>
    </testcase>
  </testsuite>
</testsuites>

The testsuites, testsuite, testcase notations look weird in the scope of static code analysis.
Scapegoat can produce scalastyle-formated reports, the format is similar to the format of checkstyle. There is a plugin for Bamboo: https://bitbucket.org/atlassian/bamboo-checkstyle-plugin ,- it should solve the problem of integration.


Shortcuts doesn't work :(( [4.2]

First of all, this plugin didn't work at all, and I realized that I had to make an autoload for it, and then I saw that the shortcuts didn't work at all, nothing, officially, nothing, even with the control key, you can't move the faces.

I've posted this video.  Try following the steps in the installation section and see if that resolves the issue.
https://youtu.be/mbw_6dnOt_g


fix links in to try lists cards

20221011190351

link to issue

i think they are all fixed.

update all the links in the content


Basic 404 routing or redirect like furnace

Users may copy paste an incorrect URL this would cause an error to log in the server. We should handle this in some form.
Make sure users cannot get Internal Server Error

This has been resolved however it needs to have tests written

404 page has been added and tested


Update .eslintrc a very little diff pls dont reject

Coverage decreased (-15.5%) to 80.751% when pulling 62e391c6e26b120027e882630385c0c78f95a347 on hackeradi2002:master into 2dbb911636e5b95e0629e67e5f30b2104ee20191 on zlargon:master.


[RHCLOUD-17523] Docker Compose for the development environment

Creates a docker-compose.yml file and a .env file with defaults to help creating a development/testing environment.
Links

RHCLOUD-17523

Since this is more of a personal set up than anything else, I've moved this to a personal repo instead.


Missing support babel-loader

Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [x] feature request

Versions.

Repro steps.
ES6 code with spread operator
For example:
case REQUEST_GUIDE_FULFILLED:
|     return {
|       ...filterGuideData(action.guide),
|       isLoaded: true,
|     }
Exception thrown:
Module parse failed: C:\workspace\showhowAdmin\platform\node_modules\source-map-loader\index.js!C:\workspace\showhowAdmin\platform\showhow-admin\app\player\redux\reducers\domain\guide.js Unexpected token (10:6)
You may need an appropriate loader to handle this file type.

The log given by the failure.

Desired functionality.

Module parse failed: C:\workspace\showhowAdmin\platform\node_modules\source-map-loader\index.js!C:\workspace\showhowAdmin\platform\showhow-admin\app\player\redux\reducers\domain\guide.js Unexpected token (10:6)
You may need an appropriate loader to handle this file type.
|   case REQUEST_GUIDE_FULFILLED:
|     return {
|       ...filterGuideData(action.guide),
|       isLoaded: true,
|     }
Mention any other details that might be useful.

In @angular/cli/modles/webpack-configs/common.ts, if i have a small modify by adding babel-loader rule into 'module' section:
{ test: /.(js|ts)$/, loader: "babel-loader", exclude: [nodeModules] }
then it work fine.

We do not support transpiling javascript ES2015 code down to ES5 code by design. If you want to use babel to add custom ES2015 code, you will have to eject.
We have support for ES2015 targets without transpiling code down to ES5 in https://github.com/angular/angular-cli/pull/7610. The resulting bundle will be contain ES2015 code.


How to install...?

Imagining I know very little, but noticing that ~/sys/whisper.cpp was an empty dir and resulted in a cargo build result of whisper.h not found, removed it, and at ~/sys level git cloned the 2c281d190b branch and ran, in new terminal
cargo build with this result
~/whisper-rs$ cargo build
Compiling whisper-rs-sys v0.2.0 (/home/chris/whisper-rs/sys)
Compiling whisper-rs v0.2.0 (/home/chris/whisper-rs)
error[E0308]: mismatched types
--> src/whisper_ctx.rs:202:12
|
202 |         Ok(ret)
|         -- ^^^ expected i32, found struct whisper_token_data
|         |
|         arguments to this enum variant are incorrect
|
note: tuple variant defined here
--> /home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:508:5
|
508 |     Ok(#[stable(feature = "rust1", since = "1.0.0")] T),
|     ^^
error[E0609]: no field print_special_tokens on type whisper_full_params
--> src/whisper_params.rs:88:17
|
88 |         self.fp.print_special_tokens = print_special_tokens;
|                 ^^^^^^^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: strategy, n_threads, n_max_text_ctx, offset_ms, duration_ms ... and 23 others
Some errors have detailed explanations: E0308, E0609.
For more information about an error, try rustc --explain E0308.
error: could not compile whisper-rs due to 2 previous errors
How might I move forward?
Thanks in advance
~

git submodule init followed by git submodule update in the root directory of the project will pull the correct commit hash and should get you going.


[MIST-1008] Set AffinityEventProcessorFactory as a default event processor factory

This PR resolves #1008

LGTM and tested on a 28-core machine. Thanks a lot, @taegeonum!


[CCI] Update Developer Guide

Description

Removed guidance on using npm and switch completely to yarn in the developer_guide

Cleaned up the developer guide to be more illustrative to new contributors including how to install the library from scratch, e.g. "yarn install".

Issues Resolved
Closes [#435]
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.

Not sure if we want to add some examples on how to use some binary scripts in repo (like running linter), or if this belongs in other files (pull request template checklist, that tells people to run linter (and how to run it) before making the PR?)

Not sure if we want to add some examples on how to use some binary scripts in repo (like running linter), or if this belongs in other files (pull request template checklist, that tells people to run linter (and how to run it) before making the PR?)

Sure if you would like to add an issue. The dev guide can also house that as suggested.


Change the logo of xcINTR, xciBTC, xckBTC, xcCSM, xcSDN, xcKMA, xcLIT, xcCRAB, xcTEER

Is your feature request related to a problem? Please describe.

[x] The logo of xcINTR, xciBTC, xckBTC, xcCSM, xcSDN, xcKMA, xcLIT, xcCRAB, xcTEER on SubWallet are not correct. Please change it.

Also, please change

"xcIBTC" to 'xciBTC"; and "xcKBTC" to "xckBTC (On Moonbeam and Moonriver)
"IBTC" to "iBTC": and "KBTC" to "kBTC" on Interlay and Kintsugi

[x] Update $ Balance of INTR, xcINTR, xciBTC, xckBTC, xcCSM, xcSDN, xcKMA, xcLIT, xcCRAB, xcTEER

[x] Update URL explorer for Bifrost-kusama chain

Version test: https://file.cdmteck.com/s/4oimk9zDJ8R5Aai/download?path=%2F&files=./596-merge-build-0.5.6-1661752787114.zip
Please re-check issue 1 & 3

Version test: https://file.cdmteck.com/s/4oimk9zDJ8R5Aai/download?path=%2F&files=./604-merge-build-0.5.6-1662358981100.zip
Validation passed.


Buttons text

Buttons text is mixed between UPPERCASE and how is it written in translation file.
All buttons have to be checked, the example is from "new cloud account" screen.

The design of the platform is done that way for all the forms. It is not a bug.

It is not consistent to have buttons written in different ways, all buttons should have the same stile (uppercase or lowercase, not both).

Can you argument your point? We have a team dedicated to usability, I trust them.

If there isn't a solid reason for having different styles in the buttons, it is better to have them the same (uppercase or lower case, same font, palette of colours, etc) to strengthen the CloudOpting corporative image.
Like Amazon, who has all the buttons with black lowercase letters with a yellow background. So when you see one of this buttons you immediately relate it to Amazon. See screenshots attached:

As this is not prioritari will be done in a future release.


fix scenariofile logic and help text

Supersedes #1119.
cee28264 from #1103 introduced faulty logic and misleading help text.
If $scenariofile is set by the user, then $scenario is totally ignored if set. This is because
: ${foo:=bar}

will not set $foo if it was already set.  And if $scenario isn't set then the code bails for no good reason.
If that was confusing, maybe this will help:

scenariofile
scenario
behaviour

not set
not set
correct behaviour

not set
set
correct behaviour

set
not set
incorrectly prohibited

set
set
ignores $scenario

Additionally, the names scenario and scenariofile are vague and it's
not intuitive what is the difference between them.
So instead we replace the confusing $scenariofile parameter with $scenario_dir, and that gets joined with $scenario to obtain $scenario_path which points to the file to scp to the admin node.

Seems to work fine.

except for the nitpick, LGTM

@dirkmueller Better now?

+1


[BUG]

The container of the friend's activity displays above the page loaded by spotify hence the content is getting hidden beneath it

This is a result of Spotify changing their internal styling.
I pushed a fix for this bug here and submitted it for review to the Chrome Web Store.
The Chrome Web Store review process takes some time - while waiting for the new version to publish, you can follow the steps here to install it manually.

The fix is now published to the Chrome Web Store. Ensure you're running version 1.0.13.


add custom delimiter option

This is a verbatim copy of my old PR from main (abandoned?) fork - see https://github.com/zmwangx/ets/pull/17

One problem that I had was the delimiter of a single space was making it hard to integrate with some other logging tools that I also use.  I wanted to use \t tab instead, but I went ahead and made this PR that adds a -d / --delim flag to allow any custom delimiter that might be desired.
Examples
ets --delim ' - '
ets -d '\t\t'
ets -d ':  '

One little neat trick you can do with this is create a delimiter that causes the terminal to beep when new lines are logged, e.g.
$ ping <IP_ADDRESS> | ets -d '\t\x07'

Hope this patch is ok, but let me know 👍

Thanks again! I’ll make a new release tomorrow.

I need a bit more time for the release - updating the man page is ~a nightmare~ an „interesting” time-travel-like experience… 🦕😅


JSON Merge Patch (RFC 7396)

SQLite's json1 extension (https://www.sqlite.org/json1.html) supports JSON Merge Patch (https://tools.ietf.org/html/rfc7396). As the implementation is trivial and we already support JSON Patch, I think this could be a nice extension to the library.
[Describe your pull request here. Please read the text below the line, and make sure you follow the checklist.]

[ ]  Changes are described in the pull request, or an existing issue is referenced.
[ ]  The test suite compiles and runs without error.
[ ]  Code coverage is 100%. Test cases can be added by editing the test suite.

Coverage remained the same at 100.0% when pulling c6e7eae394e0907947da267c046fceca96b59d5e on feature/rfc7396 into f7ae143a93a035cb25cedc79f3113b4f5701d1ad on develop.


add logging and timeout to balena push

Change-type: patch
Signed-off-by: Ryan Cooke<EMAIL_ADDRESS>

@balena-ci retest

@vipulgupta2048 thanks for the review
It looks like there's some weirdness going on with the flowzone/test custom action too I can see in the check runs, that flowzone/flowzone/test custom has passed.
However there are duplicates that apparently haven't even ran yet


Add missing COS outputs to SCC instance DA

Missing COS instance (crn, guid etc) and COS bucket outputs (cos endpoint etc)

PR merged. Closing issue.


Not sure what's causing this error.

The application I'm creating receives messages from an SQS queue and performs some Database interacation. Which works the first time.
But then when trying to run again, I get this message on the Lambda application:
"{'message': 'An uncaught exception happened while servicing this request. You can investigate this with the `zappa tail` command.', 'traceback': ['Traceback (most recent call last):\\n', '  File \"/var/task/handler.py\", line 531, in handler\\n    with Response.from_app(self.wsgi_app, environ) as response:\\n', '  File \"/var/task/werkzeug/wrappers/base_response.py\", line 287, in from_app\\n    return cls(*_run_wsgi_app(app, environ, buffered))\\n', '  File \"/var/task/werkzeug/test.py\", line 1096, in run_wsgi_app\\n    app_rv = app(environ, start_response)\\n', \"TypeError: 'NoneType' object is not callable\\n\"]}"

Any ideas what this is?

Me too... I also saw that error code. What is the problem?

Hello there,
I guess you did not find any solution yet. Can you share some more details? Where did this message appear? Can you share the zappa_settings.json?

I dropped the project.
So I have no idea what fixed it.


Use correct unit for duration sensor

Describe the bug
I am getting warnings from the log. h or d should be used for duration sensor, not hr or dy
To Reproduce
Restart home assistant
Expected behavior
No error/warning log
Screenshots
If applicable, add screenshots to help explain your problem.
Additional Information (please complete the following information)

Model Name [e.g. dreame.vacuum.p2028]: dreame.vacuum.r2228o
Firmware Version [e.g. 1156]: 5.3.3_1125
Home Assistant Version: 2023.1.0
Configuration Type [With or without map support]: with map support
Errors or warnings shown in the HA logs (if applicable):

2023-01-04 13:15:33.028 WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.dreamebot_l10s_ultra_main_brush_time_left (<class 'custom_components.dreame_vacuum.sensor.DreameVacuumSensorEntity'>) is using native unit of measurement 'hr' which is not a valid unit for the device class ('duration') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.
2023-01-04 13:15:33.033 WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.dreamebot_l10s_ultra_side_brush_time_left (<class 'custom_components.dreame_vacuum.sensor.DreameVacuumSensorEntity'>) is using native unit of measurement 'hr' which is not a valid unit for the device class ('duration') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.
2023-01-04 13:15:33.034 WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.dreamebot_l10s_ultra_filter_time_left (<class 'custom_components.dreame_vacuum.sensor.DreameVacuumSensorEntity'>) is using native unit of measurement 'hr' which is not a valid unit for the device class ('duration') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.
2023-01-04 13:15:33.036 WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.dreamebot_l10s_ultra_sensor_dirty_time_left (<class 'custom_components.dreame_vacuum.sensor.DreameVacuumSensorEntity'>) is using native unit of measurement 'hr' which is not a valid unit for the device class ('duration') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.
2023-01-04 13:15:33.037 WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.dreamebot_l10s_ultra_mop_pad_time_left (<class 'custom_components.dreame_vacuum.sensor.DreameVacuumSensorEntity'>) is using native unit of measurement 'hr' which is not a valid unit for the device class ('duration') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.
2023-01-04 13:15:33.039 WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.dreamebot_l10s_ultra_silver_ion_time_left (<class 'custom_components.dreame_vacuum.sensor.DreameVacuumSensorEntity'>) is using native unit of measurement 'dy' which is not a valid unit for the device class ('duration') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.
2023-01-04 13:15:33.040 WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.dreamebot_l10s_ultra_detergent_time_left (<class 'custom_components.dreame_vacuum.sensor.DreameVacuumSensorEntity'>) is using native unit of measurement 'dy' which is not a valid unit for the device class ('duration') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.

I would keep this in mind in the case, that HA Devs will at some point change options on how to display the duration information.
Since it depends on the card type how the duration will be displayed, there are probably ways on how the system will show the information...

I would keep this in mind in the case, that HA Devs will at some point change options on how to display the duration information.
Since it depends on the card type how the duration will be displayed, there are probably ways on how the system will show the information...

I agree. It’s better to comply with the standard so that all the integrations is reporting the data with the same format. It’s just a matter how the front end is handling and reporting it.


Travis Integration Setup

Added a README.md (contents copied from README.txt) to allow display of a live build badge for Travis CI. Added .travis.yml for Travis integration, a contrived test for sanity check, and the corresponding library (pytest) in requirements.txt

Thanks @vineetbansal.  I noticed that you are using Python 2.7.  Is there a reasons that we are not using Python 3.X?

That's what the existing codebase uses, so I specified that for the CI setup. There are certain places in the code (e.g. trying to run decode('utf-8') on a string in webMetadata.api, which works in Python 2 but not 3) that are not Python 3 compatible. Over time, we can (and should) move to Python 3.


Ruby tests fail always on Travis

See: https://travis-ci.org/grpc/grpc/jobs/61350721 for instance

Fixed in #1492


Removed duplicate checkbox options

"Remove Crit Text" and "Remove All Text" were duplicated.

Thanks.


Add TS + webpack examples

Add example how to use SDK TS in web browser using typescript.
Webpack bundle all code and deploy it on dev server in browser.
Resolves: OLPEDGE-1720
Signed-off-by: ashevchu<EMAIL_ADDRESS>

Codecov Report

Merging #258 into master will not change coverage by %.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master    #258   +/-   ##
======================================
  Coverage    90.2%   90.2%
======================================
  Files          57      57
  Lines        1609    1609
  Branches      192     192
======================================
  Hits         1451    1451
  Misses         91      91
  Partials       67      67

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 1e8a1f0...58ffff1. Read the comment docs.


Incorrect Protocol Version

Hello
using orient db .net driver , when i try to connect to the db , i get exception "Incorrect Protocol Version",
   OClient.ProtocolVersion = ProtocolVersion = BinarySerializer.ToShort(_readBuffer.Take(2).ToArray());
here the buffer will have no data, and the ProtocolVersion will be 0.
 if (ProtocolVersion <= 0)
 throw new OException(OExceptionType.Connection, "Incorect Protocol Version " + ProtocolVersion);

Regards

Hello,
I have the same issue and my mistake was I was using the wrong port number. 2424 is the good one if I remember well.
Regards

Hello SchroterQuentin
Thanks for the reply.
<listener protocol="binary" socket="default" port-range="2424-2430" ip-address="<IP_ADDRESS>"/>
            <listener protocol="http" socket="default" port-range="2480-2490" ip-address="<IP_ADDRESS>">

2424 is related to binary , even if i set the port to 2424 on http socket setting , i get the same error.
Regards

Hello,
If you want to use the driver in C# to connect to the database, you have to use the binary port, it is the port used to communicate. The http port is used fort REST request and web ui.

Hello
But when i try to access interface of orient Db with 2424 port i get this error,
com.orientechnologies.common.io.OIOException: Impossible to read a chunk of length:541611092 max allowed chunk length:16777216 see NETWORK_BINARY_MAX_CONTENT_LENGTH settings

and when i try to access with the driver i get
An exception of type 'System.OutOfMemoryException' occurred in mscorlib.dll but was not handled in user code
Regards

That's better, now it seems that it's known issue : https://github.com/orientechnologies/orientdb/issues/6311
Check what version of OrientDB you have and what kind of database you choose, if you can't solve it please use a docker image which default parameter.

i was using orientdb-community-2.2.20, and now i moved  to orientdb-community-2.2.22 , to my surprise, it started working :)
Thanks SchroterQuentin for helping me out on this.


[TESTS] test of monotony

This is an example of a unit test. Note that I have made a small addition to tools.check_monotony. As well as printing the result, it will return True or False depending on if the passed variables is monotonically increasing or not
I have added a test that runs tools.check_monotony on two variables, PROFILE_NUMBER and TEMP, that we expect to pass and fail respectively.
def test_check_monotony():
    ds = fetchers.load_sample_dataset()
    profile_number_monotony = tools.check_monotony(ds.PROFILE_NUMBER)
    temperature_monotony = tools.check_monotony(ds.TEMP)
    assert profile_number_monotony
    assert not temperature_monotony

I then check those results with assert. assert is the key here. If you try to assert something that is not True like assert 1 + 1 == 3 it will fail. This way we test that, not only does tools.check_monotony run, it returns a verifiable result. This gives us a high degree of certainty that future edits will not change the behavior of `tools.check_monotony without the tests failing and alerting us.

Mmmm interesting! I will see if we can do this on other functions ( for some it may not be possible, I think)


Hope there would be "sudo" and "wd" plugins

It's very useful when I use oh-my-zsh

What do these actually do? It looks like wd is another dir jumping plugin (we already have z and fasd, so I doubt we'd add another... and we're also looking at removing fasd)... and I'm not familiar with what the sudo module does... it looks like it adds an additional keybind, but I'm not sure what it's used for.

The sudo plugin is used to fix earlier commands whose the user forgot to wrote sudo before. The usage: press ESC twice and return the last command with a prefixed sudo.
Example:
> vim /etc/fstab
... [sucks, need sudo]
> # Press ESC twice
> sudo vim /etc/fstab

I hope at least the sudo plugin would be added, indeed is a very useful plugin on oh-my-zsh.

The implementation on oh-my-zsh of sudo or sudoedit plugin can be found here.

With the example you gave I usually do something like this:
> vim /etc/fstab
... [sucks, need sudo]
> sudo !!
... [expands to sudo vim /etc/fstab]

The zsh man pages explain it under History Expansion:
!!     Refer to the previous command.  By itself, this expansion repeats the previous command.

I'm not rejecting this request because it does seem useful, perhaps as an option in another module. However, it's not a high priority for me to implement because there's something built in which only takes 4 additional key strokes.

I understand the priority, is not high. But if I implement a port from oh-my-zsh00 and submit a pull request this can be accepted? After all, I just download the module here and did a source sudo.plugin.zsh and works somehow (a little slow em comparison to the oh-my-zsh, but works).

I think it would make more sense as something like the editor module (we're trying to avoid having hundreds of plugins like oh-my-zsh - I'd rather have a smaller number of larger, configurable plugins) but then it would need some changes so it makes sense with both emacs and vi bindings.
Unless anyone else disagrees I would accept a PR which added it to a module where it makes sense and handles both emacs and vi key binds (esc-esc in vi mode would be weird).

Personally I think sudo !! is fine, and not worth adding this.

sudo plugin does one more cool thing - when you are typing command and you realize you forgot sudo in the beginning, you can hit Esc twice and sudo will be added in the beginning without moving the cursor. You can continue typing immediately.
Double Esc is just so much faster than Home button, sudo, End button or any keybindings to move cursor to beginning and back to the end. It's also much faster than mentioned sudo !!.
Overall I believe it is useful.
Workaround I'm using for now - paste contents of sudo plugin zsh file into ~/.zshrc file and reopen your terminal.

I use zsh-dwim, which provides a keybinding of C-u and does contextual completions, it's easy enough to drop it in .zsh-contrib. There are other tools like thefuck which provide similar features for a larger set of applications.
For me, adding such a feature is a gateway to allowing more context based completions which are already handled well by the above listed plugins. It's probably better to delegate to them rather than re-invent the wheel in this particular case.

A rogue mouse closed the issue :disappointed_relieved:

wd lets you create custom names for directories.
So for example, you can do
wd add fcore
and then type
wd fcore to go to that current directory
whereas you need to start typing the actual directory name
z frontend-core


Migrate to new package structure

use https://github.com/CSMTools/cli to migrate

Moved to project


Breaks dependency between Buf and Array

Doing this so I can use Buf to implement Array functions that require local mutation.

FWIW, seems like the right (re)direction of the module dependencies.  I had considered this same change myself, for the same reason.  Thanks @kritzcreek!


[Bug]: The Python MatchFiles ignore "empty_match_treatment" parameter

What happened?
The class MatchFiles not pass "empty_match_treatment" parameter in MatchAll(), so the parameter is ignore
https://github.com/apache/beam/blob/c2816c8d9770df3d30eec15a2563c48cb66a66b3/sdks/python/apache_beam/io/fileio.py#L198
Issue Priority
Priority: 2 (default / most bugs should be filed as P2)
Issue Components

[X] Component: Python SDK
[ ] Component: Java SDK
[ ] Component: Go SDK
[ ] Component: Typescript SDK
[ ] Component: IO connector
[ ] Component: Beam YAML
[ ] Component: Beam examples
[ ] Component: Beam playground
[ ] Component: Beam katas
[ ] Component: Website
[ ] Component: Spark Runner
[ ] Component: Flink Runner
[ ] Component: Samza Runner
[ ] Component: Twister2 Runner
[ ] Component: Hazelcast Jet Runner
[ ] Component: Google Cloud Dataflow Runner

that is right. I am happy to review a PR if you can fix the bug.


Reduce space between action's cell

Before:

After:

How does this look for link actions? Button actions? That was the original reason it was such a large gap.

The space between them is also very low, and they may not look very nice, but it is better than all that space. They may be separated by checking the action type condition.


Hide ScopedPool behind a cargo feature

thread::Scoped has been marked unstable due to a memory safety hole.
r? @alexcrichton

As an alternative, could this actually go behind a cargo feature? The solution for thread::scoped may actually mean we can continue to support this later!

@alexcrichton updated

Thanks!


Performance issues?

I tried to switch to yats from leafgarland/typescript-vim but unfortunately I had to revert back because it made scrolling very laggy.
Anyone else seeing similar issues?
I'm on Neovim and use it from the terminal along tmux.

I didn't see any noticeable lag on my code base.
Maybe you can provide some laggy example.

I confirm it. It happens if you have f.g. large TS class for 1k LoC (in my case it's 1022 LoC) and you try to defined private property, it starts hanging. If you are interested in my PC characteristics, here they are:
Intel i7 7800X 3.5Ghz 6 cores/12 threads
40 GB RAM 2600Mhz
M.2 250GB
So here couldn't be any issues with PC not being able to handle loads. Only 10GB of 40 was used at that moment and when I start typing with yats enabled one core gets loaded by 100% for few seconds.

Prepared two gifs, first with yats enabled, second without.

This is probably caused by your autocompletion plugin.
My suggestion is turning off some plugin and try again.
But sadly, bad performance is somehow by design. I have constantly optimize runtime performance but it turns out that advanced highlighting requires much regex matching.

Nope. Removed all, left only yats, one theme and airline.
Probably issue only for large ts files which takes time to be compiles/traversed by plugin.
P.S. Awesome plugin, really love it!

I'm sorry to hear that. By the way, would you like to provide one big file where you encountered the problem?

Sorry, I can't. I'm not allowed to show full listing.
But I'll try to find similar 1k+ ts files which are open source and open it with my current configuration.

FYI, I use yats in huge file like TypeScript compiler (about 20k lines of code). I didn't observe highlighting lag.

I'm also experiencing a ton of lag. Using typescript-vim is much smoother but it has far less highlighting as well. I also don't notice lag with other filetypes like c# or js.

I have implemented a lot of performance improvements in master branch.
You can try it out!
For me, yats in Vue single file component is also very performant now.

I'm unfortunately getting a ton of lag in small- to medium-sized .tsx files.
Speed delays are most seen when editing expressions nested jsx components.
Syntax is pretty friggen awesome, so this is sort of a bummer.

@dsifford can you provide an example tsx file?
Also, do you have other syntax highlight plugin installed?

I've ran into this as well, here is a file which is problematic for me: https://gist.github.com/tomaskallup/14f29f7e7fa30d200d1390cb5d9cbb95
If I start scrolling from the top it seems okay, but upon reaching line ~40 it start really struggling. There is also a small delay when typing.
Tested with vim-plug for plugin management and yats only.

I think I see the problem, it's the nested jsx tags!
For example this code:

            Test label

Hello

Hello

Hello

Hello

The nested
 element is in these highlight groups: ['tsxRegion', 'tsxRegion', 'tsxRegion', 'tsxRegion', 'tsxRegion', 'tsxRegion', 'tsxRegion', 'tsxRegion', 'tsxRegio n', 'tsxRegion', 'tsxCloseTag', 'tsxIntrinsicTagName'].
I'll mess around with this to see if I can figure out a way to get rid of the tsxRegion duplication.

Alright, for me the problem seems to be cause by set relativenumber. I found a discussion here https://github.com/vim/vim/issues/1735
Seems like vim does a full resyntax everytime it scrolls. Even though other tsx plugins work better with relativenumber, yats is probably the most complete one.
Although plugin which I use for javascript.jsx seems to be fine even with relativenumber on same file which makes yats struggle. I use https://github.com/mxw/vim-jsx, it just makes js work with xml with some addition, making it almost native, since xml is supported natively. Maybe this could be somehow adapted by yats?

YATS have become faster and faster, but arrow functions still cause a huge lag that makes it unusable:
  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME                   PATTERN
  5.663737   174    4       1.892243    0.032550  typescriptArrowFuncDef (\(\_s*[a-zA-Z\$_\[]\_[^)]*\)*)\s*=>

that's 1.89s(!) for the slowest one (I only have one function, the 4 matches are made by scrolling), and this is its code
    this.setup = () => Promise.resolve(result);

YATS still doesn't work for me, on simple cases. It freezes neovim and on Vim 8 it says 'redrawtime' exceeded, syntax highlighting disabled.
Here's a way to reproduce it:
Go to vim and :e file_without_extension so you'll open a file without any filetype inferred. Write the following contents:
wrapper(
  fn(input, a => a.a_very_long_text.another_very_long_text[0]),
)

Now run :set filetype=typescript and see it fails

I'm on neovim and doesn't observe any performance issue.
Please keep you vimrc minimal: that is, uninstall all other plugins. And try again.

I've commented out all of the vundle plugins and it still doesn't work, does the test case I mentioned works well for you? Maybe I need to actually delete all my plugins from ~/.vim

I've tried it on my heavy neovim configuration and no problems. Also seems to work fine with just yats installed.

Found that. I had set re=1 since my Ruby days. It made everything slow. Now it works great! Thanks!

Found that. I had set re=1 since my Ruby days. It made everything slow. Now it works great! Thanks!

This solved my issue as well! cheers @Schniz

I had the same issue ('redrawtime' exceeded, syntax highlighting disabled) with following option in vimrc: set regexpengine=1. The deletion was the fix... maybe it helps someone, too.

@HerringtonDarkholme The README suggests to add set re=1 in your vimrc, which is in fact the opposite of the recommended fix here -- these performance issues are incurred when re=1 so set re=1 should be removed from your vimrc.


Add runtime templates

Description

How Has This Been Tested?

Merge criteria:

[ ] The commits are squashed in a cohesive manner and have meaningful messages.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

Is there a jira for it?

Removing myself and Davide as reviewers and adding Sean and Daniele.

We can skip the prometheus.io/scrape annotation.

@VedantMahabaleshwarkar could you check the changes are okay for you? Is it confirmed I can remove the scrape annotation?

Initial testing is working with the DSC mentioned in the testing instructions.
Will now add the vLLM template and add @dtrifiro's suggestions.

/unhold

All testing details and results are shared in the main PR body


Granted caching fixes

What changed?

fixes an issue where existing cached credentials weren't purged when we refetch credentials
adds 'granted request check' to check the current status of JIT profiles
fixes to 'granted cache clear'

This PR removes some of the interactivity around 'granted cache clear' - it is a breaking API change but given that the previous API required manual user input, we do not believe this should be an issue for any users.
Why?
Issues seeing InvalidClientTokenId and general Granted caching issues when using Granted with Common Fate JIT backend.
How did you test it?
Verified that cache was being cleared properly, manually tested the granted request check command.
Potential risks
May impact cache refreshing in credential process
Is patch release candidate?
Link to relevant docs PRs

granted cache clear works as expected! For granted request check it returns nothing if the common-fate token does not exist:
~ on  main [?] on ☁<EMAIL_ADDRESS>took 3s
❯ dgranted request check --aws-profile GrantedInternalProduction/AWSReadOnlyAccess

~ on  main [?] on ☁<EMAIL_ADDRESS>took 2s
❯ granted auth login
[i] Opening your web browser to: http://localhost:18900/login
[✔] Successfully logged in

~ on  main [?] on ☁<EMAIL_ADDRESS>took 6s
❯ dgranted request check --aws-profile GrantedInternalProduction/AWSReadOnlyAccess
[✘] no active Access Request found for target AWS::Account::"382163615164" and role AWSReadOnlyAccess

and it does not show that I have access to the profile even if I do:
~ on  main [?] on ☁  Development/AWSAdministratorAccess (ap-southeast-2) [59m50s] on ☁<EMAIL_ADDRESS>took 3s
❯ dgranted request check --aws-profile Development/AWSAdministratorAccess
[✘] no active Access Request found for target AWS::Account::"385788203919" and role AWSAdministratorAccess

~ on  main [?] on ☁  Development/AWSAdministratorAccess (ap-southeast-2) [59m18s] on ☁<EMAIL_ADDRESS>took 3s
❯ dassume Development/AWSAdministratorAccess
[✔] [Development/AWSAdministratorAccess](ap-southeast-2) session credentials will expire in 1 hour

Fixed the issue where the access token is missing


[otbn] Automate tests in code-snippets directory

OTBN's code snippets directory has a fair amount of tests for different algorithms which need to be executed manually and then the result compared against a reference at the end of the test file. We should automate these tests (and probably run them in CI).

@rswarbrick anything planned here? I'll put a future release label on for now. Please change as appropriate if you're thinking of doing this for V2/V2S/V3 milestones

I don't think we're ever going to do anything here. Some of the snippets in question have been moved into the mask rom and are being tested properly there. The others probably don't need any testing. I think we should just close this.


dart analyze says "No issues found!" even if analyzer crashes

The following program crashes the analyzer:
foo() {
  void Function({@deprecated int i}) b = bar;
  print(b);
  b(i: 1);
}

bar({@deprecated int i = 0}) {}

I can tell that it crashes the analyzer, because (a) if I analyze it in my IDE, all IDE features that rely on the analysis server stop working, and (b) if I run the analyzer directly, using out/ReleaseX64/dart-sdk/bin/dart out/ReleaseX64/gen/dartanalyzer.dart.snapshot, it prints out a stacktrace.
However, if I analyze the program using dart analyze, it says:
Analyzing test.dart...
The analysis server timed out while shutting down.
No issues found!
The analysis server shut down unexpectedly.
Please report this at dartbug.com.

I think it's really misleading to print No issues found! in the case where the analyzer crashed; it would be really for a user to ignore the other text and assume their code was free of errors.

Seems like the error for the code above on the latest code is actually not a crash. This may have changed since the above, since the output is different - the current output doesn't suggest anything went wrong at all:
Analyzing sdk_49931...
No issues found!

And if I print the traffic there's also no indication of a failure:
Analyzing sdk_49931...
=STDIN=> {"id":"1","method":"server.setSubscriptions","params":{"subscriptions":["STATUS"]}}
=STDIN=> {"id":"2","method":"analysis.setAnalysisRoots","params":{"included":["C:\\Dev\\Test Projects\\sdk_49931"],"excluded":[]}}
<=STDOUT= {"event":"server.connected","params":{"version":"1.36.0","pid":3876}}
<=STDOUT= {"id":"1"}
<=STDOUT= {"event":"analysis.errors","params":{"file":"C:\\Dev\\Test Projects\\sdk_49931\\analysis_options.yaml","errors":[]}}
<=STDOUT= {"event":"analysis.errors","params":{"file":"C:\\Dev\\Test Projects\\sdk_49931\\pubspec.yaml","errors":[]}}
<=STDOUT= {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
<=STDOUT= {"id":"2"}
<=STDOUT= {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
=STDIN=> {"id":"3","method":"server.shutdown","params":null}
<=STDOUT= {"event":"analysis.flushResults","params":{"files":["C:\\Dev\\Test Projects\\sdk_49931\\analysis_options.yaml","C:\\Dev\\Test Projects\\sdk_49931\\pubspec.yaml"]}}
<=STDOUT= {"id":"3"}
No issues found!

If I enable the instrumentation log when using LSP I see the real exception (complete log here):
1709306238913:Ex:Analysis failed:: C::\Dev\Test Projects\sdk_49931\bin\sdk_49931.dart context:: exception_20240301_151718_913
type 'GenericFunctionTypeElementImpl' is not a subtype of type 'ExecutableElement' in type cast
#0      BaseDeprecatedMemberUseVerifier._isLocalParameter (package::analyzer/src/error/deprecated_member_use_verifier.dart::278::55)

I think I've seen this before - when analysis fails in this way, we reject the specific requests (for example if a Hover was sent it would return an error) but the errors aren't reported to the client during analysis. The code that "silently" handles this exception is here:
https://github.com/dart-lang/sdk/blob/152703335850b14728dea1ede8c8e1b69ca95d52/pkg/analysis_server/lib/src/analysis_server.dart#L726-L731
And references https://github.com/dart-lang/sdk/issues/39284. I guess the reason for this was to avoid spamming the user with errors, and in the case that we're running in an IDE we don't want to shut down the whole server just because a single file failed to analyse (maybe the user will modify the file and the issue goes away).
So, it's not totally clear what the fix is here..
We could report it as a diagnostic for the file - that would show up to the user in IDEs and also in the output here.. however, I don't know if this could cascade and the user end up with this error repeated for a large number of files if they happened to import the "broken" file.
Another option could be that we send it to the client (although in what kind of event?) with some throttling (eg. we don't send if we haven't sent one in the last x seconds/minutes).
@bwilkerson any thoughts?
(@stereotype441 btw, I don't know if this way of failing is the same as the one you saw this week, so it's possible that fixing the above won't fix that, so there might be an additional issue to resolve here.. do you happen to have any more info about the way it's failing and/or the output for that case?).

First, if the user has opted in to analytics and we hit https://github.com/dart-lang/sdk/blob/152703335850b14728dea1ede8c8e1b69ca95d52/pkg/analysis_server/lib/src/analysis_server.dart#L726-L731 the instrumentationService should be, directly or indirectly, a CrashReportingInstrumentation so that the exception is being reported. If that's not the case, then we need to fix that so that we're aware of bugs in our tools and can fix them.
When we're running from the command-line I think the behavior we want is to report to the user

that the analysis failed because of an internal bug,
some or all of the stack trace (at least for users that have analytics disabled),
the implication that the diagnostics might not be accurate, and
whatever diagnostics we were able to produce.

Using the legacy protocol we could do this using a server.error notification. If there are multiple exceptions then I suspect that it would be sufficient to report the first given that we don't have a reliable way to determine whether or not subsequent exceptions were a result of the first.
When running in an IDE I think the behavior is a little harder to get right. I think that's largely a result of the unknown impact of an exception on the state of the server. Sometimes it would be better for the user if we just stopped the server; sometimes it would be better if the server continues to run. Sometimes restarting the server would help, sometimes it would just result in an infinite restart-crash cycle.
While it seems reasonable to tell the user when the analysis results might be wrong, we need to consider whether there's a signal that we could use to tell the user when the analysis is once again trustworthy.
I don't like the idea of generating a diagnostic when an exception is hit because it's completely non-actionable from the user's perspective. That said, it has the benefit that when the file is re-analyzed, if we don't hit the exception, then the diagnostic will go away. I don't know whether we'd always know which library to report the diagnostic against given that we analyze a whole cycle at a time.
We might be able to do something similar that might be better. We could report, after each library cycle analysis, whether there were any exceptions in any of the libraries, report to the user when the first exception is reported, and report to the user again when the last exception is cleared. I don't know how complicated it would be to implement.

I don't know if this could cascade and the user end up with this error repeated for a large number of files if they happened to import the "broken" file.

I don't know either, but it does seem likely that the exception will leave the element model in an incomplete state and that there could be false diagnostics reported because of the state of the element model.

First, if the user has opted in to analytics and we hit
...
so that the exception is being reported

I added some logging to CrashReportingInstrumentation._sendServerReport and it showed up in the instrumentation log:
1709816095136:Info:Sending report to serverReports (null):: type 'GenericFunctionTypeElementImpl' is not a subtype of type 'ExecutableElement' in type cast

However, that's gated on a check to analyticsManager.analytics.okToSend, and that is always false for NoOpAnalytics which is what we always end up with here because of this check:
https://github.com/dart-lang/sdk/blob/7e2679df0596972cae9854032dbf0db987832cff/pkg/analysis_server/lib/src/server/driver.dart#L232=L237
In this case, client-id is dart-$commandName. So there are probably reports from VS Code users, but not from CLI or other IDE users. I don't know what the right fix is there - should we add dart-analyze to that condition, or should we try to eliminate the condition? (having to map incoming client-ids seems unfortunate... if other tools are using the LSP server and sending a good client-id, we'd never know about them unless they know to come and ask to be mapped here)

We might be able to do something similar that might be better. We could report, after each library cycle analysis, whether there were any exceptions in any of the libraries, report to the user when the first exception is reported, and report to the user again when the last exception is cleared. I don't know how complicated it would be to implement.

I think I understand the suggestion, but I also don't know how easy that'd be - in part because I'm not too familiar with the analysis of these library cycles. It seems like we'd need to track this status against a library cycle, but modifying code can presumably alter those, so I'm not sure how we'd manage that.
As a short-term fix, perhaps dart analyze could send some flag that makes the errors that go through the code above non-silent (--no-silent-errors or some env variable or something)? That would avoid changing the IDE behaviour (risking spamming or confusing users more than they may be already) but not hide the error from dart analyze.
Another possibility could be for dart analyze to ask for/pull the errors instead of getting them in subscriptions (some kind of custom request). This could also get avoid dart analyze needing to deal with the analysis status notifications, because the handling of the request could just wait for all in-progress analysis to complete before returning a result (or in the case of any analysis errors, return a failure). It does mean adding some dart analyze specific handling to the server though (LSP does have a pull-diagnostics request that we haven't yet implemented, but it's per-file).

Friendly triage ping: any updates on this one?

@pq
Sorry, no progress. There's an open question above about analytics (these crashes are going unnoticed), but I think the fix here is going to be a little more involved than first thought (it's not just handling the server crashing).
@bwilkerson

As a short-term fix, perhaps dart analyze could send some flag ...

That depends on whether the permissions for sending this kind of data comes from the dart tool or from the analysis server. I don't understand the criteria used to make that choice, so I can never remember which way we decided.

I'm not sure I understand what "permission" means here but I think my suggestion might not have been very clear. What I meant was unrelated to analytics, but whether dart analyze could start the server with some flag that could be used in ErrorNotifier.logException to not skip sending the errors to the client (dart analyze) when they are "SilentExceptions".
Specifically, this condition here:
https://github.com/dart-lang/sdk/blob/f7d5d0cfbeaade73f322811da5e1527cd053201f/pkg/analysis_server/lib/src/server/error_notifier.dart#L21-L24
This condition means that the analysis failure is not sent to the client. If the client (dart analyze) had indicated that it wants to know about "silent exceptions" and we sent it here, then I think dart analyze could handle this case better and show the user a better message.
There's probably still a question about whether all of these errors should be sent or only the first.. but if we send them all, dart analyze could choose what to show to the user.

... whether dart analyze could start the server with some flag ...

Sorry for the misunderstanding.
Yes, it would be fine for the command-line tool to use either a command-line flag or an optional field in a request to cause the server to behave the way it needs to in order to make this all work correctly.

With the changes in https://dart-review.googlesource.com/c/sdk/+/358902, the provided example no longer reports "No errors found!" and instead prints the exception (this was existing code, it just triggers):
PS C:\Dev\Test Projects\sdk_49931> C:\Dev\Google\dart-sdk\sdk\out\ReleaseX64\dart-sdk\bin\dart.exe analyze
Analyzing sdk_49931...
Error from the analysis server: Internal error: type 'GenericFunctionTypeElementImpl' is not a subtype of type 'ExecutableElement' in type cast
#0      BaseDeprecatedMemberUseVerifier._isLocalParameter (package:analyzer/src/error/deprecated_member_use_verifier.dart:282:55)
#1      BaseDeprecatedMemberUseVerifier._checkForDeprecated (package:analyzer/src/error/deprecated_member_use_verifier.dart:161:9)
#2      BaseDeprecatedMemberUseVerifier._simpleIdentifier (package:analyzer/src/error/deprecated_member_use_verifier.dart:232:5)
#3      BaseDeprecatedMemberUseVerifier.simpleIdentifier (package:analyzer/src/error/deprecated_member_use_verifier.dart:141:5)
#4      BestPracticesVerifier.visitSimpleIdentifier (package:analyzer/src/error/best_practices_verifier.dart:735:25)
#5      SimpleIdentifierImpl.accept (package:analyzer/src/dart/ast/ast.dart:16223:50)
#6      LabelImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:11110:12)
#7      RecursiveAstVisitor.visitLabel (package:analyzer/dart/ast/visitor.dart:1314:10)
#8      LabelImpl.accept (package:analyzer/src/dart/ast/ast.dart:11106:50)
#9      NamedExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:12610:11)
#10     RecursiveAstVisitor.visitNamedExpression (package:analyzer/dart/ast/visitor.dart:1404:10)
#11     NamedExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:12601:50)
#12     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:13034:20)
#13     ArgumentListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:510:16)
#14     RecursiveAstVisitor.visitArgumentList (package:analyzer/dart/ast/visitor.dart:810:10)
#15     ArgumentListImpl.accept (package:analyzer/src/dart/ast/ast.dart:506:50)
#16     FunctionExpressionInvocationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:8637:19)
#17     RecursiveAstVisitor.visitFunctionExpressionInvocation (package:analyzer/dart/ast/visitor.dart:1194:10)
#18     BestPracticesVerifier.visitFunctionExpressionInvocation (package:analyzer/src/error/best_practices_verifier.dart:495:11)
#19     FunctionExpressionInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:8626:15)
#20     ExpressionStatementImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:6379:17)
#21     RecursiveAstVisitor.visitExpressionStatement (package:analyzer/dart/ast/visitor.dart:1080:10)
#22     ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:6375:50)
#23     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:13034:20)
#24     BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1979:17)
#25     RecursiveAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:864:10)
#26     BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1975:50)
#27     BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1930:12)
#28     RecursiveAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:870:10)
#29     BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1922:50)
#30     FunctionExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:8547:11)
#31     RecursiveAstVisitor.visitFunctionExpression (package:analyzer/dart/ast/visitor.dart:1188:10)
#32     BestPracticesVerifier.visitFunctionExpression (package:analyzer/src/error/best_practices_verifier.dart:489:11)
#33     FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:8536:50)
#34     FunctionDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:8381:25)
#35     RecursiveAstVisitor.visitFunctionDeclaration (package:analyzer/dart/ast/visitor.dart:1176:10)
#36     BestPracticesVerifier.visitFunctionDeclaration (package:analyzer/src/error/best_practices_verifier.dart:468:13)
#37     FunctionDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:8375:50)
#38     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:13034:20)
#39     CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3650:21)
#40     RecursiveAstVisitor.visitCompilationUnit (package:analyzer/dart/ast/visitor.dart:942:10)
#41     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:3643:50)
#42     LibraryAnalyzer._computeWarnings (package:analyzer/src/dart/analysis/library_analyzer.dart:446:10)
#43     LibraryAnalyzer._computeDiagnostics (package:analyzer/src/dart/analysis/library_analyzer.dart:312:9)
#44     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:106:5)
#45     AnalysisDriver._analyzeFile.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1366:11)
<asynchronous suspension>
#46     PerformanceLog.runAsync (package:analyzer/src/dart/analysis/performance_logger.dart:50:14)
<asynchronous suspension>
#47     AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:1952:5)
<asynchronous suspension>
#48     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1236:7)
<asynchronous suspension>
#49     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2374:7)
<asynchronous suspension>

null
PS C:\Dev\Test Projects\sdk_49931>

(@stereotype441 I'm unable to confirm if the new crash you see is of the same kind, so you might have to test this to see if there's still another outstanding issue)
It turned out there were multiple reasons why errors weren't being sent to the client.. In addition to being "silent", the server reference was not set correctly in ErrorNotifier, and ErrorNotifier was never added to the set of instrumentation services (see the commit message on https://dart-review.googlesource.com/c/sdk/+/358902 for more details).
Because of this, there's the possibility that users weren't seeing other (non-silent) exceptions before that we expected them to, so we might see an increase in user reports of errors with that change (although I believe these would all be exceptions that are already occurring and being sent to crash reporting when triggered from VS Code).
I've opened https://github.com/dart-lang/sdk/issues/55260 for the other issue about analytics/crash reports not happening for these crashes from dart analyze.

(@stereotype441 I'm unable to confirm if the new crash you see is of the same kind, so you might have to test this to see if there's still another outstanding issue)

I patched in your change, and unfortunately it doesn't seem to address the internal use case I ran into ☹. Probably we should go ahead and land your change, and then let someone with internal access follow up on my issue. I'll add additional details of my findings to the internal bug report.

@DanTup is that the right next step?

Yes, I think so. https://dart-review.googlesource.com/c/sdk/+/358902 hasn't landed yet (I think it needs another review - @stereotype441 is listed as a reviewer because he triggered the bots but I don't know if he wants to review or someone else on the analyzer team?).
Once that lands, someone with internal access will need to debug the other issue.

I pinged Paul to see whether he can review the CL. If not, I'll fine someone else. I'm planning on closing this issue after the CL lands because any additional work should probably be tracked separately.

Any fresh updates here? Is this still a P1?

Any progress?

@bwilkerson I'm not sure who the question is for. Above, you mentioned finding someone else to review if Paul isn't able to.
However, I noticed the CL showed a merge conflict today (due to changing some lines around the same place as 017bed7b9adc901fb50990bc83f492ab529db6a3 did to change final->var) so I've rebased to fix that.

Thanks. Working on getting that second review...


NDRS-557: enable logging for external crates which use log rather than tracing

This allows third party crates which use log macros rather than tracing ones to have their log lines output too.
This is going to be particularly useful for my ongoing work with libp2p.  Once that work is integrated, we might need to look to provide a RUST_LOG env var for users who wish to see debug or trace level logging, since we'd likely only want to include that level of logging from our own crates.

bors r+


Bind warmup and open connections flow

The PR enables proactive connection management to distinguish between endpoints used by containers part of the connection warm up flow and endpoints used by containers excluded from the connection warm up flow.

If an endpoint has a connection closed / reset on it, proactive connection management attempts to reopen the connection on the endpoint if and only if it is used by a container which was also a part of the connection warm up flow. Otherwise, the connection is not reopened.
In GatewayAddressCache#tryGetAddress, new addresses are obtained for a physical partition when forceRefreshPartitionAddresses is set to true.

For such addresses, proactive connection management will open COSMOS.MIN_CONNECTION_POOL_SIZE_PER_ENDPOINT (JVM config) no. of connections if and only if the address / endpoint is used by a container part of the connection warm up flow.

Say, in GatewayAddressCache#tryGetAddress, addresses are fetched for a new partition which are not cached by the SDK and forceRefreshPartitionAddresses is set to false. It is still possible for such addresses to have the Unknown status. In such cases, if replica validation and proactive connection management are enabled, it can help open connections to such endpoints. If the endpoint is used by a container which is part of the connection warm up flow, COSMOS.MIN_CONNECTION_POOL_SIZE_PER_ENDPOINT (JVM config) no. of connections are opened. If not, only 1 connection is opened to the endpoint.
If a particular endpoint has an UnhealthyPending status for a certain duration, replica validation will kick start proactive connection management. If the endpoint is used by a container which is part of the connection warm up flow, COSMOS.MIN_CONNECTION_POOL_SIZE_PER_ENDPOINT (JVM config) no. of connections are opened. If not, only 1 connection is opened to the endpoint.

API change check
API changes are not detected in this pull request.

/azp run java - cosmos - tests

/check-enforcer override


Issues with some fullscreen apps

Window manager becomes unresponsive after some fullscreen apps have been started, ran and exited.

This is "fixed" as in, I found some workarounds. It seems the app in question remapped the keyboard.

Consider this "solved"


Remove kubectlImage and kubernetesVersion from internal

What this PR does / why we need it
Unused values, can be dropped.
Towards: https://github.com/giantswarm/roadmap/issues/3670
Checklist

[x] Updated CHANGELOG.md.

Trigger E2E tests

/run cluster-test-suites

/run cluster-test-suites

/run cluster-test-suites TARGET_SUITES=./providers/capz/private

/run cluster-test-suites TARGET_SUITES=./providers/capz/private

Merging this for now there is an ongoing issue for CAPZ private: https://github.com/giantswarm/giantswarm/issues/31617


Add meeting/slack details to readme

We've been discussing Allstar during the Scorecards bi-weekly, we need to add details to the readme.
Also we have a #allstar channel in ossf slack, add a link for that too.

Added to https://github.com/ossf/allstar/blob/main/CONTRIBUTING.md#community in #339


(docs)(DOCUMENT-730) Restore AIX mount option docs.

AIX options for the mount type were added in Puppet 3.x in #3769, along with documentation explaining those options. The options are part of Puppet 4 onward, but the documentation wasn't brought forward.
Restore the AIX documentation to the mount type's options.

CLA signed by all contributors.