bug: types imported from the api package to nextjs are shown as any

Provide environment information
  System:
    OS: macOS 13.2.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 210.77 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.13.0 - /usr/local/bin/node
    Yarn: 1.22.17 - /usr/local/bin/yarn
    npm: 8.19.3 - /usr/local/bin/npm

Describe the bug
When importing types from the api package for example, they are tagged as any and don't get autocompletion
Link to reproduction
https://github.com/t3-oss/create-t3-turbo
To reproduce
Just install the default template, run pnpm install and check the post type in the index page post: RouterOutputs["post"]["all"][number];
Additional information
Not sure if this is my setup or my project. So I install a new fresh install and getting the same behaviour.

So figured out that using alias import in the tsconfig of the package was causing that issue somehow. I removed the type alias from my tsconfig in my package and then types are now properly imported in my apps. I can live with that.


BUG：ImportError: cannot import name 'Union' from 'typing_extensions' (/usr/local/lib/python3.10/dist-packages/typing_extensions.py

Describe the bug
Traceback (most recent call last):   File "/usr/local/bin/xinference", line 5, in <module>     from xinference.deploy.cmdline import cli   File "/usr/local/lib/python3.10/dist-packages/xinference/__init__.py", line 38, in <module>     _install()   File "/usr/local/lib/python3.10/dist-packages/xinference/__init__.py", line 35, in _install     install_model()   File "/usr/local/lib/python3.10/dist-packages/xinference/model/__init__.py", line 17, in _install     from .llm import _install as llm_install   File "/usr/local/lib/python3.10/dist-packages/xinference/model/llm/__init__.py", line 19, in <module>     from .core import (   File "/usr/local/lib/python3.10/dist-packages/xinference/model/llm/core.py", line 23, in <module>     from ...core.utils import parse_replica_model_uid   File "/usr/local/lib/python3.10/dist-packages/xinference/core/__init__.py", line 15, in <module>     from .model import ModelActor   File "/usr/local/lib/python3.10/dist-packages/xinference/core/model.py", line 47, in <module>     from ..device_utils import empty_cache   File "/usr/local/lib/python3.10/dist-packages/xinference/device_utils.py", line 18, in <module>     from typing_extensions import Literal, Union ImportError: cannot import name 'Union' from 'typing_extensions' (/usr/local/lib/python3.10/dist-packages/typing_extensions.py)
在按照jupyter notebook教程中的步骤运行时报错

你可以试试这个句 import 会报错吗？from typing import Literal, Union


lynis: 2.6.8 -> 2.6.9

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/lynis/versions.
meta.description for lynis is: '"Security auditing tool for Linux, macOS, and UNIX-based systems"'.
Release on GitHub
Compare changes on GitHub

Checks done (click to expand)

built on NixOS
/nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9/bin/lynis passed the binary check.
/nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9/bin/.lynis-wrapped passed the binary check.
2 of 2 passed binary check by having a zero exit code.
2 of 2 passed binary check by having the new version present in output.
found 2.6.9 with grep in /nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9
directory tree listing: https://gist.github.com/211cdf15496717511b74d7e57f0a6e86
du listing: https://gist.github.com/9b8207c04e5a8bb32b27c617bfffd622

Instructions to test this update (click to expand)

One-time optional setup to skip building using Cachix:

Install cachix from https://cachix.org/
Use r-ryantm's cache:cachix use r-ryantm

Test this update by entering a nix shell, seeing what is inside the
result, and if applicable, running some binaries:
nix-shell --pure -I nixpkgs=https://github.com/r-ryantm/nixpkgs/archive/f40f8a604f9cc19c2109d833e15b4d863f72a6b3.tar.gz -p lynis
ls -la /nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9

cc @ryneeverett for testing.

Success on x86_64-linux (full log)
Attempted: lynis
Partial log (click to expand)
no Makefile, doing nothing
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9/bin
patching script interpreter paths in /nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9
/nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9/bin/.lynis-wrapped: interpreter directive changed from "/bin/sh" to "/nix/store/czx8vkrb9jdgjyz8qfksh10vrnqa723l-bash-4.4-p23/bin/sh"
checking for references to /build in /nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9...
/nix/store/zk32iiqh83w68am0pa80q0yrknz92mq2-lynis-2.6.9

Success on x86_64-darwin (full log)
Attempted: lynis
Partial log (click to expand)
no configure script, doing nothing
building
no Makefile, doing nothing
installing
post-installation fixup
strip is /nix/store/df6k4mgdjxciy0f637lryp7c9ln7n1m3-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/946f185y53h7njifvyjk6ivpmzv0ilzw-lynis-2.6.9/bin
patching script interpreter paths in /nix/store/946f185y53h7njifvyjk6ivpmzv0ilzw-lynis-2.6.9
/nix/store/946f185y53h7njifvyjk6ivpmzv0ilzw-lynis-2.6.9/bin/.lynis-wrapped: interpreter directive changed from "/bin/sh" to "/nix/store/cblfnvb5rmhd2z231mqasn0brzh1hhv4-bash-4.4-p23/bin/sh"
/nix/store/946f185y53h7njifvyjk6ivpmzv0ilzw-lynis-2.6.9

Success on aarch64-linux (full log)
Attempted: lynis
Partial log (click to expand)
no Makefile, doing nothing
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/l09kzxz8hx3yfazwaiqybg1pljvjja7r-lynis-2.6.9
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/l09kzxz8hx3yfazwaiqybg1pljvjja7r-lynis-2.6.9/bin
patching script interpreter paths in /nix/store/l09kzxz8hx3yfazwaiqybg1pljvjja7r-lynis-2.6.9
/nix/store/l09kzxz8hx3yfazwaiqybg1pljvjja7r-lynis-2.6.9/bin/.lynis-wrapped: interpreter directive changed from "/bin/sh" to "/nix/store/fqm2x6kiay1q4vg7pqp4wp17bdijlyc3-bash-4.4-p23/bin/sh"
checking for references to /build in /nix/store/l09kzxz8hx3yfazwaiqybg1pljvjja7r-lynis-2.6.9...
/nix/store/l09kzxz8hx3yfazwaiqybg1pljvjja7r-lynis-2.6.9


UAT | Round 2 | Prayer and sworn statement validation issues

Typed some text in Memorandum of complaint, clicked continue. The field is still flagged despite the text country.

Uploading documents for both mandatory fields after this still doesn't enable Continue button

This issue is fixed and working as expected in UAT Env


Topic/dt 464 add copy to config dict

It seems the core issue is with config.py returning ConfigDicts instead of generic python dictionaries. I modified the library to return a standard dictionary when a matching config is found.

:shipit:


docs: fix email writesecret command

:tada: This PR is included in version 1.6.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Remove GOX dependency

What keywords did you search in Kraken issues before filing this one? (If you have found any duplicates, you should instead reply there.): GOX,

Is this a BUG REPORT or FEATURE REQUEST? (choose one): Feature Request: Enhancement
If this is a FEATURE REQUEST, please:

Describe in detail the feature/behavior/change you'd like to see.
We do not need gox any longer to perform cross platform compiling. Yes its true that gox can do so in parallel, but we do not compile so many os and arch types that this is a burdon

@mikeln sorry for the delay here is the ticket.

Out of curiosity, why removing gox?

Some reasons there
https://github.com/samsung-cnct/kraken/pull/191
mostly because we can do cross compilation as it stands right now, we dont need to do things in parallel another, and the fact that this is something we need to install as an additional dep for compiling.

Closing PR because of disagreement. Leaving ticket open as it should still be addressed.

Folks, I just became a committer on gox (write access/merge PRs/etc). If there is an issue with something in it please let me know as I'll be helping to maintain it now.

What should be addressed? It is not clear from the comments.

We no longer need gox, at least, not for what we are using it for as go has this ability now and really this is over kill. However, a few people expressed that the make file should be addressed with someone with more experience. @philoserf love the icon, feel free to take on the ticket if you wish.

Note, I did some performance testing. It appears gox is faster (it does parallel builds) than a shell script that iterates over a set to do them in serial.

@mattfarina its true that it is faster, i think i make note of that above, but i dont think there is much to gain here, or at least at time i looked at this, i didn't there was.

We are using the parallel build from goreleaser on a coming pull request and the parallel lint testing of gometalinter already.

I’ll benchmark god vs the build part of gorealeaser.


Can the data grid columns be resizable on a per column basis?

🙋 Feature Request
When using the data grid there is a property to set all columns to be resizable. It'd be great if we could also define this on a per column basis.
A use case example:

In this case it'd be good to remove the resize on the first column containing the check box.

No, this is not possible now and not planned.
It would need a lot of work and introduce a lot of complexity, edge cases, etc. to get that set up in a robust and reliable way.


Use struct when all type members are public

Description
This follows an existing precedent where any type that exclusively contains public functions and data is marked as a struct. At this point I think we've found all the types that are entirely public but please let me know if I missed any.
If one day we change our mind and want to add private data, we can do that without issue so this change doesn't preclude any future change we may want to make.
https://github.com/SFML/SFML/commit/73a5a7382df0a82fb74bc8ffcca60eac8d3416a5
https://github.com/SFML/SFML/pull/2590
https://github.com/SFML/SFML/pull/2889
https://github.com/SFML/SFML/pull/2898

I thought the policy was to use struct for pure data-structures, i.e. when they have no member functions or constructors.

I thought the policy was to use struct for pure data-structures, i.e. when they have no member functions or constructors.

I saw past precedent like sf::RenderStates being a struct with constructors so that's what motivated me. My rationale was as simple as "if everything is public use struct". Ultimately this is not a very important PR so if you're not a fan of this change then that's no problem with me. While we could theoretically sit down and construct a robust rationale for using class vs struct I'll admit that's not a great use of our time.

will this be documented? so users who used to forward declare them on MSVC for example won't get crazy linker errors

Yes, we'll be writing a migration guide.

I don't think this PR is important enough to spend time debating in time to land before v3 ships.


Stop Supporting Genocide. Stop Nimbus Project.

Stop Supporting Genocide. Stop Nimbus Project.
Stop Supporting Genocide. Stop Nimbus Project.
Stop Supporting Genocide. Stop Nimbus Project.
Stop Supporting Genocide. Stop Nimbus Project.

This is inappropriate use of GitHub, @sukmapradana .
This is strike 1 of 3, at which point you will be banned from this repo.

This is inappropriate use of GitHub, @sukmapradana . This is strike 1 of 3, at which point you will be banned from this repo.

Lol, who cares about this shippy repo, damb ship


using GPU

Hi,
Thank you for the package. I was wondering if the latest version automatically utilizes a gpu? If not, could you provide some advice on how to do so?

Please keep an eye on an upcoming JAX library for state space modeling!
https://github.com/probml/ssm-jax/


pull request for e2e test at 11/26/2016 05:26:07

:white_check_mark: Validation status: passed
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.


Add the iptables rules to install script

We should add the iptables rules inside the install script, to open the ports automatically.
or at least write a little tutorial in the README to do so.

Place it in the README.
The people using these scripts should be able to atleast use iptables.
I know i wouldn't appreciate a script touching my iptables atleast.

Yes probably is the way to go

I'm not a iptables guru... could these rules work?
iptables -I INPUT -p tcp --dport 27016 -j ACCEPT
iptables -I INPUT -p udp --dport 27016 -j ACCEPT
iptables -I INPUT -p tcp --dport 7778 -j ACCEPT
iptables -I INPUT -p udp --dport 7778 -j ACCEPT

Yes, it should work, here is mine:
iptables -A INPUT -p udp -d $IP --dport 7778 -j ACCEPT
iptables -A INPUT -p udp -d $IP --dport 27016 -j ACCEPT

@N0F3X just UDP? No need for TCP?

When I do netstat -plunt I see that it use only udp and it work fine for me.

I'm monitoring with sysdig to see if I see any TCP connection.. so far I see only UDP but I'm waiting a friend to connect so I see how it works when someone is online

yup, just udp connection

Found a problem with closed TCP ports, when they closed the server does not appear in the STEAM server list.

Ah


⚠ ClamAV has degraded performance

In 04e0487, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 57 ms

Resolved: ClamAV performance has improved in 8b645fc.


No resource identifier found for attribute 'compileSdkVersionCodename' in package 'android'

Information

Apktool Version (apktool -2.3.4) -
Operating System (Linux) -
APK From? (Other) -

Stacktrace/Logcat
$ apktool b /root/original
I: Using Apktool 2.3.4
I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
W: /root/original/AndroidManifest.xml:2: error: No resource identifier found for attribute 'compileSdkVersionCodename' in package 'android'
W:
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [/tmp/brut_util_Jar_12295376079311074178.tmp, p, --forced-package-id, 127, --min-sdk-version, 18, --target-sdk-version, 28, --version-code, 121, --version-name, 1.0.3, --no-version-vectors, -F, /tmp/APKTOOL2601075435284485134.tmp, -0, arsc, -0, resource, -0, arsc, -I, /root/.local/share/apktool/framework/1.apk, -S, /root/original/res, -M, /root/original/AndroidManifest.xml]
Include stacktrace here

Steps to Reproduce

apktool

Frameworks
If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files
(.apks that live in /system/framework or /system/priv-app)
APK
If this APK can be freely shared, please upload/attach a link to it.
Questions to ask before submission

Have you tried apktool d, apktool b without changing anything?
Yes I've tried apktool d and then when i tried apktool b then the above problem appears

If you are trying to install a modified apk, did you resign it?
I haven't resigned it because of the error when repackaging the apk.

Are you using the latest apktool version?
Yes, i am using apktool version 2.3.4.

apktool empty-framework-dir --force

Duplicate of - https://github.com/iBotPeaches/Apktool/issues/1842#issuecomment-407102329, which can be solved with latest release and new framework files as described above.
apktool empty-framework-dir

delete /Users/XXXX/Library/apktool/framework/1.apk
in KALI LINUX:
rm -rf /root/.local/share/apktool/framework/1.apk


Flux vs Helm or Flux and Helm

@qcaas-nhs-sjt , thank you for all the work going into this and the other repositories. It will be good for me and the others on the project team that will be working with k8s to learn from you and get a good understanding of how Flux compares with Helm and the advantages of Flux from a CICD perspective. I can see from the code that it will be a shallow learning curve and I am keen that the rest of us get onboard rapidly.
There are a few charts that I am working on (including the OHDSI charts and DataSHIELD with @OllyButters). We can start doing this your way rather than refactoring it at a later stage.

I will have a good read of https://fluxcd.io/flux/use-cases/helm/ but if there are other learning resources, please post them here.

My advice would be to use any existing helm charts where possible and apply these using flux. The combination of the two can be really powerful. That said it's not always possible to use pre-existing helm charts, so we'll have to put together our own charts from time to time. I've created a helm chart for the github runners and a flux repository to apply that. I know we could put these together but keeping them separate is better from an open source point of view as we can encourage other people to use and contribute to one library with minimal impact on the other.
As a result of this you'll note that the helm chart is kept generic so that it can be used in other projects rather than being specific to the SDE and the implementation for the SDE is in flux. I would recommend following this pattern where possible.

@vvcb do we need anything more on this ticket or am i good to close?

Closed stale ticket


Mounts and routes are not evaluated in insertion order, which means that a route cannot override something having the same prefix as a mounted app

Not sure about whether this is intended or not, and if it is starlette or responder's responsibility.
Let's say you're doing something in the line of:
api.add_route('/graph', responder.ext.GraphQLView(...))
api.mount('', api.whitenoise)

The goal for me is to say the following :

If it matches /graph, then go to graphqlhandler
Otherwise, it may be a static asset so serve it

This thing does not work at all because path are matched against apps prefix before the routes actually are looked into. If a prefix matches, then the app takes over, period.
It is maybe intended, but not intuitive nor I can figure out how to achieve my goal (for now, there may be something, of course).

Somethine like github.com/taoufik07/responder/tree/apps-routes-resolve ?

And don't use an empty route for now

I also faced the issue "route cannot override something having the same prefix".
With following code:
@api.route("/hello/{who}")
def hello_to(req, resp, *, who):
    resp.text = f"hello, {who}!"

@api.route("/hello/{who}/json")
def hello_to(req, resp, *, who):
    resp.media = {"message": [{"name": who}, {"name_again": who}]}

While requesting endpoint "/hello/guido/json", getting response:
hello, guido/json!
instead following response is expected:
- {name: guido}
- {name_again: guido}

A PR to fix this would be welcome!

on it

@guptarohit can you please check if #195 is working ?

now it's working as expected, thanks @taoufik07 :cake: :sparkles:


Confirm whether instructions should handle all results from a function call

Problem
See comment here
Happy Case
We can check back on this once intrinsics are implemented
Alternatives Considered
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response

acir_gen/mod does indeed handle all results of a function call.

The Vecs in question were removed as well


InputPhone: add E.164 converter

Add a converter to store phone numbers in E.164 format while keeping validation done in the renderer (if no converter is set).

Does this mean having the international prefix in the submitted value? That would make the component much more usable. Lemme know if you need help.

Ha, this has slipped my mind. This shouldn't be too hard. I think an attribute would be easier to find for users instead of having to know that there is a converter somewhere in the PFE JAR.

Let's add this to 14 as it's returning data in a different style.

OK i merged to master (14) and reverted the change to 13.x branch


DateTimeColumn values are always returned as local time, timezone/UTC gets lost

When storing a UTC DateTime object in a DateTimeColumn, it gets stored as Unix timestamp. When retrieving the value, it is returned as local time aka the isUtc in the created DateTime object is false.
That's because the SqlTypes._readDateTime() method calls DateTime.fromMillisecondsSinceEpoch() without the isUtc parameter.
This is bad, because when an app is dependent on Unix timestamps, this means a loss of information.
If a DateTime object is stored as UTC, it must be possible to retrieve it as UTC from the database to avoid information loss. This could be achived with a bool parameter/config, either in the select request or on the respective column(s).

I just found a very similar issue:
https://github.com/simolus3/drift/issues/286
However, my suggestion would not be to change the way, the data is stored. Rather I'd suggest to give the developers the possibility to define, whether a DateTimeColumn value should be retrieved as a local or UTC value.

Same here. A simple insert & select unit test fails because the returned date shifted by the timezone. With custom converter that uses fromMillisecondsSinceEpoch(isUtc: true) works like a charm.
I think this parameter should be used at:
https://github.com/simolus3/drift/blob/58f4504e9203b15a6a34a1306961d2c41234f243/drift/lib/src/runtime/types/mapping.dart#L174

Storing date times as unix timestamps is the default for backwards compatibility reasons, but for this reason (and others, like these getters potentially returning unexpected results), I recommend switching to the text-based format. Due to the way they're interpreted by sqlite3, drift also only stores unix timestamps with a second precision, the text format supports microseconds.

However, my suggestion would not be to change the way, the data is stored.

Do you see any advantage that timestamps have over the text-based format? I'm not strictly opposed to the parameter controlling whether date times are reported in UTC, but:

As @westito pointed out, this can be done with a type converter (you can actually write a TypeConverter<DateTime, DateTime> that just calls toUtc in both directions, that should work).
It's easy to enable this option and then forget about it. Then later if one is inserting some values with the local timezone, it can be surprising to see them coming out as UTC on the other end.

Given that a proper solution exists in the form of the text format, I'm not too convinced about (ultimately incorrect) patches to the timestamp format.

The minor advantage is the size of the information. A Unix timestamp is smaller than an ISO string.
For us though, it's about the migration. Right now, our database uses DateTimeColumn for DateTime columns. Migrating this to TextColumn is cumbersome, because it means migrating both the table definition and the existing data.
That's why I was rooting for a solution which keeps the status quo intact while giving an additional option to serve the described purpose.

@simolus3 Yeah, meanwhile I do some tests and I found it better to leave as is. Using .toUtc() in converter is not solves the problem, only reverses it. (.utc unit tests will work, but local date tests will fail). This information simply lost.
@enloc-port If you need complex date functions you should use text version. Timezones is more than just shifting hours. Think about leap seconds, leap years, daylight saving. If you need UTC you should simply call .toUtc() after retrieve from database.
There is a detailed description about date time and timezones in this article.  It is Java but you will understand the differences between timezones, zoned time and timestamp.
https://medium.com/elca-it/how-to-get-time-zones-right-with-java-8dea13aabe5c

For us though, it's about the migration. Right now, our database uses DateTimeColumn for DateTime columns. Migrating this to TextColumn is cumbersome, because it means migrating both the table definition and the existing data.

Sorry, I should have mentioned this right away. You can actually instruct drift to use text columns internally when using DateTimeColumns with a compile-time option. The docs also contain information on how to write a migration converting between the formats.
My intention was to make this as easy as possible, please let me know if you run into any problems with that approach.


How can i add custom symbol in alphabet.hx

Describe your problem here.
I'm trying to make support my language and i tried make Cyrillic symbols in Alphabet.hx but it doesn't works (I've been coding alphabet.xml and .png file i have but even that didn't work)

after compilation i see this
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

nothinggggg....


JTD timestamp validation option - string/date/either

What version of Ajv you are you using?
8.0.5
What problem do you want to solve?
The JTD timestamp type currently accepts both Date objects and properly-formatted strings. I'd like to be able to restrict this to just Dates.
What do you think is the correct solution to problem?
Perhaps a new option?
Something like
type JtdTimestampOption = "dateObject" | "isoString" | "both";

// then add to JTDOptions e.g.:
timestampAccepts?: JtdTimestampOption

With a default of "both".
Will you be able to implement it?
I think so.

Related: https://github.com/ajv-validator/ajv-keywords/issues/166

let's make a bit shorter/simpler:
timestamp?: "date" | "string" // with missing/undefined property to allow both

it should be defined in core.ts, and then all subclasses other than jtd.ts could override it as never


refactor: upgrade project, update db schema

:tada: This PR is included in version 0.53.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Extending Native HTML element in Polymer fails in Dartium Dev 1.13

This simple example will fail:

Fail how? Some error message?

The problem is how wrap_jso constructs a custom element before the Dart class is known.

If a custom element is extending HTMLElement, before registerElement is called, wrap_jso properly creates a Dart HtmlElement waiting to upgrade this instance to the user's Dart class later (post registerElement call).

Problem #1.  If the custom element is extending a Native element e.g., HTMLInputElement  as in this example.  Then the Dart native element class is not created (InputElement).  Solution is to look walk the proto chain looking for the JS HTML element when found then create the Dart class associated with this JS element - waiting for normal upgrade to user's Dart class to happen.
Problem #2.  Also noticed that auto-binding handling for HTMLTemplateElement works in current Polymer but will fail in Polymer 1.0 (name is dom-binding) again similar problem as above.  Walking the proto chain finding HTMLTemplateElement and creating the Dart class TemplateElement will solve this future problem as well.
Without the fix a null can be returned from wrap_jso.

@terrylucas, got an update on this one? This is our last scheduled week of 1.13.

The fix is in 1.13 dev 7.6
commit e84f9941e1cf210646aef72e01eefaa993a7b798
Author: Terry Lucas<EMAIL_ADDRESS>Date:   Thu Oct 29 17:05:59 2015 -0700
Fixed Native custom element
BUG=24754
<EMAIL_ADDRESS>Review URL: https://codereview.chromium.org/1422323006 .
On Tue, Nov 3, 2015 at 4:25 AM, Michael Thomsen<EMAIL_ADDRESS>wrote:

@terrylucas https://github.com/terrylucas, got an update on this one?
This is our last scheduled week of 1.13.
—
Reply to this email directly or view it on GitHub
https://github.com/dart-lang/sdk/issues/24754#issuecomment-153337272.

great, thanks!


Add deprecation notice

We're using Detekt now.

We could archive this repo, but also a link to the Detekt Gradle Plugin might be helpful for someone who stumbles into this repo 😅

Yeah, I also thought about linking to Detekt, but I omitted it. I think Detekt is quite a household name at this point anyway?


Complete-CsCceApplianceRegistration not documented

empty help article

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 458d6654-afed-acdc-3213-d957bf531a7a
Version Independent ID: 5935e46d-2f6e-445b-319e-cf0bf6cd347c
Content: Complete-CsCceApplianceRegistration (skype)
Content Source: skype/skype-ps/skype/Complete-CsCceApplianceRegistration.md
Service: skypeforbusiness-powershell
GitHub Login: @tomkau
Microsoft Alias: tomkau

@officedocsbot assign @yogkumgit

cmdlet appears to be removed from the module @tomkau Tom, can you confirm?

I reached out to the team that owns this cmdlet

@officedocsbot assign @pupara

I reached out to the team that owns this cmdlet

Tom, how are you? Reaching out to you again to understand if you could confirm we can remove the article from Docs as the cmdlet is not present anymore in the last Teams/SfB module. Thanks

@tomkau Tom, can you remove the cmdlet from documentation? it is not in the module anymore it seems. thanks


add @required when there's an assert not null

Fixes #9118

  ... with unrestricted foundation.dart imports.
Thanks!

I'm impressed this didn't catch any errors!


Sprint board proposals for sprint 3/26 - 4/6

Please comment on this issue with proposals for our next two week sprint on:
Your capacity for this sprint, which begins Monday, 3/26 and goes through Friday, 4/6.
Your proposals for what work items (links to issue numbers) you'd like to work on for this sprint.
Please have your comments in by the end of your day today so we can review in our sprint review meeting. Our sprint review/planning meeting is at 8am PDT/4pm CET on Monday, 3/26.

I am at full capacity this sprint.
I've gotten together the spec for the contribution workflow and will likely be spending time working with whomever is going to implement that this coming sprint.


CLI: Configure picocli to enable AOT compiling

Picocli apparently uses reflection, meaning it prevents PGPainless-CLI from being AOT compiled.
This can apparently be changed.
See https://picocli.info/picocli-on-graalvm.html

This is not as easy as one might think.
While picocli provides tooling to generate graal config files, Bouncycastle apparently instantiates most of its algorithm providers using reflections. That means that while its easy to get the picocli part fixed, PGPainless-CLI will fail to execute any cryptographic operations due to NoSuchAlgorithmExceptions.
This requires some more research...

I did some more tinkering and got the gradle script to build a working native image.
$ gradle nativeImage
$ pgpainless-cli/build/native-image/pgpainless-cli

However, I did not observe the anticipated performance improvement :/
$ time pgpainless-cli/build/native-image/pgpainless-cli generate-key "Alice"
[...]
pgpainless-cli/build/native-image/pgpainless-cli generate-key "Alice"  2,08s user 0,14s system 236% cpu 0,940 total
$ time java -jar pgpainless-cli/build/libs/pgpainless-cli-1.4.0-rc3-SNAPSHOT-all.jar generate-key "Alice"
[...]
java -jar pgpainless-cli/build/libs/pgpainless-cli-1.4.0-rc3-SNAPSHOT-all.jar  1,67s user 0,10s system 243% cpu 0,725 total


Fix notifications spam (issue #2713)

Hi,
As described in issue #2713 created by another user, we receive repeated slack notifications.
When a system notification is created, DefectDojo try to send it to all administrators via slack. But if a user is not found in slack and a main slack channel is defined, the notification is redirected to this channel.
So I suggest that you send notifications to admins only if a dedicated channel is not defined.
That's all.
Thanks by advance

This PR has broken any non slack-notifications if slack is configured. Admins are no longer receiving any UI alert for example.


Add logs in CompositeClusterManager to debug writable partition mismatch

Add more logs in CompositeClusterManager to debug the mismatch on
writable partitions. Also it records which replica is down for certain
partition.

Codecov Report

Merging #1172 into master will decrease coverage by 0.03%.
The diff coverage is 63.15%.

@@             Coverage Diff              @@
##             master    #1172      +/-   ##
============================================
- Coverage        70%   69.97%   -0.04%
+ Complexity     5369     5363       -6
============================================
  Files           427      427
  Lines         32770    32785      +15
  Branches       4133     4133
============================================
- Hits          22942    22941       -1
- Misses         8695     8705      +10
- Partials       1133     1139       +6

Impacted Files
Coverage Δ
Complexity Δ

...a/com.github.ambry.clustermap/ClusterMapUtils.java
92.56% <100%> (+0.25%)
35 <1> (+1)
:arrow_up:

...java/com.github.ambry/config/ClusterMapConfig.java
100% <100%> (ø)
1 <0> (ø)
:arrow_down:

...thub.ambry.clustermap/CompositeClusterManager.java
64.44% <50%> (-1.69%)
20 <1> (ø)

.../main/java/com.github.ambry.store/ScanResults.java
81.25% <0%> (-3.13%)
16% <0%> (-2%)

...in/java/com.github.ambry.store/BlobStoreStats.java
71.54% <0%> (-1.04%)
103% <0%> (-1%)

...src/main/java/com.github.ambry.commons/BlobId.java
93.18% <0%> (-0.36%)
71% <0%> (-1%)

...java/com.github.ambry.network/SSLTransmission.java
69.42% <0%> (-0.32%)
68% <0%> (-1%)

...va/com.github.ambry.rest/NettyResponseChannel.java
91.84% <0%> (-0.22%)
117% <0%> (-1%)

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 82cbfbe...ffb1522. Read the comment docs.


Implement support for S3 based storage providers

See https://github.com/igorski/bitmappery/issues/25

Implement AWS SDK to connect to S3 storage (should also work for S3 compatible alternatives)
Allow configuration of third party service providers using .env files
Allow lazy third party service authentication directly from save modal window

Hi there,
I tried to look as hard as I could before my answer.
I created a docker-compose to be able to launch a minio as simply as possible.
Pre-requesites :

git
unix/linux system arround you can use for bash
docker & docker-compose installed and usable on your machine

All you have to do is to git clone the bitmappery project, go to the aws branch, create a new docker image. (the steps are written already in the readme.md of the project)
Once the docker image is tagged with "bitmappery-aws" (or you can edit in the docker compose)
you create a file "docker-compose.yml" and you drag the rest in:
#Written by Ange-Cesari
version: "3"
services:

  bitmappery:
    image: bitmappery-aws
    ports:
      - "5173:5173"
    env_file: ./env.local
    networks:
      - stack

  minio:
    image: docker.io/minio/minio
    ports:
      - "9000:9000"
      - "9001:9001"
    entrypoint: sh
    command: -c 'minio server --console-address ":9001" /data/minio'
    deploy:
      restart_policy:
        condition: on-failure
    volumes:
      - storage-data:/data
    environment:
      MINIO_ROOT_USER: 'minio'
      MINIO_ROOT_PASSWORD: 'miniostorage'
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3
    networks:
      - stack

volumes:
  storage-data:

networks:
  stack:

Just make a docker-compose up, the dependencies will be pulled and then there will be a minio on ports 9000 and 9001, and the bitmappery on port 5173. Be aware that the port 5173 is unused on the machine, otherwise the port 5174 will have to be exposed instead, in the dockerfile and in the docker-compose.yml.
Normally the bitmappery page is accessible via localhost:5173 (as with a classic docker run) but now minio is accessible via localhost:9001.  Be careful to go to the end of the creation step to recover the access key and the secret key.
Once everything is validated, we go back to the terminal where we launched the docker compose and we do a:
docker-compose down
once everything is down,
copy the .env file to env.local and fill in the environment variables
Once finished, we up with a docker compose up.
For minio, all the steps are absolutely identical to what I did with outline. Check for detailed step by step guide<EMAIL_ADDRESS>You can now try to go to localhost:5173
FYI, the env.local looks like that to me :
VITE_S3_ACCESS_KEY=accesskey
VITE_S3_SECRET_KEY=secret access key
VITE_S3_BUCKET_NAME=bitmappery-bucket
VITE_S3_REGION=local
VITE_S3_BUCKET_URL=http://localhost:9000/bitmappery-bucket

you'll notice that whenever you are doing a request to the S3 bucket, you'll have a subdomain This is due to the fact that it's how a S3 bucket on AWS works. On a local host, it can be a source of problem. you could try change your /etc/hosts and add bitmappery-bucket.localhost as just localhost but I don't think it's viable and this direction shouldn't be taken.
Normally, there should be an error on creating and recovering file from the bucket. I noticed there was an extra "/" in the URL after the bucket name. This may possibly explain the error but I think there is something else, open the browser debugger to see the queries.
In addition, to be sure that this is not a problem of minio, I recovered and modified a script to avoid having to install the client minio (command line).
Just create a file on a unix (you can use linux subsystem on windows if you want) , fill in the necessary information, make it executable. Normally we should be able to send a file to the bucket. :
#!/bin/bash

# usage: ./minio-upload my-bucket my-file.zip

bucket=$1
file=$2

host=localhost:9000
s3_key='your access key'
s3_secret='your secret key'

resource="/${bucket}/${file}"
content_type="application/octet-stream"
date=`date -R`
_signature="PUT\n\n${content_type}\n${date}\n${resource}"
signature=`echo -en ${_signature} | openssl sha1 -hmac ${s3_secret} -binary | base64`

curl -v -X PUT -T "${file}" \
          -H "Host: $host" \
          -H "Date: ${date}" \
          -H "Content-Type: ${content_type}" \
          -H "Authorization: AWS ${s3_key}:${signature}" \
          http://$host${resource} -k

just create a random file, chmod +x the script and ./script.sh bitmappery-bucket myfile
You should have a similar answer :
*   Trying <IP_ADDRESS>:9000...
* Connected to localhost (<IP_ADDRESS>) port 9000 (#0)
> PUT /bitmappery-bucket/test.txt HTTP/1.1
> Host: localhost:9000
> User-Agent: curl/7.81.0
> Accept: */*
> Date: Sun, 23 Apr 2023 17:45:30 +0200
> Content-Type: application/octet-stream
(your keys) behind
> Authorization: AWS :
> Content-Length: 17
> Expect: 100-continue
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Content-Length: 0
< Content-Security-Policy: block-all-mixed-content
< ETag: "42992704d61965ec286zgegd63550ce8a0fe"
< Server: MinIO
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< Vary: Origin
< Vary: Accept-Encoding
< X-Amz-Id-2: e3b0c44298fc1c149afbf4cfze8996fb92427ae41e4649b934ca495991b7852b855
< X-Amz-Request-Id: 17589ADBF819D598
< X-Content-Type-Options: nosniff
< X-Xss-Protection: 1; mode=block
< Date: Sun, 23 Apr 2023 15:45:30 GMT
<

If you have any clue, please don't hesitate to share them, i'll try them out.

Hi @Ange-Cesari thanks for the testing and the Docker compose files.
I am currently away from any configuration powerful enough to host Docker for another week, but I did find a helpful example that uses the AWS SDK to connect to MinIO. I noticed that the client registration step was different to the pure-AWS one.
I have updated the service connector to follow the same mechanism. Perhaps this work for your you too ?

Hey @igorski,
Thank you for the update. Unfortunately, it didn't fix the problem but the error changed.
Today, the error seemed to be the region that wasn't initialized, even though it was correctly entered and parsed from the env.local file.
Just so you know what I did
I pulled the changes from your commit, I created a new docker image with the exact same name as the one before, I forced the no cache to build a fully new image so there is no issue with any layer built.
I followed the exact same step. Just so you know, doing a docker-compose down do not erase any information when they are stored, which is the case for minio. It's stored inside the container. I do have the exact same configuration as I did before doing my git pull to retrieve the changes.
As I previously did the check-ups about the minio server (with my script that could send files) I can be sure that everything is still fine as it was for the last test.
The test I performed :

I tried to create within the UI a folder in my bucket S3
I tried to load (import) files from my bucket S3
I tried to save files within existing folder I have access to inside the minio, to be sure there is no creation conflict.

Everytime, I get the error "Region is missing" even if it's correctly parsed from the env.local.
As it's not an AWS S3, region is not "us-east" etc.
The region is usually defined by local when using minio but I have no idea what your framework is using as "local" region. It may vary, but for outline wiki, it was "local" as region.
Here are the 2 screens I could get :

If you want to fix the code, I'll be glad to try and give you feedbacks.
Hope this helps,
Ange

Hi @Ange-Cesari ,
Excuse the delay as other things got in the way.
You are right, the region is necessary, defining it as "local" did the trick.
Can you verify whether pulling the latest changes also works for you?

Hi @igorski
I pulled your changes
When running without docker compose, directly from the code with
Building with :
yarn run build

Starting with :
yarn run dev

or
yarn run dev --host

In both cases, the "import from s3" button doesn't even show up, and nowhere in the menu there is something related to S3. the env.local is common to both the docker compose AND the files because the docker compose is executed where the files are built with yarn in local, it doesn't have anything to do with contenerization. What is strange, is in the browser console there is absolutely no error or warning.
In docker compose now :
I rebuilt the docker image (still bitmappery-aws), nothing in my docker compose changed.
I Started the docker compose with the new built image.
runnin localhost:5173 as always, the page shows up and I have the possibility to import from s3 with the orange button.
I click (still watching the browser console)
Some errors but I thinkg the problem is that the key is mixed ip with the bucket name, because in the error format I got that there is no such key with the key being bitmappery-bucket
which is the name of my bucket in minio.
The "bucket-name" is still appearing as "bitmappery-bucket" so the resource became :
<Error>
NoSuchKey
<Message>The specified key does not exist.</Message>
<Key>bitmappery-bucket/</Key>
<BucketName>bitmappery-bucket</BucketName>
<Resource>/bitmappery-bucket/bitmappery-bucket/</Resource>
<RequestId>17633F390DE73161</RequestId>
<HostId>REDACTED</HostId>
</Error>

I don't know how to help you farther than that with this because there is no really "hints". My minio is working fine, the docker compose is correct. What is more disturbing is the fact that it doesn't work without docker for the S3, using the same env.local, using the same code.
I exec in the container and verified the VITE_S3 variables and yes, everything is in the container.
Here is the error :

Hope it helps you.

Hi @Ange-Cesari

In both cases, the "import from s3" button doesn't even show up, and nowhere in the menu there is something related to S3. the env.local is common to...

Strange, but are you sure env.local isn't a typo ? It must be .env.local (note the first dot), I believe I made a typo somewhere in the first commits of this pull request as I stumbled upon the same problem while debugging a while back.
I have updated the pull request, I managed to have success using a local MinIO instance and both AWS S3 providers (despite this type of storage being a standard, there is definitely a difference in the way paths are handled). Could you verify whether you will have success using the latest changes ?

Hi @igorski
Solved the problem of connecting to the bucket.
I think there was both code that was different from the classic AWS but also a typo problem with the .env.local
However, at the interface level there is a display problem. The thumbnails do not load, and the path inside the bucket does not load, so that we cannot see all the files inside the S3 bucket (while the keys give full access to the bucket). We stay stuck at the root of the bucket

Maybe if it's not already done you should consider add some folder icon etc.
Moreover there is no output or error of any kind in the dev tools so I can't help you further with this matter but if you want me to test more feature regarding minio (for example a fix of the UI) please feel free I still do have the project running.
it's a good patch work you did there, well done!
Best,
Ange

Hi @Ange-Cesari
Thanks for testing and the feedback. I noticed discrepancies between the way AWS and MinIO handle the paths, the solution is a bit hackish, but basically internally I align the path formatting, I verified this to work for both AWS and MinIO buckets.
As for the lack of thumbnails, yes that was interesting as that was deliberate but I omitted to communicate this 😅
The reason is that on S3 you don't get preview thumbnails "for free". But I gave it some thought, you can add the line:
VITE_S3_GENERATE_THUMBNAILS=true

to your .env.local and thumbnails will now be generated on the fly. The behaviour is that BitMappery will check if a thumbnail file exists for an image. If not, it will download the image in full, generate the thumbnail and save it in S3. The next time, the operation will be a lot cheaper as the thumbnail will be served. For a local/on premise hosted MinIO solution this shouldn't be an issue from a billing perspective and only first viewing of folders will be slower (showing loaders while the thumbnails are generated).

Hey @igorski

Thanks for testing and the feedback. I noticed discrepancies between the way AWS and MinIO handle the paths, the solution is a bit hackish, but basically internally I align the path formatting, I verified this to work for both AWS and MinIO buckets.

Youi're welcome.

As for the lack of thumbnails, yes that was interesting as that was deliberate but I omitted to communicate this 😅
The reason is that on S3 you don't get preview thumbnails "for free". But I gave it some thought, you can add the line:

VITE_S3_GENERATE_THUMBNAILS=true
to your .env.local and thumbnails will now be generated on the fly. The behaviour is that BitMappery will check if a thumbnail file exists for an image. If not, it will download the image in full, generate the thumbnail and save it in S3*. The next time, the operation will be a lot cheaper as the thumbnail will be served. For a local/on premise hosted MinIO solution this shouldn't be an issue from a billing perspective and only first viewing of folders will be slower (showing loaders while the thumbnails are generated).
*when deleting a file from the BitMappery UI, the associated thumbnail will also be deleted
Unfortunately it didn't change anything,

I don't have anything in the console and nothing wrong either in the network apart some 304 errors.

(I rebuilt a docker image to take your changes, so no problem about that, + i added your line in my .env.local)
And I tried to send in minio some files and it works, from my shell script and from your UI, and I can retrieve them without any problem. Also, your app works just fine as the other day, which means that nothing else is broken but the thumbnail feature isn't working properly somewhere but does not generate any error.
If you have any idea don't hesitate,
Best,
Ange

Well, I am stumped 🙈
I use the same Docker image for MinIO as you supplied in your examples, so I think we can rule out versioning issues... also with S3 SDK...
It looks like in your screenshots, the keys are not recognized as either files or folders (the folder icon would've worked along, even prior to my last changes). Question is why...
If you create a BitMappery document and save it in a newly created folder in your storage root (for instance with name 'foo' to be stored in folder /new, which you can both specify in the save modal window), is the directory recognized correctly (e.g. shows icon) and does upon navigation, the file appear showing just foo.bpy* as its name ?
*(note there's currently no preview for .bpy documents, which will be  a future improvement in general).

Well as you can see here :

It doesn't change anything. I don't think it comes from the container because i copied everything from your project. So as the entire folder is replicated, unless you did an absolute path somewhere I don't think it is container related.
Also, nothing related here but I happen to have click everywhere on an image i imported from s3 bucket and it appears that I might have do something with the layers, and when I opened the console to debug the icon, it just ran into that :

IMO it's not really important I just wanted to let you know it exists. However, on the icons parts, maybe doing some debug might lead to something new but I have no idea what to debug because nothing is in the console. Maybe you can try adding a lot of debug related to the keys, only for this branch, so I can try to test everything with the minio and see if the keys are loaded correctly or not..
if you have better suggestion, reach me out.
Best,
Ange

Hi @Ange-Cesari,
Maybe a good way to debug is if I could see what the format is of the returned data.
If you open the network panel, filter by XHR and click the "Import from S3"-button, the first GET request should show a list of files in your storage root.
You can obfuscate the folder and file names, but I would like to see all trailing and leading slashes.
Basically the problem comes from separating the file key into a folder and file name structure, so it looks like for some reason you are getting a list that is structured differently.
For instance, a snapshot like below would suffice (it lists file keys that are inside a "sub directory"):

Hey @igorski
I don't wanted to hide anything for the debug so I deleted the previous personal files and I put new one without personal information. As the instance of minio is local and not exposed on Internet, I can show everything.
Here is a screen of what I got :

<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Name>bitmappery-bucket</Name>
    <Prefix></Prefix>
    <KeyCount>6</KeyCount>
    <MaxKeys>500</MaxKeys>
    <Delimiter></Delimiter>
    <IsTruncated>false</IsTruncated>
    <Contents>
        <Key>Koala_in_weightless_position_wearing_a_blue_overall_si_c7d8acd6-e35c-4559-b8b8-d066a46fedf0.bpy</Key>
        <LastModified>2023-07-02T07:33:53.285Z</LastModified>
        <ETag>"a343a825346f55ea0aaa46400f61726c-1"</ETag>
        <Size>1832856</Size>
        <Owner>
            <ID>02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4</ID>
            <DisplayName>minio</DisplayName>
        </Owner>
        <StorageClass>STANDARD</StorageClass>
    </Contents>
    <Contents>
        <Key>foo/Koala_in_weightless_position_wearing_a_blue_overall_si_c7d8acd6-e35c-4559-b8b8-d066a46fedf0-removebg-preview.bpy</Key>
        <LastModified>2023-07-02T07:34:43.775Z</LastModified>
        <ETag>"b5ab72a6040546a0063eba4bf1d1252f-1"</ETag>
        <Size>438932</Size>
        <Owner>
            <ID>02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4</ID>
            <DisplayName>minio</DisplayName>
        </Owner>
        <StorageClass>STANDARD</StorageClass>
    </Contents>
    <Contents>
        <Key>foo/Koala_in_weightless_position_wearing_a_blue_overall_si_c7d8acd6-e35c-4559-b8b8-d066a46fedf0.bpy</Key>
        <LastModified>2023-07-02T07:34:04.885Z</LastModified>
        <ETag>"a343a825346f55ea0aaa46400f61726c-1"</ETag>
        <Size>1832856</Size>
        <Owner>
            <ID>02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4</ID>
            <DisplayName>minio</DisplayName>
        </Owner>
        <StorageClass>STANDARD</StorageClass>
    </Contents>
    <Contents>
        <Key>foo/abstract_logo_of_a_koalas_head_black_and_whit_with_enc_1d6aaa36-633b-43bf-ae75-13b8390fd954.bpy</Key>
        <LastModified>2023-07-02T07:34:33.495Z</LastModified>
        <ETag>"121a02f75bad6046f2de87df35ac76d2-1"</ETag>
        <Size>2067756</Size>
        <Owner>
            <ID>02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4</ID>
            <DisplayName>minio</DisplayName>
        </Owner>
        <StorageClass>STANDARD</StorageClass>
    </Contents>
    <Contents>
        <Key>test.txt</Key>
        <LastModified>2023-04-23T16:26:11.312Z</LastModified>
        <ETag>"42992704d61965ec286d63550ce8a0fe"</ETag>
        <Size>17</Size>
        <Owner>
            <ID>02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4</ID>
            <DisplayName>minio</DisplayName>
        </Owner>
        <StorageClass>STANDARD</StorageClass>
    </Contents>
    <Contents>
        <Key>test/</Key>
        <LastModified>2023-06-21T20:30:41.449Z</LastModified>
        <ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag>
        <Size>0</Size>
        <Owner>
            <ID>02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4</ID>
            <DisplayName>minio</DisplayName>
        </Owner>
        <StorageClass>STANDARD</StorageClass>
    </Contents>
</ListBucketResult>

Tell me if you need anything else, like putting some images in some folder or something.
Best,
Ange

Hi @Ange-Cesari ,
Thanks for the example output. Strange that the path styles are different than to my MinIO instance... Anyways, I have adjusted the code to not rely on upfront determination of what path styles to use, but to interpret it at runtime (it also cleaned up the code nicely).
I have verified it to work for AWS S3, my local MinIO and for your use case I have used unit tests to verify whether the files are interpreted correctly.
Could you give it another spin after pulling the latest changes ? 👼

Hey @igorski ,
You did a great job for the integration of the clickable paths.
The folder icon also works, unfortunately the preview still doesn't work.

Well, getting close I guess 😬
Just to confirm VITE_S3_GENERATE_THUMBNAILS=true is defined in your .env.local-file right ?
And if you click on any of the image files, they open ?

For both of your question the answer is yes
Do you have any idea of what I could give a try ?
I can do that when I come home

Hi @Ange-Cesari
That is most helpful! If you could apply attached .patch file to the latest state of your local repository you should get console logs (info level) for all thumbnail related actions, hopefully this will give us a lead. Given that browsing and opening of files works fine, we should be close 🤞
logging-patch.patch

Hi @Ange-Cesari
That is most helpful! If you could apply attached .patch file to the latest state of your local repository you should get console logs (info level) for all thumbnail related actions, hopefully this will give us a lead. Given that browsing and opening of files works fine, we should be close 🤞
logging-patch.patch

Hey, could you please give the exact guidelines on how to apply the patch (renaming, placing in the exact folder, starting a command...)
So I am sure i'm following your demands

Hi @Ange-Cesari
Sure, download attached file (it's plain text) and using CLI navigate to the root folder where you have checked out the BitMappery repository (using the 'aws' branch as before), basically run:
```git apply /path/to/logging-patch.patch`
And you're done. If you run git diff you can see that the changes (log entries in aws-s3-service.ts) have been applied, but not committed.
After this step you can launch your BitMappery and MinIO containers as normal.

I respected your guidelines and here is a part of the git diff, to show you that it works :

No matter the changes, no difference unfortunately.
If you have something else to make me try don't hesitate

Hi @Ange-Cesari
Do you also have screenshots of the DevTools panel with the console tab selected ? I expect to INFO level messages logged there, allowing us to backtrack the issue.

A really strange behaviour actually.
When I open a folder from s3 bucket (by default maybe the last one ?) here it's foo. I then got the error.
Once it's loaded, no problem I can edit the image.

At the second I try to import the image from bucket S3, if and only if there is images in the folder, then I get the console error.
I can charge every image, without problem, and the only time it triggers the error is when I import from bucket s3, by selecting a folder where there are images.
And because it's forbidden request, there is no images in the folder, so I need to go back, reselect foo to have access :
Here is how it looks :

Yeah so (once more) I'm a little stumped. 😬
I couldn't reproduce this until I started using a Windows 10 device to run the containers, where indeed every other request I got the RequestTimeTooSkewed error.
So long story short :

S3 uses NTP to keep its system clocks accurate. NTP stands for Network Time Protocol, which provides a standard way of synchronizing computer clocks on servers. NTP can be installed and used to keep the server time accurate, synchronized with accurate atomic clocks located around the world.

BUT there is also the concept of clock drift in Docker containers. I couldn't quite find the details, but apparently suspension state of the host can affect the time in the containers.  I don't see how a drift of 15 mins can happen like that. On my Windows test env, if I got the error, the next request would actually work.
As such, I'm not really sure what is happening here as it seems that this is outside the scope of the BitMappery webapp. I'm not that well versed with setting up Docker containers, maybe this rings a bell to you and you know of a sync setting that can be configured ?

Hey @igorski
As you mentionned, the next request should work as expected which is not the case.
Moreover, by building the image you should have run into a new problem which is the version of node used, because you updated something in your code that requires a newer version of the image. I had to go from the 16 to the 18 version, to be able to catch up with your dependencies but that shouldn't be the problem.
Moreover, on macos and windows, the emulation is done with a VM (that's why there is docker desktop only for those one)
I don't think the ntp would cause that, because you should be able to log everything even inside the container and see that there is no desynchronisation. (+ i'm running the app on Windows 11)
I'll try to go deeper into that and see to debug but imo it's the code that it not well interpreted somewhere, like a path, a call back...
I'll try to look at the code and look at the docker issue you mentionned.
If you have any idea in the mean time don't hesitate

I had to go from the 16 to the 18 version, to be able to catch up with your dependencies but that shouldn't be the problem

This could be possible, maybe AWS SDK has stricter requirements. I hadn't noticed as I only run MinIO in the container as it's easier to develop and debug BitMappery's code in my usual dev setup.
Either way, it's puzzling as the end of the day that containerized or not, the clock should be from the same system you're running anything else on.
I will double check the AWS SDK, but request time headers should be set automatically by the SDK, so no idea what's up with that. :/

Hi @Ange-Cesari
I could afford some time to look into this again. I managed to replicate the "drift issue" by just having the containers running for a while and then start accessing the S3 storage. I could replicate this with a Win 10 device using MinIO (though BitMappery would not be containerized just for ease of debugging, but apparently the drift also occurs with the host).
Granted, I don't quite understand what the underlying issue with the drift is and most online topics on it are vague or simply state that using ntp should resolve it, but I'm not a Docker hero.
Anyways, I managed to replicate with a local MinIO and could forcefully replicate this with AWS S3 (by simply adjusting my client clock). I've implemented a wrapped execution mechanism that detects the RequestTimeTooSkewed issue, and retries the operation (according to S3 spec, the request header time will be honoured). Both MinIO and S3 happily accept the subsequent request.
I'm going to merge this branch into master as during development a ton of improvements with configuration were made, which I'd like to have available to the master branch for further parallel developments.
We can continue discussion (if the issue persists for you) in https://github.com/igorski/bitmappery/issues/25


Apply as you type

Presume there is a good reason why it wasn't done already.. but is it possible to apply formatting change as you type rather than only on losing focus?

I have the same question


Add kube-rbac-proxy to the update_deps script

Plus fix some issues with spaces and minor makefile enhancements.

/test all


Android Server Launcher as a self-started service on OSVR

Hello,
I've read in the forums and in some comments that there is a discussion to make the android server launcher a self started service that is part of an OSVR android application to avoid users having to configure and install the server separately -which I see as a major stopper for most users.
I have also seen the JointClientKit API that sort of would circumvent the need of having a separate server but reading the fine print this may not be the desired path for developers -more lag, inability to use async libraries etc.
Is the 'service route' being explored? If so, any idea when this will become available? To be honest, as a developer I see the need for starting a separate server a major issue with end users, particularly in android, where people won't be patient enough to install anything on top of their app.
In the meantime, is there any workaround to having the server running? Would you recommend using the JointClientKit API?

BTW I am mostly interested on having this as part of the OSVR Unity plugin, but if the android launcher becomes part of the main OSVR android build then I could rewire it myself I suppose.

The JointClientKit API is currently designed as a kind of a developer test framework - it wasn't initially designed as something you'd make use of in production. Instead, production apps should use the auto-start API, which is more of a black box - the implementation details are hidden to an extent. The idea is that the auto-start API shields client developers from knowing whether the server is running in-process or in a system service, and what kind of VRPN transport is being used (TCP/IP, UDP, in-memory stream, etc...). Whereas the JointClientKit gives you more control over the in-process server and the VRPN connection - more than you'd need typically. But, in its current form, it's currently not thread safe. The client context and the server have to be in the same thread (the VRPN connection is an in-memory connection but it's not a thread-safe stream implementation currently), which is a non-starter for production apps - that's the source of the lag you mentioned.
You can still run the server in a separate thread however. Currently the OSVR-Core implementation on Android starts the server in a separate thread in-process on Android when you use the auto-start API. Theoretically there should not be any measurable lag difference between a server thread in the same process as the client, and a separate server process.
However, there is an on-going discussion on how OSVR auto-start should work on Android here:
https://github.com/OSVR/OSVR-Core/issues/433
It's a long thread, but if you feel as I do that the separate app requirement is too onerous for most phone apps on the Play store, please add your feedback there. Your voice counts! :)

@JeroMiya: Thanks!
I am still getting my head around OSVR so apologies if some of the questions are dumb:

I understand I should probably stay away from JointClientKit API. You mentioned the auto-start API, but I am confused as to what are you referring to here. Do you mean the server can get auto-started when the client app is run? Or is this an auto client-server connection thing that relies on a server being up and running already?

I believe I got confused when you were talking about the JoinClientKit and then moved on to the official as-is behaviour. Following the documentation I currently can run a Unity android demo by installing, configuring and running a separate app that is the OSVR server. This is the core of my request, whether we can avoid doing so -as a developer I don't mind, but if users are forced to do anything remotely similar, we can say goodbye to them. Then you mention that OSVR Core in android starts the server in a separate thread -is this the separate OSVR server I configured and installed?.

From the post you linked I can see there are discussions on how to solve that problem -although I haven't spent enough time to understand fully what the two alternatives are! However I will add my two cents to it :)

Thanks again!

The server auto-start API is part of the ClientKit here:
https://github.com/OSVR/OSVR-Core/blob/master/inc/osvr/ClientKit/ServerAutoStartC.h
It's a black box, and it's opt-in. You call osvrClientAttemptServerAutoStart() once at the beginning of your application, prior to creating any OSVR_ClientContext (or the C++ equivalent), then call osvrClientReleaseAutoStartedServer() when your app exits. I am thinking of adding a pause and resume API for better lifecycle management, but this is how it works now. There is no indication of failure on the auto-start API itself - failure can be determined by trying to create a client context and failing (check status API never returns success), or creating an interface and not getting a report.
On the PC, the auto-start API looks for the OSVR_SERVER_ROOT environment variable, and if it exists, attempts to launch osvr_server' or osvr_server.exe` process (depending on your platform). On Android, the auto-start API launches an in-process server in a separate thread. This differs from the JointClientKit api in that it starts a real server instance, just in a thread of the same process instead of in a separate process. It also handles plugins differently - plugins are bundled with your app and loaded from the global symbol table. That way you don't need to copy them into your app's data directory or the SD card and manually load them from there.


[Bug] Documentation install missing add the csrf_token templatetag

CSRF token is missing. Do you need to add {% csrf_token %}?

Do you think I should I add a note to https://www.django-unicorn.com/documentation/installation? Here is that code in the site repo: https://github.com/adamghill/django-unicorn.com/blob/master/www/templates/www/documentation/installation.html.

Yes i miss to add the {% csrf_token %} and the #45 appeard. I think on the
https://github.com/adamghill/django-unicorn/blob/a83f2bf103b13a9d05e359e18a4c6c7e5e5e5b87/django_unicorn/templates/unicorn/scripts.html#L11
<script>
    var url = "{% url 'django_unicorn:message' %}";
    Unicorn.init(url, "[% csrf_token %]");
</script>

It is needed!

Does this seem like enough? https://github.com/adamghill/django-unicorn.com/commit/a49c4d6c45c8a31c0ef7d1088259660a7069573e

i think you can remove the part of the add a newline of code {% csrf_token %} it is not necessary!

I think this is ok now. Closing.


I would like better support for multiple cursors.

I would like some better support for multiple cursors like PHPStorm and WebStorm have.
Features like:

Selecting multiple different words by alt-clicking
Copy/cut/paste per cursor
Emmet support per cursor

See: https://www.youtube.com/watch?v=aqGNM4rvyOE

@mblander

Selecting multiple different words by alt-clicking -> this works today, but the modifier is ctrl-clicking
Adding a selection to the next occurence of a word -> this works today, ctrl-d
Copy/cut/paste per cursor -> this works today, perhaps there is a specific scenario that is not working? -> please file an issue with the specific problem
Emmet support per cursor -> tracked in #1050


PlotlyJS subplot issue

Hello,
It seems that there is an issue when capturing plots containing subplots from plotlyjs. The following script works fine at the REPL, but does not produce the correct output in HTML.
#' This is a test.
using Plots
plotlyjs()
ns = 1:9
Θ  = linspace(0,2π,501)
funs   = [Θ->sin(n*Θ) for n in ns]
labels = ["sin($(n)Θ)" for n in ns].'
# plot
plot(Θ,funs,labels=labels,xlabel="Θ",layout=(3,1))

Thanks for the report, this is clearly a bug.


PyWidget initialization error

Using this code:
from flexx import flx, ui, event

class Test(flx.PyWidget):
    def init(self):
        super().init()

        print("HERE")

        main_style = f"""
            left: 10px;
            top: 10px;
            background-image: url("image.png");
        """
        with ui.HBox(style=main_style):
            pass

if __name__ == '__main__':
    m = flx.launch(Test)
    flx.run()

HERE is printed twice and no error is shown in the console.
If line background-image: url("image.png");  is removed, everything works fine.
Note that if url(...) is replaced by anything, even gibberish, it also works fine.
Am I missing something or is this a bug? Shouldn't there be at least a warning?
Im using Flexx 0.8.0 on Python 3.7.2.

This is because the image uirl is relative, so it becomes http://localhost/Test/image.png and this server considers this a request for the Test app. Instead use an absolute url. If the image was added via flx.assets.add_shared_data(), it would be /flexx/data/shared/image.png.


feat: provide token when a new user register

:tada: This PR is included in version 7.2.0 :tada:
The release is available on:

7.2.0
GitHub release

Your semantic-release bot :package::rocket:


RST-2166 -Making changes to evidence flow

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/RST-2166
Change description
Removing failed reasons page and moving the incorrect reason page into its place.
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

Closing this PR in favour of 965 PR


FIX Dockerfile with go mod

I have modified the docker to be able to launch it with the go mod

Can this get merged?

@antoineVIVIES
"Go.pkg copy failed" what that mean?
I try to install with docker in my server

@unicorn-art
Which Dockerfile did you try to use?
Try to use mine if you used the repository one.

I just used your version of the Dockerfile after the one in master errored out on me. Thanks for fixing it. I could build the image successfully on OpenSUSE Tumbleweed. This seems to be okay to merge.

Thank you guys for testing this! Merging it in.


Update sbt-scoverage to 2.0.6

Updates org.scoverage:sbt-scoverage from 2.0.5 to 2.0.6.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scoverage", artifactId = "sbt-scoverage" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.scoverage", artifactId = "sbt-scoverage" }
}]

labels: sbt-plugin-update, early-semver-patch, semver-spec-patch, commit-count:1

Codecov Report
Base: 89.57% // Head: 89.56% // Decreases project coverage by -0.00% :warning:

Coverage data is based on head (be30e59) compared to base (f8952a2).
Patch has no changes to coverable lines.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #1093      +/-   ##
===========================================
- Coverage    89.57%   89.56%   -0.01%
===========================================
  Files          119      119
  Lines        10016    10016
  Branches       695      695
===========================================
- Hits          8972     8971       -1
- Misses        1044     1045       +1

Impacted Files
Coverage Δ

...src/main/scala/com/twitter/algebird/Interval.scala
76.19% <0.00%> (-3.97%)
:arrow_down:

.../main/scala/com/twitter/algebird/BloomFilter.scala
93.50% <0.00%> (-1.74%)
:arrow_down:

.../scala/com/twitter/algebird/immutable/BitSet.scala
96.64% <0.00%> (ø)

...a/com/twitter/algebird/immutable/BloomFilter.scala
96.06% <0.00%> (+1.57%)
:arrow_up:

.../main/scala/com/twitter/algebird/Applicative.scala
56.66% <0.00%> (+3.33%)
:arrow_up:

...in/scala/com/twitter/algebird/scalacheck/Gen.scala
100.00% <0.00%> (+8.33%)
:arrow_up:

.../main/scala/com/twitter/algebird/Successible.scala
95.83% <0.00%> (+12.50%)
:arrow_up:

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Superseded by #1103.


bug fix

This is not correct way to solve.  Storage helper is suppose clean out the prefix.  The caller should not be including the prefix an when using the results of list, the keys it gets back can be used to access the files


versions: Align version list with cluster creation

When listing available versions, the format should match the expected
input when creating a cluster.

/retest


[Python] Evaluate Product Experience

Description
We should be prepared to address the quality of the Sentry Product Experience for all users considering our new Sentry + OTEL approach
What Major platforms can we ensure it works for?

Python SDK

Django
Flask
FastAPI
Other non-web framework related?

Product Features

Error Tracking

[ ] What do users have to do?
What works?

[ ] Issues

[ ] 'POST /test/12344?test=true'

returns an error - should be reflected

[ ] Stack trace and code link
[ ] Bread crumbs

[ ] Related transactions
[ ] Trace view
[ ] Performance Issues

[ ] New and rely on standardized txns and spans

What doesn’t work, or doesn’t work quite the same?

Performance Monitoring

What do they have to do?

Example: NodeJS: [SDK Docs](https://docs.sentry.io/platforms/node/performance/instrumentation/opentelemetry/)

What works?

Distributed tracing
Transactions and Spans
- Naming, descriptions, etc
- Operation: http.server
-  [ ] parameterized transactions

GET /?test=true
'POST /test/12344?test=true'

-  [ ] http.method
-  [ ] related issues
- Operation: queue.task.____
- Operation: integration.http
- Operation: db

Vitals

User Misery
[] Backend

What doesn’t work or doesn’t work the same?

Release Management

Adoption, Crash related features
Source Maps: N/A

Discover & Dashboards

[ ] create a stock dashboard for project(s)

Dashboard: OTEL Hipster Django

Ecosystem & Workflow

consider product integration dependent upon incoming data
alerts for example

Profiling

statement on if it CAN work

Replays

statement on if it CAN work

Issue to be treated as a check list
Outcomes

Do we need to add more documentation?
Do we need to communicate this to other product teams? (create issues)
Do we need to consider upstream contribution? (only create issues for now)
Do we need to improve the span transformation and/or trace propagation? (create issues)

integration tests for each platform

clarify the tests to run on each SDK

how to convert this into automated functional testing

apply per repo
apply to hipster shop


Add Google Analytics

Add Google Analytics Support.
Account key should go in the environment file

I'm going to use the modern setup listed in the documentation.

The alternative async tracking snippet below adds support for preloading, which will provide a small performance boost on modern browsers, but can degrade to synchronous loading and execution on IE 9 and older mobile browsers that do not recognize the async script attribute. Only use this tracking snippet if your visitors primarily use modern browsers to access your site.

Prod environment has been configured.


Support 32 bit builds

It seems as though some of the 32bit builds are passing, but we are now getting
test test_unistd::test_execve ... FAILED
test test_unistd::test_wait ... FAILED
test sys::test_uio::test_readv ... ok
test sys::test_uio::test_writev ... ok
test sys::test_uio::test_pwrite ... ok
test test_unistd::test_fork_and_waitpid ... ok
failures:
---- test_unistd::test_execve stdout ----
thread 'test_unistd::test_execve' panicked at 'called `Result::unwrap()` on an `Err` value: Sys(ECHILD)', /home/rustbuild/src/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libcore/result.rs:729

---- test_unistd::test_wait stdout ----
thread 'test_unistd::test_wait' panicked at 'assertion failed: `(left == right)` (left: `Ok(Exited(4758))`, right: `Ok(Exited(4759))`)', test/test_unistd.rs:41

failures:
test_unistd::test_execve

test_unistd::test_wait

Looks like you did it another way?

I ended up getting this done :) Thanks for this though!


BaseActivity

your project understandable but where base activity
why did you put it away

@mohamedebrahim96 Please see there, it is in the separate module
https://github.com/armcha/MVP-Architecture-Components/blob/master/arch/src/main/java/com/luseen/arch/BaseActivity.java


Check DimCoord poins and bounds before setting

Setting DimCoord points/bounds to an array that doesn't meet the requirements raises an exception, but the points/bounds array is still set on the coordinate. This PR stops that happening by doing the requirements checks before modifying the coord with the new array.
I've modified the functions _new_points_requirements() and _new_bounds_requirements() so that they check the slightly more lenient requirements of the array which is passed in, rather than those of the actual array assigned, i.e, the points value passed can be a scalar, and the bounds value can be 1D if there is only a single point.

👍
Thanks @djkirkham.

Practically, this all looks good + solid to me.
I don't see any need to test the new behaviour -- it is just clearly a fix.
However.. have you actually added some functionality in allowing scalar values, and is that tested ?

No, scalar values were always allowed. It's just that previously the new array was being passed through _sanitise_array(), which ensured it was at least 1D (for points) or 2D (for bounds),  before being checked.

Ok, I believe it !
Thanks @djkirkham


Your request to provision  "Microsoft 365 learning pathways"  template failed!

Describe the issue
Your request to provision
"Microsoft 365 learning pathways"
template failed!
Details (please complete the following information):

PnP Correlation ID: [Provide a correlation ID for the provisioning action]

correlation ID: 1e189243-b226-449c-86e6-4cccfe465543 !

Reference Template: [please provide the URL of the template in the Look book site. It should be something like: https://lookbook.microsoft.com/details/3df8bd55-b872-4c9d-88e3-6b2f05344239

Are you using a Tenant Global Admin account to provision the template: [Yes/No]

Yes

Hi,
Thanks for using the Look Book site. Based on the event log, we can see - based on the provided Correlation ID - that there was an issue while trying to upload in the App Catalog the SPPKG of the SharePoint Framework solution. Could you please try to remove the SPPKG and then try again provisioning the site with a fresh new URL? In case of any issue, please create another item and provide the corresponding Correlation ID for further investigation. Thanks for your cooperation.


[Tables] Sprint 3

Tasks

[x] Converting the client methods to using Generic Types for working with the Entities

[x] Implement Entity Serialization/Deserialization

Create helper classes for Int64, Guid and Binary (ArrayBuffer) types

[x] Create convenient methods for working with OData queries

[x] Create Enum Types for the different modes of Update and Upsert

[ ] Implement async iterables for pageable results (#10504)

[ ] Write samples of using the SDK for both TS and JS

[ ] Finish up the documentation for preview release in August

Deliverables

[ ] Final shape of the SDK ready for preview release

@mahdiva or @joheredi
Will there be a public preview of @azure/tables released to npm this August?


Pop up notification when there is a problem finding / loading vscode settings

Because it basically breaks cursorless

Closing in favour of #119


Add slider control

See http://hl7.org/fhir/R4/valueset-questionnaire-item-control.html for slider

Hi, I'd like to contribute to this issue. Where do I have to add the slider?

Hi - thanks for your interest. Please refer to PR #191.
There are a few important things you'll need to do

create a new layout file for the slider widget
create a new factory class that will use the layout file to create the view holder
change the QuestionnaireItemAdapter.kt file so that it uses the new factory for numbers
add tests

please take a look at that PR and let me know if you have questions.

Ali - may I ask you to download the repo and try to build the datacapturegallery module first. Once you've done that and you're clear what to do I can grant write access.

An example can be found here: http://build.fhir.org/ig/HL7/sdc/examples.html#using-sliderstepvalue

This has been solved in #287, Issue can be closed.

Thanks @s-ayush2903!


derive_var_ontrtfl - issue with example

What happened?
https://pharmaverse.github.io/admiral/reference/derive_var_ontrtfl.html shows in the examples:

My best guess is ymd("2020-01-02T12:00") should be replaced with ymd_hm("2020-01-02T12:00")
Session Information
NA
Reproducible Example
NA

thanks @jtvrdon!

@jtvrdon Are you still eager to work on this?

Hey @JMcGavigan32 I think we can assume that you can take this one over.

@JMcGavigan32 Did you start working on this issue? If not, would it be OK if we reserve the issue for Roche's hackRthon next week?

Hi @thomas-neitmann and @rossfarrugia yes the issue is with ymd() function cannot process the time with hour and min. See test code below
ymd("2020-01-02T12:00")

gives the same warning message.
Should I simply replace ymd with ymd_hm?

That looks just right 👍


Use concrete-ntt for NTT operations

We allow the use of concrete-ntt in fhe-math crate via the feature flags

concrete-ntt
concrete-ntt-nightly

Benchmarks to be added to this PR.

Apple M2 on battery:
$ cargo criterion ntt --features concrete-ntt
   Compiling fhe-math v0.1.0-beta.8 (/Users/tancrede/git/fhe.rs/crates/fhe-math)
   Compiling fhe v0.1.0-beta.8 (/Users/tancrede/git/fhe.rs/crates/fhe)
    Finished bench [optimized] target(s) in 8.12s

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s

ntt/forward/1024/62     time:   [4.2295 µs 4.2310 µs 4.2335 µs]
                        change: [+31.699% +32.158% +32.656%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/forward_vt/1024/62  time:   [4.2292 µs 4.2308 µs 4.2333 µs]
                        change: [+30.739% +31.144% +31.576%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/backward/1024/62    time:   [4.9529 µs 4.9564 µs 4.9596 µs]
                        change: [+42.015% +42.382% +42.770%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/backward_vt/1024/62 time:   [4.9462 µs 4.9509 µs 4.9564 µs]
                        change: [+41.606% +41.982% +42.352%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/forward/1024/16     time:   [4.2616 µs 4.2904 µs 4.3288 µs]
                        change: [+33.286% +34.570% +36.245%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/forward_vt/1024/16  time:   [4.4043 µs 4.5029 µs 4.6164 µs]
                        change: [+35.090% +38.045% +43.124%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/backward/1024/16    time:   [4.9739 µs 4.9961 µs 5.0263 µs]
                        change: [+43.092% +43.963% +44.946%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/backward_vt/1024/16 time:   [4.9532 µs 4.9581 µs 4.9631 µs]
                        change: [+41.480% +42.032% +42.502%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/forward/4096/62     time:   [19.723 µs 19.757 µs 19.802 µs]
                        change: [+35.091% +36.112% +37.347%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/forward_vt/4096/62  time:   [19.873 µs 19.990 µs 20.126 µs]
                        change: [+34.851% +35.493% +36.214%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/backward/4096/62    time:   [22.864 µs 22.901 µs 22.951 µs]
                        change: [+44.177% +44.813% +45.415%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/backward_vt/4096/62 time:   [22.846 µs 22.856 µs 22.872 µs]
                        change: [+44.354% +44.766% +45.210%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/forward/4096/16     time:   [19.775 µs 19.871 µs 19.986 µs]
                        change: [+35.310% +36.557% +38.172%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/forward_vt/4096/16  time:   [19.678 µs 19.689 µs 19.702 µs]
                        change: [+33.242% +33.690% +34.139%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/backward/4096/16    time:   [22.840 µs 22.849 µs 22.861 µs]
                        change: [+43.660% +44.123% +44.560%] (p = 0.00 < 0.05)
                        Performance has regressed.
ntt/backward_vt/4096/16 time:   [22.892 µs 22.960 µs 23.032 µs]
                        change: [+44.630% +45.081% +45.544%] (p = 0.00 < 0.05)
                        Performance has regressed.

Actually, I want to modify the concrete-ntt a little.
Specially, the inverse ntt operation. The multiplication with n^{-1} can be merged into the last layer ot intt.

Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz
cargo criterion ntt --features concrete-ntt
   Compiling fhe-math v0.1.0-beta.8 (/data/dev/[fhe.rs/crates/fhe-math](http://fhe.rs/crates/fhe-math))
   Compiling fhe v0.1.0-beta.8 (/data/dev/[fhe.rs/crates/fhe](http://fhe.rs/crates/fhe))
    Finished bench [optimized] target(s) in 4.60s
Gnuplot not found, using plotters backend
Gnuplot not found, using plotters backend
Gnuplot not found, using plotters backend

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s

Gnuplot not found, using plotters backend
ntt/forward/1024/62     time:   [7.9211 µs 7.9222 µs 7.9231 µs]
                        change: [-52.194% -52.185% -52.178%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward_vt/1024/62  time:   [7.8962 µs 7.9078 µs 7.9179 µs]
                        change: [-48.513% -48.461% -48.413%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward/1024/62    time:   [8.9256 µs 8.9387 µs 8.9510 µs]
                        change: [-22.332% -22.265% -22.208%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward_vt/1024/62 time:   [8.8733 µs 8.8781 µs 8.8836 µs]
                        change: [-18.803% -18.765% -18.725%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward/1024/16     time:   [7.4251 µs 7.5024 µs 7.6175 µs]
                        change: [-54.565% -54.342% -53.987%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward_vt/1024/16  time:   [7.5126 µs 7.5287 µs 7.5420 µs]
                        change: [-49.884% -49.787% -49.698%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward/1024/16    time:   [8.3443 µs 8.3462 µs 8.3478 µs]
                        change: [-27.461% -27.448% -27.436%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward_vt/1024/16 time:   [8.3488 µs 8.3499 µs 8.3512 µs]
                        change: [-23.645% -23.601% -23.574%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward/4096/62     time:   [33.557 µs 33.562 µs 33.566 µs]
                        change: [-55.338% -54.399% -53.716%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward_vt/4096/62  time:   [34.956 µs 35.053 µs 35.149 µs]
                        change: [-48.215% -48.066% -47.919%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward/4096/62    time:   [40.084 µs 40.110 µs 40.129 µs]
                        change: [-25.304% -25.241% -25.178%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward_vt/4096/62 time:   [39.784 µs 39.793 µs 39.804 µs]
                        change: [-22.524% -22.509% -22.493%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward/4096/16     time:   [35.116 µs 35.187 µs 35.243 µs]
                        change: [-50.887% -50.801% -50.726%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward_vt/4096/16  time:   [33.574 µs 33.584 µs 33.598 µs]
                        change: [-49.150% -49.135% -49.119%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward/4096/16    time:   [38.478 µs 38.485 µs 38.492 µs]
                        change: [-31.876% -29.802% -28.464%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward_vt/4096/16 time:   [38.505 µs 38.513 µs 38.521 µs]
                        change: [-25.007% -24.990% -24.972%] (p = 0.00 < 0.05)
                        Performance has improved.

$ cargo +nightly criterion not --features concrete-ntt-nightly

ntt/forward/1024/62     time:   [4.0195 µs 4.0297 µs 4.0412 µs]
                        change: [-49.195% -49.092% -48.961%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward_vt/1024/62  time:   [3.8602 µs 3.8623 µs 3.8644 µs]
                        change: [-51.222% -51.168% -51.109%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward/1024/62    time:   [4.6452 µs 4.6559 µs 4.6658 µs]
                        change: [-48.186% -48.072% -47.969%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward_vt/1024/62 time:   [4.4434 µs 4.4449 µs 4.4475 µs]
                        change: [-49.954% -49.869% -49.726%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward/1024/16     time:   [4.0979 µs 4.0988 µs 4.0997 µs]
                        change: [-45.527% -45.114% -44.823%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward_vt/1024/16  time:   [3.8746 µs 3.8767 µs 3.8787 µs]
                        change: [-48.519% -48.427% -48.325%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward/1024/16    time:   [4.6727 µs 4.6841 µs 4.6956 µs]
                        change: [-43.972% -43.862% -43.766%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward_vt/1024/16 time:   [4.4763 µs 4.4767 µs 4.4772 µs]
                        change: [-46.397% -46.388% -46.378%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward/4096/62     time:   [21.465 µs 21.498 µs 21.522 µs]
                        change: [-35.987% -35.904% -35.851%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward_vt/4096/62  time:   [20.704 µs 20.710 µs 20.717 µs]
                        change: [-41.233% -41.067% -40.901%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward/4096/62    time:   [23.186 µs 23.228 µs 23.253 µs]
                        change: [-42.044% -41.976% -41.908%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward_vt/4096/62 time:   [23.653 µs 23.666 µs 23.679 µs]
                        change: [-40.539% -40.501% -40.463%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward/4096/16     time:   [18.732 µs 18.736 µs 18.741 µs]
                        change: [-46.796% -46.713% -46.621%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/forward_vt/4096/16  time:   [18.746 µs 18.755 µs 18.764 µs]
                        change: [-44.181% -44.154% -44.126%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward/4096/16    time:   [20.750 µs 20.759 µs 20.772 µs]
                        change: [-46.058% -45.980% -45.892%] (p = 0.00 < 0.05)
                        Performance has improved.
ntt/backward_vt/4096/16 time:   [21.054 µs 21.056 µs 21.058 µs]
                        change: [-45.338% -45.325% -45.312%] (p = 0.00 < 0.05)
                        Performance has improved.

@fionser I was going to ask you to review. I fully support what you propose, it would be great to merge the normalization in concrete-not 💯

@tlepoint Does the benchmark means the concrete-ntt is slower ?

It's slower on Apple M1/M2, but it's faster on Intel with AVX2/AVX512.

It suprised me that the concret-ntt impl is 30% slower on Apple M1/M2. Given that the concrete-ntt is quit similiar to the pointer-base implemetation in fhe.rs when n <= 1024.

It suprised me that the concret-ntt impl is 30% slower on Apple M1/M2. Given that the concrete-ntt is quit similiar to the pointer-base implemetation in fhe.rs when n <= 1024.

This would need to be fully investigated; but a possible reason is that this library is using "Shoup" representation for the NTT precomputed values, and limiting moduli to 62-bits maximum, which allows to speed up the base arithmetic operations.

I find my optimization expereience is not working on Rust/Apple :(
// The shoup's mul that uses 2 double-width mul
pub const fn lazy_mul_shoup(&self, a: u64, b: u64, b_shoup: u64) -> u64 {
        let q = ((a as u128) * (b_shoup as u128)) >> 64;
        let r = ((a as u128) * (b as u128) - q * (self.p as u128)) as u64;
        r
 }
ntt/forward/4096/62     time:   [14.730 µs 14.774 µs 14.845 µs]
                        change: [-26.838% -26.447% -26.049%] (p = 0.00 < 0.05)

// The shoup's mul that uses only one double-width mul which is expected to be faster.
// However, this code show slower in M2
pub const fn lazy_mul_shoup(&self, a: u64, b: u64, b_shoup: u64) -> u64 {
        let q = (((a as u128) * (b_shoup as u128)) >> 64) as u64;
        let q = q.wrapping_mul(self.p);
        let r = a.wrapping_mul(b).wrapping_sub(q);
        r
}
ntt/forward/4096/62     time:   [20.120 µs 20.150 µs 20.187 µs]

I am not sure what happens either (but I can reproduce the same slowdown when using your code). It is supposed to be compiled the same way:

https://rust.compiler-explorer.com/z/ferEbY3EK
https://rust.compiler-explorer.com/z/W6cGGKTG3

Is concrete-ntt faster if you work with u128 there?

I am not sure what happens either (but I can reproduce the same slowdown when using your code). It is supposed to be compiled the same way:

https://rust.compiler-explorer.com/z/ferEbY3EK
https://rust.compiler-explorer.com/z/W6cGGKTG3

Is concrete-ntt faster if you work with u128 there?

Yes, the concrete-ntt is faster when doing both multiplication in u128 for Apple M2.
Check out this MR


Issue 663

Fixes #663 Profiler doesn't like UTF8 BOM
Switches to using tokenize.open or tokenize.detect_encoding for reading source files.
Also fixes unhandled error creating virtual environment.

:+1:

:+1:


RequirePermissions doesn't work correctly.

This is likely an issue with the underlying methods in core of the library, specifically channel permission checks.
This should be fixed for 2.2.x.

This should be fixed now.