Enable metrics and log collection using Azure monitor and Grafana dashboard

OMS agent collectes metrics and logs from AKS cluster and is already enabled in TF when bootstrapping the cluster.
There are settings however in this page which should be studied and suitable defaults applied. For example not sending env vars to logs.
Also explore if prometheus needs to be installed or integration of omsagent with prometheus scraping will be sufficient.
Grafana should be installed outside the cluster but probably in the vnet and be connected to the aks container insights workspace out of the box if possible. Also import standard dashboard and expose the url after installation.
Write/Incorporate standard starter queries in log analytics, show the results in grafana and create alers where necessary.
The intention is that out of the box there is a observable aks cluster which can be then extended as needed.

If going down installing prometheus then conside https://github.com/thanos-io/thanos

Grafana added out of the box connected to the cluster.
Alerts are missing.


setBackgroundColor does not have an effect on the obtained bitmap

Hi!
I'm using DrawableView, and I set the background color to white.  This does make the background white while I'm drawing, but when I call obtainBitmap I get a black background.  Is this expected?  If so, how can I make the 'real' background white

I guess you are right, we need to set the background in the obtainBitmap method

https://github.com/PaNaVTEC/DrawableView/issues/14


Update changelog for 0.7.0 release

Updated version of #211 with some added items and its own entry. I decided to put my name on the release, based on what I've read about Debian packaging procedures; if that's not right, I can change the name.
Note that these changes are a delta from the RC release; is that the correct thing to do? Or should it be relative to the last stable release (0.6.0)?
The list was based off of this diff: https://github.com/rhempel/ev3dev-lang-python/compare/fb3cdbc...develop

@dlech can you review?

It is traditional to give credit by starting a list item with [<name>] if it is not the person signing the changelog.
Also make sure to wrap to 80 lines. I didn't count, but one line looked kind of long, especially if you add the author.

OK, I'll add that.

:new:

Can I get a quick review from @dlech on this to confirm that it's properly formatted? If it is, we should be ready for release.

LGTM. You can use lintian to tell for sure that it is properly formatted.

I wasn't able to persuade lintian to do what I wanted with my low level of patience, so I'm going to assume it's fine :laughing: It might be good for whoever actually does the release to run it on the .deb that they produce just in case, but even that's probably overkill; even if the changelog isn't perfect, it will still do its job.
I'm going to merge this and draft a GitHub release (but not actually release it). Is there anything else that people want to do before the library is ready?


Appstudio update mvp-test-component

Pipelines as Code configuration proposal

Pipelines as Code CI/mvp-test-component-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
8 seconds
init

✅ Succeeded
24 seconds
clone-repository

✅ Succeeded
2 minutes
build-container

✅ Succeeded
17 seconds
sanity-inspect-image

✅ Succeeded
20 seconds
deprecated-base-image-check

✅ Succeeded
19 seconds
clair-scan

✅ Succeeded
58 seconds
clamav-scan

✅ Succeeded
11 seconds
sbom-json-check

✅ Succeeded
7 seconds
sanity-label-check

✅ Succeeded
7 seconds
sanity-optional-label-check

✅ Succeeded
7 seconds
show-summary


Fix long-standing (I think) bug in generating edoc for slacker_file.erl

I think that this bug was causing slacker_file.erl not to be generated.

Wow nice catch! Thanks.


Proposal: add API based end-to-end (aka e2e) testing

hi go-admin team, I'm the author of api-testing which is an API testing tool. It seems that no e2e testing in this project. I'd be happy to implement it if you belive it's worth.
In order to let you have a quick kowning about it. Please see also the user's of api-testing.

If you can, we'd really appreciate it!

Okay, I'm going to give it a try.


Experimental i18n implementation

Why these changes are being introduced:
We'd like to explore internationalization in our Rails applications
as a potential step toward making our platforms more accessible to
a global audience. TIMDEX UI is a good candidate for experimentation,
as it's still under active development.
Relevant ticket(s):
https://mitlibraries.atlassian.net/browse/TIMX-63
How this addresses that need:
This is a first attempt at localizing English (US) in TIMDEX UI. As
it is a large changeset with significant architectural implications,
it should be considered a draft PR for team review, so we can see and
discuss what i18n might look like in our ecosystem.
Side effects of this change:

In order to test the new controller method, an i18n test section
has been added to the style guide view. We don't want to inadvertently
mislead end users into thinking we've translated the app into a real
language, so we're testing with 'ewok' for now.
The record/misc view hasn't been localized because we're not yet
sure what to do with the data. It's worth noting, however, that this
view uses a lot of helper method logic that may significantly
increase the complexity of localization.
Several key architectural decisions are inferred here, including
the structure of the locale files, the way in which users switch
locales, and the extent to which we attempt to localize data from the
API. We will want to ADR these (and others) if we choose to move forward
with i18n.

Developer

[ ] All new ENV is documented in README
[ ] All new ENV has been added to Heroku Pipeline, Staging and Prod
[ ] ANDI or Wave has been run in accordance to
our guide and
all issues introduced by these changes have been resolved or opened as new
issues (link to those issues in the Pull Request details above)
[ ] Stakeholder approval has been confirmed (or is not needed)

Code Reviewer

[ ] The commit message is clear and follows our guidelines
(not just this pull request message)
[ ] There are appropriate tests covering any new functionality
[ ] The documentation has been updated or is unnecessary
[ ] The changes have been verified
[ ] New dependencies are appropriate or there were no changes

Requires database migrations?
NO
Includes new or updated dependencies?
NO

Pull Request Test Coverage Report for Build 0435b32c598a7e52b92b4da743c10c26d2467103-PR-66

9 of 9 (100.0%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.007%) to 99.422%

Totals

Change from base Build 7e2fde0463a876f9088eec0d963c3d79bfca4e55:
0.007%

Covered Lines:
344

Relevant Lines:
346

💛  - Coveralls


Update aws libs & release 0.14.0

Update aws libs & release 0.14.0
Use crates-io sparse fetch in CI which should speed it up a bunch

Shall we merge? @conradludgate @eopb


Unable to generate spec: read file info /usr/lib/erlang/man/man1/tasm.1.gz failed

