Image recommendations - go to Add Image Details

Phabricator: https://phabricator.wikimedia.org/T358917
Notes

This PR adds the ability to redirect the user to our existing "InsertMediaSettingsViewController" when tapping "Yes" and accepting an image recommendation for an article
Handling the wikitext is covered in another ticket, so this PR does not go beyond adding info, and does not add any actions to the insert button
We still don't have the image displaying here, as handling the image download is yet to be done on WKData
Note: since both the image title and image description text lengths are unpredictable, I'm setting a hard-coded number of lines for both to limit the size of the header view. With very large texts, it could cause the header to take over most of the view, which I considered to be a bad experience.

Test Steps

On an image recommendation, tap "Yes" on the toolbar
Make sure the layout corresponds to Figma and that the "Insert button" is only blue when there is text on the caption fields.
Make sure the button is clickable even when greyed out - no action happens but it should be clicked.
Go to the Editor and tap Add an image on an article.
Make sure it still works as usual.

Preparing review...

PR Review

 ⏱ Estimated effort to review [1-5]
4, due to the extensive changes across multiple files, including Swift code, XIB interface files, and localizations. The PR introduces new functionalities, modifies existing ones, and involves UI changes, requiring a thorough review of code logic, UI consistency, and internationalization aspects.

 🧪 Relevant tests
No

 🔍 Possible issues

Possible Bug: The hard-coded number of lines for image title and description may not handle long texts gracefully across different device sizes and orientations.

UI Consistency: Changing the navigation behavior (useSafari: true to false) might affect user expectations and app consistency.

Hardcoded URLs: URLs are hardcoded in InsertMediaSettingsViewController.swift, which could lead to maintenance issues or difficulties in future changes.
 🔒 Security concerns
No

 Code feedback:
relevant fileWikipedia/Code/InsertMediaSettingsViewController.swift
suggestion

Consider dynamically calculating the number of lines for the image title and description based on the device size and orientation to improve UI adaptability. [important]

relevant lineimageView.imageDescription = searchResult.imageDescription
relevant fileWikipedia/Code/InsertMediaSettingsViewController.swift
suggestion

For better maintainability, move URLs to a configuration file or use a URL builder utility, especially for url in TextViewType cases. This approach facilitates easier updates and centralizes URL management. [important]

relevant lineurl = "https://en.wikipedia.org" // get URL
relevant fileWikipedia/Code/InsertMediaSettingsViewController.swift
suggestion

Implement feature flags in a centralized manner or through a dedicated manager to handle feature toggling. This can improve code readability and make toggling features throughout the app more manageable. [medium]

relevant lineif FeatureFlags.needsImageRecommendations {
relevant fileWikipedia/Code/InsertMediaSettingsViewController.swift
suggestion

Refactor the insertMedia function to reduce its complexity by breaking it down into smaller functions, each handling a specific part of the logic. This can improve readability and maintainability. [important]

relevant line@objc private func insertMedia(_ sender: UIBarButtonItem) {

 ✨ Review tool usage guide:
Overview:
The review tool scans the PR code changes, and generates a PR review. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
/review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...

With a configuration file, use the following template:
[pr_reviewer]
some_config1=...
some_config2=...

  Utilizing extra instructions
The review tool can be configured with extra instructions, which can be used to guide the model to a feedback tailored to the needs of your project.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify the relevant sub-tool, and the relevant aspects of the PR that you want to emphasize.
Examples for extra instructions:
[pr_reviewer] # /review #
extra_instructions="""
In the 'possible issues' section, emphasize the following:
- Does the code logic cover relevant edge cases?
- Is the code logic clear and easy to understand?
- Is the code logic efficient?
...
"""

Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

  How to enable\disable automation

When you first install PR-Agent app, the default mode for the review tool is:

pr_commands = ["/review", ...]

meaning the review tool will run automatically on every PR, with the default configuration.
Edit this field to enable/disable the tool, or to change the used configurations

  Auto-labels
The review tool can auto-generate two specific types of labels for a PR:

a possible security issue label, that detects possible security issues (enable_review_labels_security flag)
a Review effort [1-5]: x label, where x is the estimated effort to review the PR (enable_review_labels_effort flag)

  Extra sub-tools
The review tool provides a collection of possible feedbacks about a PR.
It is recommended to review the possible options, and choose the ones relevant for your use case.
Some of the feature that are disabled by default are quite useful, and should be considered for enabling. For example:
require_score_review, require_soc2_ticket, require_can_be_split_review, and more.

  Auto-approve PRs
By invoking:
/review auto_approve

The tool will automatically approve the PR, and add a comment with the approval.
To ensure safety, the auto-approval feature is disabled by default. To enable auto-approval, you need to actively set in a pre-defined configuration file the following:
[pr_reviewer]
enable_auto_approval = true

(this specific flag cannot be set with a command line argument, only in the configuration file, committed to the repository)
You can also enable auto-approval only if the PR meets certain requirements, such as that the estimated_review_effort is equal or below a certain threshold, by adjusting the flag:
[pr_reviewer]
maximal_review_effort = 5

  More PR-Agent commands

To invoke the PR-Agent, add a comment using one of the following commands:

/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs 💎: Generate docstring for new components introduced in the PR.
/generate_labels 💎: Generate labels for the PR based on the PR's contents.
/analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

See the tools guide for more details.
To list the possible configuration parameters, add a /config comment.

See the review usage page for a comprehensive guide on using this tool.


No Video frames after reconnecting

Hi @pedroSG94
Since 2.0.1 version, after reconnecting via retry, the video packets are not sent. Only audio packets are sent.
Steps to reproduce:

Start streaming (make sure retrying mechanism is used before)
Switch from WiFi to LTE so the retry mechanism triggers
After successful connecting again, there is no video on the web player

I narrowed the issue to this commit https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/commit/479f72b2f3fdfd4eb4b6fd5ab021d30981afe629

Digging a little bit more in the latest version's code, I can see that in the Came1Base, Camera2Base, etc.
there is a method like resetVideoEncoder(). This method is being called on reTry().
But in fact, this method doesn't reset the video encoder anymore. It calls forceKeyFrame()  instead of reset(). If I change it to call the reset() method then it works fine.
I'm not sure if this is safe to do it like this because you've changed it for some reason.

I was reseting videoEncoder becasue that force to produce a keyframe (encoding always start with a keyframe)
Theoretically forceKeyFrame is used to force produce a keyframe in the encoder. With this, you don't need reset video encoder anymore.
I tested this on oneplus 7T and this is working totally fine. Maybe this method is ignored in somes devices/encoders :(
Can you tell me device model and api? I will try find a solution without reset encoder. If I can't do anything, I will roll back to old implementation using reset

I tested it on his younger brother OnePlus 6T. I've just tested on Android emulator Pixel 2 and getting the same results.
How do you test it?

I tested it using start record instead of retry and check that encoder produce a keyframe.
Can you tell me full emulator configuration to reproduce the case?

Sure, It's Pixel 2, API 30, x86, Android 11 (Google Play), front camera emulated, back camera as a webcam.
Could you try to test it with the steps I described? If you test on a local server then you can just turn off and on wifi to trigger retry.

Gradle of this fix:
implementation 'com.github.pedroSG94:rtmp-rtsp-stream-client-java:b3ee94978f'

@pedroSG94 Seems to work fine now. Thank you :)


Rework Config file structure... take 2

It seems config is still fairly convoluted, and may need some cleanup... Another proposal:
server:
  keep-alive: 75
  listen-addresses: '<IP_ADDRESS>:3000'
  worker-processes: 8

# for now connections can only support postgres.
# File sources are either auto-published or listed directly in sources
connections:
  pg1:
    # connection type is detected by the connection field
    connection: postgres://...
    default-srid: ...
    disable-bounds: ...
    pool-size: ...
    maxzoom: 10  # some values can set defaults for all sources that use this connection

# These define how sources will be auto-discovered from connections (PG) or from directories
auto-publish:
  postgres:
    - connection: pg1
      from-schemas:
        - public
        - my_schema
      tables:
        id-format: '{schema}.{table}.{column}'
      functions:
        id-format: '{schema}.{function}'
    - connection: pg2
      # ...
  mbtiles:
    - /dir/path
  pmtiles:
    - /dir/path
    - path: /dir/path
      minzoom: 0
      maxzoom: 10

# These are the "hard-coded" tile sources from different connections
sources:
  # source type is detected by filename extension
  src1: data.mbtiles
  src2:
    # publish pmtiles with extra config
    file: path/to/file.pmtiles
    maxzoom: 10
  src3:
    # publish a postgres table
    # source type is detected by the connection field referencing above connection object
    connection: pg1
    schema: foo
    table: bar
  src4:
    # Publish a postgres function
    connection: pg1
    schema: foo
    function: bar

Additionally, there are some settings to allow override generated tilejson. Any of these values can be added to any of the sources, connections, and auto-publish sections.
minzoom: 0
maxzoom: 10
name: "source name"
attribution: "source attribution"
description: "source description"
legend: "source legend"
bounds: [-10, -20, 30, 40]
center: [10.2, 34.5, 3]
version: "1.42"

Related topic is how to parse this config with serde enum - it could either be untagged, in which case user may see unexpected errors if the config value cannot be matched perfectly, or we could do it "by hand":

parse into objects like sources: HashMap<String, Value>
manually test it, e.g. sources.get("connection") is a string and starts with "postgres://" => treat as postgres.

I tried hacking on this implementation, and one already apparent annoyance is the auto-publish separation for pg:
connections:
  pg1:
    connection: postgres://...

auto-publish:
  postgres:
    - connection: pg1

The issues with the above:

multiple auto-publish for one connection
auto-publish is separate from the connection, which is kinda weird, but is inline with other sources that do not have connections (mbtiles/pmtiles)
duplicate line connection: with different meaning, and kinda verbose


"packet not allowed" when pinging an IPv6 Resource

Happening on staging the "Demo" site.

Happening on staging the "Demo" site.

@jamilbk were you able to still use firezone?
I think this can happen because of some spurious packets on ipv6 interfaces, since fd00:2021:1111::f:2225 is not a resource, it kind be some kind of service on macos auto-calculating and using that ip for something else or...
The other 2 things that ip could be is the wireguard ip for:

the client
the gateway

We should still never see a packet for neither destination on the tunnel (the packet gets wrapped with that ip later on!) so I will try to see what's going on. :

@conectado I can't recall if Firezone was still working. Maybe this IP was my WireGuard interface IP?

@conectado I can't recall if Firezone was still working. Maybe this IP was my WireGuard interface IP?

Could be the case, but it's weird that we decapsulate a packet with your own ip as a source

Yeah strange indeed. FWIW that IP I was trying to ping is a Resource (NextDNS IPv6)

Update: I think this happens when a Resource isn't being served by a Gateway (or the Gateway has no IPv6 connectivity)


Refactor tests related to ICEndpointCommandTest

The tests of ICEndpointCommandTest and several other older Test Classes have so many test smells that we are overwhelmed by all the changes that would be necessary in order to make this readable.
For example there is code duplication for setting up the email objects that will be tested which could be refactored into the setup method.
Also there are tests with a lot of assertions in one method.

In addition the tearDown in ICEndpointCommandTest does not delete the folders which it builds


Add custom calendar / datepicker support

For now I removed this strange function equality checking (with default props) and just removed default props eslint rule.
At the same time I moved customCalendar to options object which is passed down to every component (with its part of app state). In my opinion it's more intuitive place to store it and removes a must to pass it as a different prop.


Update Sketchup 2017 to 2017-9-19 build

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if updating a cask:

[x] sha256 changed but version stayed the same (what is this?).
I’m providing public confirmation below.

Additionally, if adding a new cask:

[ ] Named the cask according to the token reference.
[ ] brew cask install {{cask_file}} worked successfully.
[ ] brew cask uninstall {{cask_file}} worked successfully.
[ ] Checked there are no open pull requests for the same cask.
[ ] Checked the cask was not already refused in closed issues.
[ ] Checked the cask is submitted to the correct repo.

a534d77d1ea9622b19463258abf21768cb8bb8126734bd40329dd4088b04d79f  SketchUpMake-en.dmg

Executable=/Volumes/SketchUp 2017 (English)/SketchUp 2017/LayOut.app/Contents/MacOS/LayOut
Identifier=com.sketchup.LayOut.2017
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=22968 flags=0x0(none) hashes=712+3 location=embedded
Signature size=8940
Authority=Developer ID Application: Trimble Navigation Limited (J8PVMCY7KL)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=20 Sep 2017, 05:55:55
Info.plist entries=36
TeamIdentifier=J8PVMCY7KL
Sealed Resources version=2 rules=12 files=613
Internal requirements count=1 size=180

Executable=/Volumes/SketchUp 2017 (English)/SketchUp 2017/SketchUp.app/Contents/MacOS/SketchUp
Identifier=com.sketchup.SketchUp.2017
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=95194 flags=0x0(none) hashes=2969+3 location=embedded
Signature size=8941
Authority=Developer ID Application: Trimble Navigation Limited (J8PVMCY7KL)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=20 Sep 2017, 05:55:46
Info.plist entries=34
TeamIdentifier=J8PVMCY7KL
Sealed Resources version=2 rules=12 files=1778
Internal requirements count=1 size=180

Executable=/Volumes/SketchUp 2017 (English)/SketchUp 2017/Style Builder.app/Contents/MacOS/Style Builder
Identifier=com.sketchup.StyleBuilder.2017
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=7806 flags=0x0(none) hashes=238+3 location=embedded
Signature size=8941
Authority=Developer ID Application: Trimble Navigation Limited (J8PVMCY7KL)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=20 Sep 2017, 05:55:59
Info.plist entries=25
TeamIdentifier=J8PVMCY7KL
Sealed Resources version=2 rules=12 files=81
Internal requirements count=1 size=180

LayOut.app: valid on disk
LayOut.app: satisfies its Designated Requirement

SketchUp.app: valid on disk
SketchUp.app: satisfies its Designated Requirement

Style Builder.app: valid on disk
Style Builder.app: satisfies its Designated Requirement


FastDense is not found

Hello,
I installed all the packages and I keep getting the error that FastDense is not found/defined.  I am using the example code in the readme.
 ERROR: LoadError: UndefVarError: FastDense not defined Stacktrace:  [1] top-level scope at none:0 '
Any idea what would cause this packaging wise?

Hmmm, which version of DiffEqFlux are you on? FastDense was a recent addition.
If you go into package mode (by typing ] at the Julia REPL) and post the output of
julia> ]
(v1.3) pkg> status

