Implement all scipy.spatial.distance metrics in _distance_pybind

This issue is to track progress of migrating scipy.spatial.distance per-metric cdist/pdist implementations from the original _distance_wrap module to the new _distance_pybind module and C++ framework (gh-13907).
Some of these metrics operate on bool input, which isn't supported by the framework yet. But for most, it's just a case of writing the core distance calculation.
Metrics

[x] braycurtis (gh-14033)
[x] canberra (gh-14085)
[x] chebyshev (gh-13907)
[x] cityblock (gh-13907)
[ ] correlation
[ ] cosine
[ ] dice
[x] euclidean (gh-13907)
[ ] hamming
[ ] jaccard
[ ] jensenshannon
[ ] kulsinski
[ ] mahalanobis
[ ] matching
[x] minkowski (gh-13907)
[ ] rogerstanimoto
[ ] russellrao
[ ] seuclidean
[ ] sokalmichener
[ ] sokalsneath
[x] sqeuclidean (gh-14033)
[ ] wminkowski
[ ] yule

The following comment has been carried around in various distance issues for a while. I was wondering to open specific issues for that, but it seems that if a rewrite happens, the points would naturally fit already...?

Quote of comment for reference

hamming doesn't compute the Hamming distance, but scales it dividing by the vector dimension. They are closely related, but are not quite the same. I would like to have matching and sokalmichener return the old value, but make hamming return the proper unscaled Hamming distance. Can this be happily done, or is it best to first add some form of deprecation warning?

sokalmichener is also wrong in the current implementation. It returns the same as rogerstanimoto, but it should return the same as matching. I think there was an open issue complaining about this already.

wminkowski is also computing a slightly erroneous version of the weighted Minkowski distance. According to the documentation, components are subtracted, their absolute value raised to the p-th power, and then get multiplied by the corresponding weight. This is consistent with the few definitions I have seen in the literature. But the actual implementation multiplies by the weight before raising to the p-th power. Can this be changed happily?

minkowski has a check for p >= 1. That condition is usually enforced for the Minkowski distance to be a metric, i.e. for the triangle inequality to hold. This is a very restrictive condition, because many of the other distances are not proper metrics. Furthermore, the condition is not enforced either in pdist or cdist, which will happily take ps smaller than 1. I would like to drop this as well.

kulsinski returns a value based on a formula that I have found in a paper, but which is not consistent with most of the literature. I would like to either add a kulczynski1 function implementing the proper Kulczynski 1 distance, and eventually remove the current kulsinski, or directly replace the current implementation with the new one. Thoughts on this?

AFAICT,
1./2. are tracked in #2011
3./5. Tracked in #2009, WIP implementation in #14588
4. Not tracked, see also this comment.

@peterbell10 @h-vetinari Seems like there is a lot to do here. Can I help with some of the distance metrics?

Following distance measure might be tricky to fit in the current C++ pybind framework,

mahalanobis - It has a different API and requires matrix multiplication. Accumulating results isn't required.
seucledian - Different API. Needs V (component variances) as extra input.
wminkowski - Slightly different API. Needs p as an extra input. Though, I think this should be easy to adjust into the current framework.
jensenshannon - A different concept. Needs, m ((p + q)/2)  to be computed. Though then the accumulation stuff can be applied i.e., by using _transform_reduce_2d thing.
cosine - Needs row wise norms which are used in the project step of the framework.
correlation - Need row wise averages and norms.

Rest of the distance metrics can be easily added into the pybind framework. For the above 6 we need to figure out whether to add them separately or factor out some common parts among these metrics and then change the framework. It might be a tricky task.

Following distance measure might be tricky to fit in the current C++ pybind framework,
[...]
3. wminkowski - Slightly different API. Needs p as an extra input. Though, I think this should be easy to adjust into the current framework.

wminkowski is deprecated since #12374 and slated for removal in scipy 1.8; should be no need to change anything (other than remove it).


singularity-tools.buildImage: non-deterministic

Steps To Reproduce
❯ nix build -f '<nixpkgs>' apptainer.tests.image-hello-cowsay --print-out-paths
/nix/store/yxznakyhiwzvy5w1v7yr8hmjih2c5dlx-apptainer-image-hello-cowsay.img
❯ nix build -f '<nixpkgs>' apptainer.tests.image-hello-cowsay --print-out-paths --rebuild
error: derivation '/nix/store/v5xq9nyw68f8l5dy1wj95psqpz3faf4i-apptainer-image-hello-cowsay.img.drv' may not be deterministic: output '/nix/store/yxznakyhiwzvy5w1v7yr8hmjih2c5dlx-apptainer-image-hello-cowsay.img' differs

Known impurities, assuming we've just run nix build .#apptainer.tests.image-hello-cowsay:

[ ] The sif "header", observed by apptainer inspect ./result
[ ] Labels inside the JSON.Generic "data" section, as seen via apptainer sif list ./result, apptainer sif dump 2 ./result❯ read JSON_LAYER < <(apptainer sif list ./result | grep JSON | cut -d" " -f1)
❯ apptainer sif dump "$JSON_LAYER" ./result  | jq '.data.attributes.labels."org.label-schema.build-date"'

[ ] build-arch?

[ ] .singularity.d/labels.json inside the squashfs section?
[ ] One of the above did contain random UUIDs, iirc

Expected behavior
Identical hashes
Additional context
Add any other context about the problem here.
Notify maintainers
@ShamrockLee

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
❯ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.69, NixOS, 24.05 (Uakari), 24.05.20231224.5f64a12`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.19.2`
 - channels(ss): `"nixgl"`
 - channels(root): `"nixgl, nixos-21.05.2132.733682c3292"`
 - nixpkgs: `/nix/store/5acdh8xyry0kdvp6xla2hw7wf3zkphkl-source`

@ShamrockLee

Add a :+1: reaction to issues you find important.

A prospective solution is to patch apptainer and/or sif-tool to clean out (conditionally) the impurities


Small fixes to the PPO trainer doc and script.

One outstanding issue is that ppo_trainer.save_model doesn't exist. How do we actually save the model after training?

Hi @namin, thanks for the PR. However, I don't quite understand why the fixes are needed and what the changes fix exactly besides the typo in the docs. Can you elaborate?

Sorry, I thought I needed these changes to get the script working, but maybe it was before installing from main instead of release. I reverted those changes, and kept only the doc changes.
Thank you!

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Thank you. I still have a lingering question about saving the model. The doc says to use save_model but this method is not available on the PPO Trainer. So looking at the source code, I use _save_pretrained, but that is an internal method. WDYT? Should the PPO Trainer expose save_model?

The PPOTrainer inherits from the PyTorchModelHubMixin and as such has a save_pretrained method by default that makes use of the private _save_pretrained method:
    >>> import torch
    >>> import torch.nn as nn
    >>> from huggingface_hub import PyTorchModelHubMixin

    >>> class MyModel(nn.Module, PyTorchModelHubMixin):
    ...     def __init__(self):
    ...         super().__init__()
    ...         self.param = nn.Parameter(torch.rand(3, 4))
    ...         self.linear = nn.Linear(4, 5)

    ...     def forward(self, x):
    ...         return self.linear(x + self.param)
    >>> model = MyModel()

    # Save model weights to local directory
    >>> model.save_pretrained("my-awesome-model")


[Feature] Add Particle Text with Hover Effect

Description
We aim to enhance the user interface by adding text that is composed of particles. When a user hovers over this text, the particles should scatter, creating a visually engaging effect. This feature will add an interactive and dynamic element to our page.
Screenshots
https://github.com/Rakesh9100/Beautiify/assets/113046759/4de6f156-f63d-4b57-8f16-921289c366aa
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

@Rakesh9100 new text animation addition

Do you want to add this as a component in Text Animations category @Skb08

@Rakesh9100 yes

@Rakesh9100 can you assign this to me?

What would be the name of your component @Skb08

Bubble Animation Text

Go ahead, you can name it Bubbles-Text-Animation


Use local font "Ubuntu Regular" for rendering tests

Set local font for all rendering tests including TextStyles to enhance comparability on different systems.

I could think of two reasons for the differences:

The fonts are not yet loaded when the image is taken. To make sure the font is loaded, you could listen to the 'clear' event on ol/render/canvas.labelCache.
The font is not defined for 12px, so browsers scale them differently. Maybe 16px works better? Also make sure to not define a fallback font, i.e. '16px "Ubuntu Regular"' instead of '12px "Ubuntu Regular", sans-serif'.

The font is not defined for 12px, so browsers scale them differently. Maybe 16px works better? Also make sure to not define a fallback font, i.e. '16px "Ubuntu Regular"' instead of '12px "Ubuntu Regular", sans-serif'.
I tried to fix it as propsed.

But i think the font is loaded correctly as the shape of the letters is identical.
What differs is weight, height and maybe spacing.

But i think the font is loaded correctly as the shape of the letters is identical.
What differs is weight, height and maybe spacing.

Right. It will be necessary to find the exact size and weight that the Ubuntu Regular fonts you added are defined for. So maybe 16px Ubuntu and italic bold 16px Ubuntu would work as font property for better cross-platform results.

I also noticed that the pixelRatio configuration on the map is missing in some of the tests. This is important when running tests on devices that have a different pixel ratio.

I finally satisfied the CI by decreasing the font sizes which leads to comparing more white pixels. Not sure if  I'm satisfied with theses results, too. But at least the test are green now.

Thanks for your continued effort on this @KaiVolland. Most of the changes are good, but the 2px fonts are too small. The risk of breaking renderer changes to fall through the tolerance is too high here. Maybe going back to a larger font size for those works, in combination with also setting a line height. Something like 'normal 400 12px/1 Ubuntu'

Thanks @KaiVolland & @ahocevar for the collaborative effort! :clinking_glasses:


update spring 3.1→3.2

spring update.
add version controll variable

Codecov Report
Attention: Patch coverage is 0% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 65.35%. Comparing base (f2a97d4) to head (53b03ac).
Report is 23 commits behind head on develop.

Files
Patch %
Lines

.../main/java/com/galewings/GaleWingsApplication.java
0.00%
5 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@              Coverage Diff              @@
##             develop     #224      +/-   ##
=============================================
+ Coverage      64.10%   65.35%   +1.24%
- Complexity       332      390      +58
=============================================
  Files            128      142      +14
  Lines           1170     1342     +172
  Branches          52       56       +4