Hi,
I'm trying to build riak from source on Debian Wheezy, and Ive got the following error during make rel:
==> Entering directory `/home/alx/code/riak/rel'
==> rel (generate)
ERROR: Unable to generate spec: read file info /usr/lib/erlang/man/man1/tasm.1.gz failed
make: *** [generate] Error 1

Full logs: http://paste.kafe-in.net/6w
Could someone give me an hint?
thanks a lot,
Alex

thanks for the solution.
I tried updating ElevelDB, editing 'rabar.config', but only this simple solution solved my issue
==> rel (generate)
ERROR: Unable to generate spec: read file info /deps/riak_control/test/javascripts/admin/css/css/css... failed
make: *** [generate] Error 1
solution
$ cd deps/riak_control/test/javascripts
$ sudo rm admin*
$ make rel


Add a rate limiter that counts all requests sent

Looks good! Some minor comments, also; please test it with Enter Play Mode Options enabled, unsure if all variables are reset and such.

Fixed


Timezone issue

Describe the bug
When I installed windows XP, my timezone inside this vm is correct but time is still GMT+0.
To Reproduce
Install XP.
My iPad Timezone is Hong Kong(GMT+8), XP Timezone is also GMT+8, but time is 8 hours behind. I set my time, and after I restart my vm, it returned.

using the QEMU argument -rtc base=localtime fixes this.


Automatically select the first row

So my use case is probably not that rare, you have a table of items at the top of the page and then details about those items in other components. So when the item table (ag-grid) gets populated you'd like the first row selected, and therefore a "selectedRows" event/callback gets invoked. That will populate the bottom components with the details of the selected row.  Here's an example. The first row is selected 'automatically' and therefore populates the bottom components.

When using dash DataTable, this is done via the 'selected_rows' attribute...
 table = dash_table.DataTable(
            id=component_id,
            columns=[{"name": "Status", "id": "status"}],
            data=[{"status": "Waiting for data..."}],
            sort_action="native",
            row_selectable=row_select,
            cell_selectable=False,
            selected_rows=[0],

I'm not finding the equivalent in Ag-grid, my stack overflow/chat-gpt is failing me :)
Here's a reproducible example.. any suggestions are greatly appreciated...
import dash
import pandas as pd
from dash_ag_grid import AgGrid

app = dash.Dash(__name__)

def select_first_row_js():
    """Return the JavaScript to select the first row in the table"""
    return (
        "function(params) {"
        "  var firstRowNode = params.api.getDisplayedRowAtIndex(0);"
        "  if (firstRowNode) {"
        "    firstRowNode.setSelected(true);"
        "  }"
        "}"
    )

df = pd.DataFrame({
    "A": [1, 2, 3],
    "B": [4, 5, 6]
})

app.layout = AgGrid(
    id='my-table',
    columnSize="sizeToFit",
    dashGridOptions={
        "rowHeight": None,
        "domLayout": "normal",
        "rowSelection": "single",
        "filter": True,
        "firstDataRendered": select_first_row_js(),
    },
    style={"maxHeight": "200px", "overflow": "auto"},
    columnDefs=[{"headerName": col, "field": col, "filter": "agTextColumnFilter"} for col in df.columns],
    rowData=df.to_dict("records")
)

if __name__ == '__main__':
    app.run_server(debug=True)

Hi @brifordwylie
Try removing "firstDataRendered": select_first_row_js(), and using the selectedRows prop

app.layout = AgGrid(
    id='my-table',
    selectedRows=df.head(1).to_dict("records"),
    # other props
)

@AnnMarieW thanks for the reply, I'll look at the Forums... for the 'reproducible' I went too simple. the tables/components in our UI are dynamic, the data in them gets updated dynamically, new stuff comes, old stuff goes... but back to the topic.. I don't have the dataframe when the AgGrid is created... so it gets populated from a callback that returns 'columnDefs' and 'rowData'. I've tried adding a third output 'selectedRows' but that doesn't seem to work either... if it's better I'll close this ticket and move this to the Forums.

Yes, this is a known issue in the latest release, so no need to post this to the forum.
You can find some potential workarounds and follow the progress here https://github.com/plotly/dash-ag-grid/issues/274

Okay, my Dash/AgGrid knowledge is a bit weak sauce... but looking at the workaround, there's a row_transaction and an async: False flag... so I've adjusted the reproducible example with those changes.. and still no luck, I'm sure it's pilot error :)
import dash
from dash import html, dcc, Input, Output, State
import pandas as pd
from dash_ag_grid import AgGrid

app = dash.Dash(__name__)

# Placeholder DataFrame
df = pd.DataFrame()

app.layout = html.Div([
    html.Button('Update Table', id='update-button', n_clicks=0),
    AgGrid(
        id='my-table',
        columnSize="sizeToFit",
        dashGridOptions={
            "rowHeight": None,
            "domLayout": "normal",
            "rowSelection": "single",
            "filter": True,
        },
        style={"maxHeight": "200px", "overflow": "auto"},
    ),
    html.Div(id='selected-row-info')  # Div to display selected row information
])

@app.callback(
    Output('my-table', 'columnDefs'),
    # Output('my-table', 'rowData'),
    Output('my-table', 'rowTransaction'),
    Output('my-table', 'selectedRows'),
    Input('update-button', 'n_clicks'),
    prevent_initial_call=True
)
def update_data(n_clicks):
    df = pd.DataFrame({
        "A": [1, 2, 3],
        "B": [4, 5, 6]
    })
    column_defs = [{"headerName": col, "field": col, "filter": "agTextColumnFilter"} for col in df.columns]
    row_data = df.to_dict("records")
    selected_rows = df.head(1).to_dict("records")
    # return column_defs, row_data, selected_rows
    return column_defs, {"add": df.to_dict("records"), "async": False}, selected_rows,

@app.callback(
    Output('selected-row-info', 'children'),
    Input('my-table', 'selectedRows')
)
def update_selected_row_info(selected_rows):
    selected_row_info = f"Selected Row: {selected_rows[0]}" if selected_rows else "No row selected"
    return selected_row_info

if __name__ == '__main__':
    app.run_server(debug=True)

Also, just a quick thanks to the maintainers of this project. I know open source is sometimes a thankless job. I have a few projects myself. https://github.com/SuperCowPowers. Anyway, big fan, I see there's an Enterprise version for AGGrid, If I buy that does it support the maintainers for this project? I'm also using Bootstrap templates and components, would like to find a path to support the right folks.


Digitalocean spaces adapter

This PR, adds DoSpaces adapter which extends S3 adapter to easily support DigitalOcean Spaces storage.

@eldadfux I have run the tests locally on my own spaces instance and everything is working.

@eldadfux I have run the tests locally on my own spaces instance and everything is working.

Probably a good time to add a list of supported adapters on the README. I think you should also adjust the description of the repo on the top section of it.

Probably a good time to add a list of supported adapters on the README. I think you should also adjust the description of the repo on the top section of it.

@eldadfux I believe we can also have constants in Storage class regarding various supported device adapters, what do you think?

@eldadfux I believe we can also have constants in Storage class regarding various supported device adapters, what do you think?

@eldadfux I believe we can also have constants in Storage class regarding various supported device adapters, what do you think?

Good call!

@eldadfux I believe we can also have constants in Storage class regarding various supported device adapters, what do you think?

Good call!

@eldadfux have made the requested updates

@eldadfux have made the requested updates


BatchUpdateAsync   exception

   //test 1
       await _repository.BatchUpdateAsync<VisitTask>(t => t.Id==Guid.Empty, u => new VisitTask() {
                SuggesteFinishedTime = u.IsUrgent ? DateTime.Now.AddDays(2) : DateTime.Now.AddDays(7),
            });

  Error :  variable 'u' of type 'IRaCIS.Core.Domain.Models.VisitTask' referenced from scope '', but it is not defined",

   //test 2     can generate sql
       await _repository.BatchUpdateAsync<VisitTask>(t => t.Id==Guid.Empty, u => new VisitTask() {
                Code= u.Code+1,
            });

Can you write entire code for Test

Can you write entire code for Test

I refer to your Usage，Incrementing a column is no problem.
But it is problematic to set the value of a column based on the value of another column.
You can try batch updates like the one I described in any project that uses EFCore.BulkExtensions

Having the same issue, was following the docs as per OP
When I reference another column such as in a conditional, I get this error.

I have very similar issue. I am trying to trim column with Substring:
await _ctx.MyTables
  .Where(e => EF.Functions.Like(e.Name, "XXXXX %"))
  .BatchUpdateAsync(e => new MyTable { Name = e.Name.Substring(6) });

Having the same issue. BatchUpdate() does work if you want to set values to constants or operations on values that come from the functions scope, but it throws the same error for me if I want to make operations on the results returned by Where()

Since Batch ops as of EF7 are now natively supported with ExecuteUpdate/ExecuteDelete Batch extensions will become Deprecated here. Focus is only on BULK methods which is the main purpose of the lib.


Proper Priority

Firstly Nits then iiits and then gfti should be given priority

@JAI-ARORA if you want to work on it, then we'll be glad !


Adding MySQL Support

Hi!
I think this is very useful, because if we want to use Bamboo for production needing a mysql database. So it's nice to have the necessary mysql connector already installed. (It's just +1MB)

Good work on the pull request, I require these same changes for our setup and the latest versions of Bamboo require Java 1.8


What tools are required in producing the output from the input

At present, it appears that most methods of validation will have to be implemented manually, as during initial research, tools for some of these methods either do not exist or exist only in closed sources (such as the MoD).
Some methods are presented in dissertation section 2.5.3, however these only detail the method not any tools or implementations.
For evaluating credibility, both the US army and UK police have scales for determining provenance, credibility, reliability & veracity.

So nearly all methods will be implemented by me unless I find any tools or libraries that can do these methods.

Tools:

Git/Github for source control and management
Python 3.8 (same version as google colab, which is where the BERT model is hosted/demoed)
Google colab TPUs using google cloud

Will create as much code locally as possible
Avoids costs and complications with google cloud
Need to talk to IT help regarding organisational access to google cloud TPUs.

Internet crawlers, for as many sites as possible (conventional news, social media)
BERT QA model to help with crawling through websites (in document form) and finding key information

See (Upadhayay et al., 2020)  for their use of the model

Reply with other libraries that are used (collect references in this discussion)


Validation: Existence and Unique rules, specify the database connection to use?

Hey,
Never had a use case for this until now however I think this functionality should be available by default, for example with an exists rule:
'exists:staff,email,connection,...'
This could also be added without breaking any code for people who're using the additional query params by checking to see if the 3rd param is within the list of connections, if it is then the likelyhood of that being a query param is small.

When it comes to unique validate
'email' => 'required|email',
how to change db connction to another db?
like this
'email' => 'email|unique:another_db.user


source code

Is that source code is opensource.

Unfortunately not yet. This is still an ongoing research and we haven't yet decided if we will open source the code.
Perhaps if you described your need for the code I good point you out to some materials that could be useful.


Don't submit too much damage

See the individual commits.
I wonder whether wlr_output_damage_attach_render should call wlr_output_set_damage for you. Compositors can always call it again to override it (or stop using wlr_output_damage, it's just a helper after all). @ammen99 Would this be something you'd want to override?
Fixes #1665

@emersion I am a bit confused by what exactly you are asking, I'll need to look more closely into the commits. Anyway Wayfire doesn't always know what will be repainted at the very start of the frame (i.e on attach_renderer), so I need to set this damage at the end of the frame.

I'm asking whether you take the damage from wlr_output_damage and pass it to wlr_output directly without modifying it. Apparently no?

No, sometimes I need to repaint more (even the whole output).

No, this is ready to be merged. I'd like the release notes to indicate that rootston's behaviour was wrong (so that compositors using it as a reference can be fixed).
I'd also like to explore options to make it easier for compositors to get it right, I guess this should wait for https://github.com/swaywm/wlroots/issues/1197.


Crashlytics: Multiple Firebase projects at runtime and DSYMs files for them

Description
Currently we use multiple Firebase projects that we connect to at runtime.
Let's say eu and us with corresponding GoogleService-Info and GoogleService-Info-us plists.
And we get auto-uploading DSYMs working only for the eu Firebase project, as I understand cause GoogleService-Info plist is used for DSYM by default if no explicit mentioning.
Build Phases script:
"${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
Input Files:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

Following current DSYM instructions, even if I add paths to the both GoogleService-Info and GoogleService-Info-us in Input Files, it doesn't work.
Any ways how to get it working? Thanks.
Reproducing the issue
No response
Firebase SDK Version
10.23.0
Xcode Version
15
Installation Method
Swift Package Manager
Firebase Product(s)
Crashlytics
Targeted Platforms
iOS
Relevant Log Output
No response
If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet

Replace this line with the contents of your Package.resolved.

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet

Replace this line with the contents of your Podfile.lock!

Thanks for reporting, @ppave. Could you share the complete run script you're using or a reproducible app?

All the above.
It works good for the default GoogleService-Info plist.
But the app has several GoogleService-Info plist files and user chooses one to connect at runtime.
But looks like DSYM configuration happens only for one GoogleService-Info plist file at compile time.

Hey @ppave,
Thank you for reaching our, currently Crashlytics only supports for Firebase default app. You might get confused with DSYM upload process vs crash uploading process. For DSYM upload there is a way you can upload your symbol files to multiple firebase project but I don't think it is related to you problem. For crash uploading all crashes will upload to the GoogleService-Info associated to your default Firebase app. An alternative I can think about is to add custom key to mark which region the user belongs to for a certain crash. If you need more complicated analysis you can leverage on BigQuery for that.

Thanks @themiswang for details, let me check


Dashboard explore UI broken by bad query

Steps to reproduce:
List the minimal actions needed to reproduce the behavior.

load up dashboard explorer
watch the drop

Expected behavior:
Expected to see options and so forth come up from successful query response.
Actual behavior:
Error (not found) from bucket name being undefined.
req http://localhost:8080/api/v2/query?orgID=bacbc10d8e1c6b4d body:
{"query":"from(bucket: \"undefined\")\n  |> range(start: -1h, stop: now())\n  |> filter(fn: (r) => true)\n  |> keep(columns: [\"undefined\"])\n  |> group()\n  |> distinct(column: \"undefined\")\n  |> limit(n: 200)\n  |> sort()","dialect":{"annotations":["group","datatype","default"]}}

note: there multiple undefined values stringifed here
resq from query for list of buckets http://localhost:8080/api/v2/query?orgID=bacbc10d8e1c6b4d:
{"query":"buckets()\n  |> sort(columns: [\"name\"])\n  |> limit(n: 200)","dialect":{"annotations":["group","datatype","default"]}}

resp:
#group,false,false,false,false,true,false,false
#datatype,string,long,string,string,string,string,long
#default,_result,,,,,,
,result,table,name,id,organizationID,retentionPolicy,retentionPeriod
,,0,_monitoring,000000000000000b,,,604800000000000
,,0,_tasks,000000000000000a,,,259200000000000
,,0,bucket1,5ac79b7affae96ce,bacbc10d8e1c6b4d,,0

could be related to the following: https://github.com/influxdata/influxdb/pull/16559

@jsteenb2 are you still able to reproduce this?


Possible problem when updating to 0.2.2 (SAIC_URI?)

Hi,
I recently updated to  v0.2.2, from v0.2.1. After the update it seemed like the MQTT client didn't have any contact with the API. The values didn't get refreshed and I couldn't send commands. Tried to login with the iSmart app, which worked. But when i returned to the addon (and did a restart of course), the problem persisted.
So, I did a complete uninstall of the addon and did a clean install of 0.2.2. After configuring everything it suddenly worked again.
One thing I noticed was that, when I entered the settings after the clean install, the field SAIC_URI was there, preconfigured with the "tap-eu..." URL. I don't think that I saw that field when I looked at the settings the first time (after upgrading 0.2.1 to 0.2.2). It got me thinking that this is an upgrade issue, where the SAIC_URI never gets added, so that the client won't connect to the API or so?
Anyway, it works for me now, but I thought that this maybe something to keep in mind if there are others with the same problem.

I can confirm the behavior (see logs):

2023-06-05 00:01:40,328 Invalid URL '/TAP.Web/ota.mp': No scheme supplied. Perhaps you meant https:///TAP.Web/ota.mp?
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/saic_ismart_client/saic_api.py", line 583, in send_request
    response = requests.post(url=endpoint, data=hex_message, headers=headers, cookies=self.cookies)
  File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 573, in request
    prep = self.prepare_request(req)
  File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 484, in prepare_request
    p.prepare(
  File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 368, in prepare
    self.prepare_url(url, params)
  File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 439, in prepare_url
    raise MissingSchema(
requests.exceptions.MissingSchema: Invalid URL '/TAP.Web/ota.mp': No scheme supplied. Perhaps you meant https:///TAP.Web/ota.mp?
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/src/app/./mqtt_gateway.py", line 418, in run
    login_response_message = self.saic_api.login()
  File "/usr/local/lib/python3.10/site-packages/saic_ismart_client/saic_api.py", line 109, in login
    login_response_hex = self.send_request(login_request_hex,
  File "/usr/local/lib/python3.10/site-packages/saic_ismart_client/saic_api.py", line 594, in send_request
    raise SaicApiException(f'{e}')
saic_ismart_client.saic_api.SaicApiException: Invalid URL '/TAP.Web/ota.mp': No scheme supplied. Perhaps you meant https:///TAP.Web/ota.mp?
Invalid URL '/TAP.Web/ota.mp': No scheme supplied. Perhaps you meant https:///TAP.Web/ota.mp?

With python gateway v0.2.2 it's necessary to fill out all fields with default values. I didn't know that yesterday while creating the update for my add-on. But I fixed it with 2 commits :)
It's not possible to push another update to home assistant because we use the docker image tag.


FLOPs calculation

Hello, may I ask how the FLOPs calculations for the SAFDNet ablation studies were computed? Thank you very much!

Hello, may I ask how the FLOPs calculations for the SAFDNet ablation studies were computed? Thank you very much!

Calculate the FLOPs T of dense afd_layers and dense head (using dense feature maps)
Calculate the average sparsity S
Calculate The approximate FLOPs TxS


Fixed Cron.ValidUntil using incorrect ISO8601 parsing format

What this PR does / why we need it:
The parsing method currently used for validating Cron.ValidUntil tries to convert the given value to ISO8601 Duration when it should be parsing for Datetime.
You can see this in the 0.8 spec's example definition found here: https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md#cron-definition

validUntil | Specific date and time (ISO 8601 format) when the cron expression is no longer valid

Special notes for reviewers:
If there is a preference for a different ISO8601 timestamp parser library over github.com/relvacode/iso8601 I am welcome to any suggestions.

Hi @venera-program Thanks for submitting this PR.
Isn't the time.Parse() enough?
It can handle RFC-3339 / ISO-8601 date-time as well.

@spolti How would we determine the correct layout to use in time.Parse(layout, value string)? Serverless spec does not define a specific format other than "ISO 8601 format" for this field. Additionally, there is no field for specifying a layout for ValidUntil"; therefore we should probably aim to support as many layout variations as we can allow. Using time.Parse` does not sufficiently fill that role.