that would be helpful.

[c52e3926] Atom v0.11.2
[aae7a2af] DiffEqFlux v0.4.0
[41bf760c] DiffEqSensitivity v3.2.0
[587475ba] Flux v0.8.3
[7073ff75] IJulia v1.20.0
[e5e0dc1b] Juno v0.7.2
[429524aa] Optim v0.20.1
[1dea7af3] OrdinaryDiffEq v5.14.0
[91a5bcdd] Plots v0.28.4

Are you using Julia v1.3?

[aae7a2af] DiffEqFlux v0.4.0

Ah there's your problem! v0.4.0 is very old, the current version is v1.3.1.
What version of Julia are you running? It's possible that v0.4.0 is the latest compatible with your version.
I would upgrade to Julia 1.3 and ] add DiffEqFlux again, and you should get the latest version.

ok I am running like 1.06 or whatever the most stable version is , I'l update to 1.3

Yup that explains it. There's too many dependencies that require 1.3, so this library has to require 1.3. That said, I do think that the next stable version should come out "soon" (summer?) as Julia v1.5, so that will fix a lot of these issues (since a lot of these now core features, like multithreading, are used throughout the dependencies!).


Firebase authentication error

Describe the bug
I am following the Codelab instructions for a friendly chat app . When i do firebase login , the link shown in terminal opens a page where it shows:
Authorization Error
Error 400: invalid_request
Required parameter is missing: response_type
This is the message i get and thus i can't do the further steps.
To Reproduce
Steps to reproduce the behavior:
https://firebase.google.com/codelabs/firebase-web#3
I am getting the error in step 3 here.
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

@reveurguy were you able to successfully set up your project on the https://console.firebase.google.com , if you did your credentials should work fine when you run firebase login

@reveurguy were you able to successfully set up your project on the https://console.firebase.google.com, if you did your credentials should work fine when you run firebase login

yes, the project was set up successfully, but when i open the link on running firebase login, i get the above mentioned error.

@samtstern any ideas?

Some people have mentioned this issue on the Firebase CLI repo:
https://github.com/firebase/firebase-tools/issues?q=is%3Aissue+400+response_type+
It seems that this comes from the login URL being truncated in your browser so that it's missing the code param.

I got the same error, got stuck in the authentication .

@Wasabi95, which version of firebase are you running?

10.0.1

@Wasabi95, which version of firebase are you running?

10.0.1

@Wasabi95,  try copying the full url, see if that works. mine works on 10.0.1, also post a screenshot for the error. @samtstern might be able to assist.

thanks, I will post it

Do you know how to preview a react project on GitHub pages?  I follow the instructions here https://github.com/gitname/react-gh-pages but it did not work

I followed all the steps but I got stuck in step number 8 Scale with Cloud SQL when creating file " locations.go " error error loading workspace you are outside of a module. what might be the mistake

?

Which tutorial link are you trying to set up?

I gor an erros in this codelab
https://developers.google.com/codelabs/maps-platform/full-stack-store-locator?hl=en#0
and also this one
https://firebase.google.com/codelabs/firebase-web?hl=en#0
here I got the sign in error

can you help me out with these 2 projects please ??

Will try and help with the Firebase one, the other one I haven't checked it out. Once I get to the laptop will retest and see how to solve it.

thanks

@Wasabi95 let's create some time to work on it together, let me know your availability, send me an email at<EMAIL_ADDRESS>so we can close this ticket.

Hello I replied to email provided by you, it wasnt delivered. anyway let me know when you are available, thanks

I have a problem with auth in the user interface, it does not return anything as soon as I click on signs-in, the popup window opens but does not display any form to connect, no error message is returned too


GQLGW-666 POC on how we might replace $argument things

Please make sure you consider the following:

[ ] Add tests that use __typename in queries
[ ] Does this change work with all nadel transformations (rename, type rename, hydration, etc)? Add tests for this.
[ ] Is it worth using hints for this change in order to be able to enable a percentage rollout?
[ ] Do we need to add integration tests for this change in the graphql gateway?
[ ] Do we need a pollinator check for this?

redundant


add test coverage and bump version number

Shoot, I thought this was the best way to preserve the commit history (appreciate your PR!) and also keep the discussion on the right github page. But I didn't realize this was creating a PR on your branch. Closing this, didn't mean to create work for you @howech.


Ability to get parsed json-rpc request

@pavlov99 Travis failed with strange error "An error occurred while generating the build script."

@smagafurov, It was merged with rebase commit. Because this pull request was not rebased properly it introduced several issuer with merge to master. Currently they are resolved.

@smagafurov new version released: https://pypi.python.org/pypi/json-rpc/1.10.7
Thanks for your contribution.


Change Name to CMaize

Per the Slack discussion changing the name of this repo should help distinguish between the CMakePP organization (which is not changing) and this repo (which was often abbreviated to CMakePP). The proposal was to change the name to CMaize mainly because it's short, sounds a bit like "amaze", and for it's Iowa connotations.

Done via #49


Credentials +  sts and default aws cli expectations

On the maturity path for organizations using aws there's often a step where engineers move away from using local IAM API key credentials that have a wide range of access towards a model where they leverage temporary assumed role based access for specific actions.
This is common enough that its built directly in aws cli tooling
One point of friction I've run into with introducing rusoto based cli tooling is that it's credential provider supports the most basic case of reading access keys and secret keys from credential files.
I'm interested in removing this friction. I realize that it is possible to provide similar functionality but it seems tool developers need to reimplement that for each tool made.
I'm looking for suggested direction where one would be able to export AWS_PROFILE and be able to assume rusoto tools would pick up on aws credential configs that declare a source profile and role to assume.
Since rusoto sts depends on core and core depends on credential, credential could not easily depend on sts. There is an impl of a credential provider for sts in the sts crate but it doesn't seem to leverage the aws credential file the rest of aws tooling supports.
Is there any interest from others using rusoto within there organizations for praying a more out of the box solution that brings rusoto up to parity with what some aws users expect?
I don't yet know how much of a special case I am.

