river: add flag for debug build

Description of changes
I was reporting a bug and needed to create a debug build of river without symbols stripped. This PR adds a withDebugBuild flag that can be overridden to easily do this.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Thank you for your suggestions. I don't see any existing prior art in nixpkgs for this. Since this is easy to override at point of use, I'm going to close this in favor of users just overriding as needed.


Massively confused on how to use this theme's dark mode

I'd like to use Github Pages as my host, but it's not clear from this documentation, Github Page's docs, nor Jekyll's how to go about actually doing this. Most of what little info I can find is years old at this point. Is this project even still active? What does the readme's blurb about minima working with the new-theme scaffold mean? I tried googling jekyll new-theme but wasn't able to find any proper documentation for it, and whether I need to use it in order to add the dark mode of this theme to my site.
Right now, I have a prototype site set up through Jekyll's installation guide and in my _config.yml I've tried adding
minima:
    skin: dark

But when I jekyll serve I still only see the light version of the site. I've tried clearing cache but that did nothing.
Can I use the dark version of minima with Github Pages? If so, how? Do I even need to mess with Jekyll directly at all? Every example of using minima as a remote-theme I've seen says nothing about how to use the dark mode of the theme. Can I just add the above to a Github Pages' _config.yml?
I just don't know where to look and for what. Any help would be massively appreciated.

Update: it seems as though my site DOES appear to display in dark mode on Firefox MOBILE. Neither Chrome mobile nor Chrome desktop nor Firefox desktop show my site in dark mode.

@ddejohn Please provide us with a link to your site and a link to the source repository if it is public..

@ddejohn The master branch of the repository (which contains all the unreleased new stuff) is not backwards-compatible with released versions. Technically, that is called a breaking-change and if the changes were to be released, it would be with a major version bump. That means, the next release would be a v3.0.0 instead of v2.6.0 and one should not expect a drop-in replacement.
Technicalities aside, the fact is that your site is now using the unreleased version of the theme. I strongly recommend that you read through the README document in the master branch, make a decision to either stick with the unreleased version or move back to the released version and make changes to your site accordingly.

I have read through the README. That's where all this confusion is coming from. I have also been following Jekyll's instructions on overriding themes. There seems to be a lot of conflicting information.

@ddejohn What exactly were the conflicting information?


[WFLY-9531] Workaround WFCORE-3410. Improve handling of dynamic management model registration by resource adapter services.

https://issues.jboss.org/browse/WFLY-9531

Work around WFCORE-3410. Change MRR cleanup in IronJacamarActivationResourceService to avoid having different service instances racing to remove different bits of the MRR tree.

Register the fixed parts of the r-a subsystem deployment model in the Extension; only deal with the overrides in service start/stop. This prevents cases where undeploying deployment 1 results in the MRR tree being removed for deployment 2, thus resulting in loss of the ability to read stats from deployment 2.

Also includes a second commit that does a general code cleanup of the IronJacamarActivationResourceService class.
I very much recommend reviewing the commits separately as the code cleanup obscures the main fix quite a lot.

retest this please

retest this please

I put 'hold' on this because doh, it occurs to me that the 'correct' behavior I do here may reintroduce the kind of problem that the simple but lame #10637 removed, making this no longer a workaround for WFCORE-3410.

WFCORE-3410 is fixed so this is now just correcting how this stuff works.

Retest this please

Retest this please


location-stripper: make it an option in the compiler

Instead of stripping locations from the AST only after the compiler
is completed, add a flag to the compiler to strip the locations right
after parsing.
This way locations can be stripped from all stages of the compiler,
including the parse tree, the flowgraph, as well as the build / compile
output.
When viewing the compilation output for these latter stages, the
generated code does contain location: undefined, but this is better
than containing the full location information by default.

@dmajda This is an alternate approach to what I did in #183.
I personally prefer this one since it covers all the stages of compilation, including the Javascript code that's output from the build / compile stages.

Originally (when location information was introduced), I didn’t want to go this way in order to maintain invariant that locations are always present in the AST and other intermediate forms. The purpose was to avoid the possibility of introducing code conditional on their presence/absence.
I grepped through the code now and it looks like the only thing we do with locations is pass them around. I think it’s unlikely we’ll ever do anything else, so I guess there is no harm in stripping them in the compiler already.
+1

@dmajda I cleaned up the things you pointed out in the review, and also made another couple changes.
I made it so the module exports a function and not a class to simplify the call site, and updated the test to verify both compile and compileSync. Take another look when you get a chance but I assume this will be non-controversial.

+1


Cannot publish if a page has been set to use the new confluence editor

