maven uploadArchives is not uploading sources.jar or javadoc.jar but does upload the signed files

I am working on a gradle plugin for my company.   It dynamically creates a uploadArchives closure provided some artifacts that I am wanting uploaded and a gradle extension that defined common company information.  These files are built in a separate process and during the upload process they are needing signed.   After upload I am seeing the following files:
artifact-version-javadoc.asc
artifact-version-javadoc.asc.md5
artifact-version-javadoc.asc.sha1
artifact-version-sources.asc
artifact-version-sources.asc.md5
artifact-version-sources.asc.sha1
artifact-version.pom
artifact-version.pom.asc
artifact-version.pom.asc.md5
artifact-version.pom.asc.sha1
artifact-version.tar
artifact-version.tar.asc
artifact-version.tar.asc.md5
artifact-version.tar.asc.sha1
artifact-version.tar.md5
artifact-version.tar.sha1
As you can see I am missing 6 files:
artifact-version.javadoc.jar
artifact-version.sources.jar
**and the accompanying md5 and sha1 files
Here is the plugin's code that I am using to dynamically create this behavior.
`
final ConfigurationContainer configurations = project.getConfigurations();
def configuration = configurations.create(CONFIGURATION_NAME)
def extension = project.extensions[EXTENSION_NAME]
File buildDirectory = extension.buildDirectory
extension.artifacts.each() { File artifact ->
project.artifacts.add(CONFIGURATION_NAME, artifact,{
name = project.artifactName
classifier = artifact.getClassifier()  //metaClass was added to parse the artifact name to get the classifier
extension = artifact.getExtension(true) //metaClass was added to parse the artifact name to get the extension
})
}
def emptySourceFile = new File(buildDirectory,'source.txt');
def emptySourceJar = new File(buildDirectory,"sources.jar");
emptySourceFile << "Some fun text. ${project.version}"['jar','cf',emptySourceJar,emptySourceFile.getName()].execute(null,buildDirectory).waitForOrKill(1000);
project.artifacts.add(CONFIGURATION_NAME, emptySourceJar, {
classifier = "sources"
type = "sources"
})
def emptyJavadocFile = new File(buildDirectory,'javadoc.txt');
def emptyJavadocJar = new File(buildDirectory,"javadoc.jar");
emptyJavadocFile << "Some fun text. ${project.version}"
['jar','cf',emptyJavadocJar,emptyJavadocFile.getName()].execute(null,buildDirectory).waitForOrKill(1000);
project.artifacts.add(CONFIGURATION_NAME, emptyJavadocJar, {
classifier = "javadoc"
type = "javadoc"
})
project.uploadArchives {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> project.signing.signPom(deployment)}
repository(url: deployRepo) {
authentication(userName: project.ossrhUsername, password: project.ossrhPassword)
}
configuration = project.configurations.getByName(CONFIGURATION_NAME)
  pom.project {
    name project.archivesBaseName
    description project.extensions[EXTENSION_NAME].description
    url project.extensions[EXTENSION_NAME].url
    scm {
      url project.extensions[EXTENSION_NAME].scm.url
      connection project.extensions[EXTENSION_NAME].scm.connection
      developerConnection project.extensions[EXTENSION_NAME].scm.developerConnection
    }
    licenses {
      license {
        name project.extensions[EXTENSION_NAME].license.name
        url project.extensions[EXTENSION_NAME].license.url
      }
    }
    developers {
      developer {
        name project.extensions[EXTENSION_NAME].developer.name
        email project.extensions[EXTENSION_NAME].developer.email
        organization project.extensions[EXTENSION_NAME].developer.organization
        organizationUrl project.extensions[EXTENSION_NAME].developer.organizationUrl
      }
    }
  }
}

}
}
`
In the debug output I see the PUT requests which don't have source.jar or javadoc.jar, but has their signed files.
12:02:13.830 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.tar.asc HTTP/1.1
12:02:51.963 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.tar.asc.sha1 HTTP/1.1
12:02:55.397 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.tar.asc.md5 HTTP/1.1
12:02:58.438 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.pom HTTP/1.1
12:02:58.705 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.pom.sha1 HTTP/1.1
12:02:58.949 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.pom.md5 HTTP/1.1
12:03:01.857 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version-sources.jar.asc HTTP/1.1
12:03:02.200 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version-sources.jar.asc.sha1 HTTP/1.1
12:03:02.444 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version-sources.jar.asc.md5 HTTP/1.1
12:03:02.675 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version-javadoc.jar.asc HTTP/1.1
12:03:02.901 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version-javadoc.jar.asc.sha1 HTTP/1.1
12:03:03.116 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version-javadoc.jar.asc.md5 HTTP/1.1
12:03:03.341 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.tar HTTP/1.1
12:03:03.617 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.tar.sha1 HTTP/1.1
12:03:03.849 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.tar.md5 HTTP/1.1
12:03:04.084 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.pom.asc HTTP/1.1
12:03:04.353 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.pom.asc.sha1 HTTP/1.1
12:03:04.582 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/version/artifact-version.pom.asc.md5 HTTP/1.1
12:03:10.456 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/maven-metadata.xml HTTP/1.1
12:03:11.591 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/maven-metadata.xml.sha1 HTTP/1.1
12:03:11.808 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: PUT /service/local/staging/deploy/maven2/group/artifact/maven-metadata.xml.md5 HTTP/1.1
Expected Behavior
I expect to see all of the files that are defined in my extension, the empty source and javadoc jar files, the signed files, the hash files and the pom file all uploaded to the maven repository.  I also expect to see a PUT statement for sources.jar, sources.jar.md5, sources.jar.sha1, javadoc.jar, javadoc.jar.md5, and javadoc.jar.sha1
Current Behavior
Missing sources.jar and javadoc.jar files that were added to the artifacts list of the configuration.
Context
I cannot publish my artifact without sources.jar and javadoc.jar
These are things needed for oss.sonatype to publish to maven central
Steps to Reproduce (for bugs)
Submitted code above.   With that in a Project class I can run "gradle build.gradle uploadArchives"
Your Environment
gradle --version

Gradle 4.0.2
Build time:   2017-07-26 15:04:56 UTC
Revision:     108c593aa7b43852f39045337ee84ee1d87c87fd
Groovy:       2.4.11
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.7.0 (IBM Corporation 2.7)
OS:           Linux 3.10.0-693.2.2.el7.x86_64 amd64

The uploadArchives task only uploads what's in the archives configuration. You are adding your source/javadoc to a different configuration though.

@oehme I did tell uploadArchives to use the configuration that I created.
configuration = project.configurations.getByName(CONFIGURATION_NAME)
That can be seen by all of the other files being uploaded.

@oehme.  I did not mention that I have a list of files that I am uploading with different classifiers and have put those files in artifacts under my defined configuration.
artifact.version.linux-x86_64.extension
...all of the signed files and md5 and sha1 of those
artifact.version.windows64.extension
...all of the signed files and md5 and sha1 of those
...classifier = arm64
...classifier = ...and so on and so on
Those files are found in maven with no issues.  The only files that I have added to my defined configuration and are not in maven are sources.jar and javadoc.jar.  Even though the signed files are there.

@oehme please reopen this.

Please provide a reproducible example project as a zip or as a project on GitHub, the code above is incomplete.


Crash at launch - Internal Error !

crashreport.txt
MC : 1.19.3
QL : 0.18.2

This should be fixed in quilt loader beta 0.18.3-pre.1, can you try updating to that version?

crash-2023-02-26_00.15.19-client.txt
I tried again and it crashes again

