Test polars support

What is this PR addressing?
Testing polars inputs (closing issue #825)
Method

I didn't duplicate tests but rather used @pytest.mark.parametrize with the two modules.
If Polars isn’t available, functions are only testing for Pandas dataframes as discussed in https://github.com/skrub-data/skrub/pull/785
When both modules have an assert_frame_equal testing function, I’ve created lists of tuples to store both methods and call the needed one in the testing functions.

Example
from pandas.testing import assert_frame_equal
from skrub._dataframe._polars import POLARS_SETUP

MODULES = [pd]  # This is used when we don't need assert_frame_equal
ASSERT_TUPLES = [(pd, assert_frame_equal)]

if POLARS_SETUP:
    import polars as pl
    from polars.testing import assert_frame_equal as assert_frame_equal_pl

    MODULES.append(pl)
    ASSERT_TUPLES.append((pl, assert_frame_equal_pl))

# This was modified to either return a pd or pl DataFrame
def get_mixed_datetime_format(px, as_array=False):
    """px should either be the Pandas or Polars module."""
    df = px.DataFrame(
        dict(
            a=[
                "2022-10-15",
                "2021-12-25",
                "2020-05-18",
                "2019-10-15 12:00:00",
            ]
        )
    )
    if as_array:
        return df.to_numpy()
    return df

# When available, this is testing both pd and pl modules
@pytest.mark.parametrize("px, assert_frame_equal_", ASSERT_TUPLES)
def test_indempotency(px, assert_frame_equal_):
    df = get_mixed_datetime_format(px)
    df_dt = to_datetime(df)
    df_dt_2 = to_datetime(df_dt)
    assert_frame_equal_(df_dt, df_dt_2)

    X_trans = DatetimeEncoder().fit_transform(df)
    X_trans_2 = DatetimeEncoder().fit_transform(df_dt)
    assert_array_equal(X_trans, X_trans_2)

Comments/Discussion

Some test functions specified that they returned → None, some didn’t. I removed all occurrences of these in the tests I’ve covered
Some functions created dataframes using pd.DataFrame([[1, 3], [2, 4]], columns=['a', 'b']). This method isn’t supported by Polars, so I’ve replaced it by pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]}) when applicable
Some dataframes that are being tested used pd.NA. I used pl.Null for the Polars equivalent
When the test failed in polars, i putdef test_working_for_pd_but_not_pl(px):
    if px is pl:
        pytest.xfail(reason="Some useful message for debugging later")

The errors most commonly raised are that pl.DataFrames don’t have a reset_index() method, and that pl.DataFrame.drop() doesn't have an axis argument

out of curiosity in is_namespace_polars why is it necessary to do those checks rather than using __name__?

To stay consistent with what we already have (e.g., is_polars), mostly? Kind of a nitpick, I agree. Also, this is something we might reuse. But let's revert if you prefer.

my question was not about using a named function vs inlining it, but rather about checking __name__ vs checking if polars is in sys.modules and then importing it and comparing with is
I was just interested to know if there is some situation you have encountered where comparing __name__ == 'polars' would not yield the expected result

I saw similar patterns in scikit-learn to avoid weird behaviors like duck-typing. Happy to reverse if this brings unnecessary complexity, though.

I saw similar patterns in scikit-learn to avoid weird behaviors like duck-typing. Happy to reverse if this brings unnecessary complexity, though.

I see something similar in utils.validation._is_pandas_df but in that case they need to check if the input is a pandas dataframe rather than if a module is pandas so it is a bit different.
btw in _is_pandas_df they read the module directly from sys.modules rather than re-importing
I don't really have a preference here I'm just trying to learn in which situations I shouldn't rely on modules' name attribute
(as ATM we just use for testing though, I would be in favor of putting it in a private module like testing_utils and starting with the simplest implementation. In any case +1 for your suggestion to put it in a function  so we can easily change it in one place only)

I would be in favor of putting it in a private module like testing_utils and starting with the simplest implementation

Let's apply this advice using px.__name__ == "polars", @TheooJ, then we can merge.

I'm rewriting the function as
def is_namespace_polars(px):
    return px.__name__ == "polars"

in tests/_utils.py

maybe testing_utils.py so it doesn't get picked up by the test discovery rules

this is also used in this exact form in the array API

AFAICT this is also for checking a dataframe rather than a module directly?

maybe testing_utils.py so it doesn't get picked up by the test discovery rules

I think it discovers test_*.py or *_test.py files but not _test_*.py files

I think it discovers test_*.py or *_test.py files but not _test_*.py files

yes sorry I read too fast and missed the '_'!

@TheooJ sorry about that but we now have a small git merge conflict. could you fix that and then I will merge it

thanks a lot!

AFAICT this is also for checking a dataframe rather than a module directly?

To check a module directly, they use sys.module as well:
https://github.com/data-apis/array-api-compat/blob/51d7832f048f58d47237d35fb1e7561d8ebfe259/array_api_compat/common/_helpers.py#L119


feat: add beforeStartup hook in startup()

Add a hook for startup to provide a better way to implement #216
Also allows user to do some cleanup before new instance startup

Find out that startup.exit() can fulfill this PR.
Closed it.


Microsoft.WindowsMediaCreationTool version 21H1

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Looks like this does the install directly from the setup package, which I'm sure validation won't like.  I'll go ahead and close this.


fix: Incoming entities should always be processed if existing fails validation

Motivation

This can happen with partial responses - requiring a merge even with 'newer' version
Solution

See how this interfaces with #1403 before implementation

Abandoning in favor of https://resthooks.io/rest/api/schema.Entity#shouldReorder


low map issue...

After getting 10th epoch model. The program evaluated this model and returned a series of results. But it seems that the results are very low...

Hi, thank you for your interest.
Unfortunately, the training is not fully deterministic, so it might return low mAP sometimes. Can you please try re-training?

yeah I try again. This time I tested the 20th epoch model but the result still very low....
By the way, when I tested the model,  I still used trainval data cuz I felt that maybe the performance will be better rather than test dataset.

And this is my training process. I don't know whether it's correct...

Yes, your training output looks good.
Can you please download and put this file into states directory and run:
python src/evaluate.py --base_net vgg --state_path states/vgg_epoch_20.pt

Its output should be as follows:
Avg AP: [0.38831317 0.45263229 0.24562751 0.26572207 0.12294847 0.59961043
 0.47957328 0.24194355 0.09629139 0.29096157 0.15507882 0.26510262
 0.31636181 0.53462855 0.06115122 0.16652659 0.33271927 0.29181557
 0.47336772 0.51627529]
Avg mAP: 0.3148325589240723

thanks author! The results I run nearly same as the one that you give.
So... it looks strange and I think something wrong in training.
Maybe the number of epoch is too small?

 The pretrained state file I've sent is a result of 20 epochs training, so I don't think epoch count is a problem.
On the other hand, the training might stuck at a local minimum. Can you please try with the following:
python src/train.py --base_net vgg --lr 1e-4

thanks author! it can work!

Thank you too!


fix: remove event id filter workaround

Remove the double event filtering check workaround.
Depends on https://github.com/liftedinit/many-rs/pull/405

This project will be deprecated soon™, closing.


Multivalue Control Not behaving as expected

Open a work item and update the multivalue control until there are 2 or more rows of values.

Make a change to a field on a different page and click Save.

Go back to the first page and observe the multivalue control doesn't show all of the values and can't be updated unless one of the values is removed or the work item refresh button is clicked.

This is fixed with the latest release. Closing the issue for now. Feel free to create a new issue if the issue persists.


Facing errors while trying to make install the repo

I would like to contribute to this project and have tried to make the clone of the repo on my local system, during which I faced the following errors
Database : postgres 14
src/backend/catalog/ag_catalog.c:97:68: error: incompatible type for argument 4 of ‘prev_process_utility_hook’
prev_process_utility hook requires 8 arguments but, only 7 were passed. The repo does not pass the bool readOnlyTree argument
typedef void (*ProcessUtility_hook_type) (PlannedStmt *pstmt, const char *queryString, bool readOnlyTree, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc);
src/backend/catalog/ag_catalog.c:100:62: error: incompatible type for argument 4 of ‘standard_ProcessUtility’
standard_ProcessUtility is a function which requires 8 arguments but, only 7 were passed. The repo does not pass the bool readOnlyTree argument
extern void standard_ProcessUtility(PlannedStmt *pstmt, const char *queryString, bool readOnlyTree, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc);
I had greedily tried to fix these issues by setting readOnlyTree to false and tried compiling and still face this issue
src/backend/catalog/ag_graph.c:67:15: error: void value not ignored as it ought to be
src/backend/catalog/ag_graph.c:67 is
graph_oid = CatalogTupleInsert(ag_graph, tuple);
CatalogTupleInsert returns void while graph_oid has type short int.
I am very enthusiastic to try and fix these issues and be a part of the age community and would appreciate any suggestions on how I could fix the issues.

PostgreSQL 14 is currently not supported. Currently, only PostgreSQL versions 11 & 12 are supported.
Version 13 is being worked on and then 14 will be after that.

Hi, can you guide me on use postgresql 11 source/header files during installation of the age extension. I have installed age and tried running make but still have the same errors

Here is a link that should help.
https://age.apache.org/age-manual/master/index.html

I have been following the age manual and have still got the same errors mentioned above

Please see this issue -
https://github.com/apache/age/issues/300

If this is resolved, please close the issue :)


Fix several warnings when piped is activated

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

nit:

Fix several warnings when piped is activated

Fix several warnings while compiling source code due to unneeded imports

/lgtm


[igraph] update to 0.9.9

Describe the pull request

What does your PR fix?
Updated igraph to 0.9.9

Which triplets are supported/not supported?

Yes

If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

@Neumann-A I noticed you added supports: "!uwp" to this port since last time I was here. Can you clarify what would be required from igraph to add support? Are there any forbidden function calls?

@Neumann-A I noticed you added supports: "!uwp" to this port since last time I was here. Can you clarify what would be required from igraph to add support? Are there any forbidden function calls?

Probably. It was cascade before the uwp uses ninja change.

Could you give me a hint on how to identify the issues? I only have limited access to Windows (in a VM), thus debugging this is costly in time. I assume there's more to it than compiling with /ZW as CMake alone fails when using that option.

Could you give me a hint on how to identify the issues?

Remove the supports line and you get the error from vcpkg CI. Just need to download the logs then.

All features are tested successfully in the following triplet:

x86-windows
x64-windows
x64-windows-static

LGTM, thanks for the update!


Transmit Ton / Alarm on/off will not run

Hey ho ..
a Question ..
on Key 1 short press is the transmit Ton 1750 Hz
on Key 2 long press is the Alarm on/off
but this 2 Keys will not run for me on my 2 Devices..

