SVG/PNG/JPG import

This would enable e.g. coloring books and grid paper (as a quick-hack alternative to #21).
SVG import should actually be really easy to implement, provided the file fits within one BSON document, which is 16MB so probably all we really need/want.  A new type of object svg (at the level of pen), which just renders as is.  We'll quickly want the ability to move it, and possibly scale it, via #17.
Once we have SVGs, images (PNG/JPG) would not be much harder -- just need to wrap in <image> tags.

[ ] SVG import
[ ] PNG/JPG image import
[ ] Dragging files onto the canvas (this would be especially convenient for placing it where you want it, instead of having to drag it after import)
[ ] Pasting from clipboard
[ ] Quota system (per image, also per board? per user and require auth?) might be needed...
[ ] Automatic downsizing in resolution and JPEG compression?
[ ] Only vector importing?

It might be even better if I can paste clipboard image, then I don't even need to save a screenshot. I think we often take screenshot and annotate.

This would also enable students working on a desktop computer without tablet capabilities to share pictures of their handwritten work. It would be awesome if we could get image sharing soon!

PR #142 allows for pasting PNG/JPG (and text) from the clipboard, which gets rendered as an  in the svg.  This framework can probably be reused for drag/drop [ which uses the same DataTransfer object ], and with some more logic can probably interpret svgs from the clipboard as well.  Scaling [ issue #17 ] will be particularly relevant here.  Also, perhaps some way of "locking" objects so they're not selectable / moveable / erasable by default would make the annotation functionality mentioned above more user-friendly.

PR #142 allows for pasting PNG/JPG (and text) from the clipboard, which gets rendered as an  in the svg.  This framework can probably be reused for drag/drop [ which uses the same DataTransfer object ], and with some more logic can probably interpret svgs from the clipboard as well.  Scaling [ issue #17 ] will be particularly relevant here.  Also, perhaps some way of "locking" objects so they're not selectable / moveable / erasable by default would make the annotation functionality mentioned above more user-friendly.

For those following this issue, I just implemented and deployed #144 which is a sort of workaround for this; it allows embedding arbitrary images (SVG/PNG/JPG/etc.) from another image host, such as Imgur (PNG/JPG only) or Coauthor or your website or really any website. This lets Cocreate use arbitrary images without taxing the server's disk space, until we figure out a good account/quota system.

I tried this, and it works nicely on Chrome - but on Firefox I am running into CORS restrictions.

@loleg Could you please open a new issue that is more specific? What image are you trying to embed, and what error do you get on Firefox?


[nix] add v1.11 release note link

The v1 release notes are available here:
https://nixos.org/manual/nix/stable/release-notes/rl-1.0
Added the link to release v1.11
Unsure if releaseCycle (and dates, ..) should be changed too.
Also the release notes are available with and without the .html suffix

https://nixos.org/manual/nix/stable/release-notes/rl-2.19.html vs.
https://nixos.org/manual/nix/stable/release-notes/rl-2.19

Changed it to not using the suffix as the links in the manual are without it.

Unsure if releaseCycle (and dates, ..) should be changed too.

All the minor have been aggregated for version 1. Did not check, but I think this was done before we were hiding oldest releases to not have too many EOL releases displayed at the same time. Now we could split this version again, but it would require a bit of work.


✨ Add powered by papercups? (next)

@cheeseblubber @reichert621 when should this appear?

let's start off by just showing it always by default :)


toxiproxy: 2.4.0 -> 2.5.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/Shopify/toxiproxy/releases.
meta.description for toxiproxy is: "Proxy for for simulating network conditions"
meta.homepage for toxiproxy is: "https://github.com/Shopify/toxiproxy"
meta.changelog for toxiproxy is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.5.0 with grep in /nix/store/3xzkv3vjcajaxnlvmcndcmil3crs7595-toxiproxy-2.5.0
found 2.5.0 in filename of file in /nix/store/3xzkv3vjcajaxnlvmcndcmil3crs7595-toxiproxy-2.5.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
toxiproxy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3xzkv3vjcajaxnlvmcndcmil3crs7595-toxiproxy-2.5.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A toxiproxy https://github.com/r-ryantm/nixpkgs/archive/01c28b84aadb78610e731f33f1fbc5b60a5c1249.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3xzkv3vjcajaxnlvmcndcmil3crs7595-toxiproxy-2.5.0
ls -la /nix/store/3xzkv3vjcajaxnlvmcndcmil3crs7595-toxiproxy-2.5.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

toxiproxy

Maintainer pings
cc @avnik for testing.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/612


Updates packages & workflows

updated dependencies as much as possible (there are audit-warnings)
update all workflows to use the newest action-versions
add harden runner

Codecov Report

Merging #15 (9ce1e6a) into main (bc7caee) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #15   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           10        10
  Lines          239       239
  Branches        21        21
=========================================
  Hits           239       239

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Fix #615 - add padding for hour12 in kitchen format

Summary of changes
Fixes issue #615 where two-digit hours aren't parsed correctly for "{kitchen}"
Checklist

[ ] New functions have typespecs, changed functions were updated
[ ] Same for documentation, including moduledocs
[x] Tests were added or updated to cover changes
[x] Commits were squashed into a single coherent commit
[ ] Notes added to CHANGELOG file which describe changes at a high-level

Coverage decreased (-0.04%) to 72.08% when pulling 67a04b8275ae23c76166b65e3501d6903b28812d on davemenninger:kitchen-hours-padding into 45424fa293066b210eaf94dd650707343583d085 on bitwalker:master.


Signing doc #84

Fixes #84

there's a minor conflict in index.rst

Cheers @myuwono yeah I made this branch while the other PR was up.


Add support for updating the schema of a dataset

🙋 feature request

🤔 Expected Behavior

😯 Current Behavior

💁 Possible Solution

🔦 Context

💻 Examples

How does this differ from #107 ?

Closing due to inactivity. Feel free to reopen if what is being asked is different from what was provided in #107 .


[ZEPPELIN-5114]. Add api to ZeppelinClient for import note

What is this PR for?
This PR just add api to ZeppelinClient for importing note. This api would return noteId if importing is successful, otherwise it would throw exception.
What type of PR is it?
[Feature]
Todos

[ ] - Task

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-5114

How should this be tested?

Unit test is added
https://travis-ci.org/github/zjffdu/zeppelin/builds/739823431

Screenshots (if appropriate)
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

Will merge if no more comment


[regression] bad handling of decimal separator

@m3nu Following your changes of January 23, the amounts with "," as decimal separator are badly converted to float. For example, pdftotext extracts "27,80" and this is converted to "2780.0" !
When I look at the code in main.py:
locale.setlocale( locale.LC_ALL, 'en_US.UTF-8' )
[...]
output[k] = locale.atof(res_find[0])

So I understand that the conversion from string to float is always done with the en_US locale, so it doesn't support dot as decimal separator. What was your idea when you wrote this code ?
My idea would be to add 2 additionnal options in the YAML files: decimal_separator and thousand_separator. We can't just define a language parameter and use it, because for example some French invoices don't respect the official french decimal separator (dot) and thousand separator (space).

My idea was to set or programmatically extract the invoice language and then use that language with locale.atof. There may be edge cases. Feel free to add those thousand and decimal sep settings.
I'll soon do my own accounting with the lib and will discover some issues as well.

OK. I propose the following:

If the decimal_separator option is NOT set, fallback on the first entry of the 'languages' option and use atof() with the right locale
if the decimal_separator option is set, we will do the following:
a) replace the decimal separator by "."
b) remove all other separators
c) use float()

