Dataframe.write with table containing Always generate columns and auto generate columns is failing

Below write fails with No key found exception if UUID, Sysstarttime, sysendtime are not part of dataframe. If all three fields are added to the dataframe it throws "Cannot insert an explicit value into a GENERATED ALWAYS column in table error."
Any help is highly appreciated. Thanks

Exception details
rg.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 5.0 failed 4 times, most recent failure: Lost task 0.3 in stage 5.0 (TID 25, <IP_ADDRESS>, executor 1): com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert an explicit value into a GENERATED ALWAYS column in table '<>'. Use INSERT with a column list to exclude the GENERATED ALWAYS column, or insert a DEFAULT into GENERATED ALWAYS column.

Azure Databricks- 7.6 runtime
Azure SQL database
Language - PySpark
PySpark Code

df = <<read parquet file>>

df.write \
  .format("com.microsoft.sqlserver.jdbc.spark") \
  .mode("append") \
  .option("url", url) \
  .option("dbtable", "TEMPORAL_TABLE") \
  .option("user", _username) \
  .option("password", _password) \
  .option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")\
  .option("schemaCheckEnabled", False)\
  .save()

Azure SQL Temporal Table Definition:

CREATE TABLE DBO.TEMPORAL_TABLE(
	[UUID] [varchar](255) NOT NULL,
	[SERVICE_ID] [bigint] NULL,
	[START_DATE] [datetime2](7) NULL,
	[END_DATE] [datetime2](7) NULL,
	[CHANGED_ON] [datetime2](7) NULL,
	[operation] [char](1) NULL,
	[SysStartTime] [datetime2](7) GENERATED ALWAYS AS ROW START NOT NULL,
	[SysEndTime] [datetime2](7) GENERATED ALWAYS AS ROW END NOT NULL,
 CONSTRAINT [PK_TEMPORAL] PRIMARY KEY CLUSTERED
(
	[UUID] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
	PERIOD FOR SYSTEM_TIME ([SysStartTime], [SysEndTime])
) ON [PRIMARY]
WITH
(
SYSTEM_VERSIONING = ON ( HISTORY_TABLE = [history].[TEMPORAL_TABLE_HISTORY] )
)
GO

ALTER TABLE DBO.TEMPORAL_TABLE ADD  DEFAULT (newid()) FOR [UUID]
GO

ALTER TABLE DBO.TEMPORAL_TABLEADD  DEFAULT (getutcdate()) FOR [SysStartTime]
GO

ALTER TABLE DBO.TEMPORAL_TABLE ADD  DEFAULT (CONVERT([datetime2],'9999-12-31 23:59:59.9999999')) FOR [SysEndTime]

@shivsood , would you be able to provide any guidance on issue above (regarding Auto-Generated/ GENERATED ALWAYS columns) issue with the Spark SQL Server Connector? Thanks for your time.

This is show stopper for me in leveraging spark-connector, I would have no option but to use JDBC. Any help is highly appreciated.

Below write fails with No key found exception if UUID, Sysstarttime, sysendtime are not part of dataframe. If all three fields are added to the dataframe it throws "Cannot insert an explicit value into a GENERATED ALWAYS column in table error."
Have you tried with UUID and not providing   Sysstarttime, sysendtime? Can u enable debug on spark and send the spark driver/executor logs? @luxu1-ms

stderr.txt
log4j-active.txt
stdout.txt
Thanks you for helping with issue. Please see below for requisite details. Thanks.
Yes, I executed the again and encountered -Different number of columns. And if add all columns it throws "Cannot insert an explicit value into a GENERATED ALWAYS column in table"
"java.sql.SQLException: Spark Dataframe and SQL Server table have differing numbers of columns
Py4JJavaError                             Traceback (most recent call last)
 in
6             .option("user", user_name)
7             .option("password", password)
----> 8             .option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
9             .save()
"

Hi i'm having the same issue with Generated columns, period columns in and outside temporal tables. The following error stack is from a table with two generated always colums with a period setting on a regular table (so not a temporal table).

Py4JJavaError                             Traceback (most recent call last)
 in
7     .option("password", dbutils.secrets.get(scope = "keyvaultscope", key = "sqldbpassword"))
8     .option("tableLock", True)
----> 9     .mode('Append')
10     .save()
/databricks/spark/python/pyspark/sql/readwriter.py in save(self, path, format, mode, partitionBy, **options)
826             self.format(format)
827         if path is None:
--> 828             self._jwrite.save()
829         else:
830             self._jwrite.save(path)
/databricks/spark/python/lib/py4j-0.10.9-src.zip/py4j/java_gateway.py in call(self, *args)
1303         answer = self.gateway_client.send_command(command)
1304         return_value = get_return_value(
-> 1305             answer, self.gateway_client, self.target_id, self.name)
1306
1307         for temp_arg in temp_args:
/databricks/spark/python/pyspark/sql/utils.py in deco(*a, **kw)
125     def deco(*a, **kw):
126         try:
--> 127             return f(*a, **kw)
128         except py4j.protocol.Py4JJavaError as e:
129             converted = convert_exception(e.java_exception)
/databricks/spark/python/lib/py4j-0.10.9-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
326                 raise Py4JJavaError(
327                     "An error occurred while calling {0}{1}{2}.\n".
--> 328                     format(target_id, ".", name), value)
329             else:
330                 raise Py4JError(
Py4JJavaError: An error occurred while calling o374.save.
: java.sql.SQLException: Spark Dataframe and SQL Server table have differing numbers of columns
at com.microsoft.sqlserver.jdbc.spark.BulkCopyUtils$.assertCondition(BulkCopyUtils.scala:624)
at com.microsoft.sqlserver.jdbc.spark.BulkCopyUtils$.assertIfCheckEnabled(BulkCopyUtils.scala:638)
at com.microsoft.sqlserver.jdbc.spark.BulkCopyUtils$.matchSchemas(BulkCopyUtils.scala:315)
at com.microsoft.sqlserver.jdbc.spark.BulkCopyUtils$.getColMetaData(BulkCopyUtils.scala:269)
at com.microsoft.sqlserver.jdbc.spark.Connector.write(Connector.scala:79)
at com.microsoft.sqlserver.jdbc.spark.DefaultSource.createRelation(DefaultSource.scala:64)
at org.apache.spark.sql.execution.datasources.SaveIntoDataSourceCommand.run(SaveIntoDataSourceCommand.scala:48)
at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:70)
at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:68)
at org.apache.spark.sql.execution.command.ExecutedCommandExec.doExecute(commands.scala:91)
at org.apache.spark.sql.execution.SparkPlan.$anonfun$execute$1(SparkPlan.scala:200)
at org.apache.spark.sql.execution.SparkPlan.$anonfun$executeQuery$3(SparkPlan.scala:252)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:165)
at org.apache.spark.sql.execution.SparkPlan.executeQuery(SparkPlan.scala:248)
at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:192)
at org.apache.spark.sql.execution.QueryExecution.toRdd$lzycompute(QueryExecution.scala:158)
at org.apache.spark.sql.execution.QueryExecution.toRdd(QueryExecution.scala:157)
at org.apache.spark.sql.DataFrameWriter.$anonfun$runCommand$1(DataFrameWriter.scala:1018)
at org.apache.spark.sql.execution.SQLExecution$.$anonfun$withCustomExecutionEnv$5(SQLExecution.scala:116)
at org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:248)
at org.apache.spark.sql.execution.SQLExecution$.$anonfun$withCustomExecutionEnv$1(SQLExecution.scala:101)
at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:841)
at org.apache.spark.sql.execution.SQLExecution$.withCustomExecutionEnv(SQLExecution.scala:77)
at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:198)
at org.apache.spark.sql.DataFrameWriter.runCommand(DataFrameWriter.scala:1018)
at org.apache.spark.sql.DataFrameWriter.saveToV1Source(DataFrameWriter.scala:439)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:423)
at sun.reflect.GeneratedMethodAccessor669.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:380)
at py4j.Gateway.invoke(Gateway.java:295)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:251)
at java.lang.Thread.run(Thread.java:748)

It looks like temporal tables, just like graph tables, need special handling. By extension, the same applies to cases where there are defaults associated with columns in the table, and we are therefore not passing in those columns in the Spark dataframe. All these cases need to be handled correctly for this connector to be functional for those cases.
I made an (completely unofficial) attempt to fix the above issue (the repro provided has a temporal table with system generated columns, as well as handling the case when the column having a default associated with it in SQL, is not passed in the dataframe). The commit is here in case you are interested to build the connector and test on your own. Again, consider this completely unofficial, experimental, and provided as-is.

Can you try creating a view over your temporal table omitting the generated columns and then insert into that view instead? I haven't tested it but it may work


Unable to play vimeo videos

Hi, I am unable to play vimeo videos despite providing all the necessary parameters
  @override   void initState() {     super.initState();     controller = PodPlayerController(       playVideoFrom: PlayVideoFrom.vimeo(         '518228118',         httpHeaders: {           'Authorization': 'bearer #############'         },       ),     )..initialise();   }

i have solution for get all quality contact with me :+971557474526

Because team make on it and solution is paid not free
On Thu, 24 Oct 2024 at 2:10 PM Mohamed Belal @.***>
wrote:

Why don't you share your solution here so everyone can benefit from it?
—
Reply to this email directly, view it on GitHub
https://github.com/newtaDev/pod_player/issues/242#issuecomment-2434982088,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANSX2PECV2IQOIEHDZDMRBLZ5DITVAVCNFSM6AAAAABP62APVKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZUHE4DEMBYHA
.
You are receiving this because you commented.Message ID:
@.***>

Maybe I'm just gullible, but I tried to contact @ge0rge000 to find out the solution to this problem and he wanted to charge me $300!!
In my many years as a developer I have never experienced this before. Disgusting behavior.

But on a more constructive note (well sort of) I have this problem too. Even just trying to play a plain public vimeo video (not private or restricted).

@icecandy
Dear friend !
how is it for this case ?

@beto-hopee I've given up. I have implemented Vimeo playback completely in vanilla javascript in a web view using the Vimeo API. I have also done the same with YouTube videos, with almost identical code (the API is a little different and so not quite the same implementation). My app allows people to build their own HTML blog page and so I am already in a web view by default and so this is a very suitable solution.

