Use Alma Linux 9 instead of Alma Linux 8

Use Alma Linux 9 instead of Alma Linux 8
Alma Linux 9.2 is the most recent Alma Linux release. It has a longer support life and is more likely to include important fixes.
Also incremented the default version of Jenkins that this script packages so that it matches with the next long term support baseline, 2.401.
Testing done
Ran make build-almalinux_jdk11 and make test-almalinux_jdk11 and confirmed that build and test work as expected.  Since the UBI container image is already using UBI 9, this should be a safe change.
@saper I'd like a code review from you, since you're listed as CODEOWNER of the Alma Linux container image.
Submitter checklist

[x] Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
[x] Ensure that the pull request title represents the desired changelog entry
[x] Please describe what you did
[x] Link to relevant issues in GitHub or Jira
[x] Link to relevant pull requests, esp. upstream and downstream changes
[x] Ensure you have provided tests - that demonstrates feature works or fixes the issue

Waiting for @saper advice

I agree that we should wait for a code review from the person that agreed to be a code owner of the affected container image.  Thanks!

@MarkEWaite candid question: shouldn't we mark this change as "breaking" to mark that we stop distributing the line 8.x of AlmaLinux?

Yes, I think that you are correct.  We should mark this change as "breaking" because it changes the container image in a way that may surprise users.  I've added the "breaking" label to remind us that it needs an entry in the Jenkins weekly changelog and the Jenkins LTS changelog.
I'm open to consider a blog post as well, if that is helpful.  The weekly and LTS changelog seems like the best place to document it, but a blog post provides a very visible location to announce the change.

=> once approved by maintainers, we have to build it manually for the past 2 weekly and LTS to make sure it does not rebuild (and override) them.

I think this one is different than https://github.com/jenkinsci/docker/pull/1586#pullrequestreview-1423099584 .  I don't think that we need to rebuild any previous releases with this change.  I think that it will be better for users if we document the change in the first weekly changelog and the first LTS changelog where the change is visible.  I don't think that we should alter the content of any already created container tags for this change.

=> once approved by maintainers, we have to build it manually for the past 2 weekly and LTS to make sure it does not rebuild (and override) them.

I think this one is different than #1586 (review) . I don't think that we need to rebuild any previous releases with this change. I think that it will be better for users if we document the change in the first weekly changelog and the first LTS changelog where the change is visible. I don't think that we should alter the content of any already created almalinux container tags for this change.

Alas it is a technical constraint today: if you simulate the execution of the trusted.ci.jenkins.io daily build on the last commit of this PR, the 4 images (past 2 weekly and past 2 LTS) are suddendly seen as "not published":
docker git:(use-almalinux-9) ./.ci/publish.sh -n
Docker repository in Use:
* JENKINS_REPO: jenkins/jenkins
Dry run, will not publish images
2.403 not published yet
# ...
2.404 not published yet
# ...
2.387.2 not published yet
# ...
2.387.3 not published yet
# ...

=> the reason is because the script .ci/publish.sh checks for existence of a given "version" by looking all the manifests and comparing to the list of tags and CPU architecture defined in docker-bake.hcl
Given the challenge it gives us, I'm inclined to propose a PR later today to switch the trusted.ci.jenkins.io delivery to be triggered by tag only (and remove this challenging script).
=> this would ensure we can always relate 1 "version" in DockerHub to 1 git tag + release here. The only real change would be that the weekly and LTS Core release produce would have to be amended: instead of connect to trusted.ci and launch a build or wait 6h, it would be create a tag in the jenkinsci/docker repository with the Jenkins version and wait 15 min max. WDYT @MarkEWaite ?

I'm inclined to propose a PR later today to switch the trusted.ci.jenkins.io delivery to be triggered by tag only (and remove this challenging script).

I would like that very much.  The "guess which containers to push" mode has many ways that it can fail.  Push when a new tag arrives seems less likely to have corner cases and unexpected problems.

if you simulate the execution of the trusted.ci.jenkins.io daily build on the last commit of this PR, the 4 images (past 2 weekly and past 2 LTS) are suddenly seen as "not published":

Very interesting.  I assume we'll have more cases like this.  In the future, I expect to propose a pull request to stop publishing the container image(s) that use centos7 as their base image.  The upstream centos7 container image has not been maintained since November 2020 and Red Hat is ending support of Red Hat Enterprise Linux 7 in 2024.  I've started a Jenkins developers discussion thread on the idea and have submitted a draft pull request https://github.com/jenkinsci/jenkins/pull/7913 to Jenkins core that will warn CentOS 7 users of the upcoming end of life.

Started initial work in #1630

I am not sure what the maintaner/code owner duties here are. But I can help with testing/reviewing/whatever is needed.
Speaking of this change:

Haven't tested it yet
We take Java from the eclipse-temurin:11.0.19_7-jdk-centos7 - this does not seem quite right (although it has a chance to work) - shouldn't we use https://github.com/adoptium/containers/blob/920efae8fe37e2b8f2b288b5f7f9e67134ecad1d/11/jdk/ubi/ubi9-minimal/Dockerfile.releases.full here?

I am not sure what the maintainer/code owner duties here are. But I can help with testing/reviewing/whatever is needed. Speaking of this change:

Haven't tested it yet

If you're willing to test it, that would be much appreciated.  That would then let you say, "I approve".  We can resolve the repository permissions question later

We take Java from the eclipse-temurin:11.0.19_7-jdk-centos7 - this does not seem quite right (although it has a chance to work) - shouldn't we use https://github.com/adoptium/containers/blob/920efae8fe37e2b8f2b288b5f7f9e67134ecad1d/11/jdk/ubi/ubi9-minimal/Dockerfile.releases.full here?

That's a very good point and a good thing to include in a new pull request that prepares us for the June 2024 official end of life of CentOS 7 and the 2023 expected early end of life for CentOS 7 in the Jenkins project.  I've started a Jenkins developers mailing list discussion on it and have submitted a Jenkins core pull request preparing for an early end of life for CentOS 7 in the Jenkins project.

I agree the ubi image should be used instead of the centos 7 one.

I agree the ubi image should be used instead of the centos 7 one.

+1 with this

I agree the ubi image should be used instead of the centos 7 one.

+1 with this

Done in f291eded59493f124d399db8547db24d75682e00

May want to consider updating the ubi8 to ubi9 for Java 11.

I think that is a good idea for another pull request.  That pull request will be more complicated because the container image includes the UBI version in its name.  Will need discussion with @olivergondza to see if it is better to create a new container image for ubi9 and stop updating the ubi8 container image or if we need to have both of them.

May want to consider updating the ubi8 to ubi9 for Java 11.

I think that is a good idea for another pull request. That pull request will be more complicated because the container image includes the UBI version in its name. Will need discussion with @olivergondza to see if it is better to create a new container image for ubi9 and stop updating the ubi8 container image or if we need to have both of them.

Good point, may I suggest to separate concerns then?

Let's update this PR to "only" add the new UBI9 for both JDK11 and JDK17, as a new feature. That would make it simpler and fatser to review, test, approve (and deliver).

Then, a subsequent PR should remove the UBI8 to have the discussion about "deprecate it or not"

WDYT @MarkEWaite ?

Good point, may I suggest to separate concerns then?

Let's update this PR to "only" add the new UBI9 for both JDK11 and JDK17, as a new feature. That would make it simpler and fatser to review, test, approve (and deliver).
Then, a subsequent PR should remove the UBI8 to have the discussion about "deprecate it or not"

I was assuming an even greater separation of concerns by limiting this pull request to only change Alma Linux and let other pull requests be used to improve or adjust the UBI container images.  If this pull request should include additions for the UBI 9 containers, I'm fine with that as well, though I thought it would be easier in the changelog if that was a separate pull request.

Good point, may I suggest to separate concerns then?

Let's update this PR to "only" add the new UBI9 for both JDK11 and JDK17, as a new feature. That would make it simpler and fatser to review, test, approve (and deliver).
Then, a subsequent PR should remove the UBI8 to have the discussion about "deprecate it or not"

I was assuming an even greater separation of concerns by limiting this pull request to only change Alma Linux and let other pull requests be used to improve or adjust the UBI container images. If this pull request should include additions for the UBI 9 containers, I'm fine with that as well, though I thought it would be easier in the changelog if that was a separate pull request.

You are absolutletly correct! Separating Alma from Ubi images is a great idea.
I mixed up the "temurin ubi" change with the "UBI" images in my mind, sorry.

@ksalerno99 asked a very good question in the platform SIG meeting today.  He asked why we deliver an Alma Linux container when UBI containers are the preferred way of delivering Red Hat compatible container images.
I am placing this pull request on hold so that we can consider an alternate approach.  I think the alternate is to extend the facility initially defined in

https://github.com/jenkinsci/jenkins/pull/7913

so that we warn container users that their container image will no longer be supported after a certain date (like Nov 16, 2023).
We declare end of life for the following container images:

Alma Linux
Blue ocean

He asked why we deliver an Alma Linux container when UBI containers are the preferred way of delivering Red Hat compatible container images.

I don't know if things are different now, but last time I tried to build own derivative of the UBI-based image (and trying to add some RPMs from Red Hat Enterprise Linux there), it turned out I needed to have a valid Red Hat Enterprise Linux subscription.
Even in the organization that has a commercial license from Red Hat, it turned out to be a pain to deal with the subscription manager setup for the build infrastructure to make it work.
From: https://developers.redhat.com/articles/ubi-faq#redistribution

22. Can I add non-UBI RPMs to a UBI image and still redistribute the resultant container image on a non-Red Hat platform?

No, only Red Hat packages assigned to the UBI EULA can be redistributed. The EULA, under which UBI is governed, allows users to distribute a set of container images and RPMs delivered as part of UBI. Container images and RPMs which are covered by a different EULA have different rights and restrictions. Of course, and in general, you can expect any community open source technology to be redistributable.

He asked why we deliver an Alma Linux container when UBI containers are the preferred way of delivering Red Hat compatible container images.

I don't know if things are different now, but last time I tried to build own derivative of the UBI-based image (and trying to add some RPMs from Red Hat Enterprise Linux there), it turned out I needed to have a valid Red Hat Enterprise Linux subscription.
Even in the organization that has a commercial license from Red Hat, it turned out to be a pain to deal with the subscription manager setup for the build infrastructure to make it work.

Hi, are you sure that's still the case? The last time I added RPMs to a UBI image (ubi8 and ubi9) the message from subscription-manager when running dnf was that a subscription is not required for UBI. Meaning, dnf commands to add packages work without any additional registration, and we currently build a ubi9 image of Jenkins controller that also does not require any subscription registration.

It works if you 1) use some limited set of UBI-licensed RPMs or 2) do it on an otherwise licensed Red Hat Enterprise Linux machine. If you do build a container on something else (in my case that was some vanilla Kubernetes cluster not running on the Enterprise Linux and not OpenShift), you need to have an active license. Looks like what the FAQ says is still true.