That way, we should not need the thousand_separator option, but only the decimal_separator option. We just have to make sure that we handle properly the case where "." is the thousand separator.

Sounds good. I didn't find any other major issues today. Was running the lib over 6 months of invoices to match them to the corresponding bank transactions.

In the end, the implementation that I pushed in master (I forgot to cross reference with this bug report) is only step 2) of my previous comment. Why ? Because I feel that locale.atof()  is not the right solution for the following reasons:

it is not easy to go from a 2 letter language code (fr) to a full locale (fr_FR.UTF-8)
it is not easy to know which locale are installed on the system, to avoid a crash when you try setting a locale that is not installed
you may want to parse an invoice in a language for which you haven't installed the locale
the code with the decimal separator is simple and reliable


tiled_cholesky w/o openmp

tiled_cholesky implementation.
BUILD NOTE: build openblas library as needed.  build OpenBlas script
include openblas library when build or $ export OPENBLAS_DIR=/openblas/path
TODO:

[x] add args ： matrix_size, num_tiles， int verifycorrectness = 1; bool layRow = true;

Thanks for asking:

Is this code taken/modified from lapack or blas examples or written from scratch. I see a few C style code and _WIN32 relics that seem to be coming from somewhere else?

This code modified a lot mainly from Intel open source project, hetero-streams. And other online sources.

Maybe I am not in the loop but I thought we were implementing a stdexec/omp version of the cholesky? From the last meeting, I remember you had a design ready for at least 3x3 matrices that you were implementing?

Yes, we were trying to implement a stdexec/omp version of the cholesky.
And if you remember the paper "Task-Based Cholesky Decomposition on Knights Corner using OpenMP" and it talks about the OpenMP Task-Based Cholesky Decomposition. and other papers about the tiled_cholesky decomposition.
So according to its pseudo code in the paper, first, we have to have the  tiled_cholesky decomposition algrithm for constructing task-based graph(for openmp).
Once we have this tiled_cholesky decomposition algorithm works, then we can implementing 'omp' version by adding openmp syntax.
And last time meeting, I had a design ready for at least 3x3 matrices works for this tiled_cholesky decomposition, i was working on verifying the correctness and generalize the code as much as possible.

I don't get the point of using lapack or blas to build cholesky as those libraries already contain methods to do that directly: https://nalgebra.org/docs/user_guide/decompositions_and_lapack/