@icecandy good solution, thanks for sharing your case 🙏


Enabling on Per-Account Basis

Looking at the documentation I see that there is no integration for enabling this mod on a per-site basis which is very important because it might not work or work well with some sites. In this demo I see it as an option for the user but have no idea how this was accomplished: http://<IP_ADDRESS>:2082/cpsess7656484458/frontend/x3/index.html?post_login=47712872525151

I'm interested in hearing the answer to this as normally I believe the httpd.conf file is edited; however, the EasyApache process doesn't like it to be edited manually.

You can easily set "ModPagespeed off" in pagespeed.conf an then activate mod pagespeed per site basis on .htaccess with "ModPagespeed on"

ModPagespeed off

Regards,
Jon Wong
1-514-316-1366
1-647-848-1366
1-855-ZENITH0
Extension: 1337
On Jan 19, 2015, at 8:02 AM, scysys<EMAIL_ADDRESS>wrote:

You can easily set "ModPagespeed off" in pagespeed.conf an then activate mod pagespeed per site basis on .htaccess with "ModPagespeed on"
—
Reply to this email directly or view it on GitHub.


feat: dropdown component

Closes #239.

Good job! I have some remarks. Also:

Button component now has a new property, a state and a new CSS variable. Let's also document them in Storybook with some demonstrations.
Please check if dropdown is usable via keyboard navigation
Please add proper ARIA attributes. menu, group and menuitem roles would be relevant I believe. Also don't miss aria-labelledby for group caption.

Actually, I think dropdown property should be private for the user because it is only useful in bl-dropdown. However, documenting the active state and css variable is a good idea.
Forgot to add, I am working on the rest. Thanks

Looks great! The only thing is that the popover borders should take the color of the buttons for each kind, I updated the design file according to that.  And the popovers caption font should be --bl-font-caption 🚀 @leventozen


Project specific jump points

Hello,
thanks for the great plugin.
Is there any way I can get Project specific Jump points? I mean the jump point to be different for each project of mine.
And also, when I go to the filebrowser and raise the jump point list, I can search in it by typing part of the jump point name. I think it would be very useful if I could search by the path of the jump point (relative to the project) as well.
Cheers

About jump points see #76
About search, this is intresting because when you use Goto Anything it does search both lines for each item (and the second line is full path), but when you got custom quick panel it searches only first line of each item, and I don’t see any flag or something to change it, so we have to include full path into first string to make it searchable, I’ll experement with it this weekend probably.

I think we should abandon second row at all, because full path would be seachable only if it is presented in first row and if we include it there and keep second one it looks messy:

And with single row it looks like this:

project

points

What y’all think?
P.S. Monospace font need to keep it aligned, despite I would prefer normal one, but using tab chars with normal font doesn’t work as I expected, so monospace is only option it seems.

Yes, second row looks cool, but since it is not searchable.. In one row looks good too. I like it.
About "Goto Anything" yes, it is ultimately cool, but what I dislike about it is that it searches for files only. I want to search for a folder and list it. That's why I'm using fileBrowser.
Thanks


e2eutil: add WaitPodsDeleted util families

We will also need to use this util in upgrade test for:

wait old version etcd operator deleted
wait old version backup sidecar deleted

@hasbro17 @xiang90

LGTM. Did you get a chance to check if the 30s timeouts were sufficient for the various waits for pod deletion?

@hasbro17
I changed that to a timeout param.


SearchTweetsParameters Since doesn't filter messages

Hello,
It seems that SearchTweetsParameters Since  property doesn't work as I have expected.
var tweetsParameters =
new SearchTweetsParameters(hashTag.TagWithHash)
{
	TweetSearchType = TweetSearchType.OriginalTweetsOnly,
	Since = DateTime.Now - span
};

Assume that now is  {13-Jun-17 2:57:07 PM},
I'm selecting tweets since the following date => {13-Jun-17 2:56:07 PM},
(where span equals TimeSpan.FromMinutes(task.Interval) (1 minute))
var tweets = await SearchAsync.SearchTweets(tweetsParameters);

In tweets I get messages for the last 30 minutes.

Unfortunately Twitter does not provide such a granular ability. The Twitter API only allow you to specify a year, a month and a day. Hours and minutes are not filters supported by the API.
I will mark this as a enhancement as I guess Tweetinvi can filter the results after it has been received by the API call.

Thanks for the answer.


Provide a way to use more than scope of navigation at the same time

Recent the February 2022 update introduced new scopes of navigation, it is really cool (thanks to https://github.com/microsoft/vscode/pull/142152 and https://github.com/microsoft/vscode/issues/36634).
However, I'd like to use several scopes of navigation simultaneously. I don't mind of having one primary scope of navigation that I can use with my 4,5 mouse buttons, this is really handy. However, even with having "workbench.editor.navigationScope": "editor" I still need sometimes to navigate across the editors (perhaps with having command binded to some keyboard shortcut). Or vice-versa.
Some potential use case:

Editor 1: location 1
Editor 1: location 2 -> use goToDefinition
Editor 2: look at definition at some location
Forget to use go back command and go back to previous tab with mouse

The last action with mouse wouldn't act as go back command and running go back from here (location 2) wouldn't bring location 1 and instead open Editor 2. In this case if I had navigation scope set to default, I could use go back command with navigationScope=editor.
Hope I made myself clear. Since it was refactored a few months ago, I do hope it would be feasible support.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


chore: Run Markdownlint with GitHub Actions

Summary
Describe your changes here.
Fixes #Issue_Number (if available)

Sorry, I keep selecting my fork as the target, then it creates it against this repo despite the selection


Handling AttributeErrors while cleaning params namespace while setting up fit

🐛 Bug
is_picklable in parsing.py does not handle AttributeError thrown by pickle.dumps() - specifically, the following :
AttributeError: Can't pickle local object 'ArgumentParser.__init__.<locals>.identity'

To Reproduce

Here's a stack trace:
Traceback (most recent call last):
  File "/home/chirag/miniconda3/envs/ml/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/chirag/miniconda3/envs/ml/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/chirag/Projects/mingle/social-processes/run/run_synthetic_social.py", line 120, in <module>
    main()
  File "/home/chirag/Projects/mingle/social-processes/run/run_synthetic_social.py", line 116, in main
    trainer.fit(process, datamodule=dm)
  File "/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 425, in fit
    self.train_loop.setup_fit(model, train_dataloader, val_dataloaders, datamodule)
  File "/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/trainer/training_loop.py", line 90, in setup_fit
    parsing.clean_namespace(model.hparams)
  File "/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/utilities/parsing.py", line 75, in clean_namespace
    del_attrs = [k for k, v in hparams_dict.items() if not is_picklable(v)]
  File "/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/utilities/parsing.py", line 75, in <listcomp>
    del_attrs = [k for k, v in hparams_dict.items() if not is_picklable(v)]
  File "/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/utilities/parsing.py", line 62, in is_picklable
    pickle.dumps(obj)
AttributeError: Can't pickle local object 'ArgumentParser.__init__.<locals>.identity'

I forked the repo, found the file, and made the following change to is_picklable:
def is_picklable(obj: object) -> bool:
    """Tests if an object can be pickled"""

    try:
        pickle.dumps(obj)
        return True
    except (pickle.PicklingError, AttributeError):
        return False

I then installed the package from my local repo, ran the same code and got the following warnings:
/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:37: UserWarning: attribute 'trials' removed from hparams because it cannot be pickled
  warnings.warn(*args, **kwargs)
/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:37: UserWarning: attribute 'optimize_parallel' removed from hparams because it cannot be pickled
  warnings.warn(*args, **kwargs)
/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:37: UserWarning: attribute 'optimize_parallel_gpu' removed from hparams because it cannot be pickled
  warnings.warn(*args, **kwargs)
/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:37: UserWarning: attribute 'optimize_parallel_cpu' removed from hparams because it cannot be pickled
  warnings.warn(*args, **kwargs)
/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:37: UserWarning: attribute 'generate_trials' removed from hparams because it cannot be pickled
  warnings.warn(*args, **kwargs)
/home/chirag/miniconda3/envs/ml/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:37: UserWarning: attribute 'optimize_trials_parallel_gpu' removed from hparams because it cannot be pickled
  warnings.warn(*args, **kwargs)

These aren't params added by the end user I believe, and for some reason pickle raises an AttributeError rather than pickling.PicklingError for these.
Environment

CUDA:
- GPU:
- Quadro P4000
- available:         True
- version:           10.2
Packages:
- numpy:             1.19.1
- pyTorch_debug:     False
- pyTorch_version:   1.6.0
- pytorch-lightning: 0.9.1rc4
- tqdm:              4.48.2
System:
- OS:                Linux
- architecture:
- 64bit
- ELF
- processor:         x86_64
- python:            3.8.5
- version:           #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020

Additional context
Not sure if the solution is to also handle AttributeError, or if a more elegant alternative is needed.

I believe these are added when using the HyperOptArgumentParser from test_tube.

Thanks for the issue @chiragraman! Any way you can send a PR to fix?

@edenlightning sure thing! Is the suggested solution to also catch AttributeErrors alright?

@Borda might have opinions on this


How do I start writing a plugin to integrate my data-analysis library?

I've been working on a data analysis toolkit and I really want to be able to use in beaker notebook.
https://github.com/data-forge/data-forge-js
I'm looking for help getting started with writing a plugin.
I'd like to be able to use Data-Forge directly in beaker notebook and have it's data-frames and series objects rendered as tables.

the easy way to get started would be with bkHelper.loadList, like in this example: https://pub.beakernotebook.com/#/publications/560ca047-eccd-4585-9b96-0d0708c49781?fullscreen=true
to get your own type displayed with the interactive UI, the just write a converter function (see our JS tutorial for the API to create an interactive table).
we don't yet have an API for extending what can be displayed like that.

Is there any API docs yet for bkHelper?
Do you have a link handy for the tutorial with the interactive table?

That's the only function in bkHelper, most of them are in the beaker object.  the documentation is in the JavaScript tutorial https://pub.beakernotebook.com/#/publications/560b4b36-1510-48f6-970c-418c0526d58c?fullscreen=true and the Progress Reporting API, Notebook Control API, and Notebook Reflection API tutorials.
The JavaScript tutorial has example JS code that creates small tables that are easy to understand.  To see the raw data-structures you can select "Text" from the cell output menu:

and then you can see the data structure to return:
{"type":"TableDisplay","subtype":"TableDisplay","hasIndex":"false","values":[["up",2300000,2],["charm",1275000000,2],["top",173070000000,2],["down",4800000,-1],["strange",95000000,-1]],"types":["string","double","integer"],"columnNames":["name","mass","charge3"]}

this should make that clearer: https://pub.beakernotebook.com/#/publications/570a6a33-7636-41d5-886d-ed1c9c48e8b2


stackdriver logs: jsonPayload

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.3%) to 90.29%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
902

