RFC: More Granular File Operators

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Currently the file scan operators such as ParquetExec, CsvExec, etc... are created with a FileScanConfig, which internally contains a list of PartitionedFile. These PartitionedFile are provided grouped together in "file groups". For each of these groups, the operators expose a DataFusion partition which will scan these files sequentially.
Whilst this works, I'm getting a little bit concerned we are ending up with quite a lot of complexity within each of the individual, file-format specific operators:

The individual files within a file group may have differing schema - #1669
If using Hive partitioning, need to project the additional rows from the partition key - #1139
Edge cases where the file isn't even needed - #1999
Intra-file parallelism - #1990

This in turn comes with some downsides:

Code duplication between operators for different formats with potential for feature and functionality divergence
The operators are getting very large and quite hard to reason about
Execution details are hidden from the physical plan, potentially limiting parallelism, optimisation, introspection, etc...
Catalog details, such as the partitioning scheme, leak into the physical operators themselves

Describe the solution you'd like
It isn't a fully formed proposal, but I wonder if instead of continuing to extend the individual file format operators we might instead compose together simpler physical operators within the query plan. Specifically I wonder if we might make it so that the ParquetExec, CsvExec operators handle a single file, and the plan stage within TableProvider::scan instead constructs a more complex physical plan containing the necessary ProjectionExec, SchemaAdapter operators as necessary.
For what it is worth, IOx uses a similar approach https://github.com/influxdata/influxdb_iox/blob/main/query/src/provider.rs#L282 and it works quite well.
Describe alternatives you've considered
The current approach could remain
Additional context
I'm trying to take a more holistic view on what the parquet interface upstream should look like, which is somewhat related to this https://github.com/apache/arrow-rs/issues/1473
FYI @rdettai @yjshen @alamb

Specifically I wonder if we might make it so that the ParquetExec, CsvExec operators handle a single file, and the plan stage within TableProvider::scan instead constructs a more complex physical plan containing the necessary ProjectionExec, SchemaAdapter operators as necessary.

Recently, we've encountered several different circumstances to deal with query execution parallelism:

To parallelize the parquet file scan and reduce filesystem operation overhead; (The current parquet chunkReader API).
To incorporate task concept, which is widely available in distributed computation frameworks such as Spark, presto, into the DataFusion core. https://github.com/apache/arrow-datafusion/pull/1987
Improved Scheduler to limit concurrently (i.e., don't scan 20 parquet files in parallel if you have only two cores) From Influx.
Together with several previous issues such as #64 #924

I think it might be the right time to rethink how to divide query working sets, how to partition/repartition data among operators, and how we should schedule tasks.
My opinion on this whole scheduler and execution framework is: (proposed previously in https://github.com/apache/arrow-datafusion/pull/1987#discussion_r825384514)

Adopt stage-based execution in DataFusion core.

Divide query execution plan based on "exchange" operators or "pipeline breakers" into a DAG of stages.
For each stage, group all operators into a Task. Processing data with operator logic serially, synced, pipelined inside each Task.
For the root stages that read data from files directly, partition input dataset based on a per-task size configuration. (similar to that of input.split.maxSize for MapReduce and similars for Spark/Presto).
For non-root stages, we could either adopt a fixed num_partition or determine the number of partitions based on runtime generated size.

A shared scheduler framework for both DataFusion and Ballista.

Schedule tasks based on stages dependency and schedule tasks based on available cores.

Ultimately, I'm expecting a finer-grained execution for DataFusion core, as described in Morsel-driven parallelism and Push-pull.

By the method proposed above, we could also achieve:

limit concurrently (don't scan 20 parquet files in parallel if you have only two cores)

with the help of the TaskScheduler, and achieve:

can instead construct a more complex physical plan containing the necessary ProjectionExec, SchemaAdapter

by an existing, sequentially executed, Task.
cc @houqp @andygrove @liukun4515 @yahoNanJing @mingmwang.

I agree entirely that the current scheduling within DataFusion, which effectively punts onto tokio and hopes it does something vaguely appropriate, is likely sub-optimal. In fact one of the issues I'm having with #1617 appears to be that sub-optimal task scheduling is causing a 2x performance regression.
That being said, I think there are three problems here and it would be advantageous in my mind to keep them separate:

Translation of a LogicalPlan::TableScan into a corresponding ExecutionPlan
Optimisation of this ExecutionPlan to potentially introduce additional parallelism
Scheduling of this ExecutionPlan to actually perform its computation

This ticket is then concerned solely with the first of these, and reducing the complexity of the file-format specific operators necessary to achieve this. I think the remaining two problems can and should be kept separate, in part because they have broader scope than just scanning files.
FWIW we sort of already do the stage-based execution you describe, but it is implicit based on whether operators call tokio::spawn or just compose the SendableRecordBatchStream together. I think making this more explicit sounds like a good idea, but I'm not sure it is a simple case of grouping operators together, and would likely involve altering the contract of ExecutionPlan to be more explicit about what operators spawn additional parallel tasks. Perhaps this is what you're proposing?

Translation of a LogicalPlan::TableScan into a corresponding ExecutionPlan

Sounds great. We could eliminate much of the common logic scattered in different file formats, as you mentioned. And yes, this makes sense!

removing the ability to scan multiple files within a single operator, and instead composing multiple per-file operators in the generated ExecutionPlan.

I'm confused here: How would we parallelize the physical operators after this TableScanOp? And how do we control this single operators parallelism? Will the data batch be sent through a multi-producer(the single ops)-multi-consumer(like filter/project/sort) queue?

compose the SendableRecordBatchStream together. I think making this more explicit sounds like a good idea, but I'm not sure it is a simple case of grouping operators together, and would likely involve altering the contract of ExecutionPlan to be more explicit about what operators spawn additional parallel tasks. Perhaps this is what you're proposing?

What do you think if we avoid async and stream from normal operators' execute()? just like you and @alamb mentioned merging project/filter logic into scan operator, these pure computations are async free in my opinion, they are data or computation-intensive and do not talk with IO systems. What do you think if we have:

How would we parallelize the physical operators after this TableScanOp?

You would have multiple single-partition ParquetExec being fed into a single UnionExec, potentially with some ProjectionExec, etc... in between. As each Datafusion partition gets its own tokio task => parallelism. If you wanted parallelism within a single file, you would have an optimizer pass that would replace the single ParquetExec with multiple with disjoint row groups, again this would be fed into a UnionExec.

What do you think if we avoid async and stream from normal operators' execute()?

Let me get back to you on this, it is something I am currently mulling about and experimenting with. I agree that using async for CPU-bound work seems a little wonky, but as @alamb articulated here there are reasons that it may be the pragmatic choice. I'm trying to collect some data so we can make an informed decision :sweat_smile:

As promised, the scheduling proposal can be found in #2199

Ok I've created some sub-tasks that I think should provide a path towards implementing this proposal:

https://github.com/apache/arrow-datafusion/issues/2291
https://github.com/apache/arrow-datafusion/issues/2292
https://github.com/apache/arrow-datafusion/issues/2293

I'm currently somewhat over-subscribed getting #2199 over the line, so if someone was free and willing to help out that would be awesome. If not I'll get to them when I have a chance.

@tustvold thank you for driving this.  i do hope to getting around to help on this but i have been a bit short of time lately.  will keep you posted if im able to pick any of this up.

I think this work is now encapsulated in smaller sub-tasks, so closing this issue


After config with Google drive rclone copying to local dir

Hello,
I ran rclone config to setup my Google drive as remote destination. It appeared to go ok. But running copy or sync commands only creates a directory called Gdrive (given name) in my home directory, and copies all data into it. Nothing is being sent to Google drive.
Isaiah

What is the exact rclone command you are executing?  Replace any personal info in the paths with generic info if desired.

My guess I'd that you forgot the colon after the Gdrive,  eg
rclone copy stuff Gdrive:directory

Thanks, Gary and Nick!  It looks like the missing : was the problem.  I had manually uploaded my Documents folder to Google drive via web browser in the meanwhile.  So now I am running a sync with Gdrive:Documents as the target, and it seems to be going fine.
Gary, the exact command is - /usr/sbin/rclone sync /home/isaiah/Documents Gdrive:Documents
I was trying this before - /usr/sbin/rclone copy /home/isaiah/Documents Gdrive
Presumably I can setup a daily cron job now and automate this.  I'll be back if I screw it up, I'm a technical noob.
Thanks again!

Just to be sure, do I designate sub directories on Gdrive with a : or a /?  Should it be 'Gdrive:Pictures/Senayit-Adanech' or 'Gdrive:Pictures:Senayit-Adanech'?
TIA

Isaiah, you will want to use / to designate subdirectories on a remote drive.
$ rclone ls ACD:TEST/123
    10 test.groovy

Transferred:            0 Bytes (   0.00 kByte/s)
Errors:                 0
Checks:                 0
Transferred:            0
Elapsed time:        2.3s

Thanks, Gary! and a very merry X'mas to both of you!

Glad it is solved now!


validate_conditions not_before calculated wrong

Currently the validation for the notbefore node is written as (now + allowed_clock_drift) < not_before. Since the current time now should be greater then notbefore minus the allowed drift: now > not_before - allowed_clock_drift. Adding allowed clock drift to both sides you get: (now + allowed_clock_drift) > not_before. So unless there's something I'm missing, I believe the inequality needs to be flipped.

That is very confusing. So then the subject of notBefore is its own value? It's value cannot be before it's comparator?

The value of notBefore cant be less than now - allowed_clock_drift


permissionTree actions do not exist in actionConfiguration

When you click on create root, create child, edit and delete options, an error gets thrown on developer console, example: Validation failed: Action 'Create root' in the owner 'ypof5gxzNq9mEeD7LnK67' not found.
When I compare the main branch configurations and the last release branch, the permissionTree actions on the main branch are not there
Steps to reproduce the behavior:

Go to 'https://function-adminportal-test.shesha.dev/dynamic/Shesha/permission-configurator'
Open developer console
Click on 'Create root'
Check the error on console
Click on the action buttons and see the error on console
Actual Results: In each action button, the error says the owner is not found

Expected behavior
When each action is clicked, it should be work as expected allowing a user to create a root, create child, edit and delete

Main Branch configurations

Release Branch Configurations

Hi @AlexStepantsov, same thing happens on Wizard, on step action configuration, the Wizard actions are not showing and on those actions, there was validate option added to validate a subform if rendered within the wizard. I'm not sure if it is related with this, if not I will create a separate card
Example from release branch

What we have now


'HOME' is not recognized as an internal or external command, operable program or batch file.

Installation process on Windows fails. After running npm install I get the following error:
><EMAIL_ADDRESS>recompile F:\black-screen
> HOME=~/.electron-gyp cd node_modules/ptyw.js; node-gyp rebuild --target=$npm_package_electronVersion --arch=x64 --dist
-url=https://atom.io/download/atom-shell

'HOME' is not recognized as an internal or external command,
operable program or batch file.

npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "F:\\black-screen\\node_modules\\npm\\bin\\npm-cli.js"
 "run" "recompile"
npm ERR! node v5.1.0
npm ERR! npm  v2.14.13
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>recompile: `HOME=~/.electron-gyp cd node_modules/ptyw.js; node-gyp rebuild --target=$npm_pac
kage_electronVersion --arch=x64 --dist-url=https://atom.io/download/atom-shell`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>recompile script 'HOME=~/.electron-gyp cd node_modules/ptyw.js; node-gyp rebui
ld --target=$npm_package_electronVersion --arch=x64 --dist-url=https://atom.io/download/atom-shell'.
npm ERR! This is most likely a problem with the black-screen package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     HOME=~/.electron-gyp cd node_modules/ptyw.js; node-gyp rebuild --target=$npm_package_electronVersion --arch
=x64 --dist-url=https://atom.io/download/atom-shell
npm ERR! You can get their info via:
npm ERR!     npm owner ls black-screen
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     F:\black-screen\npm-debug.log

npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "ins
tall"
npm ERR! node v5.1.0
npm ERR! npm  v3.3.12
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>postinstall: `npm run recompile`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'npm run recompile'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the black-screen package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm run recompile
npm ERR! You can get their info via:
npm ERR!     npm owner ls black-screen
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     F:\black-screen\npm-debug.log

Environment variables aren't implemented yet.


Unauthorised reasons for client

I'd like to have a way to know the reasons (invalid_token or timeout) for disconnection by unauthorised.
I have a situation where client gets unauthorised due to poor network connection. I'd like to my client to retry the authentication.
With the reasoning, I can have a logic like
if(reason=='invalid_token') return doLogout();
if(reason==='timeout') return doRetry();

now it is supported, check #42


add network module

add a module with network functionality from old toolkit

as in graphs.

added the retweet graph. can now add anything anyone wants.


Only create string_split if DB level doesn't have it

Fixes #23
Rather than creating the split function in all databases, only create it if it isn't present. This avoids

Unnecessary 3rd party code in a database
A race condition where 2 users being created at the same time result in the second one failing due to the split function being attempted to be created twice.

NB: I haven't compiled this code but have tested the logic in a SQL Azure database and adjusting the compatibility level.
alter database test set compatibility_level = 120
go
if exists (select compatibility_level FROM sys.databases where name = db_name() and compatibility_level < 130)
begin
	print 'will fail'
	SELECT value FROM STRING_SPLIT('1,2', ',')
end

alter database test set compatibility_level = 150
go
if exists (select compatibility_level FROM sys.databases where name = db_name() and compatibility_level < 130)
begin
	print ''
end
else
begin
	print 'will work'
	SELECT value FROM STRING_SPLIT('1,2', ',')
end

Thanks for the PR, @rlaveycal. Do you have a similar fix for #21? You seem to have more control over SQL Server versions than me :smile:


Plugin doesn't work with Bazel 1.0.0rc2

After upgrade of Bazel from 0.29.1 to 1.0.0rc2, intellij plugin doesn't work any more. To reproduce, clone recursively gerrit from this commit (b02962142671ff8d933f2d81a3d5aaa6558065c9) and try to import it in IntelliJ.
Bazel Console log in 0.29.1: [1].
Bazel Console log on 1.0.0rc2: [2].
Particularly: the external dependencies are not detected on 1.0.0rc2:
[...]
Parsing build outputs...
Total rules: 2139, new/changed: 154, removed: 495
Reading IDE info result...
Updating target map
Loaded 154 aspect files, total size 1080kB
Target map size: 597
Reading jdeps files...
Loaded 0 jdeps files, total size 0kB
Reading package manifests...
Java content entry count: 1
Updating Jar Cache...
Prefetching files...
Refreshing files
Computing directory structure...
Committing project structure...
Workspace has 0 libraries

While all is fine on 0.29.1:
[...]
Parsing build outputs...
Total rules: 2139, new/changed: 2139, removed: 0
Reading IDE info result...
Updating target map
Loaded 2139 aspect files, total size 3789kB
Target map size: 597
Reading jdeps files...
Loaded 207 jdeps files, total size 354kB
Reading package manifests...
Java content entry count: 22
Updating Jar Cache...
Prefetching files...
Refreshing files
Computing directory structure...
Committing project structure...
Workspace has 287 libraries

Environment:
IntelliJ IDEA Ultimate 2019.2.2
Bazel plugin: 2<IP_ADDRESS>.5

[1] http://paste.openstack.org/show/775440
[2] http://paste.openstack.org/show/775441

The plugin containing this fix (https://github.com/bazelbuild/intellij/commit/5f03bde0f02f5d1693a4567dc129230420a30372) is expected to be available early next week.

@jin Any updates on this?

@davido maybe it should be closed since #1213 is closed


[VestedToken] The balance of a holder can be frozen with a stalker-type attack (Already mitigated by v1.0.6)

Zeppelin v1.0.6 already mitigates the issue with solution 3 (see below). A more permanent and elegant solution is needed.
TL;DR: A malicious actor could freeze the balance of a holder (blocking them from transfering their hard-earned tokens) pretty cheaply.
Attack description:
Given how many decimals tokens normally use, the minimum transferable (and therefore grantable) amount is price is almost 0. Given that the logic for checking how many tokens has a holder vested (done in every transfer) involves iterating its grants array, in the case this array is sufficiently large, the transaction can run out of gas before completing, resulting in the holder not being able to transfer tokens.
Attack flow:

Attacker acquires x tokens.
Attacker transfers victim the smallest amount of tokens with grantVestedTokens(...)
Attacker repeats step 2 as many times as needed. Cost per transaction is the gas fee to perform a grant (less than 300k gas) plus the lost tokens to the victim (if tokens has many decimals, this cost is worthless)
When victim attempts to transfer his tokens, transaction goes 'Out of gas' while iterating through his multiple grants created by the attacker.

Solutions:
Possible (and complementary) solutions I can think of, in order of personal preference:

Only certain trusted whitelisted addresses can do token grants. There is a whitelister address that can give and remove the ability of addresses to create grants. This has been Aragon's approach for our own token.

In order to be able to receive grants, a certain holder needs to whitelist itself or whitelist the addresses she wants to be able to receive grants from.

Hard-code the maximum amount of grants a certain holder can receive (lower than what would cause an 'Out of gas' under reasonable limits). This way a holder can be stalked and lose the ability to receive more grants, but this way tokens will never be locked and can be transfered to a new account. For Aragon's usecase (we don't expect holders to have much grants, maximum amount is 2 right now) we have hard-coded it on 20 grants, which is way less than what would cause a problem.

Enforce a minimum bound on how many tokens have to be transferred in a grant. Doesn't really solve the problem, but could make the attack pretty expensive.

You can check MiniMeIrrevocableVestedToken.sol for the implementation of 1 and 3 in Aragon's token.
This problem was discovered by @jbaylina while auditing Aragon's code.

Thanks for the responsible report, giving us time to fix it and push a new release :)

Closing as the problem was more elegantly fixed by moving the vesting logic to a separate contract (TokenVesting)


Feature: ConfirmationActivity

Implement ways to call the ConfirmationActivity inside the WearOS App.

https://developer.android.com/reference/android/support/wearable/activity/ConfirmationActivity.html


Making model smaller

Thanks for your outstanding work. I tried the code and it works great. I have one question, is there some way (here or during training) to make the code smaller (as for memory  and computation)? Of course the accuracy will be lower but I would like to run it on some embedded device.

Hi Pawel, thanks for your interest. I havent tried running it on any other devices but you could try replacing I3D backbone with something smaller, use shorter/smaller input videos or do some quantization with tensorRT.


Prodmon PanelPlot

Timeseries improvements for PanelPlot:

Timeseries binning ops, so you can setup PanelPlots that automatically rebin when you zoom in
Fixes to zooming and mutations when x_domain is timestamps. Synchronized zooming on time axis now works
Don't zoom on an axis if its a sum/count aggregation (see comments in PanelPlot.tsx)
Better client side mutation support
Some improvements to SelectEditor (not used in this PR)
Two notebooks: MonitorPanelPlot and MonitorPanelPlotGeneral. We can reorganize these later.

More comments here
https://www.loom.com/share/969b61eff4ef4f0faf367b4791e7c3c0?sid=e34b2752-ecc7-42bc-852d-26748bf37c7e


[Feature]: enable code-wrapping for shiki-highlighting

What problem does this feature solve?
It was possible to enable wrapping with shiki-highlighting by conditionally adding "white-space: pre" to the code element.
However, this could cause breaking changes for people that don't want this style applied to their shiki codeblock. Alternatively, a data attribute could be attached to the element, and the user can apply css targeting it.
What does the proposed API look like?

If the code block should be wrapped, apply a data-rp-code-wrapped=true attribute to the element.

The user can write custom CSS for that data-attribute.

code[data-rs-code-wrapped="true"] {
  white-space: pre-wrap;
}

Alternatively, always apply the white-space style for them, but allow it to be overridden. Or do both strategies; always apply the white-space style, but add a data-attribute that's easy to override the default styles from CSS.

That makes sense too, and I think there should be a specific class that's applied when the code is wrapped. e.g. rspress-shiki-code-wrapped.

I meat this issue also, and defaultWrapCode + Toggle code wrap button does not work for shiki in this case.


Created  Word Ladder 2 in C++

It is Most Difficult Problem of GeeksforGeek and It is Problem related to Graph Not of String It is solved using BFS
It is Most Difficult Question
I solved it
It Gives Time Limit Exceeded In Leetcode
Given two distinct words startWord and targetWord, and a list denoting wordList of unique words of equal lengths. Find all shortest transformation sequence(s) from startWord to targetWord. You can return them in any order possible.
Keep the following conditions in mind:
A word can only consist of lowercase characters.
Only one letter can be changed in each transformation.
Each transformed word must exist in the wordList including the targetWord.
startWord may or may not be part of the wordList.
Return an empty list if there is no such transformation sequence.

Hi, merge this repository  ,I want to do my DSA and Contribution together


ruff: Fix S108 Probable insecure usage of temporary file

This is all debugging and test code, but it will be good to have this rule enforced going forward.

Nice, merged, thanks @andersk!


Types don't get infer on client

Hey @w3cj  I watched the video and loved the starter, I tried using it in  a monorepo like setup, but the types of the app router don't get infer correctly in the client which is just a vite react application, wondering if you have any workaround it?
using somehting like this
import { Hono } from 'hono'
import authors from './authors'

const booksApp = new Hono()
  .get("/", (c) => c.json({ result: "list books" }))
  .post("/", (c) => c.json({ result: "create a book" }, 201))
  .get("/:id", (c) => c.json({ result: `get ${c.req.param("id")}` }));

const app = new Hono()

const routes = app.route('/authors', authors).route('/books', books)

export default app
export type AppType = typeof routes

this does infer the types correctly, but only infers books, routes ans not the authors, because it lives in another file. wondering if you have any idea as to why that might be?

but then for books you can see that it does get infer correctly, since its in the same file. I also tried openAI and that just doesnt give any inference at all, any suggestions?
Thank you!

Can you show the authorsApp export? You need to make sure that the exported value includes the chained methods, just like the booksApp variable.
Notice how in my tasks example, the exported router is the full chain, not just the hono app: https://github.com/w3cj/hono-open-api-starter/blob/main/src/routes/tasks/tasks.index.ts#L13

yes, of course. I am chaining them similar to the books one. Only difference is that it is in another file

Ah gotcha. The calls need to be one after another like new Hono().get().post().get() etc. otherwise you lose the type information.
So this needs to be:
const app = new Hono()
  .get("/", ...)
  .post("/", ...)
  .get("/:id", ...)

export default app;

I was following this https://hono.dev/docs/guides/best-practices, guess it shouldn't be as the docs in here.
this does in fact get the types correctly.  ```
//GETS TYPES CORRECTLY
const app = new Hono()
.get("/", ...)
.post("/", ...)
.get("/:id", ...)
export default app;

Would you have any idea why then for example when using the setup you have, exactly the same the client is unable to get the type correctly?
![image](https://github.com/user-attachments/assets/17826a4b-96b9-4f38-82c7-c900694642f3)
![image](https://github.com/user-attachments/assets/69f8f2b6-a1cf-41cf-bcc5-265abf7e9295)

Not sure, but in a typically monorepo setup, the dependent package folders are next to each other, not nested. Then instead of creating typescript aliases to the other projects, the projects list each other as dependencies and can import directly from the project package name.
For a proper setup, checkout workspaces: https://pnpm.io/workspaces
Something else to try, if you can get your server code building with typescript (with declaration files), you can import the built declaration type directly into the frontend.

Not sure, but in a typical monorepo setup, the dependent package folders are next to each other, not nested. Then instead of creating typescript aliases to the other projects, the projects list each other as dependencies and can import directly from the project package name.
For a proper setup, checkout workspaces: https://pnpm.io/workspaces
Something else to try, if you can get your server code building with typescript (with declaration files), you can import the built declaration type directly into the frontend.

Hey Cj. Thank you I will try to change it to a monorepo setup either using what you shared or turborepo and see if the issue still occurs :)


[Feature Request] Uber implementation

I'm not sure if Uber will be possible.  Check the issue thread from ng-cordova-oauth for Ionic 1:
https://github.com/nraboy/ng-cordova-oauth/issues/247
Best,

Oh okay. Thanks for the quick heads up.


[BUG] "Explore Rankings" from Map Explorer broken with "Per Capita" active

Describe the bug
When using the Map Explorer, an "explore rankings" link is available on the bottom right of the map. Clicking this works correctly when "Per Capita" is not clicked, but incorrectly when it is.
To Reproduce
Browser: Google Chrome
Version 103.0.5060.64 (Official Build) (64-bit)
Working case (Per Capita disabled)
Map Explorer: https://datacommons.org/tools/map#%26sv%3DGiniIndex_EconomicActivity%26pc%3D0%26denom%3DCount_Person%26pd%3DEarth%26ept%3DCountry
Rankings: https://datacommons.org/ranking/GiniIndex_EconomicActivity/Country/Earth?
Buggy case (Per Capita enabled)
Map explorer: https://datacommons.org/tools/map#%26sv%3DGiniIndex_EconomicActivity%26pc%3D1%26denom%3DCount_Person%26pd%3DEarth%26ept%3DCountry%26domain%3D2.5133009106635767e-8%3A0.002044019790152496%3A0.004088014447295885
Rankings: https://datacommons.org/ranking/GiniIndex_EconomicActivity/Country/Earth?&pc=1
Steps to reproduce the behavior:

Go to https://datacommons.org/tools/map#%26sv%3DGiniIndex_EconomicActivity%26pc%3D0%26denom%3DCount_Person%26pd%3DEarth%26ept%3DCountry
Click on "explore rankings"
Observe the page load properly.
Go again to https://datacommons.org/tools/map#%26sv%3DGiniIndex_EconomicActivity%26pc%3D0%26denom%3DCount_Person%26pd%3DEarth%26ept%3DCountry
Enable "Per Capita"
Click on "explore rankings"
See empty page with message "There is no ranking data available."

Expected behavior
Ranking explorer should work for per capita
Screenshots

Additional context
Viewing the ranking explorer in "per capita" seems to be done by appending ?&pc=1 to the URL

Another ranking that breaks with per capita:
https://datacommons.org/ranking/Median_Income_Person/State/country/USA?&pc=1&unit=USDollar

I don't think this is reproduce able in new UX


Add ImagingExtractorDataChunkIterator

Motivation
ImagingExtractorDataChunkIterator is a new data chunk iterator for ImagingExtractor objects that uses the GenericDataChunkIterator class to enable buffering over multiple frames. Primarily it can be used for writing imaging data to an NWB File.
Notes / questions:

ImagingExtractorDataChunkIterator buffers over multiple frames, but cross-frame chunking for smaller image sizes is not possible until ImagingExtractors enable retrieving frames with selected pixel range (i.e. not only frame indices but also pixel by pixel indices) -- until then, even if  ImagingExtractorDataChunkIterator enables selection for all dimensions (not only the first dimension) ImagingExtractor.get_video() would anyhow return the full image size.

Evaluate performance improvement over DataChunkIterator
TODO: timeit to check performance improvement over the previous implementation

GenericDataChunkIterator asserts that chunk_shape evenly divides the buffer_shape. ImagingExtractorDataChunkIterator uses default chunk_shape retrieved from the parent class, which might not evenly divide the buffer_shape that was calculated here.
Resolve #518
How to test the behavior?
TODO: add more unittests
test_imaging_extractor_data_chunk_iterator()

Checklist

[ ] Have you checked our Contributing document?
[ ] Have you ensured the PR description clearly describes the problem and solutions?
[ ] Have you checked to ensure that there aren't other open or previously closed Pull Requests for the same change?
[ ] If this PR fixes an issue, is the first line of the PR description fix #XXX where XXX is the issue number?

ImagingExtractorDataChunkIterator buffers over multiple frames, but cross-frame chunking for smaller image sizes is not possible until ImagingExtractors enable retrieving frames with selected pixel range (i.e. not only frame indices but also pixel by pixel indices) -- until then, even if ImagingExtractorDataChunkIterator enables selection for all dimensions (not only the first dimension) ImagingExtractor.get_video() would anyhow return the full image size.

You should be able to chunk over any sub-pixel region as long as the number of frames in that chunk evenly divides the number of frames in the buffer (though it's typical to figure out the chunk shape first, and then multiply that).
If you meant buffering over sub-pixel regions, yeah that's not supported until ROIExtractors supports it, but this iterator is primarily meant for writing the data to a TwoPhotonSeries in an NWBFile, so we do want to extract all the data.

GenericDataChunkIterator asserts that chunk_shape evenly divides the buffer_shape. ImagingExtractorDataChunkIterator uses default chunk_shape retrieved from the parent class, which might not evenly divide the buffer_shape that was calculated here.

Let me know what exact error you get there for what exact combination of shapes and we can try to debug this.

GenericDataChunkIterator asserts that chunk_shape evenly divides the buffer_shape.

@CodyCBakerPhD what if a dimension has a length that is prime?

@weiglszonja It's also worth taking a look at how the MovieDataChunkIterator resolved these issues, since the API is quite similar between the two: https://github.com/catalystneuro/nwb-conversion-tools/blob/main/src/nwb_conversion_tools/datainterfaces/behavior/movie/movie_utils.py#L145

As derived in our meeting earlier

The tests are currently failing because I have hdmf==3.2.1 (listed in requirements-full.txt) while the test dependencies are installed from requirements-minimal.txt which permits having newer versions of hdmf (hdmf>=3.2.1).
This assertion error message is different in the newer version (hdmf==3.3.2):
https://github.com/hdmf-dev/hdmf/blob/0e50852145bbf9a4676b6edc936317f882f9a47e/src/hdmf/data_utils.py#L232
@CodyCBakerPhD, should I make the changes based on the newer version of hdmf while also updating the package version in requirements-full.txt to match what is in the minimal or is it harmful?

@weiglszonja hdmf version is bumped in https://github.com/catalystneuro/nwb-conversion-tools/pull/592 as well, you can mirror it here in requirements-full no problem.
For testing, what you can do is @pytest.mark.skip that particular assertion test whenever the detected current version of hdmf is <3.3.2. Let me know if you have questions on how to do that. I'd also add a test likewise to be run only if >=3.3.2 that uses the new assertion message.

ah okay, I'll try it, thanks @CodyCBakerPhD!

@CodyCBakerPhD I moved the class to tools/roiextractors, and also moved the tests to tests/test_internals/test_imagingextractordatachunkiterator.py

Should we close this @weiglszonja ?

Closed as it was merged in https://github.com/catalystneuro/neuroconv/pull/54


fix:    wordwrapping

Some words in the Thunderbird and MySQL tutorial are wrapped/separated so that one connected word shows up in two lines :confused: ; any ideas how to fix it? @DevVersion @Lordnoname

@gilgda Try to use the word-wrap property in css.

Fix by pr #85


[PrimaryTextCard-my-calendar-plan]:[Suddenly in our dev and test environment the card view is not showing the formatted text and image]

Suudenly from today the card view from the solution which has markdown to format text is showing just plain text. Can anyone has any idea why is this happening. In other test and prod environments it is working fine.

From 9th Dec 2022 onwards in our test environment also the card view is not working. It is being displayed as shown in above image.

@PanchamiM Thanks for sharing this. To help triage it would help if you could give us some additional information. Is this on your SharePoint home site in the browser or Teams (web or browser or mobile). What version of SPFx are you using?

@dcashpeterson Below are the details
Yes, the cards are placed in sharepoint home site and also the issue is in teams(web/browser)
SPFX Version - 1.13

Thanks for the update. @joaojmendes do you have some time to look at this issue?

@PanchamiM the Markdown is not supported in teams or in Viva Connection in Teams App (mobile)

@joaojmendes Last week till monday the markdown was working fine in Teams Viva Connection. Now it stopped working in both teams and Browser. This issue is happening in dev and test environment.
SPFX Version - 1.13
Non Working environment - Dev and test
Non Working host - SharePoint home page(tested in desktop browser), Teams Viva connection

I never got this work on viva connections I know that we have some problems with markdown on teams app.
Here on picture on my mobile .  The solution is remove the markdow from cardview.
Thanks!

De: PanchamiM @.>
Enviado: segunda-feira, dezembro 12, 2022 5:00 AM
Para: pnp/sp-dev-fx-aces @.>
Cc: João Mendes @.>; Mention @.>
Assunto: Re: [pnp/sp-dev-fx-aces] [PrimaryTextCard-my-calendar-plan]:[Suddenly in our dev and test environment the card view is not showing the formatted text and image] (Issue #111)
@joaojmendeshttps://github.com/joaojmendes Last week till monday the markdown was working fine in Teams Viva Connection. Now it stopped working in both teams and Browser. This issue is happening in dev and test environment.
SPFX Version - 1.13
Non Working environment - Dev and test
Non Working host - SharePoint home page(tested in desktop browser), Teams Viva connection
—
Reply to this email directly, view it on GitHubhttps://github.com/pnp/sp-dev-fx-aces/issues/111#issuecomment-1345878090, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AC7YHVJTCUGYB32GWDO5FO3WM2WOHANCNFSM6AAAAAASXYWVZI.
You are receiving this because you were mentioned.Message ID: @.***>

@joaojmendes If we remove markdown we will not get the desired UI output. Is there any way to achieve the UI for card view as shown in sample.

No, at this moment .
From: PanchamiM @.>
Date: Monday, 12 December 2022 at 11:29
To: pnp/sp-dev-fx-aces @.>
Cc: João Mendes @.>, Mention @.>
Subject: Re: [pnp/sp-dev-fx-aces] [PrimaryTextCard-my-calendar-plan]:[Suddenly in our dev and test environment the card view is not showing the formatted text and image] (Issue #111)
@joaojmendeshttps://github.com/joaojmendes If we remove markdown we will not get the desired UI output. Is there any way to achieve the UI for card view as shown in sample.
—
Reply to this email directly, view it on GitHubhttps://github.com/pnp/sp-dev-fx-aces/issues/111#issuecomment-1346317116, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AC7YHVNVT7CXSFQNCMNDCNLWM4EANANCNFSM6AAAAAASXYWVZI.
You are receiving this because you were mentioned.Message ID: @.***>

Any alternative solution for this issue.

Then will this solution will be removed from github as it is not working with markdown.

@joaojmendes the markdown doesn't work but the sample is valid for the references to the calendar APIs. How do you feel about me adding a note at the top about the markdown. This is a recent change as I know this worked when I approved the PR in the first place.

Hi Derek,
For me is ok, make sense. I will change it .
Thank you.
João
Enviado a partir do Outlook para iOShttps://aka.ms/o0ukef

De: Derek Cash-Peterson @.>
Enviado: Friday, December 16, 2022 11:36:54 AM
Para: pnp/sp-dev-fx-aces @.>
Cc: João Mendes @.>; Mention @.>
Assunto: Re: [pnp/sp-dev-fx-aces] [PrimaryTextCard-my-calendar-plan]:[Suddenly in our dev and test environment the card view is not showing the formatted text and image] (Issue #111)
@joaojmendeshttps://github.com/joaojmendes the markdown doesn't work but the sample is valid for the references to the calendar APIs. How do you feel about me adding a note at the top about the markdown. This is a recent change as I know this worked when I approved the PR in the first place.
—
Reply to this email directly, view it on GitHubhttps://github.com/pnp/sp-dev-fx-aces/issues/111#issuecomment-1354603045, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AC7YHVMIWKSPXZI564ISROTWNRH5NANCNFSM6AAAAAASXYWVZI.
You are receiving this because you were mentioned.Message ID: @.***>

@joaojmendes I added a note to the PR while I was merging a few other things so I am going to close this. Feel free to submit a PR if you want to edit what I did.


Nola's fix for GVRScene.removeAllSceneObjects

GearVRf-DCO-1.0-Signed-off-by: Mihail Marinov<EMAIL_ADDRESS>

@NolaDonato There is a release_v3.0.1 branch. You can select it as a base when creating a pull request.
Technically we might have to create a 3.0.2 release.

@NolaDonato @thomasflynn Is this needed? Or should I close it?

@nola?

Am I supposed to do this pull request against a different branch?

I am just asking do we think it is necessary to merge this into the 3.0.1 branch (and then create a point release).

I defer to Tom on this one. This fix is for Nathipha who is still trying to use Eclipse. If she has successfully migrated to AS we don’t have to do it. If she hasn’t gotten that working yet then we should make the point release.

I will close this one tomorrow if there are no comments. We can always re-open it if deemed necessary.


osbuild: experimentally switch to fastjsonschema

Just a quick draft to see what it would take to move to fastjson schema.
Tony of busywork as the errors are different

Something to also take into account is whether it's available in the RHEL versions we want to support. I'm only seeing it (python3-libfastjsonschema) in the rhel10 buildroot right now.

I close this one as there is no immediate action required/possible. It's unclear if this is needed but if it is we can just reopen it :)


Regex Parsing errors for MyPy messages with full path on Windows

I'm running MyPy 0.730 and Sublime Text 3.2.2, Build 3211 on Windows.
The type errors being reported by MyPy are not shown. This is because the mypy error is not caught by the regex as the drive letter and colon is in the path, and the : makes the match fail.
SublimeLinter: #42 linter.py:1175     mypy: output:
  C:\test.py:6:13: error: Argument 1 to "myfun" has incompatible type "str"; expected "int"
  Found 1 error in 1 file (checked 1 source file)
INFO:SublimeLinter.lint.linter:mypy: output:
  C:\test.py:6:13: error: Argument 1 to "myfun" has incompatible type "str"; expected "int"
  Found 1 error in 1 file (checked 1 source file)
SublimeLinter: #42 linter.py:1227     mypy: No match for line: 'C:\test.py:6:13: error: Argument 1 to "myfun" has incompatible type "str"; expected "int"'
INFO:SublimeLinter.lint.linter:mypy: No match for line: 'C:\test.py:6:13: error: Argument 1 to "myfun" has incompatible type "str"; expected "int"'
SublimeLinter: #42 linter.py:1227     mypy: No match for line: 'Found 1 error in 1 file (checked 1 source file)'
INFO:SublimeLinter.lint.linter:mypy: No match for line: 'Found 1 error in 1 file (checked 1 source file)'
SublimeLinter: sublime_linter.py:539  Linting 'test.py' took 0.58s

I've replaced the regex with:
r'^[^\.py]+\.py:(?P<line>\d+):((?P<col>\d+):)?\s*(?P<error_type>[^:]+):\s*(?P<message>.+)'
On my local machine as temporary workaround until a more stable patch is accepted.


Finder is needed in method binds to cast to the desired type

All tests were passing before, but the generated code would fail to compile when the finder was used within a method binding.

I rebased, and added the more specific check for adding the final modifier to the finder.

Thanks!


added integration tests framework and test for Hive-Hcatalog

@aniket486 Thanks for review - I made some changes, PTAL

@karth295 I moved the test to the init-action directory as you suggested, PTAL.

Awesome, thanks! Excited to get all the tests in.

@karth295 is there something blocking you from merging this PR? :)

Merging this PR to unblock further progress. Lets make follow up changes in subsequent PRs.


[backport] 2.1 check capabilities for cert-manager changes

backport for #23691

@cloudnautique looks like there is something unrelated wrong with the tests.


Update google-cloud-pubsub to 1.132.0

About this PR
📦 Updates com.google.cloud:google-cloud-pubsub from 1.107.0 to 1.132.0
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.google.cloud", artifactId = "google-cloud-pubsub" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.google.cloud", artifactId = "google-cloud-pubsub" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #414.


Support docker-compose v2

Before proceeding

[X] I didn't find a similar issue

Problem
Error occurs when
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the services key, or omit the version key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

Solution (if you have one)
Werf runs docker-compose up to run compose, but in v2 we use docker-compose-plugin which runs with docker compose up command.
So we need to detect compose version and if version >= 3.8 werf should call docker compose up instead of docker-compose up.
Additional information
As workaround create wrapper which calls docker compose for example in /usr/local/bin/docker-compose:
#!/bin/bash
exec docker compose "$@"

Since v1.2.283 we use docker compose.

Hi @ilya-lesikov! I think I just had a similar issue while building werf/website following these instructions with werf v2.3.3. Running task compose:up resulted in:
Error: docker-compose: exec: "docker-compose": executable file not found in $PATH

I had docker-compose-v2 installed in Ubuntu, but no docker-compose installed. Using this workaround (creating a simple /usr/local/bin/docker-compose wrapper to exec docker compose "$@") helped.

@shurup Fixed in #6207

Great, thank you!


delete specific document by id - failed

Bug Information
trying to delete a single document by id.
        AzureData.deleteDocument ("golfer_c44a0553-b3fd-4236-aa40-0d7c0d95a533", "sogocollection", "sogodb") {
            Log.i("AZURE", "delete worked? ${it.isSuccessful} ${it.error}")
        }

Actual Behavior
the callback error message from above is:
delete worked? false
{"code":"BadRequest","message":"Message: {"Errors":["The partition key supplied in x-ms-   partitionkey header has fewer components than defined in the the collection."]}\r\nActivityId: 65b6f251-68c2-4450-83ef-fba3aa2d09ef, Request URI: /apps/8e606766-2bd8-4f11-a1c3-34b3c65ac48a/services/8f43c3c6-d642-4eae-9102-db1d938d1d17/partitions/cae4ccad-0a7e-4a8f-bba5-7d4b34b2a4b2/replicas/131938222164198417p/, RequestStats: \r\nRequestStartTime: 2019-02-07T01:43:37.7284573Z, RequestEndTime: 2019-02-07T01:43:37.7284573Z, Number of regions attempted: 1\r\nResponseTime: 2019-02-07T01:43:37.7284573Z, StoreResult: StorePhysicalAddress: rntbd://cdb-ms-prod-australiaeast1-fd4.documents.azure.com:14034/apps/8e606766-2bd8-4f11-a1c3-34b3c65ac48a/services/8f43c3c6-d642-4eae-9102-db1d938d1d17/partitions/cae4ccad-0a7e-4a8f-bba5-7d4b34b2a4b2/replicas/131938222164198417p/, LSN: 337, GlobalCommittedLsn: 337, PartitionKeyRangeId: 0, IsValid: True, StatusCode: 400, SubStatusCode: 1001, RequestCharge: 0, ItemLSN: -1, SessionToken: 337, UsingLocalLSN: False, TransportException: null, ResourceType: Document, OperationType: Delete\r\n, SDK: Microsoft.Azure.Documents.Common/<IP_ADDRESS>"}

This looks like it was also due to the partition key change.  Should be fixed via #86 and in v0.2.0.  @SogoGolf would appreciate if you can confirm in latest.

Thanks @NateRickard I'll test this tom.

hi @NateRickard i tested this and came across one issue. firstly deleting a doc that does have a partition key value, works fine.
however trying to delete a doc that has NO partition key value fails, with error "code":"NotFound" "message": "Entity with the specified id does not exist in the system.
the interesting thing to me was that the nodejs API (which i used to pop a couple of test docs into the collection) let me add documents with NO partition key value, to a collection where a partition key has been specified (which is now required anyway). my immediate thought was shouldn't the nodejs api not allow me to add a document, when a partition key property/value, is not provided ? or if this is allowed, then the Android api should handle this scenario.
here's a pic of what i mean:

that doesn't sound right re: the node sdk behavior.  A collection that has a partition key defined should give you the same error you saw in #75 ("The partition key supplied in x-ms-partitionkey header has fewer components than defined in the the collection.").  I wonder if they're sending a blank string as the value in those cases or something?
If you want to try deleting a doc w/o a partition key you would need to define a collection w/o one - which you can only do via the SDK(s) now.  Partition key-less tests can be found here, and we do have a passing test for deleting by Id from a collection w/o a partition key.

totally agree re the nodejs sdk not sure why it was allowing that. i think nodejs api caused the issue in this example.


Retrieve full error message from type-erased anyhow::Error

I am dealing with an error enum that has a catch-all variant that uses Box<dyn Error + Send + Sync + 'static>. This works with anyhow::Error just fine (with into() or ?), but there is a problem when reporting the error. When showing the error message, the code uses Display or to_string() on the Box<dyn Error>. With e.g. an IO error this is OK, but with anyhow::Error it prints just the outermost context. In that particular place I need it to print the full list of causes as well as the root error.
I tried the following:

call Error::downcast_ref() to downcast Box<dyn Error + ...> to anyhow::Error - doesn't compile because anyhow::Error doesn't implement std::error::Error.
specify the alternate format, format!("{:#}", err) - doesn't appear to make a difference in the output.
use the debug output, format!("{:?}", err) - works, but only for anyhow::Error - for all other errors, it prints the low-level output meant for debugging, and I can't detect whether the box holds an anyhow::Error.
construct anyhow::Error from the box, and then use the debug output - doesn't compile because the constructor consumes the box, and I only have a reference to the box. (I need to generate the message from Display::fmt and Debug::fmt on my error, where I get &self.)

I could easily fix the problem if I could do any of the following:

use one of the functions provided by the Error trait to obtain the full error message.
downcast &Box<dyn Error + ...> to Option<&anyhow::Error> (returning Some if anyhow::Error is inside).
given a Box<dyn Error + ...>, detect whether an anyhow::Error is inside;

Is that possible, or is there some other approach that I haven't considered to print the full error information?

Closing the issue, as the approach #2 (alternate format) actually works.

The easiest would be to store your catch-all as anyhow::Error rather than Box<dyn Error + Send + Sync + 'static>.
Alternatively you can iterate causes of an arbitrary error like this:
use anyhow::anyhow;
use std::error::Error;

fn main() {
    let err = anyhow!("one").context("two").context("three");
    print(&err.into());
}

fn print(err: &Box<dyn Error + Send + Sync + 'static>) {
    for e in anyhow::Chain::new(err.as_ref()) {
        println!("{}", e);
    }
}

The easiest would be to store your catch-all as anyhow::Error rather than Box<dyn Error + Send + Sync + 'static>.

Indeed, I have that implemented on the development branch, and it of course works perfectly. The consequence it that it bakes anyhow::Error into the error type, which some see as a downside.

Alternatively you can iterate causes of an arbitrary error like this:

Thanks, I'll use this if we decide to keep Box<dyn Error>. It does requires reimplementing the "caused by" and the enumeration pretty-printing, but that's not a big deal.

It does requires reimplementing the "caused by" and the enumeration pretty-printing

To expand on this, I see value in being able to obtain the whole message exactly as anyhow would format it, given a Box<dyn Error>. (There is also #119 which requests an explicit API for such formatting on anyhow::Error itself.) It provides interoperability with code that aims to support the use of anyhow in callbacks and such, but still uses Box<dyn Error> in variants of its error enum. To avoid namespace pollution, the formatting function could perhaps be an associated function on anyhow::Chain.
If you don't think such a function is desirable, feel free to close this issue, since the problem I was having is resolved with your last comment.

I'll go ahead and close this. https://github.com/dtolnay/anyhow/issues/123#issuecomment-725557849 are still the 2 recommended approaches.


Release highlights for the week ending January 14 2022

Release highlights for the week ending January 14 2022
Please remember to

[x] Give the PR a meaningful title -- it will be shown in the release notes
[x] Add (or remove) user questions associated with any updated docs

@giantswarm/product-owners this is the PR for the first weekly provider-independent announcement of 2022 this next Friday. Please review the PR and let's collaborate here to add/remove/review release notes (from a customer value point of view) that are worth to be notified to customers. Contributions accepted until Friday 1pm CET

@stone-z  @JosephSalisbury  @PrashantR31 @alex-dabija please have a look  at the weekly announcements text and please make the relevant changes where needed. If I am missing someone to ping, please do let me know :)

I have something to add, PR incoming :D

@marians I've included your suggestion, please have a final look, review and approval :)

@gianfranco-l plz wait for https://github.com/giantswarm/docs/pull/1271 to merge

@JosephSalisbury I can't see your proposed changes: can you please do suggestion directly here?


handle rotation matrix ambiguities

While converting some benchmarks we were finding some issues with quadric surface rotations. Apparently, in the case of 45 degrees rotation and degenerate eigenvalues of the coefficient matrix numpy does not know how to unambiguously order the eigenvectors in the rotation matrix. @davidepettinari and I think we have found a solution to this and we added a function able to reorder the rotation matrix according to two criteria. First the eigenvectors are ordered so their element with the highest absolute value stand on the diagonal. Then, if there is still ambiguity, it orders the ambiguous eigenvectors left in order to achieve orthogonality.
We went from this (not meshable):

To this (meshable):

Just rewrote the function to explicitly make sure the built rotation matrix is also right handed.


AGPUSH-1367 : add a new stripped json to string method

Fixing https://issues.jboss.org/browse/AGPUSH-1367
@edewit @matzew can you review ?

:100:

:+1:


11304.4 DEV update admiral to start gerritEventHandler service if gerrit auth providers are added

Shippable/pm#11304

this is done, closing.


[WIP] lit cheat sheet

See it here:
https://pr1355-6a15f47---lit-dev-5ftespv5na-uc.a.run.app/articles/lit-cheat-sheet/
This PR also adds lazy loading to lit-example via intersection observer so that we do not load the 300kb TS worker a million times per page and so that it can cache.

Whoa, awesome!!!
I'm reading through now and my first/only comment is that some of the example are really long compared to their main topic. I think the Templating section has the most of this. eg, the event listener expression example could just be a single button and an output element (similar to the common counter example) without validation, etc.
It would be great to get in small Task and Context example too, and may an ElementInternals thing (custom state?).

I can definitely contribute to refining this branch! This is such a good start.

let me debug get this working in the preview first!

lol it was a real bug and not a flake. good job, tests!

I've read through it and it will be a gold mine. I have the same thought as Justin about section length.
One thing that stod out was the mention of running on the server in the lifecycle section. Seems a little premature given that the SSR package is still in labs.  I think that the lifecycle section could be compacted into a table instead.
Would it be reasonable to include a short glossary section?
I have a couple of smaller suggestions with the text but I get the impression that we don't want to put these here but in a separate PR.

Thanks for the look-over Filimon! The nice thing about articles is that they have more of a chance to live as a living document, so lifecycle reference can change over time. Though I do think that this information is very useful for people trying to actually use our SSR package and we should strive to make it easier to use. I also agree with you and think that there needs to be some sort of "labs" warning near that

Could you write a page about Lit vs React? With comparisons all Lit + Signal solutions instead of React hooks.
resources:

https://codelabs.developers.google.com/codelabs/lit-2-for-react-devs#0
https://react.dev/reference/react/hooks
https://github.com/proposal-signals/signal-utils

Can I get another review? I'd like to get this out before thanksgiving or by cyber monday

I have looked it over but not at every detail as it is a lot to go through but this looks really good.
A common misconception is around converters is that they are run when the property is set. Your example does not make it worse as it is clear enough but maybe add a warning/note making that extra clear?
I think that a pattern around derived state is probably nice to have to. Maybe with get/set and with lifecycle? By no means a requirement though and easy enough to add eventually.
I have not worked enough with signals to have meaningful feedback.
Really well done!

Thanks for the suggestion @filimon-danopoulos, I added that note in custom attribute converters and I also added 4 examples for:

Derived Read-Only State

getters (nothing on setters for now)

Reconcile Values Between Reactive Properties

willUpdate()

Sync Reactive Property with Browser Features

update() RP + localstorage

Reconcile Values Between Reactive Properties and DOM

updated()

Sync Reactive Property with Browser Features
update() RP + localstorage

Why update and not updated?

@sorvell it happens before render and does not rely on the DOM. In particular the example uses localStorage and does some simple two-way syncing between the two

ping @justinfagnani @sorvell @augustjk for a review
If ready to merge, we should also prepare socials as I no longer have access

@sorvell thanks for the review. I think the only part that really needs a re-review are the changes to effect() since it's leaky and TIL about the signal-utils package


How can i change the design support Library??

Am Currently using support library 25.3.1 in my app how can i change the support library of this LIBRARY to match the one in my App??
@yavski

How can i change this:
https://github.com/yavski/fab-speed-dial/blob/master/library/build.gradle
to the current version of Support Libraries??
@paour @yavski @alanjcaceres @i906 @dstd  Please help

You don't have to, Gradle will use the highest version of all dependencies. Are you saying there is a conflict or bug with this lib when used with the latest Support lib?

Yes;
This mesaage:
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.3.1, 23.3.0. Examples include com.android.support:animated-vector-drawable:25.3.1 and com.android.support:cardview-v7:23.3.0
and the App takes about 5 secs before loading

I doubt this would cause a 5s startup delay, which you can diagnose with a variety of tools.
To avoid the warning, you can use Gradle androidDependencies to indentify where they're being pulled from, and include the latest version in your app's build.gradle if you think that's useful.

Thanks, for the info but i still don't understand why this message:

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.3.1, 23.3.0. Examples include com.android.support:animated-vector-drawable:25.3.1 and com.android.support:cardview-v7:23.3.0

is showing on my gradle page.
Should just ignore?

I have the same problem. I think it should not be ignored. I'm using vector icons in the menu items and If I run my app in a pre-Lollipop device, the item icons are not showing, only the floating action buttons.

@paour  @chacongalvez
I finally found a Fix.
The Library uses card_view library version 23.3.0
If you wanna see for yourself goto  \MyApp\.idea\libraries directory and you'll see the specific library that is out of line.
FIX: note the inappropriate library (in this case Card View), goto android studio and import the correct version instead (25.3.1 is latest).
Thanks

How about:
configurations.all {
    resolutionStrategy {
        force 'com.android.support:design:26.0.1'
    }
}

I mean, that pretty much works for any library you want to force into any build as long as the library doesn't involve breaking changes.

Please see pull request #74 (sorry for bad Groovy code, please help!)

Nevermind, I didn't really understand the Gradle system (I though this is a sub-project)

@Edge-Developer , i have the same issue here, how to fix this. importing the latest version of card-view does not fix the issue

go to  \MyApp.idea\libraries directory to which library/libraries is/are out of line.


Updated cdnjs link and fixed html

The previous URL is not accessible. I supposed the tag should be "script" instead of "link".

Thanks! It's fixed in master now! <3


LONDON11   |   Karla Grajales  |   Feature/wireframe - [Module-User-Focused-Data]   |   SPRINT 1

Learners, PR Template
Self checklist

[x]  I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
[x]  I have committed my files one by one, on purpose, and for a reason
[x]  I have tested my changes
[x]  My changes follow the style guide
[x]  My changes meet the requirements of this task

Changelist
Pull Request Description:
This pull request includes the provided wireframe structure and a brief overview of Git and its uses. The objective of this exercise is to effectively adhere to instructions when developing a product.
In this project, I explored various CSS concepts, including pseudo-classes, media queries, font style importing, and the use of external and dynamic icons.
I also learned how to fit images into a div, implement an onclick event to redirect to the next page using buttons, and the importance of properly naming classes for styling. Additionally, we emphasized the significance of using the alt attribute in the  tag to ensure accessibility when images do not render and the appropriate use of each element in the body.
Questions
Ask any questions you have for your reviewer.

@SallyMcGrath , thank you for your warm welcome. Your words made me very happy. I was hoping you could review my code, and you did. Thank you so much. I will work on your suggestions to improve my code.❤ definitely, I feel at home!

I tested and received this score. I will try to improve, but the Google font is causing some problems rendering the content.
@SallyMcGrath once again thanks for your recommendations and your lovely words! ❤


[#Livestream#] Spain vs Germany LIVE STream Free Online TV On 5 July 2024

Spain vs Germany LIVE commentary: Kick-off time, score, line-ups and Euro 2024 match preview as heavyweights clash in massive quarter-final.
GO LIVE==>>> CLICK HERE TO WATCH LIVE
STREAMING==>>> CLICK HERE TO WATCH LIVE
The Quarterfinal fixtures of the European Championships (Euro Cup 2024) have been finalised. France vs Portugal and Germany vs Spain matches will be a much-awaited contest for the football fans. The schedule for the 4th quarterfinal match will be decided after the Austria vs Turkiye pre-quarterfinal match, which starts at 12:30 AM IST.
Spain won all three of their group stage games and brushed aside Georgia in the last 16 (despite an early scare) as Luis de la Fuente’s free-flowing side are brave, relentless and create so many chances. Youngsters Lamine Yamal, Nico Williams and Pedri are the attacking heartbeat of this side, while Rodri knits everything together in midfield. Spain will take some beating and their only Achilles heel appears to be defending counters as they throw so many players forward.
Germany rode their luck against Denmark in the last 16 but got their in the end as Musiala, Havertz and substitute Wirtz overpowered the Danes. Julian Nagelsmann will be concerned with some of the defending he’s seen in their games against Switzerland and Denmark but Germany still ooze quality in midfield with Kroos and Gundogan in control. The hosts will be expected to step it up a gear in Stuttgart but this quarterfinal may well be the game between the two best teams in the competition.
Spain vs. Germany Match Info
Match Day: Friday, July 5, 2024
Match Time: 12:00 PM ET
Venue: Mercedes-Benz Arena
TV Channel: FOX
Streaming: FOX Sports
Hosts Germany are into the quarter-finals for the fourth time in the last five Euros thanks to a competition-leading 10 goals in their four games so far. Julian Nagelsmann’s men brushed aside Scotland 5-1 in the opening game before a 2-0 win over Hungary secured their place in the knockouts.
A late Niclas Füllkrug equaliser against Switzerland ensured they finished top of Group A and met Denmark in Dortmund, where Kai Havertz’s penalty and a third goal of the tournament for Jamal Musiala took him joint-top of the scoring chart and Germany through the last eight. Musiala’s place in the team is a given as he returns to his place of birth in Stuttgart. Havertz also appears nailed on, despite some calls for Füllkrug to start, although his record of four goals from the bench at major tournaments means he’ll likely remain a super-sub.
Bayer Leverkusen’s Florian Wirtz may come back into the team for Leroy Sané, while fellow double winner Jonathan Tah will probably also be restored at centre-back alongside Real Madrid’s Antonio Rüdiger following a one-game suspension. Rüdiger, VfB Stuttgart’s Maximilian Mittelstädt and Robert Andrich are all one booking away from missing a potential semi-final in Munich. Toni Kroos has spent the last decade in Spain so will know the opposition well as he looks to prolong his career a couple more games before retiring.
There are no suspension issues for Spain and only Nacho and Ayoze Perez had slight injury issues and both were unused substitutes against Georgia. There really aren’t many selection dilemmas for Luis de la Fuente as his starting team is playing well, while the likes of Dani Olmo, Ferran Torres and Joselu are all playing well off the bench when called upon.
Jonathan Tah is back from suspension and should come back in at center back, while Florian Wirtz did well off the bench and could replace Leroy Sane on the wing. Kai Havertz continues to be under pressure for his starting spot with Niclas Fullkrug playing so well off the bench, but Havertz was very good against Denmark and will surely start again.
Stuttgart will welcome these two teams which are arguably the top two favourites to go all the way and lift the trophy. Luis de la Fuente’s Spain have dazzled with their youthful, energetic attacking play despite not being seen as one of the top two or three teams when arriving at the Euros.
The winner of the four quarterfinal matches will qualify for the semifinal. If the winner in the quarterfinal is not decided in the regular 90 minutes then the play will spill into the extra time. If the winner is not chosen in the extra time, then the winner of the penalty shootout will unveil the semifinalist.
Spain and Germany face off in one of the most anticipated matches of Euro 2024. Both teams boast strong attacking records and resilient defences, making this clash a potential thriller. This quarter-final clash in Stuttgart on Friday promises to be a high-scoring affair with moments of individual brilliance, tactical battles, and potential defensive lapses, shaping the outcome of this must-watch encounter at Euro 2024.

spam


Consider returning an error from relationship function calls instead of panicking

Currently, relationship methods on a model will panic if such a method is called without the query containing a With clause for the relationship:
func (f Foo) Bars() (value []BarModel) {
	if f.RelationsFoo.Bars == nil {
		panic("attempted to access bars but did not fetch it using the .With() syntax")
	}
	return f.RelationsFoo.Bars
}

@steebchen and I discussed whether it would make more sense for these methods to return an error instead of panicking. While users should be encouraged to fix an issue like this in development, it's impossible for someone writing a helper function to know ahead of time that users will write their queries correctly before calling the helper. Additionally, having an error in the signature alerts users to the fact that they need to perform some steps ahead of time to ensure the function returns correctly.
Opening this issue for consideration, since this would be a breaking change.

An open question:
The current signature for optional fields is (v, ok). What should we do about that? Return an error ErrNull?

The current signature for optional fields is (v, ok). What should we do about that? Return an error ErrNull?

I would argue to keep this the way it is. If the end-user has already marked the field as optional, then the value being undefined is an expected outcome and not really an error.

I want to prevent the case of returning nil every time even though the user didn't fetch for it. Although I see your point.

In this case, I'd argue that nil is what the user would expect

However, then I think you might argue that instead of returning an error, we might just a nil pointer for required fields instead of erroring? Or do you think it should still return an error in that case?

@johnpena What do you think about my previous message?

If I understand correctly, you're suggesting that the existing API would stay the same, and there would be no panic, and instead the relation method would just return nil? If that's what you're suggesting, I think that's a reasonable change.

I ran into this too just now, what one can do is to just check the data first before accessing the data:
if portfolio.RelationsPortfolio.Transactions != nil {
	transactions = polar.ExpandTransactions(c, portfolio.Transactions())
}

I just ran into this as well, the panic is definitely unexpected behavior.
It could be nice to have a method Has<Relation>, for example HasTransactions() bool, to check whether they've been populated. I think the caller shouldn't have to be aware of the Relations field in order to check whether the relation has been fetched.
Otherwise returning nil for unfetched relations makes sense to me as well.

@abelanger5 Acknowledged, will re-consider this


Move Discovery YML to meltano.com to host

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/275
Originally created by @jschatz1 on 2019-01-10 18:40:03

Move discovery yaml to meltano.com for discovery.
related: https://gitlab.com/meltano/meltano/issues/263
cc @iroussos @mbergeron @bencodezen @derek-knox

View 13 previous comments from the original issue on GitLab


Lwigl Audio

Mac OSX El Capitan
WARNING:  140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.

Test with Lwigl AudioDeviceTest

Already reported in #3572


Bootstrap fixes

commit 35abbee97fa9a17b83126c3a6d901b449f2df397
Author: Lars Gierth<EMAIL_ADDRESS>Date:   Thu Jul 30 00:28:32 2015 +0200
ipfs: run ipfs init using one-shot container

Previously, when ipfs init hadn't been run yet, the
container would go into a restart loop, and thus
`docker exec` in that looping container would fail
to execute `ipfs init`.

License: MIT
Signed-off-by: Lars Gierth<EMAIL_ADDRESS>
commit 7842b7ce1e0def7b50ba17803231742d3cf6eba2
Author: Lars Gierth<EMAIL_ADDRESS>Date:   Thu Jul 30 00:27:22 2015 +0200
docker: pin to known-working docker-py 0.5.3

The latest is failing to recognize locally-built images
and always tries to pull them from the registry.

No idea why pip picked an old (but working) version
during the previous rebuild of pluto. Anyhow, I'm not
going to sink time into figuring out either of these
issues now.

License: MIT
Signed-off-by: Lars Gierth<EMAIL_ADDRESS>
commit 8da496b7251de1b924764f245b220d84aba2f21d
Author: Lars Gierth<EMAIL_ADDRESS>Date:   Wed Jul 29 03:57:28 2015 +0200
common: run apt-get update

In order to avoid hitting package versions which were removed
for security reasons, and such stuff.

License: MIT
Signed-off-by: Lars Gierth<EMAIL_ADDRESS>

@lgierth this LGTM, though i don't follow all the ansible magic well

I'm down for f2f review anytime -- on a sidenote, I'm very much down for moving to shell scripts, but not right now :)

I'm very much down for moving to shell scripts, but not right now :)

sounds good. btw, shell gets pleasant when we write simple programs to do the more complicated things in other languages. once we have ipget we can use it as a pseudo pkg mgr for any other tools we might need.


Add an missed package to requirements.txt

Add a missed package to requirements.txt
This PR also fixes linting issue based on the latest master of girder.

Hi @dorukozturk, could you help me review this PR?


Cannot import name 'ft2font' from 'matplotlib' on windows10

I am using a windows 10 machine and using Anaconda 4.7.12. i attempted to Import matplotlib.pyplot and got an error. It has been working fine until yesterday. I uninstalled and reinstalled anaconda, as well as uninstalling and re-installing matplotlib.
Error code on Jupyter notebooks:
--------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-ea90a94a94b6> in <module>
      1 import pandas as pd
      2 import numpy as np
----> 3 import matplotlib.pyplot as plt
      4 get_ipython().run_line_magic('matplotlib', 'inline')

~\AppData\Roaming\Python\Python37\site-packages\matplotlib\__init__.py in <module>
    203
    204
--> 205 _check_versions()
    206
    207

~\AppData\Roaming\Python\Python37\site-packages\matplotlib\__init__.py in _check_versions()
    188     # Quickfix to ensure Microsoft Visual C++ redistributable
    189     # DLLs are loaded before importing kiwisolver
--> 190     from . import ft2font
    191
    192     for modname, minver in [

ImportError: cannot import name 'ft2font' from 'matplotlib' (C:\Users\kpy\AppData\Roaming\Python\Python37\site-packages\matplotlib\__init__.py)

You have issues with your installation of Matplotlib.  You mention anaconda, but the traceback looks like you are using python installed from a different source (appstore or from python.org?).  I suspect the issue is that your kernel is using a different python than it was a few days ago.
I suggest moving the discussion about how to resolve the installation issues to https://discourse.matplotlib.org/c/community/install .

That was exactly the issue it is now debugged. Many thanks!


feat: Include libratbag

Reason for inclusion: Package not available from flathub; hardware enablement.
Add libratbag-ratbagd (https://github.com/libratbag/libratbag) to packages, required to configure various mice. A GUI (https://github.com/libratbag/piper) is available from flathub and does not need to be installed in the image, however without ratbagd it is nonfunctional.
Libratbag does not expose any GUI programs to the user and is "invisible" when installed. User which require its functionality are free to install piper from flathub. Its installed size amounts to 336.79 KB.

Not from a normal one, maybe from a rootful one, let me check.
But if we include things like htop, vim, and fzf we can definitely include this.

This looks good.
In the future we may also want to investigate adding OpenRazer which uses DKMS.

IMO:

If it's available as a flatpak: MUST NOT be included.
If it works in a distrobox: SHOULD NOT be included (exceptions apply, e.g. vim,  for editing /etc files on the host)
If it only works on the host (mostly DE and driver stuff): MAY be included.

As most of the "hardware enablement" packages, aka drivers and adjacent stuff like this one, are pretty small I would be in favor of a broad inclusion policy. Most users understandably don't want to muck about to get their gamepads/mice/laptops/etc working properly.
Some lines will obviously have to be drawn (and have been drawn, see: separate images for nvidia, inclusion of intel drivers in main, even though AMD (i)GPUs exist,...). To be clear, I think those decisions were correct. While not as widespread as Intel iGPUs, I'd say that mice configurable by libratbag are widespread enough to justify inclusion.

Otherwise how is the line drawn with respect to what should be included in main?

We've started to codify that here so that we're more explicit about the desire to cover the hardware use cases: https://github.com/orgs/ublue-os/discussions/125 (Feedback there would be welcomed!)
I think a good measuring stick for this one is "if you plug this device into a windows or mac machine it works" but if you install it on one of our images it doesn't work. We want to avoid users having to layer for hardware support.


Swift 5 support

Could you give some more information? Do you mean SwagGen itself or the generated template? Both should support Swift 5 in the latest version

Hi @yonaskolb ! Nice to meet you. Maybe it's related to swift package manager ver. 5. The thing is I'm getting error when I'm trying to install Swaggen version 3.0.2 and lower. Here what I'm getting:

error: dependency graph is unresolvable; found these conflicting requirements:

Dependencies:

https://github.com/yonaskolb/Stencil.git @ 0.9.0..<1.0.0
https://github.com/yonaskolb/JSONUtilities.git @ 3.3.0..<4.0.0
🌱  Encountered error during "swift package resolve". Use --verbose to see full output
🌱  Failed to resolve Swaggen 3.0.2 with SPM

Swift package version gives me Swift 5.0.0 (swiftpm-14490.62.2). I suppose this issue related to SPM 5 because my colleague have Swift 4.2.0 (swiftpm-14460.2) and it's ok with this version

Yes SwagGen versions below 4.1.0 aren't compatible with Swift 5. If you're stuck on Swagger 2, I would accept a PR to upgrade the swagger_2 branch to Swift 5 and we can do a SwagGen 3.1 release.
Is that what you meant as well @vialyx?

Thanks, will try to contribute)

Hi, I'm on SwagGen 4.1.0 - but it generates a podspec with Result as dependency in it; that shouldn't be necessary anymore, right?

@haemi, no, master has result removed. I’ll do another release hopefully tonight

@yonaskolb when I generate swaggen via cloning the repo and the Xcode project, everything works as expected. But installing 4.1.0 via homebrew includes the Result.

4.2.0 released which removes result. Closing this for now


Versioned ClientLibs are not supported by Page Exports (cw-wcm-conten…

The AEM Page Exporter [1] is generating self contained zip files of AEM pages. The service is also getting used for the generation of translation preview packages. Versioned ClientLibs are not supported by cq-wcm-content-sync.
With this change VersionableClientlibsTransformer will not transform clientlib paths anymore, whenever contentsync.PathRewriterOptions are present.
[1] https://docs.adobe.com/content/help/en/experience-manager-65/administering/contentmanagement/page-exporter.html

Pull Request Test Coverage Report for Build 5822

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.005%) to 55.056%

Totals

Change from base Build 5807:
0.005%

Covered Lines:
15572

Relevant Lines:
28284

💛  - Coveralls


Parsing error? * Line 1, Column 1 Syntax error: value, object or array expected.

On download/status I get the following message:
"* Line 1, Column 1
Syntax error: value, object or array expected."
It worked fine at the start of the summer sale, but I noticed this problem yesterday using v2.23 and it continued when I changed to c4c2f8cb6de06c06792ddae0ce5b7bf08f5790cd.
Debug build shows all the game info is there in a massive block of JSON so it seems like a parsing error.

Not saying this is the same issue, but... I'm getting the same error message, until I run lgogdownloader --login (and supply credentials). Which lasts about an hour, after which I have to login again. Didn't try debug build yet, but you can see if it helps in your case.

I've been seeing the same problem for a while but didn't have time to diagnose and, since --download-file still works, I assumed it was a shelf-parsing bug.

--login seems to have fixed it for now. I had meant to try that, but when debug showed me a list of all my games I figured I had to be logged in! I won't close this just yet though as it sounds like more of a workaround than a fix.

My workaround is going to be updating my lgogd_uri frontend to acknowledge that GOG's new design added gogdownloader:// links for the Linux versions, so I can use --download-file for everything rather than detecting non-extra links and converting them to --download regexes.

In 84e8ab8 the downloader now assumes that failed JSON parsing in Downloader::getGames is caused by expired cookies and tells the user to try --login
Sometimes GOG seems to set the cookies to expire really soon.
There were some threads earlier about people getting logged out after a short time when using browser which I assume was caused by the cookies expiring.
You can check when the cookies are set to expire by using something like this after login
date -d@$(grep '[0-9]\+' ~/.config/lgogdownloader/cookies.txt | awk '{print $5}' | grep -v '^0$' | sort | head -1)

It's a major hassle to copy-paste my GOG username and password from my password manager every time lgogdownloader needs to re-login. Would it be possible for lgogdownloader to support saving a copy of the username and password for automatic re-login?
(Or do I have to jerry rig such a thing myself by wrapping lgogdownloader in a pexpect script which embeds my username and password and calls lgogdownloader with --login before running it with the actual intended arguments?)

Looks like I misread that json block, so this was probably it. I'll close it.

It's a major hassle to copy-paste my GOG username and password from my password manager every time lgogdownloader needs to re-login. Would it be possible for lgogdownloader to support saving a copy of the username and password for automatic re-login?
(Or do I have to jerry rig such a thing myself by wrapping lgogdownloader in a pexpect script which embeds my username and password and calls lgogdownloader with --login before running it with the actual intended arguments?)

Here's a patch to add automatic login
https://sites.google.com/site/gogdownloader/autologin.diff
Create $XDG_CONFIG_HOME/lgogdownloader/autologin.cfg to use automatic login
{
	"email": "email_or_username",
	"password": "password"
}

Are there any issues with this patch?

I'm not sure autologin is such a good idea from security perspective, but as long as it stays optional...
There must be a way to obtain long-term token, Galaxy doesn't prompt me for password every time I boot my gaming console^W^W Windows PC. Maybe it just stores the username/password, but even browser doesn't require me to login when I allow gog.com cookies to last longer than for session. Even after long inactivity.
I guess sometimes it's just easier to work around the issue.

Sorry for the delay. I'm still making preparations for my last exam. I'll try to get that patch tested tonight.

It seems to be working. I'll let you know whether any problems show up while it's downloading the Trine: Enchanted Edition updates.

Nothing to complain about so far. The Windows installer and patch and the tarball downloaded without issue.

It appers that I have manged to fix this issue, without using autologin. I got tired looking through the mess, so I just deleted my cookie file completely and let lgogdownloader start again from clean state. There was lot of old/unused/most likely broken stuff in there, now there is only about half of them, they expire in a year and everything works like before. Lgogdownloader should probably do the same with --login, I doubt there is any information in there that should persist between logins.

It appers that I have manged to fix this issue, without using autologin. I got tired looking through the mess, so I just deleted my cookie file completely and let lgogdownloader start again from clean state. There was lot of old/unused/most likely broken stuff in there, now there is only about half of them, they expire in a year and everything works like before. Lgogdownloader should probably do the same with --login, I doubt there is any information in there that should persist between logins.

Old cookies are now deleted in 6e5a087


App crashes after entering stationary region on Android

Your Environment

Plugin version: 0.5.0-alpha.47
Platform: Android
OS version: 9
Device manufacturer and model:

Running in Simulator: No
React Native version: 0.57.5
Plugin configuration options:
desiredAccuracy: BackgroundGeolocation.HIGH_ACCURACY,
stationaryRadius: 5,
distanceFilter: 1,
startOnForeground: true,
notificationTitle: "Background tracking",
notificationText: "enabled",
debug: false,
startOnBoot: false,
stopOnTerminate: true,
locationProvider: BackgroundGeolocation.DISTANCE_FILTER_PROVIDER,
interval: 10000,
fastestInterval: 1000,
activitiesInterval: 10000,
stopOnStillActivity: false,
activityType: "AutomotiveNavigation"
Link to your project:

Context

After launching the location service, the app crashes upon entering stationary region.  The location service reports a "New stationary BGLocation[...]" and then crashes with "java.lang.StringIndexOutOfBoundsException: String index out of range: -2"
Expected Behavior

Actual Behavior

Possible Fix

Steps to Reproduce

Start service and leave device stationary with app in foreground

Context

Debug logs

java.lang.StringIndexOutOfBoundsException: String index out of range: -2
at java.lang.String.substring(String.java:2036)
at android.support.v4.content.FileProvider$SimplePathStrategy.getFileForUri(FileProvider.java:735)
at android.support.v4.content.FileProvider.query(FileProvider.java:436)
at android.content.ContentProvider.query(ContentProvider.java:1055)
at android.content.ContentProvider.query(ContentProvider.java:1147)
at android.content.ContentProvider$Transport.query(ContentProvider.java:240)
at android.content.ContentResolver.query(ContentResolver.java:802)
at android.content.ContentResolver.query(ContentResolver.java:752)
at android.content.ContentResolver.query(ContentResolver.java:710)
at com.marianhello.bgloc.data.provider.ContentProviderLocationDAO.getLocationsCount(ContentProviderLocationDAO.java:112)
at com.marianhello.bgloc.data.provider.ContentProviderLocationDAO.persistLocation(ContentProviderLocationDAO.java:286)
at com.marianhello.bgloc.data.provider.ContentProviderLocationDAO.persistLocationForSync(ContentProviderLocationDAO.java:335)
at com.marianhello.bgloc.LocationService$PostLocationTask$1.run(LocationService.java:594)

Fixable by reverting to 0.5.0-alpha.45.

Unfortunately cannot reproduce on Oreo. Will try later on Pie emulator.

What I really don't understand from your logs is why ContentResolver resolved FileProvider to do the query and not the plugin's LocationContentProvider.
Can you try to reinstall the app? Can you reproduce on newly created app, with just this plugin?

The issue persisted after running ./gradlew clean.  I also tested on another physical device running Android 7 and experienced the same issue.
But when I created a new app with just this plugin, the app didn't crash.
I then started removing plugins one by one from the original app, and when I removed the rn-fetch-blob plugin (https://github.com/joltup/rn-fetch-blob), the app stopped crashing.

So in other words there not compatible. Fortunately this plugin is more configurable, so you can override it's android:authorities here https://github.com/mauron85/background-geolocation-android/blob/master/build.gradle#L69.
On filesystem it should reside somewhere in node_modules common build.gradle (sorry don't throw the exact path from memory on you). The ugly side is that this will be reverted with every package upgrade.

FYI: fixed in 0.5.0-alpha.48


Phase itinerary

After the initial rewrite of the Task.Run() into a stage-machine like switch statement, I had some concerns about how hard it would be to visualize and maintain the flow through the phases.  This has proven to be difficult. As a result, I've had this work on the back-burner for a while.
The main idea is to evolve the Step list into an Itinerary that provides both the order and conditional path(s) through the phases.  Rather than branching the phase paths using conditional logic in each phase (case), the next phase is defined by the itinerary.
Each phase (case) will:

Implements the phase logic.
Determines whether to advance to the next phase (or not).
When a phase fails, jump directly to the appropriate fail phase for clean up.
Adjust the requeueAfter value.

Each itinerary Step contains the phase name and flags to define optional criteria used to qualify the phase such as: has-PVs or quiescePods (true). Additional flags can be added as needed.
Separate itineraries with failure phases excluded provides more accurate progress reporting

This PR also resolves an issue raised whereby stage pods are being created even when application pods are not being quiesced.  Apparently this was noticed and reported because it aggravated an issue related to node affinity.

This PR also resolves an issue raised whereby stage pods are being created even when application pods are not being quiesced. Apparently this was noticed and reported because it aggravated an issue related to node affinity.

Reverted this change.


Buttons do not have an accessible name

https://web.dev/button-name/?utm_source=lighthouse&utm_medium=devtools
Do we need it? @hspotlight

Hi @hspotlight please close this if it was fixed.


Cocoapods doesn't work (xCode 6.4)

platform :osx

use_frameworks!

pod "PromiseKit", "~> 2.0"

or even without concrete version:
Analyzing dependencies
[!] Unable to satisfy the following requirements:

- `PromiseKit (~> 2.0)` required by `Podfile`

but carthage seems to be workable

Works-for-me:
$ pod update
Update all pods
Analyzing dependencies

CocoaPods 0.38.2 is available.
To update use: `sudo gem install cocoapods`

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Downloading dependencies
Installing PromiseKit (2.2.1)
Generating Pods project
Integrating client project

I’m not sure what to suggest.

sorry. Since that time I have found that this trouble is because I try to import PromiseKit into "xcode plugin" project. I have already tried cocoapods, carthage and simply framework importing - nothing works.
I could suggest to import PromiseKit as simply source code files but I don't know how to detach it from the project correctly.
Maybe could you advice something?


1.20.6 Support

Currently, better mipmaps does not support 1.20.5 and 1.20.6.

I added a new versions for 1.20.5 and 1.20.6


FF4 - Exception: No default or local profile has been set.

Having trouble getting windmill going with firefox4 and any version of Windmill. I've tried v1.6, 1.4 and latest 1.7 from source. All result in the same error:
ben@vm-ubuntu:~$ windmill firefox "http://google.com"
Traceback (most recent call last):
File "/usr/local/bin/windmill", line 9, in
load_entry_point('windmill==1.6', 'console_scripts', 'windmill')()
File "/usr/local/lib/python2.7/dist-packages/windmill-1.6-py2.7.egg/windmill/bin/windmill_bin.py", line 33, in main
admin_lib.command_line_startup()
File "/usr/local/lib/python2.7/dist-packages/windmill-1.6-py2.7.egg/windmill/bin/admin_lib.py", line 351, in command_line_startup
shell_objects = setup()
File "/usr/local/lib/python2.7/dist-packages/windmill-1.6-py2.7.egg/windmill/bin/admin_lib.py", line 182, in setup
shell_objects_dict['browser'] = getattr(shell_objects, browser[0].lower())()
File "/usr/local/lib/python2.7/dist-packages/windmill-1.6-py2.7.egg/windmill/bin/shell_objects.py", line 45, in start_firefox
controller = windmill.browser.get_firefox_controller()
File "/usr/local/lib/python2.7/dist-packages/windmill-1.6-py2.7.egg/windmill/browser/init.py", line 116, in get_firefox_controller
controller = mozrunner.get_moz_from_settings(copy.copy(windmill.settings))
File "/usr/local/lib/python2.7/dist-packages/windmill-1.6-py2.7.egg/windmill/dep/_mozrunner/init.py", line 165, in get_moz_from_settings
cmd_args=settings['MOZILLA_CMD_ARGS'])
File "/usr/local/lib/python2.7/dist-packages/windmill-1.6-py2.7.egg/windmill/dep/_mozrunner/init.py", line 131, in get_moz
raise Exception ('No default or local profile has been set.')
Exception: No default or local profile has been set.

Shouldn't this be in the docs? I've just got the same error.


feat: expose light theme

Expose lightTheme so it can be used in a similar way to darkTheme. This would be helpful to grab some of the default values while creating the themeOverrides. Like we discussed before it would be possible to import it directly from the file but why not export it the same way as we do with darkTheme? 😊

Thanks!


perf: solidity bridgecall

Summary by CodeRabbit

Refactor

Updated function signatures in the blockchain bridge logic to enhance transaction handling.

New Features

Enhanced event tracking capabilities in the blockchain contract for better monitoring and debugging.

Tests

Adjusted test cases to align with the new function signatures and parameters in the blockchain bridge logic.

mg


Internal Server Error with v1.15.0-20200620-143251-752

Hi,
I'm having an internal server error when I try to access the website after upgrading to v1.15.0-20200620-143251-752.
Rolling back to v1.15.0-20200618-123207-243 solves the problem.
There is no error in the default output (DEBUG is enabled), and I couldn't find any in the container logs (maybe I didn't find the right log file) :

Compressing... done
Compressed 20 block(s) from 102 template(s) for 0 context(s).
You have requested to collect static files at the destination
location as specified in your settings:
/healthchecks/static-collected
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel:
309 static files copied to '/healthchecks/static-collected'.
Correcting config file permissions ...
Migrating database ...
Operations to perform:
Apply all migrations: accounts, admin, api, auth, contenttypes, payments, sessions
Running migrations:
No migrations to apply.
2020-06-20 22:26:20,642 INFO supervisord started with pid 1
2020-06-20 22:26:21,647 INFO spawned: 'nginx' with pid 16
2020-06-20 22:26:21,651 INFO spawned: 'smtpd' with pid 17
2020-06-20 22:26:21,656 INFO spawned: 'gunicorn' with pid 18
2020-06-20 22:26:21,667 INFO spawned: 'sendalerts' with pid 19
2020-06-20 22:26:23,506 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-06-20 22:26:23,506 INFO success: smtpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-06-20 22:26:23,506 INFO success: gunicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-06-20 22:26:23,507 INFO success: sendalerts entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

@sylvaindd Check inside the container in the /var/log/ directory (see https://github.com/galexrt/docker-healthchecks/blob/master/includes/supervisor/supervisord.conf#L12 and the other stdout_logfile and stderr_logfile file paths).

Well it seems the problem is between my reverse proxy (traefik) and the app.
I guess it's because you added another port in the EXPOSE clause.
I added the container target port in traefik conf and it's working again.
Thank you