=============================================
+ Hits             750      877     +127
- Misses           373      414      +41
- Partials          47       51       +4

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


fix should not put bound expr into unbound group by list (#25938)

cherry-pick from master
PR: #25938
commit id: 2229d82acd895ab968f707b851f47c67d9a820ae
we put bound expr into unbound group by list by mistake. This will lead to bind twice on some exprssion.
Since binding is not idempotent, below exception will be thrown for sql
select k5 / k5 as nu, sum(k1) from test group by nu order by nu nulls first

Caused by: org.apache.doris.nereids.exceptions.AnalysisException: Input slot(s) not in child's output: k5#5 in plan: LogicalProject[176] ( distinct=false, projects=[(cast(k5#5 as DECIMALV3(16, 10)) / k5#5) AS `nu`#14, sum(k1)#15], excepts=[] ), child output is: [nu#16, sum(k1)#15]
plan tree:
LogicalProject[176] ( distinct=false, projects=[(cast(k5#5 as DECIMALV3(16, 10)) / k5#5) AS `nu`#14, sum(k1)#15], excepts=[] )
+--LogicalAggregate[168] ( groupByExpr=[nu#16], outputExpr=[nu#16, sum(k1#1) AS `sum(k1)`#15], hasRepeat=false )
   +--LogicalProject[156] ( distinct=false, projects=[k1#1, (cast(k5#5 as DECIMALV3(16, 10)) / k5#5) AS `nu`#16], excepts=[] )
      +--LogicalOlapScan ( qualified=default_cluster:regression_test_nereids_syntax_p0.test, indexName=test, selectedIndexId=503229, preAgg=OFF, Aggregate function sum(k1) contains key column k1. )
    at org.apache.doris.nereids.rules.analysis.CheckAfterRewrite.checkAllSlotReferenceFromChildren(CheckAfterRewrite.java:108) ~[classes/:?]

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Upgrade to pro causes force close

For both Pro and Tip

Google Play Store error.

Added a try catch to display a toast saying Play Store connection failure to avoid hard crash.


Added department-members-list

Q
A

New sample?
yes

What's in this Pull Request?
This sample demonstrate how to turn list items into a custom table.

Thank you for all your great samples!
I have one question and one request. I apologize for the inconvenience, but I would appreciate it if you could check it out when you have a moment.
Question
In the README, you mentioned that “Name (with picture and details) needs to be changed”. Is this to solve the problem that the user's jobTitle is not displayed?
When I checked this sample in my environment, the jobTitle was not displayed before changing to "Name (with picture and details)", but after changing to "Name (with picture and details)", the jobTitle was displayed.
*I am going to create an issue in sp-dev-docs if you are experiencing the same thing.
Request
The sample name “Table” seems a bit abstract, so could you please change it to something more concrete?
Example:

team-members-table
department-members-list

Thanks for the answer and the update!
I also created the following issue and reported it to Microsoft.
https://github.com/SharePoint/sp-dev-docs/issues/10063


Electron version not read from package.json if WDIO config is in a subdir

If the wdio.conf.js file is in a sub directory, the service won't find the Electron version automatically anymore because the config file is not located next to a package.json anymore. I suggest to use pkg-up to find the closest one.

Presumably we also want to use pkg-up to find the productName for passing to getBinaryPath too...

Is there any way we can assume a good default here and allow users to set only if desired. It would be amazing if users don't have to set anything if they follow the default setup.
I will look into this.


Datacite publish argument

This is only partially tested, since the data isn't actually sent off to the test server. If we were to do that in a test, we would accumulate findable and undeletable(?) DOIs.
@yarikoptic I invite followup commits with more comprehensive testing.

Added labels, all green now. I would've preferred avoiding copy pasting data structures across tests and come up with reusable scenarios (otherwise harder to spot relevant code/data) but that I guess could be done later. Let's proceed and release library so could be put to use

If we were to do that in a test, we would accumulate findable and undeletable(?) DOIs.

FWIW at least in webui indeed "Delete" button in the menu on the left is not available for "Findable" DOIs like https://doi.test.datacite.org/dois/10.80507%2F000003%2F0.210401.2020, but present for "Draft", like https://doi.test.datacite.org/dois/10.80507%2Fdandi.000035%2F0.210729.1456  . Didn't try via API, and indeed we would not want to keep breeding DOIs (even in the test. instance)


Revised the "Clusters" Section of the Docs

Moved the page about our RethinkDB-based AWS deployment template to the Appendices. This is part of the ongoing effort to de-emphasize RethinkDB in favour of MongoDB.
Made the section about Clusters into a single top-level page (i.e. not a section with a folder containing an index.rst file).
Completely re-wrote the Clusters page. Added more about consortium governance, and a new subsection summarizing how we manage cluster DNS records and SSL certificates.

Codecov Report

Merging #1527 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1527   +/-   ##
=======================================
  Coverage   98.41%   98.41%
=======================================
  Files          58       58
  Lines        2779     2779
=======================================
  Hits         2735     2735
  Misses         44       44


Depend on SchemaMigrationCheckService instead

SchemaMigratorService is a test only service that prod/staging does not
install anymore.

And once @mightyguava lands the ExternalDependency stuff we can move SchemaMigratorService to a MysqlDependency

this doesn't work. trying something else


ms-vscode.cpptools

https://github.com/MicrosoftDocs/Virtualization-Documentation/blob/main/.vscode/extensions.json

@lkim100 - could you elaborate your ask here?

@lkim100 Follow up on the above. Can you help us understand your request/issue here?


Optimize toFlattened

Currently: toFlattened uses ind2sub/ind2subc, one call for each element in the array
https://github.com/deeplearning4j/libnd4j/blob/e080e0a65b03a9801ed36cc025098fccd10c0797/blas/cpu/NativeOps.cpp#L1379
This approach is going to be too slow in practice, and we're seeing this as a bottleneck.
One thing I realized: toFlattened(order) with order is actually the exact same operation as dup(order), in terms of the contents in the buffer. The only difference there is the shape information. Thus we could/should leverage the same code for both.

so if we do a toFlattened('f'), our resulting row vectors contains the array in an f order traversal of the values
similarly if we do a dup('f') our buffer contains the values in f order...

here's some other thoughts that might help to optimize this:

special case: full buffer/"standard strides for the shape"/"is contiguous in memory" arrays: can simply do memory copy if original and flattening orders match

flattening a full-buffer f order to f order: buffer already in the order we want
ditto for c order to c order
this special case should come up a fair bit in practice

general case, flattening to f order: this is equivalent to doing an f-order traversal of 1d tensors along dimension 0

i.e., for a [2,3,2] we are doing tensors along dimension 0 with starting offsets given by [0,0,0], [0,1,0], [0,2,0], [0,0,1], [0,1,1], [0,2,1]

general case, flattening to c order: this is equivalent to doing a c-order traversal of 1d tensors along the last dimension

i.e., for a [2,3,2] we are doing sensors along dimension 2 with starting offsets given by [0,0,0], [0,1,0], [0,2,0], [1,0,0], [1,1,0], [1,2,0]

(though I think technically it might be better/more efficient to do the first dimension with size > 1, and the last dimension with size > 1 for f and c respectively?)
If we use the 1d tensor approach, we end up doing a bunch of copy ops on the buffer (all we need is tensor start offset, tensor length (number of elements), and stride)

bettertoflattened branch: currently getting JVM crashing/loops on the following cases:
    @Test
    public void testToFlattened(){
        INDArray inC1 = Nd4j.create(new int[]{10,100},'c');
        INDArray inC2 = Nd4j.create(new int[]{1,100},'c');

        INDArray inF1 = Nd4j.create(new int[]{10,100},'f');
//        INDArray inF1 = Nd4j.create(new int[]{784,1000},'f');
        INDArray inF2 = Nd4j.create(new int[]{1,100},'f');

        Nd4j.toFlattened('f',inF1); //ok
        Nd4j.toFlattened('f',inF2); //ok

        Nd4j.toFlattened('f',inC1); //crash
        Nd4j.toFlattened('f',inC2); //crash

        Nd4j.toFlattened('c',inF1); //crash on shape [784,1000]. infinite loop on shape [10,100]
        Nd4j.toFlattened('c',inF2); //ok

        Nd4j.toFlattened('c',inC1); //ok
        Nd4j.toFlattened('c',inC2); //ok
    }

I've added your toFlattened benchmark to my JMH based one, but I like using powers of 2 as inputs, so I'm using a Shape of 1024x1024.
These are the results from before the merge:
Benchmark                    Mode   Cnt      Score     Error  Units
Nd4j.toFlattened_CC_Small  sample  3123  11609,803 ±   7,962  us/op
Nd4j.toFlattened_CF_Small  sample  1861  19509,673 ± 249,213  us/op
Nd4j.toFlattened_FC_Small  sample  1975  18382,342 ± 208,104  us/op
Nd4j.toFlattened_FF_Small  sample  3002  12063,138 ±  44,201  us/op

And this are the numbers after the merge (with the windows fix):
Benchmark                    Mode    Cnt      Score     Error  Units
Nd4j.toFlattened_CC_Small  sample  31892   1280,396 ± 229,296  us/op
Nd4j.toFlattened_CF_Small  sample   1867  19443,482 ± 223,347  us/op
Nd4j.toFlattened_FC_Small  sample   1961  18512,500 ± 173,460  us/op
Nd4j.toFlattened_FF_Small  sample  32616   1268,712 ± 223,645  us/op

So it looks like the case were the ordering stays the same is a lot better now, while the case where the ordering has to change didn't improve.
And I have to confirm that it appears to be using only a single core.

To add to this again: The 'slow' case, i.e. where we go from C->F or F->C, is where actually most of the time is spent when training an actual model.

@eraly did this already


Appstudio update hacbs-test-project-33p2

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI has failed.There was an error creating the PipelineRun: hacbs-test-project-33p2-on-pull-request-
creating pipelinerun hacbs-test-project-33p2-on-pull-request- in namespace rhtap-demo-xxmx-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request


fix(transformer): remove an AstBuilder::copy call from TS module transform

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4986  👈
#4985
#4984
#4983
main

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

Join @overlookmotel and the rest of your teammates on  Graphite


Add environment configuration for worker relay

Thank you!

I've added the fallback to when no ENV is defined. I think ideally I would like to configure it automatically via RR.

Sure, auto configuration via RR is better than duplicating code in .env and .rr.yaml.

Can you please create a ticket in RR, we can add it to the next version.

I just checked RR code and found what it already setting env RR_RELAY. Sorry, my lapse. I will create new PR with RR_WORKER renamed to RR_RELAY.

Oh right, I've forget about it. I'm preparing the release now, I'll change it by myself.


Optimize Docker build

Currently, .dockerignore does not exclude .git.
AFAIK, the .git folder is only required by ./scripts/build.sh to figure out what is the root folder.
Finding another way to identify the root folder (currently PROJECT_ROOT=git rev-parse --show-toplevel) allows to exclude the .git folder and avoid what is currently the copy of around 800+MB to the first stage image.

@TriplEight sorry to add you to a bunch of things, but maybe you can take a look at this one too?

@chevdor could you specify which docker build do you mean: parity/substrate or parity/rust-builder?
First one just copies substrate's binary, second anyways git fetches the whole repository every job.

I was referring to https://github.com/paritytech/substrate/blob/master/Dockerfile
In the current version, the build.sh script needs the .git folder but only to find the root folder of the project magically. If we find a way to do it without needing the .git folder (which is not needed otherwise), we spare the copy (take time and space) of ~800MB and growing. The first stage image is already very fat so losing this weight would be very beneficial, especially for CI.

@chevdor
The thing is our current CI (GitLab) makes use of this Dockerfile: https://github.com/paritytech/scripts/blob/master/docker-files-for-Gitlab-CI-rust/rust-builder/Dockerfile
This image is universal builder for Substrate based projects.
And this image https://github.com/paritytech/substrate/blob/master/scripts/docker/Dockerfile is used for publishing Substrate's binary.
I'm not aware if the Dockerfile you are talking about is being used anywhere, please tell me if it is.


SparrowCI pipeline and badge fixed

@antononcube gentle ping )))

Thanks!

you need to add this repo to your SCI account to get new builds


Have you asked for the Crew information?

Have you asked for the Crew information?
Many query methods accept an enum indicating extra info to get.
Originally posted by @LordMike in https://github.com/LordMike/TMDbLib/issues/327#issuecomment-554589858

I dont know, some of them works with foreach(....)
what other enums?

Example code, please? :)
Also. Try the online client (tmdb docs) and see if you get any details at all.

I tried now and it doesn't work here either
https://developers.themoviedb.org/3/tv/get-tv-credits

If it doesn't work in the UI, it's a question for TMDb 😄

You are right :)


WIP Aqcu 1542 - transition extremes to refactored json

if https://github.com/USGS-R/repgen/pull/829 works, I'll merge that and hopefully this PR will also succeed with Travis


firmware-qcom-rb3gen2: fix PDF license download URL

The PDF download URL pointed to the UI page of the artifactory rather than the actual download URL. Fix the checksums and the URL.
Reported-by: Tommaso Merciai<EMAIL_ADDRESS>

@adhudase another fix for your !619, showing that you didn't check which file is being downloaded and packaged. This is beyond understanding.
@ricardosalveti @quic-vkraleti  I will no longer accept any PRs from @adhudase without additional Tested-by or Reviewed-by from somebody from your side. Manually verifying all the changes being submitted is not a part of the regular review process. I hope you understand this.


Describe custom pipeline deployment

It is highly likely that user will want to create his own deployment flow for his applications so we need to add the documentation page that will help users create one.
Acceptance Criteria - KRCI user can use our documentation and enable custom deploy pipeline.

The Customize Deployment page has been added to the Operator Guide.
This page covers creating custom resources to run applications with custom deployment logic.


Bug maybe

How i fix the middle lualine its happen after i using onedark colorscheme and set lualine transparent true and if i change to another colorscheme this is happen

Nah that's totally not a bug by the folke who made tokyonight colorscheme


High CPU Spike During Deployment After Upgrading to Connexion 3.x

Description
After upgrading Connexion to version 3.x, we are encountering significant CPU spikes during deployments. The spikes normalize shortly after deployment but consume approximately 10x more CPU compared to our previous version. This occurs consistently across multiple deployment attempts, as illustrated in the attached image.

Expected behaviour
The deployment should proceed with minimal CPU usage, similar to previous Connexion versions.
Actual behaviour
CPU usage spikes drastically during deployment.
CPU consumption returns to normal shortly after deployment is complete.
The spikes occur during every deployment attempt.
Additional info:
Environment Details
In the following snippet we can see the updated libraries

And in below I have added the current app configurations
app setup
def setup_application() -> tuple['Flask', 'App', 'SQLAlchemy']:
    # Create the application instance
    swagger_ui_options = SwaggerUIOptions(swagger_ui=config.ENABLE_SWAGGER_UI)

    _connexion_app = connexion.App(__name__, specification_dir='./', swagger_ui_options=swagger_ui_options)
    _application = _connexion_app.app

    _connexion_app.add_middleware(
        CORSMiddleware,
        position=MiddlewarePosition.BEFORE_ROUTING,
        allow_origins=config.CORS_ALLOWED_ORIGINS,
        allow_credentials=True,
        allow_methods=['*'],
        allow_headers=['*'],
    )

    _application.config.from_object(config)
    _application.config['SQLALCHEMY_DATABASE_URI'] = config.APPLICATION_DATABASE_URI
    _application.static_folder = '../dist'
    _application.template_folder = '../dist'
    _application.static_url_path = 'static'

    _db = SQLAlchemy(
        _application,
        model_class=declarative_base(cls=BaseModel, metaclass=NoNameMeta, name='Model'),
        engine_options=config.SQLALCHEMY_ENGINE_OPTIONS,
    )

    return _application, _connexion_app, _db

def setup_interfaces(connexion_flask_app: 'FlaskApp') -> None:
    connexion_flask_app.app.url_map.strict_slashes = False
    swagger_ui_options = SwaggerUIOptions(swagger_ui=True)

    # Read the swagger.yml file to configure the endpoints
   .
   .

from .interface import type_checking

application, connexion_app, db = setup_application()

log = setup_logging()
setup_rollbar(application=application)

setup_interfaces(connexion_flask_app=connexion_app)

main function
if __name__ == '__main__':
        uvicorn.run('middleware:connexion_app', host='<IP_ADDRESS>', port=5003)

docker configs
proc_name = 'connexion_app'
workers = 4
worker_class = 'uvicorn.workers.UvicornWorker'
bind = '<IP_ADDRESS>:5000'
timeout = 240
debug = False
loglevel = 'debug'
errorlog = '-'
accesslog = '-'

And running the docker using the gunicorn
gunicorn -c gunicorn-config-docker.py middleware:connexion_app
Given the above information we appreciate any insights or guidance on resolving this issue.
Thank you!

Hi @SamashaNayananthi, are you using particularly large OpenAPI specifications?


Add scope interface and fix run group tests

The run group tests were broken (and merged broken), which was blocking.

Thanks, @nacx!


error when stressing server for PDFs

see https://github.com/buda-base/public-digital-library/issues/214#issuecomment-673574380

Well... there's not even the word "exception" in iiifserv file for at least the last 4 and 1/2 hour...

ah, that's a very bad sign... maybe something in catalina.out?

otherwise let's make the log level lower (info or something like that) and see if the requests are well received, that will be a first step


Checkbox support

Please review, I have a feeling that you have commit changes since my last pull that may conflict with this.

Unfortunately this PR isn't working, in that there are many files included in it that are just reverting recent changes to the library, this makes it tricky to understand what you have actually intended to change.
It also looks like you have copied over a lot of the code from UIButton - perhaps a better approach would be to inherit from UIButton and just add and change the functions you needed to change. This reduces code duplication so that we don't have the same bug crop up in multiple places, or need to do the same refactor multiple times.

This was my first ever contribution to an open source project and I had a lot to learn about how to go about things.  You are absolutely right.  I will close this and try another clean go at it.


fix: Adding support for different bucket storages in the db migrations

Updating various migrations
Adding helper function

What this PR does:
Which issue(s) this PR fixes:

Fixes onepanelio/core#
Special notes for your reviewer:

@aleksandrmelnikov this also has a conflict.

@aleksandrmelnikov this also has a conflict.

Fixed


Error: Command failed

I'm trying to use this action in a microservice and I keep getting this error:
Error: Command failed: npx jest --coverage --coverageReporters="json-summary"

Here are my build steps:
steps:
            - name: Checkout repository
              uses: actions/checkout@v2

            - name: Set up Node.js
              uses: actions/setup-node@v1
              with:
                  node-version: ${{ matrix.node-version }}
                  registry-url: 'https://registry.npmjs.org'

            - run: npm ci
              env:
                  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

            - name: TestCoverage
              id: testCovergae
              uses: anuraag016/Jest-Coverage-Diff@master
              with:
                  fullCoverageDiff: false
                  delta: 0.5

I have node-version as 12.x and platform as ubuntu-latest.
There's not a lot of information in the error message so I'm not sure what else to try.

For anyone running into this issue, here's the updated yaml file that seems to work:
        steps:
            - name: Checkout repository
              uses: actions/checkout@v2

            - name: Set up Node.js
              uses: actions/setup-node@v1
              with:
                  node-version: ${{ matrix.node-version }}
                  registry-url: 'https://registry.npmjs.org'

            - name: Install
              run: npm ci
              env:
                  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

            - run: npm build

            - name: TestCoverage
              id: testCovergae
              uses: anuraag016/Jest-Coverage-Diff@master
              with:
                  fullCoverageDiff: false
                  runCommand: "npx jest --passWithNoTests --collectCoverageFrom='[\"src/**/*.{js,jsx,ts,tsx}\"]' --coverage --collectCoverage=true --coverageDirectory='./' --coverageReporters='json-summary' --forceExit --detectOpenHandles test/.*test.*"


Conflict python3-edgetpu vs. python3-pycoral

Hi, I have connected two Edge TPU accelerators to a Raspberry Pi 4. With this I want to run an object detection and secondly a bird classification. Each program works in itself. For this I would have to install "python3-edgetpu" and "python3-pycoral" in parallel. But only one of them works at a time. What can I do there.

python3-edgetpu is deprecated. please use python3-pycoal


Unable to turn on Android TV

Before you post
Please make sure you done all the necessary steps in Prerequisite in README.md
Yes
config
  {                     "name": "Bedroom TV",                     "ip": "<IP_ADDRESS>:5555",                     "interval": 1000,                     "path": "/usr/bin/adb",                     "timeout": 1000,                     "playbacksensor": false,                     "category": "TELEVISION",                     "hidenumber": true,                     "hidehome": false,                     "hideother": true,                     "debug": true,                     "skipSpeaker": false,                     "inputs": [                         {                             "name": "Netflix",                             "id": "com.netflix.ninja"                         },                         {                             "name": "YouTube",                             "id": "com.google.android.youtube.tv"                         }                     ],                     "playpausebutton": "KEYCODE_MEDIA_PLAY_PAUSE",                     "backbutton": "KEYCODE_BACK KEYCODE_BACK",                     "infobutton": "KEYCODE_HOME KEYCODE_HOME",                     "poweroff": "KEYCODE_SLEEP KEYCODE_SLEEP",                     "poweron": "KEYCODE_POWER KEYCODE_POWER"                 },
Describe the situation
android tv fails to turn on from HomeKit tile
Log output

Have you tried removing  "poweroff": "KEYCODE_SLEEP KEYCODE_SLEEP", "poweron": "KEYCODE_POWER KEYCODE_POWER" from your config? Or just put one key code instead of double, for example: "poweroff": "KEYCODE_SLEEP", "poweron": "KEYCODE_POWER" ?
Also can you attach, the whole part of homebridge-adb log, from the when plugin start?

Hi @dwaan , yes i tried to remove it and tried few other combinations like KEYCODE_WAKEUP both singles and doubles but no luck. I tried with WOL too
`
15/02/2024, 12:16:27] [homebridge-adb] Restarting child bridge...
[15/02/2024, 12:16:27] Got SIGTERM, shutting down child bridge process...
[15/02/2024, 12:16:32] [homebridge-adb] Child bridge process ended
[15/02/2024, 12:16:32] [homebridge-adb] Process Ended. Code: 143, Signal: null
[15/02/2024, 12:16:39] [homebridge-adb] Restarting Process...
[15/02/2024, 12:16:43] [homebridge-adb] Launched child bridge with PID 2566
[15/02/2024, 12:16:43] Registering platform 'homebridge-adb.HomebridgeADB'
[15/02/2024, 12:16:43] [homebridge-adb] Loaded homebridge-adb v2.1.2 child bridge successfully
[15/02/2024, 12:16:43] Loaded 0 cached accessories from cachedAccessories.0E8CD2111874.
[15/02/2024, 12:16:43] [homebridge-adb] Bedroom TV - ð¤ Initializing
[15/02/2024, 12:16:44] [homebridge-adb] Google TV - ð¤ Initializing
[15/02/2024, 12:16:44] [homebridge-adb]
WARNING:
Unrecognized accessory - "Google TV".
Please check if the accessory's IP address is correct.
If your accessory is turned OFF, please turn it ON.
[15/02/2024, 12:16:44] Homebridge v1.5.1 (HAP v0.10.4) (homebridge-adb) is running on port 48293.
[15/02/2024, 12:16:44] Google TV 5D2A is running on port 37399.
[15/02/2024, 12:16:44] Please add [Google TV 5D2A] manually in Home app. Setup Code: 533-22-240
[15/02/2024, 12:16:44] [homebridge-adb] Bedroom TV - ð Input: Home
[15/02/2024, 12:16:45] [homebridge-adb] Bedroom TV - ð Input: Netflix
[15/02/2024, 12:16:45] [homebridge-adb] Bedroom TV - ð Input: YouTube
[15/02/2024, 12:16:45] [homebridge-adb] Bedroom TV - ð TV created
[15/02/2024, 12:16:45] [homebridge-adb] Bedroom TV - ð Speaker created
[15/02/2024, 12:16:45] [homebridge-adb] Bedroom TV - ð¤ Accessory initialized.
[15/02/2024, 12:16:45] [homebridge-adb] Bedroom TV - ð Connecting...
[15/02/2024, 12:16:45] Bedroom TV A722 is running on port 40167.
[15/02/2024, 12:16:45] Please add [Bedroom TV A722] manually in Home app. Setup Code: 533-22-240
[15/02/2024, 12:16:45] [homebridge-adb] Bedroom TV - ð Connected
[15/02/2024, 12:16:48] [homebridge-adb] Bedroom TV - ð Alive: Thu Feb 15 2024 12:16:48 GMT+1100 (Australian Eastern Daylight Time)
[15/02/2024, 12:16:56] [homebridge-adb] Bedroom TV - ð¤ Awake
[15/02/2024, 12:17:09] [homebridge-adb] Bedroom TV - ð Trying to turn OFF accessory
[15/02/2024, 12:17:09] [homebridge-adb] Bedroom TV - ð Turning power off
[15/02/2024, 12:17:10] [homebridge-adb] Bedroom TV - ð Turning power off: true, 10
[15/02/2024, 12:17:12] [homebridge-adb] Bedroom TV - ð Turning power off: false, 9
[15/02/2024, 12:17:12] [homebridge-adb] Bedroom TV - ð Turning power off: Success
[15/02/2024, 12:17:12] [homebridge-adb] Bedroom TV - ð¤ Sleep
[15/02/2024, 12:17:12] [homebridge-adb] Bedroom TV - ð Power Off - Success
[15/02/2024, 12:17:22] [homebridge-adb] Bedroom TV - ð Trying to turn ON accessory. This will take awhile, please wait...
[15/02/2024, 12:17:22] [homebridge-adb] Bedroom TV - ð Turning power on
[15/02/2024, 12:17:24] [homebridge-adb] Bedroom TV - ð Turning power on: false, 10
[15/02/2024, 12:17:26] [homebridge-adb] Bedroom TV - ð Turning power on: false, 9
[15/02/2024, 12:17:28] [homebridge-adb] Bedroom TV - ð Turning power on: false, 8
[15/02/2024, 12:17:30] [homebridge-adb] Bedroom TV - ð Turning power on: false, 7
[15/02/2024, 12:17:32] [homebridge-adb] Bedroom TV - ð Turning power on: false, 6
[15/02/2024, 12:17:35] [homebridge-adb] Bedroom TV - ð Turning power on: false, 5
[15/02/2024, 12:17:37] [homebridge-adb] Bedroom TV - ð Turning power on: false, 4
[15/02/2024, 12:17:39] [homebridge-adb] Bedroom TV - ð Turning power on: false, 3
[15/02/2024, 12:17:41] [homebridge-adb] Bedroom TV - ð Turning power on: false, 2
[15/02/2024, 12:17:43] [homebridge-adb] Bedroom TV - ð Turning power on: false, 1
[15/02/2024, 12:17:43] [homebridge-adb] Bedroom TV - ð Turning power on: Failed
[15/02/2024, 12:17:43] [homebridge-adb] Bedroom TV - ð¤ Power On - Failed
[15/02/2024, 12:17:43] [homebridge-adb] Bedroom TV - ð Power on error message: Failed
[15/02/2024, 12:17:53] [homebridge-adb] Bedroom TV - ð Alive: Thu Feb 15 2024 12:17:53 GMT+1100 (Australian Eastern Daylight Time)
`

Sorted, i turned on this from Network & Internet settings and it is turning on from Home app tile.


Remove the yellow border

I'm learning your demo codes and trying to write a similar util for my friends. I want to remove the yellow border around the target window being captured. I noticed that the session of GraphicsCaptureSession object has a method:
pub fn SetIsBorderRequired(&self, value: bool) -> ::windows::core::Result
But I failed to make use of that method. Can you make your demo have an option to remove the border?

These APIs are implemented by the operating system, and thus the version of the OS you're running on will influence what features you have access to at runtime.
In this case, the IsBorderRequired property was introduced in Windows 10 build 10.0.20348. You can see that listed on the property's MSDN page: https://learn.microsoft.com/en-us/uwp/api/windows.graphics.capture.graphicscapturesession.isborderrequired?view=winrt-22621
If you're running on build 10.0.20348 or higher, then you can set the property properly. Practically speaking, general consumers saw this feature introduced as part of Windows 11. You can use the ApiInformation API to check to see if the property is available or not at runtime.
The Win32CaptureSample project shows how to do this, although it's written in C++ instead of Rust. But it should be straightforward to port. Here is a section of code that calls GraphicsCaptureAccess to get access to the property and here's a section that checks to see if the property is available.


DOC Adds FAQ entry on pytorch's Dataset

Further addresses https://github.com/dnouri/skorch/issues/422 by adding a FAQ item and rewording the Dataset docs.

I think the last paragraph in the new FAQ entry is not needed, predefined splits are already covered in a separate entry.

The separate entry was targeted to using numpy arrays together with a skorch Dataset for a validation dataset. This PRs last paragraph is for using a PyTorch Dataset. I see users with a PyTorch's Dataset to already have defined a validation dataset, and the PR's last paragraph would help them use skorch.

Mmm, but the entry I referred to literally says:

If you have predefined training and validation datasets that are subclasses of PyTorch Dataset,

Ah I see. I am mistaken. This PR was updated to remove the last paragraph.

LGTM

Thank you.


Update the changelog in master from v0.12.1

Removed bugfixes from 0.13.0 that were included in 0.12.1.

:+1:


How do I pull from a private self-signed Docker registry without TLS verification errors?

Host OS: OS X 10.10.5
Docker-Machine: 0.4.1
Docker: 1.8.1
My team is running a private Docker registry with a self-signed SSL certificate. I added the certificate to my root store in OS X and I can connect to with Google Chrome without any TLS verification issues. However, when I try to perform a docker pull from that registry I get a x509: certificate signed by unknown authority. I restarted my docker-machine after adding that certificate to my OS X root store. I would've expected that having the certificate in my root store would've been sufficient for TLS verification. There also doesn't seem to be any documentation as to how to add that certificate in the docker-machine VM as a trusted one. I also do not have access to the private key for the certificate.

The VM does not have any way of knowing about the OSX root store as far as I'm aware.
Would this work for you:  https://github.com/docker/machine/issues/1803 ?

It's fine if the VM doesn't pick up those certs as long there is documentation around how to get certs into the VM.
The instructions outlined in that issue don't work for me. Specifically I get a Permission denied error when attempting to scp the certificate into the VM when I have read access to the file on the host. I tried following the instructions that issue references (scp-ing into tmp, then ssh-ing in and copying it into the certs directory, then restarting the vm), I re-env'd to set the appropriate environment variables for the restarted VM but I'm still seeing x509: certificate signed by unknown authority. I've confirmed the certificate is present in /var/lib/boot2docker/certs after rebooting.

I found the simplest way was to append it to /etc/ssl/certs/ca-certificates.crt

The docs fro setting up self-signed certs mention that you should add the cert to /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt
I ssh'd into the machine and did that; private registry is working. Would it be feasible to add a command (or an option) to do this?
link to the docs

I ssh'd into the machine and did that; private registry is working. Would it be feasible to add a command (or an option) to do this?

I'm interested -- possibly a --engine-registry-cert which would add the cert to the proper place during provisioning.

+1
I need to manually copy the cert to the right place every time the VM is restarted so this would be a great help.

+1. Docker-machine is a nightmare to use with a private docker repo. Restarting the VM appears to require the reinstallation of the cert via SCP and SSH (see earlier workaround). Can we have a fix for this? How are people working around this?

Also, when using docker-machine inspect  I see a lot of AuthOptions configuration bindings. Does anybody know where these are documented? Can these be magic runes be configured in some way such that with a public certificate that resides on my host (i.e MacOS in my case) the docker instances running inside the vm will be able to leverage the cert and successfully authenticate with the private docker registry?

In the meantime, you can create your docker-machine with the --engine-insecure-registry flag.
Note that you have to add the flag before you specify the name of your machine. i.e. docker-machine create -d virtualbox --engine-insecure-registry myregistry:5000 dev

Here's one example of a script to trust custom CAs in the created VM for reference: https://gist.github.com/metcalfc/50060709ee9d22ec620e
I do want to support this first-class eventually with something like https://github.com/docker/machine/issues/2247

Taken from https://github.com/docker/docker/issues/9118 :
I made it (doing docker login https://the-domain:5043 on my Mac) working by using the --insecure-registry option. In Docker daemon machine I had to append following to /var/lib/boot2docker/profile
EXTRA_ARGS="$EXTRA_ARGS --insecure-registry https://the-domain:5043"

Unlike suggested by Docker daemon, it didn't work without https written in that line.

+1
I'd love to be able to add a --engine-registry-cert option to the docker-machine create command.

+1 for —engine-registry-cert option.

🔗 https://github.com/docker/machine/issues/1799

+1
It is difficult to work with docker machine without a option like this.

+1 for —engine-registry-cert

Moreover, the /etc/docker/certs.d/myregistry:5000/myregistry.crt persists across docker-machine reload for me, however it would be really great to have that option)
Regarding --insecure-registry option, unfortunately this approach doesn't support basic  authentication

On Ubuntu. If you experience error:

x509: cannot validate certificate for [IP address or domain name] because it doesn't contain any IP SANs

On the Docker registry the certificate had to be compiled with the subjectAltName as described here:
https://docs.docker.com/engine/security/https/
Here is the code for convenience:
$ echo subjectAltName = IP:<IP_ADDRESS>,IP:<IP_ADDRESS> > extfile.cnf
$ openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem
-CAcreateserial -out server-cert.pem -extfile extfile.cnf
Note, I was able to check the subject alternative name is present in the certificate using the following command:
openssl x509 -in certificate.crt -text -noout
However, on Ubuntu 14 client (i.e. Docker Engine)
This error was followed suit by
x509: certificate signed by unknown authority
For people using Ubuntu 14.
The config file that is used for the Docker engine (that I want to use to connect to the Docker Registry):
/usr/default/docker
in there, you need to specify the docker options:
DOCKER_OPTS="--insecure-registry myinsecure.com"
Then restart the daemon (add sudo if you user is not allowed to start a docker service):
$ [sudo] service docker restart
The value does not need to be a domain name, it simply has to match what you certificate is registered with; I have an IP address with a port and this works... (i.e. e.g. <IP_ADDRESS>:100)
All this took me a day, so,  I am posting this hoping that it will be useful to other people...

I still see this issue on Ubuntu Zesty running docker-machine version 0.12.0. The certificate has a SAN IP corresponding to 'docker-machine ip widget-0', where widget-0 is a master of a swarm where a registry:2 service is using the self-signed certificate and publishes on port 5000. When i try to push to the registry from Ubuntu i see:

certificate signed by unknown authority

On OSX, using Docker for Mac, i would register the certificate with the keychain. I'm not sure what the recommended action is on Ubuntu.


Mail optimization

Sorry, I've made two of four common mistakes http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes
Here is fix. Actually, It worked fine, excepting some parameters from user attributes do not applied until server restart.
Also I've added parsing mail.smtp.ssl.trust that allow connect to server with self-signed certificate.

Merged. Thanks. Can you please comment of the forum thread if you haven't done it already.

Actually, this changes is not connected to #2182 directly (I founded them while investigating)
I have some thoughts about problem, but need feedback from user.

Sorry, I thought it's a fix for the problem.


MAID-2112 Access Denied error while creating a service

Updated to support Shared Mutable data IPC APIs.

r? @krishnaIndia
(maidsafe_highfive has picked a reviewer for you, use r? to override)


Reuse images across jobs

Description

This PR

sets up a mechanism to reuse the images across jobs using GitHub Action artifacts
uses multi-stage builds to drastically cut down the sizes of our Python images by a total of 82.07% (see below)
updates all images to Python 3.10
removes supervisord from ingestion_server (fixes #425)
unifies the ingestion_server and indexer_worker images
simplifies image build matrix configuration (conflict with #424)

To goal of the PR is to eventually unify with #424 in creating a comprehensive CI + CD pipeline that uses caching and artifacts to speedily test code, deploy images to GH CR and deploy docs to GH Pages. The presence of these artifacts can also make #213 easier.
Image difference

Name
Old
New

analytics
1.24GB
199MB

ingestion_server
1.12GB
270MB

indexer_worker
1.10GB
Gone!

openverse_api
1.28GB
401MB

Total
4.74GB
870MB

Testing Instructions

This PR makes changes to CI itself so all passing CI checks would be adequate. You can also see if all the services work just like before by following the steps in the README.md.
To see difference in image sizes,

see current image sizes: docker image ls
rebuild all images: docker-compose build web ingestion_server analytics
see new image sizes: docker image ls
compute, and optionally appreciate, the difference

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[x] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Considering that all three Dockerfiles have very similar intermediate builder images, it might be possible to speed up the builds by unifying the builder image in all Dockerfiles. Trading just a bit of the size improvements to install librdkafka-dev in all three repos would mean that they all use the same builder!
Not sure how it would be implemented, just putting this idea out there.


Add command to sign model using Sigstore

Would like to see about adding a command to sign a model using Sigstore. Does this sound like a feature/workflow we would want integrated into this CLI tool?

@mbestavros you might have some interest in this

Thanks for the ping @nathan-weinberg!
I think there are several tacks we can take towards integrating Sigstore signing. A CLI command would be a good start - it should be fairly straightforward, right? We'll have the model in whatever format the CLI produces (gguf if I recall correctly?) and we call out to sigstore-python to do the heavy lifting.
The biggest open question, for me, is how we handle identity and keyless signing. Do we kick them out to an OIDC flow, like the cosign CLI does? I did some thinking on this a while back and reached that dead end.
The other (and I think more interesting) option is to integrate Sigstore into an automated model training pipeline, which is more aligned with the instruct-lab backend. But that's maybe a later step.

'Tis not stale, just not a top priority at present :smile:


Simplify compiler

This PR aims to greatly simplify the compiler by tweaking a few things and following a few unifying principles. I think the goal is for this to be the final evolution of the layer API into an interface that is flexible, simple, and easy to understand. Overall here's what needs to happen/change:

Parameters need to be defined with Axon.param and passed as a list to layer in the order they are to be passed to their implementation function. The original usage of map I think was for order preservation/forwarding, but it's actually not necessary and creates some ambiguity about what the name of the parameter being referenced is. I think the list is more clear as the order you give parameters in the list is the order they will be used. Another option even is to just pass everything (inputs and params) as inputs, and let Axon.layer split parameters in inputs by struct type. This also allows us to unify pretty much every trainable layer clause because we don't hard match on parameters---we just consume the list and forward it to the implementation function.

We need to forward :mode as an option to every implementation function. This means every implementation function needs to have a trailing opts---even if they are not used. I think though this is favorable over being ambiguous. And this means custom layers can have behavior that depends on training and inference mode---just like dropout and batch norm. This was not possible before.

We need to come up with an API for "stateful" layers so the compiler knows how to handle those in training mode. This will allow us to eliminate the additional :batch_norm clause and will mean that custom layers can also implement layers with state.

We need a more graceful way to implement combinators such as add, concatenate, and cond as functions in Axon.Layers so that we can unify them under the current monolithic clause.

Once this is complete custom layers will be 100% consistent with Axon's internal layers and everything that's possible to do internally with Axon will be possible externally with custom layers. So the flow of custom layers will be:

Define an implementation function as defn which can be an arbitrary arity function, as long as it ends in opts.
Define an interface for the layer which declares trainable parameters and state and attaches to the implementation function.

I also think it will be really cool to just say the Axon compiler is basically 1 function

I like this direction a lot. Option 3 should also help us address the existing issue that we are not passing the model_state as parameters to JIT, which means they are embedded in the models and that causes other issues.


Channels blocked by nixos.ova failing?

This build fails and blocks the nixos-unstable from progressing: https://hydra.nixos.org/build/125499777/nixlog/1/tail It failed previous evaluations as well but I tested this command just a few hours ago on latest master and it didn't fail:
nix-build nixos/release.nix -A ova

To Reproduce
I know I can curl https://hydra.nixos.org/build/125499777/reproduce | bash but I'm not sure how to find the latest commit sha with it this fails.
Expected behavior
Channels progress.
Additional context
I hope the other jobs currently marked as "cancelled" will pass eventually.
Notify maintainers
IDK :/.

Not failing anymore.

753a2371, for reference.


Fix redirects

This PR sets the redirect_document_id to false for all but one of the obsolete install guides, as per the guidance here:  https://review.docs.microsoft.com/en-us/help/contribute/redirect-articles?branch=master

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
AcrolinxScore
LowestCategoryScore
Issues
Scorecard
Processed

articles/overview/what-is-quantum-computing.md
89
76
8
link
:white_check_mark:

More info about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues

Docs Build status updates of commit 394a1ad:
:warning: Validation status: warnings

File
Status
Preview URL
Details

articles/overview/what-is-quantum-computing.md
:warning:Warning
View (qsharp-preview)
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

articles/overview/what-is-quantum-computing.md

Line 47: [Warning] Invalid file link:(~/overview/quickstarts/grovers.md).
Line 48: [Warning] Invalid file link:(~/overview/quickstart.md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Accidentally added draft file. Closing this PR


Add Jest Editor Support

Summary
Adds the initial work for creating a shared library that can power editor integration for Jest
TODO

[x] Port over existing tests
[x] Migrate to module.exports syntax throughout the subfolder

Test plan
Well, no tests yet, I have a bunch of tests in vscode-jest which will get ported with this PR
Caveats
I really needed to add the jsconfig.json file in order to set the correct project root, so I could work in subfolders of the repo, I think anyone with VS Code would need this, so IMO it's worth having in. docs

Current coverage is 89.36% (diff: 100%)

Merging #2192 into master will not change coverage

@@             master      #2192   diff @@
==========================================
  Files            39         39
  Lines          1467       1467
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1311       1311
  Misses          156        156
  Partials          0          0

Powered by Codecov. Last update 41cd9dd...322f4bd

alright, this should be good for review 👍

I'm going to merge this and then take a pass. We may want to make a few cosmetic changes.


Feature request: Repeating colored indent lines

Here's an idea to use 4 colors from the theme as colors for the indent lines; the pattern would repeat however deep the nesting goes. It would be helpful to distinguish indent lines from each other.
This gif should explain it well enough:

As indent lines currently are, they bleed together and aren't as useful to me as I'd like. I suppose I could use 4 spaces for tabs, but I'm not a savage.
I like the ideas to highlight selected indent guides, and to have a vertical ruler as well.

You can install this extension for further customization https://marketplace.visualstudio.com/items?itemName=spywhere.guides


Change the supervision strategy to stop rather than restart

This PR was successfully deployed to production by CircleCI build 244 at 2017-05-15 17:13 BST.


PLT-5587 Create channel

Summary
This PR adds the ability to create new public and private channels.
When creating a channel an activity indicator will replace the Create button in the header, letting the user now that something is going on and preventing from tapping the button multiple times.
For creating public channels it will push the new scene but for private channels it will behave as a modal.
IMPORTANT: I added a new library to handle the keyboard on a view cause by some weird reason that I cannot understand when using the KeyboardAvoidingView the scene was not moving up. I tested this library with both IOS and Android
NOTE: I added an etag handler with this PR
BUG FIX: When switching teams in the app the channel store was still holding the channels from previous teams and when showing the More Channels scene they we appearing even if they belong to another team, I removed them from the store completely when switching teams but we could just filter the channels according to the current team, I did it this way cause when switching teams we get the channels again and we aren't storing the channels locally in the device for now.
Ticket Link
https://mattermost.atlassian.net/browse/PLT-5587
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] Added or updated unit tests (required for all new features)
[ ] All new/modified APIs include changes to the drivers
[x] Has UI changes
[x] Includes text changes and localization file updates

I'll be adding a handler for the functionality submitted here https://github.com/mattermost/platform/pull/5548

Maybe I'll add the channel_created websocket event in another PR while we give chance to the other one to be merged in platform

@jarredwitt @hmhealey feel free to review


SourceGenerator Tests project is not included in sln file and, apparently tests are failing

With something like either Arch.System.SourceGenerator\Arch.System.SourceGenerator.QueryGenerator\EmptyQueryParameter.DoJob().g.cs(29,45): error CS1579: foreach statement cannot operate on variables of type 'Chunk' because 'Chunk' does not contain a public instance or extension definition for 'GetEnumerator' or System.BadImageFormatException : Bad IL format

looks like arch version needed to be bumped
but even that OnlyDataParameter test case is still failing for some reason 🤔

Should be solved by now


PowerToys not compatible with other softwares

I have Fences from Stardocks, and it seems to mess with features within PowerToys, mainly the PowerToys Run.

@ViktorAmbrose can you go into more detail?  this is pretty vague.


Media type negotiation cleanup

This does a few things:

It doesn't let the server silently ignore media type parameters other than ext. Instead, it requires the server to explicitly return an error. We could add all sorts of parameters down the line, and post 1.0–clients that use these parameters may need to know whether they've been honored or not; silent ignoring could be quite unacceptable. By contrast, if we add any parameters down the line that can be simply ignored by old servers, then the post 1.0–client that gets the explicit error can simply retry its request without the parameter. (Of course, none of this effects 1.0 clients, since they're not allowed to include any parameters And, if they do, it's probably a bug, so an explicit error is more helpful for them too.)

It applies the same treatment to ext as it does to every other media type parameter—namely, it requires the server to send the error mentioned in (1). This is better than using 406/415 here now, which will make it harder, when we add extensions in the future, for clients to distinguish between extensions not being supported at all vs. a particular extension not being supported. Also, there's no guarantee that we'll stick only to the ext parameter for required extension negotiation. (My proposal in #650, for example, will, when I finish the last section, have an ext and a required-profile parameter.)

It accounts for the fact that the Accept header can take multiple values, e.g. Accept: application/vnd.api+json;ext=bulk, application/vnd.api+json, and that the header is only problematic if every JSON-API option it lists contains parameters. If only some of the options contain parameters (as in the prior example), then the requests should succeed—and, in fact, future clients may want to format their Accept header like this to work with older servers.

Update It also moves the remaining stray note about content negotiation that was in the "Fetching Data" section into this single top section. And it renames the section to "Content Negotiation", which is what everyone else calls this process, so we should too.

Update: Finally, it reworks the requirements that were in "Fetching Data" to be more consistent with my understanding of our intentions. See my inline comments

Some API providers like to supply version information as a media type parameter, so let's be mindful of the fact that such a practice will now be disallowed unless a provision is made for it in these requirements.

Some API providers like to supply version information as a media type parameter, so let's be mindful of the fact that such a practice will now be disallowed.

True. Are you saying we should have a non-normative note somewhere pointing this out to people, or make an exception for a version parameter?

True. Are you saying we should have a non-normative note somewhere pointing this out to people, or make an exception for a version parameter?

The latter. Not saying we necessarily should, but if we want to accommodate the use case, I think it would be a reasonable provision to reserve something like api-version, or maybe api-*, for private use.

@dgeb Ok, I removed the detailed error href, made the note about returning json api as json non-normative, and added 406/415` cases!

@ethanresnick thanks!
Would you mind squashing these commits down to one, or perhaps a few logical ones. I'd prefer to keep the history sane and free of additions that are removed in the same PR.

@dgeb Done!

:+1: from me, without commit a6a051cd61a5f080ce0629a830ce94f178e8974e

Closing in favor of #703. Thanks for your work here @ethanresnick!


Ability to skip non-existing secrets with dataFrom.find

Is your feature request related to a problem? Please describe.
We're using external-secrets with the Vault provider. In our setup, we have a hierarchical secrets path convention where a secret for a given app can be a result of merging multiple secret paths' contents, with the Vault secret paths as follows:

app-secrets/all-apps/all-environments/runtime
app-secrets/my-app/all-environments/runtime
app-secrets/my-app/production/runtime

etc...
But the problem is that, external-secrets seems to be expecting every single one of these paths to be populated with secrets, and fails to sync the secret if one of them don't exist, with an error like the below:
kubectl describe es ...
...
provided path my-app/metadata/all-environments/runtime does not contain any secrets

Describe the solution you'd like
If would good if the ExternalSecret could skip the paths that are not found and perform merge only on the secrets that are found instead of failing.
This could be accomplished with a configuration attribute like optional = true under find or extract entries.
Describe alternatives you've considered
Initially we were using dataFrom.extract entries in our ExternalSecret, but that resulted in the same outcome with a similar error.
Then we tried with datafrom.find with path and name like the following:
Spec:
  Data From:
    Find:
      Conversion Strategy:  Default
      Decoding Strategy:    None
      Name:
        Regexp:  runtime
      Path:      my-app/all-environments

@alpozcan added IgnoreNotFound option to the Find ref.

Out of curiosity - did you try using DeletionPolicy: Merge?
that should fix the not found behavior you’re seeing.

Hmm... how would that.. help? There is a distinct path in the vault code that says if there are no secrets, then error.

If the deletionPolicy is not Retain, we ignore NoSecretErr on the main controller:
https://github.com/external-secrets/external-secrets/blob/main/pkg/controllers/externalsecret/externalsecret_controller_secret.go#L68-L71

Sure, but that is too high level. That will ignore all secrets, meanwhile the vault list secret is a recursive function. So it would return some secrets but ignore others that could not be found as it traverses the path.
At the high level would not return the secrets that would have been found at the deeper level of the path.

Sure, but that is too high level. That will ignore all secrets, meanwhile the vault list secret is a recursive function. So it would return some secrets but ignore others that could not be found as it traverses the path.
At the high level would not return the secrets that would have been found at the deeper level of the path.

That would depend on each provider - and for vault, that's not the case
If path/to/nested/secret exists, any calls to path/, path/to, and path/to/nested will return with metadata content

Right, but the problem is, that ListWithContext or the other one doesn't return with an error! It returns an empty secret.
It doesn't return NotFound for whatever reason.... Maybe there is actually a different problem here. :)

Neat. :D

Right, but the problem is, that ListWithContext or the other one doesn't return with an error! It returns an empty secret.
It doesn't return NotFound for whatever reason.... Maybe there is actually a different problem here. :)

yeah, I think if we change https://github.com/external-secrets/external-secrets/blob/main/pkg/provider/vault/client_get_all_secrets.go#L121 to a NoSecretErr that will already be fully covered with deletion policy checks.

Yah, that makes sense to me.

Okay, this makes sense hopefully. :)


All the new PR are still not populating /data

Even after we made it a little bit more clear to the users in #159, since #130 all the edits on the README have to be made in the /data files. This is very much counterintuitive to what the standard awesome repositories, and I find it annoying that I have to remember people to do it.
Now I am in solution mode and I should not be: If we could generate the data from the README and enrich it with information/pictures in /data it could be a quick win for all the contributors as well as easier to maintain. That is one suggestion. An other one that I had in mind is to decouple the website with this repository and have a scraper taking care of these information.

@koalalorenzo I am hoping that #195 will help to resolve this issue.

Hey @koalalorenzo - yes, this is not the best scenario and it seems that people are contributing without even reading the first section of the README. My suggestion, as @HugoReeves's is to create a PR Template. Maybe that will force people to read it.

I think we can close this now :)


update: show old version in update message

#12760

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew typecheck with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

Test failure seems unrelated.

Test failure seems unrelated.

Yeah, it's not related. You'll need to rebase this PR onto the latest master branch to fix it.

I will try to move the version info down the line, but maybe a bit later.


Updated look for CSS snippets

@kohni, you can create a PR that redoes the current CSS snippets, using the style you proposed: A title for the snippet, a link to a file containing the snippet (inside a css directory or something) and a picture/GIF (#23) showing the snippet in action - perhaps even with a before/after where necessary.
You can redo as many/few as you feel like in the beginning. The imporant thing is that we get an updated look for showcasing the snippets, then we can pull in all the new ones.

Done! 😊

Forgot to close this, thanks for the reminder


Add FAQ section for current bazel/buck2 users

Description
Adds a new FAQ page on the docs targeting users already on supported build systems but are unfamiliar with RBE systems such as NativeLink.

This change is

Ah yeah this is super confusing and we should document this better. Triggering a "warning" in vale doesn't return with a non-zero exit code. This causes the pre-commit hooks to ignore warnings even with the setting.
There are two ways to see the warnings:

Add a bogus word that triggers an actual "error". Then the pre-commit hooks will fail and you'll see the warnings in the logs as well.
Run vale manually with "vale path/to/file.mdx". This should also print the warnings.

I'm aware that this is horrible ux, and I'm really sorry that this is so complicated. Last time I looked into improving this ux it seemed like the only way to treat warnings as errors is via adjustments to our vale GitHub action workflows where we can use another tool to expose warnings more easily. I can add such an improvement as soon as we can "globally" enable the warning level in the codebase. Then it'll be much easier to see warnings and prevent new ones. But for this to work we have to fix all existing warnings first. There are already hundreds of them, which is why I'm trying so hard to prevent new ones.


[EC-69] update unit_test.c for id4 being 64 bit

The unit_test file was not updated to accommodate the change of id4 to 64 bit.

This PR has been applied here


Filesystem Hierarchy and Packaging Proposed Modifications

Summary
This PR is meant to outline some proposed changes to the InfluxDB file system hierarchy and packaging.
Packaging
Changes to packaging:

Updated logrotate configuration has been updated from /etc/logrotate.d/influxd to /etc/logrotate.d/influxdb (the legacy file name will be removed on install). The file permissions have also been modified to be 644. #4446 #4447
The influxdb user's shell is now set to /bin/false. #3753
The InfluxDB init and service scripts are copied (not symlinked) to their appropriate locations from /usr/lib/influxdb/scripts. #3753
The /etc/default/influxdb file is now created on install. #3753

Filesystem Hierarchy
Changes to the filesystem hierarchy:

InfluxDB binaries are now installed to /usr/bin. #3753
InfluxDB configuration now lives in /etc/influxdb. #3753 #3123
InfluxDB data now lives in /var/lib/influxdb. #3123
InfluxDB scripts now live in /usr/lib/influxdb/scripts

Please let me know if there are any objections to the above changes.

Location changes look good.
Needs a changelog and release notes entry as this will likely affect people using config management tools.

What is an example of something that goes into /usr/lib/influxdb/scripts?

Oh, the init script. I thought this would just be dropped into /etc directly, no?

Can you rebase to remove merge commits?

Oh, the init script. I thought this would just be dropped into /etc directly, no?

The post-install script has extra logic to determine whether the system is using systemd or sysvinit, so I figured it would be easier to just copy them over. Otherwise we will need unique builds for systemd distributions vs sysvinit distributions.

Looks great to me. Once this merged I'd like to invite everyone to a ceremonial burning of the FHS, since no-one ever seems to follow it -- except yours truly.
Managing this change will be important. A clear section titled "Release Notes" is required in the CHANGELOG.

Can you outline the upgrade testing you performed? Did you upgrade from 0.9.4, and then move existing data and config files? Or something else?

Right now the upgrade path will be (for a < 0.9.5 instance):

Install the v0.9.5 package, stopping the service is not required
Manually move /var/opt/influxdb/* to /var/lib/influxdb/* (the directory will already exist)
Manually copy the /etc/opt/influxdb/influxdb.conf file to /etc/influxdb/influxdb.conf (or just modify the existing configuration)

To test I:

Installed InfluxDB <IP_ADDRESS>, loaded test data
Installed InfluxDB v0.9.5 without stopping the service (verifying that a service influxdb status still shows the running process)
Stop the InfluxDB process with a service influxdb stop
Move everything in /var/opt/influxdb to /var/lib/influxdb
Modify any relevant parts of /etc/influxdb/influxdb.conf as needed (really just the engine)
Start the InfluxDB service with a service influxdb start
Verify that the previous set of data is there, and can be queried successfully
Restart service to ensure no other issues

The problems I think most people will hit:

if they auto-upgrade their instance, then when the service is restarted it will automatically try to use the new directories (making it look like there's no data in the database).
copy the configuration from /etc/opt/influxdb/influxdb.conf to /etc/influxdb, overwriting the new configuration (resetting the directories and storage engine to the legacy ones)

I can also create an upgrade script (in /usr/lib/influxdb) that could perform the migration automatically if you think there may be issues with forcing users to do it manually.

@gunnaraasen @beckettsean What do you guys think of the potential upgrade path above? Is manually moving the data and configuration directories too much to ask?

OK, this testing seems fine to me.
I think the release notes should include a link to the process outlined above, so it's clear what people need to do. I would rather take this hit as soon as possible.

I think the best way to handle it would be as part of the blog post about the new packaging structure. This would be a section at the end of the post, describing how to do the upgrade.

To clarify, release notes are an excellent place for it, too, but I think the blog post is more likely to jump out from Google searches than the CHANGELOG.

Blog post works for me -- brief release notes, and reference the post.

Not sure if this was already discussed, but is there a reason we can't or don't want to automatically move /var/opt/influxdb/* to /var/lib/influxdb/*?

I originally considered adding that to the post-installation script, but the possibility of something going terribly wrong was just too high. Mainly:

What if /var/opt and /var/lib are on two different drives? How do we know we have enough space on /var/lib? And if they have a ton of data, the move might be a pretty time-consuming operation.
What if the service isn't stopped correctly because of someone's weird setup (or they have another daemon that attempts restarts)? Attempting to move the directories automatically could corrupt data and break the server.
If they are using a highly customized configuration, the chance of accidentally overwriting/modifying something is pretty high.

All of these could be handled in the post-inst script, but the permutations of different configurations is just so high. In the end I figured it would just be better to make this a manual step. The worst-case scenario with making it manual is that the admin forgot to move the directories over, and it appears as if the database is empty (since the configuration will automatically point to the new directories, but the data lives in the old ones).

Agreed. In principle it's a good idea @gunnaraasen, but all the edge cases outlined by @rossmcdonald argue strongly against it.
Post-install scripts for tweaking a config file is OK, but moving data around is a much bigger issue.

Makes sense.
How about adding a post-install script to check /var/opt/influxdb/* and print a big warning message if it's not empty?
We can also make a note about upgrading on the downloads page and point to the blog post.

How about adding a post-install script to check /var/opt/influxdb/* and print a big warning message if it's not empty?

That's a good idea. I can add in some scary messages to the post-inst script letting the user know they need to move everything over and update their configuration.

I am OK with adding this warning, but eventually (like, say around 1.0) I'd nuke it. IMHO.

Adding in my two cents:
When I upgrade a package I expect:

The service still works on restart
The upgrade doesn't change my config, but rather drops the equivalent of config.rpmnew in the correct location.
Does not try to migrate any data etc.

We could just look for the old config at /etc/opt/influxdb/influxdb.conf and if we find it copy it to /etc/influxdb/influxdb.conf as a preinstall step, then when the new package is installed it will see a differing config file and take the appropriate action (in the case of an rpm, it will leave the config alone and create a new file ending in .rpmnew, not sure how deb behaves). By coping the old config into the new location we can ensure that the service restart will work since it will still look for the data in the old locations. At that point its up to the sysadmin to check for new configuration and migrate the data according to his or her needs.

Updated to include the most recent changes:

Per @nathanielc, added a pre-install script to check for existence of /etc/opt/influxdb/influxdb.conf. If found, it will copy the directory to /etc/influxdb. The default behavior of the package manager is then to drop the new config in the same directory with a different name, and leave the existing one alone. This ensures the directories and settings are all set to the same paths as they were before. They will still be using the old directories, but at least nothing will break when restarted.
For systemd installs, we are still using the hacky method of redirecting the logs by wrapping the process in sh. I'd really prefer to have something built-in to InfluxDB that can be used to specify the log files through configuration, but I think for the time being this should work well enough. My main concern is around supportability, but let me know if anyone thinks otherwise.
I've also added a new build script (build.py) which can be used to generate builds and packages for any/all support platforms and architectures at once, eventually replacing package.sh. Python is just so much more flexible, and it has no external dependencies apart from fpm and boto for packaging and S3 uploads (which are not required for builds). I've also created two other similar scripts for Telegraf and friend, so that all Influx projects can be built in a near-identical manner.

Let me know if anyone has any other thoughts or feedback!

All onboard for build.py. bash can only get you so far.

+1, great work.

+1
@otoolep bash should only get you so far ;)

Whoop-de-do-da.


[Refactor] Real Toxicity Prompts

WIP to add Real Toxicity Prompts Task

@aflah02 made some adjustments. I can't fully test it yet though since I don't have PERSPECTIVE_API_KEY

@lintangsutawika Sorry I forgot to respond to your message. I was trying to rerun it but I still seem to hit errors. I can't rerun it right now as the cluster seems to be down but I wanted to ask, why do I compulsorily need to define a doc_to_target especially since this does not need to use it?

@aflah02 made changes but kept it in a PR in case you want to review it first.
https://github.com/aflah02/lm-evaluation-harness/pull/1/files

@lintangsutawika Thanks!!
Looks good to me just curious about why do we need a doc_to_target?

If it's okay, you can merge the PR to your branch then I can merge this PR to big-refactor.

Oh got it! Merged!


Pass Check URL back to the frontend in original form

This visibly matches the CHECKS_FILE and also allows for greater DNS flexibility from a developers perspective

Thanks! Just published 1.6.0 with this change


fix: pass loaders to replace_docstring for parser options

Addresses #364, by passing in the griffe loader directly, rather than trying to pull parser options off the static object.
TODO:

pull out loader creation into parsers.py or utils.py, etc.. so easy to use in tests, no duplicated in blueprint
test the specific case of a docstring not being on the static object

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 88.88889% with 1 line in your changes missing coverage. Please review.

Project coverage is 88.45%. Comparing base (4739a4e) to head (9de6e0a).

Files with missing lines
Patch %
Lines

quartodoc/autosummary.py
80.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #365      +/-   ##
==========================================
- Coverage   88.46%   88.45%   -0.02%
==========================================
  Files          37       37
  Lines        2931     2936       +5
==========================================
+ Hits         2593     2597       +4
- Misses        338      339       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


AOE Age LOINC Code Change

For the age AOE, NIH has LOINC Code: 35659-2 and the new April guidance has 35659-2.  Previous HHS specs had 30525-0.
We need to do three things for this ticket:

Communicate this to the states so they are aware the change is coming, and we need to ask the ones that receive the AOE questions if they are okay receiving the updated LOINC code or not.
Update the COVID-19 schema with the new code for the age AOE question
For the states that receive the AOE questions AND are not able to handle it, set up a replaceValue configuration option for them that replaces the LOINC code value with the old one.

Communication to states and updates should be completed by April 4

3/23: This is the latest COVID-19 lab data reporting implementation specifications link. It states Age at time of collection:
https://www.hhs.gov/sites/default/files/hhs-guidance-implementation.pdf

3/23: Sent the following note to all STLTs:
Please note that due to recent updates issued by HHS for COVID-19 reporting specifications, ReportStream will be making the following changes to Ask-On-Entry (AOE) questions for reporting purposes. If your jurisdiction has opted not to receive AOE questions, you may disregard this notice. The changes will be made effective April 4, 2022.
Change:
Patient age collected at the time of specimen collection in OBX-3 will be updated with a LOINC of 35659-2 (previously 30525-0).
If you have any questions or concerns, please write to us at<EMAIL_ADDRESS>Sincerely,
The ReportStream Team

@MauriceReeves-usds States were notified last week. No questions or objections since. You may proceed with next steps.

@MauriceReeves-usds any next steps here

@anshulkumar-usds we should make sure the change was actually made, and then we can close it out.

@MauriceReeves-usds have you confirmed these changes have been applied?

Mo taking a look today.


Mac events

I have built open your work to add the infrastructure for making menus and mouse move events work.
There's probably some room for improvement, but it works.

Looks like it fails because of the import of Menu in the calc app, which it appears isn't public on windows - how is one supposed to use the menu if it is not public?

I've addressed the two simple ones here, but I'd like to know that an NSTrackingRegion-based solution would be the 'best' one before I sink time into it. I suspect you've got a better network to answer that question than I do.

Also, since I've merged #23 , I think this needs to be updated otherwise it will try to merge into the branch for that. Shouldn't be any merge conflicts, just a procedural issue.

What I'm going to suggest is to strip out the stub mouse tracking and get the menu stuff merged, then do a follow-on PR for mouse. This is in part because there are some other PR's in flight, so it would be good not to have any open for a long period.
Also keep in mind one of the newer requirements is that it work as a VST plugin. This limits to some extent what can be done with the NSWindow, as the plugin is given an NSView handle. This is one of the main reasons I'm looking at the rutabaga codebase, as it contains patterns known to work.

I just tried to cherry-pick this onto master only to discover that master doesn't actually build on a mac anymore.
error[E0432]: unresolved import `druid_shell::application`
  --> src/lib.rs:33:18
   |
33 | use druid_shell::application::Application;
   |                  ^^^^^^^^^^^ could not find `application` in `druid_shell`

error[E0432]: unresolved import `druid_shell::windows`
  --> src/widget/key_listener.rs:17:18
   |
17 | use druid_shell::windows::M_ALT;
   |                  ^^^^^^^ could not find `windows` in `druid_shell`

error[E0599]: no method named `invalidate` found for type `druid_shell::window::WindowHandle` in the current scope
   --> src/lib.rs:749:29
    |
749 |                 self.handle.invalidate();
    |                             ^^^^^^^^^^

error[E0599]: no method named `pixels_to_px_xy` found for type `druid_shell::window::WindowHandle` in the current scope
   --> src/lib.rs:944:46
    |
944 |         let (x, y) = state.layout_ctx.handle.pixels_to_px_xy(x, y);
    |                                              ^^^^^^^^^^^^^^^

error[E0599]: no method named `pixels_to_px_xy` found for type `druid_shell::window::WindowHandle` in the current scope
   --> src/lib.rs:951:46
    |
951 |         let (x, y) = state.layout_ctx.handle.pixels_to_px_xy(event.x, event.y);
    |                                              ^^^^^^^^^^^^^^^

error[E0277]: the trait bound `f64: piet::RoundFrom<f32>` is not satisfied
  --> src/widget/button.rs:56:14
   |
56 |             .new_font_by_name("Segoe UI", font_size)
   |              ^^^^^^^^^^^^^^^^ the trait `piet::RoundFrom<f32>` is not implemented for `f64`
   |
   = note: required because of the requirements on the impl of `piet::RoundInto<f64>` for `f32`

error: aborting due to 6 previous errors

I'm not seeing that problem, I was able to rebase on top of master without difficulty. The "calc" example runs, but the "hello" example in druid-shell has small errors with the menu calls.

I cherry-picked just the one commit directly relevant to the menus, on the basis that there is another PR in flight which addresses the 2018 edition, which was another consequence of this branch.

Okay, gave up on the cherry pick and just did as you suggested, rebased and then removed it manually. Calc example still runs.

This should now merge cleanly onto master.

The "hello" example in druid-shell is still not compiling, the signature of .add_item() is mismatched. I'm going to do another pass over the code now.

Generally this looks good, but I see a few small issue in addition to the menu confusion above. I think it's fastest for me to fix those and push a branch, because I want to do some work on top of it. Lemme try that, then we'll figure out the best way to get that merged.

Ok, I uploaded https://github.com/xi-editor/druid/tree/fix-menu-sig , which is a pretty small change to just fix compilation. The easiest thing is for me to just PR that and merge it, but I think that doesn't give you proper credit in the commit stats, so if you care about that, feel free to pull it into your branch, then I'll merge this PR. Thanks!
Then I'm working on some of the other issues in a local branch based on top of that.

I don't much care whether I'm credited in the stats, I just think it's a cool thing, so do whatever you will.
In any case, it's likely to be far from my last contribution.

No problem, closing this one in favor of #27, then I should have another one up soon. Thanks for your contributions, looking forward to more!


Documentation - Manual testing: Resizing

This PR adds resizing for manual testing.

Codecov Report

Merging #340 (9c40317) into master (0152462) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #340   +/-   ##
=========================================
  Coverage     72.50%   72.50%
  Complexity     1280     1280
=========================================
  Files           160      160
  Lines          3914     3914
  Branches        460      460
=========================================
  Hits           2838     2838
  Misses         1001     1001
  Partials         75       75

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0152462...9c40317. Read the comment docs.


Feature: add synchronous to_list method to the asynchronous API

SDK
Python
Description
Because of the difference between the two api (working with asynchronous table and synchronous table) we have to rewrite most of the code, it is not always handy and does not always get the same result.
It would be great to have the same method when working with an asynchronous table when vector_search

The implementation is pretty straightfoward:
https://github.com/lancedb/lancedb/blob/32123713fd5cd2663505c4f3361b1692ab236353/python/python/lancedb/query.py#L295-L303
There is already a to_arrow method to call internally:
https://github.com/lancedb/lancedb/blob/32123713fd5cd2663505c4f3361b1692ab236353/python/python/lancedb/query.py#L1167


Ticker For Native balance

would be nice to add ticker to the native balance like this example

https://github.com/web3ui/web3uikit/pull/496
Ticker may need to be discussed, on how it can be more improved on


Implement IOS-Like animations in NAVIGATION MULTIPLATFORM library

Since @MatkovIvan is working in commonizing all androidx libraries related to Navigation (lifecycle, navigation, savestate), it would be super cool to have IOS-like back animations for IOS (or maybe for all platforms).
I've seen users say they can tell when an app is native or not depending on the back animation.
It would be a great addition to the overall experience!!
predictive back gesture would be great  too (but for all version codes!!!)
Example:
https://github.com/JetBrains/compose-multiplatform/assets/100836358/21a93b71-9b09-4d1e-b0e4-25159f2c8758

it would be super cool to have IOS-like back animations

I know it's not the same, but sliding animations might be easily implemented like:
val animationSpec = tween<IntOffset>(700)
NavHost(
    navController = navController,
    startDestination = startDestination,
    enterTransition = { slideIntoContainer(SlideDirection.Left, animationSpec) },
    exitTransition = { slideOutOfContainer(SlideDirection.Left, animationSpec) },
    popEnterTransition = { slideIntoContainer(SlideDirection.Right, animationSpec) },
    popExitTransition = { slideOutOfContainer(SlideDirection.Right, animationSpec) }
) { ... }

We might tune default behaviour in the future, but don't expect it in first versions.
Our general vision here is that should be possible to implement this via only public API, so everyone might customize it for their specific needs

predictive back gesture

It on our radar too, no promises about ETA yet

@MatkovIvan Does navigation-compose already support kmp?

JetBrains started to publish dev builds of a multiplatform version of this package, but there is no stable version yet.
Usage example: https://github.com/MatkovIvan/nav_cupcake
Tracking of adding multiplatform support was there: https://github.com/JetBrains/compose-multiplatform/issues/85#issuecomment-2036264640

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.