Relevant Lines:
999

💛  - Coveralls


LineChart, first point start a bezier line from 0.0

The chart recover ok when clicking on any point or resizing whole window.

This is really strange, I will try with 0.7 (in progress version) when it relesaed please let me know if you still face this issue

ok, no problem, thanks for helping.

Does happen to me as well in the latest version !

@IgorTheRussian Thanks for the feedback, I just disabled 0.6.7 from nuget since it was just a performance release and its kind of buggy, and 0.7 release is really close!

Doesn't happen in 0.7 alpha, good job !
(but could not find how I can set smoothness to 0 now)


Add or recommend some way of creating levels

As far as I know, there's no modern way of editing Liero levels,Liero Hellhole has a few older recommendations though.
There are many things to improve the situation here:

you could recommend which of the older level editors is easiest to use on a modern machine (and how)
you could document the Liero level format (or gather existing documentation)
you could write some tooling to create level files from image files
you could write a whole new level editor
you could find some third party level editor for 2D pixel games that has modding support and add Liero level support to that
you could change openliero to accept a new, cooler level format (while keeping support for the old level files)

Some of these are of course larger undertakings and some might even be bad ideas. 😄

making .lev files is somewhat painful, there's powerlevels as well, but afaik it needs an external tool to use
imho the modern way would be to let it load PNGs (and bonus for loading advanced maps, with palette changes & material changes, like those we play on webliero extended (some old Total Conversions had 'em too eg Liero Toxic Vans) but there's quite a few tricks there :p )
afaik all these already have been implemented btw, on a fork of liero 1.35 if i recall right

Which fork is that? Iirc there are some hard coded pallette index values here and there and some places where we should check the material map, but check the pixel color instead.

welp, was kinda hoping with that comment that the forker would come forward xD (he hasn't shared much about his fork except a few vids on irc / disc or webliero chat ^^)


[T3A5][F11-A2]Tiong YaoCong

Applying SRP

Implement formatter class
Formatter class now handle all kind of format for TextUI class
Regression Test Completed.

Ready For Review

:+1:


tree_sitter_css_binding.node is not a valid Win32 application

I'm trying to run Atom in development mode using an extension that has tree-sitter-css as a dependency. I can't do that because of the above error. Is there a way to get this to work on Windows?

User error. I originally did the build on WSL instead of from Powershell.


@SwaggerDefinition partially working and some properties are ignored

Hi, I have a couple of problems with @SwaggerDefinition annotations:
I have a Java8 web-project configured with the following dependency
<dependency>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-jersey2-jaxrs</artifactId>
    <version>1.5.16</version>
</dependency>

I'm using Jersey as API provider
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.26</version>
</dependency>

This is web.xml configuration
<servlet>
    <servlet-name>Jersey Frontend API</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>io.swagger.jaxrs.listing,com.api</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Frontend API</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>Jersey2Config</servlet-name>
    <servlet-class>io.swagger.jersey.config.JerseyJaxrsConfig</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>

This is the example code I made to reproduce the problem
@SwaggerDefinition(
    info = @Info(
        title = "my title",
        version = "v1",
        description = "This is a sample API",
        contact = @Contact(
            name = "My name",
            email =<EMAIL_ADDRESS>        )
    ),
    host = "http://localhost:8080/api"
)
public interface MyInterface {}

public abstract class MyApi<T> implements MyInterface {
    public T process(String myParam) {
        // Provide an object basing on generic type of the API (for this example a sample stub object is created)
        T object = mockData();

        // do something with the object
        // ...

        // do something else with the object
        // ...

        // produce the output
        return Response.status(200).entity(object).build();
    }

    protected abstract T mockData();

}

@Path("city")
@Api
public class CityApi extends MyApi<City> {
    @Override
    @ApiOperation(value = "API for City", response=City.class)
    @GET
    @Produces({MediaType.APPLICATION_JSON})
    public Response process(@QueryParam("myParam") String myParam) {
        return super.process(myParam);
    }

    @Override
    protected City mockData() {
        City city = new City();
        city.name = "New York";
        city.citizens = 8000000;
        return city;
    }
}

@Path("user")
@Api
public class UserApi extends MyApi<User> {
    @Override
    @ApiOperation(value = "API for User", response=User.class)
    @GET
    @Produces({MediaType.APPLICATION_JSON})
    public Response process(@QueryParam("myParam") String myParam) {
        return super.process(myParam);
    }

    @Override
    protected User mockData() {
        User user = new User();
        user.email =<EMAIL_ADDRESS>        user.name = "John";
        return user;
    }
}

@Path("other")
@Api
public class MyOtherApi implements MyInterface {
    @ApiOperation(value = "API with 204 response")
    @GET
    public Response process() {
        return Response.status(204).build();
    }
}

This stack of classes reproduce my current situation where I have a superclass which works with generics (the operative code will be the same for any API), and one subclass for each resource, which has the API definition in it (with the @Api/@ApiOperation annotation as well, using the specific response annotation value on each one). Also I have "another" API that is excluded by the abstract  class hierarchy but it is an API by itself.
With the configuration as is, the generated swagger.json is like this
{
  "swagger": "2.0",
  "info": {
    "version": "1.0.0",
    "title": "My Test API"
  },
  "host": "localhost:8080",
  "basePath": "/api",
  "schemes": [
    "http"
  ],
  "paths": {
    "/city": {
      "get": {
        ...
      }
    },
    "/other": {
      "get": {
        ...
      }
    },
    "/user": {
      "get": {
        ...
      }
    }
  },
  "definitions": {
    "City": {
      ...
      }
    },
    "User": {
      ...
    }
  }
}

Problem 1: @SwaggerDefinition is totally ignored
All the data related to @SwaggerDefinition annotation are missing: title, description, host, ... it seems that the annotation is entirely ignored.
As suggested here https://github.com/swagger-api/swagger-core/issues/2256 I tried to add @Api or @Provider to the interface definition, but none of this seems to solve the problem.
The only solution I found is moving the @SwaggerDefinition annotation "down" to the abstract superclass,. Am I missing something in the configuration for the annotation?
Problem 2: @SwaggerDefinition is partially ignored
Now that the @SwaggerDefinition annotation is loaded (I don't know which is the problem, but I consider it working for this second problem), some of the definitions are missing (title, version and host).
This is the resulting part of swagger.json
{
  "description": "This is a sample API",
  "version": "Swagger Server",
  "title": "",
  "contact": {
    "name": "My name",
    "email"<EMAIL_ADDRESS>  }
}

The only solution I found is declaring the missing values directly in web.xml, like this:
<servlet>
    <servlet-name>Jersey2Config</servlet-name>
    <servlet-class>io.swagger.jersey.config.JerseyJaxrsConfig</servlet-class>
    <init-param>
        <param-name>api.version</param-name>
        <param-value>1.0.0</param-value>
    </init-param>
    <init-param>
        <param-name>swagger.api.basepath</param-name>
        <param-value>http://localhost:8080/api</param-value>
    </init-param>
    <init-param>
        <param-name>swagger.api.title</param-name>
        <param-value>My Test API</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>

Now the swagger.json is finally completed with all the parts:
{
  "description": "This is a sample API",
  "version": "1.0.0",
  "title": "My Test API",
  "contact": {
    "name": "My name",
    "email"<EMAIL_ADDRESS>  }
}

So, it seems that for the specific configurations (version, basepath and title) the only way to have them working is using the web.xml part, even if are declared on @SwaggerDefinition.
At the end (because the @Info annotation requires title and version), I left them empty, knowing that will be ignored and only the values on web.xml are loaded.
Here is the final version
@SwaggerDefinition(
    info = @Info(
        title = "", // --inherited from web.xml--
        version = "", // --inherited from web.xml--
        description = "This is a sample API",
        contact = @Contact(
            name = "My name",
            email =<EMAIL_ADDRESS>        )
    )
)

Here is a recap of my questions:
problem 1) Why the @SwaggerDefinition annotation is ignored if declared in the interface?
problem 2) Why the properties of title/path/version are ignored if declared in @SwaggerDefinition annotation?
References: here is the other issue I already read in order to solve the problem, but I did not found a valid solution.

https://github.com/springfox/springfox-demos/issues/12
https://github.com/swagger-api/swagger-core/issues/2256
https://github.com/swagger-api/swagger-core/issues/1594
https://github.com/kongchen/swagger-maven-plugin/issues/271
https://github.com/swagger-api/swagger-play/issues/134
https://github.com/swagger-api/swagger-core/issues/1243
https://groups.google.com/forum/#!topic/swagger-swaggersocket/XD1VCNBySCg

I actually solved the first problem, the @Provider was indeed needed in the interface to make the @SwaggerDefinition annotation working properly, my mistake was not adding the interface package to the jersey.config.server.provider.packages configuration.
The second problem (version and title attribute not considered) is still unsolved.

Thanks


Pressing 'o' in normal mode closes the window

Since having installed the latest binary release (snapshot-142), my macvim windows will close without any further notice whenever I press the 'o' key in normal mode (which otherwise brings me into insert mode with a new text line).
The key is not mapped from within vim (':map o'  says 'no mapping found'), and also not listed in the MAc system settings for custom application shortcuts. Also, other Mac applications won't do this when pressing 'o'.
Any ideas to track this problem down?

how about crashlogs?

Sorry about that. I was assuming that it is not a crash, since the window closed but the macvim application kept on running. But indeed, there is a crashlog - it is attached.
Vim_2017-11-09-174540.crash.zip