The request is to add the role_arn/source_profile functionality to ProfileProvider, right? I think that should be possible.
(In terms of organization usage, I've found the role_arn/source_profile functionality to be limited — it doesn't work with credential_process, see https://github.com/boto/botocore/issues/1329#issuecomment-348358369 — so I tend to not use it in favor of using credential_process with some nice scripts everywhere.)

sts functionality lives in a crate that depends on core and core depends on credential

Oh, right. That's a rough issue.
Maybe we can move the ProvideAwsCredentials trait into a rusoto_credential_core, so that sts can depend on that and credential can depend on sts?

It also seems that a profile/config file reading API, usable for other non-built-in callers to use, would be handy. This would help for new (unhandled/unsupported) configuration scenarios like in #1120 where they're having to parse the config files in order to make the desired STS call with their mfa tokens.


Migrate PLSS Monument AGOL App

Benefit
Esri AGOL Minimalist Instant app template is in mature support. Need to migrate all production apps in the UGRC AGOL that use that template to a different one.
Acceptance Criteria

[x] Choose a different AGOL Minimalist template
[x] Load map and data into new template
[ ] Update links to app from wherever they currently exist

Notes
Current app is: https://utah.maps.arcgis.com/apps/Minimalist/index.html?appid=16b3f737cc024606a3fb0de815bd08fb
Risks
No response
Issue Reference
refs #223

Here is a link to the new draft PLSS Monument app. I will review with @seanfernandez . If he doesn't have any suggested revisions, then I will make this public and replace existing links to the old app.

I created this short link for you! https://s.utah.gov/plss-mrrc


drivers: can: add accessor functions for the CAN statistics

Add accessor functions for the individual CAN statitics.
Add a simple test to validate that the CAN statistics accessor functions can be called from user mode threads.
Print the CAN statistics when showing CAN controller details via the CAN shell module.

@alexanderwachter, @str4t0m, @karstenkoenig: Please review.


Https certificate expired for https://alpha.prylabs.net/participate

https://alpha.prylabs.net/participate
Faucet errors out due to the invalid certificate

This has been resolved.


Mood decay Bug

Mood decay increases when saving to a file and then reloading it.

This issue has been fixed.
The initial tick value is now being correctly saved onto a file, in the ConcreteEmotionalState Class.
This can be seen in the .rpc file, particularly the: "initialTick" variable. It indicates at what tick the Emotion was fired.


Propose to add example

closes https://github.com/MicrosoftDocs/OfficeDocs-SharePoint-PowerShell/issues/281

Docs Build status updates of commit 61b3153:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Get-SPOMalwareFileContent.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@JohanFreelancer9

@tseward @dariomws

@tiburd Please merge this PR. Thanks

Docs Build status updates of commit a3604e8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Get-SPOMalwareFileContent.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Unable to launch main.py

When I try to launch Main.py through the terminal (Python3 main.py), I get the following error.
Traceback (most recent call last):
File "/home/kiki/steam-presence/main.py", line 1147, in
main()
File "/home/kiki/steam-presence/main.py", line 920, in main
checkForUpdate()
File "/home/kiki/steam-presence/main.py", line 902, in checkForUpdate
if int(new) > int(old):
^^^^^^^^
I have tried to delete and git clone the folder to maybe fix it, but it ended not working

i dont have time to look into it right now, for now you can remove the checkforupdate() function call or whatever it's called right under main()

nvm i think i figured it out, i just fucked up the release version yesterday, just git pull it and it should be working

actually you shouldnt have to git pull, it should just work


Setting logLevel to 0 (as integer) in helm chart values doesn't render into container args

Describe the bug:
Setting the logLevel to 0 in the helm chart values is supposed to pass a verbosity arg to the container in the rendered deployment manifests. Instead, if the global.logLevel value is set to 0 (as an unquoted integer) in the helm command or passed in as an entry in the values.yaml (or other file), no verbosity arg is rendered for the deployment container specs.
Expected behavior:
Setting the global.logLevel value (either via a file passed to the helm command or using the --set global.logLevel=0) should render the following deployment manifest:
---
# Source: cert-manager/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
...
spec:
  ...
  template:
    ...
    spec:
       ...
       containers:
        - name: cert-manager-controller
          image: "quay.io/jetstack/cert-manager-controller:v1.11.0"
          ...
          args:
          - --v=0
          - --cluster-resource-namespace=$(POD_NAMESPACE)
          ...
        ...

Steps to reproduce the bug:
For example,
helm template cert-manager jetstack/cert-manager \
  --version v1.11.0 \
  --set global.logLevel=0 \
  --dry-run --output-dir helm

renders the following args in the deployment manifest:
---
# Source: cert-manager/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
...
spec:
  ...
  template:
    ...
    spec:
       ...
       containers:
        - name: cert-manager-controller
          image: "quay.io/jetstack/cert-manager-controller:v1.11.0"
          ...
          args:
          - --cluster-resource-namespace=$(POD_NAMESPACE)
          ...
        ...

Likewise, setting the global.logLevel value to 0 in a values.yaml file gives the same result.
helm template cert-manager jetstack/cert-manager \
  --version v1.11.0 \
  --values global-loglevel.yaml \
  --dry-run --output-dir helm

## global-loglevel.yaml
global:
  logLevel: 0

Anything else we need to know?:
Setting the 0 value in a values.yaml as a quoted string will render the arg in the container spec. Also, setting any other value (as a string or integer) will render the arg in the container spec.
## global-loglevel.yaml
global:
  logLevel: "0"

helm template cert-manager jetstack/cert-manager \
  --version v1.11.0 \
  --values global-loglevel.yaml \
  --dry-run --output-dir helm

---
# Source: cert-manager/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
...
spec:
  ...
  template:
    ...
    spec:
       ...
       containers:
        - name: cert-manager-controller
          image: "quay.io/jetstack/cert-manager-controller:v1.11.0"
          ...
          args:
          - --v=0
          - --cluster-resource-namespace=$(POD_NAMESPACE)
          ...
        ...

Unfortunately, quoting the 0 like --set global.logLevel="0" doesn't seem to work either.
Environment details::

Kubernetes version: 1.24.7
Cloud-provider/provisioner: kind
cert-manager version: v1.11.0 (also tested on v1.10.1)
Install method: helm v3.11.1

/kind bug

Go templates treat 0 as false:

If the value of the pipeline is empty, no output is generated; otherwise, T1 is executed. The empty values are false, 0, any	nil pointer or interface value, and any array, slice, map, or string of length zero.

<EMAIL_ADDRESS>

Modifying the template to check for valid values works (rather than letting the if statement interpret 0 as false).
{{- if eq (.Values.global.logLevel | toString) "0" "1" "2" "3" "4" "5" }}

Thanks for reporting the issue and doing the investigation- can confirm that I can reproduce this.


Unifying workshops and training events

This subsumes #29 (recording instructors for training events), #31 (recording training events as workshops), #32 (displaying training event completion rates), #33 (showing whether training counts toward an instructor badge), and #63 (do we need a separate table for training cohorts).
Amy currently represents workshops and instructor training events using completely separate models.  @wking has suggested unifying them; I agree that makes sense, but want to think through the implications before diving in.
Background:

A regular workshop is represented by an Event instance.
The things people can do at regular workshops (instructor, helper, learner, organizer) are enumerated by Role.
What a particular person did at a particular event is recorded by Task.
A specific offering of instructor training is recorded by Cohort.
Someone's instructor training status (in-progress, complete, incomplete) is enumerated by TraineeStatus.
Someone's participation in a particular round of instructor training is recorded by Trainee.

Translations:

Event and Cohort have start dates, venues, and slugs.
Cohort doesn't have most of the other things Event has, but they can be filled in:

published is True.
project (which enumerates SWC, DC, etc.) can be made TTT (train the trainers).
organizer can be software-carpentry.org
url can be NULL (or I can retroactively create pages for instructor training sessions).
reg_key can be NULL.
attendance can be the number who enrolled.
admin_fee can be $0.0.
notes can be empty.

One special case: Cohort doesn't have an end date right now; instead, it has an active field to show whether some people are still in training in that cohort.  As @wking pointed out, we could use an end date instead to show that a round of training has ended.  The only trick with this is that we don't know end dates for instructor training in advance (online courses can drag one).  However, enddate can already be NULL, so that seems straightforward.
Cohort does have a qualifies field to show whether this training qualifies someone to become an instructor.  We can get rid of that and simply mark people who took part in non-qualifying training rounds as done, then not issue them a badge.

The harder part is figuring out what to do about TraineeStatus.  The simplest answer is, don't bother, since we can infer status as follows:

registered = listed as a learner in a training event that hasn't started yet
in_progress = listed as a learner in a training event that has started but hasn't finished
complete = listed as a learner in a training event and have an instructor badge (but see below)
incomplete = listed as a learner in a training event that has finished, but don't have a badge (but see below)

However, this isn't completely accurate: someone may enrol in a training event, fail to complete, then enrol in a later one and complete that.  We need to track outcomes on a per-cohort basis, so a more complex possibility is to add another possibility to the Role enumeration: incomplete.  Someone would then be listed as either learner or incomplete for a particular training event.  This is more accurate (and removes the need for inference), but now we have an enumeration state that only applies to participants in training events, not in regular workshops.

On Sat, Jan 10, 2015 at 05:43:50AM -0800, Greg Wilson wrote:

url can be NULL (or I can retroactively create pages for
instructor training sessions).

I'd just set it to NULL, since events without public websites should
be fine.

*   `attendance` can be the number who enrolled.

I think attendance should be the number who attended, but see #64
for more finely-grained attendance details.  If we don't have the
information to distinguish between enrollees and attendees, then using
enrollees for attendance is an acceptable hack.

One special case: Cohort doesn't have an end date right now;
instead, it has an active field to show whether some people are
still in training in that cohort.  As @wking pointed out, we could
use an end date instead to show that a round of training has
ended.  The only trick with this is that we don't know end dates
for instructor training in advance (online courses can drag one).
However, enddate can already be NULL, so that seems
straightforward.

And you only need to use NULL when you can't even guess the end date
(which is Event.end, the date-ness being part of that fields type and
not its name).  We can always update Event.end as we revise the
estimate.

Cohort does have a qualifies field to show whether this
training qualifies someone to become an instructor.  We can get
rid of that and simply mark people who took part in non-qualifying
training rounds as done, then not issue them a badge.

I wasn't aware that there were multiple rounds or classes of
instructor training.  Since we may eventually want student badges for
our regular (non-instructor-training) Events, how about:
class Event(models.Model):
…
badge = models.ForeignKey(
Badge, null=True, blank=True,
help_text='Badge awarded to learners for completing this event')
…
and then set Event.badge to the instructor badge for badge-worthy
instructor-training Events.  Additional out-of-class requirements
(like landing a pull request) will make this awkward, so I'd consider
adding that information to the database as well.  Maybe:
class Event(models.Model):
…
additional_assignments = models.ManyToManyField(
Assinment, blank=True,
help_text='Additional out-of-class assignments required to recieve the badge')
…
class Assignment(models.Model):
name = models.CharField(max_length=STR_MED, unique=True)
class PersonAssignment(models.Model):
person = models.ForeignKey(Person)
assignment = models.ForeignKey(Assignment)
completed = models.DateField(null=True, blank=True)
and set PersonAssignment.completed when a person completes a given
assignment.  The way I've set that up means that there's only one
Assignment for each name (e.g. if I have two Events which both require
the 'Land a SWC pull request' Assignment, the student will only have
to land one pull request to satisfy both Events).  If we want a
separate Assignment for each Event, we'd drop
Event.additional_assignments and use:
class Assignment(models.Model):
name = models.CharField(max_length=STR_MED)
event = models.ForeignKey(Event)

… a more complex possibility is to add another possibility to the
Role enumeration: incomplete.

I think you mean Task, and I'd prefer avoiding potential
double-negatives with Task.complete.

Someone would then be listed as either learner or incomplete for
a particular training event.  This is more accurate (and removes the
need for inference), but now we have an enumeration state that only
applies to participants in training events, not in regular
workshops.

I can imagine students at regular events skipping out early and thus
being incomplete.  It's hard to imagine an instructor or organizer
skipping out early though, so maybe just add a new Role for
‘graduate’.  Then post-workshop, any learners who successfully
attended/completed the course-work would get a new ‘graduate’ Task
associating them with the event.  I'd keep their earlier ‘learner’
Task to make it easy to make consistent queries on “folks who were
registered for this Event, regardless of whether they completed it”.


my side of the story

Hi! Thanks for your submission.
Unfortunately it seems that there were changes in the main that conflict with yours.
Could you please perform a merge as described in Tutorial 3 slides 90-103 and integrate those changes?
Start with synchronizing your local main with my upstream main as described in slide 98.
We do not want to lose any existing content, so you should keep what others have written and add yours.
You're free to reorganize the content blocks so that it still makes a story, but please do minimal changes
to the content of what others have written to integrate them with yours.
You have time until the 20th of October at 23:00.
If you can't make it by that time or you are done before the deadline,
please add a comment in github so that I can progress with another student.

I accepted both changes and now there seems to be no conflicts. Hope we are good to go!

Thanks for your contribution! Task 2 completed! See canvas for results


introText problem

introText not working

Got this:
> Could not find method introText() for arguments [Test Run Completed:] on object of type com.alexleventer.slack.SlackExtension.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org


ParallelRunner.movePath semantics broken by #741

It is no longer a move, it is a copy.

Can this be closed?

Yes
Sent from my iPhone

On Mar 23, 2016, at 12:01 PM, Sahil Takiar<EMAIL_ADDRESS>wrote:
Can this be closed?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub


Rodauth::Rails.rodauth method should call attributes_before_type_cast on ActiveRecord model

By default rodauth-rails uses integer column to store status and defines enum :status, unverified: 1, verified: 2, closed: 3 in Account model.
Whenever instance of such Account model is passed to Rodauth::Rails.rodauth(account: account) it calls attribues method on it. But ActiveRecord attributes returns string values not the integer value stored in database.
Then some rodauth internal methods fail, such as
def allow_resending_verify_account_email?
   account[account_status_column] == account_unverified_status_value
end

Where account[account_status_column] returns eg "unverified" while account_unverified_status_value  is set to 1.
I think Rodauth::Rails.rodauth method shoudl call attributes_before_type_cast on ActiveRecord model.

That makes sense to me 👍🏻 Would you like to submit a pull request for it? If not, I could probably work on it next week.

Fixed in https://github.com/janko/rodauth-rails/pull/293.


RFC: RawHTML Component

One day there was a proposal to use Fragment for this, ie <Fragment dangerouslySetInnerHTML...> as it does not include "any wrapping element"

@theKashey https://github.com/facebook/react/issues/12014

I only need to point out while it is not relevant directly I have never seen an HTML Processing Framework that does not allow to easily use RAW HTML respect that point is earned by React. I will keep that example referenced for years it will illustrate how scary you can design a frontend lib.
At present people need to parse HTML into a DOM Tree to parse it back into react create an element and react itself offers nothing to assist in that process.
compare that to for example vue it uses raw html :) nothing needed to use rawHtml :)