@MarkEWaite, @dduportal, regarding introduction of UBI9 and/or Java 17 support: The way we played this is that we will keep https://github.com/jenkinsci/docker/tree/master/11/rhel/ubi8/hotspot for a bit while we will also provide https://github.com/jenkinsci/docker/tree/master/17/rhel/ubi9/hotspot for users to migrate to. We do not intend to provide the remaining 2 combinations and have them hosted by Jenkins upstream.
This nudges users to upgrade the system and java in one go, but we are ok to wive with that.

@saper, is correct, the list of Red Hat provided RPMs for UBI is constrained unless you have purchased a subscription. That can limit you somewhat in what you can install for downstream images.

As the maintainer of the UBI images here, I have an interest for those to stay, and I do not object if Alma ones remains distributed in parallel. Provided there is an interest in reducing the set of images produced by upstream, and we choose to converge Alma into UBI, and this is a god opportunity to do that.
I would suggest instead of actually doing this MR, to simply point users to UBI9&&Java17 as a migration path from Alma 8. Based on user feedback we will learn if this is sufficient, or there continue to be a need to resurrect Alma - it largely depends on what the users install in the downstream containers and if they need to redistribute those.

@olivergondza I like that recommendation very much.  I'm closing this pull request so that we can use the alternate approach of implementing a container end of life warning similar to the operating system end of life warning, then we can use that container end of life to guide people to transition towards preferred container images.

I'm a user of the lts-almalinux image to which I moved from the centos7 one. Since I've started getting end of life messages for jdk11 I was looking for ways to upgrade to jdk17 or jdk21 and found this pull request. I don't fulfill the Red Hat licensing requirements mentioned above, so the termination of the almalinux image is most inconvenient for me as it would force me to try and recreate the custom image I've been using for several years on a very different distribution.

I'm a user of the lts-almalinux image to which I moved from the centos7 one. Since I've started getting end of life messages for jdk11 I was looking for ways to upgrade to jdk17 or jdk21 and found this pull request. I don't fulfill the Red Hat licensing requirements mentioned above, so the termination of the almalinux image is most inconvenient for me as it would force me to try and recreate the custom image I've been using for several years on a very different distribution.

@nmusatti you chose a very good time to ask the question.  A number of pull requests have been merged recently to prepare for the release of Java 21 support for the more exotic platforms (s390x and ppc64le) in pull request:

#1822

As part of those pull requests, I think that the end of Java 11 support in Oct 2024 will be the end of the almalinux container image.   There are other outdated items in the Java 11 container images.  The Oct 2024 end of Java 11 support will simplify future maintenance of container images by removing the container images that have those outdated items.
In Nov 2024, I think that our container images should only support:

Alpine 3.20 (or 3.19 if 3.20 is late)
Debian Bookworm
UBI 9

I'm hesitant to add another container image unless we also add one or more active maintainers for that container image.  I'd rather have you make the switch to a Debian or an Alpine based container image than add a new container image without an additional maintainer.
Other maintainers of the image may have different opinions and they are welcome to express their opinions.
Are you interested in becoming a maintainer?

Question about usage: what is the reason for not using debian based image? The context of using Docker means the container is providing an application with a portable behavior, which is the case for Jenkins controllers. As much as agent might have package constraints, it is not clear to me why even having 2+ different OS for a given image? (But i might miss something)

Here is my take on it - while I have initially got into this at all.
It is all about maintaining a large number of derived images - in our case, we have almost exclusively a Red Hat-based environment and we produce derived images for example also for Jenkins. Since container images have to be regularly updated and rebuilt, I find it better to deal with one OS (Enterprise Linux derivative) everywhere than a combination of Debian, RedHat, Alpine based images. In the simplest case, I want to have update-ca-trust everywhere. In the most complex case (not related to Jenkins in particular) I want to have smartcard-related configuration done right everywhere.
The reason we do not use UBI right now is that one might run into a licensing configuration issue if not building on Red Hat platform, like running image building pipeline on the Kubernetes cluster not owned by us, or trying to build the image at home on something that is not a licensed RHEL machine.
I'll have a look at this together with https://github.com/jenkinsci/docker/pull/1822
Let's have a look if the above reasons are enough to carry the burden. Most importantly, I don't know how many users derive they own images from the jenkins one.

In my case I'd rather stay on an EL derivative rather than switching to Debian because I use a customized image which contains an assortment of tools and system packages that are required by this or that build. Switching to a different distro would require a significant amount of testing, which I'd rather avoid. On the other hand I'm well aware that this is on a voluntary base, I don't think that I'll be able to guarantee the degree of availability and free time that would be required in order to take on maintenance of the EL image, so whatever the decision, I'll find a way to cope.


ContainerMetric

I havent actually pushed this to test but curious if this statement in your readme is still true...
Currently we only support LogMessage and ValueMetric events (We will support others soon).
I found ContainerMetric events in the code but just want to verify.
THanks!

@bobbyhubbard we're working on adding the missing message types in #16

Fantastic. Appreciate the update.

Fixed in #16


the issue #1369 is reappearing

Describe the bug
Hello @wsugarman , @jovinson-ms
The issue closed in #1369 is reappearing.
To Reproduce
Steps to reproduce the behavior:

Install VS2022 preview SxS to VS2022 stable
This will install .Net 5, 6.0.302 and 6.0.400 preview as shown in below

Buildng the solution generates the error -
#0 0.509 Could not execute because the application was not found or a compatible .NET SDK is not installed.
#0 0.509 Possible reasons for this include:
#0 0.509   * You intended to execute a .NET program:
#0 0.509       The application 'build' does not exist.
#0 0.509   * You intended to execute a .NET SDK command:
#0 0.509       A compatible installed .NET SDK for global.json version [6.0.302] from [/dicom-server/global.json] was not found.
#0 0.509       Install the [6.0.302] .NET SDK or update [/dicom-server/global.json] with an installed .NET SDK:
#0 0.509         6.0.301 [/usr/share/dotnet/sdk]

Expected behavior
Build should finish successfully
Actual behavior
Build fails with error
#0 0.509 Could not execute because the application was not found or a compatible .NET SDK is not installed.
#0 0.509 Possible reasons for this include:
#0 0.509   * You intended to execute a .NET program:
#0 0.509       The application 'build' does not exist.
#0 0.509   * You intended to execute a .NET SDK command:
#0 0.509       A compatible installed .NET SDK for global.json version [6.0.302] from [/dicom-server/global.json] was not found.
#0 0.509       Install the [6.0.302] .NET SDK or update [/dicom-server/global.json] with an installed .NET SDK:
#0 0.509         6.0.301 [/usr/share/dotnet/sdk]
Your help will be appreciated.

Hello @wsugarman , @jovinson-ms - any thoughts?

Hi @IoTFier, sorry to hear you're running into this. Are you on the main branch? If you are the .NET SDK version specified is 6.0.301: https://github.com/microsoft/dicom-server/blob/main/global.json. Are you building from the command line, or from within Visual Studio? Which solution / project are you building?

If you leave the global.json value at 6.0.301, everything should build fine. The errors you're seeing are related to the Docker build step, where we specify a .NET SDK image: https://github.com/microsoft/dicom-server/blob/c3f1488a7fc9ef89089cd1b8b85b87cbb81a4a3e/src/Microsoft.Health.Dicom.Web/Dockerfile#L16

Doing that results into error as shown below-
Please note - I don't have that vesion of .Net sdk installed on my PC. I started getting this error ever since
.net 6.0.400-preview.22330.6 was installed as a part of VS 2022 preview installation (SxS)
#11 writing image sha256:182619364d7ea10a37e2eec5f1019d2c1b838031c391daa6d13b5483c0a202c9 done
#11 naming to docker.io/library/microsofthealthdicomfunctions 0.0s done
#11 DONE 1.0s
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
docker ps --filter "status=running" --filter "label=com.docker.compose.service" --format {{.ID}};{{.Names}}
docker-compose  -f "D:\Dev\GitHub\Microsoft\dicom-server\docker\docker-compose.yml" -f "D:\Dev\GitHub\Microsoft\dicom-server\docker\docker-compose.https.yml" -f "D:\Dev\GitHub\Microsoft\dicom-server\docker\docker-compose.vs.yml" -f "D:\Dev\GitHub\Microsoft\dicom-server\docker\docker-compose.https.windows.yml" -f "D:\Dev\GitHub\Microsoft\dicom-server\docker\obj\Docker\docker-compose.vs.debug.g.yml" -f "D:\Dev\GitHub\Microsoft\dicom-server\docker\docker-compose.vs.debug.yml" -p healthcare --ansi never up -d --no-build
invalid service "sql". Must specify either image or build
A non-critical error occurred while getting containers ready.  Your project will continue to function normally.  The error was: invalid service "sql". Must specify either image or build
If the error persists, try restarting Docker Desktop.
========== Launching ==========
docker ps --filter "status=running" --filter "label=com.docker.compose.service" --filter "name=^/Microsoft.Health.Dicom.Web$" --format {{.ID}} -n 1
fb176848c274
docker exec -i -e ASPNETCORE_STATICWEBASSETS="/app/bin/x64/Debug/net6.0/Microsoft.Health.Dicom.Web.staticwebassets.runtime.DT.json" -e ASPNETCORE_HTTPS_PORT="8080" fb176848c274 sh -c "cd "/app";  "dotnet"  --additionalProbingPath /root/.nuget/packages --additionalProbingPath /root/.nuget/fallbackpackages --additionalProbingPath /root/.nuget/fallbackpackages2  "/app/bin/x64/Debug/net6.0/Microsoft.Health.Dicom.Web.dll" | tee /dev/console"
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '6.0.7' (x64) was not found.

The following frameworks were found:
6.0.6 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]
You can resolve the problem by installing the specified framework and/or SDK.
The specified framework can be found at:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=6.0.7&arch=x64&rid=alpine.3.14-x64

Hi @IoTFier, I'm seeing a pattern in your approach to building the solution. You've mentioned in this issue and the last issue that you do the following steps:

Install Visual Studio 2022 preview side by side with Visual Studio 2022
Update global.json to match the .NET SDK version you have installed

We are actively developing this project with Visual Studio 2022 - I'm able to successfully build the current main branc using VS 2022 version 17.2.6, with the following .NET SDKs installed:

Side-by-side installation of preview versions of Visual Studio isn't something we support.
You're seeing build output from two different sources:

The non-Docker projects build against the .NET SDK specified in global.json. If you've got a higher stable version installed, you should be able to build.
The Docker projects also use the .NET SDK specified in global.json, but the SDK version is pulled on a .NET SDK image which matches the global.json version. If you change global.json without changing the image, you'll see build failures no matter what SDKs are installed on your machine.