It looks like Vinery hasn't been updated to 1.19.3 yet, and you've got an outdated version of Magic Combat Wands - try downloading 1.0.4 instead? (https://www.curseforge.com/minecraft/mc-mods/magic-combat-wands/files/4401017).

Yes it works, but there is a bug I think :
I launched my game in the default directory. But, when I launched it, it took mods that are in another directory, in my mods file. It has never done that before...
Because Vinery & Magic Combat Wands are in a forge directory in 1.19.2.
/modpack/mods
↓                     ↓
Default            Forge
Directory       Directory

That's a new feature in loader 0.18.1 - loading from sub-folders. This is mostly useful for organizing a lot of mods, but it can be disabled by changing the option load_sub_folders to false in config/quilt-loader.txt.

Ok thanks !


Hugo build error when running fresh site locally

Hugo version: hugo v0.91.2+extended darwin/amd64 BuildDate=unknown
OS version: macOS 11.6.2
Golang/Hugo installed with: Homebrew
I set up a new site on Netlify using the Academic Blog theme. Then I cloned the git repo the flow had created and attempted to run Hugo locally. But I got the errors below. It looks like this is due to changes in the security settings of Hugo 0.91.0. Do some changes need to be made to the template to account for this?
15:29:06 <~/P/my-blog-wowchemy> (main=) npm run start

><EMAIL_ADDRESS>start
> hugo server --disableFastRender

Start building sites …
hugo v0.91.2+extended darwin/amd64 BuildDate=unknown
ERROR 2021/12/30 15:31:34 render of "section" failed: execute of template failed: template: section/post.html:5:3: executing "section/post.html" at <partial "site_head" .>: error calling partial: "/var/folders/dx/148f12hn7fn_041wb5d_46980000gn/T/hugo_cache/modules/filecache/modules/pkg/mod/github.com/wowchemy/wowchemy-hugo-modules/wowchemy/v5@v5.0.0-20211017222640-7201a4fa8c44/layouts/partials/site_head.html:208:13": execute of template failed: template: partials/site_head.html:208:13: executing "partials/site_head.html" at <getenv "WC_POST_CSS">: error calling getenv: access denied: "WC_POST_CSS" is not whitelisted in policy "security.funcs.getenv"; the current security configuration is:

[security]
  enableInlineShortcodes = false
  [security.exec]
    allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$']
    osEnv = ['(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$']

  [security.funcs]
    getenv = ['^HUGO_']

  [security.http]
    methods = ['(?i)GET|POST']
    urls = ['.*']

ERROR 2021/12/30 15:31:34 render of "page" failed: execute of template failed: template: _default/single.html:5:3: executing "_default/single.html" at <partial "site_head" .>: error calling partial: "/var/folders/dx/148f12hn7fn_041wb5d_46980000gn/T/hugo_cache/modules/filecache/modules/pkg/mod/github.com/wowchemy/wowchemy-hugo-modules/wowchemy/v5@v5.0.0-20211017222640-7201a4fa8c44/layouts/partials/site_head.html:208:13": execute of template failed: template: partials/site_head.html:208:13: executing "partials/site_head.html" at <getenv "WC_POST_CSS">: error calling getenv: access denied: "WC_POST_CSS" is not whitelisted in policy "security.funcs.getenv"; the current security configuration is:

[security]
  enableInlineShortcodes = false
  [security.exec]
    allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$']
    osEnv = ['(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$']

  [security.funcs]
    getenv = ['^HUGO_']

  [security.http]
    methods = ['(?i)GET|POST']
    urls = ['.*']

ERROR 2021/12/30 15:31:34 render of "page" failed: execute of template failed: template: widget_page/single.html:5:3: executing "widget_page/single.html" at <partial "site_head" .>: error calling partial: "/var/folders/dx/148f12hn7fn_041wb5d_46980000gn/T/hugo_cache/modules/filecache/modules/pkg/mod/github.com/wowchemy/wowchemy-hugo-modules/wowchemy/v5@v5.0.0-20211017222640-7201a4fa8c44/layouts/partials/site_head.html:208:13": execute of template failed: template: partials/site_head.html:208:13: executing "partials/site_head.html" at <getenv "WC_POST_CSS">: error calling getenv: access denied: "WC_POST_CSS" is not whitelisted in policy "security.funcs.getenv"; the current security configuration is:

[security]
  enableInlineShortcodes = false
  [security.exec]
    allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$']
    osEnv = ['(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$']

  [security.funcs]
    getenv = ['^HUGO_']

  [security.http]
    methods = ['(?i)GET|POST']
    urls = ['.*']

ERROR 2021/12/30 15:31:34 render of "taxonomy" failed: execute of template failed: template: _default/list.html:5:3: executing "_default/list.html" at <partial "site_head" .>: error calling partial: "/var/folders/dx/148f12hn7fn_041wb5d_46980000gn/T/hugo_cache/modules/filecache/modules/pkg/mod/github.com/wowchemy/wowchemy-hugo-modules/wowchemy/v5@v5.0.0-20211017222640-7201a4fa8c44/layouts/partials/site_head.html:208:13": execute of template failed: template: partials/site_head.html:208:13: executing "partials/site_head.html" at <getenv "WC_POST_CSS">: error calling getenv: access denied: "WC_POST_CSS" is not whitelisted in policy "security.funcs.getenv"; the current security configuration is:

[security]
  enableInlineShortcodes = false
  [security.exec]
    allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$']
    osEnv = ['(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$']

  [security.funcs]
    getenv = ['^HUGO_']

  [security.http]
    methods = ['(?i)GET|POST']
    urls = ['.*']

Error: Error building site: failed to render pages: render of "page" failed: execute of template failed: template: _default/single.html:5:3: executing "_default/single.html" at <partial "site_head" .>: error calling partial: "/var/folders/dx/148f12hn7fn_041wb5d_46980000gn/T/hugo_cache/modules/filecache/modules/pkg/mod/github.com/wowchemy/wowchemy-hugo-modules/wowchemy/v5@v5.0.0-20211017222640-7201a4fa8c44/layouts/partials/site_head.html:208:13": execute of template failed: template: partials/site_head.html:208:13: executing "partials/site_head.html" at <getenv "WC_POST_CSS">: error calling getenv: access denied: "WC_POST_CSS" is not whitelisted in policy "security.funcs.getenv"; the current security configuration is:

[security]
  enableInlineShortcodes = false
  [security.exec]
    allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$']
    osEnv = ['(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$']

  [security.funcs]
    getenv = ['^HUGO_']

  [security.http]
    methods = ['(?i)GET|POST']
    urls = ['.*']

Built in 350 ms

Adding this to /config/_default/config.yaml file solves the problem:
security:
  funcs:
    getenv:
      - ^HUGO_
      - WC_POST_CSS

Duplicate of #2559


Update pulumi/pkg and pulumi/sdk dependencies to v3.109.0

To take full advantage of https://github.com/pulumi/pulumi/pull/15526 this codebase need to depend on a later version of pulumi/pkg. Should be hopefully a routine dependency update.

Something a tad fishy in https://github.com/pulumi/pulumi-aws/issues/3595

It appears that the codebase attempts to pin AWS to 5.35.0 but during some of the tests aws-6.25.0 gets installed anyway, which may be a change coming from the upgrade?
warning: using pulumi-language-yaml from $PATH at /home/runner/work/pulumi-yaml/pulumi-yaml/bin/pulumi-language-yaml
[resource plugin aws-native-0.98.0] installing
[resource plugin aws-6.25.0] installing

Ah looks like because of pulumi/pulumi#15568 there is a problem now with the auto-pin behavior this repository depended on. Since the new ProgramTest creates a separate sandbox for the test, TestExampleWebserver now starts auto-upgrading aws to 6.x with this change which hits the regression listed above.

** TODO FAIL: TestExampleAwsStaticWebsite (12.16s)

[[file:~/code/pulumi-yaml/pkg/tests/example_test.go::func TestExampleAwsStaticWebsite(t *testing.T) {][Test]]

Error: websiteURL does not exist on site-bucket

  on Pulumi.yaml line 6:

   6:     websiteUrl: ${site-bucket.websiteURL}

Existing properties are: websiteUrl, bucketName, domainName, id, tags and 22 others

Similarly caused by inadvertent AWS upgrade to 6.x

The TestExampleAwsx failure similarly caused by a schema change, which might have been called out in the major version rel notes...
Previewing update (p-it-antons-mac-awsx-farga-bfb0d9b9):
[resource plugin awsx-2.5.0] installing
@ previewing update....[resource plugin aws-6.25.0] installing

+ pulumi:pulumi:Stack: (create)
    [urn=urn:pulumi:p-it-antons-mac-awsx-farga-bfb0d9b9::awsx::pulumi:pulumi:Stack::awsx-p-it-antons-mac-awsx-farga-bfb0d9b9]
@ previewing update....
Downloading provider: aws

@ previewing update.....
Error: awsx:ecs:FargateService is not assignable from {cluster: string, taskDefinitionArgs: {container: {cpu: number, image: string, memory: number, portMappings: List<{containerPort: number, targetGroup: aws:lb/targetGroup:TargetGroup}>}}}

  on Pulumi.yaml line 14:

  14:                 container:

  15:                     cpu: 512

  16:                     image: nginx:latest

  17:                     memory: 128

  18:                     portMappings:

  19:                         - containerPort: 80

  20:                           targetGroup: ${lb.defaultTargetGroup}

Cannot assign '{cluster: string, taskDefinitionArgs: {container: {cpu: number, image: string, memory: number, portMappings: List<{containerPort: number, targetGroup: aws:lb/targetGroup:TargetGroup}>}}}' to 'awsx:ecs:FargateService':

  taskDefinitionArgs: Cannot assign '{container: {cpu: number, image: string, memory: number, portMappings: List<{containerPort: number, targetGroup: aws:lb/targetGroup:TargetGroup}>}}' to 'awsx:ecs:FargateServiceTaskDefinition':

    container: Cannot assign '{cpu: number, image: string, memory: number, portMappings: List<{containerPort: number, targetGroup: aws:lb/targetGroup:TargetGroup}>}' to 'awsx:ecs:TaskDefinitionContainerDefinition':

      name: Missing required property 'name'

Resources:
    + 1 to create

Per conversation with @Frassle looking into pinning provider versions in each individual test using this method from https://www.pulumi.com/docs/languages-sdks/yaml/yaml-language-reference/
resources:
  something:
    type: aws:s3:Bucket
    properties:
      ...
    options:
      version: 5.6.0

One more problem here, reusing PulumiPulumiProgramTests from pkg/codegen/testing/test is no longer working since
https://github.com/pulumi/pulumi/pull/15549 because it generates relative links that no longer resolve.


[maintenance] Upgrade Gatsby JS ecosystem packages in Paragon

Ensure Gatsby packages are upgraded to latest.
===
We recently added support via @edx/frontend-build (v12.6.0) for MFEs to use @custom-media queries to support using CSS variables in media queries.
It's unclear if there is a similar change required to ensure @custom-media is supported in Paragon's Gatsby documentation website.
For example, will we need to add the postcss-custom-media plugin to gatsby-node.js and/or gatsby-config.js to add support for @custom-media?
### Acceptance Criteria
- [ ] Ensure the Paragon documentation website supports `@custom-media`.
- [ ] Upgrade Gatsby-related packages through Paragon.

PR (DRAFT): https://github.com/openedx/paragon/pull/2767


Feature/add spm

Added spm support

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: br-amanda-chappell:x: achappellYou have signed the CLA already but the status is still pending? Let us recheck it.

This looks like it should be good to go, but we'll want to get the Travis-CI build passing. Maybe we should look into updating our .travis.yml to use one of the more recent versions of Xcode?


Inconsistent gitea behaviors and definition about config SERVE_DIRECT

Gitea version (or commit ref): gitea docker latest

Git version: git version 2.30.1

Operating system: ubuntu18.04

Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No

Log gist:

Description

I try the config field 'SERVE_DIRECT' which mentioned in gitea doc as  Allows the storage driver to redirect to authenticated URLs to serve files directly. Currently, only Minio/S3 is supported via signed URLs, local does nothing.
My config related is below:
[lfs]
STORAGE_TYPE    = my_minio

[storage.my_minio]
STORAGE_TYPE            = minio
SERVE_DIRECT            = true
MINIO_ENDPOINT          = ***:9000
MINIO_ACCESS_KEY_ID     = ***
MINIO_SECRET_ACCESS_KEY = ***
MINIO_BUCKET            = test
MINIO_LOCATION          = us-east-1
MINIO_USE_SSL           = false

However, I found nothing changes when I open this config. All lfs actions including add/download/clone are also add the I/O NET of gitea container.
My docker stats i/o summary is blow:
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
08f9524c06a9        test_gitea_1        0.01%               109.7MiB / 3.842GiB   2.79%               4.37GB / 4.36GB     91.2MB / 85.1MB     16
ab7d361bc42c        test_giteadb_1      0.03%               74.61MiB / 3.842GiB   1.90%               822kB / 2.25MB      24.7MB / 246kB      8
8b55a751fc54        blissful_taussig    0.01%               70.05MiB / 3.842GiB   1.78%               3.23GB / 4.37GB     1.9GB / 2.55GB      11

Is my understanding of  'SERVE_DIRECT' config wrong? Or it is impossibe that my lfs file upload/download request can be served by minio directly with currently version gitea.
Thanks for any related answers or suggestions.
Screenshots

I have checked that avatars/attahcments/archives have support that, but we may never support it for LFS.

Thanks for your reply.
It's consistent with my experiment result.
By the way, why didn't gitea implement with it? Is there some security tricks in it?
I found github use this option so that uploading a lfs object will be redirected to a s3 link.
Thanks for your reply again.

The s3 or minio will create a secret link for the download objects and the link will be expired about some days defaultly.

I got it. I want to implement this task and contribute to gitea.
I found the archive doing that by allocating a url by PresignedGetObject.
I try to add codes when lfs info link: info/lfs/objects/{oid} handler DownloadHandler and it work.
I think I need to add some codes about PresignedPutObject url at the upload handler.
Or I need to add some verify logic in BatchHandler like download action which was often verified in UploadHandler.
By the way, should I add this feature in lfs file downloading on the web page?

Before you do that, do you know if git client or lfs will follow the redirection URL?

I found I have a mistake in the previous response.
It should be "I try to add codes in the BatchHandler and return a response including download action href of s3 object and it work."

When I implemented the redirection logic in the download handler, it download directly from my S3 URL.

And In the upload phase, I prefer to choose make it following the download phase -- just return the PresignedPutObject url in the BatchHandler. Github does this.

Upload could be another PR, all of avatars/archives/attahcments need the feature.

The upload may be tricky because currently we verify the size and hash of the uploaded data with the LFS metadata.

I have some questions about currently upload workflow.

Is it necessary to verify the hash of file user upload if user upload directly to s3?
I read all functions of minio sdk. There is no method getting the sha256 (md5 is possible)of file. So, if we want to verify the sha256 hash, it is neceassary that download file from minio.

If solve the hash verify question, is it possible that create lfs meta object in the verify handler when verify ok  with  object information getting from minio/s3?

Yes, it is necessary to verify the upload. If you download the file again (when would you do that? you don't know when the upload is finished) you have won nothing.
Here is why it's possible in Github:

"upload": {
  "href": "https://github-cloud.s3.amazonaws.com/alambic/media/325942445/fb/8f/fb8f7d8435968c4f82a726a92395be4d16f2f63116caf36c8ad35c60831ab042?actor_id=1666336&key_id=0&repo_id=330759100",
  "header": {
    "Authorization": "AWS4-HMAC-SHA256 Credential=xxxxxxxxx/20210820/us-east-1/s3/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date,Signature=ad139477146c04b7b512ee9118093a63729cd2a6377a010279a8ecb03b55deab",
    "x-amz-content-sha256": "fb8f7d8435968c4f82a726a92395be4d16f2f63116caf36c8ad35c60831ab042",
    "x-amz-date": "20210820T134935Z"
  },
  "expires_at": "2021-08-20T14:04:35Z",
  "expires_in": 900
}

The client must provide the x-amz-content-sha256 with the hash of the file and S3 checks against this. For min.io there is content-md5 but you don't know the md5 hash of the file.

Verify is optional and may not be called at all.

Thanks for your great answer.
As your answer says, we can't add more necessary actions in verify handler because it may not be called.
On my opinion, is it the only choice that depending on the content header of s3 presigned url to verify the file user upload like github?
And if so, can we add metadata in the batch handler and make other verify work done by s3.
I will read more aws s3 docs for some details about the x-amz-content-sha256.
I can't ensure my thought true, and I am not good at English.
If I am wrong in words and thought, please make me know it. Thanks for your detailed reply again.

I think this has been resolved via the title. For upload things, we can open another issue.


Added option in Settings to download video thumbnails

Currently, this is set to utilize the --write-all-thumbnails option if this newly-added user setting is enabled.
There are other thumbnail options that can be used per the docs for additional functionality later if desired.

Thanks so much for your contribution! I noticed that thumbnails don’t seem to be downloading on my end. Have you experienced this issue in your tests?

Hey there! Thanks for taking a look. So, egg on my face, but I'm feeling quite confident I've missed something here. I'm new to the Python/Qt ecosystem, and I'm just now seeing the following when I run python main.py in my terminal, then try to go to Settings in the app:
Traceback (most recent call last):
  File "C:\code\GithubRepos\yt-channel-downloader\classes\mainwindow.py", line 438, in show_settings_dialog
    settings_dialog = SettingsDialog()
  File "C:\code\GithubRepos\yt-channel-downloader\classes\settings.py", line 64, in __init__
    self.populate_ui_from_settings()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "C:\code\GithubRepos\yt-channel-downloader\classes\settings.py", line 103, in populate_ui_from_settings
    self.ui.check_download_thumbnails.setChecked(user_settings.get('download_thumbnails'))
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: setChecked(self, a0: bool): argument 1 has unexpected type 'NoneType'

My approach with this PR was more or less to mimic the audio_only checkbox setup. In settings.py, I noticed the toggle_video_fields function that sets dropdowns accordingly, but I've perhaps wrongly assumed how checkboxes work. I did try a little setup in settings.py as such, but it seems redundant per what I've gleaned thus far from how the audio_only checkbox works:
self.ui.check_download_thumbnails.stateChanged.connect(self.toggle_thumbnail_checkbox)

def toggle_thumbnail_checkbox(self):
    is_checked = self.ui.check_download_thumbnails.isChecked()
    self.settings_manager.settings['download_thumbnails'] = is_checked

Curious if you have any ideas at this point! I'll keep whittling away at the bug over here in the meantime and see if I can't get it sorted. Thanks for your time!

Alright, I managed to get the setting working now by suppressing the error via wrapping that line in a try/except:
        try:
            self.ui.check_download_thumbnails.setChecked(user_settings.get('download_thumbnails'))
        except TypeError:
            pass

But, indeed, the thumbnails are not downloading! Let me keep chewing on this PR a bit and get this sorted.

@hyperfield Alright, I got it sorted and pushed an update. =) I guess writeallthumbnails doesn't work as I expected, so I changed it to instead use writethumbnail, which pulls the one max resolution thumbnail for a video. I don't feel particularly great about having to use that try/except, but nothing seems to be acting buggy now. I've tested multiple videos with the setting toggled and untoggled -- all worked swimmingly. Of course, feel free to reject this if it isn't worthwhile functionality to add in your opinion!


tighten rule pre-selection

closes #2074
ref #2063, particularly "tighten rule pre-selection" and "lots of time spent in instancecheck"
Stacked on #1950, so I've marked this as a PR onto that branch so the diff is sensible. I think we can probably rebase onto master, though, if necessary.

This PR implements the "tighten rule pre-selection" algorithm described here: https://github.com/mandiant/capa/issues/2063#issuecomment-2100498720 . In summary:

Rather than indexing all features from all rules, we should pick and index the minimal set (ideally, one) of features from each rule that must be present for the rule to match. When we have multiple candidates, pick the feature that is probably most uncommon and therefore "selective".

This seems to work pretty well. Total evaluations when running against mimikatz drop from 19M to 815K (wow!) and capa seems to match around 4x more functions per second (wow wow). I did not expect such a good result - in fact, although the capa matches seem the be the same, I still wonder if something is broken 🤔. More tests needed.
TODO:

[ ] add some tests for the feature indexer, if only to show a human how it works
[ ] wall clock performance numbers
[ ] inline documentation explaining the algorithm better
[ ] prove that it matches exactly the same as before, just faster

Checklist

[ ] No CHANGELOG update needed

[ ] No new tests needed

[ ] No documentation update needed

Opened the PR here so the code is no longer sitting on my laptop and at risk of getting lost due to hardware failure.

I plan to run this implementation side by side with the ceng.match implementation and assert the results are precisely the same across a wide range of samples. There should be no leaks of abstraction or details in the new one, it should just be faster.

when run against mimikatz in "paranoid" mode (compare new matcher with naive matcher and ensure they match verbatim), the new matcher works correctly. we can run this against a larger corpus of files, though this verification takes about 10x longer than normal, so maybe do this overnight shortly before merge.

when run against mimikatz in "paranoid" mode (compare new matcher with naive matcher and ensure they match verbatim), the new matcher works correctly. we can run this against a larger corpus of files, though this verification takes about 10x longer than normal, so maybe do this overnight shortly before merge.

awesome! sounds good to let this run against many test files overnight

Should we rebase this on top of master so that it doesn't depend on BinExport2?

thorough linting in paranoid mode running overnight...

Should we rebase this on top of master so that it doesn't depend on BinExport2?
I'm inclined to say "yes" although we lose the intermediate history. This would allow us to do a minor release and get the optimizations out there.

Yes let's rebase on master so we can get this to our users ASAP

paranoid linting succeeded!
❯ time python scripts/lint.py rules/ --thorough
INFO:lint:collecting potentially referenced samples

encrypt data using RC4 via SystemFunction033
FAIL: referenced example doesn't exist: Add the referenced example to samples directory ($capa-root/tests/data or supplied via --samples)

(nursery)  linked against hp-socket
WARN: referenced example doesn't exist: Add the referenced example to samples directory ($capa-root/tests/data or supplied via --samples)                                                                                rules with WARN:                                                                                - linked against hp-socket

rules with FAIL:
  - encrypt data using RC4 via SystemFunction033

________________________________________________________
Executed in  125.20 mins    fish           external
   usr time  124.04 mins   66.00 micros  124.04 mins
   sys time    0.98 mins  898.00 micros    0.98 mins

Took 125 minutes (two hours) for paranoid, 43 minutes for optimized.

awesome, big performance improvement!

new PR that's rebased against master: #2125


(Bug) Exporting power values of 2

Describe the bug
Even if the display on the Google sheet is not precise, the export of power values of 2 are correct until 2^54 and become false after that point.
To Reproduce
Steps to reproduce the behavior:

List index from 0 to 63 on one column (called IndexCell)
Create the formula "=Formula(2, IndexCell)"
Export or Visualize data
See error on index 55

Expected behavior
Power values of 2 should be correct until 2^63.
Screenshots

Interesting. ESD should be pulling the value straight from the sheet and I thought that E notation would translate as well. I wonder if this is a sheet data retrieval issue, a JavaScript number issue, or something else. I'll look into this. Good catch!

After running a few tests, I think this is a rounding issue with sheets. I duplicated your steps and got the same value. I manually entered values as well to be sure, but got the same result. Based on your screenshot and some other tests I ran, the expected value there is<PHONE_NUMBER>8964000 instead of<PHONE_NUMBER>8963970 correct?
I ran the exponential number through some E notation calculators to double check my work and despite some rounding weirdness it seemed like the<PHONE_NUMBER>8964000 value was the more standard result. I'm not sure if the Sheets POWER function is rounding more precisely or if it has a rounding error, but either way this seems to be related to Sheets, not ESD interpreting the value incorrectly. As such, I'm not really sure what can be done here unfortunately.

Sorry for the late reply!
Actually the expected value of 2^55 is<PHONE_NUMBER>8963968 (compute with this calculator).
The google sheet is starting rounding values from 2^50 however ESD still is correct until 2^54.

Based on that difference, the issue may comes from the javascript code itself.
This hypothesis seems to be confirmed by trying to compute power of 2 on this console, it was possible to reproduce the issue on 2^55.

After quick search I find this post which is interesting but without any solution

Now I'm the one with the late reply!
It's interesting that the JavaScript code itself is what causes the imprecision, but considering that it uses floating point numbers that's not too surprising at large numbers like 2^55. That does reinforce my concern that I can't really do much about it since ESD can only pull data from Sheets as is. The solution here seems to be writing a high precision calculator to evaluate function expressions instead of pulling in reported values from Sheets directly... Which is a bit of a lift.
Unfortunately, that means this is probably an issue that I can't fix, or at least would not get around to for quite some time since building a calculator is outside the scope of ESD's functionality. I'm going to close this issue for now but if a good solution is found later I'll reopen it and see what I can do.


Show vaccination chart when vaccine data is stale

The logic for vaccine charts is different than other metrics -- update the logic similar to #7449 so that the historical data is still shown

#7525
The issue here was not the chart logic, but how we piped the API vaccination data into our main Projection class


Add in-line documentation for files under semantic-kernel/template_engine

Closing so we can create new issues for docs later


Ability to see rawClass in InstanceOfAssertFactory

Feature summary
I am author of JsonUnit. I would like to support InstaceOfAssertFactory based asserts, for example:
assertThatJson("{\"a\":[1, 2, 3]}").inPath("a").isArray().last(as(INTEGER)).isEqualTo(3);

The trouble is that there can be many different types in the JSON. Form the code it seems straightforward to override the asInstanceOf method
    @Override
    public <ASSERT extends AbstractAssert<?, ?>> ASSERT asInstanceOf(InstanceOfAssertFactory<?, ASSERT> instanceOfAssertFactory) {
        Class<?> rawClass = getRawClass(instanceOfAssertFactory);
        if (rawClass.equals(Integer.class)) {
            Node node = assertType(NUMBER);
            if (!node.isIntegralNumber()) throw new AssertionError("Node \"" + path + "\" can not be converted to integer");
            return new IntegerAssert(node.decimalValue().intValue()).asInstanceOf(instanceOfAssertFactory);
        }
        if (rawClass.equals(BigDecimal.class)) {
            return isNumber().asInstanceOf(instanceOfAssertFactory);
        }
        // More ifs here
        throw new UnsupportedOperationException("TODO");
    }

The issue is that it's not possible to implement getRawClass without reflection as the method is package protected. Would it be possible to make it public or provide other means how to prepare values for InstanceOfAssertFactory so the cast passes?
Here is scatch of the idea

Sorry, I discovered other issues that prevent full support of InstanceOfAssertFactory so this is not relevant any more. Thanks for understanding

Hi @lukas-krecan, no problem!
In case you solve the issues you just found, I wanted to let you know that we introduced a new createAssert(ValueProvider) default method to AssertFactory in #3377. This method allows client code to perform type-aware conversions before the cast happens.
See for example the snippet at https://github.com/assertj/assertj/pull/3377#issuecomment-2017372973.


Explicit Comment / Escape calculation symbol

This is so brilliant!! Thank you! I've been using CalcTape for years but could not get the changes I'd like to have implemented.
Could we get an explicit comment character for the remainder of a line.
Example

Giving a slash or dash will cause a divide or minus

         120.00 IE: 12-31-1900 or 12/31/1900
+       400.00
══════════════
        520.00

Proposal

The hash key or some other key would denote that the rest of the line is a comment.

     120.00 # Interest as of 12/31/2023
+    400.00 # Income from 1-15-2024 to 2/01/2024
══════════════
     520.00

Thank you for your work on this project!

I'll add this feature in the next build. You will loose the ability to continue new calculation  when pressing mathematical operator when comment stars with #. Pressing Enter followed by a mathematical operator will continue the calculations.

The same thing somewhat happens with calctape. You have the option to "switch" to a text editor mode that doesn't parse. When you switch back it doesn't automatically format the "date", however, anything entered after is parsed.
Maybe that made sense.... I've had little sleep. :-)
I was glancing over your code (I'm not a developer, just a reader, lol.) However, if I am understanding everything at a very high level, we're just parsing text. I was brainstorming if there could be a comment "wrapper" of some kind rather than a single #
I may need to think on it a bit more.

I've added few changes to allow operators in annotations, it will work without any prefix symbol before annotation. Either press space and operator at the end of annotation to move to next line of calculations or press enter and continue with calculations.

v0.7 includes this feature.


Deferred multiprogress updates can run away with memory

Multiprogress's current drawing model queues updates which are then drawn later. This can lead to runaway memory usage if the updates aren't actually being drawn.
I can sort of see the argument that this is WAI, or more accurately, that it would be better addressed in the context of #33. But it does seem odd to me that we queue up updates, for, e.g., inc(1) rather than just retaining the last one. Now I'm wondering if this could also cause flickering issues or similar (e.g. #226 ), if deferred updates would be applied all at once in a bunch should the accumulate for some reason rather than one update to bring to the current state.
For example, the below will eventually exhaust memory:
fn main() {
    let multiprogress = indicatif::MultiProgress::new();
    let bar = indicatif::ProgressBar::new(100);
    let bar = multiprogress.add(bar);
    let mut j = 0;
    // for _ in 0..10000 {
    loop {
        j = (j + 1) % 50;
        // bar.set_position(j);
        bar.inc(j);
    }
}

If we ran multiprogress.join() in a separate thread concurrently to actually draw it, then the updates would be drawn and not accumulate. I ran into this because I was not calling join() as a way to hide progress bars (see also #238 for the correct way to do this).

We're currently working on #284, can you review how that influences this issue?

#284 would fix this.
I patched in the PR and memory stays flat and low as expected. I am very happy to see #284 land and wish you the best of luck; this issue is a minor annoyance at most, but needing a threading model for multiprogress has been inconvenient in other ways, and  delegating to the child updates is both an effective solution to that and an elegant design.
I look forward to using the new, simpler API.

Thanks for the feedback! I'll keep this open for a bit and probably close it when #284 lands.


Fix Ecosystem CI descriptor

This fixes the generated descriptor to match the path used in https://github.com/quarkusio/quarkus-ecosystem-ci/tree/main/quarkiverse-elasticsearch-reactive

@all-contributors add @loicmathieu for code and maintenance

Thanks @gastaldi, I generated the extension with the Maven plugin, maybe a fix should be done at it ?


Save button error

I played a really great game against a cool deck and when i click save nothing happens!

Also, this might be the reason, but they had Antonidas, spare parts and unstable portals. the spare parts and unstable portal cards were tracked regularly and 7 fire balls were tracked. this resulted in more than 30 cards being tracked.

Just played another game to test and save still didn't work. No extra cards were added to the deck.


reset the metrics value before the test

Change-Id: I183c82c7e082c684f7ef26c13dbe9b340c617bea
ref: https://github.com/istio/istio/issues/17175
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[X] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[ ] Does not have any changes that may affect Istio users.

@williamaronli: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
d48506d63d2275d654d12e12c53d7811420c5c21
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@williamaronli: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
f37824d1081ff22dce6b3928672a5152756c56fe
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@williamaronli: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
a60a9e6125071525488a501ec439b0a69b02f600
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@williamaronli: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
26bffd14b9cbc2bcbcc227fa8c1b862481b6b0de
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@williamaronli: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
26bffd14b9cbc2bcbcc227fa8c1b862481b6b0de
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Add gitignore and remove ui-library

Reason: {"component":"peribolos","file":"prow/cmd/peribolos/main.go:201","func":"main.main","level":"fatal","msg":"Configuration failed: failed to configure baloise team Developers repos: failed to update team 3487394(Developers) permissions on repo ui-library to read: status code 422 not one of [204], body: {"message":"Validation Failed","documentation_url":"https://docs.github.com/rest/reference/teams#add-or-update-team-repository-permissions\"}","severity":"fatal","time":"2021-06-02T11:48:13Z"}

See: https://github.com/baloise/org/runs/2727383523?check_suite_focus=true


So, 4.0.0 release requires rails 5.0 or 5.2?

Hi,
In README.md:
As of version 4.0.0, Draper only officially supports Rails 5.2

But, in draper.gemspec:
s.add_dependency 'activesupport', '>= 5.0'
s.add_dependency 'actionpack', '>= 5.0'
s.add_dependency 'activemodel', '>= 5.0'

So, how it right? README.md or gemspec?

Great point. My intent here was to drop official support for Rails < 5.2 as Rails no longer supports versions less than 5.2. However, I didn't want to prevent people from using the gem on older versions of Rails as there are currently no known issues preventing you from doing so. Does that make sense or am I crazy? I lean toward just updating the README to explain that better, but certainly could change the gemspec if that makes more sense.


5.1 rethreading

Summary
Adds a new feature: rethreading. Posts not included in threads can be moved to existing threads, or a new thread can be created with another post not in threads. Rethreading can be done by the posts creator (and any system admin or team admin if he/she has permissions to edit the post).
Ticket Link
None.
There is the Mattermost forum post:
https://mattermost.uservoice.com/forums/306457-general/suggestions/34136164-add-ability-to-move-mistaken-thread-replies-in-a-c
and mattermost feature channel
https://pre-release.mattermost.com/core/pl/13zruhcrfidtxqi9s6m8tu54fe
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit and component tests passed
[ ] Added or updated unit tests (required for all new features)
[x] Has server changes (please link) https://github.com/mattermost/mattermost-server/pull/9165
[x] Has redux changes (please link) https://github.com/mattermost/mattermost-redux/pull/581
[x] Has UI changes
[ ] Includes text changes and localization file (.../i18n/en.json) updates
[ ] Touches critical sections of the codebase (auth, posting, etc.)

Note: package.json uses mattermost-redux from kkekkonen/mattermost-redux. The conflicts can be resolved after rethreading is added to mattermost-redux

Thanks @kkekkonen for the pull request!
Per the CONTRIBUTING.md file displayed when you created this pull request, we need to add you to the list of approved contributors for the Mattermost project.
Please help complete the Mattermost contribution license agreement?
This is a standard procedure for many open source projects. Your form should be processed within 24 hours and reviewers for your pull request will be able to proceed.
Please let us know if you have any questions.
We are very happy to have you join our growing community! If you're not yet a member, please consider joining our Contributors community channel to meet other contributors and discuss new opportunities with the core team.

Thanks @kkekkonen! If you can help get the build passing we can get a test server going and look a bit more into the UX

The build seems to be passing now that the PR was rebased

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: https://i-0e4b344028671c21e.test.spinmint.com
Test Admin Account: Username: sysadmin | Password: sysadmin
Test User Account: Username: user-1 | Password: user-1
Instance ID: i-0e4b344028671c21e

Made some changes to the rethreading-webapp: rethreading is now done via dragging, and posts can also be moved from thread to thread

Spinmint test running for more than 7 days. This test server was terminated.

Now includes a experimental flag in System Console/Developer settings which can be used to enable and disable rethreading

FYI, something appears to have gone wrong when updating the branch for this PR since it seems to include copies of a bunch of unrelated commits

I dont know why the unrelated comments were there, but I got them removed.

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spintmint test server creation failed. See the logs for more information.

Apologies for the delay here, let's get redux and server merged so we can test and review this PR

After discussing with @kkekkonen, I will close this and the related pull requests, but keep the branches open so work can be easily continued later on.
The work halted here as a result of our process failures. In particular,

there was no owner for these PRs, leading to slow response times from the Mattermost team
there was no ticket, nor no design, prior to submitting the PRs, leading to

Mattermost team giving confusing feedback (too high-level)
uncertainty and inconsistency about the direction of the feature
conflicting reviewer feedback, in some cases leading to contributor reverting his changes back

We've taken notes and started discussions on how to address the above - we'll start by having a JIRA ticket for every contributor pull request that details the expected behaviour and design, and have an owner for each.

Spinmint test server destroyed

@jasonblais @kkekkonen This issue was closed in behalf another issue ? or maybe because was solved in a PR?

Hi @enzolutions - we closed the PR due to reasons outlined here: https://github.com/mattermost/mattermost-webapp/pull/1481#issuecomment-447855385


Added a NSError category with convenience methods for AFNetworking

To make extracting information from NSError generated by AFNetworking much easier, a category was added to NSError that contains multiple convenience methods for data retrieval.

As a general policy, AFNetworking does not pollute Foundation APIs with category methods (the categories on UIKit are explicitly opt-in, so it makes sense there). While convenience accessors to userInfo fields may be desirable for some using AFNetworking, it's a confounding influence everywhere else.

You are absolutely right. However, when using AFNetworking together with ReactiveCocoa, this causes a lot of duplicate code, to actually grab error details from caught NSError objects. Convenience methods like this are a must, but considering AFNetworking does not support ReactiveCocoa, I will add this category to RAC extension repository. I just figured more people would benefit from this, if it was in main repository. Sorry.


Bluetooth Auto-Connect Issue After Unlocking Session from Sleep Mode

Hello,
I've encountered an issue with the script that automatically connects Bluetooth devices on Linux startup. While the script works perfectly upon booting the system, it does not function correctly when unlocking a session after the computer has been put to sleep.
In my experience, my Bluetooth devices disconnect when the PC enters sleep mode. Upon waking the PC and unlocking the session, the script does not reconnect these Bluetooth devices as expected.
To address this issue, I've created a fork of the repository that includes a fix to ensure Bluetooth devices automatically reconnect after waking up from sleep and unlocking the session. You can find my fork here: https://github.com/rayandu924/bluetooth-autoconnect-handle-sleep-mode/tree/master
Please let me know if you'd like more details or if there's anything else I can provide to help resolve this issue.
Thank you!

Thank you for raising this.
See https://github.com/jrouleau/bluetooth-autoconnect/issues/13 for another solution. Powering down the adaptor before sleeping also has an added benefit of notifying and disconnecting from devices rather than just disappearing (though YMMV as you don't seem to be having an issue with that). We should probably add this as a service to the package though instead of burying it in a closed issue.
A locked session should have no impact as the bluetooth service (and user-specific audio service in the case of headphones/speakers) would already be running


The NuGet package lacks a reference to the project site

A NuGet package should have a link to a project site (projectUrl element in .nuspec file).

https://github.com/nrkno/json-quibble/commit/50c3c734d9ff5d8775eb212704be8974eb4e4dd2


Fixed montserrat font issues and added stuffs from google docs

Fixed the Montserrat Font issues.

Added additional infos from the google docs for the FAQ page.

i think it's ok

i think it's ok

LGTM

LGTM


Split attacks/init.py into submodules

this is work toward https://github.com/tensorflow/cleverhans/issues/861

This looks good, can you confirm there are no code additions? This is just moving things around?


Add db command

It seems support for the db command is missing. Is there a reason for not including it or can I propose a pull request?

Please test the dbselect branch.
https://github.com/joshuah/sol-redis-pool/tree/dbselect

New version published to npm.

This is brilliant, thank you very much. I can now finally switch back from our private repo to your official version :-)


Updates to developer guide

[x] Fixed documentation for onLayoutResize()
[x] Convert all tabs to spaces for consistency
[x] Removed section about ACE editor events
[x] Update documentation for eventMgr event
[x] Add description of the PageDown hooks which are
extensively used by Stackedit  for partial rendering, scroll sync, TOC and
more.
[x] Changed setup description to include discoverable tasks added in #598

Build status for this pull request:


Bug on windows machines in ci/verifyMinAgentDemands execution via pipeline (#3087)

Task name: ci/verifyMinAgentDemands
Description:
When you access another batch file from a batch file, you need to use the CALL command to return control to the parent process. Otherwise control is passed to the batch file being executed. So CmdLineV2 Task was replaced with 2 separated commands.
Because npm install on windows is a batch file which call npm-cli.js and you cant use "call npm install" command on Linux-based machines
Documentation changes required: N
Added unit tests: N
Attached related issue: https://github.com/microsoft/build-task-team/issues/3087
Checklist:

[ ] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected

/azp run

Before we complete this pull request, I believe we should also fix all pipeline tasks that currently fail this check. Could you please update them as well in this PR?

There were only errors with the incorrect "minimumAgentVersion" option in task.json for tasks PublishPipelineArtifactV0 and PublishPipelineArtifactV1, fixed it, and now all checks are passed.


[Translation: Japanese] [Settings] edited (translated) on 警報 (alert) section.

From #229. Alert section done. Trying to do the later paths if I could wake up early today. :v

:+1:


Multiple Warnings/Errors on Survey Load

Prerequisites

[ X ] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in QA
Followed all applicable steps in the TROUBLESHOOTING guide: TODO
Checked for relevant discussions on Discord: https://discord.gg/pPERUuv
Checked that your issue isn't already filed: https://github.com/COVID-19-electronic-health-system/Corona-tracker/issues

Description
When opening the survey, there are multiple errors relating to DOM elements that should be resolved to ensure our code works smoothly and as planned 100% of the time.

Steps to Reproduce

Log in
Navigate to survey and inspect

Expected behavior:
No errors/warnings
Actual behavior:
Errors/warnings
Reproduces how often:
100%

I can take this :)

I figured out the main errors and one of the warnings.
I'm still getting this warning:
./src/components/Login.js
Line 17:9:  'changeLanguage' is assigned a value but never used  no-unused-vars
But I'm not certain how/where change language is supposed to be used?

Oh cool. Then I'll make a pull request because I handled the error.

Okay nice, just be sure to add the error log from chrome inspector in your PR. Maybe that error you posted inadvertently has to do with survey, I'm not sure, I'll need some autonomy on this one to just make sure all "red" errors are fixed.

No problem :)

Reopening: unfortunately, previous changes broke the UI when displayed on mobile, so we should find a different implementation of how to fix errors

@JWaltuch if you having trouble fixing this, let me know I can take it

Closing, fixed by #303


Git clone fails and missing reference errors

Description of the issue
Build fails, perhaps related to git clone failure?
Get's a lot of missing reference errors CS0246. This could be accurate if the repo isn't cloned freshly.
Environment:
Xamarin Stable with Xcode 8.1, on macOS 10.12 (Sierra)
Either caused by git clone step or xamarin build(both latest version)
Reproducibility

Does a "Rebuild" help? (You can trigger a rebuild from the Build's page, by clicking the "Rebuild" button in the top right corner of a finished build) : NO
Does a rebuild without caches help? (You can remove the Cache:Pull and Cache:Push steps temporarily to not to use the cache, or you can delete all the caches on the Settings tab of the app. : No, there's no buttons there for removing cache.

Does upgrading the build Step to the latest version help?_ : NO
Can it be reproduced by running the build locally - It cannot, a clean clone attempt would take a lot of time to test though..
Relevant part of build log
=> git "fetch"
0 attempt failed:
error: RPC failed; curl 56 SSLRead() return error -36
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

Did you solve this issue, that's why you closed it?

I did, turned out it wasn't a bitrise error. It only appeared on 'release' builds. Perhaps that could be a valuable part of the issue template? Something like 'did you try building for release locally?'. The difference is not obvious at first.
I had moved a library but the references weren't updated correctly even though I removed and added the project through Visual Studio.
The solution was removing all the references to the project and re-adding them.

Perhaps that could be a valuable part of the issue template?

Definitely! Although I'm not sure what should be included - IMO the "Can it be reproduced by running the build locally with our CLI ( https://www.bitrise.io/cli )" question should cover this, given that you run the same workflow locally of course

Added a If you have multiple different build configurations (workflows), does the issue affect all/more than one? to the Reproducibility section of the template - I think that, combined with the local CLI build should cover this - https://github.com/bitrise-io/build.issues/pull/29/files
What do you think @Maggern3 ?


Email confirm validator does not recognize matching email addresses

Also getting an invalid match on the following

Please provide more info

Ah, github was hiding your code example because you didn't put it in code backticks. I've edited your post.
You need to provide a jQuery selector to data-match so you need data-match="#txtEmail"

Apologies for the incorrect post. I removed the "#" in my code sample in a last ditch effort to get it working. Even with the "#txtEmail" it still doesn't recognize the match.
thanks for you quick response btw.

Seems to be working...
http://jsbin.com/satonovuho/edit?html,output

Yeah, I suspect it's something to do with asp.net appending the control id's of parent containers. When I look at the rendered versions of the control they txtemail is now "cph_main_txtemail". That's where I'll focus my efforts. Thanks again.


Leverage Godot 4.0 TileMap layers

Most of our tilemaps include several tilemaps for stuff like the ground, grass, and paths. This can be done with a single tilemap now, using TileMap layers.

[ ] Leverage TileMap layers for overworld terrain (ground, grass, paths)
[ ] Leverage TileMap layers for overworld obstacles (corner map)
[ ] Leverage TileMap layers for puzzle pieces (piece, corner map)

Cancelling the Godot 4 migration due to critical missing features. More information available on the godot-4-transition page in the wiki.


tf.split(num_or_size_splits=x,...) fails for x=Dimension(128)

Seen while upgrading our code to TF 1.0, somehow this used to work in 12.1, but in TF 1.0 the following fails with IndexError: list index out of range inside of array_ops.py
tf.split(num_or_size_splits=X.get_shape()[1], ...)
Looking at array_ops.py, the relevant logic
  if isinstance(num_or_size_splits, six.integer_types):
    return gen_array_ops._split(
        split_dim=axis, num_split=num_or_size_splits, value=value, name=name)
  else:
    size_splits = ops.convert_to_tensor(num_or_size_splits)

So Dimension(128) is treated as "Tensor" and code fails with IndexError: list index out of range inside array_ops.py. I think it would make more sense if the Tensor path checked if num_or_size_splits was Tensor or convertible to non-scalar Tensor, and then have a catch-all else for all other cases. Or perhaps documentation could be updated to say that this path is taken if num_split is not a scalar, which is what's happening now, despite the documentation implying that this is only for Tensor arguments.
I would fix this myself, but I already have an outstanding PR, and the current system makes it too painful to switch branches -- https://github.com/tensorflow/tensorflow/issues/6911

Thanks for the detailed bug report.  Internal bug opened.

Use python type conversion to solve this issue
tf.split(num_or_size_splits=int(X.get_shape()[1]), ...)

Close for now since I assume this has already been fixed. If not, please reopen.


Example 2 doesn't work

The following example in the documentation gives the following error:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <MySourceFiles Include="c:\MySourceTree\**\*.*"/>
    </ItemGroup>
    <Target Name="CopyFiles">
        <Copy
            SourceFiles="@(MySourceFiles)"
            DestinationFiles="@(MySourceFiles->'c:\MyDestinationTree\%(RecursiveDir)%(Filename)%(Extension)')"
        />
    </Target>
</Project>

Error MSB4094 "SemicolonSeperatedListOfFiles" is an invalid value for the "DestinationFolder" parameter of the "Copy" task. Multiple items cannot be passed into a parameter of type "Microsoft.Build.Framework.ITaskItem".

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

ID: 160a060d-7dc1-5826-8beb-f47097d0928f
Version Independent ID: cc8a11cf-df37-97e9-bd0a-8c8ddd5037c7
Content: Copy Task - Visual Studio
Content Source: docs/msbuild/copy-task.md
Product: visual-studio-windows
Technology: msbuild
GitHub Login: @ghogen
Microsoft Alias: ghogen

@mariusls -- thank you for your feedback.  Please consider these resources:

Visual Studio on Q&A
Visual Studio MSDN Forum
Stack Overflow
Reddit

@ghogen -- please look into this issue.

It worked for me just now. Did you copy and paste the code and make any modifications?  I'm using a current MSBuild preview from VS 2019 version 16.10.
I did create MySourceTree on disk with a couple of test files before running, but nothing else.
c:\Source\Repos\Doc-samples>msbuild copy-task-2.csproj
Microsoft (R) Build Engine version 16.10.0-preview-21227-06+1d1fec7c4 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 5/6/2021 1:23:26 PM.
Project "c:\Source\Repos\Doc-samples\copy-task-2.csproj" on node 1 (default targets).
CopyFiles:
  Creating directory "c:\MyDestinationTree".
  Creating directory "c:\MyDestinationTree".
  Copying file from "c:\MySourceTree\file1" to "c:\MyDestinationTree\file1".
  Copying file from "c:\MySourceTree\file2" to "c:\MyDestinationTree\file2".
Done Building Project "c:\Source\Repos\Doc-samples\copy-task-2.csproj" (default targets).

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:00.39

I see that the error mentions DestinationFolder, but that example uses DestinationFiles, so that is strange to me.


Laravel | Eloquent does not support where($field, 'IN', $valueArr)

Laravel Version: 5.4, 5.3, 5.2
PHP Version: 5.6
Database Driver & Version:

Description
Laravel/Eloquent does not support a simple db query using where in
Steps to reproduce
php artisan tinker
App\User::where('id', 'IN', [1,2])->toSql();
and it results to
select * from users where id = ? and users.deleted_at is null
Is there any PR fix for it in any versions?

I presume you realise you can do this...
App\User::whereIn('id', [1,2])->toSql();

@JayBizzle Yes that can, but... how about the plain old where? I mean since it can almost do = to the regexp.. why not include the in?

This is not a bug. Open an issue in the laravel/internals repo

Should I close this one?

yep


Compatible

Does it work with termux?

To be honest I'm not sure but I don't think so
I haven't tried it but it might


stats - 99th percentile sometimes has higher value than max

Describe the bug
I'm extracting stats per item from environment.stats.entries where environment is locust.enc.Environment object.
From stats object I use max_response_time and get_reponse_time_percentile(0.99)
I noticed that sometimes value of 99th percentile has higher value than max_response_time - which is impossible.
Expected behavior
All statistics return correct values
Actual behavior
Max value is sometimes bigger than some of the percentiles.
I observed the same issue on UI on 90th percentile (on screenshot GET homepage)

Steps to reproduce
run the test and observe the logs
Environment

OS: Windows 10
Python version: 3.8.5
Locust version: 1.2.3
Locust command line that you ran: locust -f locustfiles/ --skip-log-setup

percentiles are rounded (using buckets), so this is normal

@cyberw if we compare summary data from Locust with RAW data (every sample) analyzed by Influx the outcome is totally different especially for 95/99 percentile. Are you sure this is expected behavior? The data is sometimes lower while sometimes higher so totally inconsistent.
Our IT department is using Influx/Prometheus to store statistics. Once we will compare Locust summary data with raw response times from app the outcome is that Locust summary data has a flaw. This will be causing questions is the tool reliable when it comes to other statistics. We really doubt that Influx would have any flaw in percentiles calculation

Hi @domik82 ! Sounds like a different issue from what @stanislawskwark is talking about. If you can make a detailed log (the full csv with every request) and find there is a significant discrepancy, please add it here, or file a separate issue.

@cyberw - we work together with @stanislawskwark so let us rephrase the original issue. The most obvious discrepancy was that p99 is higher than max but all in all, there are huge differences in the way it's being calculated. I'll work with Stanislaw to extract the samples from Influx as we don't store csv at all.

If you do find a bug, be prepared to need to fix it yourselves (in https://github.com/locustio/locust/blob/master/locust/stats.py), as I dont really use the built in stats aggregation (because I use external logging/stats analysis in Timescale/Grafana)

@cyberw we also do have our own implementation for sending sample statistics to Infux using Kafka (Locust -> Kafka  -> Telegraf -> Influx) and then plot it on Grafana. Kafka is used as a metric buffer so Influx will not go down due to excessive load. We wanted to extract summary data from Locust and store it instead of doing a query to influx for aggregated data. This was the first sanity check if we see the same output. Not sure how much time would it take to analyze current solution for us it might be way quicker to do the query on our own. The benefit of the summary is that we have seen that some of the samples got lost so sanity check if summary from Locust has overall number same was beneficial.

Cool stuff.
I've done direct logging to Timescale (and previously Influx) and never really seen it be a bottleneck, as long as the writes are properly batched (you can check out the implementation in locust-plugins if you want to try a more naive/simple approach)

Attaching csv with data for which locust produced statistics mentioned above
data.zip

@cyberw you would have to define crazy ;) we are still at a very early stage when it comes to Locust. It really depends on how we will count it down probably later in the year bare minimum will be 1000 samples/s. From what I know Influx heavly depends on the disk/CPU in our case it's virtual with as minimum as possible ;) This approach is common in our company for storing metrics so we just applied the solution to the existing infrastructure. Normally no one writes directly to influx.

👍  Yea I seem to remember the limit for our influx being something like 4000/s. I just hate complicated infrastructure :P

@cyberw after analyzing code a bit you pointed out we found that the way we report things to influx will be impacted. I'm seeking a bit of guidance how to work out the proper solution. We wrote the code to be executed on master node but based on the code it seems that the buckets will be created on the workers. Therefore there seem to be only two options for us to properly address it. One introduce a feature toggle in Locust that would allow to use RAW data samples on master node. The impact will be that without buckets quite a lot of data would be flowing in the ZMQ as well the dictionary that is used there to store the data will become quite big.
Second approach would be to move the reporting to the workers but we loose the feature that the Java client (Swarm) that we also use would have to have it's own implementation of sendings stats what is a pain.

based on the code it seems that the buckets will be created on the workers

I honestly dont know, as I didnt write that code :)

One introduce a feature toggle in Locust that would allow to use RAW data samples on master node

Not sure I think that is a good idea. I much prefer the slaves reporting individual samples somewhere else (like in TimescaleListener). But it might have its uses. I guess it depends on how much code you'd need to modify.

Second approach would be to move the reporting to the workers but we lose the feature that the Java client (Swarm) that we also use would have to have it's own implementation of sendings stats what is a pain.

Is there any particular reason you use the Java client?


The KDE module is causing the home-manager service to fail to start

I'm using multiple DE/WMs, KDE and Hyprland. When I run nixos-rebuild switch from KDE the home-manager service works as expected. If I then reboot the machine and log into Hyprland and run the same command I get the following error:
mrt 28 08:06:51 {Host-ID} hm-activate-{User-ID}[3198]: Activating stylixLookAndFeel
mrt 28 08:06:51 {Host-ID} hm-activate-{User-ID}[4065]: An error occurred while attempting to set the Plasma wallpaper:
mrt 28 08:06:51 {Host-ID} hm-activate-{User-ID}[4065]: The name org.kde.plasmashell was not provided by any .service files
mrt 28 08:06:51 {Host-ID} systemd[1]: home-manager-{User-ID}.service: Main process exited, code=exited, status=255/EXCEPTION
mrt 28 08:06:51 {Host-ID} systemd[1]: home-manager-{User-ID}.service: Failed with result 'exit-code'.
mrt 28 08:06:51 {Host-ID} systemd[1]: Failed to start Home Manager environment for {User-ID}

This happens since the KDE tools are installed, but they fail to connect to KDE since it isn't running.


crash in capacity overflow on SequentialReader in vec alloc

Hi All,
I'm seeing a crashing issue after a few days of serving pages successfully. I'm not sure what the incoming request is (if there is one specific one is also unkown..) it seems like an out-of-memory "OOM" type issue, but the capacity-overflow error, which also seems to occur when .collect() is called on an infinite iterator (user-lang bug report & related discussion).
A similar issue seems to have occurred in rust-analyzer at some point but I'm not sure if/how that solution applies to the tiny-http codebase.
I've added a std::env::set_var() call to set the RUST_BACKTRACE=full for the program, which gives the below stack-trace for indicating where things are going wrong (as suggested in the discussion here)
Thoughts or input appreciated; this is for a toy website but I'd like to understand/fix it.
/// normal behaviour, serving pages as expected, then:

thread '<unnamed>' panicked at library/alloc/src/raw_vec.rs:545:5:
capacity overflow
stack backtrace:
   0:     0x56070a094dfc - std::backtrace_rs::backtrace::libunwind::trace::heeb1a1d1e2dbc154 at /rustc/de686cbc65478db53e3d51c52497685e852cc092/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1:     0x56070a094dfc - std::backtrace_rs::backtrace::trace_unsynchronized::h59b496b09972492a at /rustc/de686cbc65478db53e3d51c52497685e852cc092/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
... <snip bunch of rust-panic backtrace code> ...
  15:     0x560709ebc905 - core::panicking::panic_fmt::h1f0a3a584d873149 at /rustc/de686cbc65478db53e3d51c52497685e852cc092/library/core/src/panicking.rs:72:14
  16:     0x56070a0b49cf - alloc::raw_vec::capacity_overflow::h4830d61c7a2080df at /rustc/de686cbc65478db53e3d51c52497685e852cc092/library/alloc/src/raw_vec.rs:545:5
  17:     0x560709fdb746 - <tiny_http::util::equal_reader::EqualReader<R> as core::ops::drop::Drop>::drop::hcef8d364da48367b
  18:     0x560709fb843c - core::ptr::drop_in_place<tiny_http::util::equal_reader::EqualReader<tiny_http::util::sequential::SequentialReader<std::io::buffered::bufreader::BufReader<tiny_http::util::refined_tcp_stream::RefinedTcpStream>>>>::h6a8ca82231c133d5
  19:     0x560709ecb15b - core::ptr::drop_in_place<tiny_http::request::Request>::h9d7ea4fa29835dc0
  20:     0x560709ecdd7d - my_webserver::serve_https::h853dce33341b3390

Open questions

[ ] What does the EqualReader do?
[ ] What does the SequentialReader do?
[ ] Why is there an alloc::raw_vec occurring during Drop of the above instances?

I'm not familiar with the code (yet) so have these investigations as next steps... if folks know what's going on, or pointers/suggestions, do comment here :)

Do you know anything new?

@harryhaaren  To answer your questions...
EqualReader would be better named like LimitReader.
It reads up to the specified number of bytes from another reader and not more. But is flexible if there are less bytes.
In the drop of EqualReader, the provided other reader is for sure read, so that the other reader is like seeked after the specified number of bytes. If the EqualReader has not been read before.
This reading is done with an allocated Vec buffer.
The SequentialReader provides the possibility that the server can handle multiple concurrent data streams by a client.
I guess because the other reader could be used later again, the EqualReader needs to do the seek. If both readers would always drop, it would not make any sense to do this stuff in drop and could be optimized.
I've provided a fix above, you could try to test it under your conditions.
Without this fix, the drop creates a Vec with the size of provided Content-Length header and so a OOM is possible with just using a wrong header with a very big number (u64::MAX).
You might also be interested in https://github.com/tiny-http/tiny-http/pull/232 to stop OOM possibility in headers.
Next to this I've not found any cause why there should be a capacity overflow.

Replaced the Vec with a sliced stack array for performance...
test stack_buf_128     ... bench:   2,520,140 ns/iter (+/- 175,758)
test stack_buf_192     ... bench:   2,429,559 ns/iter (+/- 145,934)
test stack_buf_256     ... bench:   2,368,500 ns/iter (+/- 77,421)
test stack_buf_384     ... bench:   5,179,250 ns/iter (+/- 171,965)
test stack_buf_512     ... bench:   5,457,417 ns/iter (+/- 219,768)
test vec_128           ... bench:  10,220,704 ns/iter (+/- 317,712)
test vec_192           ... bench:  10,855,938 ns/iter (+/- 407,135)
test vec_256           ... bench:  10,921,623 ns/iter (+/- 782,854)
test vec_384           ... bench:  10,206,575 ns/iter (+/- 363,215)
test vec_512           ... bench:  10,810,583 ns/iter (+/- 255,277)
test vec_stack_buf_128 ... bench:   6,190,262 ns/iter (+/- 172,463)
test vec_stack_buf_192 ... bench:   7,972,014 ns/iter (+/- 279,520)
test vec_stack_buf_256 ... bench:   6,722,798 ns/iter (+/- 308,850)
test vec_stack_buf_384 ... bench:   6,945,378 ns/iter (+/- 289,744)
test vec_stack_buf_512 ... bench:   6,915,483 ns/iter (+/- 301,180)

https://github.com/kolbma/tiny-http/commit/2af596ebba80994eb35b370dba675e66dff9bab6
    fn drop(&mut self) {
        if self.size == 0 {
            return;
        }

        let mut buf = &mut [0u8; 256][..];
        if self.size < 256 {
            buf = &mut buf[..self.size];
        }

@harryhaaren To answer your questions...

Thanks!

I've provided a fix above, you could try to test it under your conditions. Without this fix, the drop creates a Vec with the size of provided Content-Length header and so a OOM is possible with just using a wrong header with a very big number (u64::MAX).
You might also be interested in #232 to stop OOM possibility in headers.
Next to this I've not found any cause why there should be a capacity overflow.

Aha; I've ported the site to Hyper, using Tokio etc now. Bigger picture, the goal of the codebase is to learn "hands on" rust networking in the real-world, so porting from threaded -> async was always a learning-goal.
Thanks for the responses; and building the library, it was a pleasure to use and get "raw" HTTP with Rust! Regards, -Harry


Fix getting alternative attachment

Description
Mail's 'getAlternative(_)' was looking for alternative attachments by counting from the back of the attachments array. The index was then used to remove the attachment by counting from the front of the array. This resulted in the wrong attachment being returned as the 'alternative' one.
This pull request fixes the above, and returns the first alternative attachment found in a Mail's array of attachments when an alternative is requested.
Motivation and Context
Sending plain-text mails with an alternative HTML attachment and additional attachments would incorrectly pack one of the additional attachments as the plain-text's "alternative". Various mail clients expect the nesting of mail parts to be correct in order to display the mail correctly. Mails with the attachments described would fail to render correctly in some clients because their message structure was incorrect.
How Has This Been Tested?
Examined mails with HTML alternatives, with and without additional attachments, in various Mail clients.
Added an additional test case in TestAttachment.swift to verify the correct attachment is returned when requesting a Mail's alternative.
Checklist:

[x] I have submitted a CLA form
[ ] If applicable, I have updated the documentation accordingly.
[x] If applicable, I have added tests to cover my changes.

I don't think one approach is better than the other. The way I've been using the library, the HTML attachment that should be an alternative to the mail text is always attached first (so it's at the front of the array) and any other attachments follow it. I guess as long as there is some documentation on which HTML attachment the library will use as the alternative to the mail text when there is more than one, it shouldn't be an issue.

Ok, I fixed the code that finds the last alternative attachment. I had to create a new PR and merge your changes into that because of the way Travis picks up testing credentials. Thanks for the catch!


cache GPT calls

This caches all GPT calls. We may want to do that specifically for entity extraction only. We may also want to not have a cache all exception when fetching from the API.


Issue 360 - Update S3 Broker to allow role-based access

Changed S3 broker validation to make the credentials attribute optional and updated associated docs and tests.

LGTM, I'll merge.


Update usage data and merge numbers by namespace

One last change -- I've added a note that the data are for git forge namespace:


Add Tests to Generator Messages

Added new tests to Generator Messages.
Fixed color bug with rainbow by using the orange RGB value instead. #211
Added require simplecov helper.

Nice work @aaronvb!


Add custom endpoint environment variables to all services.

We already have emulator environment variables for setting the service location in Datastore and Pub/Sub. We should add similar variables for all other services (if possible.)

[ ] BigQuery
[ ] Datastore
[ ] DNS
[ ] Language
[ ] Logging
[ ] Pub/Sub
[ ] Resource Manager
[ ] Speech
[ ] Storage
[ ] Translate
[ ] Vision

The existing variable names are DATASTORE_EMULATOR_HOST and PUBSUB_EMULATOR_HOST.

This is similar to GoogleCloudPlatform/google-cloud-node#1630. Using the same environment variable names would be best.

I believe this issue should follow the lead of GoogleCloudPlatform/gcloud-common#193. Changing title to reflect this new direction.

Closing this for lack of interest.


[Joy] Add Card components

🖥 Preview
Goal
I want Joy's card to be versatile in many forms of modern design, so the way I come up with the APIs is to make them generic as much as possible to be able to build numerous types of cards.
These are the design I use as a reference for building the Card components.

Card anatomy
I think these are the most generic anatomy of a card:

Card: a container that indicates the boundary of the card (usually a white background)
Cover: the background of the card. It can contain an image, video, picture, gradient, etc.
Content: contains the content of the card.

Decided to not have CardHeader or CardActions because they are too strict about the layout & API.
Examples
1. Any content
Joy does not provide a Header or Footer component for the card because of the dynamic of the card variants. Instead, Joy let developers compose by using low-level components like Box, Typography, Button, IconButton, ...etc
<Card>
  <Typography level="h2">Title</Typography>
  <Typography level="body2">description</Typography>
  <Box sx={{ display: 'flex', gap: 1 }}><Button>Join</Button><IconButton><Delete /></IconButton></Box>
</Card>

2. Cover
This is a common use case to insert an image, video as a background of the card. Joy provides CardCover component that makes it very easy to add cover. The API allows developers to use plain img, picture or even video (also works with NextJS image/Gatsby image)
<Card>
  <CardCover>

    {/* <video ... /> */
  </CardCover>
</Card>

CardContent is needed to make the content stay on top of the Cover.
<Card>
  <CardCover>

  </CardCover>
  <CardContent>The content</CardContent>
</Card>

In the case of video, the image should be used on the mobile device to save data. Developers can provide multiple CardCover and use CSS to hide video/image on specific viewports. This approach is better than using JS for server-side rendering and performance.
<Card>
  <CardCover sx={{ display: { md: 'none' } }}>

  </CardCover>
   <CardCover sx={{ display: { xs: 'none', md: 'block' } }}>
    <video src="..." />
  </CardCover>
  <CardContent>The content</CardContent>
</Card>

https://user-images.githubusercontent.com/18292247/160597221-92325b7f-2366-4e25-a316-8704302ae344.mov
The cover usually comes with a gradient.
<Card>
  <CardCover>

  </CardCover>
  <CardCover sx={{ background: 'linear-gradient(to top, rgba(0,0,0,0.4), rgba(0,0,0,0) 30%)'}} />
  <CardContent>The content</CardContent>
</Card>

3. media
Instead of providing an  wrapper like Material UI or Mantine, Joy provides the AspectRatio component instead. It is designed to be a media container that supports img, video, picture, ...etc. which can transition to use the new aspect-ratio CSS property in the future.

16:9
1:1

AspectRatio can be used anywhere, not limited to Card!

4. overflow
The default Card has padding but there are many cases where some elements overflow the padding to fill the both side of the card. Those elements could be the image, the footer, or the header so I create another component called CardOverflow specifically for this.

<Card>
  <CardOverflow>
    <AspectRatio></AspectRatio>
  </CardOverflow>
  ...
  <CardOverflow>
    <Typography>...</Typography>
    <Typography>...</Typography>
  </CardOverflow>
</Card>

The extra feature of CardOverflow is that it fills the spacing at the top/bottom automatically.
7. Automatic radius adjustment
If the card has border-radius, usually the image would also have some radius. In Joy, the CardOverflow & AspectRatio can adapt to the Card's radius automatically so you don't have to manually hand-pick the value.
https://user-images.githubusercontent.com/18292247/160619300-4f42e78c-7af7-4095-9c72-8de58b5644f9.mov
6. variant
The Card, CardOverflow, AspectRatio all support the global variant.
Accessibility
I use https://inclusive-components.design/cards/ as a reference to make the card inclusive.
1. :hover style
The card is always static, so developers have to style the hover state by themselves. I think this is easy enough given that sx prop can access the theme.shadow.
<Card sx={{ '&:hover': { boxShadow: 'lg' } }}>
 ...
</Card>

2. Card title & link
Usually, the title is h2 which can be achieved by <Typography level="h2">. Thanks to the Link integration, it works seamlessly like this without extra props to the Link:
<Card>
  <Typography level="h2">
    <Link href="..." sx={{ color: 'text.primary' }}>Title of the card</Link>
  </Typography>
</Card>

By default, it makes the focus look like this:
https://user-images.githubusercontent.com/18292247/160653819-48bcf278-1a4e-4c9c-98cb-b3d157392d0e.mov
3. focus overlay
Link exposes an overlay prop that creates a pseudo-element to fill the entire parent area with a perfect a border-radius.
<Card>
  <Typography level="h2">
    <Link href="..." overlay sx={{ color: 'text.primary' }}>Title of the card</Link>
  </Typography>
</Card>

The overlay prop can be used with other components as well

https://user-images.githubusercontent.com/18292247/160654761-a59e4caa-776b-4315-ae31-b7f7f75dc52f.mov
4. actions
Since the focus of the card is internally inside the Link, developers can place other buttons anywhere on the card.
<Card component="li" variant="outlined" sx={{ '&:focus-within': { boxShadow: 'lg' } }}>
  <CardOverflow variant="outlined">
    <AspectRatio ratio="1">

      <IconButton
        size="lg"
        variant="contained"
        sx={{ ... }}
      >
        <PlayArrow />
      </IconButton>
    </AspectRatio>
  </CardOverflow>
  <Typography level="h2" sx={{ fontSize: 'lg', mt: 3 }}>
    <Link href="#minimal-photo" overlay>
      Minimal photography
    </Link>
  </Typography>
  <Typography level="body2" sx={{ mt: 0.5, mb: 2 }}>
    By <Link href="#sukjit">Sujith</Link>
  </Typography>
  ...
</Card>

https://user-images.githubusercontent.com/18292247/160655391-5b644b47-19d0-4895-b052-03bbcdb3b6e9.mov
5. emphasize the card focus
Developers can use :focus-within() to emphasize that the card has focus inside.
<Card sx={{ '&:focus-within': { boxShadow: 'lg' } }}>
  ...
</Card>

Benchmark
Total lines of code for Card components

Material
Joy
% change

AspectRatio

113

Card
93
161
+73.12

CardActionArea
113

CardActions
93

CardContent
88
80
-9.09

CardCover

89

CardMedia
135

CardHeader
217

CardOverflow

109

total
739
552
-25.30

[ ] I have followed (at least) the PR section of the contributing guide.

MUI has been amazing experience, and I was surprised to see this wasn't already available. Great job!

Hey, thanks! This library will be another choice for people who don't want the material design and since this is a new library, we are able to experiment with new API and improvements! will announce as soon as it is ready.
Is there any use cases you like to share, so that I can put it in the experiment page?

MUI has been amazing experience, and I was surprised to see this wasn't already available. Great job!

Hey, thanks! This library will be another choice for people who don't want the material design and since this is a new library, we are able to experiment with new API and improvements! will announce as soon as it is ready.
Are there any use cases you like to share, so that I can put them in the experiment page?

Actually, yes! I would like to see a play on hover similar to Dribbble.

Actually, yes! I would like to see a play on hover similar to Dribbble.

Would you mind sharing the screen recording? I am not sure which card on dribbble that you mentioned.

Actually, yes! I would like to see a play on hover similar to Dribbble.

Would you mind sharing a screen recording or a screenshot? I am not sure which card on dribbble that you mentioned.

This is the one
https://user-images.githubusercontent.com/92072158/160663539-f3a2bbc7-1d91-4127-8c7e-4afa9d8c1333.mov

@astroTANSAN Here it is, a better keyboard focus than Dribbble!
https://user-images.githubusercontent.com/18292247/160748472-f4641f27-4311-49b1-a6c7-4ebf1cfa82f8.mov

@astroTANSAN Here it is, a better keyboard focus than Dribbble!
Screen.Recording.2565-03-30.at.10.58.12.mov
Try it yourself, https://deploy-preview-32027--material-ui.netlify.app/experiments/joy/card/

It looks great! I'm really loving it!

@danilo-leal My only concern is the Card's size prop. It is a bit misleading at the moment because size="sm" (means less padding, rounded-corner) can be used in a big card.
So technically, it is about density, not size. Should it be density prop instead of size prop specifically for this kind of components?

@danilo-leal My only concern is the Card's size prop. It is a bit misleading at the moment because size="sm" (means less padding, rounded-corner) can be used in a big card.
So technically, it is about density, not size. Should it be density prop instead of size prop specifically for this kind of component? or revisit this later?

It doesn't sound like a big issue. However, I may think differently when I am playing around with it. Could you share a link to the line in question? I think if the size is increasing or decreasing then size is appropriate (ex, like a Button).

Although the thought about density seems to make sense, the size prop, even though is controlling padding, does result in a larger or bigger overall Card size, doesn't it? In that regard... it seems to be accurate?! About density though, I think it would be nice to think in conjunction with other surface components, so I'd suggest we wait a bit to tackle that.

Although the thought about density seems to make sense, the size prop, even though is controlling padding, does result in a smaller or larger overall Card size, doesn't it? In that regard... it seems to be accurate?! About density though, I think it would be nice to think in conjunction with other surface components, so I'd suggest we wait a bit to tackle that.

Alright, I think it is ready to be merged then.


Manifest reform

Works towards #843 by introducing top-level "systems" and "assets" maps, similar to artifacts, which are indexed by other items.
The biggest challenge of this is to rework the linkage subsystem to properly refer to binaries by id.

[x] add new fields to manifest (dummied)
[x] refactor build code for managing binaries
[x] compute linkage bottom up
[x] flow data to manifest

[x] compute system ids ("{subcommand}:{artifacts_mode}:{targets.join(',')}"?)
[x] compute asset ids (guid generated on the system that builds it?) (annoying for snapshot stability, might need safe mode...)
[x] bubble linkage up so it can be stored in dist-manifest (or pass manifest down...?)
[x] implement manifest merging for new fields
[x] make artifacts[] reference assets[]
[x] implement artifacts[] merging
[x] add new artifact_uploads[] so it's okay for artifacts[] to contain old info
[x] change ci.yml to use artifact_uploads[] instead of artifacts[]

[ ] stop using old linkage format

[ ] make dep code read linkage from new manifest location
[ ] make linkage checker read linkage from new manifest location

https://github.com/Gankra/cargodisttest/releases/tag/v0.6.4
has a dist-manifest.json with the new system (see: assets[] and systems[])

i've now added inline checksums to the manifest, and changed the homebrew code to use both that and New Linkage.

lmfao, real fake checksums are uhhhh a problem for RUIN_ME_WITH_INSTALLERS, might need to make a tweak here...

nice, new checksum/brew stuff appears to have worked: https://github.com/Gankra/cargodisttest/releases/tag/v0.6.5


Access: Request error

Hello,
Even with the correct username, password, and region, I am getting an "Access: Request error". Here is the code I am using:
ValorantStore(username=username, password=decrypted_password, region=region, sess_path='sessions/', proxy=None)
I have heard that the authentication system of the Valorant API has recently changed. Could this be the cause? If so, are there any plans to fix this issue?

Yeah, they even changed the json for logging in.
I should try to fix it :)

I would appreciate it if you could fix this issue.
Thank you for your help.

Yeah i had this issue

Taking a look at the code and putting in a print(login_response.content) before line 202 in ValorantStore.py, it seems that it's a Cloudflare error and not something actually wrong with the code.