https://github.com/egzumer/uv-k5-firmware-custom/wiki/Differences-from-QS-stock-firmware


Create method for asynchronous loading of data.

In addition to loading data from an existing JSON object, the displayer should have an asynchronous method to load data from a web service.
Include:

GET method
Loading message

Whatever provides the best UX! I don't know if this is still an issue.

(in my opinion) I don't think its an issue because it can fairly easily be dealt with outside of viewer. E.g. you could use the d3.json() function to asynchronously load data as follows:
			    d3.json(pathToYourData, function(data) {
					myInteractionViewer.readMIJSON(data);
				});

I'm going to tag it 'won't fix' and close


Allow opening search view to the side or bottom

This PR fixes #128920.  It allows the search to open in a side or below group.  I did see workbench.editor.openSideBySideDirection that I might be able to use to to make search.newEditorGroup a boolean of active or side, but I wanted the flexibility of always opened search in the bottom, but configure workbench.editor.openSideBySideDirection to right.
To test:

Set search.mode to newEditor.
Use Cmd + Shift + F with the different values for the search.newEditorGroup setting.

Thank you for the contribution but I do not want to accept a patch this large (affects some core services and  vscode.d.ts) without demonstrated significant demand. I will mark the issue as a backlog candidate and close this, but I am happy to revisit if demand is expressed.

Thanks, @JacksonKearl.  I'm doubtful people will find and vote on issue #128920.  I found a very hacky way to accomplish my goal with an extension using onDidChangeVisibleTextEditors and workbench.action.moveEditorToBelowGroup.  However, it would be much cleaner if there was an API to determine the position that each viewColumn is in.  I didn't see any API that lets me get a grid showing where the view columns are positioned.  Do you know if one exists?

I believe you are correct that there is no way to for an extension to discover the on-screen location of ViewColumns. @bpasero may be able to confirm.

Thanks.  I found #94817, so it doesn't look like it's supported.


The position on the new meeting agenda page is not preserved when returning there via "Back" button

Describe the issue
When I scroll down the new meeting agenda page to get to the session I'm interested in, then click any link (e.g. to show session agenda) and then press "Back" browser button to return to the meeting agenda, the position on the meeting agenda page get lost - it is displayed from the very beginning, so that I need to scroll it down again to get to the session I'm interested in.
Not a big deal, but definitely inconvenient.
Code of Conduct

[X] I agree to follow the IETF's Code of Conduct

Because of how the website is currently structured, there's not an easy and consistent way to achieve that.
The agenda and meeting floors pages are essentially running as a modern single page application (SPA). If you click on a meeting room link from the agenda, then press Back, you'll get correctly scrolled back to your previous scroll position.
However, clicking on a meeting materials link exits that SPA and it's not possible to know that you've come back to the page in a way that works consistently across all browsers.
As more sections of the site gets refactored to be part of the SPA, the scroll position will be correctly restored when moving between pages. Until then, I suggest clicking on the "Show meeting materials" button, available on the right of each session. This opens a dialog with the materials without leaving the page or losing your scroll position. You could also open the materials in a new tab.


Upgrading to Laravel 11, using scheme to obtain column information reports an error

Laravel Version
11.28.0
PHP Version
8.2.17
Database Driver & Version
Mysql 5.6 for AliYun RDS rds_20200430
Description
error message
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'generation_expression' in 'field list' (Connection: mysql_api, SQL: select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, generation_expression as `expression`, extra as `extra` from information_schema.columns where table_schema = 'database' and table_name = 'table' order by ordinal_position asc) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'generation_expression' in 'field list' (Connection: mysql_api, SQL: select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, generation_expression as `expression`, extra as `extra` from information_schema.columns where table_schema = 'database' and table_name = 'table' order by ordinal_position asc) at /data/wwwroot/SuNong-Laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php:825)

stacktrace
#1 /data/wwwroot/vendor/laravel/framework/src/Illuminate/Database/Connection.php(398): Illuminate\\Database\\Connection->run('select column_n...', Array, Object(Closure))
#2 /data/wwwroot/vendor/laravel/framework/src/Illuminate/Database/Connection.php(385): Illuminate\\Database\\Connection->select('select column_n...', Array, false)
#3 /data/wwwroot/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php(88): Illuminate\\Database\\Connection->selectFromWriteConnection('select column_n...')
#4 /data/wwwroot/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php(312): Illuminate\\Database\\Schema\\MySqlBuilder->getColumns('sn_department')
#5 /data/wwwroot/app/Http/Controllers/Manage/SubmitSystem/Tools/DataBaseController.php(235): Illuminate\\Database\\Schema\\Builder->getColumnListing('department')
#6 /data/wwwroot/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\Manage\\SubmitSystem\\Tools\\DataBaseController->query(Object(Illuminate\\Http\\Request), NULL)
#7 /data/wwwroot/app/Http/Controllers/Controller.php(56): Illuminate\\Routing\\Controller->callAction('query', Array)

Steps To Reproduce
<?php

use Illuminate\Support\Facades\Schema;

$scheme = Scheme::connection('mysql');

$columns  = $scheme -> getColumnListing('table');

Laravel 8.x+ requires MySQL 5.7+

thank you


Fix forGetting an error on selecting an existing CI which has a display name from the historical CI's in the quick picks

For #

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[x] Has a news entry file (remember to thank yourself!).
[x] Appropriate comments and documentation strings in the code.
[x] Has sufficient logging.
[x] Has telemetry for enhancements.
[x] Unit tests & system/integration tests are added/updated.
[x] Test plan is updated as appropriate.
[x] package-lock.json has been regenerated by running npm install (if dependencies have changed).
[x] The wiki is updated with any design decisions/details.

When a display name is provided for a remote jupyter server (right now contributed by Azure ML extension), the historical server quickpicks does not store the uri but only the display name of the server and thus throws an error when connecting to that remote server. This PR fixes the issue and now stores both the display name as well as the uri. Backward compatibility has been ensured by checking for non-null display names when needed

Codecov Report

Merging #13642 into master will decrease coverage by 0.01%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master   #13642      +/-   ##
==========================================
- Coverage   59.77%   59.75%   -0.02%
==========================================
  Files         670      670
  Lines       37513    37515       +2
  Branches     5388     5388
==========================================
- Hits        22423    22418       -5
+ Misses      13938    13928      -10
- Partials     1152     1169      +17

Impacted Files
Coverage Δ

src/client/datascience/jupyter/jupyterUtils.ts
53.12% <0.00%> (ø)

src/client/datascience/types.ts
100.00% <ø> (ø)

.../datascience/interactive-common/interactiveBase.ts
5.79% <50.00%> (+0.15%)
:arrow_up:

src/client/datascience/jupyter/serverSelector.ts
73.40% <50.00%> (+0.28%)
:arrow_up:

src/client/datascience/common.ts
58.66% <100.00%> (ø)

src/client/datascience/crossProcessLock.ts
79.41% <0.00%> (-11.77%)
:arrow_down:

src/client/common/utils/platform.ts
64.70% <0.00%> (-5.89%)
:arrow_down:

src/client/linters/pydocstyle.ts
86.66% <0.00%> (-2.23%)
:arrow_down:

src/client/datascience/debugLocationTracker.ts
76.56% <0.00%> (-1.57%)
:arrow_down:

src/client/common/process/proc.ts
14.49% <0.00%> (-0.73%)
:arrow_down:

... and 6 more

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 6256868...8d2abaf. Read the comment docs.


typo: Double word "Server"

BTW, it looks like there is a similar file without the "_1" https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/blob/live/Lync/LyncServer/configure-federation-routes-and-media-traffic.md

@nschonni - if I recall the _1 was a way to differentiate the Lync Server content from the new 'evergreen' content. I would have to go back and double check the difference but I remember the _1 was a differentiator since we combined a lot of content when we moved from TechNet to GitHub/docs.microsoft.com and some of it wasn't able to be combined so it has a _1. If my memory serves me.


Fixed: Unsupported operand types: int - string in PHP 8

This PR fixes this issue: https://github.com/vinkla/laravel-hashids/issues/159 https://github.com/vinkla/laravel-hashids/issues/151

laravel new app (laravel 9 installed with PHP 8)
composer require vinkla/laravel-hashids
Hashids::encode(1);

the following error occurs:
TypeError : Unsupported operand types: int - string
This is because this part of code:
https://github.com/vinkla/laravel-hashids/blob/29e0efdfbeede589eb2ffc381da1bf8fd77a53e2/config/hashids.php#L41-L42
This package using the values in config file which is set to 'your-length-integer', This was not an issue in php 7 but throws error in v8 and above https://3v4l.org/hm9ML

Thanks for looking into it @foremtehan ✨


specifying column Nullable() does not emit "NULL" to column creation DDL

ColumnBase.FormatNullable has the following:
if (column.IsNullable.HasValue && column.IsNullable.Value) {
				return string.Empty;
}

This might seem to be a reasonable default, but if the type of the column is a SQL Server user defined type with a default of NOT NULL, the net result is that the column gets created with NOT NULL, since the emitted DDL doesn't specify it.
For example, we make heavy use of this custom type:
exec sp_addtype instanceid, 'bigint', 'NOT NULL'
If I then do
          Create.Table("filecartItem")
//more columns
                .WithColumn("fileattachment_id").AsCustom("instanceid").Nullable();

the DDL will look like:
CREATE TABLE [dbo].[filecartitem] (
//other columns
[fileattachment_id] instanceid
 ))

and the resulting filecart_id column will end up with the default "NOT NULL" 'inherited' for type instanceid.
I think the code should omit the NULL / NOT NULL only if the migrator did not specify it.

AFAIK some dialects don't support the NULL specifier. This change has to be evaluated carefully.

Database
NULL type modifier

DB2
No

Firebird
No

Hana
Yes

Jet
Yes

MySQL 4+
Yes

Oracle 11+
Yes

PostgreSQL 7+
Yes

Redshift
Yes

SQL Anywher 11+
Yes

SQLite
No

SQL Server 2000+ (?)
Yes

SQL Server CE
Yes


Property Suggestion: Has a closed point

Property Suggestion
'Has a closed point': Some singleton $\{x\}$ of the space is closed.
Rationale
This seems like a convenient and easily recognizable utility property. The concept of a closed point is common; e.g., in a common definition of T1 space.
Compare with Has an isolated point (P139).
Relationship to other properties

'Has a closed point' implies ~Empty (P137)
$T_1$ (P002) + ~Empty (P137) implies Has a closed point
Has a cut point (P204) + ~Has an isolated point (P139) implies Has a closed point

[Honari-Bahrampour, Theorem 3.2]

