Deprecate system/cos-config

The package is used as a base for cloud-config and grub2, use distro/tools instead and bump versions.

@davidcassany Yep, forgot to mark this as draft/wip. Thanks for the pointers!

I also realized the spec file will require some little adaptation too https://github.com/rancher/elemental-toolkit/blob/f0b9d4da0793c91cbbbb6fc2e88be6716f772585/.obs/specfile/elemental-toolkit.spec#L183-L184 I am not sure why the build error is not reported back to github from OBS 🤔 On success it does, I had expected it would also do it on failure...

Seems like grub-efi-image is still used when building raw disks and it will take some work to move away from that (bootloader-in-rootfs maybe?).
Anyway I'm keeping the package and hardcoding the recovery-partition label for now.

Seems like grub-efi-image is still used when building raw disks and it will take some work to move away from that (bootloader-in-rootfs maybe?).
Anyway I'm keeping the package and hardcoding the recovery-partition label for now.

That's good, build-disk command needs to revisited to be properly aligned with install command and use the same/equivalent partitions API.


VMError: Cannot find module 'node:crypto'

I'm trying to use a library in a Bruno Pre Request script that requires the global variables TextEncoder and crypto to be set.
I was able to set the global variable text encoder with the following snippet at the top of my script:
const { TextEncoder } = require("util")
global.TextEncoder = TextEncoder

When I try the same approach with the crypto library, it does not work
const crypto = require('node:crypto')
global.crypto = crypto

This addition results in the error: Error invoking remote method 'send-http-request': VMError: Cannot find module 'node:crypto'
The docs don't provide much detailed information about the JS runtime that bruno provides. It only mentions the crypto-js inbuilt library that it provides.
Any guidance on whether it is possible to use the node:crypto library?
PS I prepaid for Golden Edition and love Bruno. Thanks for all your work :)

@jcgsville You need to whitelist the crypto module
See https://github.com/usebruno/bruno/issues/306#issuecomment-1751487377
Let me know if you are still facing issue.

I prepaid for Golden Edition and love Bruno. Thanks for all your work :)

Thank you for supporting Bruno @jcgsville !

Thanks @helloanoop ! That answer helped me get past that hurdle. (Small +1 for adding docs around this and other details of bruno.json. I wasn't able to find any 🙂)
It looks like crypto.subtle is undefined, which makes me think Bruno might be running the JS in a node environment Node 15 or older. crypto.subtle was introduced in Node 15.
https://nodejs.org/docs/latest-v15.x/api/webcrypto.html
I'm not seeing any information about the node version from which Bruno is executing scripts. Is it < Node 15? If >= Node 15, any thoughts on why crypto.subtle would be undefined?

Bruno runs on Electron 21 so Node 16, could a side effect of vm2 but I'm not sure. You can try my fork: https://github.com/Its-treason/bruno/releases/tag/nightly it uses another script runtime and a newer Electron version.

having this problem on node v16.20.2 as well


Test: Multi Diff Editor

Refs: https://github.com/microsoft/vscode/issues/179000

[ ] any @bpasero
[ ] any @alexdima
[ ] any @isidorn

Complexity: 4

This iteration, we implemented the (still experimental) multi diff editor.
Preparation

Open a github repository (e.g. vscode)
Install latest pre-release GHPRI extension
Set "config.multiDiffEditor.experimental.enabled": true

Test
How To Open A Multi Diff Editor
Try to open the multi diff editor from various places. The icon is always the same. Test if it is intuitive how to open the view.
Notice that the multi file diff editor does not yet react to files becoming changed/unchanged while the view is open.

SCM view (make sure you have multiple locally changed files) - test this for both staged and unstaged changes

SCM view: Incoming changes/Outgoing changes (outgoing optional)

For Pull Request in the GitHub sidebar

Multi Diff Editor Itself

Verify that collapsing files work
Verify that scrolling works (sufficiently smooth)
Verify that editor options are applied, even if different file types get different settings (e.g. change a ts and a json file, and configure the font size for json files in your settings)
Verify that reloading VS Code works while the multi diff editor is open
Verify that the scroll position is restored when switching to a different editor in the same tab group and back

Please also try to test the UX of this feature - try reviewing PRs using the multi diff editor! What features do you miss the most? What bugs are the most annoying?

It is also openable from Timeline view when this is showing commits (which it does by default).

@gjsjohnmurray does it?

@gjsjohnmurray does it?

Sorry, I had misremembered. Updated my comment.

Pretty cool 👍 . Sometimes I was not able to click into the diff editor anymore (right hand side), but not sure how to reproduce that.

:clap: Very nice! And of high quality!


Interactable Multi-Dimension Event support

Describe the problem
When using a multi-dimension interactable, developers must create a script to route onclick events according to each dimension.
Describe the solution you'd like
The solution I would like is an EventReceiverType that will respond to click events for each dimension of the button. This sort of behaviour is supported by the visual profiles but not for functional use cases.
Describe alternatives you've considered
As stated in the problem, my current alternative is to create a script that listens to the onclick and routes event triggers based on the current dimensional index of the interactable
Additional context

Additionally, although the alternative solution that Derek describes works well enough, what spoils things is that Interactable increments CurrentDimension before the invocation of the OnClicked event, so we have to reinterpret the value in the delegate in order to trigger the corresponding response.

Closing as stale, please reopen if necessary. We've pursued an alternative approach to interactables in MRTK3, using XRI interactables and the new StateVisualizer. Check it out, and see if it solves your needs!


download: failure on https://atcoder.jp/contests/fuka5/tasks/fuka_graphcut

$ oj d -n https://atcoder.jp/contests/fuka5/tasks/fuka_graphcut
[x] problem recognized: AtCoderProblem.from_url('https://atcoder.jp/contests/fuka5/tasks/fuka_graphcut'): https://atcoder.jp/contests/fuka5/tasks/fuka_graphcut
[x] load cookie from: /home/user/.local/share/online-judge-tools/cookie.jar
[x] GET: https://atcoder.jp/contests/fuka5/tasks/fuka_graphcut
[x] 200 OK
[!] strange name for output string: Sample Input
[!] strange name for input string: Sample Output
[ERROR] dangling sample string: b'11.200000\n.##...###.\n.##.####..\n.######...\n.######...\n######....\n##.##.....\n....#.....\n..####....\n.#####.##.\n.#####.##.\n73.540000\n...........#...............#..........\n...........###..........####..........\n...........#####.......####...........\n............###############...........\n............###############...........\n............##############............\n.............#############............\n............###############...........\n...........#################..........\n.......#...#################...#......\n.......##.##################..##......\n........####################.##.......\n..........####################........\n.........#####..########..#####.......\n.......######....#####....######......\n......########...#####..########.#....\n....#######..#...#####..#..########...\n..#########.....#######......#######..\n...#######......#######........###....\n..####.........#########........###...\n...............#########..............\n..............##########..............\n..............##########..............\n...............########...............\n...............########...............\n'
[!] <section> tag not found. something wrong
[x] save cookie to: /home/user/.local/share/online-judge-tools/cookie.jar

[*] sample 0
[x] input: sample-1
h w λ κ
Y(1,1)Y(2,1)...Y(w,1)
Y(1,2)Y(2,2)...Y(w,2)
  ...
Y(1,h)Y(2,h)...Y(w,h)

[x] output: sample-1
10 10 0.4000 0.20
.##...###.
.##.####..
.######...
.#.#.####.
######....
##.##.....
....#.....
..####.#..
.#####.##.
.#####.##.
25 38 0.5 0.24
...........#...............#..........
...........###..........####..........
....##.....#####.......####...........
.....##.....###############.....##....
............#####.###.#####......#....
............#########.####............
.....##......#########.###............
....##......#####.#########........#..
....#......##.##..####..####..........
.......#...###########.#####...#......
.......##.##################..##......
........#####.####.##.######.##.......
..........####################........
.........##.##..########..#####.......
.......######....##..#....###.##......
......###.####...##.##..#####.##.#....
....###..##..#...#####..#..########...
..####..###.....#######......#######..
...#######......#######........###....
..####.........##.######........###...
...............###...###..............
..............#######..#...#...##.....
.........#....##########...#....#.....
..#.....##.....########...............
...............########...............
0 0 0 0

Our tools suppose WEB page follows Input -> Output -> Input -> Output ... flow.
But in this situation, oj recognizes this page as Input -> Input -> Output and gets what is not user expected.
I think there are three solution (which is preferable?).

raise Error if oj gets (Input -> Input) or (Output -> Output)
change our assumption.

for example, ignore all succeeding *put without its last.

apply another intelligent way (I have no idea)

Oh, I misunderstood the difficult part of this issue.
Sample cases in ふか杯 5th Contest is different from what it is now and parse them seems difficult...

Ahh, I misunderstood again. I haven't known the style of (sample && test) case in that contest.

Resoled by #581


subjects: load from 1-app_data 2-extenions 3-this

closes https://github.com/inveniosoftware/invenio-rdm-records/issues/677

Test error seems to have to do with citation string serializer and facet aggregations :shrug:

The A / B is not MeSH. It was but just a way to denote variations. You would rather have: mock_module_a, mock_module_b and use a / b in the vocabulary names? The A-D... is for identifier namespacing. I don't mind changing it, but I wonder if there is a deeper cause of confusion here that I could address?

but I wonder if there is a deeper cause of confusion here that I could address?

Not really, was just trying to understand things 😅. I saw in the example something like A-... and then Abdomen... Thanks for the answer :)

I've added more explanation in the classes' docstrings + made VocabulariesFixture just take a path to its vocabulary file (versus different directories to look into). Tests are passing locally. If they pass on CI by end of day I will merge.
I will revisit to change for array of subtypes in another PR.

Hmmm locally tests pass and this case [3.6, pypi, postgresql9, elasticsearch6] was the one failing only on CI before (CSL serializer and nesting). I think @Glignos is supposed to merge/release something that would help?