Fix placement of codecov yaml

Codecov Report

Merging #13 (4d9b0d7) into main (ac0382b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #13   +/-   ##
=======================================
  Coverage   72.97%   72.97%
=======================================
  Files           2        2
  Lines          74       74
=======================================
  Hits           54       54
  Misses         12       12
  Partials        8        8

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 ac0382b...4d9b0d7. Read the comment docs.


Add 4 bit quantization support

Feature request
Onnxruntime 1.16.0 added 4bit quantization support. So, it would be nice if 4bit quantization support is added in convert.py.
Motivation
This will reduce memory usage and inference time
Your contribution
_

Update: Apparently int4 quantization requires avx512 so most probably this should be on low priority for implementation(if at all implemented). So, closing the issue


PageTransitionsTheme, new MountainView page transition

MaterialPageRoute transitions are now defined by the Theme. Added (optional) support for Android P style page transitions.
The default MaterialPageRoute transitions have not changed: the horizontal CuperitinoPageTransition is still used when the target platform is iOS and the fading upwards transition is used for all other target platforms.
Added a ThemeData.pageTransitionsTheme which provides the default implementation of MaterialPageRoute.buildTransitions per target platform. Subclasses of PageTransitionsBuilder define buildTransitions methods for one target platform.
Three PageTransitionsBuilder subclasses are provided: FadeUpwardsTransitionsBuilder, CupertinoPageTransitionsBuilder, OpenUpwardsPageTransitionsBuilder.
By default PageTransitionsTheme only includes FadeUpwardsPageTransitionsBuilder, and CupertinoPageTransitionsBuilder. The generic builder's target platform is null. It is used when a transitions builder with a matching platform is not found.
To use the new Android P style page transition when the target platform is Android, include OpenUpwardsPageTransitionsBuilder in the Theme's pageTransitionsTheme. For example:
new MaterialApp(
  theme: new ThemeData(
    pageTransitionsTheme: const PageTransitionsTheme(
      builders: <PageTransitionsBuilder>[
        FadeUpwardsPageTransitionsBuilder(),
        CupertinoPageTransitionsBuilder(),
        OpenUpwardsPageTransitionsBuilder(),
      ],
    ),
  ),
  ...
)

Two of the CupertinoPageRoute methods that had been used to enable building a MaterialPageRoute that used a "host" CupertinoPageRoute's buildTransitions() method have been removed or changed:
PageRoute<T> get hostRoute;  // also removed the constructor parameter
bool get popGestureInProgress;

The last method was replaced by a static method that reports the same value for any route that's using a Cupertino transition:
  static bool isPopGestureInProgress(PageRoute route)

These are backwards incompatible changes. However it seems unlikely that any existing apps depended on them.

I have to be honest the whole thing with the transitions having platforms feels very strange to me. I don't see why the opening up transition has any affinity to Android, and why the sliding one doesn't. I understand why the Cupertino one does, but only insofar as we have to use that one to enable the back gesture. Why can't the Theme declare what the right transition is based on the platform, rather than have the transitions think about the issue? (Notwithstanding that once you've picked a transition, it shouldn't change until it's over, even if you change platform, so that we don't crash when switching out of iOS mode with an active back gesture.)


Refactor LCSC API into seperate class

With this change the LCSC API can be used in other parts of the code and its a lot cleaner overall.

I've never used squash merge before but now that you pointed it out it is pretty useful 😅


Sync published with master 02-06-2019

Deploy preview for docsdocker ready!
Built with commit b853c7c290db7858339005ec4ffba20b5a396013
https://deploy-preview-8175--docsdocker.netlify.com


chore: Drop v1beta1 references

Fixes #N/A
Description
Dropping v1beta1 references for next release.
How was this change tested?
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>4
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+3.8%) to 83.025%

Totals

Change from base Build<PHONE_NUMBER>3:
3.8%

Covered Lines:
5512

Relevant Lines:
6639

💛  - Coveralls

What release can we expect this fix to be in?


Fix crash missing OGG importer's name conversion inside .import files

This PR fixes the crash from #73393.
I've implemented a small fix based on the observations of @gotnospirit about the OGG Vorbis importer's name change between Godot 3.x and 4.x.
Thus changing each

importer="ogg_vorbis"

line into

importer="oggvorbisstr"

inside "*.import" files, while in the conversion process, does fix the crash on runtime.

Just to be clear, what do you mean by crash? A crash usually refers to something like a segmentation fault, i.e. the program halts abruptly due to an illegal operation.
Here I expect the issue is just that some OGG files can't be loaded?

Just to be clear, what do you mean by crash? A crash usually refers to something like a segmentation fault, i.e. the program halts abruptly due to an illegal operation.
Here I expect the issue is just that some OGG files can't be loaded?