As I mention in Question2, this implementation is for tiled_cholesky using functions in lapack or blas.
Yes, lapack or blas  provide the LAPACKE_dpotrf() to do this directly but not in sub_blocks way.
As we have seen, the nvdia's cholesky implementation using their advanced library #include <experimental/linalg>, this is also a block cholesky algorithm which with fix 4 sub_blocks.
I cannot find a way to do (task_based )'omp' if we only have previous implemented code.

Does this code run in serial or parallel fashion? If serial, what's the advantage of doing this over the serial version we already have?

currently, I am running the code  with gpu.
I didn't test the performance between this and serial.

Generally, I am not in favor of adding so many external dependencies (lapack/blas) in this repository unless they are absolutely needed for functionality of our code.

Totally understand.  I also worry about this external dependencies issue at the very beginning.
but I didnt find a good way to support this kind of implementation after two weeks literature reviews on this.
This algorithm has heavy data dependencies, I didnt see much innovation methods to implement.
and cannot write these support functions(LAPACKE_dpotrf, cblas_dtrsm, cblas_dsyrk, cblas_dgemm) easily from scratch.

Why some comments disappeared after I reply the questions.

Hi @hcq9102, thank you for taking the time to respond to questions.

That's fine but please include original licenses in files as well if required for transparency and legal reasons.

I would recommend also using #include <experimental/linalg/..> as it is natively available in our NVC++ compiler instead of adding external lapack and blas libraries.

As you have a task-based parallel design ready (at least for 3x3 matrix), I would strong recommend implementing it with stdexec and #include <experimental/linalg> first. Doing so will allow you to work with stdexec and use CPUs/GPUs similar to other apps without using external dependencies.

If possible, I would like to see some performance and correctness results before merging this into the main branch

Hi @mhaseeb123
Thanks for your comments!

I would recommend also using #include <experimental/linalg/..> as it is natively available in our NVC++ compiler instead of adding external lapack and blas libraries.

Weile and I have discussed the possibility of using <experimental/linalg/..> in task-graph imp one month ago, but there is one function missing in <experimental/linalg/..>, so have to turn to lapack. And its not that good if mixed <experimental/linalg/..> and lapack.
But I will check the possibility of using #include <experimental/linalg/..> again.

As you have a task-based parallel design ready (at least for 3x3 matrix), I would strong recommend implementing it with stdexec and #include <experimental/linalg> first. Doing so will allow you to work with stdexec and use CPUs/GPUs similar to other apps without using external dependencies.
I will try to do senders/receivers if possible, but there is external lib involved issue.

If possible, I would like to see some performance and correctness results before merging this into the main branch.
I have verified the correctness  with lapack function which calculate cholesky decomposition directly.
Yes, Will have Performance test.

General question: I noticed that we are accessing matrices via C-style indexing at several locations. For example: matrix[row * n + col] =  syntax. Would it make more sense to use mdspans for better syntax and readability?

General question: I noticed that we are accessing matrices via C-style indexing at several locations. For example: matrix[row * n + col] =  syntax. Would it make more sense to use mdspans for better syntax and readability?

I believe the openblas library is C-style and cannot figure out mdspan.


xmlschema.exceptions error on Windows WSL only