Thanks for all the answers 🚀 merge when you consider 😃

finally it passed :tada: . merging!


Browser Extension Wallet - DReps Showing As Retired- Incorrect Data

There are DReps that are active showing as retired in Lace.  That data is incorrect and needs to be fixed as soon as possible as it presents risk of users changing DReps because of wrong information.
"You need to update the voting delegation given that the current DRep delegated has been retired." is shown when viewing the staking information in the wallet.

Thanks for the report. We're investigating this now after seeing reports in other channels.

We're working on an emergency patch now

Also appearing in Lace for wallets that are already delegated to a DRep

When i click the link i get redirected to gov.tools and you can see that I'm delegated to a DRep and that DRep is 'Active'


Copy-DbaLogin -SyncOnly - fixed command name

Sync-DbaSqlPermission -> Sync-DbaLoginPermission

can you remove that last failing check @niphlod ? perhaps a better goal post-1.0


using  pandasTools from rdkit to load csv files

Why not to use the pandasTools from rdkit to get more fluent process on data split and data load ?
like this:
import pandas as pd
from rdkit import Chem
from rdkit.Chem import PandasTools

df = pd.read_csv("blabla.csv")
df['smiles'] = df['smiles'].str.replace('\n','')
PandasTools.AddMoleculeColumnToFrame(df,'smiles','Molecule',includeFingerprints=False)

I think you can use the sdf solution I proposed in #101 instead of this one.


Fixes 'teams team set' and 'teams team clone' to include 'id' and 'name' command options. Closes #3482

Fixes teams team set and teams team clone to include id and name command options. Closes #3482

Great work @nanddeepn, we'll look at it asap! 👏

Thank you. Manually merged


Partial conversion to Express

Remaining

[ ] Add Lambda handler entry point
[ ] Install production only node_modules directory
[ ] Confirm Lambda construct points to the updated entry point
[ ] Fix any remaining build bustage

Switch to yarn to fix issue with multiple versions of react and react-dom
Remove serverless-next.js
Add packages/app/server.ts
Upgrade next 10 to next 12

Finished in #62


[SPARK-33055][PYTHON][SQL] Add Python CalendarIntervalType

What changes were proposed in this pull request?

This PR adds CalendarIntervalType to pyspark.sql.types.
Why are the changes needed?

Right now, queries resulting in interval types, fail with ValueError when _parse_datatype_json_string is invoked:
>>> spark.sql("SELECT current_date() - current_date()")
Traceback (most recent call last):
...
ValueError: Could not parse datatype: interval

This is a serious loss of function.
Does this PR introduce any user-facing change?

If this PR is accepted, example query will yield expected results:
>>> spark.sql("SELECT current_date() - current_date()")
DataFrame[subtractdates(current_date(), current_date()): interval]

Please note that providing a mapping between internal and external type is not a goal here.
How was this patch tested?

New unit test.

Test build #129354 has started for PR 29935 at commit d9a6e44.

Test build #129354 has finished for PR 29935 at commit d9a6e44.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class CalendarIntervalType(DataType, metaclass=DataTypeSingleton):

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/129354/
Test FAILed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/33963/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/33963/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/33963/
Test PASSed.

Test build #129357 has started for PR 29935 at commit 80fbf32.

Test build #129357 has finished for PR 29935 at commit 80fbf32.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class CalendarIntervalType(DataType, metaclass=DataTypeSingleton):

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/129357/
Test FAILed.

Test build #129359 has started for PR 29935 at commit 7d6ebd2.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/33967/

Test build #129359 has finished for PR 29935 at commit 7d6ebd2.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class CalendarIntervalType(DataType, metaclass=DataTypeSingleton):

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/129359/
Test PASSed.

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/33967/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/33967/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/33969/

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/33969/
Test FAILed.

Test build #130565 has started for PR 29935 at commit 6ca50c5.

Test build #130565 has finished for PR 29935 at commit 6ca50c5.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class CalendarIntervalType(DataType, metaclass=DataTypeSingleton):

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/130565/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35166/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35166/

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/35166/
Test FAILed.

Test build #133778 has started for PR 29935 at commit 69438b4.

Test build #133778 has started for PR 29935 at commit 69438b4.

Test build #133778 has finished for PR 29935 at commit 69438b4.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class CalendarIntervalType(DataType, metaclass=DataTypeSingleton):

Test build #133778 has finished for PR 29935 at commit 69438b4.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class CalendarIntervalType(DataType, metaclass=DataTypeSingleton):

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/133778/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/133778/

FYI @MrPowers (in case of your going to work on Python API for make_interval and encounter this).

FYI @MrPowers (in case of your going to work on Python API for make_interval and encounter this).

@zero323 - Adding CalendarIntervalType to PySpark is a great idea.
CalendarIntervalType is already in the Scala API and allows for some awesome functionality.
Here's the Spark 3.0.1 behavior with Scala:
import java.sql.Date
import org.apache.spark.sql.functions._
val df = Seq(
  (Date.valueOf("2021-01-23"), Date.valueOf("2021-01-21"))
).toDF("date1", "date2")
df.withColumn("new_datediff", $"date1" - $"date2").show()
//+----------+----------+------------+
//|     date1|     date2|new_datediff|
//+----------+----------+------------+
//|2021-01-23|2021-01-21|      2 days|
//+----------+----------+------------+

df.withColumn("new_datediff", $"date1" - $"date2").printSchema()
//root
// |-- date1: date (nullable = true)
// |-- date2: date (nullable = true)
// |-- new_datediff: interval (nullable = true)

Getting this functionality in PySpark would be a huge win.
Let me know if there is anything I can do to help you move this PR forward @zero323!

@zero323 - Adding CalendarIntervalType to PySpark is a great idea.
CalendarIntervalType is already in the Scala API and allows for some awesome functionality.
Here's the Spark 3.0.1 behavior with Scala:
import java.sql.Date
import org.apache.spark.sql.functions._
val df = Seq(
  (Date.valueOf("2021-01-23"), Date.valueOf("2021-01-21"))
).toDF("date1", "date2")
df.withColumn("new_datediff", $"date1" - $"date2").show()
//+----------+----------+------------+
//|     date1|     date2|new_datediff|
//+----------+----------+------------+
//|2021-01-23|2021-01-21|      2 days|
//+----------+----------+------------+

df.withColumn("new_datediff", $"date1" - $"date2").printSchema()
//root
// |-- date1: date (nullable = true)
// |-- date2: date (nullable = true)
// |-- new_datediff: interval (nullable = true)

Getting this functionality in PySpark would be a huge win.
Let me know if there is anything I can do to help you move this PR forward @zero323!

Let me know if there is anything I can do to help you move this PR forward @zero323!

Thanks @MrPowers! I reckon we mostly need some attention here.

Let me know if there is anything I can do to help you move this PR forward @zero323!

Thanks @MrPowers! I reckon we mostly need some attention here.

Just wanted to check in and see if we can potentially get this merged, so we can add make_interval to the PySpark API.
Seems like @HyukjinKwon is cool with this getting added.
Should we check with anyone else in particular?

Yeah, it would be nice if we map it to timedelta.

My biggest concern is that Spark implementation doesn't really map to timedelta. Let's say INTERVAL 2 years or INTERVAL 1 month ‒ we could derive some arbitrary rules for handling intervals expressed with units larger than weeks, but I am not sure how useful these will be in practice.
Ultimately I'd like following to be satisfied
cd, i, yfn = spark.sql("""
    SELECT *, cd + i AS yfn FROM (SELECT current_date() as cd, INTERVAL 1 year AS i) t
""").first()

assert cd + i == yfn

which, if I am not missing anything here, won't be possible with timedelta.

before we go further, can we file an umbrella JIRA to address the full support in PySpark?

@HyukjinKwon I think we can use SPARK-33054 for that. I originally suspected that  SPARK-33056 might be no go, based on some discussions I've seen around Scala implementation.

I would like to propose to not expose CalendarIntervalType (consider it as a legacy one), and focus on new types YearMonthIntervalType and DayTimeIntervalType (see SPARK-27790).
If you have a proposal of mapping YearMonthIntervalType/DayTimeIntervalType to python types (from standard lib) like we did for Java/Scala already:

Support java.time.Duration as an external type of the day-time interval type
Support java.time.Period as an external type of the year-month interval type

Please, open a sub-task JIRA in SPARK-27790, and we will discuss your proposal in the tickets.

@MaxGekk - thanks for pointing this out.  I wasn't aware of the YearMonthIntervalType / DayTimeIntervalType.
Do you plan on building make_year_month_interval and make_day_time_interval SQL functions, similar to make_interval?
When users do col("time1") - col("time2") will two values be returned?  I understand the problem with CalendarInterval (thanks to your wonderful description in the JIRA) and want to better understand the user facing APIs with your new proposal.

Thank you for your input @MaxGekk!

I would like to propose to not expose CalendarIntervalType (consider it as a legacy one), and focus on new types YearMonthIntervalType and DayTimeIntervalType (see SPARK-27790).

In my opinion SPARK-27790 would definitely mark  SPARK-33056 obsolete, not that we had very good proposals for an useful implementation. However, I am not sure if this really affects SPARK-33055. I'd argue it is not so much a new feature (something new is exported) as a bugfix (a component, that was accidentally omitted is included) ‒ I can ran queries  included in the JIRA in Scala, Java, SparkR and even some 3rd party bindings ‒ even if legacy there are supported.
You can even add cast
spark.sql("SELECT CAST(current_date() - current_date() AS string)")

and PySpark won't see a problem.
Unhandled exception in such case is just not good.
Even if  CalendarIntervalType I'd still consider starting a discussion about backporting this minimal fix to 3.0 and 3.1.

If you have a proposal of mapping YearMonthIntervalType/DayTimeIntervalType to python types (from standard lib) like we did for Java/Scala already:

I'll take a look when I have a chance, but if I am not mistaken equivalents of these are already supported in Arrow, so that's probably where we should start looking.
If you don't mind a QQ about the of future of CalendarIntervalType ‒ can it be decomposed into YearMonthIntervalType + DayTimeIntervalType?

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/41073/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/41073/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/41073/


Extend __cuda_array_interface__ to support masked arrays

Currently the __cuda_array_interface__ assumes the array is a single dense buffer. This unfortunately doesn't support nulls which is why there have been other array formats such as numpy masked arrays (https://docs.scipy.org/doc/numpy/reference/maskedarray.generic.html) and apache arrow arrays (https://arrow.apache.org/docs/memory_layout.html). The common theme is that there's a secondary buffer of booleans represented by either a single bit per value or a byte per value to indicate whether the value in the data buffer is valid or not.
Projects looking to integrate into the GPU PyData ecosystem have started using __cuda_array_interface__ as the standard attribute to look for to determine whether the object is on the GPU or not, so being unable to support it for masked arrays has been problematic.
Continuing following the numpy __array_interface__, I'm proposing extending the __cuda_array_interface__ to add the optional mask attribute.
We may want to consider not making the mask attribute a Python object and instead making it a nested dictionary which would they open the doors to considering making this cross language with something like JSON or a simple struct in the future.

Adding mask seems a bit special-case-y to me.  I wonder if there is some way to generalize this to anticipate future use cases.  Are there other things like mask that would motivate generalization here?  Categories, dataframes, collections of arrays generally (dataframe or xarray style).  I wonder if this motivates a __cuda_arrays_interface__ protocol instead (note the s).

Adding mask seems a bit special-case-y to me. I wonder if there is some way to generalize this to anticipate future use cases. Are there other things like mask that would motivate generalization here? Categories, dataframes, collections of arrays generally (dataframe or xarray style). I wonder if this motivates a __cuda_arrays_interface__ protocol instead (note the s).

A categorical column would essentially be two arrays, one for the categories, one for the codes into the categories each of which would expose a __cuda_array_interface__ that could be effectively used.

We talked through this a bit more in the Numba meeting today, and we think it is probably going out of scope for this interface to expand to include xarray/dataframe-like things that go beyond the ndarray-like containers CuPy/PyTorch/etc are providing.  A different protocol for dealing with those things is probably also useful, but would need much more thinking and/or leaning on Arrow's metadata itself.
The question we have is what implementations are there for a masked array on the GPU (neither PyTorch and CuPy offer masked arrays, AFAIK), and are these optional attributes (mask and mask_dtype = bit/byte) sufficient for them?  I also imagine the expected Python API for working with
a masked array on the device in Numba would be to have a .mask attribute that can also be indexed just like the array itself?
Also, as specified, the __cuda_array_interface__ is a dictionary of simple JSON-encodable types (integers, tuple/list, string, bool) so there is nothing stopping a Python wrapper from getting it ultimately from a lower level library in JSON form and exporting it to Python as a dictionary.  Note that I'm assuming the mask attribute is in the same form as data: (device_pointer_as_integer, read_only_flag_as_bool)

Thinking about this more, the other question is "Could/should the mask be treated as a separate array?"  I think the obstacle there is that the current __cuda_array_interface__ doesn't have a way to represent a packed array of 1-bit elements, so one of the mask formats is not representable.

FWIW one of the issues NumPy masked arrays ran into was premature optimization. This isn’t to say it wasn’t justified in some sense. Just that it’s caused a lot of pain since. In particular I’m thinking of how the trivial/non-existent mask is handled. Packed bits has a similar feeling to me (though I’m predisposed to worrying about things like this). Though it does make me wonder how far we can get without that feature. Thoughts?

@seibert for clarification I'm not proposing extending Numba functionality to support masked types, I'm only proposing extending the interface with the mask attribute.
From Numba's perspective it would be easy enough to check if the mask exists and isn't None to raise an exception that masked arrays aren't supported. Other libraries without masked array support could do the same. For libraries like cuDF and Arrow this would allow using the interface directly instead of having to roll something else combining multiple of these interfaces.
We actually don't need the mask_dtype attribute if we follow the __array_interface__ spec and have the mask attribute be a Python object that exposes its own __cuda_array_interface__.

I'd rather not nest an arbitrary object in the interface dict, which should be only basic Python types.  If we want to embed the description of the mask into the array description, it should be another copy of the __cuda_array_interface__ structure, which would also allow specification of the striding of the mask, which is likely necessary if the the array data itself is strided.
A more immediate issue is that there is no typestr for a bit array (there are only bit fields), so describing an arrow style mask array with __cuda_array_interface__ is not currently possible.  We would also need to establish a convention for that too.

@seibert I'm on board with nesting another dictionary for the mask attribute which follows the same interface. The numpy array interface allows specifying a bit field with the typestr t with "Bit field (following integer gives the number of bits in the bit field)." which should satisfy our use case with t1 for a bitmask, whereas a bytemask can use b1.

OK, Siu pointed out that I had overlooked the definition of mask in the original __array_interface__, which does exactly what you proposed earlier.  In the interest of consistency with the NumPy interface, I'm reversing my suggestion and going with yours.  mask should be an object that exports the__cuda_array_interface__, rather than the dictionary itself.
Thanks for bearing with me on this discussion!  Feel free to open a PR to modify the documentation of __cuda_array_interface__.

OK, Siu pointed out that I had overlooked the definition of mask in the original __array_interface__, which does exactly what you proposed earlier. In the interest of consistency with the NumPy interface, I'm reversing my suggestion and going with yours. mask should be an object that exports the__cuda_array_interface__, rather than the dictionary itself.
Thanks for bearing with me on this discussion! Feel free to open a PR to modify the documentation of __cuda_array_interface__.

Will do, as far as handling objects that specify the mask in Numba would you want to raise a ValueError type exception or return a tuple of two arrays? Either way will kick off the PR shortly and can continue discussion there!


Add pre-commit CI build

This PR moves our black and flake8 checks to a separate pre-commit CI build on GitHub actions. This is nice because it means there's a single source of truth about which version of black/flake8 we use in CI: our .pre-commit-config.yaml file. It also ensures that the pre-commit hooks used locally match up with the checks run in CI.
I've also pinned black to a specific version (20.8b1) instead of using the latest release on PyPI. This let's us be more intentional as to when we bump our black version.

[ ] Tests added / passed
[ ] Passes black dask / flake8 dask

I really like this idea of having a single source of truth

Thanks for reviewing @jsignell @TomAugspurger!


Multiple running SparkContexts detected in the same JVM

In our test suites, most classes use SharedSqlContext to make sure there is only one SparkContext.
But some classes are creating SparkContext manually.
If test case depends on the setting of SparkContext, this may cause test result unreliable. Since we can't guarantee which SparkContext is using.

closed by #442


Add DEV to giant allowed stages to support DEV db in aws

What does this change?
This adds 'DEV' to the list of allowed stages for giant, in order to support AMI updates/deployment of the new remote Neo4j DEV instance we're setting up to work around M1 incompatibility with Neo4j 3.
This should be a temporary thing - longer term we need to get onto Neo4j 4 as soon as possible

Note - we worked out how to run neo4j on an m1 chip via docker locally so no need for this


Seems like a bug while training my own module...

==== Epoch [ 1  /  10 ] START ====
<<<= Phase: train =>>>
D:\Data\quickNAT_pytorch-master\venv\lib\site-packages\torch\optim\lr_scheduler.py:131: UserWarning: Detected call of lr_scheduler.step() before optimizer.step(). In PyTorch 1.1.0 and later, you should call them in the opposite order: optimizer.step() before lr_scheduler.step().  Failure to do this will result in PyTorch skipping the first value of the learning rate schedule. See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate
warnings.warn("Detected call of lr_scheduler.step() before optimizer.step(). "
Traceback (most recent call last):
File "D:\Data\quickNAT_pytorch-master\run.py", line 187, in
train(train_params, common_params, data_params, net_params)
File "D:\Data\quickNAT_pytorch-master\run.py", line 57, in train
solver.train(train_loader, val_loader)
File "D:\Data\quickNAT_pytorch-master\solver.py", line 113, in train
output = model(X)
File "D:\Data\quickNAT_pytorch-master\venv\lib\site-packages\torch\nn\modules\module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "D:\Data\quickNAT_pytorch-master\quicknat.py", line 49, in forward
e1, out1, ind1 = self.encode1.forward(input)
File "D:\Data\quickNAT_pytorch-master\venv\lib\site-packages\nn_common_modules\modules.py", line 151, in forward
out_block = self.SELayer(out_block, weights)
File "D:\Data\quickNAT_pytorch-master\venv\lib\site-packages\torch\nn\modules\module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
TypeError: forward() takes 2 positional arguments but 3 were given
I don't know whether it is a bug or my wrong operation...

pytorch version cause this bug.


RFE : add code coverage report

This a request for enhancement regarding the build process and the indication provided in default github README page :

update the circleci build to add codecovergage instrumentation with jacoco
update README to add gadget to https://codecov.io/github/samdjstevens/java-totp/

Resources :
https://github.com/codecov/example-java
Example of other TOTP java project with this codecoverage metrics :
https://github.com/j256/two-factor-auth

Thanks for the suggestion - I agree this would be a good enhancement. I'll see if I can get this into the project soon

Fixed by #15 !

Awesome. You rock !


Implement "Enable Metrics" setting

PR Details
Implement a setting that allows toggling usage of metrics.
Description
Just implemented the setting. Tested by debugging values at runtime.
Related Issue
https://github.com/stride3d/stride/issues/1815
Motivation and Context
As requested by some Discord users. And also refer to the issue #1815 .
Types of changes

[N/A] Docs change / refactoring / dependency upgrade
[N/A] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[N/A] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My change requires a change to the documentation. (May require a change in the privacy policy?)
[N/A] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] I have built and run the editor