I'll try to recap. Let me know is something still isn't clear.
When I tried yesterday to run the issue's sample project in 4.1dev (without the PR), I thought it had crashed because there was an error popup when loading "MainScene.tscn". So I thought it was the "crash" mentioned in the issue and therefore the import problem (misunderstanding on my part).
However, by trying a new conversion now, still without the PR, I noticed that the loading error popup of the scene was rather due to a problem with the loading of the TTF file, surely because this one does not have an ".import" file before the conversion and thus during the initial loading of the scene.
When doing another conversion this time with the PR fix, I noticed that the scene loading error popup had disappeared.
Because of this, I think that the presence of the importer="ogg_vorbis" line (the old one) in the ".import" file of an OGG file seems to block part of the import process only during the initial launch of the converted project.
After this initial launch, Godot automatically corrects the importer="ogg_vorbis" line to importer="oggvorbisstr ", even without my PR, but only after closing the scene loading error popup, so outside the scope of the conversion.
Thus, fixing the old importer line with the new one  during the conversion prevents the initial scene pop error to appear.
Btw, the 4.0 stable release behaves the same as 4.1dev without the PR.

I did some testing and I can confirm that on 4.0.3, after initial conversion, the project on the first open shows this error:

And these errors in the terminal (most are to be expected when opening a project with existing .import files but no imported files):
ERROR: No loader found for resource: res://.import/night_theme.ogg-df5d434f7207740f45458a924fcef945.oggstr.
   at: _load (core/io/resource_loader.cpp:230)
ERROR: Failed loading resource: res://night_theme.ogg. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:222)
ERROR: res://Music.tscn:6 - Parse Error: [ext_resource] referenced non-loaded resource at: res://night_theme.ogg
   at: _parse_ext_resource (scene/resources/resource_format_text.cpp:174)
ERROR: Condition "!preset.is_valid()" is true. Continuing.
   at: load_config (editor/export/editor_export.cpp:227)
ERROR: Cannot open file 'res://.godot/imported/m6x11.ttf-bb038061aa28ea2a1e230221535a4e7a.fontdata'.
   at: get_dependencies (core/io/resource_format_binary.cpp:1249)
ERROR: Condition "!importer.is_valid()" is true. Continuing.
   at: reimport_files (editor/editor_file_system.cpp:2267)
ERROR: Condition "!importer.is_valid()" is true. Continuing.
   at: reimport_files (editor/editor_file_system.cpp:2267)
ERROR: Cannot open file 'res://.godot/imported/m6x11.ttf-bb038061aa28ea2a1e230221535a4e7a.fontdata'.
   at: load (core/io/resource_format_binary.cpp:1192)
ERROR: Failed loading resource: res://.godot/imported/m6x11.ttf-bb038061aa28ea2a1e230221535a4e7a.fontdata. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:222)
ERROR: Failed loading resource: res://m6x11.ttf. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:222)
ERROR: res://MainMenu.tscn:10 - Parse Error: [ext_resource] referenced non-loaded resource at: res://m6x11.ttf
   at: _parse_ext_resource (scene/resources/resource_format_text.cpp:174)
ERROR: res://MainMenu.tscn:10 - Parse Error: [ext_resource] referenced non-loaded resource at: res://m6x11.ttf
   at: load (scene/resources/resource_format_text.cpp:621)
ERROR: Failed loading resource: res://MainMenu.tscn. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:222)
ERROR: Index p_idx = 1 is out of bounds (edited_scene.size() = 1).
   at: remove_scene (editor/editor_data.cpp:581)
ERROR: Cannot open file 'res://.godot/imported/m6x11.ttf-bb038061aa28ea2a1e230221535a4e7a.fontdata'.
   at: get_dependencies (core/io/resource_format_binary.cpp:1249)

After closing the editor and reopening, the scene can be opened fine and everything is fixed.
With this PR applied on top of 4.0.3, it improves things slightly, as the error dialog no longer shows up, and the main scene loads fine.
The error spam is limited to this:
ERROR: No loader found for resource: res://.import/night_theme.ogg-df5d434f7207740f45458a924fcef945.oggstr.
   at: _load (core/io/resource_loader.cpp:230)
ERROR: Failed loading resource: res://night_theme.ogg. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:222)
ERROR: res://Music.tscn:6 - Parse Error: [ext_resource] referenced non-loaded resource at: res://night_theme.ogg
   at: _parse_ext_resource (scene/resources/resource_format_text.cpp:174)
ERROR: Condition "!preset.is_valid()" is true. Continuing.
   at: load_config (editor/export/editor_export.cpp:227)
ERROR: Cannot open file 'res://.godot/imported/m6x11.ttf-bb038061aa28ea2a1e230221535a4e7a.fontdata'.
   at: get_dependencies (core/io/resource_format_binary.cpp:1249)