Apparently Python 3 crashed. Are you using Python 3.6.3?

I recently changed my python environment, from homebrew-based to Canopy. This may coincide with the problem - I will cross-check the python setup and post the result here. Thanks a lot.

A python 3.6.2 installation in homebrew was the problem, thanks again for the quick help!
Explanation:
Some weeks ago I did remove my python2.7 environment in homebrew, and replaced it with a canopy python installation. However, python 3.6.2 was still available at /usr/local/bin/python3 from homebrew. After uninstalling python3 and dependencies in homebrew, and restarting vim, the error does not appear any more.


new project creation broken

When I make a new project I get a build failure on AS 1.2.2 I get a build failure with the emerger plugin. I couldn't seem to find the home or locate it on plugins.gradle.org so I couldn't look further into it.
classpath 'net.kaleidos.gradle.plugins:emerger:0.0.1'
apply plugin: 'net.kaleidos.gradle.plugins.emerger'
during initial gradle sync I get the following error:
Error:(14, 0) Cause: net/kaleidos/gradle/plugins/emerger/EmergerPlugin : Unsupported major.minor version 52.0
settings used during lazybones template creation:
package domain: com.example.rvanderwerf
min sdk: 15
max: 21
all other settings defaults

Oh my! It seems like I compiled the emerger plugin with JDK8. I'm so sorry I would be releasing a new version in the morning.
In the meantime, as a workaround, you can clone the plugin source code (https://github.com/kaleidos/emerger) and install it locally (with jdk7 of course). And then in your Android app just add the maven local repo:
repositories {
   mavenLocal()
}

Bottom line, it's a bug but not from grooid-templates but from emerger plugin.

I've published a new emerger plugin version properly compiled at jcenter.  Could you please try again changing emerger version from 0.0.1 to 0.0.2.


Idea: Title from text file filename when creating new book

Simple idea: When creating a new book, you can use a text file. When you Browse and add it, perhaps the book Title can be replaced with the filename (if it's empty). For example, if the file is called "article about dogs.txt", the Title automatically changes to "article about dogs".
JS pseudo-code (works in the console), document.getElementById('title').value=document.getElementById('textfile').value.split('\\')[2]

Thanks, that seems clear enough!

Todo/scope:

add js to the form creation, only replace title if blank
check .txt files, .pdf, .epub, creation from web

@jamesdeluk - hoping for some help here.  I'm not sure how to do this, using html controls.  I understand the js snippet works, but I'm not sure how to trigger that from the UI.  Any assistance here would be great.

Hmm, my skills don't extend far beyond little JS snippets for bookmarklets! So not sure about the triggering etc. My hacky solution would add a few lines to (I think) if form.validate_on_submit(): or def _get_file_content(filefielddata):, so the title is pulled in automatically when Save is pressed (only if there is no title already there). That way there's no additional UI/trigger.

:-)  Cheers.  That wouldn't be consistent UI design, the element should be updated on-screen when the file is added, as opposed to magic happening on submit.  I'll wait until someone comes along with a better solution.  👋

Yeah, I realise it's not ideal. It wouldn't be so bad if there was a message on the page along the lines of "If no title is given, the filename will be used".
Alternatively, a simple HTML button ("Copy filename to title") that runs the JavaScript would also work. To scratch my own itch, I may a userscript: https://greasyfork.org/en/scripts/488111-lute-filename-to-title

Both of those solutions feel a bit hacky.  I may have found a better solution when I did the recent image import PR: create a custom button that calls click on the file button, and hide the file button.

Hey @jzohrab. I would like to work on this. Please assign this to me.

That's correct @Jayanth-Parthsarathy , thanks!  If the title is blank, and a file is added, the filename could be used for the title.
This may be messy-ish, and it's not very high priority (to me!) at all, so if it gets weird, feel free to report back for the next person who dares to attempt it. :-)

@Jayanth-Parthsarathy is doing a much better job on this than I was going to. :-P  Still in progress, but the idea is good.

Fixed in develop, works great.  Will be in next launch.


Add unquote

Would be nice to have an unquote operation to reverse quote. This comment may be helpful for implementing this.

Then again this may trivially fallout from __call__ provided by literal.

Why do you need this?

This comment may be helpful for implementing this.

That's for a separate operation, making tasks look like function calls/literals. dask.core.quote is for taking an object and ensuring that it doesn't get treated like a task.

This is pretty speculative, but was thinking of doing some metaprogramming in Dask. So quoting operations, detecting and replacing certain patterns, and then unquoting to get an actual Dask for computation.

Is this still needed?

There's not been much activity here in 4yrs. Am happy to close. Can always revisit if it becomes important. Though my guess is there are different ways people want to manipulate graphs today where this functionality is less relevant.


unable to get the response for selected problem

I am unable to find the response from the get request to
https://alfa-leetcode-api.vercel.app/select?titleSlug=minimum-cost-to-hire-k-workers
or any other titleSlug. It is showing NOT_FOUND error. Please see this and let me know

working from this api
https://alfa-leetcode-api.onrender.com/select?titleSlug=two-sum

@ayushg-nitw as u closed the issue, did u able to find out the problem?

Acty your vercel.app/select?titleSlug=..
Is not working as it is giving not found error.
But
alfa-leetcode-api.onrender.com/select?titleSlug=.    is  working fine and
giving correct answer.
On Sun, Jul 21, 2024, 18:42 Arghya Das @.***> wrote:

@ayushg-nitw https://github.com/ayushg-nitw as u closed the issue, did
u able to find out the problem?
—
Reply to this email directly, view it on GitHub
https://github.com/alfaarghya/alfa-leetcode-api/issues/28#issuecomment-2241606537,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6XTWRD425DFYVXEDGJUOO3ZNOXTVAVCNFSM6AAAAABLGW3MOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBRGYYDMNJTG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

It's because currently I am not using Vercel


expression: revert tikv#17003 (release-8.1)

Reverts tikv/tikv#17003
What is changed and how it works?
Issue Number: Close #16974
Release note
None

/merge


Add "Publish artifacts - container event log" and "Publish artifacts - build output" to PullRequest Build workflow

Both Publish artifacts - build output and Publish artifacts - container event log steps should be part of the PullRequest Build workflow as it contains a build job.
Most probably they were omitted when CICD workflow was split.

LGTM


Make code compile, function and actually follow the EABI

Also fix alignment issues in the EABI portion itself. In ARM64, SP is always kept with 16 byte alignment. Examples with -72 offsets or the compact format itself spec, which mentioned 4088 were trivially incorrect.
Fix syntax errors, negative/positive errors, register names errors as well.
All provided canonical code now compiles, functions and follows the EABI.

@pmsjt : Thanks for your contribution! The author, @, has been notified to review your proposed change.

@pmsjt : Thanks for your contribution! The author, @, has been notified to review your proposed change.


React Props validation does not work for extended classes

We have a generic BaseComponent that does some autobinding and transition blocking.
If I have a component that extends BaseComponent<Props, State>, the compiler does not recognize error in props validation.
The following component does not throw compiler errors.
interface Props {
  notMyField: string,
}

class MyComponent extends BaseComponent<Props, any> {
   render() {
      return <div>{this.props.myField}</div>;
   }
}

import * as PropTypes from 'prop-types';
import * as React from 'react';

/**
 * The base component that autobinds all the methods to this.
 */
class BaseComponent<Props, State> extends React.Component<Props, State> {
  static propTypes;
  static contextTypes = {
    router: PropTypes.object,
  };

  props;
  unblock;

  constructor(props: Props) {
    super(props);
    Object.getOwnPropertyNames(Object.getPrototypeOf(this)).forEach((method) => {
      if (typeof this[method] !== 'function') {
        return;
      }
      this[method] = this[method].bind(this);
    });
  }

  componentDidMount() {
    const {
      props: {
        history
      },
      willTransition
    } = this as any;
    // TODO: Figure out why react/prop-types is warning here.
    /* eslint-disable react/prop-types */
    if (history && willTransition) {
      this.unblock = history.block(willTransition);
    }
    /* eslint-enable react/prop-types */
  }

  componentWillUnmount() {
    if (this.unblock) {
      this.unblock();
    }
  }
}

export default BaseComponent;

BaseComponent has a declaration for props with no type, and hence it gets a type any. remove the declaration of props.
class BaseComponent<Props, State> extends React.Component<Props, State> {
    ...
    // props;
   ...

also worth nothing that using --noImplicitAny would have flagged these properties as any for you.

Makes sense.


Incorrect example queries in the next steps page of the MongoDB Getting Started guide

Context
The Next Steps page in the MongoDB getting started guide has a number of example queries under the subsection Expand for more Prisma Client API examples.  However, most of these queries do not match the schema provided in the Creating the Prisma schema page of the same guide.  This is true for both the javascript and typescript tutorials.
This might be confusing for new users.
Details
const filteredPosts = await prisma.post.findMany({
  where: {
    OR: [{ title: { contains: 'hello' } }, { content: { contains: 'hello' } }],
  },
})

Tries to use the  content field, which does not exist in post. Should be body.

const post = await prisma.post.create({
  data: {
    title: 'Join us for Prisma Day 2020',
    author: {
      connect: { email<EMAIL_ADDRESS>},
    },
  },
})

Tries to connect to the author relation field which does not exist in post. Should be user.
Missing mandatory fields slug and body

const posts = await prisma.profile
  .findUnique({
    where: { id: 1 },
  })
  .user()
  .posts()

No model called profile in the schema.

I would be happy to make a PR to fix this.

PR would be great indeed @TasinIshmam

Great, I'll update with a fix :smile:  @janpio


Fix mutating extant resources not forcing new

Fixes #154, https://github.com/fly-apps/terraform-provider-fly/issues/19#issuecomment-1435082902.

Closed due to history re-write, but refiled as #190


[HOLD] Try to synchronize operations within one update

Details

This PR changes how we process the Onyx.update operation:

Enqueue all the operations per individual key;
Group the collection-related keys into a single mergeCollection call;
Process the rest of the individual keys with merge calls;

Related Issues

https://github.com/Expensify/App/issues/37560
Automated Tests

I've added tests that cover the Onyx.update() with multiple merge operations of the same keys to verify that all the changes are batched into a single mergeCollection operation.
Manual Tests

[!WARNING]
Since this change alters one of the most common Onyx operations – we should perform a general regression testing of the system.

Perform a complex Onyx.update() operation with multiple updates of the same item in merge and mergeCollection operations.
Verify the collection items are updated with all the changes combined.

Operation example ref: https://github.com/Expensify/react-native-onyx/blob/eb17a5dd0eba6b7b27f1e92e0fc81863091ba6c8/tests/unit/onyxTest.js#L1046-L1103
Author Checklist

[x] I linked the correct issue in the ### Related Issues section above
[ ] I wrote clear testing steps that cover the changes made in this PR

[ ] I added steps for local testing in the Tests section
[ ] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

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

[ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I followed proper code patterns (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I followed the guidelines as stated in the Review Guidelines
[ ] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@tgolen I think I found a way to fix the issue of the out-of-order updates.
The main idea is the following: when one update call comes with multiple merge/set/mergeCollection operations, – do not process anything asynchronously. Instead, build stack all the operations by keys, and then persist everything in one multiGet + multiSet take.
This PR is super draft, it lacks the validations as well as the broadcasting of the updates, but I would appreciate your opinion on the idea as a whole.

In general, it does work – I gave it a little test run.
However, there are a lot of different callbacks in the current implementation and I'd appreciate your guidance on a more general level @tgolen.
Calls like these:
https://github.com/Expensify/react-native-onyx/blob/7cbf836cc1c107e82da42f372b82c91e5ecd1640/lib/Onyx.js#L1511-L1516
https://github.com/Expensify/react-native-onyx/blob/7cbf836cc1c107e82da42f372b82c91e5ecd1640/lib/Onyx.js#L1153-L1154
And all the places where we call the sendActionToDevTools. With the new approach, if we treat update as a single transaction with the eventual merge, it will be much harder to differentiate mergeCollection from merge.
What broadcasting approach would you suggest using here? If I broadcast each key update separately – would the collection listener handle each update individually?
Should I instead broadcast all collection-related keys as a single collection update, and non-collection keys as individual updates?

If I broadcast each key update separately – would the collection listener handle each update individually?

I believe this would work yes, and the collection listener will handle each individual update. This would be the safest approach against causing regressions.

Should I instead broadcast all collection-related keys as a single collection update, and non-collection keys as individual updates?

The collection updates get a little tricky because some collection mappings will be expecting the callback to be triggered with the entire collection, while others might be expecting the callback to be triggered with each object in the collection. This is dependent on the waitForCollectionCallback mapping option.
I think I prefer the first method because that will make the least amount of behavior changes for Onyx.

This looks like a promising picture to me when coming online, 46 operations were batched into one update:

Some of the keys had up to 7 merge operations stacked:

But eventually, the broadcast was called for each key only once, containing the final updated version of the object:

I have read the CLA Document and I hereby sign the CLA

@tgolen please make a sanity check when you have a minute, along with this comment.
The only thing that bothers me is that one failing test. I don't fully understand the nature of those subscriptions, and based on the comment in code, that first call is expected to be with null, undefined params 🤔
https://github.com/Expensify/react-native-onyx/blob/7cbf836cc1c107e82da42f372b82c91e5ecd1640/lib/Onyx.js#L915-L918

Wow, that is a great improvement!
I don't think the test is too much to worry about. You can update the tests to change the nth to be 0 instead of 1 now. It makes sense in the context of the change you're making.
Before your PR:

This Onyx.update() would have triggered each subscriber twice (first with null, second with the actual value)

After your PR:

The updates are squished into a single callback with the final value 🎉

I think the important part of null that needs to be kept in mind (and you might want to add this to the unit tests with these changes) is that if I subscribe to a key that doesn't have any data stored on it, then the subscriber should be triggered once with null for a value. This allows the component to render and then the null value is substituted for undefined in withOnyx here. That way, when the component gets the undefined prop, the defaultProp will be picked up and used.
Does that all make sense?

Does that all make sense?

Yes, updated the test as you recommended – to verify that the first call for the non-existing keys is made with undefined.

@tgolen how terrible is the idea to make the following change?
case METHOD.MERGE_COLLECTION:
    _.each(value, (_value, _key) => promises.push(() => merge(_key, _value)));
    break;

https://github.com/Expensify/react-native-onyx/blob/69b2d5973b4aef19ce783440df55dedb30d4efd2/lib/Onyx.js#L1560-L1562
From what I understand, it will trigger the re-render of components listening to a collection N times?

We use mergecollection quite a bit so I would definitely be worried about performance issues with that.

@tgolen I think I've made a working solution: it updates the data in the correct order, but it's a bit slower than the current version.
Would it be possible to request a look from the side at the potential bottlenecks and improvements, especially the cache-related operations?
This PR is risky because it changes one of the mostly used Onyx functions, so an extra pair of eyes would really be helpful here.

OK, great. Let me ping some of our experts on Slack to see if they can have a look at this PR. You can also see my comment here about how it can be reliably tested to help protect against major regressions.

@kidroca could you please help me understand whether the mergeQueue was introduced to chain the merge operations within one update call, or if there's more to it? How broad is the "single tick" definition?
https://github.com/Expensify/react-native-onyx/blob/3f77c6bd2030979da3d581ea01fc9fd5e6d646e5/lib/Onyx.js#L23-L25
https://github.com/Expensify/react-native-onyx/blob/3f77c6bd2030979da3d581ea01fc9fd5e6d646e5/lib/Onyx.js#L1285-L1291

I just discovered a behavior that looks like a blocker to me. Explained in detail here: https://github.com/Expensify/react-native-onyx/issues/301#issuecomment-1987950312

@kidroca could you please help me understand whether the mergeQueue was introduced to chain the merge operations within one update call, or if there's more to it? How broad is the "single tick" definition?

The merge queue was created way before the update interface existed, AFAIK it serves use cases where Onyx.merge is called multiple times from actions in the same tick, to be fair I don't know exactly when it succeeds in batching more than one item to merge, I guess it would be during init or updates

@tgolen this looks like a pretty unpredictable hole to me since the mergeCollection basically makes the object-dependencies in hooks useless, and we use such dependencies all across the App.

I agree, that is a bad hole. Did you consider changing mergeCollection() so that subscribers are only triggered if the object changes (so it works like merge())? I think that should be a reasonable change to make. I think it would also be fine to do that in a follow-up issue so that PR you are working on here doesn't have the scope increased.
I'm just getting caught up from being on vacation last week. Is there anything that I can help with for a next step here? How is the QA coming on the original PR and what is the status/ETA of getting this merged?

I'm placing this on HOLD right now in order for QA to be done on the latest version of Onyx without more un-QAed PRs from being merged.

@paultsimura I should be able to help with this! 😄
OnyxUtils.js migration is close to a merge (@fabioh8010 is testing it in NewDot).
Would it be possible to wait with this PR until the migration is merged? This could resolve some of your type problems + you won't have to care about declaration OnyxUtils.d.ts file.

Update: OnyxUtils migration is in it's final state, waiting to be merged 😄

@paultsimura Update: OnyxUtils was merged yesterday, we can remove HOLD from the title!

@paultsimura Please have a look at the fix here. Thanks for reporting!

Sorry for not posting these comments earlier, I reviewed the PR TS-wise. In case of any questions let me know! 😄

@paultsimura I'm not feeling too good today 🤒 @fabioh8010 could you help reviewing here?

Sorry, I have not been following the Onyx releases very closely. Where does this PR stand and does anyone know if we are close to removing the HOLD on this and moving it forward?

OK, thanks! I just merged that PR, so I'll take this one off hold.

@tgolen it looks like there are a couple of issues held on this PR (and this PR is held on App onyx bump?)
I'm unsure of how big of a priority this is but I noticed you're focused on another project all week. If this is a priority, does it make sense to assign someone else for review? If not... we can hang tight.

@paultsimura Can you please fix the conflicts? Also, can you link to whatever issue or PR this is on HOLD for?

@mallenexpensify I'm around this week, so I'll work on getting this merged. I don't think it needs reassigned at all.

@paultsimura Can you fix the conflicts here and link to whatever issue or PR this is on HOLD for?

Maybe @mountiny knows if there is a current PR for bumping Onyx? I don't think we track it anywhere, but you could maybe look through the titles of the open PRs to see if you can spot anything.

Yep we got this one and in the final stages of getting it done hopefully, its been a big effort 😅
We are also discussing in this canvas thread if you want to follow https://expensify.slack.com/archives/C05R2V5GM1S/p1718007552204639?thread_ts=1717193187.147939&cid=C05R2V5GM1S

Great, thanks!
On Mon, Jun 10, 2024 at 8:30 AM Vit Horacek @.***>
wrote:

Yep we got this one https://github.com/Expensify/App/pull/42772 and in
the final stages of getting it done hopefully, its been a big effort 😅
We are also discussing in this canvas thread if you want to follow
https://expensify.slack.com/archives/C05R2V5GM1S/p1718007552204639?thread_ts=1717193187.147939&cid=C05R2V5GM1S
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/react-native-onyx/pull/490#issuecomment-2158526477,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJMAB5H5UKF3VDRPEHNX5LZGWZ6PAVCNFSM6AAAAABEEFRTY2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNJYGUZDMNBXG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

It looks like the version bump PR was merged, so I think I can take the hold off of this one. We might want to still let it sit for a couple of days to ensure the version bump isn't reverted until any regressions.
@paultsimura if you want to fix the conflicts again in the meantime, we can look at merging this next week. Maybe Tuesday or Wednesday.

Yes! Luckily, it seems like no regressions have been found really in connection to the bump, which is... sus, but I welcome it 😂
@paultsimura I think you can now work on getting this PR ready for review and re-test again.

Bump @paultsimura

OK, that's probably wise. In order to do that, you need to make an App PR that points to this specific branch. Then I can create an ad-hoc build that we can give to QA for full regression testing.

That's the correct way to do it, yeah. There should be a couple other examples in the package.json which do this. I think, what I forgot to mention is that you need to temporarily include the built source files on your branch. I believe you can do this with the git add -f command (-f to force the file to be added and bypass the .ignore file).

From the issue, it sounds like this can be closed for now.

@paultsimura with these changes, does mergecollection onyx update have a performance advantage vs a bunch of merge updates if they belong to the same collection? or it should be roughly the same because the separate merge updates will be put together as a mergecollection?

Nice, thanks!

@paultsimura I found a bug in the version of react-native-onyx we are currently using and it seems like your PR here is fixing it. The bug: https://github.com/Expensify/App/issues/46135#issue-2428111404
When are we planning to release the changes made here?


Remove colons in log

The : is unnecessary. These logs are never going to be read by a human, so why make them human-readable?
The example write_log.txt from EE's website is 2,301,150 lines, with 63,876,645 characters. One ':' per line is 2,301,150 colons throughout the file.
By removing this, we save about 3.6% file space. Not much, but it's effortless to achieve.

We still sorta need the spaces between the r, g, b signals since they are variable-width and we don't necessarily have an easy way to record what their widths are. Unless in VHDL you can do something like
write(line_el, red'length);

If this is possible, then we can remove those spaces, too by including a line at the top that specifies the lengths of r, g, and b.


[BUG] gerund of be: 'bing' and not 'being'

Describe the bug
gerund of 'be' is 'being', not 'bing'
To Reproduce
| she #[+verb(getAnonMS(), {verb: 'be', tense: 'PROGRESSIVE_PRESENT'})]

Expected behavior
should output 'She is being' and not 'She is bing'
Code
see above
Context:

RosaeNLG version: 2.1.6
Language: en_US
Packaging: node

corrected in 2.1.7


Bounding undef-ness

During the F2F last week, Philip raised the issue of how to bound the
variability of an undef value.  The troublesome scenario is:
    int i = some_undef_value();
    a[i];  // How to do the bounds check on this?

A naive translation including the bounds-check is:
    int i = some_undef_value();
    if (i < 0 || i >= a_bound) { return fail; }
    a[i];

But each use of an undef value can see a different concrete value, so
upon lowering to the machine and executing the code you could get the
following (uses of i mapping down to 12, 2, and 900 respectively):
    int i = undef;
    if (12 < 0 || 2 >= a_bound) { return fail; }
    a[900]; // Out of bounds!  You have been pown'd.

This is a good problem to solve.
The same problem occurs in digitial circuit design where a circuit block
needs to capture a digital signal from an asyncrhonous input.  You
want all uses within your block to use a consistent value (for a given
clock cycle).  The "undef" behaviour is analogous to sampling that
asynchronous signal at each use within your block, which leads to
inconsistent values due to differing signal propagation delays to reach
those uses.  The standard solution is to sample the asynchronous input
exactly once (with one register in the receiving clock domain), and
then distribute the output of that register to all intended uses within
your block.
(I'm skipping over the metastability management aspect to achieve a
target MTBF.  That's not relevant here.)
How does that translate back to the compiler-for-an-ISA domain?
The "undef" behaviour is supposed to give the compiler stack the
freedom to reuse registers for different program (SSA) values without
having to clear the register first or save/spill the register when no
longer needed.  The capture behaviour requires the whole compiler stack
to preserve the captured value either within a register or by spilling,
whatever is appropriate.
So, to safely do the bounds check on the array index, you have to
capture the index and use the same captured value for both the bounds
check and the access.  In our example, the compiler has to do something
like:
    int i = some_undef_value();
    int i_as_index = CAPTURE(i);  // A new compiler primitive.
    if (i_as_index < 0 || i_as_index >= a_bound) { return fail; }
    a[i_as_index];

The semantics of CAPTURE(x) is:

if x is undef, then result is some value for typeof(x).  The result
value is not an undef value.  That is, all uses of the result will
see the same value.  In concrete terms for common architectures, the
value is preserved in a register or spilled as needed.

if x is not an undef, then the result is x.

Each implementation can have its own particular implementation of the CAPTURE
primitive.  For example, a crude one could be to map each instance of CAPTURE
to its own variable and executing CAPTURE(X) does a volatile store to the
variable, and uses of the value are volatile loads.
References
[1] "Synchronization in Digital Logic Circuits" (tutorial) Ryan Donohue.
https://web.stanford.edu/class/ee183/handouts/synchronization_pres.pdf
[2] Understanding Metastability in FPGAs (Intel Whitepaper).
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/wp/wp-01082-quartus-ii-metastability.pdf

Just so I understand correctly, this isn't visible to the user but would be a primitive compilers would use internally? Also in SPIRV or WHLSL we should strive to have no UB except for data-races, so this would only be used for accesses that can be racy? At that point it looks a bit like the "volatile" keyword in C.

Just so I understand correctly, this isn't visible to the user but would be a primitive compilers would use internally?

Yes.

Also in SPIRV or WHLSL we should strive to have no UB except for data-races, so this would only be used for accesses that can be racy?

To first order, yes.  But I'd like to think more carefully about it.

At that point it looks a bit like the "volatile" keyword in C.

To first order, yes.
The interesting bit is to avoid being too pessimistic.  You can pass every value through the CAPTURE primitive, but that's too slow / too much.   It's best to minimize where you place these things while maintaining safety.  How well or easily that can be done depends strongly on language features and the execution environment.
To that end, I'd reference the security requirements as we determined previously (as far as I can tell) https://github.com/gpuweb/gpuweb/issues/39#issuecomment-344481628

I would personally overload the array accessor operator (pointers) and storage image acess with my own wrapper functions that would take the address/offset/coordinate by value/via copy (not reference).
SPIR-V has an actual memory model, compared to lets say DXIL/Metal, so preventing the compiler from optimizing should be easier than in a text-based shading language (otherwise you have to declare all resources that provide a pointer/texture coord as volatile)


v1.16 Backports 2024-10-07

[x] #34090 (@dlapcevic) :warning: resolved conflicts

:information_source: Hit minor conflict due to different surrounding context, accepted combination.

[x] #35107 (@aanm)
[ ] #35033 (@WeeNews)
[ ] #34808 (@cfsnyder)

:information_source: Added missing ptr package import in ingestion/gateway_test.go.

[ ] #35068 (@ayuspin)
[ ] #35109 (@jrajahalme) :warning: resolved conflicts

:information_source: Hit minor conflict due to different surrounding context, accepted combination. Additionally updated the TestMapState_AccumulateMapChangesOnVisibilityKeys test, which has been removed in the meanwhile on main, applying the changes originally part of cilium/cilium@137abf7b4b6a (from #35109).

[x] #35193 (@aanm)
[ ] #35070 (@jrife)
[ ] #35126 (@jrife)
[x] #35177 (@marseel)
[x] #35208 (@aanm)
[ ] #35186 (@kreeuwijk) :warning: resolved conflicts

:information_source: Hit conflict as c8ee53c0014c is not yet present in v1.16. Adapted the patch accordingly.

[x] #35166 (@rastislavs)

:information_source: Switched to the experimental maps package (and dropped slices.Collect) in reconcilerv2/service_test.go, given that v1.16 is still using go v1.22.

[x] #35262 (@aanm)
[x] #35264 (@aanm)

Once this PR is merged, a GitHub action will update the labels of these PRs:
 34090 35107 35033 34808 35068 35109 35193 35070 35126 35177 35208 35186 35166 35262 35264

/test-backport-1.16

/test-backport-1.16

/test-backport-1.16


Add boskos related helpers for cluster management lib

Creating this helper for defining some constants, as well as certain common contracts, i.e. using JOB_NAME env var as host name for acquiring Boskos resources
Part of: https://github.com/knative/test-infra/issues/1186
/cc @adrcunha

Tests, pretty please? :)

Do you mean testing boskos helpers? I have thought about it, but it doesn't really carry any custom logic other than wrapping around k8s/boskos, I can add tests for the constants though if desired.

Do you mean testing boskos helpers? I have thought about it, but it doesn't really carry any custom logic other than wrapping around k8s/boskos, I can add tests for the constants though if desired.

I would be more comfortable with tests for AcquireGKEProject and ReleaseGKEProject. And not only for themselves, but the ability to mock the boskos library will probably be very useful in more complex tests later (e.g., cleanup functions).

@adrcunha , done adding unit tests

Thanks for the test coverage.
/lgtm
/approve

/cc @mattmoor


Add RoadRunner to brew.sh

Is your feature request related to a problem? Please describe.
It would be amazing to have RoadRunner installable through brew.sh. We use GoReleaser.com to build the tap required for macOS users to run brew install roadrunner.
Describe the solution you'd like
Adding RoadRunner as a Brew Tap. We have an example of using GoReleaser to publish to brew here: https://github.com/craftcms/nitro/blob/main/.goreleaser.yml
Describe alternatives you've considered
We can use go get to install, but having a "production" binary ready with Brew would be 👌.

Hey @jasonmccallister , nice to meet you. We already have the ticket for this request. If you don't mind, could you please move your thoughts as a comment to the #397. Thanks.
duplicate of the #397


fix FALST typo and add missing operators

Fix FALST typo
Fix https://developercommunity.visualstudio.com/content/problem/126446/cmake-version-greater-equal-and-similar-are-not-co.html
VERSION_GREATER_EQUAL and similar operators are not getting colored
Add every operator from https://cmake.org/cmake/help/latest/command/if.html that was missing:

GREATER_EQUAL
IN_LIST
IS_ABSOLUTE
IS_DIRECTORY
IS_NEWER_THAN
IS_SYMLINK
LESS_EQUAL
STRGREATER_EQUAL
STRLESS_EQUAL
TARGET
TEST
VERSION_EQUAL
VERSION_GREATER
VERSION_GREATER_EQUAL
VERSION_LESS

(BTW, I'm on the Microsoft CMake dev team, if that wasn't clear.)


lacks support of !global

see sass reference: http://sass-lang.com/documentation/file.SASS_REFERENCE.html

Fixed in b1177b318ac4b8af76a98109870e4130e60b13ce


Desktop site version

Rquirements:
Create a desktop version of the portfolio site.
It should fit on desktop screens
Use media queries to display it
Make sure that there are [no linter errors
Make sure that you documented your work
Use flex and grid
Achievements:
I have created the desktop version of the portfolio site.
No linter errors
Used flex and grid.
Used media queries

Hi @alexiscyber14,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.

Invalid Code Review Request
❌❌ Please use descriptive branch names instead of "feature" (e.g.: refactor-authentication, user-content-cache-key, make-retina-avatars), so that others can see what is being worked on. Check more to learn more about this.
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.


Code crashes without any concrete error and no help documents

Basic example crashes with this error on start:

ERROR(S):
No verb selected.
add        Add file contents to the index.
commit     Record changes to the repository.
clone      Clone a repository into a new directory.
help       Display more information on a specific command.
version    Display version information.

Process finished with exit code 1.

If I need to debug it, how it's being done?

 [Verb("add", HelpText = "Add file contents to the index.")]
    class AddOptions {
        //normal options here
    }
    [Verb("commit", HelpText = "Record changes to the repository.")]
    class CommitOptions {
        //commit options here
    }
    [Verb("clone", HelpText = "Clone a repository into a new directory.")]
    class CloneOptions {
        //clone options here
    }

    static int Main(string[] args) {
        return CommandLine.Parser.Default.ParseArguments<AddOptions, CommitOptions, CloneOptions>(args)
            .MapResult(
                (AddOptions opts) => RunAddAndReturnExitCode(opts),
                (CommitOptions opts) => RunCommitAndReturnExitCode(opts),
                (CloneOptions opts) => RunCloneAndReturnExitCode(opts),
                errs => 1);
    }

    private static int RunCloneAndReturnExitCode(CloneOptions opts)
    {
        return 1;
    }

    private static int RunCommitAndReturnExitCode(CommitOptions opts)
    {
        return 1;
    }

    private static int RunAddAndReturnExitCode(AddOptions opts)
    {
        return 0;
    }
}

Looks like you are missing the argument in the CLI or IDE.
Did you manage to work it out? @HackPoint


Bump up go version to 1.21 and k8s.io/apimachinery to v0.29.2

What does this PR do?
Bumps up the go version of alizer to 1.21 and k8s.io/apimachinery to v0.29.2 as part of the general EPIC https://github.com/devfile/api/issues/1555
Which issue(s) does this PR fix
Fixes https://github.com/devfile/api/issues/1560
PR acceptance criteria
Testing and documentation do not need to be complete in order for this PR to be approved. We just need to ensure tracking issues are opened.

[ ] Unit/Functional tests

[ ] Documentation

How to test changes / Special notes to the reviewer

/lgtm
Everything seemed to work locally with building the binaries and running tests. Go is backwards compatible so I don't see any reason this would give us a headache and it looks like the api version was updated indirectly anyway?

@Jdubrick thanks for the review :) Yeap the update of the API comes from the update of:
sigs.k8s.io/controller-runtime v0.17.5

Which reminds me we might want to get rid of zap because is the only reason we are depending on runtime.

/lgtm
Everything seemed to work locally with building the binaries and running tests. Go is backwards compatible so I don't see any reason this would give us a headache and it looks like the api version was updated indirectly anyway?

@Jdubrick thanks for the review :) Yeap the update of the API comes from the update of:
sigs.k8s.io/controller-runtime v0.17.5

Which reminds me we might want to get rid of zap because is the only reason we are depending on runtime.

It looks like we are using that for a logger though, no?

btw I've merged it as the issue we're discussing it's out of scope :)

Sounds good. We should open an issue to investigate if there is a better way to handle logging if we want to remove that as a dependency?

btw I've merged it as the issue we're discussing it's out of scope :)

Sounds good. We should open an issue to investigate if there is a better way to handle logging if we want to remove that as a dependency?

Yup! I'm already on it


red OFF

firefox 47
$ ipfs swarm peers | wc -l
66

I have peers in ipfs but addon say it red OFF, redirect ENABLED, gateway <IP_ADDRESS>:8080, version N/A, peers N/A. I try restart ipfs, then firefox, but it still red OFF.

Ok. I understand why it's not working. It does not work when I use a http proxy.


WFLY-14179 Update Apache commons-lang3 3.11

Fixes WFLY-14179

@asoldano @jimma This is used directly or indirectly by WS code so I'll need an ok from one of you.
CI is very overloaded right now and we need capacity for other things so I'll get CI restarted on this later.

@bstansberry  This upgrade is OK for webservice subystem.

/retest


Call receiving of historical data and details from IB from the 'contact' and 'quotes' classes

Was done with last bigger refactoring


http-server stable version

Hi,
We are using 0.12.3 version of http-server.
As a dependent package, 1.5.1 version of opener package has been installed.
This version of opener has 4 High Vulnerabilities (CVE-2021-27478, CVE-2021-27482, CVE-2021-27498, CVE-2021-27500) with scores 7.5 for all the respective ID's.
Is there a way to fix those vulnerabilities. If so, can you please let us know how to do?
Environment Versions

http-server version: 0.12.3

I think this project needs a package overhaul - some of the dependencies are no longer actively maintained, union is a big one - I had to replicate some of the code previously for another fix.
I'll do an assessment and see if there's suitable alternatives to revive this.

I had a closer look and your vulnerabilities are for a completely different package: https://github.com/EIPStackGroup/OpENer rather than https://github.com/domenic/opener
There are 3 moderate security issues, but these are tied to other packages (tap & request):
┌─────────────────────┬───────────────────────────────────────────────────┐
│ moderate            │ Denial of Service in mem                          │
├─────────────────────┼───────────────────────────────────────────────────┤
│ Package             │ mem                                               │
├─────────────────────┼───────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.0.0                                            │
├─────────────────────┼───────────────────────────────────────────────────┤
│ Patched versions    │ >=4.0.0                                           │
├─────────────────────┼───────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-4xcv-9jjx-gfj3 │
└─────────────────────┴───────────────────────────────────────────────────┘
┌─────────────────────┬───────────────────────────────────────────────────┐
│ moderate            │ yargs-parser Vulnerable to Prototype Pollution    │
├─────────────────────┼───────────────────────────────────────────────────┤
│ Package             │ yargs-parser                                      │
├─────────────────────┼───────────────────────────────────────────────────┤
│ Vulnerable versions │ >=6.0.0 <13.1.2                                   │
├─────────────────────┼───────────────────────────────────────────────────┤
│ Patched versions    │ >=13.1.2                                          │
├─────────────────────┼───────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-p9pc-299p-vxgp │
└─────────────────────┴───────────────────────────────────────────────────┘
┌─────────────────────┬───────────────────────────────────────────────────┐
│ moderate            │ Prototype Pollution in Ajv                        │
├─────────────────────┼───────────────────────────────────────────────────┤
│ Package             │ ajv                                               │
├─────────────────────┼───────────────────────────────────────────────────┤
│ Vulnerable versions │ <6.12.3                                           │
├─────────────────────┼───────────────────────────────────────────────────┤
│ Patched versions    │ >=6.12.3                                          │
├─────────────────────┼───────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-v88g-cgmw-v5xw │
└─────────────────────┴───────────────────────────────────────────────────┘

I assume that you need to know more about some servers for your website. I have also fixed this problem and the lessons also look informative to me. Not so long ago I created my own app to grow the business. It has become much easier for users to subscribe to my services, and it's very cool. And to keep the application functional, I turned to vps canada. in fact, they help me support my application and I can spend more time on my business. It's really convenient.

I assume that you need to know more about some servers for your website. I have also fixed this problem and the lessons also look informative to me. Not so long ago I created my own app to grow the business. It has become much easier for users to subscribe to my services, and it's very cool. And to keep the application functional, I turned to vps canada. in fact, they help me support my application and I can spend more time on my business. It's really convenient.


Add reproducible builds

This improves the reliability of the builds for the miden-node enabling more consistency and reproducibility.
closes: #251

@hackaugusto for now we are not using the matrix capabilities in the CI. Should we still keep the matrix structure for future proofing or should we switch to a simpler CI structure?

@hackaugusto for now we are not using the matrix capabilities in the CI. Should we still keep the matrix structure for future proofing or should we switch to a simpler CI structure?

I don't mind either way.

@hackaugusto should we also add doc and test in cargo make file?
Considering that these can be ran without flags for now and easier: cargo test against cargo make test
What do you think?

@hackaugusto for now we are not using the matrix capabilities in the CI. Should we still keep the matrix structure for future proofing or should we switch to a simpler CI structure?

I don't mind either way.

Removed the matrix to simplify CI for now


Update aiohttp 1.3.1

Description:
Update aiohttp to 1.3.1 -> http://aiohttp.readthedocs.io/en/stable/changes.html#id1
Related issue (if applicable): fixes #5837

For what it's worth I can confirm this fixed #5837 for me

cherry-picked


Show usage example in the README

https://github.com/opentracing-contrib/go-amqp/commit/e26701f956203a730ad2203c87eaf3f82860d4e2
I'll do PR from now on.


find_symbol_nodes signature is incorrect

symbex -s find_symbol_nodes

# File: symbex/lib.py Line: 8
def find_symbol_nodes(code: str, symbols)

But it should be:
https://github.com/simonw/symbex/blob/46f8a6d08d825913d12f082b6f510fc37fa86835/symbex/lib.py#L8-L10

I set ChatGPT Code Interpreter to work on this and it found a solution!
https://chat.openai.com/share/b9873d04-5978-489f-8c6b-4b948db7724d
It wrote this code (after a few iterations):
def get_annotation_str(annotation):
    """
    Helper function to return the correct string representation of a type annotation.

    Args:
        annotation (ast.expr): The AST node representing the type annotation.

    Returns:
        str: The string representation of the type annotation.
    """
    if annotation is None:
        return ""
    elif isinstance(annotation, ast.Name):
        return annotation.id
    elif isinstance(annotation, ast.Subscript):
        value = get_annotation_str(annotation.value)
        slice = get_annotation_str(annotation.slice)
        return f"{value}[{slice}]"
    elif isinstance(annotation, ast.Index):
        return get_annotation_str(annotation.value)
    elif isinstance(annotation, ast.Tuple):
        elements = ", ".join(get_annotation_str(e) for e in annotation.elts)
        return f"({elements})"
    else:
        return "?"

ChatGPT also suggested https://pypi.org/project/astor/ - if I wasn't trying to avoid extra dependencies that would be a really good option.


volterra_origin_pool limited to one origin server

If you create an origin pool with more than one origin server, only the first on in the plan will be deployed.
Here is my configuration:
resource "volterra_origin_pool" "pool" {
  name                   = "example-pool"
  namespace              = var.namespace

  origin_servers {

    public_ip {
      ip = "<IP_ADDRESS>"
    }
    public_ip {
      ip = "<IP_ADDRESS>"
    }
  }
  port = "80"
  endpoint_selection     = "LOCAL_PREFERRED"
  loadbalancer_algorithm = "LB_OVERRIDE"
}

Here is the related plan:
  # volterra_origin_pool.pool will be created
  + resource "volterra_origin_pool" "pool" {
      + endpoint_selection     = "LOCAL_PREFERRED"
      + id                     = (known after apply)
      + loadbalancer_algorithm = "LB_OVERRIDE"
      + name                   = "example-pool"
      + namespace              = "default"
      + port                   = 80

      + origin_servers {

          + public_ip {
              + ip = "<IP_ADDRESS>"
            }
          + public_ip {
              + ip = "<IP_ADDRESS>"
            }
        }
    }

After apply only origin server <IP_ADDRESS> will be created on F5XC. In terraform.tfstate I can see both origin server.
$ terraform version
Terraform v1.3.7
on linux_amd64
+ provider registry.terraform.io/volterraedge/volterra v0.11.21

In my last deployment <IP_ADDRESS> was deployed. looks like its random.

I got it working with the following syntax:
resource "volterra_origin_pool" "pool" {
  name                   = "example-pool"
  namespace              = var.namespace

  origin_servers {
    public_ip {
      ip = "<IP_ADDRESS>"
    }
  }

  origin_servers {
    public_ip {
      ip = "<IP_ADDRESS>"
    }
  }

  port = "80"
  endpoint_selection     = "LOCAL_PREFERRED"
  loadbalancer_algorithm = "LB_OVERRIDE"
}

Still we should through an error, if the first syntax is wrong.

This issue is still outstanding. Terraform in which the origin_servers block has nested blocks for each server validates and plans correctly. On apply only one of the servers is configured for the created origin pool. origin_servers must be a dynamic block containing an individual server to correctly configure a list of origin servers for the origin pool.
resource "volterra_origin_pool" "pool" {
  name                   = "example-pool"
  namespace              = var.namespace
  port                   = "80"
  endpoint_selection     = "LOCAL_PREFERRED"
  loadbalancer_algorithm = "LB_OVERRIDE"

  dynamic "origin_servers" {
    for_each = var.origin_server_names
    content {
      private_name {
        dns_name = origin_servers.value
        #...other configuration
      }
    }
  }
}

variable "origin_server_names" {
  type    = list(string)
  default = ["server1.private.example.com", "server2.private.example.com"]
}

@rabru Since origin_servers is a list, and the documentation states that origin_servers has fields public_ip and optional labels, we need to define origin_servers separately.
please refer documentation: https://registry.terraform.io/providers/volterraedge/volterra/latest/docs/resources/volterra_origin_pool#origin-servers


 Returned this error:
standard_init_linux.go:207: exec user process caused "exec format error"
Seems like from some googling that might be architecture related. Have you successfully deployed this to a pi? or is there maybe some changes needed?
To test my suspicion, i deployed to my x86 server and everything installed and started up perfectly.

To be honest I'm not too familiar w/ Docker and the docker config was provided in a PR.  @Gibby do you have any suggestions?

@jbarneson you would need to do docker build on the pi to build an image for ARM

Also give Deploying ASP.NET Core Docker image from x86 to ARM (Raspberry Pi) in VS2019 a try.

@jbarneson I updated the docker file to support RPI.  Please test and close issue if it works.
@Gibby Let me know if this is a problem for you.  We can add additional docker files for other architectures.

Mine worked great on a RPI 2.  Up and running and even added the docker --restart to enable it to startup if the PI reboots.

@mguinness yeah it breaks none PI docker images. Best practices is a separate Dockerfile for each type.
Then in Docker Hub setup your auto build rules to build and tag the different architectures supported.

Saw how you were doing it with actions, I created a PR to support both. https://github.com/mguinness/IntelliCenterGateway/pull/6

Docker image for linux/arm now available on Docker Hub.


Running  XtermBlazor on IOS

Hi
I am  trying the XtermBlazor library to run on IOS and Android. I am able to launch a basic xterm on both, the Android xterm seems to be working fine, however when running on IOS and trying to type something on the xterm I get the following error for every character I type :
2022-10-24 08:43:50.420439-0400 TestBlazorApp[14028:354017] [UIFocus] Failed to update focus with context <UIFocusUpdateContext: 0x600002764640: previouslyFocusedItem=(null), nextFocusedItem=(null), focusHeading=None>. No additional info available.
Have you seen this error before ? is there is known workaround?
Thanks

I have never seen this before. Would you mind sharing your XtermBlazor code here?

Hi
I loaded a test project on the following link. Also wanted to mentioned this error was on an IOS simulator.
https://www.dropbox.com/s/dprkyupa5p2qtot/TestBlazorApp.zip?dl=0
Thanks

I had viewed your project. You may try placing the script tags below _framework/blazor.webview.js
<script src="_framework/blazor.webview.js" autostart="false"></script>
<script src="_content/XtermBlazor/XtermBlazor.min.js"></script>

<!-- xterm-addon-fit CDN -->
<script<EMAIL_ADDRESS>
<!-- Register addon to XtermBlazor -->
<script>window.XtermBlazor.registerAddon("xterm-addon-fit", new window.FitAddon.FitAddon());</script>

Hi
I tried the recommended changes but still getting the same error on IOS.
Thanks

I would say it might be MAUI issue since MAUI is very new.

You may try to remove the window. like this
<script>XtermBlazor.registerAddon("xterm-addon-fit", new FitAddon.FitAddon());</script>


"Monitored Streams" feed instead of 'All messages' feed

https://chat.zulip.org/#narrow/stream/feedback/subject/.22All.20messages.22.20feed
I spent some time last night while falling asleep thinking about the "All messages" feed, and how little I use it. It has too much junk from streams that I am subscribed to but never actually read. I like having those streams in the left-hand sidebar because I sometimes need to go to those streams to ask questions, so I keep the subscriptions, but I don't just read the streams when there is new stuff there. However, that habit means that I can't use the aggregate stream "All messages" because it is just filled with too much stuff.
10:49 AM
I was thinking that it might be nice to have some streams that are "monitored", and some streams that are just subscribed. Monitored streams would get fed into an aggregate stream like "All messages" but more appropriately named to "monitored streams", and other subscribed streams would not.

I was about to put in a suggestion to be able to search for multiple streams and have their message interleaved like the "All messages" view. This seems like a related idea, as does #1085's 3rd idea: "have streams grouped." This would be a useful feature as a way to defined groups of streams as a kind of workspace, and even switch between multiple groups like one might switch between multiple desktops on a desktop computer.

A related idea would be offering an "All messages"-style view just for followed topics.

Closing in favor of #29767. Thanks, @Lyla-Fischer !


run_exports missing for e-antic

The e-antic subpackage has no run_exports, see https://github.com/conda/conda-build/issues/4268.

This breaks https://github.com/conda-forge/staged-recipes/pull/15915.


Add ErrantRecordReporter support

Add errors.tolerance and ErrantRecordReporter support.
Updating to support kafkaVersion 2.6 which is when
ErrantRecordReporter became available in Kafka connect. Can
also add the following parameters to the http-sink properties
file to handle messages that are reported to the
ErrantRecordReporter.
errors.deadletterqueue.topic.name
errors.deadletterqueue.context.headers.enable
errors.deadletterqueue.topic.replication.factor
Preserving backwards compatibility on batch send by only using
ErrantRecordReporting if non-batch.

Related to https://github.com/aiven/http-connector-for-apache-kafka/issues/34

Hi @CodeLikeAGecko, thanks for your contribution.
Could you rebase the branch on top of the current main? We just enabled integration test in GitHub actions and seems they are failing with your changes. And could you add some more integration tests with dead letter queue covering your changes?

@CodeLikeAGecko Sure! The only thing you need is Docker. If you have Docker installed then ./gradlew integrationTest should run the tests(unless you have any custom Docker configuration). Basically, integration tests are implemented using Testcontainers library. You can use test from src/main/integrationTest as examples.

@AnatolyPopov Sorry for the long delay. It took me a while to figure things out and my regular job was keeping me busy. But it is hopefully ready now!

@AnatolyPopov Thanks for finding/pointing out these issues. As you will see in the commit message I had some difficulty with a dependency issue that turned out to have been introduced in Confluent Platform v6.0.3. It isn't an area I am very knowledgeable in but it looks like Confluent 6.0.3 started using the jersey-common v2.34 jar file for something. The rest of the test ecosystem was using Jersey 2.31 jar files that was brought in by Kafka version 2.6.3. I think the Confluent-built jar was resolved for a call by the Kafka-related stuff and a method signature had changed, leading to a java.lang.NoSuchMethodError failure in the integration tests. Back in March I couldn't figure it out other than going to the latest Kafka 2.X. This time I was more knowledgeable and isolated it to the Confluent Platform version 6.0.3 allowing Kafka 2.6 to be used.


anaconda

How I can install this package in anaconda and using that in anaconda envs?

this is the working for time being.
ANACONDA_SITE_PACKAGES=<ANACONDA_BASE>/lib/<python3.7>/site-packages
wget https://files.pythonhosted.org/packages/7f/e3/4f7044e988327a10bc459e3d3590c59c1cdbdb53c83670c8606d1fbee3c9/jupyter_http_over_ws-0.0.6-py2.py3-none-any.whl
unzip jupyter_http_over_ws-0.0.6-py2.py3-none-any.whl -d $ANACONDA_SITE_PACKAGES
Enable the extension by adding this is in ~/.jupyter/jupyter_notebook_config.json
{
"NotebookApp": {
"nbserver_extensions": {
"jupyter_http_over_ws": true
}
}
}

What's the wget url for version 0.0.8?

Is there an anaconda package for this in the works?


serve command

like deno serve

serve handler
local cache for esm.sh

additional features are need

set user agent
handling redirect
fix metadata save file calculation
fix null character is included in path