I think before we merge this, it also needs a consideration of how stride metrics is communicated. A merely functional change will probably lead to no one enabling it due to a general aversion to data collecting. It needs to be clear that the metrics are anonymous, nothing is stored anywhere, and that the data is public and open-source. Ideally also an easy-to-understand overview of what exactly is sent.

Once I have wiki access, I will add a page on this. @tebjan

I think being able to articulate how the metrics are being used is important, not only for the engine end-users but us as developers. As a general rule, metrics should only be gathered on an as-needed basis, and only to answer specific questions with clearly defined action-items that will result from the gathered metrics.
Gathering metrics with no idea how it's going to be used, or with no actionable outcome regardless of the data gathered should be discouraged. When we enable new metrics it should come with an invitation to help us make a decision about "X" feature or issue, by granting us the metrics we need to make the decision.

LGTM, it's still keeping it on by default as far as I understood.
@JeromyWalsh We don't have any specific behavior metric (yet).
It's only counting install, basic usage (per version, country, etc.), which platforms are being used (useful to know which one to phase out).

I noticed that this is only a setting in Game Studio, not in the installer dialog. Is there a clearer way to phrase: "Enable collecting data such as uptime, software usage"?
This explanation doesn't clarify the actual process and might raise concerns for people who prioritize privacy.

Maybe:
Name: "Usage Analytics"
Description: "Anonymous usage analytics to help the Stride community improve the software. Statistics on installation, version-specific usage, and platform popularity. The data is open-source at https://metrics.stride3d.net"

Will move this to draft while @NicusorN5 gets back to us with those last few questions

Hi, I was missing for a while, because my third university year started, so I was left behind regarding what's happening with this PR.
I will consider rewording the description and name.

Fixed the merge conflict, I'll let @tebjan merge this one

bump

We'll likely merge this one after the official 4.2 but sent a request to tebjan to get his input anyway

Thanks !


Feature Request: Switch Output and Input device with one hot key

I have two set ups that I want to toggle between with one button.
In Mode "A" I want audio output to my monitor over display port and I want my microphone set to my Yeti desktop mic.
In Mode "B" I want my audio output to my steel series wireless headphone, and I also want my microphone set to the headphone.
Currently I have 4 hot keys, two for output and two for input.
It would be awesome to have only 2 hot keys. One for desktop speak/mic mode and one for headphone mode.
Even better would be a toggle. Desktop mode or headphone mode.
My main reason is I really don't like wearing headphone so most of the time I want desktop mode. But when gaming or when making food in the kitchen when I'm on a conference call I would like to quickly switch to headphone mode.

Hello,
Good idea! I also would be appreciated for such feature.
Also would be nice to have just one hot key to cycle between listed devices (input/output pairs) with no separate hot keys for each.


[Home page]Remove blur when you open the drop down

Currently there is a blue effect when you open the drop down in the search bar. This needs to be removed since it's distracting to the mind.

Can i take on this issue?

I can't seem to find any dropdown at the search bar?

Can you check it out in the ui-work branch ?

Thanks

Hello, i got this error while trying to push to the repo
git push --set-upstream origin ui-work
remote: Permission to jiffy-labs/jiffyscan-frontend.git denied to Aremu-olusegun.
fatal: unable to access 'https://github.com/jiffy-labs/jiffyscan-frontend.git/': The requested URL returned error: 403
Please how do i work around this error.

Hello, i got this error while trying to push to the repo
git push --set-upstream origin ui-work remote: Permission to jiffy-labs/jiffyscan-frontend.git denied to Aremu-olusegun. fatal: unable to access 'https://github.com/jiffy-labs/jiffyscan-frontend.git/': The requested URL returned error: 403
Please how do i work around this error.

You cannot directly push changes to this repository. You will have to fork the repository in github to your own profile. Update the changes to that repository and create a PR to the appropriate branch here.

pull request have been made
Thanks @vintageplayer

Thanks @Aremu-olusegun for the change. Do let me know if you would like to pick up more issues in future
( telegram @lazyc0der1 )


chore: remove binaries from repo

I believe these binaries were accidentally introduced, thus removing them
Ref: #557

Is there an issue to track adding these to the .gitignore?

@adlerjohn, nooooooooooooooooooooooooooo, but there is PR https://github.com/celestiaorg/celestia-node/pull/566


Add split_inclusive

This adds a new iterator type and a new method to both the byte and unicode version of Regex. Most of the code is copied from the ordinary split iterator. My doc example is probably terrible, but who doesn't like fruit?
Before opening this PR, I checked to see whether it's possible to mimic this behavior using, say, a non-capturing group with the regular split. If it is, I didn't manage to do it correctly, so maybe this is still useful to someone. No idea. In my own work, where I have wanted this, I have also wanted the captures associated with the pattern, so that might be a more useful contract than what is presented here.
Closes #681

Apologies; I didn't realize I had to run a different command to run the doc tests. I'm fixing those now.

cargo test should run them automatically.

cargo test should run them automatically.

That's what I'd have thought. It's possible there are just so many tests that I didn't see the failures as they scrolled past. I was expecting to see them reported at the end and might just not have been vigilant enough. Anyway, I looked a lot more closely this last time. :p

I've attempted to correct the behavior of the iterator to match the behavior expressed by split_inclusive in std. I've also attempted to make the docs less awful.

Why was this closed?

Well, there was no response for a week, and I don't like leaving things in limbo.

Fair enough. It would help communicating your expectations up front next time, and I would be able to tell you right away that I won't be able to live up to them.

/shrugSent from my iPhoneOn Nov 9, 2022, at 5:30 AM, Andrew Gallant @.***> wrote:
Fair enough. It would help communicating your expectations up front next time, and I would be able to tell you right away that I won't be able to live up to them.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

I'm also one of the many users struggling with importing regex patterns from Python to Rust,
after reading #285, #330, and #681, I was really hoping for this feature to be added.
If anybody is still interested in implementing it, let me know, I would love to work on it!

@shner-elmo We should keep discussion about this on the actual issue https://github.com/rust-lang/regex/issues/681#issuecomment-1747643806. Not on closed PRs.


contract verification ordering degraded

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (9d64f1f 2022-10-26T00:11:13.985133Z)
What command(s) is the bug in?
forge verify-contract
Operating System
macOS (Intel)
Describe the bug
it looks like somewhat recently (last ~20 days?) the ordering for verified contracts changed from contract / import order to.. something that's almost alphabetical but somehow even worse?
old/good example @ https://etherscan.io/address/0x4Df01754eBd055498C8087b1e9a5c7a9ad19b0F6#code
new/bad example @ https://arbiscan.io/address/0x4Df01754eBd055498C8087b1e9a5c7a9ad19b0F6#code
the former is far more useful/readable imo

cc @rkrasiuk anything comes to mind that might have caused this?

@mattsse nothing obvious comes to mind. dyk of any graph resolution changes in ethers that might've caused this? also, arbiscan is hella weird by itself, not a 1-to-1 port of etherscan. @wminshew any chance you observed this on other explorers?

@rkrasiuk yes, can see everything deployed/verified by foundry in a more recent repo mirrors the new/bad arbiscan pattern above:
repo
etherscan
other flavors of etherscan
potentially related / worth mentioning, in both repos (waterfall in the og links & liquid in the above links) the --verify flag wasn't working w forge script (I assume bc of deterministic deployment? but I didn't dig into it) so all of these were verified w separate verify-contract calls