I really dont understand why this is not possible right now...

I think, since React gets used more and more with things like gatsby and thus with CMS's, a RawHTML-Component would make sense.

Is there a workaround that is available now?

@tyteen4a03 yes that is one possible solution the general solution is to use a parser like  "parse5": "^5.1.1", thats what your package is using and write a tree adapter for react i am working on one at present

I feel like this would be a very helpful feature for the project I'm currently working on. 👍
Doing universal rendering with micro frontends created a demand for being able to inject raw HTML inside React components for us and I don't feel like serving the entire HTML parser to the client just to get rid of the redundant wrapper.
I hope this gets some attention!

This feature will make injecting custom html into _document in next.js much easier. vercel/next.js#3105 vercel/next.js#3904

Hey @bvaughn 👋  you mentioned the best way forward is the RFC process. Can you help direct us what the next step is from here?
I saw the README mentioned "Eventually, the team will decide whether the RFC is a candidate for inclusion" but it's unclear if we need to ping you all, or maybe submit this RFC for team review perhaps?

@jayphelps RFC process is still the appropriate path for this kind of issue/feature, but we can't guarantee any kind of timeline for RFC review or approval. (For what it's worth, the team does generally try to read and keep up-to-date with open RFCs. WE just don't have the bandwidth for much extra at the moment.)