@jovinson-ms , thank you for looking closely at this issue.
In ref to your prev comment, I am not using VS 2022 preview to build dicom-server. Apparently, the docker build process is not working. Please note that my environment has been same all along, so I am not sure what other piece of information could help me bring additional details.
Until the .Net 6.0.400 preview came along with VS 2022 preview, I was updating .Net SDK to the one that was upgrading as VS 2022 stable was getting upgraded. That didn't cause any issue in building with and without docker.

This seems to be something particular to your setup - we haven't encountered this issue when running our documented development setup.
Seems like there's a bad interaction between the preview Visual Studio and preview SDKs - I'll close this issue for now, but feel free to re-open if you run into issues when following the setup above.


Ability to use GraphiQL to connect to AppSync

Is your feature request related to a problem? Please describe.
There are multiple @searchable directives in my project's schema so using amplify mock has many limitations for my local dev.
Describe the solution you'd like
I'd like to be able to launch a local GraphiQL to connect to AppSync instead of using the AppSync console.
Describe alternatives you've considered
Building it myself.

@aireater I am adding this into our backlog. Once this gets prioritized by the product manager we will work on this

I know this is an old issue, but I think the Altair GraphQL client would help here as well. It also supports subscriptions for AppSync

I would love to be able to connect graphiql to appsync so that a public/private appsync endpoint could be hit on a web app by anyone who wanted. Trying to figure out how to do this atm


I cannot sign into my SQL server using Azure Active Directory Auth

Issue Type: Bug
I attempt to refresh credentials, the web page pops up and says that the account was successfully added, then I go to connect to my server and it says failure getting token and to look at the developer tools. When I open the developer tools, there isn't much additional information that is indicating what the problem is.
Azure Data Studio version: azuredatastudio 1.34.0 (83a4316cf89cbf961a0f09a72c861379cfd01fa9, 2021-12-15T20:50:08.229Z)
OS version: Darwin x64 21.2.0
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz (12 x 2600)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
3, 3, 3