appears to still be the case https://gnosisscan.io/address/0x1a1314121b06f1e358eec90e76e459a679c88863#code
(also --verify still doesn't work w script)

I looked into this a bit more since it's been bugging me. Not super familiar with rust so I can't pinpoint exactly what's going on but this is what I've found.
I had a friend using commit 1d9a34e deploy and verify a multipart contract and it resulted in a good example. Same commit on my machine resulted in a bad example for the same contract.
Looking at the build info (JSON standard input), it looks like the sources are ordered opposite. The build info was retrieved using forge build --build-info.
It feels crazy but is there machine dependent ordering of the source list in the JSON standard input? Block explorers take the list supplied as is and that determines the order of the files shown.
I'll keep looking into this but hopefully this sparks some inspiration and hopefully we can close out this issue. Perhaps @rkrasiuk this helps 🤞

sorry totally forgot about this one, turns out we were sorting alphabetically again
will be fixed by #4698

ah this makes a ton of sense. Thanks friend!


Add internationalization

Enable docs in different languages.
http://www.sphinx-doc.org/en/master/intl.html
Pending Tasks:

✔ Enable i18n  (see i18n branch inspired in @44uk translation)
Add a selector in the navbar or footer to change the language.
Add .po files for each language in locale folder. @44uk has started the Japanese docs, see if contributors want to do pull-requests and add .po files to the official repository.
Edit Travis CI to upload all the docs in the same gh-pages.
Publish a guideline to create and maintain translations.

Added selector in the footer to change the language.

Edited Travis CI to upload all the docs in the same gh-pages.

@44uk Could you make a pull-requests with locale to i18n branch to merge the Japanese translation?

Published a guideline to create and maintain translations.

Thank you!✌ I prepare to create MR. Please wait a moment.

@dgarcia360 Sorry for my late reply. I pushed translation files. Please update i18n branch. These files are based on latest commit(https://github.com/nemtech/nem2-docs/commit/bc586d0d699ceff19b311c0b2f3ede2b5fc91d0d)
https://github.com/nemtech/nem2-docs/pull/33


Create target to build only localy

The electron-builder is publishing the artefacts directly to github by default. I don't know if this is 100% the right way to do it but it seems to work.
I had the same problem as described here https://github.com/BeatPlus/Protonmail/issues/92

I think this is good. What do you think @BeatPlus?

It seems consistent, nevertheless, I will work on publishing architecture. Thanks


ImportError: DLL load failed while importing clarabel: The specified procedure could not be found.

I am using Python 3.8 on a conda venv  , I installed clarabel using pip and I am facing errors in importing clarabel
Python 3.8.0 (default, Nov  6 2019, 16:00:02) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
>>> from clarabel import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\Anaconda3\envs\<env>\lib\site-packages\clarabel\__init__.py", line 1, in <module>
    from .clarabel import *
ImportError: DLL load failed while importing clarabel: The specified procedure could not be found.

pip install clarabel==0.5

worked for me


Add support for "empty response body" (HTTP status code 204)

Added support for Empty Response Body
Created unittest for Empty Response Body
Changed the OpenAPIResponsesType to allow the value of the dictionary to be None
Added example for Empty Response Body

Checklist:

[x] Run pytest tests and no failed.
[x] Run flake8 flask_openapi3 tests examples and no failed.
[x] Run mkdocs serve and no failed.

@dvaerum Thank you for your work!
I read the source code and I have a question in utils.py:L308, 405, 500 ... can return nothing that we can choice by ourselves, why only 204?
...
elif key in ["204"] and response is None:
    _responses[key] = Response(
        description=HTTP_STATUS.get(key, ""),
    )
...

So i think we can remove key in ["204"], which will be more flexible. What do you think?
By the way, if you agree with me, please modify the code and comments of the context
...
elif response is None:
    _responses[key] = Response(
        description=HTTP_STATUS.get(key, ""),
    )
...

@dvaerum Thank you for your work! I read the source code and I have a question in utils.py:L308, 405, 500 ... can return nothing that we can choice by ourselves, why only 204?

I selected 204, because it was we only status code I have encountered there doesn't return content, but reading a little more about the http status codes, it looks like status code 205 also doesn't return content.

So i think we can remove key in ["204"], which will be more flexible. What do you think? By the way, if you agree with me, please modify the code and comments of the context

I agree and have updated the code 😎
I did some quick testing and openapi-python-client does not seem to care if the return content key exist in the json-scheme or not 😅


Fix inverted vertical zoom interaction in animation curve editor

Fixes inverted vertical zoom mouse wheel interaction in animation curve editor
Fixes #98028

Thanks!


Encapsulate annotations on Controllers

@ivanpaulovich, what do you think about encapsulating the annotations that are repeated between the different controllers of the application? In this way, we could apply the  DRY principle, in a better way. We could create a base class for the controllers and also make use of API conventions.

Hey @douglasramos,
I added a PR to reduce the repeated code https://github.com/ivanpaulovich/clean-architecture-manga/pull/164/files
I'd consider one thing before merging those controllers:
I am afraid of huge controllers, so I prefer to start a new feature on new files. If you check the combo Model-Controller-Presenter, the code are very specific to one use case.
But I am open minded, how the conventions would work?

@ivanpaulovich, we could start using api conventions, without a base controller. With api conventions, we could remove generic ProcedureResponse Annotation from each controller method. That alone is a good improvement. Here's the link about api conventions: https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/conventions?view=aspnetcore-3.1

Conventions sounds interesting 😎!
Would you open a PR with your implementation?

Hi @douglasramos,
We added conventions on the latest changes https://github.com/ivanpaulovich/clean-architecture-manga/pull/216/files
We can still improve it by using naming conventions. Please check it out and would be nice if you come up with ideas.
Best

Included on https://github.com/ivanpaulovich/clean-architecture-manga/pull/220


Can be marked as 1.20.2 compatible

I was shortly testing the mod on version 1.20.2, no problems 😊
I assume the mod will work on 1.19.4, 1.20, 1.20.1, 1.20.3 and even 1.20.4.
Updated version listing would be great on Modrinth/Curse if exists.

Have tested on 1.20.4. Doesn't crash but doesn't work to recreate swamp trees

My solution for 1.20.6 is now this mod here: https://modrinth.com/mod/doormat
It supports a rule with "growableSwampOakTrees".
https://github.com/axialeaa/DoormatCarpetExtension/wiki/All-Current-Settings
There exist a 1.20.4 version, I hope it works for you 😄


Feature(proxy): Allow to configure changeOrigin option of http-proxy

As discussed in #1729

Thanks, can you please add documentation for this feature as well?

Added some documentation. I'm far from experienced at documenting, so let me know if that needs improvements.

Looks good, thanks :octocat:


Add two CSS multi-column properties to index.md

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

Congrats @kedskeds on your first pull request (PR)! 🎉
Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 📝


Update for async findBabelConfig + add support for babel-plugin-module-resolver v2

hey @nkt, sorry for the long long delay with this... But I finally updated the code to use the async version of find-babel-config, as you requested in #41.
Also, I update my initial plugin (and change its name) so I updated the code for the auto complete. Both cases are handled.
The code is pretty much the same, only a specific case to handle root from the plugin was really added.
Thanks :)

👍

@nkt: Do you think we can get this merged? ;)

I hope, I'll try to review this on weekend

@nkt Would you prefer I keep the old settings as well? So that old users who have enabled it keep it enable while they're moving to the new version?
Or just keep it as it and they'll notice sth has changed so they'll check the settings?

@nkt ping

@nkt any update?

Sorry for so long delay. So many work =(

Thanks, no worries ;)

Maybe we can get a new small release? ;)


Chakra styles are not loaded on injected content script

Describe the bug
The chakra styles are not loaded for content scripts for Popover component. The rest of components like Input and Labels has applied the dark theme successfully, but the PopOver doesn't.
To Reproduce
Steps to reproduce the behavior:

Add the custom providers and modify the root.tsx for Chakra UI
Load the content script
Load a UI component: PopOver
See error

Expected behavior
The PopOver, must have the colors for theme selected,in my case dark.
Screenshots

Desktop (please complete the following information):

OS: MacOs
Browser Chrome
Node Version 20

Additional context
I attach the custom providers and code to use Chakra as metnioned in the guide:
In root.tsx

Providers:

Updates:

Specify that PopOver component hasn't the theme styles applied.

Thank you for the detailed report. I'll take a look.

Strangely, the bg color used by PopOver is fixed to white
For now, I think you can use the following temporarily. I'm not sure what --popper-bg means, I think it's probably implementation-specific.
      <PopoverContent
        style={{
          '--popper-bg': 'black',
        }}>


hvPlot as the universal entry point to HoloViz tools

HoloViz.org shows how all the various HoloViz tools (Panel, hvPlot, HoloViews, GeoViews, Datashader, Param, Colorcet, etc.) fit together, forming a coherent suite of complementary tools that add up to solve a very wide range of problems. However, it can be very difficult for new users to make sense of this ecosystem, not knowing whether to start with hvPlot, HoloViews/GeoViews, Panel, or Datashader, each of which can be used on their own for some things but which also make sense together. Many users end up either giving up and choosing a less-powerful but more approachable alternative outside of HoloViz, or they end up not choosing the right tool for the job, or they struggle longer than necessary to make sense of things before they can start becoming productive.
HoloViz.org was introduced as a way to solve this problem, with a tutorial introducing the various tools and telling people how and when to use each one. But it's still difficult, because each of the tools individually tells one story about what it's for and how to use it, and these stories each differ from the one at holoviz.org. Probably not that many people actually make it through all the material, and probably even fewer really retain what it is saying enough to be sure they are using the right tool for the job, and which subset of that tool's docs they need to focus on.  Plus, we have dozens of separate examples scattered around each using some "best practice approach of year XXXX", adding to the information overload. Of course, we could go through and update our docs with the latest and best advice for each example, but the improvements have mostly been incremental, so the motivation to do all that work has been low. Even our best-practice advice has still been difficult to communicate and get a handle on, i.e. to use hvPlot to construct simple layouts, but then learn about Panel as soon as you need to control a widget, learn about HoloViews as soon as you need a stream or opts, and so on.
I think this situation has recently changed dramatically, and that we now have an opportunity to rally around a consistent and far simpler story for what to tell our users to do so that they are able to have the maximum power for the minimum investment (i.e., minimal learning of new APIs and concepts). Specifically, the recent introduction of the .interactive() API in hvPlot makes it possible for the first time to make very nearly all of the power that is available in HoloViz usable from hvPlot, using a simple, clean, and easy to explore API that users are already learning anyway (e.g. the Pandas or xarray APIs). hvPlot already provided access to much of the power of HoloViews, GeoViews, and Datashader, but Panel separately had an equally good claim to be a good starting point for using HoloViz, so we had to tell people "use Panel if you want to make apps and dashboards, and/or use hvPlot if you want to make plots". Now, it's finally plausible to say to start with hvPlot even if they want to make dashboards.
Capitalizing on this new situation, I propose that we use hvPlot as our single entry point to the HoloViz ecosystem, with each of our tools' docs loudly recommending that users approach via hvPlot, not that tool directly, and recommending that users only dive into the individual tools when certain clearly state-able conditions are met. I think if we can achieve a good experience there, we will make a very large fraction of the power supported by these tools available without users having to know or master:

defining functions or callbacks (nearly everything is just a method call, which is tab-discoverable)
defining classes or using decorators (used often under the hood, but not part of the user experience)
Elements, HoloMaps, value dimensions, key dimensions, dimensions in general (key concepts from HoloViews)
Canvas, glyphs, aggregations, or shading (key concepts from Datashader)

That way users who invest even a little effort in learning hvPlot will get a big payoff, those who invest just a little bit more will get even more, and if they stop there they can still do at least a large fraction of what HoloViz tools can do, without ever having to dive deeper.
Most of what it takes to make this happen is just documentation, but there are a few key limitations in the hvPlot-first approach that I've listed as separate issues:

[ ] holoviews#4739: can't get to streams without using hv concepts
[ ] hvplot#531: how to use .apply or other methods to achieve what can be done with DynamicMaps
[ ] panel#1824: Panel support for .interactive objects
[ ] panel#1826: widgets() helper function to make .interactive usable without learning about specific widget types
[ ] hvplot#532: hvPlot needs to return consistent object types