My use case for this is in a gatsby project using server side rendering (gatsby-ssr.js) to populate the contents of head with the inline script for a NewRelic Browser Agent fetched using this api which produces a json document with the NewRelic loader script e.g.:
{
  "browser_applications": [
    {
      "id": 123456789,
      "name": "my-app-name",
      "browser_monitoring_key": "NRJS-9999999999999999999",
      "loader_script": "<script type=\"text/javascript\">\n;window.NREUM||(NREUM={});NREUM.init ... snip ...

So wrapping the contents of loader_script in a div would of-course be incorrect. There are other ways I can solve this, however the proposed RawHTML would be the cleanest!

In the spirit of #182 — no particular update on this. We're doing work on a new streaming server renderer (https://github.com/reactwg/react-18/discussions/37) so I'll check with the team if there are any new constraints that would influence this.

A usecase that would be a bit easier to achieve:
    <>
      {/* It is not possible to render the html of a React-rendered component without a container
          because dangerouslySetInnerHTML is the only route to get raw html into the resulting html */}
      <kaliber-component-container dangerouslySetInnerHTML={{ __html: renderedComponent }} />

      {/* Use render blocking script to remove the container and supply the correct  comment nodes.
          This ensures the page is never rendered with the intermediate structure */}
      <script dangerouslySetInnerHTML={{ __html: restructureDomNodes(componentInfo) }} />
    </>

function restructureDomNodes(componentInfo) {
  return `|var d=document,s=d.currentScript,p=s.parentNode,c=s.previousSibling;
          |p.setAttribute('${containerMarker}','');                             // set marker on container so we can retrieve nodes that contain components
          |p.replaceChild(d.createComment('start'),c);                          // replace kaliber-component-container element with a 'start' comment
          |p.insertBefore(d.createComment(JSON.stringify(${componentInfo})),s); // create a comment containing the component info
          |Array.from(c.childNodes).forEach(x=>{p.insertBefore(x,s)});          // insert all children from the kaliber-component-container element
          |p.replaceChild(d.createComment('end'),s);                            // create an 'end' comment
          |`.replace(/^\s*\|/gm, '').replace(/\s*\/\/.*$/gm, '').replace(/\n/g, '')
}

We use this to render components without a container on the server. On the client we extract the nodes to hydrate them.
This strategy allows us to render containers on the server and have CSS layout their interactive children without the hassle of an 'unneeded' container.

@sassanh <React.Fragment dangerouslySetInnerHTML={{__html: '<p>'}} />

React is a cross-platform framework (React Native, Ink, other custom renderers etc.), so DOM-specific props on React.Fragment is unlikely.

@satya164 Right, I will replace React.Fragment with ReactDOM.RawHTML then.

Checked through https://github.com/facebook/react/issues/12014, seems no one has mentioned another case: component-level caching on React SSR (may be helpful to React Native, too?).
// app.jsx
import { Cache } from 'components/Cache';

<Cache cacheKey={cacheKey}>
  {/* Some compute-intensive component here */}
</Cache>

// components/Cache.jsx
// This can also be implemented as an HoC
import { cacheStore } from 'path/to/some_kind_of_cache_implementation';

export const Cache = ({ cacheKey, children }) => {
  if (cacheStore.has(cacheKey)) {
    return <ReactDOM.RawHTML dangerouslySetInnerHTML={{ __html: cacheStore.get(cacheKey) }} />
  }
  cacheStore.set(cacheKey, ReactDOMServer.renderToString(children));
  return children;
}

This probably isn't a huge interest, but I'm working on writing a tool to translate google closure templates (aka soy templates) into React/JSX and this would be really helpful in maintaining the output behavior

I know this is a hack but for my use case this allows me to inject arbitrary html inside head tags:
const HeadComment = ({ before = "", text = "", after = "" }) => (
  <script dangerouslySetInnerHTML={{ __html: `</script>${before}${text}${after}<script>` }} />
);

Usage:

const EmailHead = ({ title = "" }) => {
  return (
    <head>
      <title>{title}</title>
      <HeadComment
        before="<!--[if !mso]><!-->"
        text={`<meta http-equiv="X-UA-Compatible" content="IE=edge">`}
        after="<!--<![endif]-->"
      />
    </head>
  )
}

The output will leave some empty script tags along the way which is not optimal but it works:
<html>
  <head>
    <title>Title</title>
    <script></script>
    <!--[if !mso]><!-->
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <!--<![endif]-->
    <script></script>
  </head>
  <body></body>
</html>

I found many opensource participants, but no one from React team with power to check if this RPC is acceptable or need to be upgrade?
I know there is no guarantee for RFC timeline, but it has been 2 years.

@denghongcai the problem is that it does not rely work with the core principles of how react works
react parses dom and or html strings into unfed react dom model so the way to create compat is to parse html to the react dom model to enable raw HTML
while out of dev view it is more simple to isolate react components into its own parts and not attach a parsed tree to the react part
maybe i should draw a model to make that more understand able.
<raw html />
<some_react />

never!
<raw html />
<some_react><raw html /></some_react>

i know this maybe gets downvotes because it is handy to take react apps that use the whole document and then modifie them but thats how react is that is not my opinion but the code that is needed to take raw html to react dom is a beast it self.
all existing solutions do parse the HTML to ReactDOM

Obviously this is incredibly stalled, but is there any possibility of dangerouslySetOuterHTML on regular DOM elements in JSX? There's a good chance it would screw with the VDOM, but man I would just like to see any solution to get this issue chugging along.


Uploading error.

Hello i have all the same libraries as in your list and that from other sites. I can upload Dan code that this was based off of. however i get a error when trying to upload. Error is below. I never saw any of theses errors before.
Invalid library found in C:\Users\jJcSystems\Documents\Arduino\libraries\TTGO-T-Watch-master: no headers files (.h) found in C:\Users\jJcSystems\Documents\Arduino\libraries\TTGO-T-Watch-master In file included from C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020\DudleyWatch\DudleyWatch.ino:33:0: C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020/DudleyWatch.h:44:8: error: 'RTC_Date' does not name a type  EXTERN RTC_Date tnow;         ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020/DudleyWatch.h:130:8: error: 'TFT_eSPI' does not name a type  EXTERN TFT_eSPI *tft;         ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020/DudleyWatch.h:131:8: error: 'AXP20X_Class' does not name a type  EXTERN AXP20X_Class *power;         ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020/DudleyWatch.h:231:8: error: 'TTGOClass' does not name a type  EXTERN TTGOClass *ttgo;         ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020\DudleyWatch\DudleyWatch.ino: In function 'void update_step_counter()': DudleyWatch:47:18: error: 'ttgo' was not declared in this scope    step_counter = ttgo->bma->getCounter();                   ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020\DudleyWatch\DudleyWatch.ino: In function 'void resetStepCounter()': DudleyWatch:51:3: error: 'ttgo' was not declared in this scope    ttgo->bma->resetStepCounter();    ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020\DudleyWatch\DudleyWatch.ino: In function 'void bright_check()': DudleyWatch:57:7: error: 'power' was not declared in this scope    if (power->isVBUSPlug()) {        ^ DudleyWatch:66:5: error: 'ttgo' was not declared in this scope      ttgo->setBrightness(screen_brightness);       // 0-255      ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020\DudleyWatch\DudleyWatch.ino: In function 'void low_energy()': DudleyWatch:78:9: error: 'ttgo' was not declared in this scope      if (ttgo->bl->isOn()) {          ^ DudleyWatch:95:53: error: 'AXP202_INT' was not declared in this scope              erret = gpio_wakeup_enable ((gpio_num_t)AXP202_INT, GPIO_INTR_LOW_LEVEL);                                                      ^ DudleyWatch:99:53: error: 'BMA423_INT1' was not declared in this scope              erret = gpio_wakeup_enable ((gpio_num_t)BMA423_INT1, GPIO_INTR_HIGH_LEVEL);                                                      ^ DudleyWatch:135:35: error: 'lv_disp_trig_activity' was not declared in this scope          lv_disp_trig_activity(NULL);                                    ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020\DudleyWatch\DudleyWatch.ino: In function 'void Serial_timestamp()': DudleyWatch:179:29: error: 'ttgo' was not declared in this scope    Serial.printf("%s UTC\n", ttgo->rtc->formatDateTime());                              ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020\DudleyWatch\DudleyWatch.ino: In function 'void setup()': DudleyWatch:213:16: error: 'EEPROM_SIZE' was not declared in this scope    EEPROM.begin(EEPROM_SIZE);                 ^ DudleyWatch:253:3: error: 'ttgo' was not declared in this scope    ttgo = TTGOClass::getWatch();    ^ DudleyWatch:253:10: error: 'TTGOClass' has not been declared    ttgo = TTGOClass::getWatch();           ^ DudleyWatch:255:3: error: 'tft' was not declared in this scope    tft = ttgo->tft; // just a shorthand for ttgo->tft    ^ DudleyWatch:256:3: error: 'power' was not declared in this scope    power = ttgo->power; // just a shorthand for ttgo->power    ^ DudleyWatch:258:19: error: 'TFT_BLACK' was not declared in this scope    tft->fillScreen(TFT_BLACK);                    ^ DudleyWatch:259:21: error: 'TFT_YELLOW' was not declared in this scope    tft->setTextColor(TFT_YELLOW, TFT_BLACK); // Note: the new fonts do not draw the background colour                      ^ DudleyWatch:264:21: error: 'AXP202_BATT_VOL_ADC1' was not declared in this scope    power->adc1Enable(AXP202_BATT_VOL_ADC1 | AXP202_BATT_CUR_ADC1 | AXP202_VBUS_VOL_ADC1 | AXP202_VBUS_CUR_ADC1, AXP202_ON);                      ^ DudleyWatch:264:44: error: 'AXP202_BATT_CUR_ADC1' was not declared in this scope    power->adc1Enable(AXP202_BATT_VOL_ADC1 | AXP202_BATT_CUR_ADC1 | AXP202_VBUS_VOL_ADC1 | AXP202_VBUS_CUR_ADC1, AXP202_ON);                                             ^ DudleyWatch:264:67: error: 'AXP202_VBUS_VOL_ADC1' was not declared in this scope    power->adc1Enable(AXP202_BATT_VOL_ADC1 | AXP202_BATT_CUR_ADC1 | AXP202_VBUS_VOL_ADC1 | AXP202_VBUS_CUR_ADC1, AXP202_ON);                                                                    ^ DudleyWatch:264:90: error: 'AXP202_VBUS_CUR_ADC1' was not declared in this scope    power->adc1Enable(AXP202_BATT_VOL_ADC1 | AXP202_BATT_CUR_ADC1 | AXP202_VBUS_VOL_ADC1 | AXP202_VBUS_CUR_ADC1, AXP202_ON);                                                                                ^ DudleyWatch:264:112: error: 'AXP202_ON' was not declared in this scope    power->adc1Enable(AXP202_BATT_VOL_ADC1 | AXP202_BATT_CUR_ADC1 | AXP202_VBUS_VOL_ADC1 | AXP202_VBUS_CUR_ADC1, AXP202_ON);                                                                                ^ DudleyWatch:265:20: error: 'AXP202_VBUS_REMOVED_IRQ' was not declared in this scope    power->enableIRQ(AXP202_VBUS_REMOVED_IRQ | AXP202_VBUS_CONNECT_IRQ | AXP202_CHARGING_FINISHED_IRQ, AXP202_ON);                     ^ DudleyWatch:265:46: error: 'AXP202_VBUS_CONNECT_IRQ' was not declared in this scope    power->enableIRQ(AXP202_VBUS_REMOVED_IRQ | AXP202_VBUS_CONNECT_IRQ | AXP202_CHARGING_FINISHED_IRQ, AXP202_ON);                                               ^ DudleyWatch:265:72: error: 'AXP202_CHARGING_FINISHED_IRQ' was not declared in this scope    power->enableIRQ(AXP202_VBUS_REMOVED_IRQ | AXP202_VBUS_CONNECT_IRQ | AXP202_CHARGING_FINISHED_IRQ, AXP202_ON);                                                                         ^ DudleyWatch:269:25: error: 'AXP202_EXTEN' was not declared in this scope    power->setPowerOutPut(AXP202_EXTEN, AXP202_OFF);                          ^ DudleyWatch:269:39: error: 'AXP202_OFF' was not declared in this scope    power->setPowerOutPut(AXP202_EXTEN, AXP202_OFF);                                        ^ DudleyWatch:270:25: error: 'AXP202_DCDC2' was not declared in this scope    power->setPowerOutPut(AXP202_DCDC2, AXP202_OFF);                          ^ DudleyWatch:271:25: error: 'AXP202_LDO3' was not declared in this scope    power->setPowerOutPut(AXP202_LDO3, AXP202_OFF); // audio device                          ^ DudleyWatch:272:25: error: 'AXP202_LDO4' was not declared in this scope    power->setPowerOutPut(AXP202_LDO4, AXP202_OFF);                          ^ DudleyWatch:283:11: error: 'BMA423_INT1' was not declared in this scope    pinMode(BMA423_INT1, INPUT);            ^ DudleyWatch:304:11: error: 'AXP202_INT' was not declared in this scope    pinMode(AXP202_INT, INPUT);            ^ C:\Users\jJcSystems\Documents\Arduino\libraries\T-watch-2020\DudleyWatch\DudleyWatch.ino: In function 'void loop()': DudleyWatch:392:12: error: 'ttgo' was not declared in this scope     rlst =  ttgo->bma->readInterrupt();             ^ DudleyWatch:397:2: error: 'power' was not declared in this scope   power->readIRQ();   ^ DudleyWatch:425:12: error: 'ttgo' was not declared in this scope     rlst =  ttgo->bma->readInterrupt();             ^ DudleyWatch:428:8: error: 'ttgo' was not declared in this scope     if (ttgo->bma->isStepCounter()) {         ^ DudleyWatch:434:2: error: 'power' was not declared in this scope   power->readIRQ();   ^ DudleyWatch:539:7: error: 'ttgo' was not declared in this scope        ttgo->tft->fillScreen(TFT_BLACK);        ^ DudleyWatch:539:29: error: 'TFT_BLACK' was not declared in this scope        ttgo->tft->fillScreen(TFT_BLACK);                              ^ DudleyWatch:540:7: error: 'tft' was not declared in this scope        tft->setTextSize(1);        ^ Multiple libraries were found for "WiFi.h"  Used: C:\Users\jJcSystems\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi  Not used: C:\Program Files (x86)\Arduino\libraries\WiFi Multiple libraries were found for "SD.h"  Used: C:\Users\jJcSystems\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\SD  Not used: C:\Program Files (x86)\Arduino\libraries\SD Multiple libraries were found for "Ethernet.h"  Used: C:\Users\jJcSystems\Documents\Arduino\libraries\Ethernet  Not used: C:\Program Files (x86)\Arduino\libraries\Ethernet exit status 1 'ttgo' was not declared in this scope
Joseph

I don't know how you and the other guy have this problem, but it's not the code.
Something is horribly defective with your installation.
Read the beginner docs here:
https://github.com/wfdudley/T-watch-2020/blob/master/docs/how-to-build-watch.md

I don't know how you and the other guy have this problem, but it's not the code.
Something is horribly defective with your installation.
Read the beginner docs here:
https://github.com/wfdudley/T-watch-2020/blob/master/docs/how-to-build-watch.md

I can upload the lillygo watch library and code i can upload the example default code with no problem. I can also upload Dan Geiger code with no problem.
Joseph

I can upload the lillygo watch library and code i can upload the example default code with no problem. I can also upload Dan Geiger code with no problem.
Joseph

Let me try again.

Let me try again.

If you figure it out, let me know.
There's another guy who gets the same million errors as you.
Bill Dudley
This email is free of malware because I run Linux.
On Wed, Jan 6, 2021 at 5:51 PM Therealjosephchrzempiec <
<EMAIL_ADDRESS>wrote:

Let me try again.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/wfdudley/T-watch-2020/issues/25#issuecomment-755764766,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI4VYU4A74462J667LMHFFTSYTSODANCNFSM4VYE52WA
.

If you figure it out, let me know.
There's another guy who gets the same million errors as you.
Bill Dudley
This email is free of malware because I run Linux.
On Wed, Jan 6, 2021 at 5:51 PM Therealjosephchrzempiec <
<EMAIL_ADDRESS>wrote:

Let me try again.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/wfdudley/T-watch-2020/issues/25#issuecomment-755764766,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI4VYU4A74462J667LMHFFTSYTSODANCNFSM4VYE52WA
.


Krakend not work perfect

Describe what are you trying to do
I think krakend is great! Easy to use and config, clear config file. So I setup krakend as a gateway for my api clusters. very simple, https request in, offload ssl, and distrbute the requests to backend api server.
The only thing need to notice is use a path param and transfer to backend. As the config file discripted.
The test is well. The request send, and the expect result responsed. seemingly.  Check the background running log, there are some unexpect information here, as below.
When I go for a performace test, there are somethings wrong. Some request not finished properly. I think its related with the wrong status of krakend.
I check the website but I have not found useful information about my situation. Could somebody have the same isuue and any advice?
Some information of my environment:
Your configuration file
{ "version": 2,
"port": 8443,
"tls": {
"public_key": "/opt/kproxy/_w.ulsc.local.pem",
"private_key": "/opt/kproxy/_w.ulsc.local.key"
},
"timeout": "3s",
"output_encoding": "json",
"extra_config": {
"github_com/devopsfaith/krakend-gologging": {
"level" : "WARNING",
"prefix": "[KRAKEND]",
"syslog": false,
"stdout": true
}
},
"endpoints": [{
"endpoint": "/score/{b64param}",
"extra_config": {
"github.com/devopsfaith/krakend-ratelimit/juju/router": {
"maxRate": 10000
}
},
"backend": [{
"url_pattern": "/score/{b64param}",
"host": [
"http://d205.ulsc.local:8011",
"http://d205.ulsc.local:8012",
"http://d205.ulsc.local:8013",
"http://d205.ulsc.local:8014",
"http://d207.ulsc.local:8011",
"http://d207.ulsc.local:8012"
]
},{
"url_pattern": "/api",
"host": [ "http://d205.ulsc.local:8011" ]
}]
}]
}
Commands used
krakend run -c api.json
Logs
If applicable, any logs you saw in the console and debugging information
[GIN] 2021/07/07 - 17:50:05 | 200 |    45.67798ms |   <IP_ADDRESS> | GET      "/score/eyJoYXNoaWQiOiI0Y2YyMzM5ODQ1NGRlY2VkMWQ3OTkwNGZkYTJiY2JmY2E3Zjc2YTZkYzg3MjBmYjAifQ"
Error #01: Invalid status code
[GIN] 2021/07/07 - 17:50:05 | 200 |   50.039002ms |   <IP_ADDRESS> | GET      "/score/eyJoYXNoaWQiOiIyMmViZmZmZWM3MGI3M2Q5OWY0N2QxZTE1ZTczNmUwN2JmMjAxYmMyNGUzNWQzODAifQ"
Error #01: Invalid status code

@yanjh007 , endpoints with more than one backend require merging and, as stated at the documentation (https://www.krakend.io/docs/v1.3/endpoints/response-manipulation/#merging), the merger can return a partial (incomplete) response if anything nefarious happens (wrong status code, timeout, etc):

The merge operation is implemented in a way where user experience and responsiveness goes first. It does its best effort to get all the required parts from the involved backends and returning the composed object as soon as possible.

in your example, it looks like one of the backends returned an error (invalid status code), so the merger returned a partial response. in order to know if that's the case, you can check the response header X-Krakend-Completed


Use asciicast image link

You may be interested in embedding asciicast as image link.

Thanks for the tip :)


gradle build failed

Description
As an [Actor], I want [feature] so that [why].
Error when I execute the build
Acceptance Criteria

[Criteria 1]

Steps to Reproduce (Bug)

[Step 1]
[Step 2]
[Step ...]

Expected behavior: [What you expect to happen]
Actual behavior: [What actually happens]
Frequency: [What percentage of the time does it occur?]
Logs (if a bug)
Please post relevant logs from Besu (and the consensus client, if running proof of stake) from before and after the issue.
Errors occurred while build effective model from /Users/binny/.gradle/caches/modules-2/files-2.1/org.eclipse.platform/org.eclipse.swt/3.124.100/95a7ddc41b5a1771a7b69a47e9488a2c09ef5098/org.eclipse.swt-3.124.100.pom:
    'dependencies.dependency.artifactId' for org.eclipse.platform:org.eclipse.swt.${osgi.platform}:jar with value 'org.eclipse.swt.${osgi.platform}' does not match a valid id pattern. in org.eclipse.platform:org.eclipse.swt:3.124.100
Errors occurred while build effective model from /Users/binny/.gradle/caches/modules-2/files-2.1/org.eclipse.platform/org.eclipse.swt/3.124.100/95a7ddc41b5a1771a7b69a47e9488a2c09ef5098/org.eclipse.swt-3.124.100.pom:
    'dependencies.dependency.artifactId' for org.eclipse.platform:org.eclipse.swt.${osgi.platform}:jar with value 'org.eclipse.swt.${osgi.platform}' does not match a valid id pattern. in org.eclipse.platform:org.eclipse.swt:3.124.100
Errors occurred while build effective model from /Users/binny/.gradle/caches/modules-2/files-2.1/org.eclipse.platform/org.eclipse.swt/3.124.100/95a7ddc41b5a1771a7b69a47e9488a2c09ef5098/org.eclipse.swt-3.124.100.pom:

Versions (Add all that apply)

Software version: [besu --version]  main date: 20231114

Java version: [java -version]  java version "<IP_ADDRESS>" 2022-08-18 LTS

OS Name & Version: [cat /etc/*release]  macOS m1

Kernel Version: [uname -a] Darwin binnys-MacBook-Pro.local 22.6.0 Darwin Kernel Version 22.6.0: Wed Jul  5 22:22:05 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T6000 arm64

Virtual Machine software & version: [vmware -v]

Docker Version: [docker version]

Cloud VM, type, size: [Amazon Web Services I3-large]

Consensus Client & Version if using Proof of Stake: [e.g. Teku, Lighthouse, Prysm, Nimbus, Lodestar]

Smart contract information (If you're reporting an issue arising from deploying or calling a smart contract, please supply related information)

Solidity version [solc --version]
Repo with minimal set of deployable/reproducible contract code - please provide a link
Please include specifics on how you are deploying/calling the contract
Have you reproduced the issue on other eth clients

Additional Information (Add any of the following or anything else that may be relevant)

Besu setup info - genesis file, config options
System info - memory, CPU

@binny1024 these messages are warnings only - "does not match a valid id pattern" - the gradle build completes successfully and these messages can be ignored. Let us know if you're still having issues!


Change big red button from nopickpocket to conditional

https://cdn.discordapp.com/attachments/473525651043909642/1022198810874757240/Screenshot_20220921-113240_Brave.jpg
Per spading, fails to drop when YRed, so it is not "just" nopp.

What  is the necessary condition?


Add license information

Hello!
I found your project from https://hackaday.com/2022/06/21/a-simple-rp2040-based-audio-dsp-board/
Could you please add information about the license of this repository — is it allowed to copy, change and use the code, PCB files and images in any purpose?
It would be great to see any popular open source license.

I have added LICENSE.md. It is licensed under the MIT License.

MIT — great! Thank you!


Unable to connect to the GitHub API , Please check your internet connection. Installed in WSL

Describe the bug
After installing this in WSL and logging in I receive the below message.
To Reproduce
Steps to reproduce the behavior:

Install extension in WSL workspace
Login to Github and authorise with org
See error

Expected behavior

Install extension in WSL workspace
Login to Github and authorise with org
It Works as expected

Screenshots

Extension Version
v0.25.3
Additional context
Add any other context about the problem here.

I have the same issue. When I click Refresh I get no error, only this message:

Clicking on the Refresh button (in the GitHub Actions tab) does nothing for me either. Checking the developer console in VS Code, I'm seeing the following error:
ERR command 'github-actions.explorer.refresh' not found: Error: command 'github-actions.explorer.refresh' not found
    at v.k (vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1552:2618)
    at v.executeCommand (vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1552:2534)
    at async i.open (vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:615:42187)
    at async h.open (vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:615:43698)

I am investigating this bug now and was able to repro.
There are a couple of workarounds for now that worked for me using WSL Ubuntu 22.04 that you can try for now while I investigate:

Login to VS Code on Windows without connecting to WSL first, then connect to WSL
Login, see the failure, reload VS Code (Ctrl + Shift + P, then type in Developer: Reload Window)

I'm actually seeing this bug on a (M1) Mac rather than Windows. It seems to not be installing at all. The VS Code developer console shows the following after attempting to uninstall and reinstall the plugin:
Activating extension 'github.vscode-github-actions' failed: Not Found.

This should be fixed in the newly released version 0.25.4

         ](https://user-images.githubusercontent.com/7976517/230437901-26d94b4c-6bc5-40be-b402-739acc7faac1.gif)

This didnt fix it for me. It says Unable to find a Git executable I am guessing I would need to install Git in Windows first

@KetchupOnMyKetchup  This is still happening to me in v0.26.2

This fixed this issue for me:
https://github.com/github/vscode-github-actions/issues/251#issuecomment-1936306267


Include the original (prettyfied) version of dist/main.iife.js

dist/main.iife.js is a minimized file, which should be included in releases, but pure source codes should also include the original version.
Can you please include it? You can call it something like dist/main.iife_original.js.

I meant for the CDN version which is a standalone file that doesn't rely on anything else but itself.
Since it's a completely standalone file, could you please include its original prettyfied version in the source code. It's possible to use convertors to prettyfy it unofficially, but then all function names are lost, etc.

Project uses vitejs and rollup, I will add a new build command which takes care of that. Feature will be added in next commit.

Do you mean this part will also have a parallel  dist/main.iife_original.js file to serve as a transparent open source code?

Why was this marked as completed if there was never a next commit? This very essential script - the only file for CDN usage - is still minified. I think completion should be marked only after code is added, not before.

Because I added the requested unminified file in commit 118c73c46bed8547eea1eb5b2f6bfc52fa4fb4b3. You can see that I closed it with a commit which resolved the issue.

So just pointing out the original source is therefore /dist/source.es.js. Thanks for your commit!

Can you keep it up to date? It's currently months behind the minimized file:

Sorry, I removed this from the build process.
This is not how you are supposed to use packages.
I think you miss the knowledge of using packages,
Maybe start learning from here how to use packages
https://docs.npmjs.com/using-npm-packages-in-your-projects
If you want to include the source and use the code, then copy over the code from the src directory. Or clone this repo and build it from source.

Then you might want to delete https://github.com/codeit-ninja/SRT-Support-for-HTML5-videos/blob/master/dist/source.es.js (which is outdated) if it was a manual process to create it anyway, and you don't want to do it each time.


[Codegen][GPU] Add a contraction like operation for mma intrinsics

This operation acts like a contraction but the inner most dimensions are implicitly used as a part of a specific MMA intrinsic. This helps to decouple the tiling/unrolling requirements of the target intrinsic from the initial lowering.

I am a bit apprehensive of such ops. Before I look further... why is the existing linalg + vector contraction ops not sufficient for this. This seems to be duplicating a lot of that.

The main problem with existing linalg + vector contraction ops is the fact that the iteration space of those ops is defined by the shapes of the inputs. When trying to target these various MMA intrinsics, the shape of the inner dimensions for the intrinsic can't be represented as a part of indexing maps. One of the examples in the operation description show this lowering to loops:
    %outer_m = tensor.dim %6, %c0 : index
    %outer_n = tensor.dim %6, %c1 : index
    %outer_k = tensor.dim %4, %c1 : index
    %7 = scf.for %i = %c0 to %outer_m iter_args(%arg0 = %6) {
      %8 = scf.for %j = %c0 to %outer_n iter_args(%arg1 = %arg0) {
        %9 = scf.for %k = %c0 to %outer_k iter_args(%arg2 = %arg1) {
          %lhs = tensor.extract_slice %4 [%i, %k, 0] [1, 1, 4] [1, 1, 1] : tensor<4xf16>
          %rhs = tensor.extract_slice %5 [%k, %j, 0] [1, 1, 4] [1, 1, 1] : tensor<4xf16>
          %acc = tensor.extract_slice %arg2 [%i, %j, 0] [1, 1, 4] [1, 1, 1] : tensor<4xf32>
          %res = amdgpu.mfma %lhs, %rhs, %acc : tensor<4xf32>
          %ret = tensor.insert_slice %acc into %arg2 [%i, %j, 0] [1, 1, 4] [1, 1, 1] : tensor<?x?x4xf32>
          scf.yield %ret : tensor<?x?x4xf32>
        }
        scf.yield %9 : tensor<?x?x4xf32>
      }
      scf.yield %8 : tensor<?x?x4xf32>
    }

We could represent this with a linalg op w/ tensor<?x?xvector<4xf32>> and putting the mfma op directly inside the body of the linalg op, but I'm much more apprehensive of trying to use vector element types than an op like this, especially because we'll need to vectorize this op somewhere along the way.

I am a bit apprehensive of such ops. Before I look further... why is the existing linalg + vector contraction ops not sufficient for this. This seems to be duplicating a lot of that.

The main problem with existing linalg + vector contraction ops is the fact that the iteration space of those ops is defined by the shapes of the inputs. When trying to target these various MMA intrinsics, the shape of the inner dimensions for the intrinsic can't be represented as a part of indexing maps.

Why cant it be?
One of the examples in the operation description show this lowering to loops:

    %outer_m = tensor.dim %6, %c0 : index
    %outer_n = tensor.dim %6, %c1 : index
    %outer_k = tensor.dim %4, %c1 : index
    %7 = scf.for %i = %c0 to %outer_m iter_args(%arg0 = %6) {
      %8 = scf.for %j = %c0 to %outer_n iter_args(%arg1 = %arg0) {
        %9 = scf.for %k = %c0 to %outer_k iter_args(%arg2 = %arg1) {
          %lhs = tensor.extract_slice %4 [%i, %k, 0] [1, 1, 4] [1, 1, 1] : tensor<4xf16>
          %rhs = tensor.extract_slice %5 [%k, %j, 0] [1, 1, 4] [1, 1, 1] : tensor<4xf16>
          %acc = tensor.extract_slice %arg2 [%i, %j, 0] [1, 1, 4] [1, 1, 1] : tensor<4xf32>
          %res = amdgpu.mfma %lhs, %rhs, %acc : tensor<4xf32>
          %ret = tensor.insert_slice %acc into %arg2 [%i, %j, 0] [1, 1, 4] [1, 1, 1] : tensor<?x?x4xf32>
          scf.yield %ret : tensor<?x?x4xf32>
        }
        scf.yield %9 : tensor<?x?x4xf32>
      }
      scf.yield %8 : tensor<?x?x4xf32>
    }

I am not sure I can read the IR without the source and dest tensor types.

We could represent this with a linalg op w/ tensor<?x?xvector<4xf32>> and putting the mfma op directly inside the body of the linalg op, but I'm much more apprehensive of trying to use vector element types than an op like this, especially because we'll need to vectorize this op somewhere along the way.

You are right about this, it wont vectorize

I am not sure I can read the IR without the source and dest tensor types.

The lhs and rhs tensor types are tensor<?x?x4xf16> and the destination tensor type is tensor<?x?x4xf32> in the above example.

Why cant it be?

The body of the above loop nest is an amdgpu.mfma op which reads 4 elements from the lhs and rhs tensors and writes back 4 elements to the result. For the 32x32x8 MFMA instruction, the lhs and rhs read 4 elements each and the result writes back 16, i.e.
  %0 = iree_gpu.multi_mma %lhs, %rhs, %acc {
    indexing_maps = #contraction_accesses,
    iterator_types = [],
    kind = #iree_gpu.mma_layout<MFMA_F16_32x32x8_F32>
  } : vector<4xf16>, vector<4xf16> into vector<16xf32>

Essentially there is no relationship between the inner dimensions of each operand. The 4 elements used for the lhs has no relationship to the 4 elements of the rhs, meaning we can't use indexing maps to represent them as a loop (because MFMA/WMMA/MMA.SYNC are not representable as loops). This is fundamentally incompatible with a linalg op or vector.contract because those operations require all dimensions of each operand to be accounted for as a part of the implicit loop structure.


Add WLAN enablement controls

This PR aims to add functions calling the endpoints of the box allowing you to activate, deactivate or restart the WLAN service (and therefore WiFi)

I think it's good for this package. Do I need to call these new functions on the HA integration?

You need to open three PR in HomeAssistant:

first to simply "bump" the package
then a second PR to add a switch (activate/deactivate wifi)
and a third PR to add a button (restart wifi)


How to configure json logging

The log output is currently in text format, is there a way to configure the output to be in json format? Since this project is using klog it seems possible.
The secrets-store-csi-driver project allows switching to json via a command line flag --log-format-json=true, see here

Thank you for your feedback. We have noted this as a feature request.

Hello Team, Customer is looking for update on this. Please advise when it can be implemented.


Can't Install version 2.0.0

Trying to use this module, but the latest built in npm is 1.2.1
What do I need to do to get version 2.0.0 because the example on how to use it does not work in 1.2.1
Thanks.

v2 has not yet been released.
You can look at v1.2.1 examples if you need to still though: https://github.com/englercj/node-esl/tree/v1.2.1

ok thanks, awesome work by the way.


Limit does not correctly handle false as documented

The or operator falls over to 20 the ? operator should be used instead

.> ignore too many open tabs wrong repo


Bug: extra final "argument" is ignored instead of erroring

export const AdItemDisplayWrapper = iso(`
  field AdItem.AdItemDisplayWrapper @component {
    AdItemDisplay @loadable(lazyLoadArtifact: true, whatIsThisWhyIsThisAllowedItShouldNotBeNoooo)
    AlsoWorks @loadable(lazyLoadArtifact: true, finalColon:)
  }
`)(fn)

is valid. It shouldn't be! We should emit an error.
Something is wrong in https://github.com/isographlabs/isograph/blob/75a6eaf1ab694fd51d571394c24c132050191e59/crates/isograph_lang_parser/src/parse_iso_literal.rs#L389, and on line https://github.com/isographlabs/isograph/blob/75a6eaf1ab694fd51d571394c24c132050191e59/crates/isograph_lang_parser/src/parse_iso_literal.rs#L264
parse_argument successfully parses whatIsThisWhyIsThisAllowedItShouldNotBeNoooo (which advances the PeekableLexer past it). Then, it errors out on the next token (the closing paren.) This does not advance the PeekableLexer past the closing paren. So, when we return to https://github.com/isographlabs/isograph/blob/75a6eaf1ab694fd51d571394c24c132050191e59/crates/isograph_lang_parser/src/parse_iso_literal.rs#L402, the next token is the paren and we continue.
Anyway, I have a variety of ideas for what to do here:

give PeekableLexer a way to speculatively parse (i.e. parse but don't advance the tape). This may be hard! The lexer isn't cloneable, and that presumably requires that.
(I think this is the correct approach) teach parse_delimited_list about the closing paren, and have it only return Ok if it ever encounters a closing paren. It should always unwrap parse_item(...)? (i.e. use the ? operator), i.e. it should error out if it fails to parse any item.
- as an added bonus, we can and should add support for empty lists!

We probably have this bug in the GraphQL side, too!

This was done in #140


Fix display param when  deviceType was updated

Nice!
I fixed some missing semicolon + added the "tag" attribute too.


Fix token sanitization when using gcompatup

@vitorpamplona
This is one of the reasons some people are not receiving notifications
You need to increase the size of the token field in the notification server too if you are still using the 255
The token was 257 here
This happens when using gcompat-up for notifications

Very interesting. The new version of the server does not parse the token as before, so I think the server part is ready to go.


Feat/remove parameter from manual setup classes

:scroll: Description
Since the SentryOptions are now accessible via Hub, parameters for the following classes aren't needed anymore, as they can be read from the options.
:bulb: Motivation and Context
fixes issue #750
:green_heart: How did you test it?
Running workflow on my forked repo
:pencil: Checklist

[x] I reviewed submitted code
[x] I added tests to verify changes
[ ] I updated the docs if needed
[x] All tests passing
[ ] No breaking changes

:crystal_ball: Next steps

Codecov Report

Merging #816 (19af9b2) into main (28c88c9) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #816   +/-   ##
=======================================
  Coverage   89.83%   89.83%
=======================================
  Files         114      114
  Lines        3670     3670
=======================================
  Hits         3297     3297
  Misses        373      373

Impacted Files
Coverage Δ

dart/lib/src/http_client/sentry_http_client.dart
63.63% <ø> (ø)

...art/lib/src/http_client/failed_request_client.dart
93.02% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 28c88c9...19af9b2. Read the comment docs.

@AliAkberAakash I've changed the target branch to v7.0.0, so all the other PRs that require a major bump, we do it from there.

I'm not sure what is causing this, I'm not sure if this is from something I have done.

It's not, it's the GH images having a hard time downloading and installing the Dart SDK, not under our control.

I'm not sure why this is failing sentry-dart / analyze (pull_request) . Not showing any error messagee

I'm not sure why this is failing sentry-dart / analyze (pull_request) . Not showing any error messagee

https://github.com/getsentry/sentry-dart/runs/5845404860?check_suite_focus=true
Formatted test/http_client/failed_request_client_test.dart
Formatted test/http_client/sentry_http_client_test.dart
Formatted 187 files (2 changed) in 1.15 seconds.

I'm not sure why this is failing sentry-dart / analyze (pull_request) . Not showing any error messagee

https://github.com/getsentry/sentry-dart/runs/5845404860?check_suite_focus=true
Formatted test/http_client/failed_request_client_test.dart Formatted test/http_client/sentry_http_client_test.dart Formatted 187 files (2 changed) in 1.15 seconds.

I'm not sure what this means, does it mean that github actions formatted these files, and as they weren't same as expected they had to change two files?

I'm not sure why this is failing sentry-dart / analyze (pull_request) . Not showing any error messagee

getsentry/sentry-dart/runs/5845404860?check_suite_focus=true
Formatted test/http_client/failed_request_client_test.dart Formatted test/http_client/sentry_http_client_test.dart Formatted 187 files (2 changed) in 1.15 seconds.

I'm not sure what this means, does it mean that github actions formatted these files, and as they weren't same as expected they had to change two files?

It means that the GH action checked it and it needs formatting, so CI fails.

I'm not sure why this is failing sentry-dart / analyze (pull_request) . Not showing any error messagee

getsentry/sentry-dart/runs/5845404860?check_suite_focus=true
Formatted test/http_client/failed_request_client_test.dart Formatted test/http_client/sentry_http_client_test.dart Formatted 187 files (2 changed) in 1.15 seconds.

I'm not sure what this means, does it mean that github actions formatted these files, and as they weren't same as expected they had to change two files?

It means that the GH action checked it and it needs formatting, so CI fails.

I have fixed it

@AliAkberAakash A few method params were moved around to SentryOptions, but if you search for such names, e.g. captureFailedRequests they are still being used in the README files or comments in the code, please update accordingly, there are likely other params as well.

Two workflows are failing, but the error message doesn't seem like its for my changes.

Two workflows are failing, but the error message doesn't seem like its for my changes.

indeed, Bad CPU type in executable, not your PR doing this.

Not sure why some tests are timing out, they were passing locally

Thanks @AliAkberAakash

Thanks for merging this!
Maybe this is not the best place to say this but could you please give me some guidelines on how to better work with opensource projects and avoid the mistakes I made?
Since this is a huge project for me, most of the time I felt lost in code. Navigating through different files was hard for me. Guidelines are very much appreciated!

Thanks @AliAkberAakash

Thanks for merging this! Maybe this is not the best place to say this but could you please give me some guidelines on how to better work with opensource projects and avoid the mistakes I made? Since this is a huge project for me, most of the time I felt lost in code. Navigating through different files was hard for me. Guidelines are very much appreciated!

Sure, give me some time and I'll give you some constructive feedback :)


Exchange update (July 2015)

Added Bittrex and useCryptos. Also updated location for ShapeShift.

@FuzzyBearBTC @TheWildHorse Please merge :)


Build Thrift 0.9.3 in the Travis home directory

Coverage remained the same at 0.0% when pulling 4121fabf92380bf9a42caba7ccd3d503aef0f80c on travis-thrift into 2180ea9446a3f1e5e569bc387c78f70565a0a8a6 on master.

Coverage remained the same at 0.0% when pulling a353bed4c387a1a4b1efb44ba704afab293da331 on travis-thrift into 2180ea9446a3f1e5e569bc387c78f70565a0a8a6 on master.

Coverage remained the same at 0.0% when pulling 727a952a91fcc3dbaf00b59d79ebd5e3e5eff9d8 on travis-thrift into 2180ea9446a3f1e5e569bc387c78f70565a0a8a6 on master.


Update drone.py

Fixed the bug in drone.py. In the self.hard_negatives dict, the key is img_id. Here it should use img_id not idx.  Fixed by huoda from Happy Day team in MVA.

Thank you for your contributions! We will accept your pull request.


Custom batch selection for logging

Description & Motivation
Need to be able to select the same batch in every logging cycle. For generation pipelines similar to stable diffusion it is very hard to gauge the performance over training if we continue to choose random batches.
Pitch
User should have selective ability to choose the batch to log which will be constant for all the logging cycles.
Alternatives
Its possible to load the data again in train_btach_end() or validation_batch_end(), and call logging.
Additional context
No response
cc @borda

I agree with your point...
So you want that user provides a list of indices from the dataset... And a batch is prepared at the end of epoch with elements corresponding to those indices... And logging them after forwarding them through model... Is it?
I think it would be better to log them at end of validation step ....

Pls assign this issue to me...
I would like to work on this issue.

You can open a pull request once you are done with the required code.


multiple File Upload

Hi
I tried to add
 $this->crud->addField([
            'name' => 'photos',
            'label' => 'تصاویر',
            'type' => 'upload_multiple',
            'upload' => true,
            'disk' => 'uploads'
        ]);`

to a page template, also adding this code to model :
public function setPhotosAttribute($value)
    {
        $attribute_name = "photos";
        $disk = "public";
        $destination_path = "test";

        $this->uploadMultipleFilesToDisk($value, $attribute_name, $disk, $destination_path);
    }

when I click add button the model and its files  was created successfuly but when I click the edit button this errors happens :
ErrorException in FilesystemManager.php line 121:
Driver [] is not supported. (View: D:\project\WebProgramming\MyWorks\Laravel\Engineering Organization\vendor\backpack\crud\src\resources\views\fields\upload_multiple.blade.php) (View: D:\project\WebProgramming\MyWorks\Laravel\Engineering Organization\vendor\backpack\crud\src\resources\views\fields\upload_multiple.blade.php) (View: D:\project\WebProgramming\MyWorks\Laravel\Engineering Organization\vendor\backpack\crud\src\resources\views\fields\upload_multiple.blade.php)

what is the problem ?

The error suggests what the error is if you read
ErrorException in FilesystemManager.php line 121:
Driver [] is not supported.

Its suggesting that something in your filesystems.php config is wrong for your system.
The error is something Laravel related, rather than backpack it seems.
I'd recommend reading https://laravel.com/docs/5.3/filesystem to find out how to configure your file system and see if that helps.
As this does not look directly related to backpack, I'll close it to keep the place tidy, but feel free to keep replying

ps.
you need to use 3 backticks `

```
code here
```


Return more detailed errors when validation fails

Validation errors should return problems instead of simply aborting. Example:
return connexion.problem(400, 'Bad Request', "Missing property: {}".format(missing_property))

:+1:


how to tell circuit's builtin error from app's

As for now, circuitError is defined as package-private, so we can't do type check like _, ok := err.(circuitError).
Maybe we can add a IsBuiltinError(error) public func? my application need this info to do different business logic.

Does #77 help?


feat(funnel): funnel chart support orient API

Brief Information
This pull request is in the type of:

[ ] bug fixing
[x] new feature
[ ] others

What does this PR do?

Funnel chart support orient API with value vertical(default) or horizontal.
Fixed issues

Details
Usage
Are there any API changes?

[x] The API has been changed.

series-funnel.orient: vertical | horizontal
Related test cases or examples to use the new APIs
NA.
option = {
  series: [
      {
          name:'漏斗图',
          type:'funnel',
          gap: 3,
          left: 300,
          right: 300,
          orient: 'horizontal', // vertical | horizontal, default value is vertical
          label: {
              normal: {
                  position: 'leftTop'
              }
          },
          data:[
              {value:60, name:'访问'},
              {value:40, name:'咨询'},
              {value:20, name:'订单'},
              {value:80, name:'点击'},
          ]
      }
  ]
}

Others
Merging options

[x] Please squash the commits into a single one when merge.

Other information

[DISCUSS] @pissang @Ovilia @regrex
If intending to support layout: 'horizontal' in funnel,
Is it OK for these option design?

sort: 'ascending', // porp "sort" exists for long time.
orient: 'vertical',

sort: 'descending',
orient: 'vertical',

sort: 'asscending',
orient: 'horizontal',

sort: 'descending',
orient: 'horizontal',

[DISCUSS_label_position_config] @pissang @Ovilia @regrex
If there [DISCUSS_layout_config] above is OK, what about the label position config?
Currently, for vertical layout, funnel label.position supports
'insdie'/'insideLeft'/'insideRight'/'left'/'right'/'leftTop'/'leftBottom'/'rightTop'/'rightBottom'.
But
Question 1:
There are counterintuitive behavior for 'leftTop'/'leftBottom'/'rightTop'/'rightBottom' in currently layout: 'vertical', sort: 'ascending', (might be a existing bug):
orient: 'vertical',
sort: 'ascending'
label: {
    position: 'rightTop'
}

But actually the labels are placed at the position "rightBottom":

And
orient: 'vertical',
sort: 'ascending'
label: {
    position: 'rightBottom'
}

actually the labels are placed at the position "rightTop":

The reason probably be: the implementation of label position is only according to the case of
sort: 'descending'. So if set to sort: 'ascending', the behavior is counterintuitive and seams do not follow the convention of echarts option.
Thus the question is: should we correct it?
If we correct it, that would be a break change. Is it worth to do that?

Question 2:
Now we need to support orient: 'vertical', the same problem occurs:
how would we design the meaning of label.position values left/right/leftTop/leftBottom ... ?
(A) If we follow the "counterintuitive" design: the position should be only understand on the case of sort: 'descending', orient: 'vertical' and "rotate in mind" to the final effect.
That would be simple in implementation and do not need to worry about break change (described in question 1).
But it is counterintuitive:
orient: 'right',
label: { position: 'right' } // use position right to place label on bottom

(B) Make it totally follow the intuitive:
label.postion: 'top' means label is top.
label.postion: 'rightTop' means label is right top.
But it might have break change, and bring little complex in code.

@100pah


UsbDevice lifetime preventing accessing from interrupt

To correctly use UsbDevice we should hook poll up to an interrupt to call it regularly.
However, as far as I can see that is impossible with the current API design.
Due to lifetimes UsbDevice needs to outlive the UsbBusAllocator passed to UsbDeviceBuilder.
Because of that we cant put it in a global storage like:
static USB_DEVICE: Mutex<RefCell<Option<UsbDevice<UsbBus<USB>>>>>;
And without global storage there is no way to call poll in the interrupt
To resolve this UsbDeviceBuilder::new should take a &UsbBusAllocator, UsbBusAllocator, or Arc<UsbBusAllocator> instead of &'a UsbBusAllocator.
Now it is quite possible that my reasoning above is wrong somewhere, i am no master of lifetimes.
And it does seem strange to me that something like this would be overlooked...
So if there is a way, please add an example to https://github.com/stm32-rs/stm32-usbd-examples that demonstrates calling poll from an interrupt. Or if you give me enough information I might be able to implement such an example myself.

For interrupts you'll need a &'static UsbBusAllocator.
Here's one example that does it: https://github.com/stm32-rs/stm32-usbd-examples/blob/master/example-stm32f103c8/examples/serial_interrupt.rs

Ah, thankyou!
I had incorrectly assumed that each example-sfm32f* folder contained the same single example but ported for that board.
Would you accept a PR to add a list of each example to the readme so make it easier to look through the examples for every board at once?

Examples now live in the corresponding hal repositories, so this stm32-usbd-example repo is kinda outdated.

I see.
Maybe we should change the link in https://github.com/mvirkkunen/usb-device/blob/master/README.md#hardware-driver-crates to list examples in the various hals such as https://github.com/stm32-rs/stm32f1xx-hal/blob/master/examples/usb_serial_interrupt.rs instead?

I decided to remove the link altogether and just suggested people look in the individual HALs.


The secondary navbar is too thick?

I think this bar below the top blue bar could do with being thinner - the information it shows is relatively unimportant, and occupies too much vertical space. (0.6.9)

The page in your screenshot is still the old theme, which will be changed to the following one:

Looks better, but still looks a little too thick. The padding is a little much as the content for that page is pushed down somewhat unnecessary!

The padding is a little much as the content for that page is pushed down somewhat unnecessary!

I think it is pretty necessary to look comfortable as right now.

Close for now but open for continuing discussion.