Hello,
We have been using VALIS in our Lab for some time in it is amazing. We use the docker installation on Ubuntu machines. Recently another team wanted to install it on their machine which is a Windows machine so I did all the necessary work (WSL, Docker, VALIS).
Using the same script and the same images that work in Ubuntu, we get this error which I do not understand since it is a docker installation and not a manual one.
Here is the error:
JVM has been initialized. Be sure to call registration.kill_jvm() or slide_io.kill_jvm() at the end of your script.                                                                                ==== Converting images                                                                                100%|██████████| 2/2 [01:23<00:00, 41.65s/it]                                                                                ==== Processing images                                                                                100%|██████████| 2/2 [00:29<00:00, 14.66s/it]                                                                                ==== Normalizing images                                                                                100%|██████████| 2/2 [00:01<00:00,  1.91it/s]                                                                                ==== Rigid registraration                                                                                100%|██████████| 2/2 [00:01<00:00,  1.02it/s]                                                                                ======== Detecting features                                                                                100%|██████████| 2/2 [00:23<00:00, 11.77s/it]                                                                                ======== Matching images                                                                                100%|██████████| 1/1 [00:29<00:00, 29.08s/it]
======== Sorting images                                                                                100%|██████████| 1/1 [00:29<00:00, 29.14s/it]                                                                                ======== Calculating transformations                                                                                100%|██████████| 1/1 [00:00<00:00, 198.28it/s]
100%|██████████| 2/2 [00:00<00:00, 883.85it/s]                                                                                ======== Rigid registration complete in 53.441 seconds                                                                                ==== Non-rigid registraration                                                                                ======== Preparing images for non-rigid registration                                                                                100%|██████████| 2/2 [00:23<00:00, 11.77s/it]
100%|██████████| 1/1 [00:15<00:00, 15.35s/it]                                                                                ======== Non-rigid registration complete in 17.6 seconds                                                                                ==== Measuring error                                                                                100%|██████████| 2/2 [00:01<00:00,  1.13it/s]
0%|          | 0/2 [01:09<?, ?it/s]
Traceback (most recent call last):
File "/mnt/e/VALIS/register.py", line 27, in                                                                    registrar.warp_and_save_slides(registered_slide_dst_dir, crop="overlap")
File "/usr/local/src/valis/valtils.py", line 29, in wrapper
return f(*args, **kwargs)
File "/usr/local/src/valis/registration.py", line 4332, in warp_and_save_slides                                         slide_obj.warp_and_save_slide(dst_f=dst_f, level = level,
File "/usr/local/src/valis/valtils.py", line 29, in wrapper
return f(*args, **kwargs)
File "/usr/local/src/valis/registration.py", line 983, in warp_and_save_slide
ome_xml_obj = slide_io.update_xml_for_new_img(current_ome_xml_str=slide_meta.original_xml,
File "/usr/local/src/valis/valtils.py", line 29, in wrapper
return f(*args, **kwargs)
File "/usr/local/src/valis/slide_io.py", line 2622, in update_xml_for_new_img
og_ome = ome_types.from_xml(current_ome_xml_str, parser="xmlschema")
File "/usr/local/src/.venv/lib/python3.10/site-packages/ome_types/_convenience.py", line 106, in from_xml
d = to_dict(os.fspath(xml), parser=parser, validate=validate)
File "/usr/local/src/.venv/lib/python3.10/site-packages/ome_types/_convenience.py", line 73, in to_dict
d = parser(xml) if validate is None else parser(xml, validate=validate)
File "/usr/local/src/.venv/lib/python3.10/site-packages/ome_types/_xmlschema.py", line 239, in xmlschema2dict
result = xmlschema.to_dict(xml, schema=schema, converter=converter, **kwargs)
File "/usr/local/src/.venv/lib/python3.10/site-packages/xmlschema/documents.py", line 296, in to_dict
source, _schema = get_context(xml_document, schema, cls, locations, base_url,
File "/usr/local/src/.venv/lib/python3.10/site-packages/xmlschema/documents.py", line 83, in get_context
raise XMLSchemaValueError(msg)
xmlschema.exceptions.XMLSchemaValueError: cannot get a schema for XML data, provide a schema argument

Hi @Raoufsk,
So happy to hear that you're finding valis useful, but sorry you're running into this issue. I don't have that much experience with Docker, and I too would think that it should work the same on the Windows machine as it does on the Ubuntu ones. This should especially be true since all of the Python dependencies are "pinned" (most relevantly, xmlschema 2.1.1 and ome-types 0.3.3), and so should be the same version no matter the platform. So, unfortunately, I don't I can be of much help here. However, I did notice that ome-types was recently updated to 0.4, and it looks like xmlschema is an optional dependency, so perhaps that will resolve this issue in the next update? Sorry I couldn't be of more help.
Best,
-Chandler

Hello Chandler,
Thanks for the replay! The problem seems to be related to JAVA JRE installation. I don't understand much about it but my scripts are working once I installed JAVA JRE.
Best,
Raouf

That's great news, glad you were able to figure it out, @Raoufsk! I'll go ahead and close the issue. Thanks for sharing your solution.
Best,
-Chandler


Add support for ClassImportIntegrator for compact DTOs

As explained in this article.

Only for Hibernate 5 modules, as the Hibernate 4 didn't support this properly.

Fixed.


Specialized collections do not bind correctly to array-typed parameters of binary cmdlets

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
Note:

Select-String is used as an example, but I presume the problem is fundamental to how arguments are bound in binary cmdlets - script cmdlets (advanced functions) do not exhibit the problem.

The example uses an ordered hashtable whose .Keys collection is of type System.Collections.Specialized.OrderedDictionary+OrderedDictionaryKeyValueCollection, which implements ICollection and IEnumerable; unordered hashtables (System.Collections.Hashtable+KeyCollection, same interfaces) are equally affected - I don't know what the general pattern is, however.

$ht = [ordered] @{
  'two' = 1
  'one' = 1
}

'-- use of @(...) (or cast to string[]): OK'
'one', 'two' | Select-String -Quiet -Pattern @($ht.Keys)
# !! BROKEN
'-- no cast'
'one', 'two' | Select-String -Quiet -Pattern $ht.Keys
'-- no cast with input matching the stringified key collection as a single-element array'
'two one' | Select-String -Quiet -Pattern $ht.Keys

What seems to be happening is that, instead of creating an array of values from the elements of the collection, the collection as a whole is stringified (elements joined with spaces) and the result becomes a single-element array.
Expected behavior
-- use of @(...) (or cast to string[]): OK
True
-- no cast
True
-- no cast with input matching the stringified key collection as a single-element array
True

Actual behavior
-- use of @(...) (or cast to string[]): OK
True
-- no cast
-- no cast with input matching the stringified key collection as a single-element array
True

Error details
No response
Environment data
PowerShell Core 7.2.0-preview.9

Visuals
No response

I don't know what the general pattern is, however.

The patterns here is that the parameter binder only ever attempts an unchecked conversion to IList before deciding whether the parameter argument is to be coerced or wrapped as a single-element array. Since the key collections don't implement IList, the parameter binder treats it as a scalar and wraps it instead of attempting any actual conversion.
Default parameter binding behavior could be updated to allow coercion of a less specific interface (eg. ICollection) instead of IList, but I suspect it will require some significant work.

https://github.com/PowerShell/PowerShell/issues/16061#issuecomment-932956381

https://github.com/PowerShell/PowerShell/issues/16061#issuecomment-932956381


feat: add basic data integrity validation

Suggested in https://t.me/grammyjs/280356

Oh nevermind. I guess this should be closed in favor of an existing commit?

Yes, this was just to make it easier to say that I mean


Confirm how to build from a tag with `make-adopt-build-farm.sh

@smlambert @sxa

if this PR is not ready, should mark as "draft" ? @julian55455

Can you confirm whether the SCM_REF will work from a specific commit git commit SHA within the respitory as well as a tag name?

Still linter issues:
 /github/workspace/FAQ.md:123:75 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1]
/github/workspace/FAQ.md:127:78 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1]
/github/workspace/FAQ.md:148:33 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1]
/github/workspace/FAQ.md:152:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1]
/github/workspace/FAQ.md:156:42 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1]
/github/workspace/FAQ.md:162:1 MD019/no-multiple-space-atx Multiple spaces after hash on atx style heading [Context: "#  Build output:"]
/github/workspace/FAQ.md:162 MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "#  Build output:"]

@andrew-m-leonard  I see linter has successfully passed ci

@andrew-m-leonard Are the failing checks due to another PR that this would need to be rebased on?

@andrew-m-leonard Are the failing checks due to another PR that this would need to be rebased on?

This PR need to rebase, to get the testcase updates for ca-certs, or the smoketest fail

@julian55455 could you rebase your change before we merge it ?

@julian55455 could you rebase your change before we merge it ?

@zdtsw sorry I caught this comment late. I did a rebase and triggered an empty commit for a rebuild.
Someone to approve it spin and see what happens @andrew-m-leonard

run tests

@julian55455 although the build failures are most like unrelated, can you try a re-build tomorrow please

@julian55455 although the build failures are most like unrelated, can you try a re-build tomorrow please

doing re-run now, check tomorrow if all good

Now i see the problem.
Your branch is not rebased, that's why testcases are failing @julian55455

Now i see the problem.
Your branch is not rebased, that's why testcases are failing @julian55455

@zdtsw which command do you usually use to rebase a branch?

Now i see the problem.
Your branch is not rebased, that's why testcases are failing @julian55455

@zdtsw which command do you usually use to rebase a branch?

An exact command depends on what you've called your upstream branch (assuming you have one) but it's typically something like
git rebase up/master

followed by a git push
For more detailed information on rebasing, check out sections 2 and 3 of http://sxatech.blogspot.com/2022/03/gitrebasing.html

@julian55455 you also need to sign ECA

@julian55455 you also need to sign ECA

@zdtsw I already did. How about I close this PR and open another one with the same changes that is up to date with the master? I think that would be easier

@julian55455 You need to sign your commits, so when you do a commit use -s, should sign it with your Signature:
git commit -s -m"commit message...."
So you need to unwind these commits, given there's 43, maybe easier to put a new PR

@andrew-m-leonard I created a replica of the PR here because this has failed to pass ci. we can may be close it if this is a solution.


Place holder shall show the same as in editor find widget

Testing #145629

What is your image supposed to show?

Sorry for not uploading right image.. here you go


Update iopipe-js-config to 1.4.5

Closed with https://github.com/iopipe/iopipe-js/releases/tag/v1.17.1


Allow resource placement in availability zones

The azure subnet is not a zonal service. Resources are deployed into specific AZs unlike AWS.
Possible solutions:

multy handles subnet/az resolution in the backend
makes resources subnet agnostic

This was done mainly in #330 by making subnets zone agnostic and handling zonal resources (vms, network interfaces) by specifying the az in azure or choosing the right subnet in aws.


doc: fix gpg generation key

in gpg2.x secring is not generated, we need to generate it.
Fixes #3911

Thanks for the documentation update. However, I think that the existing doc is showing gpg1 step-by-step instructions, while you want to move this further into gpg2.
I generally agree that we should probably revisit all of this to work with gpg2, but then we should probably say so explicitly and use gpg2 as binary name in examples.


enable Variable width tile matrices

Until now, it has been assumed that matrixWidth is constant for all tile rows. This is common usage for projections that do not distort the Earth too much. But when using Equirectangular Plate Carrée projection (see Annex D subsection 2) the distortion increases for tiles closer to the poles. In the extreme, the upper row of the upper tile (the one representing the North Pole) contains a list of repeated values that represents almost the same position in the space. The same can be said for the lower row of the lower tile (the one representing the South Pole). When the tiles are represented in a flat projection, this is an effect that cannot be avoided, but when the data are presented in a virtual globe, the distortion results in redundant information in the poles that need to be eliminated by the client during the rendering. Compensating for distortion is better done at the server side instead.

The solution consists of reducing the number of tiles (matrixWidth) in the high latitude rows and generating those tiles with a compressed scale in the longitudinal dimension (see Figure 8). To allow this solution, the tile model must be extended to specify coalescence coefficients (𝑐) that reduce the number of tiles in the width direction by aggregating 𝑐 horizontal tiles but keeping the tileWidth (and tileHeight). The coalescence coefficient is not applied next to the Equator but is used in medium and high latitudes (the higher the latitude the larger the coefficient).

Even if tiles can coalesce, this does not change the indexing or the tile matrix set that will be the same as if no coalescence has been applied. For example, if the 𝑐 coefficient is 4, the tileCol of the first tile will be 0, the tileCol of the second tile will be 4, the tileCol of the third tile will be 8 and so on. In other words, and for the same example, tileCol 0, 1, 2 and 3 points to the same tile.

ref: https://docs.ogc.org/is/17-083r4/17-083r4.html#toc15
I've added the needed attributes in the model (commented) https://github.com/developmentseed/morecantile/blob/f346786d8e1164af255eb61dfc8c251859ca8cd1/morecantile/models.py#L116-L125 and https://github.com/developmentseed/morecantile/blob/f346786d8e1164af255eb61dfc8c251859ca8cd1/morecantile/models.py#L185 but I'm not quite sure I understand how it works 😓

@vincentsarago this would actually be neat to see implemented. Ny looking at that section I basically see that depending on the row you just lower the matrixWidth by dividing it by the coalescence coefficient, eg if in top row and c =4 you would have width/4 martixWidth. I'm looking at figure 8 to understand this, but no idea if it really is as easy as dividing the matrixWidth within morecantile. It also looks like Figure E.1 has a figure about how to scale the coefficients to be closer to equal area, and figure E.3 has a good visual for how the tiles look in equirectangular projection and example confs

@AndrewAnnex
It's actually very simple.
For rows where a coalescing factor is set, that many tiles will be coalesced into a single tile, with the same number of pixels as usual, but covering the horizontal extent of all of these tiles.
As an example, for a row with c=2, two 256x256 tiles covering 45 degrees x 45 degrees become a single 256x256 tile covering 45 degrees of latitude by 90 degrees of longitude.
I will be participating in the code sprint and happy to help clarify and answering any questions.

FYI I started a PR in #131
I'll need to add some tests and also so if all the morecantile methods are working with VariableWidth TMS

I've added some test and put the PR as ready to review.
if someone want to tests that will be awesome, else I'll just assume that I understood the spec correctly 😅
import morecantile
tms = morecantile.tms.get("GNOSISGlobalGrid")

tms.xy_bounds(0, 0, 0)
>> BoundingBox(left=-180.0, bottom=0.0, right=-90.0, top=90.0)

tms.xy_bounds(0, 0, 1)
>> BoundingBox(left=-180.0, bottom=45.0, right=-90.0, top=90.0)

tms.xy_bounds(1, 0, 1)
>> BoundingBox(left=-180.0, bottom=45.0, right=-90.0, top=90.0)

morecantile tms --identifier GNOSISGlobalGrid | morecantile tms-to-geojson --level 2 --collect | gist

https://gist.github.com/vincentsarago/36d1dafc34be6b2ba9fd926bae8f07fa

I think the spec says it exist but it has the same bounds as the tile 0,0,1. I think it might be just different wording.

Right. The important thing is that when generating a tileset (or when a client request tiless), you do not generate the alias tile as well as the "real" tile.
Otherwise that will completely defeat the purpose of variable width, since you are re-duplicating the same data :D

Right. The important thing is that when generating a tileset (or when a client request tiless), you do not generate the alias tile as well as the "real" tile.
Otherwise that will completely defeat the purpose of variable width, since you are re-duplicating the same data :D

ah, I was more under the impression that it's up to the client to not call the tile 😬
Not sure about the tileset, if I remember well the tileset specification says you need provide min/max row/col so it's the same issue it's up to the client to know the tilematrixset and not ask for alias tiles.

@vincentsarago
I was mainly mentioning this for the case of a an offline tileset batch producer (not sure whether morecantile is used for this or not), where you definitely don't want to produce those extra tiles as it will make the resulting tileset larger than it needs to be, which is a key thing that the VW TMS try to avoid.
For a server, ideally it would return a 3xx redirect to the correct tile. For an on-demand server / block storage, you ideally want to avoid extra cache usage or processing overhead from generating duplicate tiles. Our own implementation doesn't quite do that yet :)

@vincentsarago

is this defined in the spec?

I not 100% clear whether it is well stated in the spec, but my understanding is that the left-most tile is the one that exists i.e., integer division by the calescence factor, then multiplying again by the coalescence factor.
e.g., for GNOSIS Global Grid, the northernmost tiles are always power of two multiplied by 0, 1, 2 or 3.

3,0,1, is it the alias of 2,0,1 or the contrary?

col: 3, row: 0, level: 1, is an alias for col: 2, row: 0, level: 1 for the GGG.

I don't think there is a formal requirement, but the following is included in normative Section 6.1.5:

Even if tiles can coalesce, this does not change the indexing or the tile matrix set that will be the same as if no coalescence has been applied. For example, if the c
coefficient is 4, the tileCol of the first tile will be 0, the tileCol of the second tile will be 4, the tileCol of the third tile will be 8 and so on. In other words, and for the same example, tileCol 0, 1, 2 and 3 points to the same tile.

@vincentsarago The spec says they are the same tile. It might be good to clarify that the first one should be the one that client look for, and that servers SHOULD redirect to the first one, and MAY return a 4xx for the non-canonical tile.


[W4.4b][W09-A2] Tan Wei Hao

Added 4 classes to address (Block, Street, Unit, and PostalCode) and updated test cases

Reviewed in https://github.com/nus-cs2103-AY1718S2/addressbook-level2/pull/91


Roll Engine from ad6c83164ee4 to 0c7cf6720918 (1 revision)

https://github.com/flutter/engine/compare/ad6c83164ee4...0c7cf6720918
2021-06-10<EMAIL_ADDRESS>migrate the rest of dev/ to null safety (flutter/engine#26668)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


Current type for Array.prototype.includes may reject valid use cases

lib Update Request

Configuration Check

My compilation target is ESNEXT and my lib is ESNEXT.
Missing / Incorrect Definition
This is lib.es2016.array
interface Array<T> {
    includes(searchElement: T, fromIndex?: number): boolean;
}

Sample Code
Problem may relevant:
const a = [1, 2, 3, 'a', 'b', 'c'] as const
const b = [1, 2, 3, 4, 5, 6] as const

const n = b[Math.floor(Math.random()*6)]
a.includes(n) // type error but should pass

Suggested fix:
interface Array<T> {
    includes<I = T, E = T>(this: readonly I[], v: E, from?: number): v is I & E
}

And for ReadonlyArray as well.
Documentation Link
Array.prototype.includes, but irrelevant.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

Please search for duplicates before logging new issues

@RyanCavanaugh All the dupes of this tend to get closed and duped to https://github.com/microsoft/TypeScript/issues/14520; anyone searching for open issues about this is unlikely to find that one organically.

And I have no idea why this is considered a dup of #14520. That one has nothing to do with this since 1 | 2 | 3 | 4 | 5 | 6 is not a subtype of 1 | 2 | 3 | "a" | "b" | "c" or the opposite.
It is like, even if the array type T has no intersection with the search element type E, it does not always mean an error. It will always be a false but it should be like "a constant condition may indicate something wrong", not the Array.prototype.includes part.

There are five duplicate issues with Array.prototype.includes in the title.
The missing type system feature to represent this would be #14520.

I am not requesting a type system feature, I am requesting a change to the signature.

The proposed signature allows any argument, which we consider to be too loose:
a.includes({ foo: 23 }) // should fail, but doesn't

In general most feedback we get is that TS should be strict by default and people should have to "do something" to get looser behavior. The current includes behavior follows that line of thinking.

Ok I guess I need to find a way to "if some type is never then raise a type error" to get this pass.

Just to note, you can always add in whatever signature you like into a global declaration merge. It'll be selected first if it matches.

To be clear, the thing that you do if you have the global signature merge is make type checking less strict, not more strict


[cmake] Fix inconsistently imported warning.

Quick fix for:
swift-testing\Sources\Testing\Support\GetSymbol.swift:11:17: warning: '_TestingInternals' inconsistently imported as implementation-only

Motivation:
We made importing _TestingInternals conditional on build type to minimize chances of direct usage by third-parties. While verifying other recent changes, I noticed this import had been added without the proper conditional.
[15/16] Building Swift object swift/Testing.swiftmodule Sources/Tes...t.obj Sources/Testing/CMakeFiles/Testing.dir/Traits/Trait.swift.obj
swift-testing\Sources\Testing\Support\GetSymbol.swift:11:17: warning: '_TestingInternals' inconsistently imported as implementation-only
 9 │ //
10 │
11 │ internal import _TestingInternals
   │                 ╰─ warning: '_TestingInternals' inconsistently imported as implementation-only
12 │
13 │ #if !SWT_NO_DYNAMIC_LINKING

swift-testing\Sources\Testing\EntryPoints\EntryPoint.swift:12:29: note: imported as implementation-only here
 10 │
 11 │ #if SWT_BUILDING_WITH_CMAKE
 12 │ @_implementationOnly import _TestingInternals
    │                             ╰─ note: imported as implementation-only here
 13 │ #else
 14 │ private import _TestingInternals

Modifications:
Update import to use @_implementationOnly when building w/CMake.
Result:
Warning is gone.
Checklist:

[X] Code and documentation should follow the style of the Style Guide.
[X] If public symbols are renamed or modified, DocC references should be updated.

Whoops! Thanks.

@swift-ci please test


feat: add legacy mode to libregraph link types

Description
Enhancement: New public sharing via libregraph link types
We added libregraph link types to the graph service as a new set of api calls to replace the legacy OCS API. We added the endpoint to create links https://owncloud.dev/libre-graph-api/#/drives.permissions/CreateLink
and the linktype listing to the "SharedByMe" call. (Already done in another PR)
We also added a config to match legacy public links created by the OCS API to the new libregraph link types. This config switch is recommended for instances which were already existing before Infinite Scale 5.0.0 was released.
https://github.com/owncloud/ocis/pull/7834
https://github.com/owncloud/ocis/pull/7743
https://github.com/owncloud/ocis/issues/6993
Related Issue

Relates to #6993

Motivation and Context
Make our APIs better 🎉
How Has This Been Tested?

manual test ✅
unit tests ✅

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

[x] Code changes
[x] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

@kulmann @dragotin @JammingBen @michaelstingl @TheOneRing
That legacy mode might be crucial in the transition process.
Background
The legacy OCS api was creating public links with more permissions than needed 🙈
Example - Folder With "Edit" Permission set
curl 'https://localhost:9200/ocs/v1.php/apps/files_sharing/api/v1/shares/RukBURtBXPmjBiM' \
  -X 'PUT' \
  -H 'authorization: Bearer <token>' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'ocs-apirequest: true' \
  --data-raw 'permissions=15&name=Link&expireDate=' \
  --compressed \
  --insecure

Magic number 15 is used for the bitmask which means:
	  Read = 1
	+ Write = 2
	+ Create = 4
	+ Delete = 8
         ------------
         = Total 15

Libregraph representation
                        libregraphActions := []string{
				"libre.graph/driveItem/standard/delete",
				"libre.graph/driveItem/path/read",
				"libre.graph/driveItem/quota/read",
				"libre.graph/driveItem/content/read",
				"libre.graph/driveItem/upload/create",
				"libre.graph/driveItem/children/read",
				"libre.graph/driveItem/deleted/read",
				"libre.graph/driveItem/path/update",
				"libre.graph/driveItem/deleted/update",
				"libre.graph/driveItem/basic/read",
			},

We can see that

libre.graph/driveItem/deleted/update (Restore File from Trashbin)
libre.graph/driveItem/deleted/read (List File in Trashbin)

was accidentally added to Public links in the past. It did no harm because we can not list the trashbin via the public link endpoint.
For the new LibreGraph link types we removed that unneeded permission.
Solution
We now have a config which is enabled by default (GRAPH_SHARING_MATCH_LEGACY_PUBLIC_LINK_PERMISSIONS) which takes care that the legacy links from OCS are also sorted into the 5 possible libregraph Link types.

Puh, hit some obstacles 🤦
The OCS backwards conversion is not working. That means we are trapped with the wrong permissions.
Need a fresh start tomorow.
@butonic @aduffeck maybe some inspiring ideas 🪄

After thinking about it, my conclusion is that we need to do that cleanup later for ocis 6.0.0 when the OCS code is removed.


Allowing picking P3 Colors

There doesn't seem to be any Mac color pickers that support P3 colors. if I pick a P3 color in Safari (which supports P3 colors out of the box) it will just output the color in SRGB color formats. Safari has its own built-in P3 color picker:

Display P3 is a good format for screens, but not for humans. I recommend using LCH, which has the range of Display P3, but in a more human-friendly format. OKLCH is even better, and something I plan to support soon.

What do you mean by not for humans? The color picker could show P3 values like with the CSS color() function, and it could be used to tell if a color you defined is a P3 color or not.

I recommend reading: https://www.smashingmagazine.com/2023/08/oklch-color-spaces-gamuts-css/


latest update of Sublime text 3 breaks SublimeLinter-jshint

I have no problems with the lastest version of sublime text 3 (build 3080)
Can you provide more information?

Hmmm, started working again after a computer restart. Must have been a
problem with jshint.
On 24 March 2015 at 11:20, Martin Hansen<EMAIL_ADDRESS>wrote:

I have no problems with the lastest version of sublime text 3 (build 3080)
Can you provide more information?
—
Reply to this email directly or view it on GitHub
https://github.com/SublimeLinter/SublimeLinter-jshint/issues/65#issuecomment-85454535
.

Hey guys, I got this problem on ST3 3084 with jshint 2.6.3. How to troubleshoot?

@alanquigley shouldn't the issue be closed then?


⚠ ClamAV has degraded performance

In 34e5516, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 93 ms

Resolved: ClamAV performance has improved in 6db7010.


Problem with authentication?

Only with refreshing the page we have to authenticate again, it's kind of annoying :/
Same thing with duplicating a tab for example.

Two things here:

Remember me does not work due to the Ampache API at the moment, see https://github.com/Phyks/ampache_react/issues/2.
Session is local to a tab session (not shared across tabs, not kept after a reload). This could be managed by storing the session in a short-lived temporary cookie (say for 15 minutes) so that if you don't logout, the session would be restored automatically within 15 minutes. Still, there Ampache API does not allow one to "revive" the session, which is a real problem.

Then, I would say it can be solved quite easily, but depends on #2.


ProcessTask error handling and stability improvements

Can one of the admins verify this patch?

add to whitelist

@mesosphere-ci retest this please

@mesosphere-ci retest this please