I imagine there are a few other rough edges, but if these can be addressed, I think we can have a much more compelling approach and starting point where we ruthlessly defend hvplot.holoviz.org as the starting point, never letting complex APIs or tricky concepts from other projects spill over into it, and ensuring that what it presents gives functionality without requiring wrestling with any of those APIs or concepts.  We can then have a strict boundary between hvPlot and all other projects, happily sending people off from hvPlot into the other projects when truly necessary, but making it clear that it's a step up in complexity or commitment, and that staying with hvPlot alone may be all they ever need.
If we do go this route, in addition to the above functionality issues, I think we'll need:

[ ] Finish hvPlot's Reference Gallery. Basically, if it's not in there, we should assume people will not know it exists! So we can't be relying on the HoloViews or Panel reference galleries; we have to duplicate some part of that in an hvPlot-focused form that we fully expect to be all that many users will ever see.
[ ] Fully document hvPlot as if it were the only library available for a set of well-defined functionality. This may duplicate some material currently on other sites, but it's not really duplication, it's a subset with a very different (and larger) audience.
[ ] Bifurcate our set of examples, e.g. those at examples.pyviz.org: All those that are covered by hvPlot's functionality (or can be gently massaged to be covered), make them use only hvPlot-documented APIs and interfaces. Each other example should explicitly explain at the start why it needs the special features of library X, and should be prepared to defend and justify that choice.
[ ] Polish up our tab-completion support to give a good experience for users exploring what a given object can do or provide, getting them to a solution without having to consult the docs whenever possible.

Of course, there are downsides of this approach, at least for now:

hvPlot only fully supports the Bokeh backend, so far. It's not a huge amount of work to support other backends, but Matplotlib and Plotly are both second-class citizens for hvPlot, usable but not mapping Pandas plotting options in the same way. So for now we have to be ok saying that if users want Matplotlib or Plotly plots, hvPlot is not the starting point for them.
hvPlot isn't declarative the same way HoloViews is, requiring information to be provided at plotting time that could have been declared up front in HoloViews. That's true, but is data-backend specific; e.g. xarray already allows a lot of the semantic metadata to be stored persistently, and there are proposals to let Pandas store that metadata as well (https://github.com/pandas-dev/pandas/issues/2485, https://github.com/jupyterlab/jupyterlab-metadata-service/issues/10). While it's a valid objection, especially for Pandas users, in practice most users generally create their HoloViews objects on the fly anyway, at which point there's no net loss -- whether the semantic metadata is provided in a throwaway HoloViews Element constructor or in a throwaway .plot() call, it's just as lost. So the solution here is to improve the capabilities of the underlying libraries, which isn't really an issue with using hvPlot per se.

How do people feel about this overall plan and vision?

IMHO this has more to do with hvPlot visibility more than anything else.
I give lectures on data visualization with Python in a Msc, (mostly using the holoviz ecosystem). I start by showing how Bokeh works and how extensible/customizable it is.
Then I switch to HoloViews, and the API design is very polarizing: for some students thnking in kdims and vdims becomes second nature, whereas others struggle.
After that I present GeoViews and datashader and pretty much everyone likes their capabilities.
By the time I start talking about hvPlot, lots of students ask me: Why didn't we start with hvPlot in the first place? It is simple, and similar to what I'd say a lot of people expect for a chart: defining its elements based on columns/dimensions they have got in their dataset. It's straightforward and simple.
I'd say that hvPlot's largest drawback is the lack of popularity. Bokeh is popular because it has been around for quite some years, but most people don't know about hvPlot. And by the looks of it, I would say that most of the Pythonistas creating interactive charts would find in hvPlot 99% of what they need. Even in data visualization, a lot of users only want something that works (this is, as high level as possible). That is also why Plotly rolled out Plotly Express, and basically they encourage users to use it as the main API. In fact, Plotly Express is all over Plotly's docs. If it weren't for Plotly Express being announced everywhere, I'm sure lots of users would have given up on Plotly (not because it is hard, but because it is inconvenient if everything you want is a simple, fast interactive chart).
If more people knew hvPlot exists, the Holoviz ecosystem would probably end up having a larger userbase. If they want more fine-grained detail, they can allways fall back to hv / bokeh.
My two cents :)