This maybe related to #243
I am using v0.12.0 of confluence-publisher with Confluence Cloud (currently reporting version 1000.0.0-ba47b4c34826).
I have been testing confluence-publisher and came across an issue when I set the publishingStrategy to REPLACE_ANCESTOR. If the ancestor to be replaced has been created with the new confluence editor (the default on my new test account) then the following error occurs when trying to replace it:
Exception in thread "main" org.sahli.asciidoc.confluence.publisher.client.http.RequestFailedException: request failed (request: PUT https://<MY_DOMAIN>.atlassian.net/wiki/rest/api/content/33038 , response: 400 Bad Request {"statusCode":400,"data":{"authorized":false,"valid":true,"errors":[],"successful":false},"message":"com.atlassian.confluence.api.service.exceptions.BadRequestException: Content body cannot be converted to new editor format"})
	at org.sahli.asciidoc.confluence.publisher.client.http.ConfluenceRestClient.lambda$sendRequestAndFailIfNot20x$7(ConfluenceRestClient.java:213)
	at org.sahli.asciidoc.confluence.publisher.client.http.ConfluenceRestClient.sendRequest(ConfluenceRestClient.java:228)
	at org.sahli.asciidoc.confluence.publisher.client.http.ConfluenceRestClient.sendRequestAndFailIfNot20x(ConfluenceRestClient.java:210)
	at org.sahli.asciidoc.confluence.publisher.client.http.ConfluenceRestClient.sendRequestAndFailIfNot20x(ConfluenceRestClient.java:206)
	at org.sahli.asciidoc.confluence.publisher.client.http.ConfluenceRestClient.updatePage(ConfluenceRestClient.java:107)
	at org.sahli.asciidoc.confluence.publisher.client.ConfluencePublisher.updatePage(ConfluencePublisher.java:190)
	at org.sahli.asciidoc.confluence.publisher.client.ConfluencePublisher.addOrUpdatePageUnderAncestor(ConfluencePublisher.java:170)
	at org.sahli.asciidoc.confluence.publisher.client.ConfluencePublisher.lambda$startPublishingUnderAncestorId$1(ConfluencePublisher.java:127)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at org.sahli.asciidoc.confluence.publisher.client.ConfluencePublisher.startPublishingUnderAncestorId(ConfluencePublisher.java:126)
	at org.sahli.asciidoc.confluence.publisher.client.ConfluencePublisher.publish(ConfluencePublisher.java:79)
	at org.sahli.asciidoc.confluence.publisher.cli.AsciidocConfluencePublisherCommandLineClient.main(AsciidocConfluencePublisherCommandLineClient.java:97)

I also tried with the default APPEND_TO_ANCESTOR strategy, which worked when the root page did not already exist, but after I went to edit the page in confluence and accepted the suggestion to convert to the new editor then a subsequent update of the page failed with the same error.
Is there a plan to support the new editor?

Could this be related to the following issue:
https://community.atlassian.com/t5/Confluence-questions/quot-Content-body-cannot-be-converted-to-new-editor-format-quot/qaq-p/1332071
and just be due to a missing user-agent header in the request?

Ok, I've been doing some more testing and now I can't even append to a new page that was created with the new editor. Originally I thought it was just updating the root page that was the problem, but now I suspect it is a problem with links as described in this issue:
https://jira.atlassian.com/browse/CONFCLOUD-69902?error=login_required&error_description=Login+required&state=b17db889-fabd-41cd-a5c8-d795d6a58013

I have just confirmed that if the ri:space-key is added to the ri:page tag when deploying the confluence-publisher docs to my confluence cloud instance then issue is resolved. I am preparing a pull request but have hit a stumbling block. It might save me quite a bit of research if someone can tell me how to get the value of the spaceKey from the configuration into the inline_anchor.html.slim template.


Action is not creating any comments on PR

I was trying to setup a Github action that runs when I open a PR and add a comment with the content /benchmark.
Here's my workflow file:
name: Benchmark test

on:
  issue_comment:
    types: [created, edited, deleted]

jobs:
  run-benchmark:
    if: contains(github.event.comment.html_url, '/pull/') && contains(github.event.comment.body, '/benchmark')
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Run benchmark
      run: |
        python3 gen_random_result.py | tee ${GITHUB_WORKSPACE}/output.json
    - name: Download previous benchmark data
      uses: actions/cache@v4
      with:
        path: ./cache
        key: ${{ runner.os }}-benchmark

    - name: Store new result
      uses: benchmark-action/github-action-benchmark@v1
      with:
        tool: customSmallerIsBetter
        output-file-path: output.json
        external-data-json-path: ./cache/benchmark-data.json
        github-token: ${{ secrets.GITHUB_TOKEN }}
        summary-always: true
        comment-always: true

The gen_random_result.py script does exactly what its name says, it just generates some random data of the form
[
 {
    "name": "Test benchmark",
    "unit": "Seconds",
    "value": "0.4937825918725717"
 }
]

The action runs as expected but it doesn't generate a comment on the PR with the results.
Is there something I'm missing?

I think I found out what the problem is: Since I trigger the workflow on issue_comment, the "parent context" (don't know what to call it) is not a PR, so in this section here
https://github.com/benchmark-action/github-action-benchmark/blob/55f6195648a439356f785f3fc289298347c88417/src/write.ts#L247-L249
the function leaveCommitComment will be called. Don't know how to fix it yet, but it shouldn't be too hard to get the parent PR from a comment.

Over at yew, we also have a setup which currently only comments on the commits themselves, not the PR.
The benchmarking is run on pull_request in this workflow. Important for this discussion is that we then use the generated artifacts in a workflow_run dependent workflow. This avoids giving out permissions and running the benchmarking workflow in the context of the pull request itself, instead using the second benchmark from the main branch to perform the tasks of reacting to and posting the results.
We thus have a similar issue. While it's possible to guide benchmark-action/github-action-benchmark to the correct commit with the ref option, there is no way to guide it to the correct issue number (although we already recover that as part of the workflow).

@nilsfriess You're missing permissions in your workflow:
permissions:
  # deployments permission to deploy GitHub pages website
  deployments: write
  # contents permission to update benchmark contents in gh-pages branch
  contents: write
  # allow posting comments to pull request
  pull-requests: write


Release 0.6.19

What this PR does / why we need it:
Release 0.6.19, change log:

https://github.com/kubernetes-sigs/aws-iam-authenticator/pull/700
Cherry pick https://github.com/kubernetes-sigs/aws-iam-authenticator/pull/703

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

/ok-to-test

/lgtm

/retest

/retest

/lgtm

/retest

/approve


Music playback is interrupted for a few seconds every 20-30 seconds

Music playback is interrupted for a few seconds every 20-30 seconds. However, I have not changed the system since the last time I used it. I have also checked all the sound settings that I know of. Seems like it could be buffer problem. Can anyone help or give tips?
Thanks in advance

Do you use classic or Spotify edition?
Are you playing local files or streams?

Thank you for your quick response.
-> I'm using the Spotify Edition playing streams.

Could you post results of journalctl -u mopidy?
Are you experiencing any issues, if you play spotify with another player from your network?

Oh no, just found the problem... my smartphone had connected to the bluetooth speaker I use for the phoniebox and kept getting in the way. Stupid mistake... but might help someone else....
Thank you anyway for your quick responses to my issue.


changelog show Unreleased gives error backtrace

reason:

macos filesystem is case-insensitive
when version is Unreleased, File.exist?(File.join(destination_root, "changelog/#{version}")) check in print_version passes
but the later folder name check is folder == "unreleased" which will not pass ...

ref:
[9] pry(main)> `uname -a`
=> "Linux sanchez 3.10.0-1160.25.1.el7.x86_64 #1 SMP Wed Apr 28 21:49:45 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux\n"
[10] pry(main)> File.exists? "#{ENV['HOME']}/Documents"
=> true
[11] pry(main)> File.exists? "#{ENV['HOME']}/documents"
=> false

[3] pry(main)> `uname -a`
=> "Darwin bxzy 21.5.0 Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:22 PDT 2022; root:xnu-8020.121.3~4/RELEASE_X86_64 x86_64\n"
[4] pry(main)> File.exists? "#{ENV['HOME']}/Documents"
=> true
[5] pry(main)> File.exists? "#{ENV['HOME']}/documents"
=> true


Implement OP_WRITE_RAW on the instructions buffer

Implement OP_WRITE_RAW as an immediate instruction. The current implementation stores the size as a 24 byte unsigned integer after the instruction and then size number of bytes following it is the string. I also added a OP_WRITE_RAW_SKIP instruction that skips skips the string. This instruction is used in BlockBody#remove_blank_strings to replace OP_WRITE_RAW instruction. I'm not entirely satisfied in adding an extra instruction to handle this corner case. I've thought of two other ways to implement this:

Store an extra boolean flag to signal whether to skip the instruction or not. The upside to this is that we don't need the special OP_WRITE_RAW_SKIP instruction  but will require an extra 8 bytes.
Add a function to the c_buffer that allows deleting sections from the middle. This is probably the cleanest solution but will have performance overhead of memmove.

Also see #77.
Benchmarks
Base branch:
              parse:    156.542  (± 3.2%) i/s -      1.575k in  10.074790s
             render:    222.599  (± 8.1%) i/s -      2.222k in  10.071418s
     parse & render:     85.181  (± 2.3%) i/s -    856.000  in  10.056397s

This branch:
              parse:    158.134  (± 8.9%) i/s -      1.573k in  10.057410s
             render:    230.214  (± 7.8%) i/s -      2.288k in  10.019494s
     parse & render:     87.223  (± 3.4%) i/s -    876.000  in  10.057597s

The benchmark results don't seem right.  I would expect parse time to be significantly slower due to having to copy the immediate argument for OP_WRITE_RAW.  Rendering also doesn't seem more efficient, since the string length needs to be decoded.  Did you get the benchmark results mixed up?
On master I got this for the benchmark
              parse:    156.458  (± 3.2%) i/s -      1.575k in  10.077279s
             render:    207.469  (± 5.3%) i/s -      2.080k in  10.058117s
     parse & render:     83.494  (± 3.6%) i/s -    840.000  in  10.070280s

and on this branch (rebased) I got
              parse:    147.837  (± 4.1%) i/s -      1.484k in  10.053717s
             render:    203.815  (± 5.4%) i/s -      2.033k in  10.009205s
     parse & render:     80.104  (± 3.7%) i/s -    800.000  in  10.000488s

which seems inline with what I expected.
I was hoping to avoid slowing down rendering with this change.  I think we could have a more efficient OP_WRITE_RAW instruction for a byte sized length argument to make rendering more comparable to what we have on master.

Have you tried using a shorter OP_WRITE_RAW instruction to fix the performance regression?  How does that affect the benchmark results?

@dylanahsmith I just changed OP_WRITE_RAW to be 1 byte and added a OP_WRITE_RAW_W that is 3 bytes. I think it's reduced the performance impact.
This branch after the change:
              parse:    160.329  (± 6.2%) i/s -      1.605k in  10.049573s
             render:    232.030  (± 7.3%) i/s -      2.318k in  10.050578s
     parse & render:     85.336  (± 5.9%) i/s -    856.000  in  10.070809s

This branch before the change:
              parse:    156.611  (± 6.4%) i/s -      1.560k in  10.006603s
             render:    226.787  (± 7.5%) i/s -      2.266k in  10.054463s
     parse & render:     84.311  (± 7.1%) i/s -    840.000  in  10.008604s

Master:
              parse:    161.068  (± 6.2%) i/s -      1.605k in  10.000922s
             render:    235.662  (± 6.8%) i/s -      2.346k in  10.003183s
     parse & render:     86.112  (± 5.8%) i/s -    864.000  in  10.075406s

Rendering time seems almost unaffected w/ the wide instruction. I think we should be "ignoring" the parse speed when benchmarking since the goal is to cache the serialized template.
Moving to wide instructions is effectively moving an operation from rendering to the parsing phase. So parse time is affected. But that will be gone when compiled templates are serialized. So we should be moving as much as possible to the parsing phase if it improves rendering time.


How to trigger insertion before a container block?

e.g. in:
> a

If the focus is > |a how should we insert a prior paragraph:
b
> a

Mostly solved by 370aac332478efe4cbe4e4e82191cb889b81e588
Remaining discussion in #354


MB-15284:  Fix issue where office app was setting dates to the zero value

Jira ticket for this change
Summary
Resolve issue where we were populated the expected dates with the zero date (01-01-0001).
Setup to Run Your Code

💻 You will need to use three separate terminals to test this locally.
Terminal 1
Start the Storybook locally.
make storybook

Terminal 2
Start the UI locally.
make client_run

Terminal 3
Start the Go server locally.
make server_run

Additional steps

Access the
Login as a

Verification Steps for Author
These are to be checked by the author.

[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

Verification Steps for Reviewers
These are to be checked by a reviewer.

Frontend

[ ] User facing changes have been reviewed by design.
[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] There are no new console errors in the browser devtools
[ ] There are no new console errors in the test output
[ ] If this PR adds a new component to Storybook, it ensures the component is fully responsive, OR if it is intentionally not, a wrapping div using the officeApp class or custom min-width styling is used to hide any states the would not be visible to the user.

Backend

[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.

Database
Any new migrations/schema changes:

[ ] Follows our guidelines for Zero-Downtime Deploys
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

Screenshots

Messages

:book:
:link: MB-15284

  Generated by :no_entry_sign: dangerJS against 8829b3c2f61d0cce5ae9128e0cb2574e1961c2c2


Can font metadata have "trademark" field? GF Docs says yes, but FontBakery gets errors from it.

Observed behaviour
Encode Sans has a trademark field in its font info. In the GF Docs Project Checklist, it says:

If you do trademark your project name:
• Declare trademarks in font metadata

However, if I include trademark: "Encode Sans is a trademark of Pablo Impallari." in METADATA.pb, it triggers a bunch of metadata-related errors, with an error including "google.fonts.FamilyProto" has no field named "trademark".:
Example
:broken_heart: ERROR: Font designer field in METADATA.pb must not be 'unknown'.

com.google.fonts/check/007
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

10 more affected checks for Family

:broken_heart: ERROR: METADATA.pb: Fontfamily is listed on Google Fonts API?

com.google.fonts/check/081
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: check if fonts field only has unique "full_name" values.

com.google.fonts/check/083
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: check if fonts field only contains unique style:weight pairs.

com.google.fonts/check/084
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb license is "APACHE2", "UFL" or "OFL"?

com.google.fonts/check/085
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb should contain at least "menu" and "latin" subsets.

com.google.fonts/check/086
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb subsets should be alphabetically ordered.

com.google.fonts/check/087
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: Copyright notice is the same in all fonts?

com.google.fonts/check/088
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: Check that METADATA.pb family values are all the same.

com.google.fonts/check/089
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: According Google Fonts standards, families should have a Regular style.

com.google.fonts/check/090
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: Regular should be 400.

com.google.fonts/check/091
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 3:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

Plus a bunch of errors for checks on EncodeSans-VF.ttf

:broken_heart: ERROR: Checks METADATA.pb font.name field matches family name declared on the name table.

com.google.fonts/check/092
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.

com.google.fonts/check/093
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.full_name value matches fullname declared on the name table?

com.google.fonts/check/094
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.name value should be same as the family name declared on the name table.

com.google.fonts/check/095
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?

com.google.fonts/check/096
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.filename and font.post_script_name fields have equivalent values?

com.google.fonts/check/097
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.name field contains font name in right format?

com.google.fonts/check/098
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.full_name field contains font name in right format?

com.google.fonts/check/099
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.filename field contains font name in right format?

com.google.fonts/check/100
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.post_script_name field contains font name in right format?

com.google.fonts/check/101
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: Copyright notices match canonical pattern?

com.google.fonts/check/102
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.

com.google.fonts/check/103
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: Copyright notice shouldn't exceed 500 chars.

com.google.fonts/check/104
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: Filename is set canonically?

com.google.fonts/check/105
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.style "italic" matches font internals?

com.google.fonts/check/106
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.style "normal" matches font internals?

com.google.fonts/check/107
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb font.name and font.full_name fields match the values declared on the name table?

com.google.fonts/check/108
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: Check if fontname is not camel cased.

com.google.fonts/check/109
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: Check font name is the same as family name.

com.google.fonts/check/110
:broken_heart: ERROR The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: Check that font weight has a canonical value.

com.google.fonts/check/111
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: Checking OS/2 usWeightClass matches weight specified at METADATA.pb.

com.google.fonts/check/112
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb weight matches postScriptName.

com.google.fonts/check/113
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: METADATA.pb: Font styles are named canonically?

com.google.fonts/check/115
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: Version number has increased since previous release on Google Fonts?

com.google.fonts/check/117
:broken_heart: ERROR The condition FontBakeryCondition:api_gfonts_ttFont had an error: FailedConditionError: The condition FontBakeryCondition:remote_styles had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: Glyphs are similiar to Google Fonts version?

com.google.fonts/check/118
:broken_heart: ERROR The condition FontBakeryCondition:api_gfonts_ttFont had an error: FailedConditionError: The condition FontBakeryCondition:remote_styles had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: TTFAutohint x-height increase value is same as in previous release on Google Fonts?

com.google.fonts/check/119
:broken_heart: ERROR The condition FontBakeryCondition:api_gfonts_ttFont had an error: FailedConditionError: The condition FontBakeryCondition:remote_styles had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: Check font has same encoded glyphs as version hosted on fonts.google.com

com.google.fonts/check/154
:broken_heart: ERROR The condition FontBakeryCondition:api_gfonts_ttFont had an error: FailedConditionError: The condition FontBakeryCondition:remote_styles had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

:broken_heart: ERROR: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?

com.google.fonts/check/155
:broken_heart: ERROR The condition FontBakeryCondition:font_metadata had an error: FailedConditionError: The condition FontBakeryCondition:family_metadata had an error: ParseError: 6:1 : Message type "google.fonts.FamilyProto" has no field named "trademark".

Expected behaviour
I would expect FontBakery to handle possible trademarkfields in METADATA.pb, especially because it's documented in GF Docs. This would probably mean two things:

Only one check (or very few checks) would interact with the potential trademark field

Based on GF Docs, one check should probably test for the presence of a TRADEMARKS.md file

Other metadata checks would not be disrupted by the presence of the potential trademark field.

I'm guessing this might be achieved by adding an optional string trademark line to FamilyProto in fonts_public.proto.

Is the METADATA.pb strictly used to sort fonts on the back end? I may have misread the gfdocs suggestion – it isn't very clear about exactly clear where / in which metadata the information should be stored.
If the trademark field isn't needed in METADATA.pb, I can just exclude it (I currently am), and just have it in the TRADEMARKS.md and GlyphsApp file. Maybe we should just update the docs to make it more clear where to include trademarks in the metadata?
@davelab6 are the TRADEMARKS.md and GlyphsApp file the only places that data is needed?


Justify Dino's description in extension

Subject of the issue

Dino's text here can be set to justify to make it look better.

Please assign me this issue sir

Sure! Go ahead!


Fix a memory leak introduced in #6418

The root of the issue is that when serializing a singular filter, it is being treated as a unary filter before it is definitively established whether it is a unary filter or a field filter. The leak is caused by always serializing the unary filter's field path field for equality and non-equality filters -- if the filter's value turns out not to be NaN or null, the serialization code switches the filter's type to a field filter without clearing the partially-initialized unary filter. pb_release would not free the unary_filter.field.field_path member variable because it would consider the object not to be a unary filter.
Also a small refactoring to make the function easier to digest.

@thebrianchen Brian, notifying you just to keep you in the loop.


chore: import less variables on debug watch style

Types

[x] 🧹 Chores

Background or solution
Changelog
import less variables on debug watch style

https://github.com/opensumi/core/pull/262 这里我已经改了


codecov actions add sc and zk env

Which issue(s) this PR fixes:
Fixes #770
Use case description: None
Does this PR introduce a user-facing change?
No
Additional documentation e.g., usage docs, etc.:
No

/lgtm


添加了动画过渡效果

Add animation between every setProgress.

Hi  @zhangruize ,
It's really a marvelous feature for this tiny library!
There are some suggestions on the code part, hope you can do some update.

add a comment on the ANIMATION_DURATION  varaible, and it's better to allow developers to modify the animation_duration
allow developers to customize the Interpolator

Really thanks for your contribution on this project. 🌹


Add more paper textures

Right now we only have two paper textures, but even just two or three more would dramatically increase the space of generated images.
We already simulate different textures by applying several filters in the paper phase, but even small differences in the texture of the base image should translate to significant differences when gamma is modified, which in turn will mean more robust data for training edge-detection models, etc.

We may add some crumbled paper textures because this is missing in augraphy yet a very common thing to see in real life.

Great idea ... Here are a few elements of what we need to balance as we address this issue:

large files are permanently part of git history and can bloat even local copies of the git repo cloned to everyone's machines long after the files have been "deleted"
images maintained in the repo need to be "public domain" images in order to avoid licensing issues
paper might ideally be organized into collections based on categories such as historical documents vs business papers, etc
we should assess existing approaches to pulling in asset-type dependencies, which is common in other libraries that, for example, make weights for pretrained models separately downloadable; perhaps something like either the pip download command or simply hosting various collections on external google drives are options here?

Public Domain Images
At least with Bing's image search, there is an option to search only for "public domain" images, so that no licenses have to be tracked for those images.

In my previous demo, i included 2 references of open source paper texture here:

https://www.deviantart.com/bashcorpo/gallery/164984
https://flickr.com/photos/designshard/3414930446

I think the next question would be how to organize those paper texture in the repo. Should we just include a text file with links to those paper textures? Or include them in each separated folder with a text file link to the source?

We can't safely include many additional files, both because they increase the size of the repository and because they might have conflicting licenses. Determining which license an image is released under is often quite difficult; often people will post "free" images but intend these only for personal use, and don't want them affiliated with any commercial or public use.
We could probably include 2 or 3 more images of different textures that we find with a public domain search, like @jboarman suggested above. For any other textures, maybe we could make a wiki page with a list of links to some good textures we find. This way the textures are available to anyone who wants them, but they aren't included in our project directly.

I could see us adding a mechanism for consuming published collections from Google Drive folders by using gdown to pull down those community-sourced collections.  This would also be a helpful addition to scenarios like shared Google Colab notebooks where image management can be a pain.

I could see us adding a mechanism for consuming published collections from Google Drive folders by using gdown to pull down those community-sourced collections. This would also be a helpful addition to scenarios like shared Google Colab notebooks where image management can be a pain.

Yes, this would be great since we can just use the mechanism to retrieve those paper / font in the colab notebooks, and eventually it will benefit the other user who use our repo too.

This is now immediately solvable with the addition of FigshareDownloader.
We need to source some open/public license additional paper textures, as well as stamps, stains, clips, holes, etc. and upload them to the Sparkfish account's Figshare collections.
Can we start collecting these in Google Drive for now? I'd like to have a source link for all images, so we can keep track of licensing & attribution info.

Between FigshareDownloader and manually downloading image files to put into augraphy/paper_textures, we can call this settled.


Change ChainProxy on the fly.

I have some tasks, each task use an independent ChainProxy, when one task is done, the LP should not  stop and its ChainProxy should be changed for next task,
I've implemented my own ChainedProxyManager:
private InetSocketAddress chainedProxy;
private String chainedProxyCredentials;

@Override
public void lookupChainedProxies(HttpRequest httpRequest,
        Queue<ChainedProxy> chainedProxies) {

    if (chainedProxy != null) {
        chainedProxies.offer(new ChainedProxyAdapter() {
            @Override
            public InetSocketAddress getChainedProxyAddress() {
                return chainedProxy;
            }

            @Override
            public void filterRequest(HttpObject httpObject) {
                if (StringUtils.isNotBlank(chainedProxyCredentials)) {
                    if (httpObject instanceof HttpRequest) {
                        HttpHeaders.addHeader((HttpRequest)httpObject, HttpHeaders.Names.PROXY_AUTHORIZATION, "Basic " + chainedProxyCredentials);
                    }
                }
            }
        });
    }

}

public void setChainedProxy(InetSocketAddress chainedProxy) {
    this.prevChainedProxy = this.chainedProxy;
    this.chainedProxy = chainedProxy;
}

public void setChainedProxyCredentials(String chainedProxyCredentials) {
    this.chainedProxyCredentials = chainedProxyCredentials;
}

hopefully it can change LP's ChainProxy without restart, but actually doesn't work, its always the first task's ChainProxy, How can I achieve this goal: change ChainProxy on the fly?

The ChainedProxyManager instance cannot be replaced once the proxy has started, but it doesn't need to offer the same ChainedProxy instances to the chainedProxies Queue. The ChainedProxyManager can offer different ChainedProxy instances based on the request, or the CPM's internal state, etc.
Unfortunately there is one limitation: After a ProxyToServerConnection is created for a given connection, it will be reused. This means that the ChainedProxy instance used during the first connection will be reused if the request is coming from the same client connection to the same server (IP+port). This is a limitation I would like to address during the ConnectionFlow refactor, but in the meantime, as a crude work-around, you could have the ChainedProxy add a Connection: close header to responses.

@jekh thank u very much,

you could have the ChainedProxy add a Connection: close header to responses.

this is work for me:
@Override
public void lookupChainedProxies(HttpRequest httpRequest,
        Queue<ChainedProxy> chainedProxies) {

    if (chainedProxy != null) {
        chainedProxies.offer(new ChainedProxyAdapter() {
            @Override
            public InetSocketAddress getChainedProxyAddress() {
                return chainedProxy;
            }

            @Override
            public void filterRequest(HttpObject httpObject) {
                if (StringUtils.isNotBlank(chainedProxyCredentials) && httpObject instanceof HttpRequest) {
                    HttpHeaders.addHeader((HttpRequest)httpObject, HttpHeaders.Names.PROXY_AUTHORIZATION, "Basic " + chainedProxyCredentials);
                }
                if (closeConnection && httpObject instanceof HttpResponse) {
                    ((HttpResponse)httpObject).headers().add(HttpHeaders.newEntity(Names.CONNECTION), HttpHeaders.newEntity(Values.CLOSE));
                }
            }
        });
    }

}

@jekh did this limitation be removed?


[red-knot] Use POSIX representations of paths when creating the typeshed zip file

Summary
This PR fixes the bug that caused the tests added in https://github.com/astral-sh/ruff/pull/11970 to fail. In the higher-level ruff_db::vendored::VendoredFileSystem abstraction we use for querying whether files exist in the zip file, all paths are normalized to use POSIX path separators before they're looked up in the underlying zip archive. But when we're creating the zip archive in build.rs, we're currently just using the operating system's default path separator (\\ on Windows!). If we normalize the path separator in the ruff_db abstractions, we need to also do so in build.rs.
Test Plan
cargo test -p red_knot_module_resolver still passes for me on macOS; hopefully it will also pass on Windows in CI. I'm pretty confident this is the cause of the test failures we saw on https://github.com/astral-sh/ruff/pull/11970: in a PR to my fork here, I added some debug prints so we could figure out what was going on with Windows, and you can see that the zip file on Windows has paths such as stdlib\\abc.pyi instead of stdlib/abc.pyi: https://github.com/AlexWaygood/ruff/pull/10.

Not sure I understand. I think that's all that I'm doing. All that this PR does is use path_slash to change \s to /s before writing the files to the zip archive at build time.


Show useful error messages in the cloud for too large files

From @zzottel on August 6, 2014 8:58
I just tried to upload a 24M video to my cloud using the web interface and ran into some problems that didn't show any useful error messages. If it's possible to throw good error messages at this point, it would be very nice if that was done.

If post_max_size in php.ini is set to a too small value (was 8M in this case), SabreDAV throws an XML error message that says it doesn't have a handler for this POST method.
If post_max_size is large enough (I set it to 100M), but upload_max_filesize is too small (default was 8M, too), Red just silently returns without doing anything or displaying an error message. I.e. the current cloud directory is shown, but with no new contents that should have been uploaded.

Additionally, setting the maximum image size on the admin page doesn't seem to have an effect on uploading a video. I'm not sure if this is intended, i.e. this size really only applies to images, so I just mention that. (Set it it to 10,000,000 and could upload the 24M video nevertheless.)
Copied from original issue: friendica/red#552

From @ghost on August 8, 2014 14:39
That particular error message is the failsafe "Something went wrong, God knows what" error from upstream.    Error reporting itself needs to be improved upstream before we can present something useful.  And, in fairness, it's quite tricky to find errors in foreign projects (note it's PHP/Apache, etc failing, not Sabre) where you don't now where the logs are - so this might be a wontfix.
On our end, we can do better, but not by much - we can put out an "Something went wrong" info box or something, but it's not immediately obvious how we'd manage to find an error that was actually useful without sending you off to your logs.

From @zzottel on August 8, 2014 15:2
Hm. I hoped there would be a method to find out how large the file to be uploaded is, and then check that size against those PHP variables before the actual upload begins, or have some callback that can cancel the upload in this case and display an error message or something like that.

From @pafcu on August 10, 2014 8:0
It seems like failure due to file size is a quite likely scenario (server defaults are often quite small), so why not suggest it as a possible source of failure, e.g. "Upload failed for an unknown reason. Maybe the maximum size of uploaded files is restricted on the server?". This would at least provide a hint where to look and how to fix it.

From @zzottel on August 8, 2014 18:23
I think Gallery3 has something like that. I'll try and see if I can find some code next week, but the project is a labyrinth.

From @ghost on August 8, 2014 17:43
Yeah, that was my initial thought too, but I'm working on the assumption that if something so obvious worked, they would have already done it upstream.  Maybe not, but it does sound like a chicken and egg problem.

From @hdi-kw on August 11, 2014 10:57
Some weeks ago I made some tests with writing a SabreDAV plugin and own exceptions which hooks into the whole process quite early. It was to check against quotas and free disk limits. Got kicked off computer and internet since then and had no time to finish it. Haven't tried, but I think it should also be possible to check for these limits.

@zzottel This issue is closed because Redmatrix evolved into Hubzilla. When this is still an issue in the most recent version of Hubzilla, please recreate this issue over there. We're sorry for any inconvenience this will maybe give you.


Beta

Doneness:

[X ] Build is okay - I made sure that this change is building successfully.
[X] No Bugs - I made sure that this change is working properly as expected. It doesn't have any bugs that you are aware of.
[X ] Branching - If this is not a hotfix, I am making this request against master branch

:white_check_mark: Build Titanium-Web-Proxy 3.0.645 completed (commit https://github.com/justcoding121/Titanium-Web-Proxy/commit/c8f21274e7 by @justcoding121)


Running pod install won't generate .xcworkspace

there's no .xcworkspace included in the git repository
running pod install will install pods from Podfile.lock, so it won't generate .xcworkspace

Is there a recommended way to generate .xcworkspace for this project?
IMO committing .xcworkspace seems to be a better approach than running pod update or removing Podfile.lock and then running pod install.

After I ran pod install an .xcworkspace was created that I was able to open.
I am not experiencing the same issue as you.


feat: Add exponential back-off in NetworkManager

Current dependencies on/for this PR:

main

PR #2881   👈

This comment was auto-generated by Graphite.


No title

Any idea what might be causing the plugin to pull the annotations without a headline? They are all titled [Object object].

Adding to this! Titles are missing - plus, private notes are not syncing.

Thanks, this issue should now be fixed in 0.1.2.  I will address private note syncing in a separate issue and a new release

@ravenscroftj - thanks for fixing the title. The imported notes still say "Web annotation by null" vs "Web annotation by "
I hope you add private notes soon!! Much needed!


Table column filters other than sorting

Do SQLPage Component for table support filters based on column values.

Hello and welcome to SQLPage! At the moment, there is no built-in client side filtering. You can implement filters using forms and a WHERE clause on the table, but there will be no special UI for it.
Would you be interested in contributing a JavaScript client side value filtering? I'd be glad to give directions.


[azure driver] docker-machine rm to remove the storage account as well

Hello,
Since you cannot choose a storage account when creating a docker-machine in Azure, the creation of each machine also creates its own, unique storage account with one blob inside (the virtual disk of the machine in question). This is fine, until you want to remove/recreate your machines - removing a machine deletes the virtual disk, but not the storage account itself. As a result I get an empty, unused and non-reusable storage account each time I docker-machine rm.
Issue #3579 explains why we cannot specify a storage account upon machine creation and I can agree with the reasoning. However, I see no reason for the storage account to remain at all and if possible, docker-machine rm should remove the storage account as well.

Hello @patuf!
We are facing the same situation, so I just exhumed your issue. We will try to fix this in a PR, because we are using Gitlab an therefore we are littering our resource group up with garbage storage accounts. You are not alone.

Ok, the PR which I've provided works in our environment, no more dangling storage accounts.

Very nice! I'll give it a try. @kleinsasserm are you planning on creating a pull request back to this repo?

Yes, I've already submitted a PR against this project #4249 :smile:

Yep, I seem to type faster than I think...


Fix init() when classpath has not been set

Calling init() crashes when classpath has not been set explicitly.
This commit fixes the issue by initializing the JVM with the default
classpath when init() is called without any classpath.

Ah, yes, this has annoyed me as well, but I've never remembered to fix it. Thanks a ton!


Mixin to add cqrs sync action on Django Admin

Adding a new admin mixin which will allow us to have a cqrs sync action available on MasterModel's pages on Django Admin Site

Great! Fix the linter, please.

Yes! Sorry about that! I've just pushed the update.


get video rejected

Version
1.13.1
Platform
Windows 10
Steps to reproduce
https://www.youtube.com/watch?v=Mx8G8aJyIiw
Details
Video Mx8G8aJyIiw is not available
but two days ago i can

Checklist

[X] I have looked through existing issues to make sure that this bug has not been reported before
[X] I have provided a descriptive title for this issue
[X] I have made sure that this bug is reproducible on the latest version of the application
[X] I have provided all the information needed to reproduce this bug as efficiently as possible
[ ] I have sponsored this project
[ ] I have not read any of the above and just checked all the boxes to submit the issue

not logged on


Move to guzzle

We want to move our HTTP backend to guzzle down the line. Things we need to take care of:

[ ] Don't break the existing SDK
[ ] How to handle the httplug requirement [https://packagist.org/packages/php-http/httplug]
[ ] Should this be a major version upgrade?
[ ] Decide between guzzle 5 and 6 (I'd prefer 6, but not everyone has upgraded there yet)
[ ] If we go with 6, do we keep supporting the older requests releases?
[ ] How to handle the razorpay-php.zip bundle we give out in our releases? This is important because we currently don't include the composer autoloader, but just the custom Requests autoloader, which only autoloads requests library. This helps us avoiding the entire composer dependency. However, guzzle probably will resolve to 10-15 dependencies which we need to autoload cleanly, even if the end-user is using the Razorpay.php file without using composer.

Assigning to @StSarc to look into this.

May I suggest not using Guzzle directly. Relying on an implementation is never good. That is why you should use HTTPlug which is an abstraction over libraries like Guzzle.

Makes sense. I need to read up a bit more on the nuance, but the idea was to use httplug.

@nemo
Should this be a major version upgrade?
I don't think so for the user nothing is changing, only internals are
Decide between guzzle 5 and 6 -> Even I would prefer guzzle 6
https://www.reddit.com/r/PHP/comments/37llgz/which_version_of_guzzle/
even for other projects either they have moved to 6 or planning to,
If we go with 6, do we keep supporting the older requests releases
can you clarify
guzzle 6 have 3 dependencies guzzlehttp/psr7, guzzlehttp/promises, psr/http-message
How to handle the httplug requirement
what do you mean by this ??

Version: I'm not entirely sure. If the upgrade is seamless, then minor upgrade should do. However, if people are likely to face dependency issues while upgrading, a major upgrade might make more sense.
Old Releases: If for some reason, someone is unable to upgrade, do we keep supporting the older releases? Or force people to upgrade?
HTTPlug: Using httpplug means that we can let the library users decide on a different implementation. httplug is an interface that says how to make requests. Various other libraries implement it, including guzzle.
That way, if someone is using an older version of guzzle, or some other request library, it would still work with it.

Version: let's decide on version at the end, as you mentioned if upgrade is seamless then minor upgrade or else major upgrade.
Old Releases: We should be supporting the older release, it doesn't make sense to force everyone to upgrade
HTTPlug: Do we want to give that much flexibility to users, debugging may be difficult. Your call, in my view, if we can restrict the user to a single library it is better.

The reason we can rely better on httplug is because it gives users flexibility to switch between implementations. This is important in case you have other libraries that rely on a specific guzzle version, for eg.

Aside: Requests 1.7 is now out: https://github.com/rmccue/Requests/releases

@captn3m0 we have been using Request since the beginning ,and users also depend on it for updates as well. We will regularly add the updated Request.
Closing for now . will reopen if needed


why your data have only "0" label?

why your data have only "0" label? I try your network,only 90% acc.

can you please explain what you're trying to do, with code, etc?

I am an intern. Just an experiment to help me know credit-card-fraud.

Can you show me the code of what you've done so far?


When input fields are blank, IP Host "+1" button crashes app

+1 button performs a calculation that uses the value of a field. If the field is blank, the calculation fails.
Fixed by changing button code to "elif event == '-NEXT_HOST-' and last_params:"
If all fields are blank, last params = None, and button event is ignored.

Fixed by changing button code to "elif event == '-NEXT_HOST-' and last_params:"
If all fields are blank, last params = None, and button event is ignored.
Will update version to 0.11.9


Add bet amount when making an estimate

Users have to bet a fixed amount when they are making an estimate
Create a pda that stores peer score which is used for payout when poll is resolved

Accounts are getting too big and making estimates fails. Removing one account, (I tried removing either user_score or user_estimate_update) and make_estimate transaction did not fail. Try Address Lookup Table to solve issue.


secondChanged/minuteChanged triggeres not always

Hello
I have a problem with the secondChanged method:
in one method of my class it does return true only about every 2-5 minutes, in another method of the same class it triggeres as espected every second.
code sample (stripped down to the basics)
void AnyClass::methodA() {
    Serial.println("entered method A")
    uint8_t hours = clockTimezoned.hour();
    uint8_t minutes = clockTimezoned.minute();

    if (secondChanged()) {
        Serial.printf("Time %u:%u", hours, minutes);
    }
}

void AnyClass::methodB() {
    if (secondChanged()) {
        Serial.println("Testing B");
    }
}

the main loop:
loop() {
    events();
    AnyClass.methodA();
    AnyClass.methodB();
}

As result I see:

an enormous amount of entered method A, which is expected and serves only a proof, that this method is really called
every second Testing B which is also expected
every 2-5 minutes Time X:X, which is the problem.

Any idea whats wrong here and how to fix/debug this any further?

Hi,  I too an experiencing reliability issues minuteChanged() and secondChanges() it seems to be linked to when an MQTT message is received and acted upon  around the time the clock transitions from 59 seconds to zero seconds and minutes are incremented.  It seems as though the 'timing' to increment minutes is missed.  The clock does correct itself after a minute or two.  The error occurs randomly and not for every transition from 59 to 0.  Like you I have events() in my main loop.  In the manual the description of events() refers to 'loop functions' i.e in the plural so I am wondering if events() need to be called more than once in different functions.  I am using an ESP8266 BTW.
To me it is fundamental that time increments with 100% reliability or otherwise this library cannot be used.

It's really only meant to be polling once, because internally there is a variable _last_read_t used to determine if the change was already presented. Never thought of wanting to check it from two places, usually people just have a loop and need to do this themselves if they want to prevent flicker of a display. I guess you'll just have to store it yourself in the second place and see if it changed.

Fixed the documentation in commit 71a6baf to add

Note that this uses a single variable internally to store when the time was last accessed, so your code can only poll this in one place.

The library does not have a daemon running. The only thing that happens magically in the background is the ESP itself increasing the millisecond counter. ezTime is all just code that you call which then uses this counter to figure out what time it is. What that means is that if some other code is doing things at the the time second or minute changes, you will learn about it later.

Hi, thank you for your responses so far, to be absolutely clear I was only using the minuteChanged() function in one place, in the main loop immediately after events().  I was only musing that maybe it had to be called multiple times, from your remarks the intent is that it is called once.  Good, that's clear, however it still does not increment the display as I expected it to. Below is the code in my loop.
void loop()
{
events();
if (minuteChanged())
{
tft.setTextColor(TFT_MAGENTA, TFT_BLACK);
tft.drawString( (myTZ.dateTime("H:i:s")), 0, row2, 6 );
}
if (secondChanged())
{
tft.setTextColor(TFT_MAGENTA, TFT_BLACK);
tft.drawString( (myTZ.dateTime("s")), posnSec, row2, 6 );
}
if (millis() >= timerxs) stateloop();  // called every 100 mS
mqttClient.loop();                   // process MQTT subscribed topics
ArduinoOTA.handle();
keeplive();
}
Could you clarify what 'learn about it later means' please.
In your last response you ask 'is that what I mean'?  Yes, I think it is, or put another way - What happens if some other code is running at the point the minutes increment should occur?  howdo I ensure the minute update is not missed?

Hmmm, I'm just wondering about something... Do things get better if you drop the minuteChanged check and in secondChanged do a if (now() % 60)
See too many ways my code doesn't cut it all of a sudden. I may redo this to have separate vars for presenting minutes changed and seconds changed, it seems like I wrote this too much with only one too specific use case in mind. Thank you for reporting...

Hi Rop,  I'll try that later, i was wondering about doing something similar.  There is so much I like about your library I want to stick with it.  I'll keep you posted.

I'll try to make it work for you, within the limitations of what ezTime is. With that I mean that on modern processors such as the ESP, one could do cooler things such as running one's own process. But that doesn't translate all the way down to the original Arduino that ezTime also has to work on.

Hi Rop,
I did as you suggested and put the if (now() % 60) into the secondChanged() and the minute update has not failed in about 6 hours.  I ran two separate rows of time on the TFT display one showing time using minuteChanged(), the second row showing time with the modified secondChanged().  I could see the minute change errors in row 1.
Its getting late I’ll feedback more tomorrow.
Bob
From: Rop Gonggrijp<EMAIL_ADDRESS>Sent: 21 May 2020 10:31
To: ropg/ezTime<EMAIL_ADDRESS>Cc: bobcroft<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [ropg/ezTime] secondChanged/minuteChanged triggeres not always (#91)
Hmmm, I'm just wondering about something... Do things get better if you drop the minuteChanged check and in secondChanged do a if (now() % 60)
See too many ways my code doesn't cut it all of a sudden. I may redo this to have separate vars for presenting minutes changed and seconds changed, it seems like I wrote this too much with only one too specific use case in mind. Thank you for reporting...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/ropg/ezTime/issues/91#issuecomment-631985802 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVDXISVBVQTTNHHFCNPILTRSTYFNANCNFSM4NF7XUCQ .

Just wanted to report, that I faced the same issue when checking secondChanged and minuteChanged in the same frame.
I used the (now() % 60 == 0) workaround, since secondChanged always fired correctly and minuteChanged not even once.
With the workaround it runs fine now. Not a big deal :) thanks for this lib

I call secondChanged() only one place in loop(). it triggers very irregularly.
const int WX_CURRENT_SHORT_INTERVAL = 10; // WeatherBit has 500 requests per day limit ( 2 min 53 sec )
const int WX_CURRENT_LONG_INTERVAL = 60;  // intervals are in minutes
void loop()
{
static bool shouldUpdateCurrent = true;
events();
if (secondChanged())
{
DEBUG_PRINTLN(dateTime("H~:i~:s"));
updateFrame();
}
// set intervals every current short interval
int currentInterval = WX_CURRENT_SHORT_INTERVAL;
if (minute() % WX_CURRENT_SHORT_INTERVAL == 0)
{
// long intervals from midnight to 7 am
if (hour() < 7)
{
currentInterval = WX_CURRENT_LONG_INTERVAL;
}
// check if this interval needs current WX update
if (minute() % currentInterval == 0)
{
if (shouldUpdateCurrent)
{
getWXcurrent();
shouldUpdateCurrent = false;
}
}
else
{
shouldUpdateCurrent = true;
}
}
} // loop()
Output:
17:33:51
17:33:52
17:33:55
17:33:58
17:34:00
17:34:01
17:34:02
17:34:03
17:34:06
17:34:09
17:34:14
17:34:16
17:34:17
17:34:18
17:34:25
17:34:26
17:34:29
17:34:32
17:34:34
17:34:35
17:34:36
17:34:42
17:34:43
17:34:45
17:34:46
17:34:47
17:34:49
17:34:52
17:34:53
17:34:54
17:34:58
17:34:59
17:35:00
17:35:01
17:35:02
17:35:04

I am on ezTime 0.8.3 on a ESP32-C3. I do not set any #defines in my project.
I call secondChanged() only in one place in loop(), which runs non-blocking. Mainly TickerTwo are called from loop.
secondChanged() actually triggers any time called.
I made a simple custom function, now it works perfectly:
int8_t wasSecond = -1;
bool mySecondChanged() {   if (second() != wasSecond)   {     wasSecond = second();     return true;   }   else   {     return false;   } }

Tried it, but it doesn't compile.
void loop() {
int8_t wasSecond = -1;
bool mySecondChanged()
events();
{ if (second() != wasSecond) { wasSecond = second();
return true;
} else { return false; } }
}


simple version comparison for tag validation

very simple implementation for version parsing discussed in https://github.com/asdf-format/asdf-standard/issues/271
This should enable the following syntax to work:
tag: http://stsci.edu/schemas/asdf/core/software-* # allow every version
tag: http://stsci.edu/schemas/asdf/core/software-1 # fix major version
tag: http://stsci.edu/schemas/asdf/core/software-1.2 # fix minor version
tag: http://stsci.edu/schemas/asdf/core/software-1.2.3 # fix patch version

closing this in favor of #858


Generated client tests Guid for nullability

I have several endpoints that expect a Guid as parameter. The client does correctly generate code for those but it always tests for null:
        public async System.Threading.Tasks.Task CustomersActivateAsync(System.Guid id, System.Threading.CancellationToken cancellationToken)
        {
            if (id == null)
                throw new System.ArgumentNullException("id");

....

Since Guid can't be null, this gives me a lot of "The result of the expression is always 'false' since a value of type 'Guid' is never equal to 'null' of type 'Guid?' warnings.
Is there a way that I can prevent that null check?

I just realized that this is fixed with #3156 and I just wasn't on the latest version. I'm sorry.


where to download the cve data

where to download the cve data in your code.

The NVD data download starts with the NvdCveUpdater.

And how to know if the NVD CVE data is updated

As I stated before - all of this is in the NvdCveUpdater.


Implement a basic Drone Server healthcheck

To complement the Agent healthcheck implemented in #2209, add something similar for Drone Server.
Minimum checks:

Database connectivity.
The server being able to even generate a 2xx.

Worth consideration:

Pinging the remote provider (Github, Bitbucket, Stash, Code.net, etc)

The healthz endpoint can implement reporting based on different parameters.
/healthz (basic, the drone server is up and running and can connect to db, what schedulers and etc should ping)
/healthz?components=agent,queue (agents are pinging, queue fine, etc)
/healthz?components=all (github is up, etc)

I just pushed https://github.com/drone/drone/commit/bb8c569249db8fe42cac7fee6d8c50e3b46b68ca which adds the /healthz and /version endpoints to the server. The healthceck is a basic database ping returning a 200 on success and 500 on error.

I hope to spend some time documenting this.
I noticed there are health checks available for the agent as well on :3000.


AAM dataset to AEP clarifications

Issue in ./help/sources/connectors/adobe-applications/audience-manager.md
Can we add detail about each of the datasets that come from AAM on if they are record class or experience event class, as well as if they go to just the profile store vs. the data lake.
As I understand only certain datasets from AAM go to the data lake while some only go to profile store.
Having this information added to the table of datasets would be helpful.

Tracking internally: https://jira.corp.adobe.com/browse/PLAT-110670

Tracking internally: https://jira.corp.adobe.com/browse/PLAT-110670


how to use ca-certificates.crt aria2

Checklist

[X] I'm asking a question and not reporting a bug/feature request
[X] I've looked through the README
[X] I've read the guidelines for opening an issue
[X] I've searched the bugtracker for similar questions including closed ones

Question
how to use ca-certificates aria2c in yt-dlp for windows 7

Verbose log
No response

pass the option in --downloader-args
e.g. --downloader-args "aria2c:--ca-certificate=blah"
--downloader-args NAME:ARGS      Give these arguments to the external
                                 downloader. Specify the downloader name and
                                 the arguments separated by a colon ":". For
                                 ffmpeg, arguments can be passed to
                                 different positions using the same syntax
                                 as --postprocessor-args. You can use this
                                 option multiple times to give different
                                 arguments to different downloaders (Alias:
                                 --external-downloader-args)

why error
[youtube] qosyUGyFA8w: Downloading webpage
[youtube] qosyUGyFA8w: Downloading android player API JSON
[info] qosyUGyFA8w: Downloading 1 format(s): 247+251
[download] Destination: ????????? Part.1 ?1? ????????ShiningArk? [qosyUGyFA8w].f
247.webm

02/25 15:06:27 [ERROR] Failed to load trusted CA certificates from blah. Cause:
error:02001005:system library:fopen:Input/output error

02/25 15:06:27 [ERROR] CUID#7 - Download aborted. URI=https://rr5---sn-poqvn5u-j
b3k.googlevideo.com/videoplayback?expire=1645797985&ei=AY4YYqDAD8yI4t4Ppc6w4Ac&i
p=<IP_ADDRESS>&id=o-ABKekgvSgXw_0HDREhYquasHxFZxc07Rf4dzf__iQ-Dc&itag=247&sour
ce=youtube&requiressl=yes&mh=TY&mm=31%2C26&mn=sn-poqvn5u-jb3k%2Csn-un57enel&ms=a
u%2Conr&mv=m&mvi=5&pl=24&pcm2=yes&initcwndbps=121250&vprv=1&mime=video%2Fwebm&gi
r=yes&clen=75173241&dur=1103.533&lmt=1629398081017954&mt=1645774846&fvip=5&keepa
live=yes&fexp=24001373%2C24007246&c=ANDROID&txp=5316224&sparams=expire%2Cei%2Cip
%2Cid%2Citag%2Csource%2Crequiressl%2Cpcm2%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt
&sig=AOq0QJ8wRQIhANaW7VeH6wCe9Cg32DVHCNDxWga5sUBtjZ01jD1NxsiWAiBv5hDeK_00nU8Rkr0
L-2RqLXL8rcccSpoSg2jABpG8NQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Ci
nitcwndbps&lsig=AG3C_xAwRQIhAIiAMPsJno8vKNGlbjEYK_a4HVQKCq92okiXrecZ2sr8AiADS8RO
Kf404eajy5jB4X06tXg507EWTdhMtbz970wtMw%3D%3D
Exception: [AbstractCommand.cc:351] errorCode=1 URI=https://rr5---sn-poqvn5u-jb3
k.googlevideo.com/videoplayback?expire=1645797985&ei=AY4YYqDAD8yI4t4Ppc6w4Ac&ip=
<IP_ADDRESS>&id=o-ABKekgvSgXw_0HDREhYquasHxFZxc07Rf4dzf__iQ-Dc&itag=247&source
=youtube&requiressl=yes&mh=TY&mm=31%2C26&mn=sn-poqvn5u-jb3k%2Csn-un57enel&ms=au%
2Conr&mv=m&mvi=5&pl=24&pcm2=yes&initcwndbps=121250&vprv=1&mime=video%2Fwebm&gir=
yes&clen=75173241&dur=1103.533&lmt=1629398081017954&mt=1645774846&fvip=5&keepali
ve=yes&fexp=24001373%2C24007246&c=ANDROID&txp=5316224&sparams=expire%2Cei%2Cip%2
Cid%2Citag%2Csource%2Crequiressl%2Cpcm2%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&s
ig=AOq0QJ8wRQIhANaW7VeH6wCe9Cg32DVHCNDxWga5sUBtjZ01jD1NxsiWAiBv5hDeK_00nU8Rkr0L-
2RqLXL8rcccSpoSg2jABpG8NQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cini
tcwndbps&lsig=AG3C_xAwRQIhAIiAMPsJno8vKNGlbjEYK_a4HVQKCq92okiXrecZ2sr8AiADS8ROKf
404eajy5jB4X06tXg507EWTdhMtbz970wtMw%3D%3D
  -> [SocketCore.cc:1018] errorCode=1 SSL/TLS handshake failure: unable to get l
ocal issuer certificate

aria2 will resume download if the transfer is restarted.
If there are any errors, then see the log file. See '-l' option in help/man page
 for details.

ERROR: aria2c exited with code 1

[download] Destination: ????????? Part.1 ?1? ????????ShiningArk? [qosyUGyFA8w].f
251.webm

02/25 15:06:27 [ERROR] Failed to load trusted CA certificates from blah. Cause:
error:02001005:system library:fopen:Input/output error

02/25 15:06:27 [ERROR] CUID#7 - Download aborted. URI=https://rr5---sn-poqvn5u-j
b3k.googlevideo.com/videoplayback?expire=1645797985&ei=AY4YYqDAD8yI4t4Ppc6w4Ac&i
p=<IP_ADDRESS>&id=o-ABKekgvSgXw_0HDREhYquasHxFZxc07Rf4dzf__iQ-Dc&itag=251&sour
ce=youtube&requiressl=yes&mh=TY&mm=31%2C26&mn=sn-poqvn5u-jb3k%2Csn-un57enel&ms=a
u%2Conr&mv=m&mvi=5&pl=24&pcm2=yes&initcwndbps=121250&vprv=1&mime=audio%2Fwebm&gi
r=yes&clen=17986479&dur=1103.561&lmt=1629398187141684&mt=1645774846&fvip=5&keepa
live=yes&fexp=24001373%2C24007246&c=ANDROID&txp=5311224&sparams=expire%2Cei%2Cip
%2Cid%2Citag%2Csource%2Crequiressl%2Cpcm2%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt
&sig=AOq0QJ8wRQIgNbeiDhPS-o3i45Dbtmv_HgSYwu3sj-yDbcfVxZJ7nRQCIQC6gkwc8QJ84dPolFy
jjf8UB58dlIDrA34eGjB1L8aniA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Ci
nitcwndbps&lsig=AG3C_xAwRQIhAIiAMPsJno8vKNGlbjEYK_a4HVQKCq92okiXrecZ2sr8AiADS8RO
Kf404eajy5jB4X06tXg507EWTdhMtbz970wtMw%3D%3D
Exception: [AbstractCommand.cc:351] errorCode=1 URI=https://rr5---sn-poqvn5u-jb3
k.googlevideo.com/videoplayback?expire=1645797985&ei=AY4YYqDAD8yI4t4Ppc6w4Ac&ip=
<IP_ADDRESS>&id=o-ABKekgvSgXw_0HDREhYquasHxFZxc07Rf4dzf__iQ-Dc&itag=251&source
=youtube&requiressl=yes&mh=TY&mm=31%2C26&mn=sn-poqvn5u-jb3k%2Csn-un57enel&ms=au%
2Conr&mv=m&mvi=5&pl=24&pcm2=yes&initcwndbps=121250&vprv=1&mime=audio%2Fwebm&gir=
yes&clen=17986479&dur=1103.561&lmt=1629398187141684&mt=1645774846&fvip=5&keepali
ve=yes&fexp=24001373%2C24007246&c=ANDROID&txp=5311224&sparams=expire%2Cei%2Cip%2
Cid%2Citag%2Csource%2Crequiressl%2Cpcm2%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&s
ig=AOq0QJ8wRQIgNbeiDhPS-o3i45Dbtmv_HgSYwu3sj-yDbcfVxZJ7nRQCIQC6gkwc8QJ84dPolFyjj
f8UB58dlIDrA34eGjB1L8aniA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cini
tcwndbps&lsig=AG3C_xAwRQIhAIiAMPsJno8vKNGlbjEYK_a4HVQKCq92okiXrecZ2sr8AiADS8ROKf
404eajy5jB4X06tXg507EWTdhMtbz970wtMw%3D%3D
  -> [SocketCore.cc:1018] errorCode=1 SSL/TLS handshake failure: unable to get l
ocal issuer certificate

aria2 will resume download if the transfer is restarted.
If there are any errors, then see the log file. See '-l' option in help/man page
 for details.

ERROR: aria2c exited with code 1

'list' is not recognized as an internal or external command,
operable program or batch file.

you need to add the path to certificates as shown in the aria2c docs
--downloader-args "aria2c:--ca-certificate=<PATH-TO-CERTIFICATE>"
as to what that path is, I'm not sure. Unless someone else here knows you'll need to look elsewhere since I think it's out of scope for yt-dlp.

If the certificate is in system store, both python and aria2c will automatically use it. The option is only to add custom certificates. So path is the path to your custom certificate


S3: Add paging to list_object_versions()

This adds paging to list_object_versions(). The original motivation was to enable moto testing for an S3 point-in-time recovery tool, where proper handling of paging is important.
CC @bblommers

Hi @bblommers. Thanks for the pointer, I wasn't aware of that decorator. Looking at it, it seems it doesn't support multiple input tokens such as key-marker + version-id-marker used by the list_object_versions call. I'll see if I can wrap my head around the inner workings and add support for it.

@sveniu You're right, that is not straightforward with the current implementation. Let's stick with this then for now, we can always refactor it later.
Looks like the linter is failing: https://github.com/getmoto/moto/actions/runs/6465933620/job/17577370491?pr=6896

Actually - it looks like the linter is failing on master as well, due to a MyPy update. I've raised #6898 to fix that.

@sveniu The linter is still failing - I think you would have to use Union[..] instead of X | Y:
https://github.com/getmoto/moto/actions/runs/6493285516/job/17635218175?pr=6896
I'll have a look at the failing Terraform tests later on.

OK, so there is a change in behaviour somewhere. The existing test that now fails, test_list_object_versions_with_delimiter, succeeds when running it against AWS, so it should pass with Moto as well.
Conversely, the new test test_list_object_versions_with_paging currently fails when running it against AWS - so something isn't quite right with the implementation.

Finally fixed how paging is done when common prefixes are involved – at least moto now behaves the same as the real S3 server there, and tests look green now.
@bblommers Dunno if you have more thoughts on this – let me know if you do.

Hi @sveniu, thanks for continuing to chip away at this!
As far as I can tell, there are still two issues with this:

the next_version_id_marker should actually point to the last version_id that is returned (naming is hard..)
objects should be sorted by type -> name -> date, so that DeleteMarkers are returned first.

Point 2 is an issue with the existing implementation, and the existing tests also do not really verify ordering. But from what I can see, this is the order in which AWS returns things:

DeleteMarkers from first object (sorted by time)
First object
DeleteMarkers from second object
Second object

If you want to test this out, I've modified the new tests slightly so that they pass against AWS.
This s3_aws_verified-decorator will automatically create the bucket for you, and will also automatically delete all objects and the bucket itself after the test ends - so you don't have to worry about having to clean your real AWS account after running these tests.
diff --git a/tests/test_s3/test_s3.py b/tests/test_s3/test_s3.py
index 63ead96d3..3d5ce2422 100644
--- a/tests/test_s3/test_s3.py
+++ b/tests/test_s3/test_s3.py
@@ -2613,11 +2613,10 @@ def test_list_object_versions_with_versioning_enabled_late():
     assert response["Body"].read() == items[-1]

-@mock_s3
-def test_list_object_versions_with_paging():
<EMAIL_ADDRESS>+@s3_aws_verified
+def test_list_object_versions_with_paging(bucket_name=None):
     s3_client = boto3.client("s3", region_name=DEFAULT_REGION_NAME)
-    bucket_name = "000" + str(uuid4())
-    s3_client.create_bucket(Bucket=bucket_name)
     s3_client.put_bucket_versioning(
         Bucket=bucket_name, VersioningConfiguration={"Status": "Enabled"}
     )
@@ -2647,7 +2646,7 @@ def test_list_object_versions_with_paging():
     assert "NextKeyMarker" in page1
     assert page1["NextKeyMarker"] == "obj1"
     assert "NextVersionIdMarker" in page1
-    assert page1["NextVersionIdMarker"] == obj1ver1["VersionId"]
+    assert page1["NextVersionIdMarker"] == obj1ver2["VersionId"]

     # Second page should be the last page and have the oldest version.
     page2 = s3_client.list_object_versions(
@@ -2668,11 +2667,10 @@ def test_list_object_versions_with_paging():
     assert page2["Versions"][0]["VersionId"] == obj1ver1["VersionId"]

-@mock_s3
-def test_list_object_versions_with_paging_and_delete_markers():
<EMAIL_ADDRESS>+@s3_aws_verified
+def test_list_object_versions_with_paging_and_delete_markers(bucket_name=None):
     s3_client = boto3.client("s3", region_name=DEFAULT_REGION_NAME)
-    bucket_name = "000" + str(uuid4())
-    s3_client.create_bucket(Bucket=bucket_name)
     s3_client.put_bucket_versioning(
         Bucket=bucket_name, VersioningConfiguration={"Status": "Enabled"}
     )
@@ -2706,7 +2704,7 @@ def test_list_object_versions_with_paging_and_delete_markers():
     assert "NextKeyMarker" in page1
     assert page1["NextKeyMarker"] == "obj1"
     assert "NextVersionIdMarker" in page1
-    assert page1["NextVersionIdMarker"] == obj1dmk1["VersionId"]
+    assert page1["NextVersionIdMarker"] == obj1dmk2["VersionId"]

     page2 = s3_client.list_object_versions(
         Bucket=bucket_name,
@@ -2728,9 +2726,9 @@ def test_list_object_versions_with_paging_and_delete_markers():

     # The next key/version markers should point to obj2 dmk1.
     assert "NextKeyMarker" in page2
-    assert page2["NextKeyMarker"] == "obj2"
+    assert page2["NextKeyMarker"] == "obj1"
     assert "NextVersionIdMarker" in page2
-    assert page2["NextVersionIdMarker"] == obj2dmk1["VersionId"]
+    assert page2["NextVersionIdMarker"] == obj1ver1["VersionId"]

     page3 = s3_client.list_object_versions(
         Bucket=bucket_name,
@@ -2756,11 +2754,10 @@ def test_list_object_versions_with_paging_and_delete_markers():
     assert "NextVersionIdMarker" not in page3

-@mock_s3
-def test_list_object_versions_with_paging_and_delimiter():
<EMAIL_ADDRESS>+@s3_aws_verified
+def test_list_object_versions_with_paging_and_delimiter(bucket_name=None):
     s3_client = boto3.client("s3", region_name=DEFAULT_REGION_NAME)
-    bucket_name = "000" + str(uuid4())
-    s3_client.create_bucket(Bucket=bucket_name)
     s3_client.put_bucket_versioning(
         Bucket=bucket_name, VersioningConfiguration={"Status": "Enabled"}
     )
@@ -2807,7 +2804,6 @@ def test_list_object_versions_with_paging_and_delimiter():
         Delimiter="with-",
         Prefix="key1",
         KeyMarker="key12-with-",
-        VersionIdMarker="",
         MaxKeys=5,
     )

By default, the test will still run against Moto, but run it against AWS like so:
MOTO_TEST_ALLOW_AWS_REQUEST=true pytest -sv tests/test_s3/test_s3.py -m aws_verified

Oh, and to answer your question - Yes, I always squash-merge, so don't worry about the commit history. :slightly_smiling_face:

Hello, just chiming in here regarding the sorting order: if you put an object then delete it without specifying the object version then running ListObjectVersions with MaxKeys=1, you will get the Versions field and not the DeleteMarkers, which shows that the time is sorted before the type. Running the test with more keys shows the order is name > time > type it seems.

I'll just merge this as is, considering it is already a major improvement on what we have now. I'll raise a separate PR with the final touches.
Thank you for all your work on this @sveniu!


api requests are not cached

hi,
Thanks for your great plugin. I have challenge with caching api requests.
vite-pwa/nuxt is installed on a nuxt 3 project and data is fetched based on api reqest. I want whenever a user get offline, page data get data from the cached api. Although all static files and components are cached successfully, api requests are not cached.
this is url of the website:

And here is the config of pwa in nuxt.config.js file:
  pwa: {
    registerType: 'autoUpdate',
    registerWebManifestInRouteRules: true,
    manifest: {
      "name": "Fares bazar",
      "short_name": "Faresbazar",
      "start_url": "/",
      "display": "fullscreen",
      "background_color": "#ffffff",
      "lang": "fa",
      "scope": "https://faresbazar.com",
      "theme_color": "#d71920",
      "icons": [
        {
          "src": "faresbazar-192.png",
          "sizes": "192x192",
          "type": "image/png"
        },
        {
          "src": "faresbazar-512.png",
          "sizes": "512x512",
          "type": "image/png"
        }
      ],
      "description": "جدیدترین و خوش‌نام‌ترین محصولات دیجیتال را براحتی از طریق نرم‌افزار فارِس بازار خرید نمایید.",
      "dir": "auto",
      "display_override": [
        "fullscreen",
        "standalone"
      ],
      "categories": [
        "shopping"
      ],
      "screenshots": [
        {
          "src": "screenshot.png",
          "sizes": "1280x800",
          "type": "image/png"
        },
        {
          "src": "screenshot.png",
          "sizes": "750x1334",
          "type": "image/png"
        }
      ]
    },
    workbox: {
      globPatterns: ['**/*.{js,css,html,png,svg,ico}'],
      runtimeCaching: [
        {
          urlPattern: 'https://api.faresbazar.com/api-frontend/*',
          handler: 'NetworkFirst',
          options: {
            cacheName: 'my-api-cache',
            expiration: {
              maxEntries: 500,
              maxAgeSeconds: 60 * 60 * 24
            }
          }
        }
      ]
      // additionalManifestEntries: [{ url: '/', revision: new Date().getTime().toString() }]
    },
    client: {
      installPrompt: true,
      periodicSyncForUpdates: 3600,
    },
  },

@prstwo api requests will NOT be cached on first navigation, workbox needs to create the cache and cannot be done when intercepting the requet, so cache will be activated on next navigation, just try reopenig the url in a new browser instance.
Beware, if https://api.faresbazar.com/api-frontend** isn't in the same origin, you will need to handle opaque requests:

add access-control-allow-origin: * or custom one http header to all app requests
add cacheableResponse: { statuses: [0, 200] } to your api cache options
read opaque requests and the navigation storage api article: each api request will be stored with a padding of 7MB, you should also add purgeOnQuotaError: true in expiration plugin options

runtimeCaching: [{
  urlPattern: 'https://api.faresbazar.com/api-frontend/*',
  handler: 'NetworkFirst',
  options: {
    cacheName: 'my-api-cache',
    expiration: { maxEntries: 500, maxAgeSeconds: 60 * 60 * 24, purgeOnQuotaError: true },
    cacheableResponse: { statuses: [0, 200] }
  }
}]

Remember to also include some offline handle logic when using nuxt fecth stuff (check error and use VueUse::useOffline in the logic).

Same issue here. Nothing above is working


added scrape-meta for lake_county_sheriff #132

Closes #132

@naumansharifwork this scraper is producing 401 errors. could you take a look when you have a moment, please?
❯ pipenv run python -m clean.cli scrape-meta ca_lake_county_sheriff -l DEBUG
2024-10-24 09:47:52,146 - clean.runner - Scraping ca_lake_county_sheriff
2024-10-24 09:47:52,146 - clean.utils - Requesting https://api.zenrows.com/v1/
2024-10-24 09:47:52,527 - clean.utils - Response code: 401
2024-10-24 09:47:52,527 - retry.api - , retrying in 15 seconds...
2024-10-24 09:48:07,534 - clean.utils - Requesting https://api.zenrows.com/v1/
2024-10-24 09:48:07,876 - clean.utils - Response code: 401
2024-10-24 09:48:07,876 - retry.api - , retrying in 30 seconds...

Hey @newsroomdev  have you tried adding the zenrows api key to the env file?

This all looks good! I followed the instructions and added the zenrows api key and successfully ran on scott. @newsroomdev this is ready to merge.


Architecture for DANN

Dear authors,
Thanks for the code release. I was curious about the fact that accuracy of method DANN (in closed set for office 31) reported in the paper is much higher than accuracies reported for it in other papers like CDAN. So I wanted to know what architecture was used for the classifier and discriminator network along with other hyperparams for your DANN implementation.
Thanks

Hi, thanks for your interest in our work.
For classifier (C), we used the same architecture as DANCE.
I guess it may improve performance. For the feature extractor, we added one linear layer (nn.Linear(2048, 2048)) on top of ResBase.
Discriminator was a two-layered model (fc1 = nn.Linear(input_size, 1024), fc2 = nn.Linear(1024, 1)), ReLU was used in fc1.
The loss was computed as follows. d_s and d_t are the output of discriminator for source and target respectively.
dloss_s = torch.mean(d_s ** 2)
dloss_t = torch.mean((1 - d_t) ** 2)
We did not apply learning rate scheduling for discriminator.

Thanks for the detailed answer. So the discriminator lr used is 0.01 for all the iterations?

No. Sorry for the confusion. The learning rate is scheduled as is done for feature extractor and classifier.

Thanks a lot 👍


Why there is no transformation from PassiveIR Image to Color Camera?

Similar the link below, depth image originally is from a fisheye camera but it can change to normal view by the transformation functions. However, there is no transformation function for IR images. So how can I do transformation for IR images? Thanks.
https://docs.microsoft.com/en-us/azure/kinect-dk/use-image-transformation

@Piler-Tam Thanks for your feedback.

If you are talking about active IR images for those depth modes (NFOV or WFOV with binned or unbinned), the depth camera produce both depth image and ir image from a single frame, they share the same camera intrinsics and extrinsics. If you want to transform ir image, you can look at this API: k4a_transformation_depth_image_to_color_camera_custom() and you can use the custom_image parameter to transform the payload from depth camera space to color space. Here, you can pass the IR image to the custom_image as  K4A_IMAGE_FORMAT_CUSTOM16 format and then select the interpolation type that you want.
If you are talking about passive IR image only, it is not possible to transform if you do not know the depth image of the scene. Please remember, passive IR means there is no active IR illumination from the depth camera, therefore, there is no depth in this mode. However, if you are setting your camera static and scene static, you can try to capture a depth image using WFOV unbinned mode, and then switch to passive IR mode to capture a passive IR image, and then use custom image transform API above to transform your passive IR image with the depth image for the exactly same scene.

@rabbitdaxi Thanks for your reply.
I am using C# but there seems no corresponding API that you mention in C. How can I do it in C#?

@Piler-Tam Thanks for pointing out. I see that there is another issue #617 which is tracking the C# API for this functionality of transform custom image, which is triage approved but not done yet.
And yes, if you are talking about passive IR, since you do need a depth image for this transformation to work, you can try to use the idea of capture a WFOV_UNBINNED depth image and then followed by capture a Passive IR image and assume during the capture of these two frames the scene is static.

@rabbitdaxi Thanks.
Since the C# API is missing, is that mean there is no way to transform passive IR image in C# now?

@Piler-Tam some thoughts on your questions:

Yes, the C# API for the transforming custom image is not there, will notify the team who works on the C# API to prioritize it. If you can work with C++/C, this API is available. But, yes, the C# API for this function need to be added.
The operating range is meant for depth, since the Passive IR is not a depth mode, therefore, it was labeled as N/A, however, you can get Passive IR signal in the image as long as you have strong enough external IR source signal with certain max distance depends on the external IR source. The native sensor resolution will sense all the external IR signal depends on how you illuminate the scene. The native sensor resolution is 1024x1024 and close to 120x120 degree same as WFOV.
For your goal, if the distortion of the image is the issue, you can try to undistort the image using the camera intrinsics. We have an example in the github for undistortion. If you want to detection some point and transform to color camera for that single point/pixel, you can call k4a_calibration_2d_to_2d or it correspondent C# API.