In the master branch / 4.1 beta, the project seems to import fine after conversion with or without this PR. There's error spam too, but no blocking dialog preventing from opening the main scene. So this PR doesn't seem needed strictly speaking (it's expected that .import files will contain outdated info and what cannot be used will be replaced on load), but it shouldn't hurt, and can be cherry-picked to 4.0.

For the record, your commit seems not to be linked to your GitHub account. See: Why are my commits linked to the wrong user? for more info.
Specifically, the problem is that your Git email address is invalid. See the header from https://github.com/godotengine/godot/pull/74580.patch

Thanks! And congrats for your first merged Godot contribution :tada:


Schema.define could return associated instance

Found myself expecting Schema.define() to return the Schema instance when doing:
// In './Group.js'
import { arrayOf } from 'normalizr';
import User from './User';

export default new Schema('groups').define({
  users: arrayOf(User)
});

Thought it'd be a good idea if it did return it.

Yup, I think this is fine.

@xuoe could you add a unit test that checks that the instance is returned?

Nevermind, I'll add it myself.

@gaearon You may want to revert this one too if you think fluent APIs don't make sense here.

Yeah, sorry about the churn. We want to be very clear about which methods are mutating.


fix: npm_config env variables should be always lowercase

npm_config environment variables from .npmrc or npm config set <key> <value> will always be lowercase in process.env

Before you merge this, can you please read #44? 😅


Compress-Archive in readonly mode

When I compress an archive and some files are used by another precess, the zipping process doesn't go on, it says me "stream not readable".
Is there an option for continue on files reading error?

I am closing the issue as it is closely related to #89.


The GB18030 language is not supported when entering a name for the Function App

OS: Win10
Build Version: 20201009.4
Language for GB18030: All
Repro Steps:

F1 --> Select "Create Function App in Azure...(Advanced)" --> Enter a name with GB18030 language.
Check the result.

Expect:
There is no error.
Actual:
An error occurs when entering a name with GB18030 language.

More Info:
This issue also reproduces when entering the name for the function name/slot name.

@v-xinda can you create a separate issue for the "function name" bug? Slot name can stay in this issue, but function name will probably have to be addressed separately

@EricJizbaMSFT  I got it, I created a separate issue 2461 for the "function name" bug.

Tried this in the portal and it failed with a "Bad Request" error. May not be supported by the platform at the moment


Check if message is already a Hex

This might a little dangerous. The intent of signMessage is not to sign hexstrings but rather human readable messages. It might be totally possible that my message looks like a hexstring but I would want the behavior to be consistent there.
I think what is better is to have a verify function that verifies signatures for transaction signatures instead. This is already done in v4.

Hi, Snowy, thanks for the quick reply.
In fact, the signMessage can behave nowadays.
I see it more dangerous to stay as it is, because someone can sign a Hex Message and it will be converted to Hex again.
Thus, the only think I did was to check if the message is already a Hex, there is not dangerous implications.
Following the same reasoning, the verify do the same.
This is an urgent thing that we need.

closed via https://github.com/CityOfZion/neon-js/commit/5c762c5dc910a99c794c7103e3a06c54703cd68a#diff-021c7dc58adbef2486852c2ce5a36d72R148
A throw exception should still be included in signMessage and VerifyMessage functions it they are not string and are already a Hex.

closed via https://github.com/CityOfZion/neon-js/commit/5c762c5dc910a99c794c7103e3a06c54703cd68a#diff-021c7dc58adbef2486852c2ce5a36d72R148


button with id

I need to edit more than one button at the same time, so if you can add this you would help me a lot

Done, will be out to the next update.


Mobile support

Resolves #13
@leahcimto @gosoccerboy5

I thought this was in tfh.github.io and I was confused 😂


[ROCm] Added support for ShiftOps for AMDGPU

This PR solves the problem of tests not passing from test_shift_op.
The solution is that if the shift is performed at a distance greater than the width of the type, the result of such a shift equals zero.
I tested these changes on the triton-mlir-phase2 branch, since the triton-mlir branch has a problem with segfault in tests

To check this PR you can cherry-pick this commit on triton-mlir-phase2 and run the tests with
pytest test_core.py::test_shift_op
All 128 tests must pass successfully


add format-icons to river/layout

This PR enables the definition of format-icons to let you show an icon instead of the layout name.
Default behaviour stays the same.

@Alexays Sorry for the ping but is there any chance of this getting a review? I've been running this patch for the last few months and it's been working well for me


Add event for connect and disconnect

It would be a huge value to have the Fleet Telemetry server emit an event when a vehicle connects and disconnects, so that a third party service knows if a vehicle is awake or asleep/offline, and avoid polling the Fleet API when a vehicle is asleep or to find out when it wakes up.
I can see these events written to standard out, but they are not emitted through the event buses.

This is already supported. If the vehicle is awake and you are subscribed
to some fields then it will send data. When the car stops sending data then
it is asleep
On Sun, Jul 7, 2024 at 11:38 Brett Adams @.***> wrote:

It would be a huge value to have the Fleet Telemetry server emit an event
when a vehicle connects and disconnects, so that a third party service
knows if a vehicle is awake or asleep/offline, and avoid polling the Fleet
API when a vehicle is asleep or to find out when it wakes up.
I can see these events written to standard out, but they are not emitted
through the event buses.
—
Reply to this email directly, view it on GitHub
https://github.com/teslamotors/fleet-telemetry/issues/188, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABRFLPWIZP5DCHJIO57CQT3ZLEEARAVCNFSM6AAAAABKPGRKZWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM4TGOJXGQ2TOMQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

This is already supported. If the vehicle is awake and you are subscribed
to some fields then it will send data. When the car stops sending data then
it is asleep

That is incorrect, certain telemetry fields are only sent under certain conditions, so when you might think a vehicle is "asleep" might actually be the vehicle in park.


Problems with unicode character showing up when starting with this terminal(not when connected to attached tmux session)

Description
Some unicode characters don't show up when launching this terminal on macos, but work when connected via tmux on other session
Environment

Contour Version or Git commit hash: 0.2.0 1332(prerelease)
Operating System (name / distribution / version): macOS 11.3.1
Contour configuration: can reproduce with stock config
TERM environment variable: xterm-256color
Compiler version: didn't compile from source

Steps to Reproduce
Open the terminal. Here a detailed video
https://user-images.githubusercontent.com/57838468/128884455-c6ed4452-963e-4693-a0ce-11f0df4a7a60.mov

Current behavior (frame excerpt from the video):

Expected behavior (frame excerpt from the video):

@mTvare6 I just merged some font fallback related changes (and more) to master. So it might be interesting to know if that fixed it. I sadly quite much doubt that and instead think that your problem might be related to your locale settings.
Would you mind giving that a try? Check the output of  locale and echo $LANG`output and see if they differ when being in contour + no tmux and contour + inside tmux?
Mind, Contour currently only supports UTF-8, none of the other legacy encodings, such as iso-8859-15 etc. I also don't think it's actually worth implementing on new terminal implementations. I'm not hard-coded on that way of thinking. Maybe some other users/devs have an interesting insight on that point of view. ;)

@christianparpart default locale for macOS is C and LANG is unset:
~ via ⬢ v14.16.0 via 🐘 v7.3.24 via 𝗥 v1.52.1
➜ locale
LANG=""
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

@mTvare6
Try that one:  https://github.com/contour-terminal/contour/releases/tag/v<IP_ADDRESS>_rc2
And if you don't mind, please send me the locale output from outside and inside tmux, just like @uspasojevic96 did (I try to repro that though, too).

In tmux, opened with contour
LANG=""
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

In tmux, open with iTerm2
LANG=""
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

I am closing this issue, because I seem not to be able to get to reproduce it. It also is very long ago and we had no similar reports.
@mTvare6 if you happen to still see them, please reopen this issue and we then will probably need more input with a fresh look on it.


Test components PR

Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

This was a test PR to evaluate components vs flags for CodeCov. Closing now


Please invite me to the GitHub Community Organization

I want to join this organization

Once you submitted this issue, the GitHub Actions bot will send you an email invitation.
Please kindly accept to join our organization :smile:

To indicate your interest in joining this organization, kindly do the following:
- Go to the 'Issues' tab
- Click on the 'New issue' button
- Raise an issue titled 'Invitation to Your First Open Source Project Organization'


Restore the empty line after the license

Restores the empty line between the license header and the doc-comment or the first line of code.
I assume that was an accident in https://github.com/paritytech/substrate/pull/5947

bot merge


Add Numbers to heatmap

Thank you so much for this amazing package!
I am not sure if this might already be possible with the current version, but it would be amazing if instead of adding markers to a heatmap, we could display the actual values on top of the heatmap.
Thanks a lot!

Thanks for using Marsilea!
There are two ways to achieve this:

Pass annot=True to Heatmap, this is the same as seaborn.
There is a hidden plotter called TextMesh (not documented yet), you can use .add_layer() to add TextMesh on top of the heatmap, this will give you finer control over the style etc.

I'm trying to improve the documentation these days, feel free to ask questions or give suggestions!

@Mr-Milk Thanks so much ! The TextMesh solution worked perfectly.


Feature Request: Implement non ambiguous config parameters

Currently the config etc/ArchiveBox.conf.default doesn't have well defined parameters for multimedia content
This requires
#FETCH_MEDIA
to be made less ambiguous because images, flash objects, java objects and videos are all multimedia some maybe desirable while others might not be which would only prolong the archiving operation and decrease disk storage capacity.

FETCH_MEDIA is currently strictly for enabling/disabled youtube-dl, which downloads audio and video, toggling has no effect on flash/images/java/etc.  All the FETCH_ config keys are already going to be deprecated in v0.4.5 in favor of more granular settings.


Missing required packages to run this action at a self-hosted runner

I am trying to use a self-hosted runner to execute this action and this runner is based on an AWS EC2 instance with plain Amazon Linux 2. This action will fail due to the missing several packages:
[10](https://github.com/my_org/my_repo/actions/runs/12345/jobs/67890#step:6:11)
Setup chromium stable
[11](https://github.com/my_org/my_repo/actions/runs/12345/jobs/67890#step:6:12)
Attempting to download stable...
[12](https://github.com/my_org/my_repo/actions/runs/12345/jobs/67890#step:6:13)
Acquiring stable from https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
[13](https://github.com/my_org/my_repo/actions/runs/12345/jobs/67890#step:6:14)
Installing chromium...
[14](https://github.com/my_org/my_repo/actions/runs/12345/jobs/67890#step:6:15)
Error: Unable to locate executable file: ar. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.

I don't find any documentation on the required package ar and they can be found only by inspecting the source code. It would be great to automatically install these packages or re-implement the logic with a os-neural way, like using Nodejs pacakages instead.

I am seeing the same thing:
Setup chromium latest
Attempting to download latest...
Acquiring 1151437 from https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F1151437%2Fchrome-linux.zip?alt=media
Installing chromium...
/usr/bin/unzip -o -q /home/ec2-user/actions-runner/_work/_temp/088a102b-e56d-4061-a208-d1fb5f199e43
Successfully Installed chromium to /home/ec2-user/actions-runner/_work/_tool/chromium/latest/x64
Successfully installed chromium to /home/ec2-user/actions-runner/_work/_tool/chromium/latest/x64/chrome
/home/ec2-user/actions-runner/_work/_tool/chromium/latest/x64/chrome --version
/home/ec2-user/actions-runner/_work/_tool/chromium/latest/x64/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory
Error: The process '/home/ec2-user/actions-runner/_work/_tool/chromium/latest/x64/chrome' failed with exit code 127

Please refer #380 and #372


openssh 7.3p1

Merged in https://github.com/Homebrew/homebrew-dupes/commit/266ab0d3695449a9a723c53292a905e8850d9588. Thanks @alex! 😺


Adding product test for aborted transaction in Hive ACID

I like the approach, but creating an external table on a valid delta location, and then inserting data in ACID format with keeping the file name in format bucket_000XYZ, is not possible in product tests IMHO. Please let me know if you know a way around this.
To validate the 2nd point, I deleted the data present at a valid delta location. I created an external table on a valid delta location, inserted the data form this external table. But, then Presto select query failed with error:
o.prestosql.spi.PrestoException: ORC ACID file should have 6 columns: hdfs://hadoop-master:9000/user/hive/warehouse/dummy_id_data/delta_0000001_0000001_0000/000000_0

at io.prestosql.plugin.hive.orc.OrcPageSourceFactory.verifyAcidSchema(OrcPageSourceFactory.java:423)

So, this is validating our assumption that rolled back transaction won't be read from Presto, if it is being read, then the query will fail with the error mentioned above.

Yeah very good point  - I did not thing about the fact that external insert format would not match the ACID table requirements.
I would still prefer to have it tested continously not, one off manually.
The approach which could work could be:

crate ACID table t
insert delta A into t
create delta directory B for a failed transaction
create delta directory C for non failed transaction
copy contents of A to B and C
select from t and verify that we get the rows we inserted twice (presumably from A and C)

Actually it feels that it would be simpler than what you are doing right now.
And also more resemble the real world, because now we essentially put garbage into delta directory for aborted transaction.
It should be easily implementable using io.prestosql.tempto.hadoop.hdfs.HdfsClient we have already.
You have methods for listing and creating directories, reading and writing files. Should be enough.
Would you be fine giving it a try?

I like the approach, but creating an external table on a valid delta location, and then inserting data in ACID format with keeping the file name in format bucket_000XYZ, is not possible in product tests IMHO. Please let me know if you know a way around this.
To validate the 2nd point, I deleted the data present at a valid delta location. I created an external table on a valid delta location, inserted the data form this external table. But, then Presto select query failed with error:
o.prestosql.spi.PrestoException: ORC ACID file should have 6 columns: hdfs://hadoop-master:9000/user/hive/warehouse/dummy_id_data/delta_0000001_0000001_0000/000000_0

at io.prestosql.plugin.hive.orc.OrcPageSourceFactory.verifyAcidSchema(OrcPageSourceFactory.java:423)

So, this is validating our assumption that rolled back transaction won't be read from Presto, if it is being read, then the query will fail with the error mentioned above.

Yeah very good point - I did not thing about the fact that external insert format would not match the ACID table requirements.
I would still prefer to have it tested continously not, one off manually.
The approach which could work could be:

crate ACID table t
insert delta A into t
create delta directory B for a failed transaction
create delta directory C for non failed transaction
copy contents of A to B and C
select from t and verify that we get the rows we inserted twice (presumably from A and C)

Actually it feels that it would be simpler than what you are doing right now.
And also more resemble the real world, because now we essentially put garbage into delta directory for aborted transaction.
It should be easily implementable using io.prestosql.tempto.hadoop.hdfs.HdfsClient we have already.
You have methods for listing and creating directories, reading and writing files. Should be enough.
Would you be fine giving it a try?

Thanks for the suggestion @losipiuk . I have incorporated the approach you mentioned. Though, simply copying the data didn't work because of ORC getting malformed while copying. So, have to create ORC reader/writer to copy. Please have a look.

I like the approach, but creating an external table on a valid delta location, and then inserting data in ACID format with keeping the file name in format bucket_000XYZ, is not possible in product tests IMHO. Please let me know if you know a way around this.
To validate the 2nd point, I deleted the data present at a valid delta location. I created an external table on a valid delta location, inserted the data form this external table. But, then Presto select query failed with error:
o.prestosql.spi.PrestoException: ORC ACID file should have 6 columns: hdfs://hadoop-master:9000/user/hive/warehouse/dummy_id_data/delta_0000001_0000001_0000/000000_0

at io.prestosql.plugin.hive.orc.OrcPageSourceFactory.verifyAcidSchema(OrcPageSourceFactory.java:423)

So, this is validating our assumption that rolled back transaction won't be read from Presto, if it is being read, then the query will fail with the error mentioned above.

Yeah very good point - I did not thing about the fact that external insert format would not match the ACID table requirements.
I would still prefer to have it tested continously not, one off manually.
The approach which could work could be:

crate ACID table t
insert delta A into t
create delta directory B for a failed transaction
create delta directory C for non failed transaction
copy contents of A to B and C
select from t and verify that we get the rows we inserted twice (presumably from A and C)

Actually it feels that it would be simpler than what you are doing right now.
And also more resemble the real world, because now we essentially put garbage into delta directory for aborted transaction.
It should be easily implementable using io.prestosql.tempto.hadoop.hdfs.HdfsClient we have already.
You have methods for listing and creating directories, reading and writing files. Should be enough.
Would you be fine giving it a try?

Thanks for the suggestion @losipiuk . I have incorporated the approach you mentioned. Though, simply copying the data didn't work because of ORC getting malformed while copying. So, have to create ORC reader/writer to copy. Please have a look.

Thanks. I like that better. Some more suggestions:

Now logic the test and simulateAbortedHiveTransaction are so dependent on each other that IMO having those two separated makes code less readable. simulateAbortedHiveTransaction is not a generic helper method any more. I suggest that you inline simulateAbortedHiveTransaction into test method. Then you can have better naming for variables representing delta directories. I think it will make code read better.
I think using ORCReader/Writer is not great as it is production code - but I can live with that given fact that we are testing another aspect of code. Why simple copying did not work? What error did you observe?

I like the approach, but creating an external table on a valid delta location, and then inserting data in ACID format with keeping the file name in format bucket_000XYZ, is not possible in product tests IMHO. Please let me know if you know a way around this.
To validate the 2nd point, I deleted the data present at a valid delta location. I created an external table on a valid delta location, inserted the data form this external table. But, then Presto select query failed with error:
o.prestosql.spi.PrestoException: ORC ACID file should have 6 columns: hdfs://hadoop-master:9000/user/hive/warehouse/dummy_id_data/delta_0000001_0000001_0000/000000_0

at io.prestosql.plugin.hive.orc.OrcPageSourceFactory.verifyAcidSchema(OrcPageSourceFactory.java:423)

So, this is validating our assumption that rolled back transaction won't be read from Presto, if it is being read, then the query will fail with the error mentioned above.

Yeah very good point - I did not thing about the fact that external insert format would not match the ACID table requirements.
I would still prefer to have it tested continously not, one off manually.
The approach which could work could be:

crate ACID table t
insert delta A into t
create delta directory B for a failed transaction
create delta directory C for non failed transaction
copy contents of A to B and C
select from t and verify that we get the rows we inserted twice (presumably from A and C)

Actually it feels that it would be simpler than what you are doing right now.
And also more resemble the real world, because now we essentially put garbage into delta directory for aborted transaction.
It should be easily implementable using io.prestosql.tempto.hadoop.hdfs.HdfsClient we have already.
You have methods for listing and creating directories, reading and writing files. Should be enough.
Would you be fine giving it a try?

Thanks for the suggestion @losipiuk . I have incorporated the approach you mentioned. Though, simply copying the data didn't work because of ORC getting malformed while copying. So, have to create ORC reader/writer to copy. Please have a look.

Thanks. I like that better. Some more suggestions:

Now logic the test and simulateAbortedHiveTransaction are so dependent on each other that IMO having those two separated makes code less readable. simulateAbortedHiveTransaction is not a generic helper method any more. I suggest that you inline simulateAbortedHiveTransaction into test method. Then you can have better naming for variables representing delta directories. I think it will make code read better.
I think using ORCReader/Writer is not great as it is production code - but I can live with that given fact that we are testing another aspect of code. Why simple copying did not work? What error did you observe?

Thanks for the inputs @losipiuk . I will change to merge simulateAbortedHiveTransaction into the test itself.
Regarding using ORC writer, previously, I used hdfsClient.loadFile and then hdfsClient.saveFile to write to the file. But, then I got errors like malformed orc file invalid postscript, I tried different ways, but it didn't help. So, at last, I zeroed upon ORC writer/reader.

Regarding using ORC writer, previously, I used hdfsClient.loadFile and then hdfsClient.saveFile to write to the file. But, then I got errors like malformed orc file invalid postscript, I tried different ways, but it didn't help. So, at last, I zeroed upon ORC writer/reader.

Interesting, seems like bug in HdfsClient. To double check, you used the loadFile,saveFile versions which operate on byte streams (public void loadFile(String path, OutputStream outputStream), public void saveFile(String path, InputStream input)). Not helper versions which take, return data as String, right?

Regarding using ORC writer, previously, I used hdfsClient.loadFile and then hdfsClient.saveFile to write to the file. But, then I got errors like malformed orc file invalid postscript, I tried different ways, but it didn't help. So, at last, I zeroed upon ORC writer/reader.

Interesting, seems like bug in HdfsClient. To double check, you used the loadFile,saveFile versions which operate on byte streams (public void loadFile(String path, OutputStream outputStream), public void saveFile(String path, InputStream input)). Not helper versions which take, return data as String, right?

I used  loadFile(String path, OutputStream outputStream) to load file in an OutputStream, but then was not able to convert in InputStream for method saveFile(String path, InputStream input), so had to use hdfsClient.saveFile(b, new String(outputStream.toByteArray(), Charset.defaultCharset())); and other variants. If, you know the solution I can try that.

Regarding using ORC writer, previously, I used hdfsClient.loadFile and then hdfsClient.saveFile to write to the file. But, then I got errors like malformed orc file invalid postscript, I tried different ways, but it didn't help. So, at last, I zeroed upon ORC writer/reader.

Interesting, seems like bug in HdfsClient. To double check, you used the loadFile,saveFile versions which operate on byte streams (public void loadFile(String path, OutputStream outputStream), public void saveFile(String path, InputStream input)). Not helper versions which take, return data as String, right?

I used  loadFile(String path, OutputStream outputStream) to load file in an OutputStream, but then was not able to convert in InputStream for method saveFile(String path, InputStream input), so had to use hdfsClient.saveFile(b, new String(outputStream.toByteArray(), Charset.defaultCharset())); and other variants. If, you know the solution I can try that.

Going through String would not work as ORC is binary format.
Something like this should work:
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        client.loadFile(filePath, bos);
        client.saveFile(newPath, new ByteArrayInputStream(bos.toByteArray()));

Regarding using ORC writer, previously, I used hdfsClient.loadFile and then hdfsClient.saveFile to write to the file. But, then I got errors like malformed orc file invalid postscript, I tried different ways, but it didn't help. So, at last, I zeroed upon ORC writer/reader.

Interesting, seems like bug in HdfsClient. To double check, you used the loadFile,saveFile versions which operate on byte streams (public void loadFile(String path, OutputStream outputStream), public void saveFile(String path, InputStream input)). Not helper versions which take, return data as String, right?

I used  loadFile(String path, OutputStream outputStream) to load file in an OutputStream, but then was not able to convert in InputStream for method saveFile(String path, InputStream input), so had to use hdfsClient.saveFile(b, new String(outputStream.toByteArray(), Charset.defaultCharset())); and other variants. If, you know the solution I can try that.

Going through String would not work as ORC is binary format.
Something like this should work:
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        client.loadFile(filePath, bos);
        client.saveFile(newPath, new ByteArrayInputStream(bos.toByteArray()));

Yeah, I missed this workaround somehow. Updated the PR, thanks.

Clarified comments. Please squash commits.

Squashed the commit.

Clarified comments. Please squash commits.

Squashed the commit.

@losipiuk : The PR build is passed.

Merged thanks


INIT/Exchange pssnapin can load automatically

If starting Script direct in powershell without loading Exchange AddIns, it will get in require error.
u can fix it, by importing Exchange Addins, when they are not loaded. Check if they are allready installed on Server, which execute the script.
add-pssnapin Microsoft.Exchange.Management.PowerShell.SnapIn

What error are you receiving? When I open PowerShell, remote to an Exchange server, and run the script it works just fine. If you're getting an error we should look into it.
The other option is to run using the Exchange management shell.
Using Add-PSSnapin is not recommended by Microsoft except under specific support guidance, so I don't think we'll be adding that to the script.

Who said this?
U can list all registered snapins by Get-PSSnapin -Registered and check it, before u integrade it in your code by Add-PSSnapin... so u can catch the error.
For Example: When i want to execute your script by daily / weekly task, I don't want to insert the hole PSSnapin extend by -PSConsoleFile in my Task scheduler...
Think about

Here's some info:
https://blogs.technet.microsoft.com/rmilne/2015/01/28/directly-loading-exchange-2010-or-2013-snapin-is-not-supported/
We'd be taking an unsupported approach just to make your scheduled task more convenient to define.

I agree with Paul. Loading the Exchange environment involves more than just loading the snapin. It also loads the various Exchange types into ETS and formatting information for the various output cmdlets. We develop assuming all of that is in place.

Yeah I'm with @cunninghamp on this too. Suggest closing.

Closing this one, as we agree not to take an unsupported approach.


add files from m65264. mpegH preselections. Fraunhofer IIS

@DenizUgur  I took the liberty of merging 'main' into this branch as well s.t. the manualDump feature is available. I hope that's alright.

Reviewed by Dolby.


Add to arduino library manager

Please get listed at arduino, so this library can be easily installed using arduino library manager using few clicks. It's quite simple. Just add "library.properties" file to your repo and let them know:
https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ#how-can-i-add-my-library-to-library-manager

Hi, thanks for your suggestion.
It clearly would be a useful integration but I wonder if it meaningful in this state.
As pointed in another issue (#1), this is not compatible without modification for all the boards.
This could be added of course but I have to find some time to do it right.
And I do not know if my use of the TIMER1 is compatible with all the Arduino libraries as I edit the registers directly.
I'm not using the Arduino from some time so I do not know if all Arduino libraries from the Library Manager could be imported at once without conflicts but I can see it as an expected feature from the point of view of users of the IDE.
I can see that you started a project similar (https://github.com/Harvie/ps2dev) based on other implementations.
Can you explain the main difference between mine and yours ? (from rapid checkout, seems like mine is interrupt-driven, so can be used easily for running other code in parallel without perturbing timings)
Maybe we could join the effort :)

I can see that you started a project similar (https://github.com/Harvie/ps2dev) based on other implementations.

I am not author of that code. It was some kind of library that was echoing through the internet forums, but was lacking proper repository and documentation. So i created the repository for it, added arduino metadata and made request so it can be added to arduino library manager. Also i added some basic documentation and examples on how to use it. I guess this will enable people to collaborate on improving it.
There are still some issues with timing, so there's need to call delay(50) after each byte is sent. Hopefully i'll track it down, so this is not needed.
I've just quickly peeked at your code and it seems to me that your code is bit more complex. Also ps2dev can only work as mouse/keyboard, but can't read data from keyboard.. While your library can do both directions... However in arduino library manager there are already some libraries which can read data from keyboard. But there is none, which can act as keyboard, that's why i started working on this...

I do not know if all Arduino libraries from the Library Manager could be imported at once without conflicts

You can install as many libraries as you wish... IDE will just download it and put it in your libraries folder... But of course there might be conflicts when you #include incompatible libraries in single sketch... But that will hapen even without library manager...

And I do not know if my use of the TIMER1 is compatible with all the Arduino libraries as I edit the registers directly.

Arduino has some timer/interrupt abstraction layer, so if you can use that instead of directly modifiing registers, you should be OK. They have separate implementation for each board, but API is the same, so you can use that.
If you need something special that is not implemented in arduino, you can use #ifdef statements to choose the right code for each platform. But i doubt this will be needed for such simple case as ps2 protocol...

Maybe we could join the effort :)

These two implementations seem to be different and i don't see how we can merge them to single library. But i think we might synchronize the API, so people will be able to use both libraries interchangeably. But to be honest i like the ps2dev syntax better :-)
Both ps2dev and ps2-keyboard are low level libs. But if we have common API, we can start implementing some high level features in way that it will be able to run on top of both libs.
Eg.: scancode table which will enable us to send arbitrary string to be typed on computer screen without having to worry about stuff lake make/break or shift for uppercase letters.

I am not author of that code. It was some kind of library that was echoing through the internet forums, but was lacking proper repository and documentation. So i created the repository for it

However in arduino library manager there are already some libraries which can read data from keyboard. But there is none, which can act as keyboard, that's why i started working on this...

Didn't know about that library, but it's great to see these kind of libraries easily available. Thanks for fulling the gap of simulating a keyboard then.

There are still some issues with timing, so there's need to call delay(50) after each byte is sent. Hopefully i'll track it down, so this is not needed.

I was not talking about these delays but more about the delays in the library itself ( delayMicroseconds(CLKFULL)), this is fine for a project where it is fine for the CPU to be absolutely blocked when used for sending keystrokes.
My implementation may seem a bit more complex because my use case was to be able to do these two tasks concurrently:

listens for keys sent from a PS/2 keyboard and forwards them to the computer
listens for codes received in DTMF (sent by an iPad from the audio jack port) and send keystrokes representing theses codes to the computer

These was for integrating an iPad generating some data for old cash system in a store. Some keyboards are very touchy about PS/2 timings, if you do not respect absolutely the 40us, you're out and sometime you even have to power cycle the keyboard to make it work again !
The DTMF decoding is also quite time sensitive.
Keyboards and DTMF events can happen at the same time, so you don't have much time to react and you cannot just afford to do "wait for a key event, then listen for DTMF, then send keys, and repeat", all have to happen simultaneously.

Arduino has some timer/interrupt abstraction layer, so if you can use that instead of directly modifiing registers, you should be OK.

Unfortunately, this api does not let you configure the timer as precisely as I would have needed.

Both ps2dev and ps2-keyboard are low level libs. But if we have common API, we can start implementing some high level features in way that it will be able to run on top of both libs. So people will be able to chose if they want interrupt based (when they need more free cycles) or synchronous communication (for when they need more free timers)

I like that idea, we could tell people that synchronous library is more compatible with other libraries  and should be used by default while interrupt based may not work with other libraries using the timer 1 (I do not know if there is a list for that) but could free up some CPU resources.
I think the only blocking point then is the compatibility with other boards. I may look at the references, but I don't have other boards to actually test it.
I'll try to do that when I have some time and I'll map my API to yours :)

Eg.: scancode table which will enable us to send arbitrary string to be typed on computer screen without having to worry about stuff like make/break or shift for uppercase letters.

A higher-level API would be greatly appreciated. I had contact with a few person wanting to use ps2-keyboard and they struggle to know how to use it to send actual keys to the computer. So would be definitely a good contribution :)

Some keyboards are very touchy about PS/2 timings, if you do not respect absolutely the 40us, you're out and sometime you even have to power cycle the keyboard to make it work again !

Is 40us given by protocol specs? I was thinking about clocking whole thing bit faster for higher keystroke rates...

There are still some issues with timing, so there's need to call delay(50) after each byte is sent. Hopefully i'll track it down, so this is not needed.

I was not talking about these delays but more about the delays in the library itself ( delayMicroseconds(CLKFULL)

Yes i know. But there's some bug in ps2dev, which causes that there has to be aditional delay after each byte write() added by API user. I saw other people doing delay(100), but i tried delay(50) and it seems to work as well... But now that i know that ps2 timing is in microseconds i want to figure shortest possible delay and add it directly into the write() method, so people don't need to call the delay separately.
I am not sure if this is caused by missing parity bit. Maybe the computer expects parity bit and if you start sending another byte at that time, the first bit is interpreted like parity of the previous byte, instead of first bit of new byte....

they struggle to know how to use it to send actual keys to the computer.

I struggle too... I've never learned scancodes before, but it turns out there are several scancode tables... I've found that this is how you press and release 0 button: 0x45 0xF0 0x45, but before i saw some scancode table that was doing release of button using single byte...

A higher-level API would be greatly appreciated.

I was implementing numeric-only keyboard and all i needed was this scancode table:
char scancodes[] = {0x45, 0x16, 0x1E, 0x26, 0x25, 0x2E, 0x36, 0x3D, 0x3E, 0x46, 0x7C, 0x7C}; //Scancodes for numbers 0-9, *

I couldn't find "official" specifications unfortunately but I use this file: https://www.avrfreaks.net/sites/default/files/PS2 Keyboard.pdf
which is quite complete.
According to this paper, the clock period has to be between 30us and 50us. Some PS/2 controller may have some assumption about that (like, ok there is a falling edge, I still have this number of cycles to read the value) and may stop working with your device if you go faster.
But test it, it could work, the host should use the edges to determine when reading the data line and if it can, it will follow your rate. Maybe through an option that enable that behaviour, to let users that are more concerned about compatibility with old computers using your library.

I am not sure if this is caused by missing parity bit. Maybe the computer expects parity bit and if you start sending another byte at that time, the first bit is interpreted like parity of the previous byte, instead of first bit of new byte....

The parity bit is absolutely necessary. If it is wrong, the computer will discard your byte and will send you an error response. If your implementation does not write it, then the additional delays should not help because you still need to toggle the clock line for the host to read that parity bit. And there is a stop bit that is necessary as well (always 1).
Maybe you could go as low as a bit more than 50 us (delayMicroseconds(70)) for this additonal delay as, according to the paper, the clock line must be high for at least 50 us before sending each byte. This could be your problem fro successive write().
And you have to consider that the host may want to speak to your device too. Right now, write() just returns a negative integer for this case and does't provide the clock for the host to actually send its byte, so I wonder how may react some hosts in this case, they may just keep trying to repeat it during a timeout, and it could also explain why you have to use some longer delays between writes.

I struggle too... I've never learned scancodes before, but it turns out there are several scancode tables... I've found that this is how you press and release [0] button: 0x45 0xF0 0x45, but before i saw some scancode table that was doing release of button using single byte... it was something like 0x95 instead of 0xF0 0x45 to release [0], can't find it right now...

There is actually two different code sets. For press-release 0, one is indeed 0x45 0xF0 0x45 while the other is 0x0B 0x8B. These tables are provided in the given paper.

Thanks for interresting insights!

The parity bit is absolutely necessary.

I've checked again and actually there's a code for parity bit, so this should be ok. I thought that i've read somewhere that parity is not supported, but it was probably different library.

the clock line must be high for at least 50 us before sending each byte.

Currently this is the last line of write() method: delayMicroseconds(50);, for some reason it's not enough... I think i will try 80us next time (twice the CLKFULL)... I don't have the hardware at hand right now...

There is actually two different code sets.

Which one is preffered? (in terms of having better support across devices)

Eh. Checked again and the write ends like this:
  // stop bit
  gohi(_ps2data);
  delayMicroseconds(CLKHALF);
  golo(_ps2clk);
  delayMicroseconds(CLKFULL);
  gohi(_ps2clk);
  delayMicroseconds(CLKHALF); //20 us
  delayMicroseconds(50);

Which means, there actually is 70 us delay with CLK pulled high, but it's stiil not enough... I guess something fishy is going on...

I've changed that to delayMicroseconds(500); and now it seems to work properly.
But i've realized that the keyboard is not working until i plug real ps2 keyboard to that ps2 port. Once i type few letters on real keyboard, unplug it and plug arduino in, it starts to work magicaly. Is there some init sequence that keyboard has to send before it can start sending scancodes? It's combined mouse/keyboard (purple/green) ps2 port, so maybe it is used to switch between keyboard/mouse modes...

I think keyboards only sends 0xAA when powering up.
This command tells that the keyboard controller self-test was okay.
But generally, the computer generally sends a few commands to set the initial state of the LEDs (numlock, ...) and other settings. If you do not acknowledge them, it may think the keyboard is not working and stop listening to the port.
I do not know how this could fit but your library should ack computer commands even if it does not provide a way to receive commands.

I just read the commits from the past couple of days and it seems you just have implemented that acknowledgment, great :)
Can you get rid of the real ps2 keyboard then ?

Can you get rid of the real ps2 keyboard then ?

What do you mean? It works so i was able to replace the ps2 keyboard with arduino. But had to increase the delay between sent bytes even further...
BTW i was thinking that i can just use attachInterrupt() to catch computer requesting to send data on CLK and then handle all communication synchronously just like i do now. It would be sensible tradeoff between doing everything using interrupts and doing everything using delays... Also easily portable and compatible. But still better than having to check CLK every 10ms like i do now...


[bug] http api memory leak

Describe the bug
Response objects of http api calls never get cleaned up.
Reproduction
Do this in an empty page
import { fetch, ResponseType } from '@tauri-apps/api/http';
...
async function run() {
    for(var i = 0; i < 100000; i++) {
        var response = await fetch(
            "https://gist.githubusercontent.com/khaykov/a6105154becce4c0530da38e723c2330/raw/41ab415ac41c93a198f7da5b47d604956157c5c3/gistfile1.txt",
            {responseType: ResponseType.Text, method: 'GET', timeout: 10});
        console.log(response.status);
    }
}
window.onload = (event) => {
    run();
}

Observe in memory profiler as megabytes of RAM are sacrificed to the gods of RAM.
Expected behavior
No memory leak.
Platform and versions
Environment
  › OS: Windows 10.0.19044 X64
  › Webview2: 101.0.1210.32
  › MSVC:
      - Visual Studio Community 2019
  › Node.js: 16.14.2
  › npm: 8.5.0
  › pnpm: Not installed!
  › yarn: Not installed!
  › rustup: 1.24.3
  › rustc: 1.59.0
  › cargo: 1.59.0
  › Rust toolchain: stable-x86_64-pc-windows-msvc

Packages
  › @tauri-apps/cli [NPM]: 1.0.0-rc.9
  › @tauri-apps/api [NPM]: 1.0.0-rc.4
  › tauri [RUST]: git+https://github.com/tauri-apps/tauri.git?rev=220e746#220e7460148df476171579878c3cfffcdb1423d8 (1.0.0-rc.8),
  › tauri-build [RUST]: 1.0.0-rc.7,
  › tao [RUST]: 0.8.3,
  › wry [RUST]: 0.15.1,

Stack trace
No response
Additional context
No response

I'll close this since the issue is not in the HTTP API itself, it's the same issue as #4026 and #3921 (I tested this by changing the backend response to null while keeping the requests firing).
It's also important to note that the memory leak is happening in the webview2 process :(


Firefox: Links inside a Dialog can't be tabbed to

🐛 Bug report
Current behavior
When <a>s are inside of a <Dialog>, I can't tab to them in Firefox.  It doesn't seem to matter whether they're plain anchor tags or something like a <Link> from React router.  In Chrome and Safari I don't see this issue at all.
Steps to reproduce the bug
Sandbox: https://codesandbox.io/s/infallible-swirles-ye897
Firefox:

Open dialog by either mouse or keyboard
Attempt to tab through content
Observe links are not highlighted, but buttons are

Other browsers:

Open dialog by either mouse or keyboard
Attempt to tab through content
Observe both links and buttons are highlighted

Expected behavior
All focusable content should be able to be tabbed to.
Possible solutions
It's not clear to me if this is an issue because of portals or not - I didn't try without because we want to retain the focus trapping of the portal and I'm not very familiar with the internals of portals.
Environment
Please, run the command below inside your project directory.
$ npx envinfo --system --binaries --browsers --npmPackages "{react*,reakit*}"

  System:
    OS: macOS 11.2.3
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 2.93 GB / 32.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 15.5.1 - ~/.nvm/versions/node/v15.5.1/bin/node
    Yarn: 2.4.0 - ~/.nvm/versions/node/v15.5.1/bin/yarn
    npm: 7.3.0 - ~/.nvm/versions/node/v15.5.1/bin/npm
  Browsers:
    Chrome: 89.0.4389.90
    Chrome Canary: 91.0.4456.0
    Firefox Developer Edition: 88.0
    Safari: 14.0.3
    Safari Technology Preview: 14.2

(I don't know why the packages section didn't work but we're using React 16.13.1 and Reakit 1.3.6)

Thanks for reporting it @Kataract!
I tested with Firefox 84 and 86 and couldn't reproduce the bug. Maybe it's something on the Firefox Developer Edition?

Yeah I'm seeing now I didn't have the option enabled to tab normally. Sorry for the false report!


error

getting tis error
Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
handle: <Handle _ProactorBasePipeTransport._call_connection_lost(None)>
Traceback (most recent call last):
File "C:\Users\CRACKEN\AppData\Local\Programs\Python\Python310\lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "C:\Users\CRACKEN\AppData\Local\Programs\Python\Python310\lib\asyncio\proactor_events.py", line 162, in
_call_connection_lost
self._sock.shutdown(socket.SHUT_RDWR)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
ten script rescan again

Try setting MAX_CONNECTIONS to lower value.
I'd suggest decreasing it by 50 until you get rid of the error.


Ci tests

DO NOT MERGE
This is only in a PR to test out Travis's behavior

@beweedon,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

It would be cleaner to group the last two commits into its own PR. And have another on for the first few misc changes

Sure, I can do that if you want. I'll close this PR and submit the first 4 as their own PR.


Memory leak

I'm facing huge memory leak when using this with a couple of charts on same component

clearChart() is not an option at all i think


Refactor dashboard sync dataset modal to use new styles

Fix #12290
So this is how it looks now

I saw two ways of doing this, either we:

Moved the modals-elements.scss to common, and updated the css_files.js so it builds correctly
We duplicated the modals-elements.scss in common for now

Went with the second one since eventually all the common stuff will disappear, and we'll have to migrate all dashboard code I guess 🤔

NEWS.md check is not needed since this is a PR for a reopened issue that already has a note on NEWS file.

I am ok with the comment on the file 👍

Pushed 2 new commits:

The UI was not exactly as in Dataset page: no uppercase, bad margin and never option was highlighted.
The cancel button didn't have any event handler.

Screenshot with last changes applied:


Custom Font Options

Allow users to choose from different fonts for the player interface. Provide a selection of fonts to pick from.
Difficulty: Beginner

please assign me

hey im really intrested in fixing please assign !

hey @Tejas242 , i would really like to fix this issue. Please assign this issue to me.

Hey @Tejas242 if this issue is available, please assign it to me too.


create test users using API2 instead of API1

It fixes: https://github.com/openreview/openreview-py/issues/1876
All the users are being created using API 2.

This PR must be merged first: https://github.com/openreview/openreview-api/pull/286


Enable fix_windows_unicode_modules more widely

The fix in https://bugs.python.org/issue39432 isn't quite right ("_name".encode("punycode") != "name".encode("punycode")) and thus the unicode_imports test is failing on Windows 3.8+. I don't think Python is accepting patches to distutils any more but I'm going to submit one of setuptools in the near future.
For now just apply the hack to all versions >3.5
Link to distutils PR https://github.com/pypa/distutils/pull/38

I'd be happier if there was a known limit to this. A hack that expands into the future indefinitely is always prone to failing at some point when something changes in the code that it works around. Especially since this is something that people will very rarely use and thus won't be noticed easily. Until it breaks.

An alternative hack would be to add a definition for the wrongly-named PyInitU function just as an empty dummy function, so that the linker finds it and is happy (and then keep the hack for Python <3.8.2 only)? That would have be less likely to break when/if distutils changes.
I don't think we could use the same hack pre-Python 3.8.2 though because it'd involve defined symbols with unicode names, which isn't supported all all C compilers.

Exporting an additional symbol (iff the users didn't disallow the export of the module init function name) seems like a simple and quite safe way to do this with minimal intrusion. Good idea.

Right. I've done that. I haven't had a chance to test it on Windows so I don't think it should be merged until Appveyor's run on it.

Thanks!


update Ngrok installation to use repository

by using the repository, this will allow us to have a standard install for both our x86 and ARM versions. it will also make upgrading easier for end users by using apt, rather than possibly waiting for a new box build.
this change is also using the new version of key signing. the following links were spectacular resources for this process:
https://wiki.debian.org/DebianRepository/UseThirdParty
https://www.linuxuprising.com/2021/01/apt-key-is-deprecated-how-to-add.html
https://askubuntu.com/questions/1286545/what-commands-exactly-should-replace-the-deprecated-apt-key?newreg=c7d51f5afac945fea79db7a504d68e76
One question I have is the DEB references "buster", which is a Debian codename. I've never fully understood what this meant, but it seems to work even though we aren't on that release. Should it be replaced with something like "stable"?

One question I have is the DEB references "buster", which is a Debian codename. I've never fully understood what this meant, but it seems to work even though we aren't on that release. Should it be replaced with something like "stable"?

This refers to the Debian distro. buster is Debian 10.3. In Ubuntu you'd see jammy for 22.04. It likely works because the base buster requirements are satisfied by the Ubuntu version we're running so we see it "just work". Often times these denote the OS compatible w/ the package source you're adding.


Add "first" operator

I prefer to reuse take_on_next somehow.. Inherit from it or use it via composition, because on_next from first is 100% equal to on_next fro mtake_on_next

I prefer to reuse take_on_next somehow.. Inherit from it or use it via composition

I thought about that too. But then I did not follow that approach for these reasons:

Due to the reason we make sure ONE emission holds (zero emission is not allowed), we need to pollute take_on_next{}.
You have the tag dispatching for guarding the header import. If I remember it correctly, Kirk Shoop told me that the tag dispatching import allow the compiler to trim out the unused operators. From there, there might be a case where take() is used and first() is not. If we make first() reuse take() then we have a bigger take() that doesn't use all its ability.

Alright, I found the take_on_next isn't really bloated so I re-use it in my latest implementation.

@victimsnino I'm lost for the error message. Can you guide me?

@victimsnino I'm lost for the error message. Can you guide me?

Update branch and fix new compile errors. They appeared due to my recent change


[3376] Add user to lead school

Context
https://trello.com/c/A1JAbOiS/3376-m-add-user-to-lead-school
Changes proposed in this pull request

New lead_schools/users controller added
New user form creates user and add association with LeadSchool

Guidance to review

Login as admin, go to systems admin, click on lead school, add user.

Important business

Does this PR introduce any PII fields that need to be overwritten or deleted in db/scripts/sanitise.sql?
Does this PR change the database schema? If so, have you updated the config/analytics.yml file and considered whether you need to send 'import_entity' events?

 [M] Add user to lead school


Very large priority numbers in redirectTo renders in E notation and blocks startup

In the ports configuration, if a redirectTo.priority value is set to a large number (i.e.<PHONE_NUMBER>), it get's rendered into the pod template as 1e+09 , which causes traefik to fail to start because it has no idea what to do with a number in that format.

Nevermind. I was being dumb. looks like It's fluxCD rendering a big number from YAML into E-notation in string.


Clean up sync.yml

We can remove a bunch of the scripts once we're up-to-date with OTTR, since they're now GitHub actions

Closed by #202