Having picked up the library recently I must say I have been confused into which library I have been using notably between what the difference between holoviews and hvplot was (I don't think it helped that I import holoviews as hv -> which is similar to hvplot) so yeah having a "correct" starting place is a great idea 👍
I also agree with the best practices I fancy(?) the API is different between different packages or maybe like you say the documentation uses the standard of year XXXX and I took that as the golden standard (I was thinking of geoviews.Dataset().to(geoviews.SOME_PLOT) whereas holoviews does holoviews.SOME_PLOT(holoviews.Dataset)
Not sure I can chime in on some of the more technical questions

If more people knew hvPlot exists, the HoloViz ecosystem would probably end up having a larger userbase. If they want more fine-grained detail, they can always fall back to hv / bokeh.

I completely agree, and indeed that's one of the main reasons we created hvPlot, so that these tools would be accessible to a larger userbase. Here I'm basically saying that this plan has now been successful on a technical level, so let's do the last  few things to make it successful on a community level, by inverting all of our messaging so that hvPlot is the first story, not an afterthought. Let's ignore history and tell the story the right way now!

My position is that visual analytics should be at the speed of thought.
It should take little (mental) effort to create the plots I need. This is why I use hvplot.
It's very similar to pandas plotting (df.plot()), which is why it was relatively easy to switch to.
Only when you know a library well, you can be highly effective and fast in it. That's why I don't use bokeh, plotly and matplotlib. Takes much more time to know it well and I need too many lines of code to get things done, which is slowing analysis down.
The only serious interactive alternative is plotly express.
The .interactive() feature could be a killer feature as it would make it even easier to explore data quickly.
If you need help on hvplot, I'm more than willing to help.

Thanks! Also see https://discourse.holoviz.org/t/using-the-new-interactive-with-pandas-not-xarray/1583/5, where some of these issues are discussed further.

So, if one were to start from day zero again, would this be the right place (if you like video tutorials)?
PyViz Unifying Python Tools for In Browser Data Visualization | SciPy 2018
https://youtu.be/DGLi-UWReM8?t=753

I also think hvplot would be the right entry point. Together with a modernized styling of the underlying bokeh engine.
With that you technically have a more powerful and extensible package than Plotly and plotly express. And a lot of Pandas users who would understand what you/ we are talking about. Then there is still the docs, examples, community and communication where Plotly is light years ahead.
One thing for me to understand. How would it be possible to not introduce Panel just a little bit if .interactive is a the center of hvPlot? You need the widgets from somewhere.

recommending that users only dive into the individual tools when certain clearly state-able conditions are met

I think the overall plan sounds awesome. I also think listing those conditions somewhere in the documentation right now would already help new users.

After having looked at the hvplot site I would think it needed an overhaul. The current site does not signal that hvPlot is at the center of HoloViz. The documentation is sparse and there is not even a search function.

Right; before making it the center of the universe, I wanted to get some buy-in. The current site reflects the point in history at which hvPlot was introduced -- a bit cleaner design, a bit simpler story, but still quite sparse because most things were already documented on other sites, and hvPlot was an afterthought. To change that requires a lot of work, which we can do if there's agreement it's a good idea, which so far there seems to be.
@MarcSkovMadsen , for the widgets, I have a partial proposal at https://github.com/holoviz/panel/issues/1826 , where I propose doing something like interactive does to infer widgets from scalars and ranges. I don't think this approach would address the ambitious apps that you yourself are building, but that's not the point of this proposal; detailed control over widgets can still be passed off to Panel (particularly if pointing to specific sections of the Panel website, such as the widgets reference gallery). The goal would be for most users most of the time to not need to go figure out the name of such a widget or to look up its detailed options, but for it to be clear that if people need to do that they are welcome to do so.
@mycarta , sure, that's a reasonable starting point for plotting with hvPlot, in that the material there hasn't changed since then.  It doesn't cover building apps using your hvPlot objects, which previously would have required callbacks and decorators, and now with .interactive only requires method calls. The hope is to be able to do viz and even apps "at the speed of thought", as @SandervandenOord says (as long as you think in terms of Pandas or Xarray API calls!).

The hope is to be able to do viz and even apps "at the speed of thought", as @SandervandenOord says (as long as you think in terms of Pandas or Xarray API calls!).

That would be fantastic!!! For my part, I cannot foresee needing much more than that in my scientific computing and explorations, whether by day (job) or night (hobby).

Here's some of my thoughts still:

HoloViews has such an interesting and original way of looking at data and visualizing data. I hope that doesn't get lost when putting more focus on hvplot.

Users have a need for quick plotting, but there's quite some good alternatives, plt.plot(), df.plot(), sns.scatterplot(), px.scatter(), df.hvplot(). So what do users need/want? I still don't understand that people choose plt.plot() over any of the other possibilities. How often does one need a completely customized specifically designed plot?

What i wonder is that if I check this page, there are so relatively few downloads for both hvplot but also plotly express: https://pyviz.org/tools.html
The normal plotly has 3 million downloads a month, plotly express has only 65k a month. Although maybe that's not fair, since plotly express is now 'embedded' into plotly and you can just do: import plotly.express as px. But bokeh has 1.5 million, holoviews 140k and hvplot 75k. Curious how these numbers have been developing over time. Is hvplot catching up on holoviews? There are more questions on holoviews than on hvplot on stackoverflow and discourse.holoviz.org.

HoloViews has such an interesting and original way of looking at data and visualizing data. I hope that doesn't get lost when putting more focus on hvplot.

Definitely. The original way that HoloViews looks at data is both its strength and its liability. It gets power from its deep model of how data works and what it means to plot it, but for users to exploit that power, they have to expand their own mental models to accommodate HoloViews. hvPlot takes the opposite approach: try to surface as much of the power available in HoloViews while staying roughly within the mental model people already have. At first it wasn't clear to me just how much could be made available in that way, but with .interactive it's clear to me that very, very much can be! The native HoloViews API will still be available for people like @SandervandenOord and the HoloViz developers who have developed that mental model, but in most cases people will no longer have to embrace the underlying HoloViews philosophy and model; they can benefit from it anyway!

Users have a need for quick plotting, but there's quite some good alternatives,

I've argued that of the available high-level APIs, it makes sense for users to focus on the Pandas .plot API because it's the only one that is available from a wide variety (at least 6!) of different libraries with different strengths. Thus given that no user can ever learn all APIs, and that most users will simply learn one and get back to what they were doing, I feel confident strongly recommending that that one API is .plot, regardless of whether you choose hvPlot.

What i wonder is that if I check this page, there are so relatively few downloads for both hvplot but also plotly express:

Download counts are very hard to reason about, but there are many reasons why low-level tools like Matplotlib and Bokeh will have higher download counts than high-level tools:

Often the low-level tool is much older, which means that it had first-mover and networking effects (recommendations in courses, tutorials, blogs, etc.), making most people find it sooner than low-level tools
Viz tools are very sticky -- once you've learned one API, it's very hard to justify learning another, so again older tools have a strong advantage
Both low-level and older tools are more likely to be integrated into CI systems for other libraries, which can inflate download counts
A low-level tool is typically installed alongside every high-level tool installed. E.g. every hvPlot conda download is also a HoloViews and Matplotlib and Bokeh download. Separating core and user packages (matplotlib vs. matplotlib-core) can help here, but only if other tools respect that distinction, which again is sticky

Personally, I strongly believe that nearly all users should start with a high-level tool and leave it behind only when they outgrow it or get frustrated with its limitations. So I think there should be vastly more people who use hvPlot than Bokeh or Matplotlib's native APIs, if things were able to be made rational at this point. But first-mover and history and network effects and fear of lockin instead lead users to start with low-level tools, making their lives much more difficult than they need to be. This proposal is basically proposing to (a) really defend hvPlot as a suitable solution for the vast matjority of users, then (b) try to point people to hvPlot directly from as many locations as possible so that they don't get stuck in complexity or learning curves that they don't actually have to navigate to solve their problems.

What does the developers of holoviews Think. Will they be just happy to continue contributing to it. Or will they find it less attractive? and the development stop?

hvPlot is only a thin layer on top of HoloViews. Nearly all innovation and bugfixing happens at the hv level, automatically fixing hvPlot or adding features to it. So there's no danger of hv atrophying. The big issue will just be that things will need documenting at the hvPlot level for people to realize they exist.


"I don't know what's introductory in perl6/doc"

<jmerelo> AlexDaniel: but I don't know what's introductory in perl6/doc.

So I went to Language Documentation wearing the hat of a new user, and… I don't know either.
The documents are sorted alphabetically, so the very first thing I'm presented with is "Classes and Objects", and the second one is "Concurrency". One of the introductory topics—"Variables"—is very last in the list.
There's also a second problem with alphabetical sorting: related topics are quite far apart in the list: "Classes and Objects", "Object Orientation", and "Meta-Object Protocol" are related topics, yet the they're some ways apart from each other. We have "Functions" describing subs and "Routines" listing a few of core routines, and if I spotted the latter first, I might've assumed that's all there were for "functions" documentation.
I'd suggest better ordering than alphabetic: order by difficulty, starting with most basic concepts first. I think some subsections grouping related topics could also be useful.

Related to #1969 and maybe to #1823, if it's the page itself what's going to be changed. Maybe create a new front page would be a solution, but that would be major. Maybe simply creating a new page with all those pages (OK, maybe not all of them) in a logical order would be a second best.

Note that originally the 5to6 pages appeared at the top.
See https://web.archive.org/web/20151128202454/https://docs.perl6.org/language.html
This sort of order is still used by the single page version of the docs.
https://docs.perl6.org/perl6.html
Probably because pod2onepage still orders based on filename alphabetical sort rather than title.
This sort of order was convenient since it meant a intro for perl 5 users was at the top but the ordering probably should be more explicit and less fragile.
If we went back to this ordering then there probably needs to be another section a more general non-language specific intro basic tutorial above the perl 5 one. I don't think it should be long and it mostly should plug perl6intro.com but a short example might be nice. It might be possible to reuse existing content from the dead perl6 book at
https://github.com/perl6/book
or even jnthns slidedeck which ships with star at
https://github.com/rakudo/star/blob/master/docs/2015-spw-perl6-course.pdf

The current ordering is by alpha sort on the title whis extracted from inside the page. By adding a config tag and desired sort order value on the “=begin pod” line we can have instant sorting by a slight tweak from title to tag value.

2cfbe8035e933bcc8dee6e966c6cff64fb18d3c2 as a "quick fix"

I have I believe a working soultion I will submit as a PR after I get it cleaned up a bit later today.

I think we’re on track to satisfying this, and this issue can be closed soon.

There is now an introductory example (pinched from the old perl 6 book) at the top of
https://docs.perl6.org/language.html

Would the example above satisfy this issue?


Way to use both historylocation, and hash navigation?

I want to use historylocation for my overall application, but I want the ability to use hashes in one of the components... is this currently possible?

hashes will continue to do what hashes are designed to do in the first place, link to anchors on the page. What are you trying to do exactly?

In the documentation, it's mentioned that react-router can either be used like this:
Router.run(routes, function (Handler) {
  React.render(<Handler/>, document.body);
});

which basically defaults to "Router.HashLocation"
Or like this:
Router.run(routes, Router.HistoryLocation, function (Handler) {
  React.render(<Handler/>, document.body);
});

Which uses html5pushstate.
The thing is, I want to use both. Most of my application maps to how the server would render it, but there is a portion of my application that is completely client side, and I don't want to put an "actual" url window.location that if the user copy and pasted, would just hit a 404. Do you get what I'm saying? I want the ability on a parent component to use HistoryLocation, and inside a child component inside the routes argument, I want to define a separate route, and use HashLocation.
Following is sample code:
var routes = (
    <Route name="App" path="/" handler={AppComponent}>
        <Route name="main" path="main/" handler={MainComponent} />
        <Route name="checkout" path="main/checkout/" handler={Checkout} />
    </Route>
);

Router.run(
    routes,
    Router.HistoryLocation,
    function(Handler) {
        React.render(<Handler />,document.getElementById('app-container'));
    }
);

So this would be a normal application (not perfect but you get the general idea.)
But let's say inside of checkout I have a persistent header, and then different parts of checkout
var routes = (
    <Route name="App" path="/main/checkout" handler={CheckoutForm}>
        <Route name="main" path="main/checkout/shipping" handler={CheckoutShipping} />
        <Route name="checkout" path="main/checkout/billing" handler={CheckoutBilling} />
    </Route>
);

Router.run(
    routes,
    function(Handler) {
        React.render(<Handler />,document.getElementById('app-container'));
    }
);

Again, the above isn't perfectly coded (hence the reason I'm asking), but you see what I'm getting at? A component in the parent route, maybe wants to have it's own routes, that don't use HistoryLocation. So take into consideration the following urls:
http://www.example.com
http://www.example.com/main
http://www.example.com/main/checkout
http://www.example.com/main/checkout#shipping
http://www.example.com/main/checkout#billing

So like I said, combining the uses of the hashes (hashstate) and history location. If you use HistoryLocation the whole way through and whatever urls the router is generating don't match up with the response of the server, if the url is copy pasted, it's going to be a problem. But with the hashes, that's a safe(r) link to share.
I can clarify any of this, let me know.

Why not fix the server to correctly handle these “client-side” routes? You'd only need it to serve checkout on checkout/*. Or am I missing the point?

Changing server isn't always possible. Not a deal breaker, I just wanted to see if this was possible with this library... I'm assuming it's not at this point :smile:

I wouldn't say it's impossible, I think you can implement a custom Location that uses both HashLocation and HistoryLocation under the hood.

Any luck with the custom location approach?

I'll have to look into it. Thanks for the tip.
I guess I'm supposed to close this ticket now. Thanks again.

No problem. If you're having troubles, let me know.

I found a hacky solution to this. I essentially copied the HistoryCollection location, and modified the getWindowPath to include the hash:
function getWindowPath() {
  // We can't use window.location.hash here because it's not
  // consistent across browsers - Firefox will pre-decode it!
  var hash = window.location.href.split('#')[1] || ''
  if(hash) hash = "#" + hash

  return decodeURI(
    window.location.pathname + window.location.search + hash
  );
}

Then I can define routes like this:
var routes = (
  <Route handler={App}>
    <Route name="buildList" path="/widgets" handler={require("./components/WidgetList")} />
    <Route name="show" path="/widget/:widget" handler={require("./components/WidgetShow")} />
    <Route name="showJob" path="/widget/:widget#:job" handler={require("./components/WidgetShow")} />
    <Route name="showJobAndLine" path="/widget/:widget#:job/:line" handler={require("./components/WidgetShow")} />
  </Route>
);

So the routes with the anchors just like any other route - and we can still use all the nice things that react-router supplies. @gaearon can you think of an easier way of achieving this behaviour instead of me copying HistoryLocation and changing getWindowPath?

(The use case is a feature similar to the line linking on GitHub)

I wouldn't say it's impossible, I think you can implement a custom Location that uses both HashLocation and HistoryLocation under the hood.

I searched the repository for HashLocation and didn't find anything: https://github.com/reactjs/react-router/search?utf8=✓&q=HashLocation
Can someone help me please? I want to make the custom Location. My use case is I want "/aboutus/#/login" for example show the login dialog on top of "about us" page (same for "/x/#/login").

I found this: http://stackoverflow.com/a/32930240 I think it solves the issue, I just have reduxify(!) it.

Has a solution similar to @keithpitt 's above been identified as a possible/correct way to do this.
I have just a different use-case in that I think it just more sense to use /paths/ for things on different views and # hashes for things on the same view but under a different subview...eg. tabs, carousel, etc etc.   Just seems to make more sense, even if a completely /path/ solution works all the same.

is there any news on this?


doc: Add v3.16.2 release docs

Summary
Closes #685
Checklist

[x] Scope: The referenced issue is addressed, there are no unrelated changes.
[x] Run Locally: Verified that the docs build using make server, posted screenshots, verified external links. Test with HUGO_PARAMS_SEARCH_ENABLED=true if style changes will affect the search bar.
[ ] New Features Marked: Documentation for new features is marked using the new-in-version shortcode, according to the guidelines in CONTRIBUTING.
[x] Style Guidelines: Documentation obeys style guidelines in CONTRIBUTING.
[x] Commits: Commit messages follow guidelines in CONTRIBUTING, there are no fixup commits left.

I can't see why this is failing, @htdvisser can you please check it out?

ERROR 2021/12/17 14:04:44 Referenced type not rendered:  "ApplicationWebhookHealth" in page "/home/runner/work/lorawan-stack-docs/lorawan-stack-docs/doc/content/reference/api/application_webhooks.md:40:1"

So that message should be added to that page.

@


Separate APIserver installation in OCP for tech preview

Description

Sets the creation of the OS apiserver to be optional (since it is currently in tech preview). This PR should be undone when the APIserver becomes GA.
Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

None required

Turns out that this isn't needed. We want API server to be on by default in tech preview since it doesn't have any effect on the cluster unless you try to use kubectl to edit resources


Error building application venv

Rebuilding the applications venv via make venv reports
...
Collecting mysqlclient (from -r requirements.txt (line 11))
  Using cached https://files.pythonhosted.org/packages/de/79/d02be3cb942afda6c99ca207858847572e38146eb73a7c4bfe3bdf154626/mysqlclient-2.1.0.tar.gz
    ERROR: Command errored out with exit status 1:
     command: /home/webis/tira/tira-application/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7sqqxmrw/mysqlclient/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7sqqxmrw/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
         cwd: /tmp/pip-install-7sqqxmrw/mysqlclient/
    Complete output (15 lines):
    /bin/sh: 1: mysql_config: not found
    /bin/sh: 1: mariadb_config: not found
    /bin/sh: 1: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-7sqqxmrw/mysqlclient/setup.py", line 15, in <module>
        metadata, options = get_config()
      File "/tmp/pip-install-7sqqxmrw/mysqlclient/setup_posix.py", line 70, in get_config
        libs = mysql_config("libs")
      File "/tmp/pip-install-7sqqxmrw/mysqlclient/setup_posix.py", line 31, in mysql_config
        raise OSError("{} not found".format(_mysql_config_path))
    OSError: mysql_config not found
    mysql_config --version
    mariadb_config --version
    mysql_config --libs
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Can you try installing mysql before running the requirements file?

Didn't work but this does:
sudo apt-get install libmysqlclient-dev
Source:
https://stackoverflow.com/questions/7475223/mysql-config-not-found-when-installing-mysqldb-python-interface?page=1&tab=votes#tab-top


disable plugins

hello dear mattermost users/team
When trying to add new plugins to mattermost all other pluggins seem to get disabled or completely stop working (even the new plugin)
Is this issue becuase we're using the free version or is it a bug? and is there any limit to how many plugins we can add to the free version?
These are the plugins that are currently installed
1.Agenda
2.Calls
3.Mattermost boards
4.Mattermost RTL
5.Matterpoll
6.Todo
7.Voice
Thank you in advance

Hi @r3zn0v, thanks for creating this issue.
Just so I understand correctly, this error only shows up just after installing a new plugin? Do the errors persist after restarting the server?


A strange symbol '%1$s' shows in localized descriptions on break lease dialog

Storage Explorer Version: 1.10.1
Build: 20191012.1
Branch: master
Platform/OS: Windows 10/ Linux Ubuntu 19.04/macOS High Sierra
Language: Chinese(zh-CN)/ Chinese(zh-TW)
Architecture: ia32/x64
Regression From: Not a regression
Steps to reproduce:

Launch Storage Explorer.
Open Settings panel -> Regional Settings -> Select Chinese (traditional) as application language -> Restart Storage Explorer.
Expand one Non-ALDS Gen2 storage account -> Blob Containers.
Select one blob container which contains at least two blobs.
Select two blobs and acquire lease for them.
Select the two leased blobs then try to break lease for them at the same time.
Check the localized descriptions on the break lease dialog.

Expect Experience:
No strange symbol shows in localized descriptions.
Actual Experience:
A strange symbol shows in localized descriptions.

@craxal Localized same way as source.
https://devdiv.visualstudio.com/DevDiv/_git/StorageExplorer?path=%2Floc%2Floc%2Fzh-Hans%2Fsrc%2Fcomponents%2Fse-blob-extension%2Fresources%2FBlobEditor.json.lcl&version=GBmaster
ID: 0; "Dialog.BreakLeaseMultipleWithoutVHDMainText"
SRC: Breaking leases on blobs will allow them to be deleted or modified. To proceed with breaking the leases, please enter '%1$s'.
TGT: 中斷 Blob 上的租用會讓其得以刪除或修改。若要繼續中斷租用，請輸入 '%1$s'。

Make sure we're using sprintf, and not vsprintf.


About the annotation and mask issues

Hello Killthekitten,
Thanks for sharing your great work! It would be helpful.
I am working on a project that trains a instance segmentation model by using open image data set. I saw most of people using matterport mask rcnn implementation said need to feed vid format annotation to the model as input. However, the open image data set only comes with images, bitmap masks and some csv files, totally different.
What I am curious about is, it seems that your training is not used with annotation, but with masks. Is it correct？
Thanks a lot!

@wfeng66 hey sure. To me annotations and masks are the same thing, they're just synonyms in this context. Having said that, it's been a while since I worked on this, chances are I'm missing something obvious. Have you tried going through readme?

Great! Thank you for your rapid response! I will try your model.


Bump core-foundation dependency to 0.10

The inspiration was https://github.com/ruffle-rs/ruffle/pull/17944, where gilrs-core pulled in this new version, duplicating this crate.
However, there are many other crates depending on 0.9 still.

Thanks for the quick merge!

This is now out as v1.0.2


Redirect target landing doesn't invoke TurbolinksSession.visit ?

Rails 5 / Turbolinks 5.0.0
We are playing with turbolinks-android with a Rails app (we just upgraded to Rails 5) and noticed an undesirable behavior (or non-behavior) with redirects.
Take the following scenario:

User is on our homepage and logged in.
They click on a "logout" link.  When they click on this link the TurbolinksSession.visit method is called and the TurbolinksSession.location property it set to /logout.
In the rails controller that handles the logout request we simply clear the user's session and redirect them back to the homepage:

def logout
  session.clear
  redirect_to root_path
end

When this redirect is executed I notice that the TurbolinksSession.visit method is not called.  So, the TurbolinksSession.location property is still set to /logout.

At this point the user can submit a form (on the home page) that results in us starting an oauth dance to log the user in.  Again, the TurbolinksSession.location is still set to /logout since visit doesn't get called on this post.

When the user returns to our site (after oauth) they get directed to our homepage.  However, TurbolinksSession.visitCurrentLocationWithTurbolinks gets fired and since the current value of TurbolinksSession.location is /logout they get directed to logged out again.

I played with redirect_to a bit to make sure it had nothing to do with getting logged out.  Anytime we are navigated to a page via redirect_to the TurbolinksSession.location is not set the page we ended up on.
Is there something that need to be done explicitly so that TurbolinksSession.location is set properly in our scenario so that the user ends up on the correct page after returning from authenticating?

I think http redirect will break Turbolinks, try submit logout via remote link(ujs), and redirect_to will call Turbolinks. visit automatically.

Hey there. Sorry for not getting back to you sooner. A few potential things to consider:

@chloerei's solution should work. A submit via XHR/remote ought to do the trick I believe.
If it's a known scenario like logout, you could also reset the entire Turbolinks Android session. Not something you'd want for a non-logout, but may be an option here.
The core Turbolinks team is planning some general fixes around location state for 5.1.


Add configurations for registry DB separation

Purpose
Add configurations for registry DB separation.
Related Issues

https://github.com/wso2/product-is/issues/21831

Trigger PR builder before merging the PR

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/12173094216

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/12173094216
Status: success


Added new tests for the DeviceInstallationServiceTest class

Coverage has been increased to 95.6%

Can one of the admins verify this patch?


Add Server::acceptor_mut

I have a use-case where I implemented my own Acceptor. Additionally I would like to add more configuration options, but currently it's not possible to modify the acceptor once wrapped in Server. My proposal is to add a method that can return a mutable reference to the Acceptor called Server::acceptor_mut(), bikeshedding welcome.
The alternative is to use the Server::acceptor() to add a pre-configured Acceptor, but the user-ergonomics are slightly worse that way.
Happy to make a PR if this is approved.

Good idea. It would also be nice to add more methods like map to make working with Acceptor easier.


[KBFS-1159] Check for handle mismatch in FBO.getHead()

This makes sure that even if a malicious MD server
sends a client MD objects for a TlfID that doesn't
match the client's handle, it gets caught by the
FBO.
MDOps should be the one doing the checking, but this
works for now.
Add Equals and ResolvesTo methods to TlfHandle
and use it everywhere.

Looks good to me mod nits and Windows fix.

The Windows CI failure is a compile error. The Mac CI failure looks like a hang, but it might just be that machine running too slow, or disk I/O running too slow (see goroutine 29641 in the stack).