Memory (System)
32.00GB (0.26GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (2)

Extension
Author (truncated)
Version

import
Mic
1.5.0

kusto
Mic
0.5.4

@cssuh This seems similar to the other AAD issues we have - could you close this and link to the main tracking issues if so?

duplicate of https://github.com/microsoft/azuredatastudio/issues/14159


HDDS 4337. Implement RocksDB options cache for new datanode DB utilities.

What changes were proposed in this pull request
Use a shared static Options object for every column family in every RocksDB instance on a datanode. This results in one configurable cache being used for all RocksDB instances on a datanode. Each RocksDB instance will have its own DBOptions, since this requires the use of RocksDB Statistics objects which are not thread safe and cannot be shared.
The DBStoreBuilder class was refactored to make configuration easier. It is now possible to use the same configurable column family options for all column families, and it is easier to reason about which configurations will be applied. It is no longer an error to register a table twice with the builder, the second call will simply override the first, which is usually the expected behavior in setters for builders. There should be no other functionality changes to this class.
What is the link to the Apache JIRA
HDDS-4337
How was this patch tested?
DBStoreBuilder unit tests were updated.

If I understand this correctly, in AbstractDatanodeStore.start(), it pulls the default CF options from a static variable where they are setup on first use. This creates a single LRUCache(CACHE_SIZE) which is passed into the the DBStoreBuilder for all container RocksDBs. This means they should share the LRU cache.
Its a little hard to follow the logic to ensure this cache is definitely being reused. Could you create a docker cluster, use Freon to create some containers and then check the RocksDB log files to ensure the same cache instance is being used - There is an example of what to look for to prove this in https://issues.apache.org/jira/browse/HDDS-4246.
I also think the 8MB shared cache is probably too small. Could we add a configuration for it, and make the default higher, maybe 64MB for now? What do you think?

Thanks, @sodonnel , I will add a setting for cache size and test this in a docker cluster. Looking at the rocks docs it appears those LRUCache objects can't be accidentally modified by callers, so I could also expose it as public and add a unit test to check that the same cache is used.


Re-implemented PR #8

Hi Dmitry,
So as mentioned in #8, the merge there, given its age, broke some things.
This commit will cleanly merge with the previous HEAD (https://github.com/dmitryme/erlang_localtime/commit/458cedf2a2377e1dba54bc48d81c41ff45ace2e9).
My suggestion is to revert the merge, effectively removing the previous commit from history by doing the following:
# check out previous HEAD
git checkout 458cedf

# delete the master branch from your local
git branch -D master

# make the current commit the head of the master branch
git checkout -b master

# force-push the current master back to github
git push origin +master

After doing that, this commit I've submitted will merge cleanly.

I see that you've reverted the previously merged commit. Great! This pull request should merge cleanly now without having to clean up inconsistencies.  I ask again if you could merge this please, then I can update qdate to use this repo instead of my fork.
Thanks again!

Hi, Any chance this can be merged?

done

Thank you!


observability of kiota clients

AB#11127

Thanks for logging this one. This is something I had put on ice for a while.
I believe that only the core implementations (serialization, http, auth) need to log things. I don't believe the generated result needs to log anything itself per se. But I'm open to perspectives on this one. And I'd also like @darrelmiller input.
We could also provide a logging middleware with the default http core implementation. But it feels like giving people a gun to shoot themselves in the foot with. This could easily lead to logged tokens, or personal information, logs which could be compromised as we've seen in the past.
I do think we should seriously consider open telemetry

Thanks for this additional precision. Where would you have logging implemented? Abstractions? http? auth? serialization? all of them?
I don't think the logging should be added to what we generate, but only in the "handcrafted" code.

I don't think the logging should be added to what we generate, but only in the "handcrafted" code.
Agreed.

Abstractions - I don't think so.
Http - definitely
Auth - definitely
Serialization - maybe.

spec in progress https://github.com/microsoftgraph/msgraph-sdk-design/pull/72


Update bower moment version

Can you update your bower moment dependency version? Today its 2.15 so i can't use.

It is a caret dependency, which means "any compatible" (minor version). So it currently installing 2.15.1 on npm install


Update toxic.csv

Wipe faulty list, replaced with ~100 new messages taken from Discord. Some 1s some 0s, and a mix of common capitalizations/typos

Nice work! Once we have ~1000 toxic (positive) messages, we'll merge. Make sure to include messages of many lengths as well as insults/toxicity that don't involve profanity.

Placed these messages in the main site already, continued work is being done on another branch.


StoreAPI batching

Is your proposal related to a problem?
Sending responses one-by-one from StoreAPI is not ideal:

Compression suffers because compression is per-message
We have to allocate a lot of small objects hence increased GC pressure

Since each response is small, my proposal is to pack multiple responses into one message.
Describe the solution you'd like
Tunable batch size parameter on the StoreAPI level (request - batch size, response is batched accordingly) and inside of the querier.
Describe alternatives you've considered
N/A
Additional context
N/A

Is the proposal to batch multiple Series in the Series response?
I'm wondering if GRPC under the hood automatically batches multiple SeriesResponse into one TCP request.
message SeriesResponse {
  oneof result {
    repeated Series series = 1; // Batch?
    string warning = 2;
    google.protobuf.Any hints = 3;
  }
}

https://github.com/thanos-io/thanos/blob/b144ebac208fb0eb1171d39e29ffb37e51f589c4/pkg/store/storepb/rpc.proto#L175

It's not about the transport layer but about reducing GC pressure through allocating much fewer storepb.SeriesResponse objects on both sides. Also, it's a prelude to further possible improvements like adding a symbol table. With batch size 1 doing something like that doesn't make sense.


WebView has been removed from React Native.

WebView has been removed from React Native. It can now be installed and imported from 'react-native-webview' instead of 'react-native'. See https://github.com/react-native-community/react-native-webview

node_modules\react-native\Libraries\react-native\react-native-implementation.js:385:8 in Object.defineProperty$argument_2.get
node_modules@fadidev\react-native-fblogin\index.js:119:10 in Facebook#_commander
node_modules@fadidev\react-native-fblogin\index.js:204:11 in Facebook#render

Hello,
Thanks for the update, i know about this but i have no time to update it, i will do it no problem.
Thank you!


fix invalid empty lists in cog.yaml

resolves #368. pls review it, @bfirsh

resolves #368. pls review it, @bfirsh

Nice, thanks! Would you mind writing a test?

Nice, thanks! Would you mind writing a test?

sure, test cog init is enough?

@bfirsh @zeke

Hi @pysqz. Thanks so much for your contribution. I just merged https://github.com/replicate/cog/pull/1073, which specifies an array for type instead of using anyOf.


fix: some hotfixes after merge and refactor some places

Need to fix some places

@RFBomb just made some fixes. Is it still applies to you?

I appreciate the merge and fixes, but I'll be honest, I can't remember what I was doing on this a year ago haha
Pretty sure I published my repo to nuget and just included the dll your repo produces into my nuget package. I'll have to get around to opening that repo back up and seeing the current state.
My usage was rather primitive (I was essentially just wrapping two different dll's to have it automatically choose which one to utilize based on calling framework).


Request for Comment - Changing from GitBook

There's been renewed discussion on drastically improving the overall look and feel of Stroom documentation.
Any ideas for new tools that may be suitable, requirements or enhancements that a new tool may fulfil would be most helpful.

closing as duplicate of #27


[#1764] Added sqlite file type icon

Note: if more file type icons are needed, this would be a good time to add them.

@hyi Can you review this?

@mauriel133 left some comments for your consideration.

@hyi, I've addressed the comments above. Ready for another round of review.

@mauriel133 Looks good. +1. You can merge after Jenkins check passes.


ComputeMatches does not save the matches.f.txt

The file is created but it's always empty. There must be a bug of some sort in ExportPairedIndMatchFile
The other function ExportPairedIndMatchFilePerImage works, instead.

You may need to merge with dev_mikros.
This was fixed in https://github.com/poparteu/openMVG/commit/abf4c47e005f46c6dd21270ca35f8c7a183cabc4


iOS TextInput keyboardappearance-prop doesn't update appearance if keyboard is open

Issue Description
Steps to Reproduce / Code Snippets
Using: https://facebook.github.io/react-native/docs/textinput.html#keyboardappearance
<TextInput keyboardAppearance={this.props.isDark ? 'dark' : 'light'} />
Toggling this.props.isDark true|false doesn't change the keyboard appearance if the keyboard is open. If I close the keyboard and open it again, the appearance has updated.
Expected Results
keyboard appearance should update right away even if it's open.
Additional Information

React Native version: 0.36.0-rc.1
Platform(s) (iOS, Android, or both?): iOS
Operating System (macOS, Linux, or Windows?): macOS

@facebook-github-bot answered

Hi there! This issue is being closed because it has been inactive for a while.
But don't worry, it will live on with Canny! Check out its new home: https://react-native.canny.io/feature-requests/p/ios-textinput-keyboardappearance-prop-doesnt-update-appearance-if-keyboard-is-op


[SPARK-13082][PySpark]Backport the fix of 'read.json(rdd)' in #10559 to branch-1.6

SPARK-13082 actually fixed by  #10559. However, it's a big PR and not backported to 1.6. This PR just backported the fix of 'read.json(rdd)' to branch-1.6.

Test build #50407 has started for PR 10988 at commit e482dc1.

Test build #50407 has finished for PR 10988 at commit e482dc1.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

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

Merged build finished. Test PASSed.

CC @rxin

LGTM

Merging to 1.6


[Bug]: markdown support doesn't seem to be implemented

What happened?
Tried using markdown in the multi_formatter_binary and got an error
Version
Development (host) and target OS/architectures:
Output of bazel --version: `bazel 6.4.0
Version of the Aspect rules, or other relevant rules from your
WORKSPACE or MODULE.bazel file:
Language(s) and/or frameworks involved:
How to reproduce
multi_formatter_binary(
    name = "format",

    markdown = ":prettier"
)

throws
ERROR: <REDACTED>/BUILD:54:23: //:format: no such attribute 'markdown' in 'multi_formatter_binary' rule

Any other information?
The docs clearly state markdown is supported using Prettier but the rule doesn't expose that option

Yeah, this is confusing - we include *.md when running prettier:
https://github.com/aspect-build/rules_lint/blob/main/format/private/format.sh#L92-L96
but you have to use the javascript = ":prettier" setting in multi_formatter_binary to enable that, even if you have no JavaScript.

Fixed by https://github.com/aspect-build/rules_lint/commit/6ea66fb4c7b653f8e061d0997bfb74f965609835


Move edgedb's fixed internal types to a edgedbt schema

Our internal domains are specifically not versioned, so let's start
making that clear by putting them in an unversioned schema.

I could name it something else, but as usually I am struggling with a good name


Publish mlflow-export-import package to PyPI

Time to publish.

This would be great btw - currently any package that depends on mlflow_export_import needs to do so as described in this SO post, which in turn prevents that package from being published to PyPI itself.

Thanks for the great work and this would be great. Is it planned for the near future?


[BUG] arm-gcc memcpy warning

/home/dyarosh/space/eve/test/unit/api/wide/load/logical/load.hpp:199:9:   required from ‘void tts_function112(tts::detail::env&, bool, const tts::options&) [with T = eve::wide<unsigned char>]’
/home/dyarosh/space/eve/test/unit/api/wide/load/logical/load.hpp:112:1:   required from ‘{anonymous}::<lambda(auto:210)> [with auto:210 = tts::detail::box<eve::wide<unsigned char> >]’
_deps/tts-src/include/tts/tts.hpp:37:7:   required from ‘bool tts::detail::for_each_type(Function&&, const tts::detail::typelist<Types ...>&) [with Function = {anonymous}::<lambda(auto:210)>; Types = {eve::wide<double, eve::fixed<2>, eve::arm_128_>, eve::wide<float, eve::fixed<4>, eve::arm_128_>, eve::wide<long int, eve::fixed<2>, eve::arm_128_>, eve::wide<int, eve::fixed<4>, eve::arm_128_>, eve::wide<short int, eve::fixed<8>, eve::arm_128_>, eve::wide<signed char, eve::fixed<16>, eve::arm_128_>, eve::wide<long unsigned int, eve::fixed<2>, eve::arm_128_>, eve::wide<unsigned int, eve::fixed<4>, eve::arm_128_>, eve::wide<short unsigned int, eve::fixed<8>, eve::arm_128_>, eve::wide<unsigned char, eve::fixed<16>, eve::arm_128_>}]’
/home/dyarosh/space/eve/test/unit/api/wide/load/logical/load.hpp:112:1:   required from here
../include/eve/module/real/core/function/regular/generic/load.hpp:100:22: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct eve::logical<unsigned char>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  100 |           std::memcpy( dst + offset, ptr + offset, sizeof(e_t) * cond.count( as_<r_t>{} ) );
      |           ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/eve/arch/logical.hpp:13,
                 from ../include/eve/logical.hpp:13,
                 from ../include/eve/traits/as_arithmetic.hpp:14,
                 from ../include/eve/traits.hpp:14,
                 from ../include/eve/detail/is_native.hpp:16,
                 from ../include/eve/detail/function/simd/common/to_logical.hpp:14,
                 from ../include/eve/detail/function/to_logical.hpp:14,
                 from ../include/eve/detail/overload.hpp:17,
                 from ../include/eve/detail/function/lookup.hpp:14,
                 from ../include/eve/arch/cpu/base.hpp:15,
                 from ../include/eve/arch/cpu/wide.hpp:15,
                 from ../include/eve/arch/wide.hpp:13,
                 from ../include/eve/wide.hpp:14,
                 from ../test/measures.hpp:13,
                 from ../test/test.hpp:15,
                 from tmp-src/unit.api.load/logical.simd.cpp:11:
../include/eve/arch/cpu/logical.hpp:22:31: note: ‘struct eve::logical<unsigned char>’ declared here
   22 |   template<typename T> struct logical

getting storage maybe should do it.

Fix: https://github.com/jfalcou/eve/pull/461

Fix: https://github.com/jfalcou/eve/pull/461


Feedback

Freely describe your questions or issues here.
for features that are very light when doing swaps, adding liquidity, the process is very fast, my great hope is that when global access starts, don't let the speed when processing transactions decrease...

@Whungkul555 Thank you for your testing and we hope to continue delivering high quality features and improvements!


remove 2025 from histogram

Hi Val.
I'll change the code to truncate the graph at the current year.
The bug is triggered by this annotation in pombe-embl/supporting_files/legacy_go_annotations_from_contigs.gaf.tsv:
PomBase    SPBC16C6.06     vps10           GO:0010209      GO_REF:0000024  ISO     SGD:S000000113  F       XXXX    pep1    protein taxon:4896      20251108 PomBase

Looks like the date is a typo: "20251108"

I'll change the code to truncate the graph at the current year.

I've fixed code and updated pombase.org

oops, I will fix that!

fixed date


How to config Identity for SQLite

There are a couple steps to use SQLite with Identity.
@tdykstra  can you provide notes?
@danroth27  can you or @divega  set the priority.
Should this go in in Custom storage providers for ASP.NET Core Identity

@tdykstra  the default for dotnet new webapp -au is  SQLite. Doesn't that mean SQLite works with Identity?

It does work with Identity, but there are (or were when I tried to use it with Identity last January) gotchas that you have to guess and search to find out how to fix. The best place for this information is an introductory tutorial but the only thing I see like that in the TOC is the Learn module https://docs.microsoft.com/en-us/learn/modules/secure-aspnet-core-identity/?view=aspnetcore-3.1

Since the main docs point here, can we get a summary here of the steps to switch from SqlServer to Sqlite? I'm going in circles following the links and not finding a good summary. All I read is "I spent a lot of time to get it working" but no summary of how...

@dagilleland did you figure out how to configure Identity to use SQLite? I am trying to do the same thing and would love to not reinvent the wheel here if it's already known.

Actually I got this working really easily. I didn't realize that if I deleted the auto generated migration and create a new one it would generate for SQLite. It's working perfectly fine with SQLite and .NET Core 5 RC1.

Actually I got this working really easily. I didn't realize that if I deleted the auto generated migration and create a new one it would generate for SQLite. It's working perfectly fine with SQLite and .NET Core 5 RC1.

Yes, True.
I just deleted the Migration folder and then run the following command from NuGet Manager Commend

Install-Package Microsoft.EntityFrameworkCore.Tools
Add-Migration InitialCreate
Update-Database

I hope this helps. Give me a review :-)

The process described does not appear to be generating Sqlite syntax
PM> Add-Migration "Initial" -o Persistence/Data/Migrations
Build started...
Build succeeded.
To undo this action, use Remove-Migration.
PM> update-database
Build started...
Build succeeded.
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
      Failed executing DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE "AspNetRoles" (
          "Id" nvarchar(450) NOT NULL CONSTRAINT "PK_AspNetRoles" PRIMARY KEY,
          "Name" nvarchar(256) NULL,
          "NormalizedName" nvarchar(256) NULL,
          "ConcurrencyStamp" nvarchar(max) NULL
      );
Failed executing DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetRoles" (
    "Id" nvarchar(450) NOT NULL CONSTRAINT "PK_AspNetRoles" PRIMARY KEY,
    "Name" nvarchar(256) NULL,
    "NormalizedName" nvarchar(256) NULL,
    "ConcurrencyStamp" nvarchar(max) NULL
);
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'near "max": syntax error'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
SQLite Error 1: 'near "max": syntax error'.

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlite(
                    Configuration.GetConnectionString("DefaultConnection")));
            services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
                .AddEntityFrameworkStores<ApplicationDbContext>();
            services.AddRazorPages();
            services.AddServerSideBlazor();
            services.AddScoped<AuthenticationStateProvider, RevalidatingIdentityAuthenticationStateProvider<IdentityUser>>();
            services.AddDatabaseDeveloperPageExceptionFilter();
            services.AddSingleton<WeatherForecastService>();
        }

The process described does not appear to be generating Sqlite syntax
PM> Add-Migration "Initial" -o Persistence/Data/Migrations
Build started...
Build succeeded.
To undo this action, use Remove-Migration.
PM> update-database
Build started...
Build succeeded.
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
      Failed executing DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE "AspNetRoles" (
          "Id" nvarchar(450) NOT NULL CONSTRAINT "PK_AspNetRoles" PRIMARY KEY,
          "Name" nvarchar(256) NULL,
          "NormalizedName" nvarchar(256) NULL,
          "ConcurrencyStamp" nvarchar(max) NULL
      );
Failed executing DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetRoles" (
    "Id" nvarchar(450) NOT NULL CONSTRAINT "PK_AspNetRoles" PRIMARY KEY,
    "Name" nvarchar(256) NULL,
    "NormalizedName" nvarchar(256) NULL,
    "ConcurrencyStamp" nvarchar(max) NULL
);
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'near "max": syntax error'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
SQLite Error 1: 'near "max": syntax error'.

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlite(
                    Configuration.GetConnectionString("DefaultConnection")));
            services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
                .AddEntityFrameworkStores<ApplicationDbContext>();
            services.AddRazorPages();
            services.AddServerSideBlazor();
            services.AddScoped<AuthenticationStateProvider, RevalidatingIdentityAuthenticationStateProvider<IdentityUser>>();
            services.AddDatabaseDeveloperPageExceptionFilter();
            services.AddSingleton<WeatherForecastService>();
        }

Change All [MaxLength(...)] to [StringLength(...)]

Having this issue after updating to .NET 8 (same with the packages). My test projects use:
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.6" />
<PackageVersion Include="Microsoft.Data.Sqlite.Core" Version="8.0.6" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.6" />

and now get the error that others are reporting
    fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
      Failed executing DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE "AspNetRoles" (
          "Id" nvarchar(450) NOT NULL CONSTRAINT "PK_AspNetRoles" PRIMARY KEY,
          "Name" nvarchar(256) NULL,
          "NormalizedName" nvarchar(256) NULL,
          "ConcurrencyStamp" nvarchar(max) NULL
      );

In the CreateIdentitySchema class, I replaced all the table.Column<string>(nullable: with table.Column<string>(type: "text", nullable:
This solved the problem for me. The database initialized without errors and I successfully registered a user and used the new credentials to login.


Incorrect Disk Identification

@rix1337 Many of my photo disks get incorrectly identified. They should show up as data disks but are seen as CDs instead resulting in a failed rip. Any way to manual override?

Hi @Ecsport108,
take a look at https://github.com/rix1337/docker-ripper/blob/master/root/ripper/ripper.sh
I am using makemkvcon -r --cache=1 info disc:9999 | grep DRV:0 to get a string ending with DRV:0,2,999,12," which for example hints at a Bluray disk.
Since I don't have access to the disk in question, you need to experiment yourself. Just modify the ripper.sh to your liking :smiley:

There currently is no other way in docker (using native linux tools) to identify disk types properly.

Please go ahead. Am no bash specialist myself, but this should be fairly straightforward.

Closed for inactivity


sync with upstream master

Fixed Type mismatch
Added vector support for Kitkat devices
Use Uri instead of File
Fixed Copyright
Added check for camera intent
Added scoped storage support
Code formatting
Set Environment.DIRECTORY_DCIM as default storage directory
Check runtime camera permission
Set default compression quality as 100
Upgrade uCrop to v2.2.5
Update ktlint to v0.37.0
Added permission check
Added requestLegacyExternalStorage flag
Grant persistable uri permission
Print File Info
Update .gitignore
Fixed NullPointerException
Fixed build failed issue
Move public method on top
Add the arabic translation
Added german translation
Updated gitignore
Added detekt workflow
Fixed lint error
Removed unused string resource
Update ktlint
Applied ktlint code formatting
Removed android synthetic dependency
Fixed camera image capture issue
takePersistableUriPermission from gallery image
Added OPEN_DOCUMENT_TREE package query
gradle wrapper upgrade to v6.9
Update android gradle tools to v4.2.0
Fixed java compatible
Use fragment.requireActivity() instead of fragment.activity!!
Update kotlin to v1.4.0
Fixed java compatible
Applied ktlint code formatting
Fixed java compatible
Fixed java compatible
Fixed lint warning
Applied code formatting
Gradle upgrade
set targetSdkVersion 30 🎯
Removed inline-activity-result-kotlin library
rearrange gradle library
Removed inline-activity-result-kotlin library
Minor code fixes
Updated kotlin sample code
Added Java sample code
Remove storage permission check
Remove storage permission check
Remove storage permission check
Update workflow name
Added java sample activity
Minor code optimization
Removed method to get File object
Removed JCenter plugin
Update LICENSE
Update ChangeLog
Fixed calculateInSampleSize
v2.0 Released
Applied ktlint code formatting
Fixed lint error
Fixed lint error
Updated Build Status
Update strings.xml
Removed requestLegacyExternalStorage field
Removed unused string resources
Added uzbekistan translation
v2.1 Released
Fixed typos (#226)
Added French translation (#221)
Added Brazilian Portuguese translation (#210)
Create strings.xml (#238)
Add "FILE" Provider to directly crop existing file

🚀 Description

📄 Motivation and Context

🧪 How Has This Been Tested?

📷 Screenshots (if appropriate)

📦 Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

✅ Checklist

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Updated master directly


Error when opening from Android Studio 3.1

Can Google engineer update the project to use the latest gradle 3.1.0 and AS 3.1?
It will be removed at the end of 2018

Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'.
It will be removed at the end of 2018

Configuration 'testCompile' is obsolete and has been replaced with 'testImplementation'.
It will be removed at the end of 2018

Configuration 'testApi' is obsolete and has been replaced with 'testImplementation'.
It will be removed at the end of 2018

Configuration 'androidTestCompile' is obsolete and has been replaced with 'androidTestImplementation'.
It will be removed at the end of 2018

This example is broken :(
you have to update some gradle settings to get it to work..

The errors above can be ignored and the project still builds. However, I had additional errors with the build config. I made some changes that did the trick for me:
https://github.com/ben-8409/android-lifecycles/tree/update-dependencies-and-build-gradle


[DNM: NameLookup] ASTScopeLookup default for testing

ASTScopeLookup is on by default to see what breaks

@swift-ci please smoke test os x platform


KBC-2786 Add Manifest generators, updated exporters

JIRA: KBC-2786
What changed:

Move manifest files generators from connection to here
Fix SNFLK S3 exporter path to file must have s3 prefix
add full GCS support into StorageTrait
Add manifest generators optional to each ExportAdapterInterface
Move SNFLK ExportAdapterInterface to SNFLK namespace and change database connection from legacy to DBAL
Ensure that all suites are running Export tests (Synapse was missing this, SNFLK was running against ABS only)

👀

Do psí ř--i já sem to posílal do špatného PR https://github.com/keboola/php-db-import-export/pull/134


bug: native scrolling broken on ios because event.preventDefault() being called on drag gestures by default when inst.options.prevent_default_directions is empty

Type: bug
Platform: ios 8 webview

@perrygovier (and the rest of the team but the commit below is Perry's)
The current nightly build breaks native scrolling in ion-contents when they don't have an ion-list or an ion-scroll wrapping the contents. The view is not scrollable.
To reproduce build a project with the code in this codepen: http://codepen.io/jskrzypek/pen/oXpPmG in this repo: https://github.com/jskrzypek/4008-preventDefault and then follow the instructions on the readme (or below).
I think this commit introduced the bug: https://github.com/driftyco/ionic/commit/56ab0f2b5d7f5bd35ed6252749cfa1867c3b0f6a, it's on line https://github.com/driftyco/ionic/blob/master/js/utils/gestures.js#L1174.
It seems this is more likely what was meant (and fixes the bug):
        // Prevent gestures that are not intended for this event handler from firing subsequent times
-        if (inst.options.prevent_default_directions.length === 0
-           || inst.options.prevent_default_directions.indexOf(ev.direction) != -1) {
+       if (inst.options.prevent_default_directions.length > 0
+           && inst.options.prevent_default_directions.indexOf(ev.direction) != -1) {
           ev.srcEvent.preventDefault();

Greetings @jskrzypek!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

Fix submitted as a PR.

This bug seems to be present on android as well as iOS, which makes sense given that it's coming from the drag gesture code and not from platform-specific code or implementations.
See #4022 for documentation of the issue on Android 4.4 webview

Just tested this on ios and android. Seems to be working fine for me with 1.0.1. Is there any other information you could provide? I can't seem to replicate it.

@mhartington I'll be in the office tomorrow and push up a repo. I'm happy to help you reproduce on Monday.

I'm having trouble replicating the problem. Fixing the code the way I mentioned fixes the bug we see in our app, but I am having trouble recreating the issue in a demonstration app. I will update once I manage that.

Ok I got it. (The problem with replication was happening because of some very strange behaviour when the html template from my pen is in the state passed to $urlRouterProvider.otherwise(). But I'll document to that later. Also I cannot replicate the error on my android device, but it looks like the same thing that is blocking the bug from the $urlRouterProvider might be (incorrectly) preventing the error from happening on android.)
Here is a repo that demonstrates the bug we see: https://github.com/jskrzypek/4008-preventDefault.

Shameless plug side-note: It's built with generator-mcfly our yeoman generator that gives you a pre-wired gulp & browserify build system for angular apps and options to automatically integrate ionic.

Steps to reproduce:

Clone the repo & cd into the directorygit clone https://github.com/jskrzypek/4008-preventDefault#master && cd 4008-preventDefault

Install npm & bower dependenciesnpm install && bower install

Use git to apply a patch to stick some console.log messages on the Drag handlergit apply ionic.js.patch

Use our gulp task to build the distributed code (using browserify)gulp dist

cd into the directory where the ionic project sitscd dist/app/dev

Add platformsionic platform add android ios

Run/build for either platform with ionic run .... Note that I am currently only able to reproduce this bug in ios.
Attach your console (safari developer view for ios or chrome://inspect#devices for android)
In the tab labeled ion-list you should be able to scroll fine via dragging, and should see messages logged by the drag handler from our patch.
Switch to the tab labeled ion-content. On ios you will not be able to scroll via dragging, but messages will be logged to the console showing us that the ev.preventDefault() method is being called on these legitimate drag events.
Click the red heart in the upper-right corner. This will run the drag-handler.js script that swaps out the current version of the handler for the one with my suggested fixes.
Now you can scroll just fine in the ion-content tab and ev.preventDefault() is not being called when it shouldn't be.

@mhartington Just letting you know that the repo is live with the bug replication. The other issue that was blocking it, I'm not really sure how I should start documenting...

For me it is working on android devices, but still not scrolling on ios
http://forum.ionicframework.com/t/overflow-scroll-true-ios-scrolling-not-working/28007

if i change the css

@jskrzypek i checked your repo out and tested it with IOS and i love your red heart but I have no idea what it does. It would fix my Problem.

+1

@Gunbit All that button does is run a script that replaces ionic.Gestures.gestures.Drag.handler with a nearly identical function that has this change in it, the following lines are found here: https://github.com/driftyco/ionic/blob/master/js/utils/gestures.js#L1174-L1175
        // Prevent gestures that are not intended for this event handler from firing subsequent times
-        if (inst.options.prevent_default_directions.length === 0
-           || inst.options.prevent_default_directions.indexOf(ev.direction) != -1) {
+       if (inst.options.prevent_default_directions.length > 0
+           && inst.options.prevent_default_directions.indexOf(ev.direction) != -1) {
           ev.srcEvent.preventDefault();

A workaround to implement this fix would be to add this to your run block:
.run(function() {
    ionic.Gestures.gestures.Drag.handler = function dragGesture(ev, inst) {
        if(ev.srcEvent.type == 'touchstart' || ev.srcEvent.type == 'touchend') {
            this.preventedFirstMove = false;

        } else if(!this.preventedFirstMove && ev.srcEvent.type == 'touchmove') {
            // Prevent gestures that are not intended for this event handler from firing subsequent times
            if(inst.options.prevent_default_directions.length > 0 && inst.options.prevent_default_directions.indexOf(ev.direction) != -1) {
                ev.srcEvent.preventDefault();
            }
            this.preventedFirstMove = true;
        }

        // current gesture isnt drag, but dragged is true
        // this means an other gesture is busy. now call dragend
        if(ionic.Gestures.detection.current.name != this.name && this.triggered) {
            inst.trigger(this.name + 'end', ev);
            this.triggered = false;
            return;
        }

        // max touches
        if(inst.options.drag_max_touches > 0 &&
            ev.touches.length > inst.options.drag_max_touches) {
            return;
        }

        switch(ev.eventType) {
            case ionic.Gestures.EVENT_START:
                this.triggered = false;
                break;

            case ionic.Gestures.EVENT_MOVE:
                // when the distance we moved is too small we skip this gesture
                // or we can be already in dragging
                if(ev.distance < inst.options.drag_min_distance &&
                    ionic.Gestures.detection.current.name != this.name) {
                    return;
                }

                // we are dragging!
                if(ionic.Gestures.detection.current.name != this.name) {
                    ionic.Gestures.detection.current.name = this.name;
                    if(inst.options.correct_for_drag_min_distance) {
                        // When a drag is triggered, set the event center to drag_min_distance pixels from the original event center.
                        // Without this correction, the dragged distance would jumpstart at drag_min_distance pixels instead of at 0.
                        // It might be useful to save the original start point somewhere
                        var factor = Math.abs(inst.options.drag_min_distance / ev.distance);
                        ionic.Gestures.detection.current.startEvent.center.pageX += ev.deltaX * factor;
                        ionic.Gestures.detection.current.startEvent.center.pageY += ev.deltaY * factor;

                        // recalculate event data using new start point
                        ev = ionic.Gestures.detection.extendEventData(ev);
                    }
                }

                // lock drag to axis?
                if(ionic.Gestures.detection.current.lastEvent.drag_locked_to_axis || (inst.options.drag_lock_to_axis && inst.options.drag_lock_min_distance <= ev.distance)) {
                    ev.drag_locked_to_axis = true;
                }
                var last_direction = ionic.Gestures.detection.current.lastEvent.direction;
                if(ev.drag_locked_to_axis && last_direction !== ev.direction) {
                    // keep direction on the axis that the drag gesture started on
                    if(ionic.Gestures.utils.isVertical(last_direction)) {
                        ev.direction = (ev.deltaY < 0) ? ionic.Gestures.DIRECTION_UP : ionic.Gestures.DIRECTION_DOWN;
                    } else {
                        ev.direction = (ev.deltaX < 0) ? ionic.Gestures.DIRECTION_LEFT : ionic.Gestures.DIRECTION_RIGHT;
                    }
                }

                // first time, trigger dragstart event
                if(!this.triggered) {
                    inst.trigger(this.name + 'start', ev);
                    this.triggered = true;
                }

                // trigger normal event
                inst.trigger(this.name, ev);

                // direction event, like dragdown
                inst.trigger(this.name + ev.direction, ev);

                // block the browser events
                if((inst.options.drag_block_vertical && ionic.Gestures.utils.isVertical(ev.direction)) ||
                    (inst.options.drag_block_horizontal && !ionic.Gestures.utils.isVertical(ev.direction))) {
                    ev.preventDefault();
                }
                break;

            case ionic.Gestures.EVENT_END:
                // trigger dragend
                if(this.triggered) {
                    inst.trigger(this.name + 'end', ev);
                }

                this.triggered = false;
                break;
        }
    };
})

@mhartington Any progress on checking this out?

Merged this into our 1.0.2 branch
e10b5d23c9cb3e04c6374574303e55aef6aefee4

@mhartington Awesome, thanks!

@jskrzypek Your fixed have a side effects(ion-fresher can only work once)

@huip can you elaborate what you mean

@jskrzypek I mean if ion-content contains ion-fresher tag, when pull down to refresh item-list,the pull-down events can not work.

I just updated the ionic lib to 1.0.1 and got the same problem on Android. :/
How do I downgrade to ionic 1.0.0 ?

I tested on android v5.0.2 ...i dont know if the problem is because of the version or because I use the pull to refresh function.. any ideas?

@mhartington when is 1.0.2 scheduled for release? I don't understand why this is not fixed sooner, I already released a few apps with version 1.0.0 because 1.0.1 has this huge bug. I have the same problem in every new app I build or update...

@JoeyHoutenbos
clone the repo --> switch to branch 1.0.2 and use the gulp "bundle" task to create an own release

I built a custom release.. if someone needs:
https://github.com/KillerCodeMonkey/ionic/releases/tag/1.0.2_custom

Looking into this.

@JoeyHoutenbos Are you seeing the same issue as @lucasalmeida92 or are you just asking for a 1.0.2 release?

@lucasalmeida92 and @huip I'm not seeing any issues with pull to refresh
https://youtu.be/pxGvC_copOo

@KillerCodeMonkey I know I can do this and will use this. But I think the problem is too big to "just" merge it in the next milestone when we're not sure when this will be released. I want to use native scrolling as this improves the performance a lot!
Implementing a workaround by using native scrolling only for Android or implementing a fix as created by jskrzypek doesn't sound like a good solution. Sure I can make my own build of the 1.0.2 branch, but there might be other problems with this build since it's not released yet..
For that reason I'm using version 1.0.0 in some apps instead of the newer 1.0.1. So @mhartington I am asking (or just interested when the release is scheduled) for a 1.0.2 release to fix the scrolling issues on iOS. I don't have the same problem as lucasalmeida92, for me it's just iOS (in every app so far).

Alright, I thought there was a big issue with the PR in question.

@mhartington i dont know whats is happeing yet but when i have more details ill let u guys know!
Thank u for your support ! ;)
For now ill keep using the 1.0.0 for production.

Sounds good. @JoeyHoutenbos this should be in master now. Feel free to pull from that

This fix allowed me to scroll on iOS8, however there are issues with the scroll momentum. The next touch after a fling is registered as a click and not a 'stop scrolling' event, and the touch areas have not updated meaning that it clicks whatever was in that position when the momentum kicked in.

Do you have an example showing this @mrtomrichy

@mhartington I have made a test project which implemented the fix from above and it suffers from the same issue. You can clone the project from here:
https://github.com/mrtomrichy/Ionic-iOS8-Scroll-Issue
I have also recorded a video of the problem in the simulator, and I have also recreated it on device.
https://vimeo.com/136085384

@mhartington Don't suppose you've had a chance to look into this? After some more playing around I've noticed that scroll callbacks are not fired on inertial scrolling, which I suspect is part of the issue.
Cheers

Will look into this today, could you open a new issue for this @mrtomrichy

This fix is in conflict with a behavior observed on Android 4.4 devices and caused a regression. The issue related is #3695. The === and || of the code section actually were intentionally.
The scrolling issue only occured on iOS right? Maybe there is a need for a platform specific fix.

@MartinMa What's the logic behind that? If the === and || of the code section were intentional as you say then isn't this comment describing the opposite of that behavior?
       // Prevent gestures that are not intended for this event handler from firing subsequent times

Did 1.2.1 resolve any of these issues? PTR with native scrolling received a number of related fixes

I cannot reproduce this. Can someone provide a simple example case that shows the issue in Ionic today? Thanks.

I have a situation with scrolling of list
in the controller i do ( also tried with or without Platform.isIOS Check... did not work
set the code for controller and the template... Please let me know where am I doing it wrong
`$scope.contentScrolling = function(){
if (ionic.Platform.isIOS()) {
$ionicScrollDelegate.$getByHandle('listscroll').resize();
};
};
		<ion-list class="item-previews">

			<ion-item href="#/item-details-phones/{{item.ID}}" class="item-icon-right item-preview" collection-repeat="item in itemsArray | orderBy: 'Name'">

				<ion-option-button class="button-positive" ng-click="showPoints(item)">points</ion-option-button>
				<ion-option-button class="button-balanced" ng-click="showMap(item)">map</ion-option-button>

				{{item.itemType}} item
				Presidential Suite

			</ion-item>

		</ion-list>

	</ion-scroll>`

@mlynch I am on 1.2.4 This still exists. Not able to scroll unless I set jsScrolling to true


"TypeError: Invalid header value." on Cloudflare Pages

Describe the bug
Returns 500 error saying: TypeError: Invalid header value. when trying to authenticate using Google on Cloudflare pages. This is the error message I get:
"message": [
  "%cBetter Auth:error%c ",
  "\n      background: #c0392b;\n      border-radius: 0.5em;\n      color: white;\n      font-weight: bold;\n      padding: 2px 0.5em;\n    ",
  "",
  "TypeError",
  "TypeError: Invalid header value."
],

I tried to deploy the "same" code to Vercel and it worked (of course without the modifications to make it work on the edge, e.g. factory functions for anything that uses environmental variables).
To Reproduce
Steps to reproduce the behavior:

Go to https://www.websitefeedback.ai/signin/
Click on Sign in button
See error

Expected behavior
Should just authenticate.
Desktop (please complete the following information):

OS: Mac OSX
Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36

Additional context
Better-Auth server handler than is mapped to the authentication route:
export const authServerFactory = ({
  DATABASE_URL,
  DATABASE_AUTH_TOKEN,
  GOOGLE_CLIENT_ID,
  GOOGLE_CLIENT_SECRET,
  BETTER_AUTH_URL,
  BETTER_AUTH_SECRET,
}: {
  DATABASE_URL: string;
  BETTER_AUTH_URL: string;
  BETTER_AUTH_SECRET: string;
  DATABASE_AUTH_TOKEN: string;
  GOOGLE_CLIENT_ID: string;
  GOOGLE_CLIENT_SECRET: string;
}) => {
  const db = dbFactory({ DATABASE_URL, DATABASE_AUTH_TOKEN });

  return betterAuth({
    baseURL: BETTER_AUTH_URL,
    secret: BETTER_AUTH_SECRET,
    // trustedOrigins: ['https://www.websitefeedback.ai', 'https://websitefeedback.ai', 'http://localhost:4321'],
    logger: {
      disabled: false,
      verboseLogging: true,
    },
    user: { modelName: 'users' },
    session: {
      modelName: 'sessions',
      cookieCache: {
        enabled: true,
        maxAge: 30 * 24 * 60 * 60, // Cache duration in seconds
      },
    },
    verification: { modelName: 'verifications' },
    account: { modelName: 'accounts' },
    database: drizzleAdapter(db, { provider: 'sqlite' }),
    socialProviders: {
      google: {
        clientId: GOOGLE_CLIENT_ID,
        clientSecret: GOOGLE_CLIENT_SECRET,
      },
    },
  });
};

Not really sure where to look for answers, tried debugging with various configurations without any luck.

what are you using as a web framework?

Locally the initial POST request to/api/auth/sign-in/social?currentURL=http%3A%2F%2Flocalhost%3A3000%2Fsignin return an empty 200 response. This is the endpoint I presume: https://github.com/better-auth/better-auth/blob/main/packages/better-auth/src/api/routes/sign-in.ts#L10
Headers set on Cloudflare look identical to those on the Vercel deployment.

@lassegit I've just tried Google Auth on Cloudflare Pages on "astro": "5.0.0-beta.8" using  "better-auth": "0.9.0-canary.1"
Seems to work now. Can you try with that?

I fix the "Invalid header value" (was due to misconfigured variable in Cloudflare). I get further in the authentication process but still get an error:
ReferenceError: Buffer is not defined

On the URL: api/auth/callback/google?state=REDACTED&code=4%REDACTED&scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+openid&authuser=0&prompt=none.
Most likely because Node's Buffer module is used without importing it with import { Buffer } from 'node:buffer';  (see Cloudflare docs).
I will investigate further.
@Bekacru Does this help?

@lassegit

@avanderbergh Which database are you using?

Cloudflare D1
Here's my config:
import type { Database } from "@/db/types";
import { sendEmail } from "@/email";
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { magicLink } from "better-auth/plugins";
import type { SocialProviders } from "./types";

export const createServerAuth = ({
    db,
    resendKey,
    socialProviders,
}: {
    db: Database;
    resendKey: string;
    socialProviders: SocialProviders;
}) =>
    betterAuth({
        logger: {
            level: "debug",
        },
        account: {
            accountLinking: {
                enabled: true,
            },
        },
        database: drizzleAdapter(db, { provider: "sqlite" }),
        emailAndPassword: {
            enabled: true,
            requireEmailVerification: true,
            sendResetPassword: async ({ user, url }) => {
                await sendEmail({
                    to: user.email,
                    subject: "Reset your password",
                    html: `Click <a href="${url}">here</a> to reset your password.`,
                    resendKey: resendKey,
                });
            },
        },
        emailVerification: {
            sendOnSignUp: true,
            sendVerificationEmail: async ({ user, url }) => {
                await sendEmail({
                    to: user.email,
                    subject: "Verify your email",
                    html: `Click <a href="${url}">here</a> to verify your email.`,
                    resendKey: resendKey,
                });
            },
        },
        socialProviders,
        plugins: [
            magicLink({
                sendMagicLink: async ({ email, url }) => {
                    await sendEmail({
                        to: email,
                        subject: "Sign in to your account",
                        html: `Click <a href="${url}">here</a> to sign in.`,
                        resendKey: resendKey,
                    });
                },
            }),
        ],
    });

Pretty similar to mine. Do you have a Wrangler/Node configuration file for your Astro project (that perhaps sets node_compat mode)?
I have a fork that imports Buffer when its used: https://github.com/lassegit/better-auth (might do a PR).

Pretty similar to mine. Do you have a Wrangler/Node configuration file for your Astro project (that perhaps sets node_compat mode)?
I have a fork that imports Buffer when its used: https://github.com/lassegit/better-auth (might do a PR).
@avanderbergh

@lassegit
Ah yes, I have ‘compatibility_flags = ["nodejs_compat"]‘ set.

@lassegit
here

You can opt into improved Node.js compatibility by using nodejs_compat_v2 instead of nodejs_compat. This provides the functionality of nodejs_compat, but additionally you can import Node.js modules without the node: prefix and use polyfilled Node.js modules and globals that are not available with nodejs_compat.
On September 23, 2024, nodejs_compat will use the improved Node.js compatibility currently enabled with nodejs_compat_v2. This will require updating your compatibility_date to 2024-09-23 or later.

So if your compatibility_date < 2024-09-23, then compatibility_flags = ["nodejs_compat_v2"] should fix the issue for now?

@avanderbergh Thanks. I add a wrangler.toml file (could also been set via Cloudflare dashboard):
name = "my_app"
pages_build_output_dir = "./dist"

compatibility_date = "2024-11-18"
compatibility_flags = [ "nodejs_compat_v2" ]


Question about model size

Hi Gido,
Does this method have a drawback of a too large model size for large label space like ImageNet?

Hi, thanks for you question and interest in the code. The main point of the paper accompanying this code is to put generative classification forward as a promising strategy for class-incremental learning. This strategy of generative classification does not necessarily have the drawback of leading to a too large model size for large label spaces, because the generative models for the different classes can share parts of their networks with each other. It could only be argued that the specific implementation of a generative classifier that was used in this paper as a proof-of-concept, with a separate generative model per class, has this disadvantage. Although in the comparisons in the paper this was controlled for by limiting the total number of parameters. Under a limited parameter budget, having completely separate models per class is the naive solution; by sharing parts of the models it should be possible to do better.

Thanks for your reply : )


Can VirtualBox 6.0 run on Windows 7?

Windows 7 is now unsupported by MS - however I wouldn't be surprised if we see a machine with it show up.
1.4 Supported Host Operating Systems
Currently, Oracle VM VirtualBox runs on the following host OSes:
• Windows hosts (64-bit):
– Windows 7
– Windows 8
– Windows 8.1
– Windows 10 RTM (1507) build 10240
– Windows 10 November Update (1511) build 10586
– Windows 10 Anniversary Update (1607) build 14393
– Windows 10 Creators Update (1703) build 15063
– Windows 10 Fall Creators Update (1709) build 16299
– Windows 10 April 2018 Update (1803) build 17134
– Windows 10 October 2018 Update (1809) build 17763
– Windows Server 2008 R2
– Windows Server 2012
– Windows Server 2012 R2
– Windows Server 2016
– Windows Server 2019
-per https://download.virtualbox.org/virtualbox/6.0.16/UserManual.pdf


Sync main branch to passwordless branch

Sync the main branch to the passwordless branch.

API change check
API changes are not detected in this pull request.

Closing this PR, using rebase instead.

https://github.com/Azure/azure-sdk-for-java/compare/main...feature/spring-cloud-azure-passwordless-connection


v0.2.10 - Gracefully handle "Erroneous state" Kafka error

App was running fluvii==0.2.10
"2022-11-14T14:10:13.930345965+00:00 stderr F ",,
"2022-11-14T14:10:13.930332630+00:00 stderr P : KafkaError{code=_STATE,val=-172,str=""Unable to produce message: Local: Erroneous state""}",,
"2022-11-14T14:10:13.930324320+00:00 stderr P cimpl.KafkaException",,
"2022-11-14T14:10:13.930311558+00:00 stderr F     super(SerializingProducer, self).produce(topic, value, key,",,
"2022-11-14T14:10:13.929698863+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/confluent_kafka/serializing_producer.py"", line 176, in produce",,
"2022-11-14T14:10:13.929698863+00:00 stderr F     self._producer.produce(**produce_dict)",,
"2022-11-14T14:10:13.929640738+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/fluvii/producer/producer.py"", line 137, in produce",,
"2022-11-14T14:10:13.929640738+00:00 stderr F     super().produce(value, key=key, topic=topic, headers=headers, partition=partition, message_passthrough=message_passthrough)",,
"2022-11-14T14:10:13.929566016+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/fluvii/producer/producer.py"", line 186, in produce",,
"2022-11-14T14:10:13.929566016+00:00 stderr F     self.producer.produce(value, message_passthrough=self.message, **producer_kwargs)",,
"2022-11-14T14:10:13.929508168+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/fluvii/transaction/transaction.py"", line 99, in produce",,
"2022-11-14T14:10:13.929508168+00:00 stderr F     transaction.produce(dict(",,
"2022-11-14T14:10:13.929459559+00:00 stderr F   File ""/opt/app-root/src/dept_role_persona_deriver/helper_funcs/helpers.py"", line 35, in produce_message",,
"2022-11-14T14:10:13.929459559+00:00 stderr F     produce_message(transaction, msg)",,
"2022-11-14T14:10:13.929415759+00:00 stderr F   File ""/opt/app-root/src/dept_role_persona_deriver/deriver_app.py"", line 15, in dept_role_persona_deriver_loop",,
"2022-11-14T14:10:13.929415759+00:00 stderr F     self._app_function(self.transaction, *self._app_function_arglist)",,
"2022-11-14T14:10:13.929362491+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/fluvii/fluvii_app/fluvii_app.py"", line 104, in _handle_message",,
"2022-11-14T14:10:13.929362491+00:00 stderr F     self._handle_message(**kwargs)",,
"2022-11-14T14:10:13.929308054+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/fluvii/fluvii_app/fluvii_app.py"", line 120, in _app_batch_run_loop",,
"2022-11-14T14:10:13.929308054+00:00 stderr F     self._app_batch_run_loop(**kwargs)",,
"2022-11-14T14:10:13.929250609+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/fluvii/fluvii_app/fluvii_app.py"", line 130, in _app_batch_run_loop",,
"2022-11-14T14:10:13.929250609+00:00 stderr F     self._app_batch_run_loop(**kwargs)",,
"2022-11-14T14:10:13.929176394+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/fluvii/fluvii_app/fluvii_app.py"", line 152, in _run",,
"2022-11-14T14:10:13.929176394+00:00 stderr F     log_and_raise_error(self.metrics_manager, e)",,
"2022-11-14T14:10:13.929103071+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/fluvii/fluvii_app/fluvii_app.py"", line 158, in _run",,
"2022-11-14T14:10:13.929081098+00:00 stderr F     self._run(**kwargs)",,
"2022-11-14T14:10:13.929007522+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/fluvii/fluvii_app/fluvii_app.py"", line 181, in run",,
"2022-11-14T14:10:13.929007522+00:00 stderr F     super().run()",,
"2022-11-14T14:10:13.928953723+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/nubium_utils/confluent_utils/gtfo/fluvii_extensions/nubium/nubium_app.py"", line 88, in run",,
"2022-11-14T14:10:13.928945141+00:00 stderr F     self._app.run()",,
"2022-11-14T14:10:13.928864971+00:00 stderr F   File ""/opt/app-root/lib64/python3.8/site-packages/nubium_utils/confluent_utils/gtfo/gtfo_app.py"", line 61, in run",,
"2022-11-14T14:10:13.928854467+00:00 stderr F     dept_role_persona_deriver().run()",,
"2022-11-14T14:10:13.928503124+00:00 stderr F   File ""app.py"", line 3, in <module>",,
"2022-11-14T14:10:13.928503124+00:00 stderr F Traceback (most recent call last):",,
"2022-11-14T14:10:13.924633542+00:00 stdout F PID 1 - 2022-11-14 14:10:13,924 - fluvii.fluvii_app.fluvii_app - INFO: Performing graceful teardown of producer and/or consumer...",,
"2022-11-14T14:10:13.924176777+00:00 stdout F PID 1 - 2022-11-14 14:10:13,924 - fluvii.producer.producer - INFO: Adding serializer for producer topic PeopleStream_DataWashingMachine_AddressMsa",,
"2022-11-14T14:10:13.915735619+00:00 stdout F PID 1 - 2022-11-14 14:10:13,915 - fluvii.producer.producer - INFO: Adding schema for topic PeopleStream_DataWashingMachine_AddressMsa",,
"2022-11-14T14:10:13.411524089+00:00 stderr F %4|1668435013.411|GETPID|rdkafka#producer-3| [thrd:main]: Failed to acquire transactional PID from broker TxnCoordinator/0: Broker: Producer attempted to update a transaction while another concurrent operation on the same transaction was ongoing: retrying",,
"2022-11-14T14:10:13.260472107+00:00 stdout F PID 1 - 2022-11-14 14:10:13,260 - fluvii.producer.producer - INFO: Producer initialized successfully!",,
"2022-11-14T14:10:13.100155176+00:00 stdout F PID 1 - 2022-11-14 14:10:13,100 - fluvii.producer.producer - INFO: Initializing producer...",,
"2022-11-14T14:10:13.100068760+00:00 stdout F PID 1 - 2022-11-14 14:10:13,100 - fluvii.transaction.transaction - INFO: Failed to abort transaction: KafkaError{code=_STATE,val=-172,str=""Operation not valid in state BeginCommit""}",,
"2022-11-14T14:10:13.099982720+00:00 stdout F PID 1 - 2022-11-14 14:10:13,099 - fluvii.transaction.transaction - INFO: Aborting transaction.",,
"2022-11-14T14:10:13.099909260+00:00 stdout F PID 1 - 2022-11-14 14:10:13,099 - fluvii.consumer.consumer - INFO: Reversing topic PeopleStream_DataWashingMachine_DeptJobrolePersona partition 8 back to offset 2429011",,
"2022-11-14T14:10:13.099829074+00:00 stdout F PID 1 - 2022-11-14 14:10:13,099 - fluvii.consumer.consumer - INFO: Reversing topic PeopleStream_DataWashingMachine_DeptJobrolePersona partition 10 back to offset 2432274",,
"2022-11-14T14:10:13.099711589+00:00 stdout F PID 1 - 2022-11-14 14:10:13,099 - fluvii.consumer.consumer - INFO: Rolling back consumer state to earliest non-committed offset(s)...",,
"2022-11-14T14:10:13.099667565+00:00 stdout F PID 1 - 2022-11-14 14:10:13,099 - fluvii.fluvii_app.fluvii_app - INFO: App is shutting down...",,
"2022-11-14T14:10:08.094401919+00:00 stdout F PID 1 - 2022-11-14 14:10:08,094 - fluvii.fluvii_app.fluvii_app - ERROR: <class 'cimpl.KafkaException'>, KafkaError{code=_STATE,val=-172,str=""Unable to produce message: Local: Erroneous state""}",,
"2022-11-14T14:10:08.091600889+00:00 stdout F PID 1 - 2022-11-14 14:10:08,091 - fluvii.fluvii_app.fluvii_app - INFO: Graceful transaction failure; retrying commit...",,
"2022-11-14T14:10:08.091549473+00:00 stdout F PID 1 - 2022-11-14 14:10:08,091 - fluvii.transaction.transaction - INFO: KafkaException: is retriable? - True, should abort? - False",,
"2022-11-14T14:10:08.091498570+00:00 stdout F PID 1 - 2022-11-14 14:10:08,091 - fluvii.transaction.transaction - ERROR: <built-in method code of cimpl.KafkaError object at 0x7f1117374430>",,
"2022-11-14T14:10:08.091451467+00:00 stdout F PID 1 - 2022-11-14 14:10:08,091 - fluvii.transaction.transaction - ERROR: KafkaError{code=_TIMED_OUT,val=-185,str=""Failed to flush all outstanding messages within the transaction timeout: 4 message(s) remaining""}",,

It's not super clear from the logs, but this looks like it's in a similar wavelength to issue #26  with apps not recovering from transactional timeouts correctly (which seems to happen when the clients fail to communicate with the brokers, among other things).
A sledge-hammery suggestion was given in #26 , which hopefully will address this too.


Create api for plugins to give deprecation warnings

See original issue on GitLab
In GitLab by [Gitlab user @phildawson] on Jan 7, 2019, 16:55
Background
In the future we are planning on reducing the number of plug-ins in BuildStream core. Before we remove a plug-in, it should go through a period in which it's use displays a deprecation warning to the user. This warning should:

Be individually silencable
Inform the user where the to find the replacement for the deprecated plug-in

Task description

[ ] Provide a way for plug-ins to provide deprecation warnings

In GitLab by [Gitlab user @phildawson] on Jan 11, 2019, 09:58
mentioned in merge request !1057

In GitLab by [Gitlab user @phildawson] on Feb 20, 2019, 12:09
closed via merge request !1057

In GitLab by [Gitlab user @phildawson] on Feb 20, 2019, 12:09
mentioned in commit 4cec3d4a5e77e5bbd4478e06c7e24217980d3519


Improvement/preforked worker cleanup

@goose42 @riteshnoronha
Code cleanup and minor fixes to the preforked worker model
Please review

Squash commits.

lgtm


Improve build failures due to codecov numbers

Expected Behaviour
Actual Behaviour
Reproduce Scenario (including but not limited to)
Steps to Reproduce
Platform and Version
Sample Code that illustrates the problem
Logs taken while reproducing problem

https://docs.codecov.com/docs/commit-status#threshold
@praveek do you mean enabling the threshold flag for CI jobs?


nonwildcard (bind dynamic) apply settings broken.

-If I apply nonwildcard through uci the entry shows up in both LuCi and /etc/config/dhcp option nonwildcard '1' but doesn't have any effect.
-If I then through LuCi uncheck & apply then recheck & apply nonwildcard through LuCi it takes effect.
-If there is no nonwildcard set through uci and I check it in LuCi and apply no entry is added to /etc/config/dhcp.
Something seems borked between LuCi and uci handling nonwildcard settings and actually applying them correctly.
FWIW I'm using DNSMasq full package although I believe that to be unrelated.

According to /etc/init.d/dnsmasq, the nonwildcard option defaults to 1 if unset, LuCI follows this logic. If you tick the checkbox, the option is removed from /etc/config/dhcp. If you untick the checkbox, option nonwildcard 0 is written to /etc/config/dhcp.
If you manually add option nonwildcard 1 and save with LuCI, the option will likely get removed (as it defaults to 1) but it should have no effect.
Testing
Without any option nonwildcard:
root@OpenWrt:~# uci show dhcp.@dnsmasq[0]
dhcp.cfg01411c=dnsmasq
dhcp.cfg01411c.domainneeded='1'
dhcp.cfg01411c.localise_queries='1'
dhcp.cfg01411c.rebind_protection='1'
dhcp.cfg01411c.rebind_localhost='1'
dhcp.cfg01411c.local='/lan/'
dhcp.cfg01411c.domain='lan'
dhcp.cfg01411c.expandhosts='1'
dhcp.cfg01411c.authoritative='1'
dhcp.cfg01411c.readethers='1'
dhcp.cfg01411c.leasefile='/tmp/dhcp.leases'
dhcp.cfg01411c.resolvfile='/tmp/resolv.conf.d/resolv.conf.auto'
dhcp.cfg01411c.localservice='1'
dhcp.cfg01411c.ednspacket_max='1232'
root@OpenWrt:~#

bind-dynamic is enabled:
root@OpenWrt:~# grep bind-dynamic /var/etc/dnsmasq.conf.*
bind-dynamic

With nonwildcard disabled:
root@OpenWrt:~# uci set<EMAIL_ADDRESS>root@OpenWrt:~# uci show dhcp.@dnsmasq[0]
dhcp.cfg01411c=dnsmasq
dhcp.cfg01411c.domainneeded='1'
dhcp.cfg01411c.localise_queries='1'
dhcp.cfg01411c.rebind_protection='1'
dhcp.cfg01411c.rebind_localhost='1'
dhcp.cfg01411c.local='/lan/'
dhcp.cfg01411c.domain='lan'
dhcp.cfg01411c.expandhosts='1'
dhcp.cfg01411c.authoritative='1'
dhcp.cfg01411c.readethers='1'
dhcp.cfg01411c.leasefile='/tmp/dhcp.leases'
dhcp.cfg01411c.resolvfile='/tmp/resolv.conf.d/resolv.conf.auto'
dhcp.cfg01411c.localservice='1'
dhcp.cfg01411c.ednspacket_max='1232'
dhcp.cfg01411c.nonwildcard='0'
root@OpenWrt:~#

bind-dynamic is disabled:
root@OpenWrt:~# /etc/init.d/dnsmasq restart
udhcpc: started, v1.33.1
udhcpc: sending discover
udhcpc: no lease, failing
root@OpenWrt:~# grep bind-dynamic /var/etc/dnsmasq.conf.*
root@OpenWrt:~#

With nonwildcard enabled:
root@OpenWrt:~# uci set<EMAIL_ADDRESS>root@OpenWrt:~# uci show dhcp.@dnsmasq[0]
dhcp.cfg01411c=dnsmasq
dhcp.cfg01411c.domainneeded='1'
dhcp.cfg01411c.localise_queries='1'
dhcp.cfg01411c.rebind_protection='1'
dhcp.cfg01411c.rebind_localhost='1'
dhcp.cfg01411c.local='/lan/'
dhcp.cfg01411c.domain='lan'
dhcp.cfg01411c.expandhosts='1'
dhcp.cfg01411c.authoritative='1'
dhcp.cfg01411c.readethers='1'
dhcp.cfg01411c.leasefile='/tmp/dhcp.leases'
dhcp.cfg01411c.resolvfile='/tmp/resolv.conf.d/resolv.conf.auto'
dhcp.cfg01411c.localservice='1'
dhcp.cfg01411c.ednspacket_max='1232'
dhcp.cfg01411c.nonwildcard='1'
root@OpenWrt:~#

bind-dynamic is enabled:
root@OpenWrt:~# /etc/init.d/dnsmasq restart
udhcpc: started, v1.33.1
udhcpc: sending discover
udhcpc: no lease, failing
root@OpenWrt:~# grep bind-dynamic /var/etc/dnsmasq.conf.*
bind-dynamic
root@OpenWrt:~#

Works for me.

Is it "working"?  I appreciate the default condition is on if there's no entry but with dnsmasq full the only time I have found it has taken effect ( the most critical part ) is cycling the gui from off apply to on apply.

It is working insofar as that the option gets propagated to uci and from there to the generated native dnsmasq configuration. If the dnsmasq restart or config reload is somehow flaky then this is outside of the scope of the LuCI ui.

100% agree. LuCi is doing what it's supposed to and I looked over /etc/init.d/dnsmasq in terms of what it's intent is with the service but there appears to be flakiness at the dnsmasq full package area. It's getting fed the correct settings, it just appears to be temperamental in initially applying them. Thanks for your insight.


Fix duplicating Spotlight::CustomFields

If a CustomField existed but had a label overwritten by the Blacklight
Configuration for the exhibit it would create a new custom field even
though it shouldn't. By comparing against the slug rather than the label it avoids that Blacklight Configuration.
Closes #731

Coverage remained the same at 100.0% when pulling 96737ecfa44465e9892f7e946b4b48fe7483be70 on 731-rendering-slowly into 267880f682e79af5d7789d0d79cafc142e66fd8b on master.