Ultraconnected (P040) + Has a cut point (P204) implies Has a closed point
Ultraconnected + Has a closed point implies Has a focal point

Compare 4, 5 with T618. The impetus for this 'Issue' was danflapjax's comment https://github.com/pi-base/data/pull/936#issuecomment-2493042608

Homogeneous (P086) + Has a closed point implies $T_1$ (P002).

(I won't try to exhaust the entire list. Surely there are many others, and feel free to edit it any that you see. Hopefully this is enough to begin the discussion though.)
Other remarks

S48|P86 would get naturally deduced, because this space is not $T_1$, but every point besides the zero ideal is a closed point. (Though this might get deduced after some other properties which still need to be added to this one get added.)

Yeah, I have often thought this would be a nice thing to have.
@StevenClontz Would you agree?

I particularly like the relationship (5) that is the dual of:
T597: Hyperconnected + Has an isolated point ==> Has a generic point.

@GeoffreySangston I have read the suggestion again and I agree on incorporating the property and the results.

I would imagine several of the existing theorems will also be able to be strengthened or simplified using the new notion, or replaced by one of the suggested theorems above.

Yeah, I have often thought this would be a nice thing to have.
@StevenClontz Would you agree?

Seems reasonable to me at a glance. I'd like to see the PR that introduces it to demonstrate its utility: define the property, add whatever theorems seem most useful/obvious, and clean up traits for one (not all!) space using those new theorems.

Closed by #965 and #973


[In progress] encrypted gh token added

I have encrypted and added the gh token required in .travis.yml file. This must automatically create an apk now.
Addresses issue #3

Looks OK as far as I can tell.

The apk branch doesn't yet show any apk generated, and this PR says "in progress".  When it's merged, will development branch PRs and merges automatically generate new apks?

Looks OK as far as I can tell.

The apk branch doesn't yet show any apk generated, and this PR says "in progress". When it's merged, will development branch PRs and merges automatically generate new apks?

I remember Sanskar mentioning about APKs being generated as soon as PR gets raised.
But yes, you may merge this and let's check if APK gets generated.
If it doesn't get generated, I'll work on what the new issue might be.

OK, I merged this PR as requested.  Please generate a PR for the development branch to see if an apk gets generated as we hope.


Escape at the end of link text does not work properly

When the end of the link text is a double backslash, the link breaks.
E.g.
[test\\]((https://gohugo.io/))

If there is a space between backslash and closing bracket, it behaves as expected.
[test\\ ](https://gohugo.io/)

I confirmed this behavior at 35bfca3b.
$ hugo version
Hugo Static Site Generator v0.53-DEV darwin/amd64 BuildDate: unknown

$ git log --oneline -n 1
35bfca3b commands: Remove the benchmark command

I found out that the cause is russross/blackfriday.
https://github.com/russross/blackfriday/issues/510
Since this was not a problem with this repository, I close this issue.


need help installing on WSL

I run bash on Ubuntu/WSL and install just as:
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to .

this creates file called just, but when running just I get:
# just
just: command not found
# ls -l just
-rwxrwxrwx 1 root root 4594672 Sep 10 17:12 just

Any idea what am I doing wrong?

Same effect if I drop a binary from releases

Perhaps different issue but cargo fails to build just with follwoing error:
error[E0658]: use of unstable library feature 'str_split_once': newly added
  --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/just-0.10.1/src/shebang.rs:36:8
   |
36 |       .rsplit_once(|c| matches!(c, '/' | '\\'))
   |        ^^^^^^^^^^^
   |
   = note: see issue #74773 <https://github.com/rust-lang/rust/issues/74773> for more information

Hi @epogrebnyak!

this creates file called just, but when running just I get:

I think you'll need to call just with ./just if it's in the current directory. To run it as just you'll have to add it to that is in your PATH variable. For example:
mkdir ~/bin
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin
export PATH="$PATH:$HOME/bin"
just --help

Does that work for you?

Perhaps different issue but cargo fails to build just with follwoing error:

Which version of Rust is giving you this error?

Perhaps different issue but cargo fails to build just with follwoing error:

Which version of Rust is giving you this error?
@casey I'm seeing the exact same error on an Ubuntu 18.04 with rustc 1.51.0.

@casey I'm seeing the exact same error on an Ubuntu 18.04 with rustc 1.51.0.

Thanks for confirming. I opened #966 to properly define Just's MSRV going forward.

mkdir ~/bin
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin
export PATH="$PATH:$HOME/bin"
just --help

This work perfectly, thank you - maybe I could make PR to README.md?

This work perfectly, thank you - maybe I could make PR to README.md?

Excellent. Good idea, I just added detailed instructions in #978.


BigQuery: deprecate client.dataset() part 2 (old)

This PR contains five snippets (full list):

client_list_jobs
client_query
copy_table
table_exists
table_insert_rows

reformatted


[cherry-pick r2.5] Fix 'Illegal ambiguous match' on Windows with --config=nogcp/noaws.

Original PR: #48525

@mihaimaruseac would it be possible to get this into the 2.5 release?


load() returns GDScript even with Parse error, but new() method can't be called and error is undetectable

Tested versions
v4.2.1.stable.official [b09f793f5]
v4.3.stable.official [77dcf97d8]
System information
Godot v4.2.1.stable
Issue description
When loading a .gd script using the load() function in Godot, the function returns a GDScript object even if there are parsing errors in the script. This is unexpected because:

A valid GDScript object should always have a new() method.
Despite loaded.has_method("new") returning true, calling loaded.new() results in the error:

Invalid call. Nonexistent function 'new' in base 'GDScript'.

This issue is problematic because there's no clear way to detect or handle this scenario programmatically. Even with parse errors, the script loads and appears valid according to the checks. The only way to detect that the script has issues is by using loaded.reload(), which returns a non-zero value if errors are present. However, relying on this method for error detection is not intuitive or well-documented.
Expected behavior:

If there are parsing errors, load() should return null or provide a clear and intuitive way to detect errors.
A valid GDScript should always have a new() method that can be called without errors.

Steps to reproduce
Here’s an example of the code and its output in both normal and error scenarios:
Code:
# res://main.gd
var loaded = load("res://error.gd")
print("loaded: ", loaded)
print("loaded == null: ", loaded == null)
print("loaded is GDScript: ", loaded is GDScript)
print("loaded.has_method('new'): ", loaded.has_method("new"))
print("loaded.new: ", loaded.new)
print("loaded.has_source_code(): ", loaded.has_source_code())
print("loaded.reload(): ", loaded.reload())
loaded.new()

# res://error.gd
error

Output with a valid script:
loaded: <GDScript#-9223371840326459786>
loaded == null: false
loaded is GDScript: true
loaded.has_method('new'): true
loaded.new: GDScript::new
loaded.has_source_code(): true
loaded.reload(): 0

Output with a script containing parse errors:
loaded: <GDScript#-9223371833011593533>
loaded == null: false
loaded is GDScript: true
loaded.has_method('new'): true
loaded.new: GDScript::new
loaded.has_source_code(): true
loaded.reload(): 43

Error encountered:
Invalid call. Nonexistent function 'new' in base 'GDScript'.

Steps to reproduce:

Use the code provided above to load a script and check its validity.
Create a .gd script with syntax errors and attempt to load it.
Observe that loaded.has_method("new") returns true, but calling loaded.new() raises an error.
Note that loaded.reload() returns a non-zero value, indicating an error that isn't detectable by other checks.

Minimal reproduction project (MRP)
gdscript load issue project.zip

Please test in 4.2.2, or 4.3, 4.2.1 is no longer supported and this might have been fixed.

Sounds related to:

https://github.com/godotengine/godot/issues/92610

Which was fixed in 4.3 by:

https://github.com/godotengine/godot/pull/92609

Occurred on v4.3.stable.official [77dcf97d8]

I don't think it's a bug. An invalid GDScript is still a resource. If you want to check if a GDScript resource is valid, you can use can_instantiate(). See also #64065.

I believe it would be more intuitive if, instead of the current error message stating that the new() method doesn't exist, the error could explicitly indicate that the script cannot be instantiated due to errors in the script. This would make it clearer that the issue lies with the script's validity rather than suggesting that the new() method is missing from a seemingly valid GDScript object.
Such an error message would better guide users toward understanding the root cause of the issue and encourage the use of can_instantiate() to validate scripts before attempting to instantiate them.
Thank you for your input and the reference to the can_instantiate() method.
This response was generated with the assistance of GPT.


Does graphql-request work with Cloudflare Worker

with this code
new GraphQLClient(graphQLUrl, {
      fetch,
});

and @graphql-codegen/typescript-graphql-request
when i send a request to cloudflare worker it throw an error like this
{
    "name": "TypeError",
    "message": "Fetch API cannot load: undefined",
    "timestamp":<PHONE_NUMBER>991
  }

so i'm not sure that does graphql-request work with cloudflare worker

This is because Cloudflare Workers only uses Fetch API, and graphql-request by default uses XMLHttpRequest API

https://github.com/prisma-labs/graphql-request/issues/399#issuecomment-1278272186 this worked for me..
const client = new GraphQLClient(`endpoint`, {
    fetch,
  });

Thank you for all the replies, I found the way to fix it. the root cause is the url of fetch is undefined so it throws an error with the message Fetch API cannot load: undefined


Remove dark mode flicker in (almost) all situations

Fixes #74
This fix solves this problem in all situations unless:

You have selected light mode but your OS is set to dark mode (or vice versa)

or

Your browser does not support the prefers-color-scheme media query

Oh! I also haven't tested switching OS color schemes, and I've read some bugs relating to this over at use-dark-mode. I feel like this is too much of an edge case to care about 😆


Batch fetching support for bytecode proxies on top of HHH-11147

Proposal for alternative approach to Gail and Andrea's work on this - so intended as an alternative to https://github.com/hibernate/hibernate-orm/pull/2931
At a high-level it centers on the addition of 2 methods -

org.hibernate.engine.spi.PersistenceContext#addEnhancedProxy
org.hibernate.bytecode.spi.BytecodeEnhancementMetadata#createEnhancedProxy

@sebersole should we create a new HHH issue to track this one?

IMO its not really necessary.  It's all a continuation of developing a not-yet-released feature

merged, thanks all!


Wrong kernel name in metadata kernelspec when using kernel from virtualenv

Environment data

VS Code version:  1.63.2
Jupyter Extension version (available under the Extensions sidebar): v2021.11.1001550889
Python Extension version (available under the Extensions sidebar): v2021.12.1559732655
OS (Windows | Mac | Linux distro) and version: Ubuntu 18.04
Python: Python 3.8
Type of virtual environment used: virtualenv
Jupyter server running: Local

Expected behaviour
I created a new virtual environment with the name venv_2.
virtualenv venv_2 --python=python3.8

I add kernel to that venv:
python -m ipykernel install --user --name=venv_2

I created a new ipynb file in the VS Code and select kernel to venv_2 in the top right corner.
When I check the file of the notebook in the text editor I see the wrong kernelspec in metadata, it has name set to python3 but it should be set to venv_2.
The contents of the notebook:
... the rest of the notebook ...
"metadata": {
  "kernelspec": {
   "display_name": "Python 3.8.0 64-bit ('venv_2': virtualenv)",
   "language": "python",
   "name": "python3"
  },

It should be
... the rest of the notebook ...
"metadata": {
  "kernelspec": {
   "display_name": "Python 3.8.0 64-bit ('venv_2': virtualenv)",
   "language": "python",
   "name": "venv_2"
  },

Thanks for the bug.
This is a side effect of how we start kernels. We don't use the kernelspec you wrote to disk. If there's a virtual environment, we just start the kernel directly ourselves. Which means we never 'find' the name 'venv_2' as the name of the kernel.
Meaning it won't work if you open the same notebook in Jupyter.

@rchiodo that's right, it doesn't work if I open the notebook in the Jupyter.
Are you going to fix this?
I'm asking because I've created a framework for converting Jupyter notebooks into web apps by adding YAML header. The framework is open-source https://github.com/mljar/mercury I would like to add an extension to VS Code - to be able to watch the app development in Jupyter & Mercury.

Are you going to fix this?

This depends upon a lot of things. How many people hit this issue, How often we think people create kernelspecs for venvs vs just installing jupyter in them and running them directly. How hard it would be to fix this.
This is the first complaint of this issue (and it's existed for the last two years) so my honest guess is no this won't be high priority.
I don't think it would be that hard to fix though. It's merely changing the 'name' associated with our internal representation of a kernel. We could look to see if there's a kernelspec that matches a virtual environment and if so, use that as the name instead of our default.

If you have the time to fix it, we certainly accept PRs as well. The logic is rather messy, but it's probably somewhere here:
https://github.com/microsoft/vscode-jupyter/blob/cae887e8fed0fed24896236a45fa97cec71c7622/src/client/datascience/kernel-launcher/localPythonAndRelatedNonPythonKernelSpecFinder.ts#L391
We're eliminating duplicates (the venv_2 kernelspec was likely marked as a dupe). In that dupe eliminating code, the kernelspec name might be saved to be used later.

@rchiodo do you think that it will be enough to replace following line https://github.com/microsoft/vscode-jupyter/blob/cae887e8fed0fed24896236a45fa97cec71c7622/src/client/datascience/kernel-launcher/localKernelSpecFinderBase.ts#L202
with
kernelSpec.name = kernelJson?.name || kernelJson?.display_name || path.basename(path.dirname(specPath));

With this line the code will try to replace the name with display_name which in my case will give desired result. The  path.basename(path.dirname(specPath)) will be as fallback.
I cant find tests for loadKernelSpec method, where I can found them?

Sorry but I don't think that will fix the problem. display_name shouldn't be used for kernelSpec.name (as the name is actually a directory). That line should already be picking up your kernelspec name (which would be venv_2)
I think the problem is later when we remove duplicates.
Tests for this are generally here:
https://github.com/microsoft/vscode-jupyter/blob/cae887e8fed0fed24896236a45fa97cec71c7622/src/test/datascience/notebook/kernelSelection.vscode.test.ts
I don't believe we have a test for this case yet.

@rchiodo it makes sense. But I just dont see how removing duplicates can change the name. I've check the https://github.com/microsoft/vscode-jupyter/blob/cae887e8fed0fed24896236a45fa97cec71c7622/src/client/datascience/kernel-launcher/localPythonAndRelatedNonPythonKernelSpecFinder.ts#L436-L457
Maybe there is some other place which change the name?

The 'interpreter' based kernelspec takes precedence over the local kernel spec one. It uses the 'name' of the interpreter based kernelspec which defaults to python3

Somewhere in this function it is:

Generating kernelspecs for every interpreter on the system
Generating kernelspecs for every kernelspec on the system
Eliminating dupes

@rchiodo thank you, but I give up.
Because of this bug, VS Code Jupyter notebooks cant be run on Jupyter Notebook and Jupyter Lab and with tools like nbconvert. Maybe there were not many requests to fix this because people dont understand what is the root cause.

I did some more looking.
This line here is eliminating your global kernel spec:
https://github.com/microsoft/vscode-jupyter/blob/c4a90aafa209992c54ba96c743a8c70f6028940d/src/client/datascience/kernel-launcher/localPythonAndRelatedNonPythonKernelSpecFinder.ts#L167
So it's not even considered (it matches an interpreter).
Then this line here generates a kernel name:
https://github.com/microsoft/vscode-jupyter/blob/c4a90aafa209992c54ba96c743a8c70f6028940d/src/client/datascience/kernel-launcher/localPythonAndRelatedNonPythonKernelSpecFinder.ts#L289
I think I have a fix for it. Maybe. I keep getting dupes in the kernel picker. Not sure how yet.

Ah figured out why there's a dupe. This is more complicated than thought. We have restrictions on interpreters have to load super fast (especially the current one) and there's no way to get the matching kernelspec at that point.

Here's the partial working branch.
https://github.com/microsoft/vscode-jupyter/tree/rchiodo/use_kernel_name
I think we could either:

Not preemptively generate a kernelspec from the active interpreter
Update the controller after the new list comes back

Another alternative, just let these kernelspecs through even if they don't have a custom environment.

just let these kernelspecs through even if they don't have a custom environment.

agreed. do this for all non default kernelspecs (excluse python etc and similar default  kernelsspecs in python env directories)
this way all custom (user created) kernelspecs are displayed.

i think we already hide default kernel specs , all wed need to do is remove the code that looks for duplicate kernel specs based on interpreter. which i believe is a simple block of code

If the user is using a named kernelspec for a notebook on the machine, then we shouldn't hide it or fail to write it to metadata.

This should now be fixed in the pre-release version.
@pplonski Please could you switch to the pre-release version of the Jupyter extesnsion (open the Jupyter extension from the extensions panel and click the button Switch to pre-release version
Once done, you might have to reload VS Code and it should work as expected.
Closing as this has been resolved as part of this issue https://github.com/microsoft/vscode-jupyter/issues/8481
@pplonski If the new pre-release version doesn't fix this please do let us know and we'll be happy to reopen this issue.

@rchiodo @DonJayamanne @greazer thank you for looking into this.
I've installed pre-release version:

The first use case. I've created a new file with the name test.ipynb. It is using the suggested kernel (in my case the suggested kernel is dashenv).

The end of test.ipynb file:
... the rest of the file ...
 "metadata": {
  "interpreter": {
   "hash": "5803cc62ceeeb9687df5d554a2392a6d093e68555e7672edae03c11d23d523ae"
  },
  "kernelspec": {
   "display_name": "Python 3.8.10 ('dashenv': venv)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

The name in kernelspec should be dashenv - so it is not working.

In the same file I changed the kernel to different one. I set kernel venv (for example) and when kernel is selected manually then it is working as expected. The end of the file test.ipynb:

... the rest of the file ...
 "metadata": {
  "interpreter": {
   "hash": "5803cc62ceeeb9687df5d554a2392a6d093e68555e7672edae03c11d23d523ae"
  },
  "kernelspec": {
   "display_name": "venv",
   "language": "python",
   "name": "venv"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

Then I selected the suggested kernel again (dashenv). The end of the file test.ipynb:

... the rest of the file ...
 "metadata": {
  "interpreter": {
   "hash": "5803cc62ceeeb9687df5d554a2392a6d093e68555e7672edae03c11d23d523ae"
  },
  "kernelspec": {
   "display_name": "venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

The display_name and name are wrong in the kernelspec.
To summarize, it is partially working (for case 2). For the suggested kernel, it is not working.

@pplonski

@DonJayamanne sorry for the confusion.  I've started VS Code after machine restart and looks like it is working!

Thank you very much! Closing the issue.

No apologies necessary, glad that you were able to verify this and get back to us.
Thanks again for the confirmation.


fix delayed execution bug when using classic cache model

1. what is this bug?
some instructions have unintended 1 cpu cycle delay when being ready for execution when instrucitons are waiting on data load from l1d cache
and for a bonus, fixes a bug where you couldn't run ruby-CHI cache model in develop branch due to wrong class name
2. when does it happen?
when multiple instructions are dependent in single cache line load. Only first instructions gets executed while others have unintended 1 cycle delay when cache line is ready.
This happens only when you're using classic cache model. This doesn't happend when using Ruby
3. how can i reproduce?
Use configs/deprecated/example/se.py and dummy assembly code (aka code) to demonstrate this issue. Running the code with ref cache setting and ruby-CHI setting will show that this issue shows only on ref cache setting, and after applying this PR, issue disappears on ref cache model.
here is the link for the code and script to run ref cache model and ruby-CHI cache model. clone that repo anywhere you like.
binary/ dir has sample assembly code and compiled binary to be run on simulation to produce the bug. If you look at the assembly code, it's simple: lots of nops, and 3 ldr instruction starting at line 3210.
ldr x1, =DataStart
ldr x2, =DataStart
ldr x3, =DataStart

these three loads requests line read on same cache line; and put on hold until data is available. By executing this code and looking at the log, you can see that on ref cache model, only ldr x1 gets executed and latter two is executed on next cycle while all three ldr is executed on same cycle when using ruby-CHI cache model.
runscript/ dir has the script to run ref cache model (ref.sh) and ruby-CHI cache model (chi.sh). just change value of gem5_dir of each script to match your gem5 directory and run each script once.
When you run each script, you will get the result directory m5out-ref and m5out-chi, and in each dir, you'll get debug log file ref-out.txt and chi-out.txt for each run. Open up these debug log, and look for the timestamp below. following is how to read the timestamp
example timestamp:
[sn:105786] 53110400 53157600 118 // first ldr instruction
[sn:105787] 53110400 53158000 119 // second ldr instruction
[sn:105788] 53110400 53158000 119 // third ldr instruction
[sn:105788] : instruction sequence number
first number (53157600) : tick when instruction calls mem read
second number (53157600) : tick when mem read complete and instruction gets executed
third number (118) : number of cpu cycle elapsed (assuming 2.5GHz CPU core clock)
If you're running on stable branch:
ref before fix
[sn:105786] 53110400 53157600 118
[sn:105787] 53110400 53158000 119
[sn:105788] 53110400 53158000 119
ref after fix
[sn:105859] 52748000 52795200 118
[sn:105860] 52748000 52795200 118
[sn:105861] 52748000 52795200 118
chi before, after fix
[sn:105333] 67030800 67090400 149
[sn:105334] 67030800 67090400 149
[sn:105335] 67030800 67090400 149
If you're running on develop branch:
ref before fix
[sn:105786] 53110400 53157600 118
[sn:105787] 53110400 53158000 119
[sn:105788] 53110400 53158000 119
ref after fix
[sn:105859] 52748000 52795200 118
[sn:105860] 52748000 52795200 118
[sn:105861] 52748000 52795200 118
chi before fix(doesn't run because of class naming scheme)
chi after fix
[sn:105333] 66974000 67033600 149
[sn:105334] 66974000 67033600 149
[sn:105335] 66974000 67033600 149
as you can see, before fix, first ldr instruction from ref-cache model takes 118 cycle while latter two takes 119 cycles. after fix, this bug disappears
4. Ok. what is going on here?
following is the simplified timeline of what's happening in the simulation. Let's say 3 ldr instructions are instruction a, b, and c.
before fix
tick 300

cache load done. resp latency : 1
inst a,b,c queued to release at next cpu cycle  + resp latency  = (tick 800)

tick 400 (cpu clock edge)

cpu executes

tick 800(cpu clock edge)

inst a released, checking for any more instruction... yes. scheduling inst b at tick 801
cpu executes, finds inst a released.

tick 801

inst b released, checking for any more instruction... yes. scheduling inst c at tick 802

tick 802

inst c released. checking for any more instruction... no

tick 1200(cpu clock edge)

cpu executes, finds inst b, c released

==============
after fix
tick 300

cache load done. resp latency : 1
inst a,b,c queued to release at curTime + resp latency = (tick 700)

tick 400 (cpu clock edge)

cpu executes

tick 700

inst a released, checking for any more instruction... yes. scheduling inst b at tick 701

tick 701

inst b released, checking for any more instruction... yes. scheduling inst c at tick 702

tick 702

inst c released, checking for any more instruction... no

tick 800(cpu clock edge)

cpu executes, finds inst a,b,c released.

==============
ruby-cache (resp latency isn't implemented in code, though parameter exists)
tick 300

cache load done. resp latency : 1
inst a,b,c queued to release at next clock edge (tick 400)

tick 400 (cpu clock edge)

cpu executes
inst a released, checking for any more instruction... yes. scheduling inst b at tick 401

tick 401

inst b released, checking for any more instruction... yes. scheduling inst c at tick 402

tick 402

inst c released, checking for any more instruction... no

tick 800(cpu clock edge)

cpu executes, finds inst a,b,c released.

so basically, order of releasing the ready instruction and cpu execution is the problem. So I changed the tick timing of the release of instructions, so instructions are released on time regardless of the order. This solution might seem like a XY problem, but all tests passed, and my benchmarks run without problem with meaningful perfomrance difference.

Thanks @2channelkrt for this fix. Can I ask you to split the changes in two separate PRs?
The CHI change definitely needs to go as soon as possible in next release

Thanks @2channelkrt for this fix. Can I ask you to split the changes in two separate PRs?
The CHI change definitely needs to go as soon as possible in next release

It's two commits. Is that ok?
I can cherry-pick the CHI one when merged

Thanks @2channelkrt for this fix. Can I ask you to split the changes in two separate PRs?
The CHI change definitely needs to go as soon as possible in next release

It's two commits. Is that ok?
I can cherry-pick the CHI one when merged

I haven't read the problem description in full, but the classic cache change looks wrong to me.
completion_time += curTick() + responseLatency
Here we are adding Tick to cycles. This is wrong. clockEdge was rightfully transforming the latency value (cycles) into the corresponding tick number. So that's why I believe we should split this in two; the CHI change is straightforward and fixes CHI in the staging branch.
We need extra time to review the problem description for the classic bit

Hi @BobbyRBruce and @giactra! thanks for the review.

Here we are adding Tick to cycles. This is wrong. clockEdge was rightfully transforming the latency value (cycles) into the corresponding tick number.

Original code was transforming latency into clockEdge and queueing data-ready instructions to mark them ready, and this can be seen as a right way to go, but 'marking the instruction ready' and 'executing CPU tick' was done in different order between 'classic cache' and 'ruby cache' caused the delay. So queueing data-ready instrucitons at tick rather than clockEdge solves this issue for most case.
For the case where cache line is ready on the cpu clockEdge, issue would still occur, as they will be ready on clockEdge even if we use tick() to queue instructions to mark them ready.

i will add a new commit which reverts ruby-CHI naming and make new PR just for that.

now this pr is solely on delayed execution

Hi @BobbyRBruce and @giactra! thanks for the review.

Here we are adding Tick to cycles. This is wrong. clockEdge was rightfully transforming the latency value (cycles) into the corresponding tick number.

Original code was transforming latency into clockEdge and queueing data-ready instructions to mark them ready, and this can be seen as a right way to go, but 'marking the instruction ready' and 'executing CPU tick' was done in different order between 'classic cache' and 'ruby cache' caused the delay. So queueing data-ready instrucitons at tick rather than clockEdge solves this issue for most case.
For the case where cache line is ready on the cpu clockEdge, issue would still occur, as they will be ready on clockEdge even if we use tick() to queue instructions to mark them ready.

The fact that ruby and classic caches' behaviour differ does not surprise me. Ultimately it's a matter of understanding which model resembles the operation of a real world cache. To this I have little knowledge but it does not look unreasonable to me to respond to multiple memory operation targeting the same line in the same cycle
However it looks to me you are just tampering the event scheduling to make things work. But effectively it is just a coincidence and you are doing so adding two values which should not be added together.
Look at the snipper I posted before:
completion_time += curTick() + responseLatency
responseLatency is defined as being number of Cycles. You cannot add Cycles to Ticks (the output of curTick()); that 's like adding apples and pears.
Tick is the atomic unit of measure of gem5 time. Everything is scheduled according to ticks. Cycles are made of a number of ticks (>1) and that number depends on the frequency of the object (you can have multiple clock domains)
So for example
[ _ _ _ _ _ _ _ _ _ _] = 10 Ticks
[ _ _ ] = 1 Cycle = 2 Ticks for a 2 GHz CPU
[ _ _ _ _ ] = 1 Cycle = 4 Ticks for a 1 GHz CPU
Ok, so the moment a user defines responseLatency as number of Cycles, you cannot directly add that value to a Tick number because it will not give the expected results.

I got the point. When i tested it with resp latency 1 it worked as intended (1 cpu clock cycle, 400ticks for 2.5Ghz) but i will double check with other values.
Even if other value works as intended, adding tick and latency without any explicit conversion seem absurd to me too, this i will add some conversion method for resp latency for better readability and make sure the value is synched to the clock.
will that suffice?

i confirmed the code is wrong.
when curtick() is 500 and resplatency is 5 while cpu clock is 2.5GHz, my intended comp_time is 500 + (5 * 400) = 2500 but now it's printing 505. I will push fix for this.

fixed. this is what I intended to do.

fixed. this is what I intended to do.

The new version is effectively similar to clockEdge
Tick
clockEdge(Cycles cycles=Cycles(0)) const
{
    // align tick to the next clock edge
    update();

    // figure out when this future cycle is
    return tick + clockPeriod() * cycles;
}

The only difference is the update method which is aligning the computation starting point to the next clock edge, if we are not (curTick) on a clock edge. This makes sense as it assumes changes (triggering an elaboration) will be made visible to the logic only on a clock edge (and that should be the starting count on the latency).
I fail to understand the logical connection between this line change and what you are effectively trying to do. Unless somehow calling ClockedObject::update over different MSHR targets yields to different completion times.
But as far as I can see from the code, this shouldn't be the case.
I believe you should make sure (debugging is a solution) the PR is not fixing your problem coincidentally/indirectly. The starting point shouldn't be: I want the CPU to get the data at this tick time and I am going to scram the timing of the cache model so that this condition is satisfied. The starting point should rather be: I want to be able to service multiple targets at the same cycle. Why is this not happening?
Also, no need to act on this now, but it would be nice if you could squash all your commits into a single one and force push the PR ;)

the motivation for this fix was that only first instruction were applied correct latency while other instructions were having unintended +1 cycle latency on ref cache mode. Since the number of register gets free in single cycle isn't parametized, and behaves differently between classic cache and ruby cache, I decided to fix it since this caused up to 10% ipc difference on the benchmarks I tested.
I found this issue while debugging instruction execution timing between classic cache and ruby cache, where they had different timing result despite having same latency config.
I provided simulation setting to reproduce the issue, and while I didn't provide the log itself, I wrote what was happening in the first comment. This issue is mainly related to the line here
        when = std::max(when, curTick() + 1);

when going over mshr slot, gem5 adds extra tick per slot to free the register dependant on it.
So i came up with the fix to desync between the timing of the MSHR release and cpu clock edge, so adding +1 tick on the MSHR release timing doesn't happen crossing over cpu clock edge on most part.


Websocket not passing information for all subscribed tokens

@dhwajsinghal, @sanket-parte , @paramatrixtech
I am passing list of 11 tokens to the websocket subscribe method. Out of the tokens, one is token number for Nifty50 Spot and rest 10 token numbers are for options (5 token for PE and 5 token for CE).
The output I am receiving through websocket is not passing Nifty50 Spot details. Also out of 10 option tokens websocket is returning only for 6 or 7 token randomly. What could be the issue ?
Note: If I subscribe only for Nifty 50 Spot, then i get result through websocket. Also if I subscribe for the missing option tokens separately I am getting output through websocket. So the missing results are random if clubbed together. How to address this issue.
Can you please suggest some solution.

Could you drop an email on<EMAIL_ADDRESS>with this issue, and your client code. We will have our team check the logs and figure out the problem here.

Hi, could you also share the list of tokens? (you can send it here if you'd like)

@dhwajsinghal I was using weekly tokens with websocket.. So i dont have the tokens I used when issue was originally raised. Moreover since websocket was not working consistently as specified in the issue, I have modified code to use quote method using individual tokens in a loop with 3 seconds gap for each quote request. It is not efficient though. I will try to recreate the issue from my end and will provide you the samples.

I am also facing same issue. I am trying to subscribe below tokens but receiving data for only few tokens.
Tick data is the basic thing that has to be supported without any issues.
Can you please subscribe on the below tokens yourself and see whether you receive tick data for all. Other wise try to subscribe more than any 10 tokens and see tick data is received or not for all. Thanks.
21-06-2022 09:47:44 Logged In Successfully
21-06-2022 09:47:48 Index watch added count  1
21-06-2022 09:47:49 Started Listening NIFTY BANK Instrument Token 11717
21-06-2022 09:47:50 TickData Received from 9.15 to 9.30
21-06-2022 09:47:50 Index watch added count  34
21-06-2022 09:47:51 Started Listening BANKNIFTY30JUN2232600PE Instrument Token 20083
21-06-2022 09:47:52 Started Listening BANKNIFTY30JUN2232100PE Instrument Token 98005
21-06-2022 09:47:52 Started Listening BANKNIFTY30JUN2233200CE Instrument Token 20140
21-06-2022 09:47:53 Started Listening BANKNIFTY30JUN2233300PE Instrument Token 16862
21-06-2022 09:47:53 Started Listening BANKNIFTY30JUN2232500CE Instrument Token 20061
21-06-2022 09:47:54 Started Listening BANKNIFTY30JUN2233500PE Instrument Token 16867
21-06-2022 09:47:54 Started Listening BANKNIFTY30JUN2233600CE Instrument Token 16870
21-06-2022 09:47:55 Started Listening BANKNIFTY30JUN2232800CE Instrument Token 17364
21-06-2022 09:47:55 Started Listening BANKNIFTY30JUN2233100CE Instrument Token 17387
21-06-2022 09:47:56 Started Listening BANKNIFTY30JUN2233400PE Instrument Token 16863
21-06-2022 09:47:56 Started Listening BANKNIFTY30JUN2232300CE Instrument Token 95478
21-06-2022 09:47:57 Started Listening BANKNIFTY30JUN2232600CE Instrument Token 20082
21-06-2022 09:47:57 Started Listening BANKNIFTY30JUN2233600PE Instrument Token 17389
21-06-2022 09:47:58 Started Listening BANKNIFTY30JUN2232700CE Instrument Token 20093
21-06-2022 09:47:58 Started Listening BANKNIFTY30JUN2232300PE Instrument Token 95479
21-06-2022 09:47:59 Started Listening BANKNIFTY30JUN2233000CE Instrument Token 35652
21-06-2022 09:47:59 Started Listening BANKNIFTY30JUN2232400PE Instrument Token 20056
21-06-2022 09:48:00 Started Listening BANKNIFTY30JUN2233700PE Instrument Token 20184
21-06-2022 09:48:00 Started Listening BANKNIFTY30JUN2233400CE Instrument Token 20163
21-06-2022 09:48:01 Started Listening BANKNIFTY30JUN2233500CE Instrument Token 20164
21-06-2022 09:48:01 Started Listening BANKNIFTY30JUN2232900CE Instrument Token 17374
21-06-2022 09:48:02 Started Listening BANKNIFTY30JUN2232900PE Instrument Token 17375
21-06-2022 09:48:02 Started Listening BANKNIFTY30JUN2233000PE Instrument Token 35653
21-06-2022 09:48:03 Started Listening BANKNIFTY30JUN2232800PE Instrument Token 20117
21-06-2022 09:48:03 Started Listening BANKNIFTY30JUN2233300CE Instrument Token 20162
21-06-2022 09:48:04 Started Listening BANKNIFTY30JUN2233100PE Instrument Token 20139
21-06-2022 09:48:05 Started Listening BANKNIFTY30JUN2232200CE Instrument Token 98006
21-06-2022 09:48:05 Started Listening BANKNIFTY30JUN2232200PE Instrument Token 98007
21-06-2022 09:48:06 Started Listening BANKNIFTY30JUN2232700PE Instrument Token 16861
21-06-2022 09:48:06 Started Listening BANKNIFTY30JUN2232500PE Instrument Token 20066
21-06-2022 09:48:07 Started Listening BANKNIFTY30JUN2233700CE Instrument Token 17396
21-06-2022 09:48:07 Started Listening BANKNIFTY30JUN2232400CE Instrument Token 20055
21-06-2022 09:48:08 Started Listening BANKNIFTY30JUN2232100CE Instrument Token 98004
21-06-2022 09:48:08 Started Listening BANKNIFTY30JUN2233200PE Instrument Token 20161
Lot of connection messages shown. Option should be provided whether to send this data to us.
Attempting WebSocket connection to wss://wstreamer.kotaksecurities.com/feed/?transport=websocket&EIO=4
WebSocket connection accepted with {'sid': 'BeR3By79Ggd7T2MOBOiw', 'upgrades': [], 'pingInterval': 25000, 'pingTimeout': 5000}
Engine.IO connection established
Sending packet MESSAGE data 0
Received packet MESSAGE data 0
Namespace / is connected
Emitting event "pageload" [/]
Sending packet MESSAGE data 2["pageload",{"inputtoken":"20082"}]
Received packet MESSAGE data 2["message","Welcome to StreamerIO (Build: 20200709)."]
Received event "message" [/]
Received packet MESSAGE data 2["message","Welcome to StreamerIO (Build: 20200709)."]
Received event "message" [/]

Team, I had already subscribed to websocket for streaming service. While I execute subscribe function, it always gives constant data feed like this, doesn't give instument details.
Attempting WebSocket connection to wss://wstreamer.kotaksecurities.com/feed/?transport=websocket&EIO=4
WebSocket connection accepted with {'sid': 'L2xcXDcUn89frYW0AeK8', 'upgrades': [], 'pingInterval': 25000, 'pingTimeout': 5000}
Engine.IO connection established
Sending packet MESSAGE data 0
Received packet MESSAGE data 0
Namespace / is connected
Received packet MESSAGE data 2["message","Welcome to StreamerIO (Build: 20200709)."]
Emitting event "pageload" [/]
Sending packet MESSAGE data 2["pageload",{"inputtoken":"1517"}]
Received event "message" [/]
Received packet MESSAGE data 2["message","Welcome to StreamerIO (Build: 20200709)."]
Received event "message" [/]
packet queue is empty, aborting
Exiting write loop task
Server has stopped communicating, aborting
Waiting for write loop task to end
Engine.IO connection dropped
Connection failed, new attempt in 0.56 seconds
Exiting read loop task

What could be the reason for this, kindly help.


can not downloade the sample dataset

Dear Developer, I want to reproduce the slices alignment results, but I think I can not download the sample dataset “E7-9h_bin20_h5ad.zip”
THE ERROR ：
|-----> Downloading data to ./data/E7-9h_bin20_h5ad.zip
https://www.dropbox.com/s/f3c635r4ro4zsmj/bin20_h5ad.zip?dl=1
TimeoutError                              Traceback (most recent call last)
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/urllib/request.py in do_open(self, http_class, req, **http_conn_args)
1353             try:
-> 1354                 h.request(req.get_method(), req.selector, req.data, headers,
1355                           encode_chunked=req.has_header('Transfer-encoding'))
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/http/client.py in request(self, method, url, body, headers, encode_chunked)
1255         """Send a complete request to the server."""
-> 1256         self._send_request(method, url, body, headers, encode_chunked)
1257
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/http/client.py in _send_request(self, method, url, body, headers, encode_chunked)
1301             body = _encode(body, 'body')
-> 1302         self.endheaders(body, encode_chunked=encode_chunked)
1303
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/http/client.py in endheaders(self, message_body, encode_chunked)
1250             raise CannotSendHeader()
-> 1251         self._send_output(message_body, encode_chunked=encode_chunked)
1252
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/http/client.py in _send_output(self, message_body, encode_chunked)
1010         del self._buffer[:]
-> 1011         self.send(msg)
1012
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/http/client.py in send(self, data)
950             if self.auto_open:
--> 951                 self.connect()
952             else:
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/http/client.py in connect(self)
1417
-> 1418             super().connect()
1419
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/http/client.py in connect(self)
921         """Connect to the host and port specified in init."""
--> 922         self.sock = self._create_connection(
923             (self.host,self.port), self.timeout, self.source_address)
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/socket.py in create_connection(address, timeout, source_address)
807         try:
--> 808             raise err
809         finally:
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/socket.py in create_connection(address, timeout, source_address)
795                 sock.bind(source_address)
--> 796             sock.connect(sa)
797             # Break explicitly a reference cycle
TimeoutError: [Errno 110] Connection timed out
During handling of the above exception, another exception occurred:
URLError                                  Traceback (most recent call last)
 in
1 # cellbin data
----> 2 binning_slices = st.sample_data.drosophila(filename="E7-9h_bin20_h5ad.zip")[3:7]
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/site-packages/spateo/sample_data.py in drosophila(filename, dir_name)
104         Path(extract_dir).mkdir(parents=True, exist_ok=True)
105
--> 106         file_path = download_data(url=url_dict[filename], file_path=filename)
107         shutil.unpack_archive(file_path, extract_dir)
108
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/site-packages/spateo/sample_data.py in download_data(url, file_path, dir_name)
33         # download the data
34         print(url)
---> 35         urlretrieve(url, file_path, reporthook=lm.get_main_logger().request_report_hook)
36
37     return file_path
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/urllib/request.py in urlretrieve(url, filename, reporthook, data)
245     url_type, path = _splittype(url)
246
--> 247     with contextlib.closing(urlopen(url, data)) as fp:
248         headers = fp.info()
249
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/urllib/request.py in urlopen(url, data, timeout, cafile, capath, cadefault, context)
220     else:
221         opener = _opener
--> 222     return opener.open(url, data, timeout)
223
224 def install_opener(opener):
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/urllib/request.py in open(self, fullurl, data, timeout)
523
524         sys.audit('urllib.Request', req.full_url, req.data, req.headers, req.get_method())
--> 525         response = self._open(req, data)
526
527         # post-process response
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/urllib/request.py in _open(self, req, data)
540
541         protocol = req.type
--> 542         result = self._call_chain(self.handle_open, protocol, protocol +
543                                   '_open', req)
544         if result:
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/urllib/request.py in _call_chain(self, chain, kind, meth_name, *args)
500         for handler in handlers:
501             func = getattr(handler, meth_name)
--> 502             result = func(*args)
503             if result is not None:
504                 return result
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/urllib/request.py in https_open(self, req)
1395
1396         def https_open(self, req):
-> 1397             return self.do_open(http.client.HTTPSConnection, req,
1398                 context=self._context, check_hostname=self._check_hostname)
1399
/home/program/conda/anaconda3/envs/spateo/lib/python3.8/urllib/request.py in do_open(self, http_class, req, **http_conn_args)
1355                           encode_chunked=req.has_header('Transfer-encoding'))
1356             except OSError as err: # timeout error
-> 1357                 raise URLError(err)
1358             r = h.getresponse()
1359         except:
URLError: <urlopen error [Errno 110] Connection timed out>

Hi @JingGuo1997 ,
Thanks for your question. If you are located in China, I recommend you download the sample data directly from our link(https://www.dropbox.com/s/f3c635r4ro4zsmj/bin20_h5ad.zip?dl=1)  instead of downloading the data through spateo.

Hi @JingGuo1997 , Thanks for your question. If you are located in China, I recommend you download the sample data directly from our link(https://www.dropbox.com/s/f3c635r4ro4zsmj/bin20_h5ad.zip?dl=1) instead of downloading the data through spateo.

I'm sorry,  i  also cannot open the link.

Hi @JingGuo1997 you will need to have a VPN to download the data.

Hi @JingGuo1997, please check the link below, you can download sample data by the following ways.
https://github.com/aristoteleo/spateo-release/issues/165


Add option to configure jira transition to project config

Right now there is a octobot has a project setting to enable jira transitions, but once its enable, you are required to add "Fixes JIRA_ID" to get it to actually tranistion the ticket.
For protect, we want to just automatically tranistion PR's ticket, and its awkward to add that "fixes x" bit, since all the PR's have the format "Prot-1234 fixes something..."
It would be nice if we had the ability to either specify the regex that is used to pick up these transitions, or just have a flag to "always transition" vs "require "Fixed" prefex"

I think this ship has sailed and predictability across projects/repos ended up being more important than flexibility here.


Running formatter produces invalid Swift

Formatting this code
_ = [
  Node(
    documentation: """
    A single argument that can be added to a lifetime specifier like `borrow`, `mutate`, `consume` or `copy`.

    ### Example
    `data` in `func foo(data: Array<Item>) -> borrow(data) ComplexReferenceType`
    """,
    children: [
      Child(
        documentation: """
        The parameter on which the lifetime of this type depends.

        This can be an identifier referring to an external parameter name, an integer literal to refer to an unnamed
        parameter or `self` if the type's lifetime depends on the object the method is called on.
        """
      ),
    ]
  )
]

produces
_ = [
  Node(
    documentation: """
      A single argument that can be added to a lifetime specifier like `borrow`, `mutate`, `consume` or `copy`.

      ### Example
      `data` in `func foo(data: Array<Item>) -> borrow(data) ComplexReferenceType`
      """,
    children: [
      Child(
        documentation: """
          The parameter on which the lifetime of this type depends.

         This can be an identifier referring to an external parameter name, an integer literal to refer to an unnamed
          parameter or `self` if the type's lifetime depends on the object the method is called on.
          """
      )
    ]
  )
]

Which is invalid because This can be has insufficient indentation. Instead, the previous line has a single space when it shouldn’t have any.

Tracked in Apple’s issue tracker as rdar://123880677

Possibly related. Before formatting:

After formatting:

I think this should be fixed by https://github.com/apple/sourcekit-lsp/pull/1118


TypeError: Cannot call method 'SHA256' of undefined

Somewhy Meteor doesn't automatically bind some Utility Packages, if they are even requested in package.js
To solve this issue simply run (inside meteor's project folder):
meteor add sha

If you want SHA256 available outside of your package, in other parts of the app, put this line in your package.js file:
api.imply('sha');


feat(core): generate Bytes and serde traits for new sequencerblock API

Summary
Generate Bytes for protobuf bytes fields and all serde Deserialize and Serialize for all new protobuf types.
Background
It's a long-standing goal to prefer Bytes over Vec<u8> (for performance/zero-copy reasons). Using the protobuf <> json mapping for our protobuf specs also provides for common standard across all our API (and is required when macking mock tests using `astria-grpc-mock).
Changes

add all of .astria.sequenceblock.v1alpha1 to prost_build::Config::bytes and pbjson_build::Config::new

Testing
N/A, just generated code.

This was completed in combo of #958 and #987


Extend snr

This should largely finish the snr module for now.   Includes a bunch of bug fixes found when applying this to thousands of real data from our large usarray test data set that is not feasible to put in github due to the size.  In the process I also reorganized the top level function to split what previously was a single function into two.   That is necessary to allow the user to run the same function either inline with a map call followed by filter to remove junk or in a database mode where the computed metrics are posted to an arrival collection.
This also now has a complete test suite for the functions in snr.py.   I'm sure coverage will show some missing but I think the tests cover the main features.
Before this branch is merged we need to decide if we need to add a formal "arrival" collection to the default schema.   This implementation has "arrival" hard wired as the default save target for the database save function.

Codecov Report

Merging #357 (a828ba7) into master (2430d4f) will decrease coverage by 0.27%.
The diff coverage is 52.23%.

@@            Coverage Diff             @@
##           master     #357      +/-   ##
==========================================
- Coverage   53.22%   52.94%   -0.28%
==========================================
  Files         127      127
  Lines       18823    19215     +392
==========================================
+ Hits        10018    10174     +156
- Misses       8805     9041     +236

Impacted Files
Coverage Δ

cxx/src/lib/seismic/CoreSeismogram.cc
91.02% <ø> (-0.03%)
:arrow_down:

cxx/src/lib/algorithms/snr.cc
70.87% <14.28%> (-5.17%)
:arrow_down:

python/mspasspy/algorithms/snr.py
63.12% <60.78%> (+2.16%)
:arrow_up:

python/mspasspy/db/normalize.py
68.63% <100.00%> (ø)

cxx/python/io/io_py.cc
70.83% <0.00%> (-21.01%)
:arrow_down:

cxx/include/mspass/seismic/CoreSeismogram.h
88.88% <0.00%> (-11.12%)
:arrow_down:

cxx/test/dmatrix/test_dmatrix.cc
90.14% <0.00%> (-3.98%)
:arrow_down:

cxx/src/lib/seismic/BasicTimeSeries.cc
64.51% <0.00%> (-3.91%)
:arrow_down:

cxx/src/lib/seismic/CoreTimeSeries.cc
87.14% <0.00%> (-3.16%)
:arrow_down:

cxx/src/lib/seismic/PowerSpectrum.cc
56.86% <0.00%> (-3.14%)
:arrow_down:

... and 59 more

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

I don't understand why the 3.8 test failed.  The same code passed pytest on my local machine.  It is failing on an assert for isclose with a mysterious difference?   I thought I removed the randomness from the test but maybe it is something else.
Let me make sure I don't have a version skew.  I'll rebuild my local copy and rerun the local pytest to look for any obvious issues.

This looks good. I think the only issue is whether we should move the db related function to under the db module. Not sure, but I will merge it for now.


viewer type pattern removed, but tutorial not updated

The viewer type pattern was removed in https://github.com/relayjs/relay-examples/pull/62, but the tutorial on the graphql website wasn't updated (https://relay.dev/docs/en/quick-start-guide). This is super confusing for beginners.

care to send a pull request on facebook/relay improving the docs?

I would like to, but I feel like I need to understand Relay more before I suggest an improvement. I'll get back to this in +/- a week.

Any progress on this? It's been a long time for the quickstart to be broken, do people still use Relay?

more and more people are using Relay (Facebook, Twitter, Hasura is bringing support to it)
I'm gonna give a workshop about Relay new features at React Europe, check the demo here https://twitter.com/ReactEurope/status/1226951417002446849
feel free to send a pull request to fix this

Closing this as the quick-start-guide no longer references viewer


[mesheryctl] Fix for mesheryctl start platform preflight checks

…
Signed-off-by: Piyush Singariya<EMAIL_ADDRESS>Description
fix docker platform check with platform Kubernetes when docker isn't available
fixes #3791
Conditions to test it out-

Docker client is disabled i.e. docker version should return an error in cli
No .meshery folder in existence
Kubernetes is passed as the platform with the flag
Only Kubernetes checks should be triggered so also do not run any clusters
If got received Kubernetes error from preflight checks we're good.
and with -p docker docker error should be received.

This PR fixes #
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

Codecov Report

Merging #3707 (ae80318) into master (b64d564) will decrease coverage by 7.81%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #3707      +/-   ##
==========================================
- Coverage   20.59%   12.78%   -7.82%
==========================================
  Files          45       45
  Lines        3807     3810       +3
==========================================
- Hits          784      487     -297
- Misses       2817     3208     +391
+ Partials      206      115      -91

Flag
Coverage Δ

gointegrationtests
?

unittests
12.78% <0.00%> (-0.02%)
:arrow_down:

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

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/system/start.go
1.10% <0.00%> (-53.55%)
:arrow_down:

mesheryctl/internal/cli/root/system/status.go
0.00% <0.00%> (-62.83%)
:arrow_down:

mesheryctl/internal/cli/root/system/stop.go
0.90% <0.00%> (-39.10%)
:arrow_down:

mesheryctl/internal/cli/root/system/check.go
1.42% <0.00%> (-21.71%)
:arrow_down:

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 b64d564...ae80318. Read the comment docs.

@metonymic-smokey I'm unaware of how to implement these errors.

@piyushsingariya An update to MeshKit style errors and this PR is ready to merge.

We're so close...

@piyushsingariya sorry for the delay.
To change to meshkit errors, you need to create an error.go file for the package(since each package should have a local error file and locally defined errors).
Define error codes and functions in that similar to the error.go in package system, but replace the error codes with a placeholder string.
Wherever you are returning errors in your current package, return a call to the error function instead.

I think this PR is ready to merge, and there aren't any files in this PR that requires Meshkit style errors.


Get Error when adding BookstoreViewModel Property to MainPage.idl

This is the error i got when try to add the view model to mainpage.idl and rebuild
Error	MIDL2025	[msg]syntax error [context]: expecting < near "MainViewModel"

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

ID: a4db0aab-b906-9dec-381c-ceccc1e90c45
Version Independent ID: 493a4c50-ffa1-5e32-c757-92306c952887
Content: XAML controls; bind to a C++/WinRT property - UWP app developer
Content Source: windows-apps-src/cpp-and-winrt-apis/binding-property.md
Product: windows
GitHub Login: @stevewhims
Microsoft Alias: stwhi

Hi, @JK-IT, you'll need to add the "import "BookstoreViewModel.idl";" to MainPage.idl in order to resolve that error. That import IS in the code listing, but it's not obvious, so I'll make it clearer in the topic. Thanks for the heads up! :) -Steve

Thanks @stevewhims, it works for me. And i would like to add a tip that we should declare all classes in the same namespace. The error happenes when i try to fix by declaring a different  namespace.

Good point, @JK-IT, I've pushed new changes to the topic along the lines you recommend.

@JK-IT, I'll go ahead and close this issue now since it's been a while and it feels resolved. Please reopen if I made a mistake in closing. ~Steve


Outlining drawbacks of VM creation via WAC or PS on Azure Stack HCI 23H2

outlining the actual drawbacks of PowerShell and WAC to create VMs on Azure Stack HCI 23H2

the link should point to https://github.com/MicrosoftDocs/azure-docs/blob/main/articles/azure-arc/choose-service.md
Not sure how to accomplish this correctly. Thanks for resolving this

@alkohli
Can you review the proposed changes? Note that the validation warning must be resolved before merging.
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Hello @Karl-WE Thank you for your contribution! We have captured that changes you suggested via a PR against the azure-stack-doc-pr repo: https://github.com/MicrosoftDocs/azure-stack-docs-pr/pull/15443  and also resolved the warning. The changes should go live over the weekend. Closing this PR. #please-close

Thank you!


test: retry certain ks test to get a flaky test through with better probability

Description :sparkles:
Circumvent a real issue https://github.com/City-of-Helsinki/yjdh/issues/1998 by banging test's head into the wall.

API branch is deployed to platta: https://kesaseteli-pr2940.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

API branch is deployed to platta: https://kesaseteli-pr2940.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

API branch is deployed to platta: https://kesaseteli-pr2940.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

EMPLOYER branch is deployed to platta: https://kesaseteli-employer-pr2940.dev.hel.ninja :rocket::rocket::rocket:

HANDLER branch is deployed to platta: https://kesaseteli-handler-pr2940.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://kesaseteli-handler-pr2940.dev.hel.ninja :laughing::tada::tada::tada:

YOUTH branch is deployed to platta: https://kesaseteli-youth-pr2940.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://kesaseteli-youth-pr2940.dev.hel.ninja :laughing::tada::tada::tada:


Enable Config Include in default configuration

Yesterday, I was debugging a query in our application (with docker compose) and tried to enable some logs. A common pattern for this is to load a config file to some directory, that leaves default config intact but adds some parameters (I use Nginx and PHP containers, for example). So, I was very surprised that enabling some parameters is so hard to do with the Postgres image: it's required to maintain your own config fork, and then it's also required to change the default command?!

I did quick research, and learned, that Postgres also can include files of a directory as additional config. Therefore I created this PR to enable a similar experience in this container as well.
I implemented it in a similar way to what is already used to configure the listen_addresses. With this change, it might not be needed to do it that way and we could as well just use a default configuration. I’m up for both, just let me know if I should implement it differently.
Basically, all this PR does is add the creation of the directory /etc/postgresql/conf.d and insert the line include_dir = 'etc/postgresql/conf.d' into the default config.

With the suggested changes, it would be way easier to maintain and load one or even multiple config files, especially in local docker compose environments:
For example:
services:
  pg_configdir:
    image: postgres
    volumes:
     - db:/var/lib/postgresql/data
     - ${PWD}/config/postgresql/local/:/etc/postgresql/conf.d

  pg_configfiles:
    image: postgres
    volumes:
     - db:/var/lib/postgresql/data
     - ${PWD}/config/postgresql/local/default.conf:/etc/postgresql/conf.d/10-default.conf
     # - ${PWD}/config/postgresql/local/debug.conf:/etc/postgresql/conf.d/99-default.conf   #optional: enable only for debugging

See https://github.com/docker-library/postgres/issues/835

Thanks @tianon
Great to see that I'm not the only one requesting this.

Sorry, let me be more clear: I think https://github.com/docker-library/postgres/issues/835#issuecomment-857282516 still accurately represents our shared maintainer position on this :see_no_evil:

Thanks. I didn't see any arguments against it and interpreted the comment just as quick workaround.
Obviously, you as maintainers have the say in this. Do you mind to share what the reasons are to decline this community request?


roll firstname lastname back to just name for User model

This limits mongo's name fields to just name, rather than first and last name. (Sorry @kevin-wei and @NerdyGirl537 and @adinneen and @drownedout , I know we just changed this at the last meeting).
My reasoning for wanting to change it back is as follows:
a) A couple things (the signup page, most notably) require specifically whitelisting non-devise attributes in the User model. So this is a slightly more involved change than just changing some Mongo attributes. (We'll also need to change the devise sign_up view, and add any permitted fields to a hash in ApplicationController.)
b) There's also a privacy issue with firstname and lastname of CMs; this would be, I think, pretty unique among DCAF docs on the internet in that it would have firstname and lastname. Our Excel doc just does initials/nicknames for both CMs and patients, when DCAF talks about people on the blog it's firstname last initial, etc.
Sorry for not raising these earlier. If there's strenuous objection to this long term we should talk about it, but I'm going to revert it back for now for the sake of a) and b) above.
Fixes #39

We put the full case manager name on the pledge even though in most places we just identify with the initials.  If we're going to auto-fill the pledge forms, we'll needed.

@NerdyGirl537 I hear you on autofilling pledge forms, thanks for raising that. I'll create an issue for this and we can figure out how to best handle it down the road -- I'm fairly confident there's a way we can get this to work all around.


Perpetual protocol - could not detect network

When using spot-perpetual strategy and perpetual protocol as derivatives exchange, doing balance check or starting strategy will result in failure to connect to the exchange. Upon checking the gateway side, we see that there is a network problem.

Client side:

After a discussion with Victor, it appears that the issue is due to a faulty RPC provider, currently, https://dai.poa.network/ is used, we tried changing to a different provider https://rpc.xdaichain.com/ but still getting some problem such as opening and closing position.
spot.zip

to enter custom url provider: https://github.com/CoinAlpha/gateway-api/pull/37/commits/aec0f15c03b038e417a6cb0cd63cde4bd3f9c8d5

Since Perpetual Protocol has moved from xDAI to Arbitrum, I think we should fix this issue in conjunction with adding this connector to v2 and changing to Arbitrum.


Create new Repo for managing the Monarch PhEval config

Right now, the pheval repo and the config are both in the same repo. We should

Have a repo with just the config (pheval-monarch-pipeline) and an easy way to update it
Have the config in the main pheval be some small test config we can run as part of continuous integration

https://github.com/souzadevinicius/monarch-pheval

https://github.com/souzadevinicius/monarch-pheval


HTML codes appearing in plaintext on the commandline

Sometimes the argos-translate output contains a proper apostrophe (’) character, and sometimes it contains the HTML encoding for an apostrophe (“'”).  HTML might be okay in the GUI (as it will be converted), but it makes no sense on the commandline where plaintext is expected.
Sample command:
argos-translate --from-lang en --to-lang fr "The explanation I gave to the ABC representative left no possibility for misinterpretation."

resulting output:
L ' explication que j ' ai donnée au représentant de l ' ABC n ' a laissé aucune possibilité d ' interprétation erronée.

It’s inconsistent, but reproducable.  That is, the above sample will show HTML encodings every time, but different input text will sometimes show apostrophes as expected.
The HTML encodings are also surrounded with spaces, which is probably wrong even in HTML.
(update)
My workaround is to add this to shell scripts:
htmldec()
{
    sed 's/[ ]*[&]\([^;]*\);[ ]*/\&\1;/g' | perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'
}

Then pipe argos output through that.  The ugly leading sed code removes the spaces surrounding the HTML entities and the PERL pipeline does the conversion into plaintext. The removal of spaces could have side-effects in the event that characters other than apostrophes come through. But then correcting that can really make for some ugly sed code because double quotes would need a space on one side and not the other, and this would vary between starting quote and ending quote.  Another imperfection with this workaround that is that the PERL replaces ' with a straight single quote, whereas some of the text already contains a properly curved apostrophe (’), so in the end there is a mix of the two.

This is the seq2seq model generating bad output. I used to filter html character codes from the data but stopped doing it because it was slow.


Documentation clarification with Image component

A thing that really caught me up (and I'm assuming many others) is that in order to get images to work as described in the docs, you have to drag them into the Images.xcassets directory in Xcode. I was trying to copy them into the iOS folder out of ignorance. Maybe an explicit message about this and screenshot would help others in the future?

@danawoodman - you can add this if you like! PR is welcome

I updated the documentation here finally! Hurray


Move rayleigh sponge to the implicit solver and only damp w

PULL REQUEST
Purpose and Content

Separate the relaxation coefficient for horizontal and vertical velocities in rayleigh sponge
Move the relaxation of vertical velocity into implicit tendency

Benefits and Risks
(State concisely the benefits to be derived from and the risks associated with this PR)
Linked Issues
(Provide references to any link issues. Use closes #issuenum to automatically close an open issue)

Fixes #
Closes #

PR Checklist

[ ] This PR has a corresponding issue OR is linked to an SDI.
[ ] I have followed CliMA's codebase contribution and style guidelines OR N/A.
[ ] I have followed CliMA's documentation policy.
[ ] I have checked all issues and PRs and I certify that this PR does not duplicate an open PR.
[ ] I linted my code on my local machine prior to submission OR N/A.
[ ] Unit tests are included OR N/A.
[ ] Code used in an integration test OR N/A.
[ ] All tests ran successfully on my local machine OR N/A.
[ ] All classes, modules, and function contain docstrings OR N/A.
[ ] Documentation has been added/updated OR N/A.

bors try

bors r+


Bug: Average not computed

From the README, historical behavior link is missing Average data.

Missclick close

Hi. Since average is not the primary metric now, you need to click on the "Average" (red square) on top of the chart.


feat: dynamic import server routes (rebased)

#494  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @hi-ogawa and the rest of your teammates on  Graphite


Add registry option to the Bootable Volume create form

📝 Description
DOC: https://docs.google.com/document/d/1oETHC4UpRnEGFEdiezUxMLzpQagWXOYz0DBYro-XHB0/edit
Merge bootable volume  and DS modals

add the registry DS option

The automatic update checkbox that is in the design needs to be addressed a little bit more, but if necessary can be added afterward
🎥 Demo
Before

After

/lgtm


fix: cd before publishing

😐 resolves #1186

@ofrobots I totally agree.  This isn't the first time I've borked a build because we don't have a way to test it.


Create a CI/CD documentation website

I'm working on another bun project and I found that you can get more contributors with a website. I built a really simple website and documentation generation tool if you want to add it to your project. Its under the MIT License- I'm just sending it around the bun community so it gains some more traction. If you want to check it out, it's right here. It's all integrated with Github Actions so all you have to do is add the code to GitHub actions and then you're are all set. If you don't want to, just let me know and close this issue- good luck with your project!
Also, just a tip, add a bunch of issues you need help with and label them "good first issue" because then people will see your project from places like goodfirstissues.com.

Thank you for your kind contribution.
Your project looks great, and I would love to use it in the future.
However, for now, I prefer a dedicated manual library to write up documentation like VitePress instead.
Because I would like to have some embed stuff like REPL editor inside the doc, and customizability which I prefers manual way instead for now.


Image disappearing in black background

When I set the image slideshow backgroundColor as black or when I enter into FullScreenMode, the image doesn't show. How can I fix this? Thanks!

Can you share the specific code you added to the example project that reproduces the issue?