Kadane's Algorithm

Have you read the Contributing Guidelines on Pull Requests?
yes
Description
the sum of contiguous subarray within a one-dimensional array of numbers that has the largest sum.
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
issue = #5135

@all-contributors please add @dikshajoshi18 for her code


Allows asterisk in FormControl.Label to be adjustable

Closes https://github.com/github/primer/issues/3263

Provides more flexibility to our required indicator (currently an asterisk). This PR adds the ability to change the text of the indicator, as well as hide it from AT via the new requiredIndicator prop.
Changelog

New

Adds two new props in FormControl.Label:

requiredText - Allows you to change the required indicator from '*', to the value provided. Defaults to '*'.
requiredIndicator - Allows you to toggle between the indicator being present or not in the accessibility tree. Defaults to 'true'.

Rollout strategy

[x] Patch release
[ ] Minor release
[ ] Major release; if selected, include a written rollout or migration plan
[ ] None; if selected, include a brief description as to why

Testing & Reviewing

Merge checklist

[ ] Added/updated tests
[ ] Added/updated documentation
[x] Added/updated previews (Storybook)
[ ] Changes are SSR compatible
[x] Tested in Chrome
[ ] Tested in Firefox
[ ] Tested in Safari
[ ] Tested in Edge
[ ] (GitHub staff only) Integration tests pass at github/github (Learn more about how to run integration tests)

This is one of many ways to handle how we do required indicators in FormControl.Label. Would love any other opinions on how to make this easier for consumers :eyes:
More context: https://github.com/github/primer/issues/3263


Fail to resolve swiper@6 when i upgrade 0.1.9

System Info
codesanbox
Details
Loading Swiper@6 in version 1.0.8 is normal, but failed after upgrading to version 1.0.9.
 {
      message: 'Failed to resolve ../../core in<EMAIL_ADDRESS>      formatted: 'error[internal]: Resolve error\n' +
        '  ┌─ node_modules/.pnpm/swiper@6.8.4/node_modules/swiper/esm/react/loop.js:3:1\n' +
        '  │\n' +
        "3 │ import Swiper from '../../core';\n" +
        '  │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failed to resolve ../../core in<EMAIL_ADDRESS>+
        '\n',
      compilerPath: undefined
    },

Reproduce link
https://codesandbox.io/p/sandbox/rspack-css-loader-forked-6899j1?file=%2Fpackage.json&selection=[{"endColumn"%3A11%2C"endLineNumber"%3A17%2C"startColumn"%3A11%2C"startLineNumber"%3A17}]
Reproduce Steps

pnpm i
node build.js

@shaodahong do you know how to export project in your codesandbox, it's not easy for us to debug in codesandbox

@hardfist Maybe it can be opened from VS Code.

https://codesandbox.io/p/sandbox/rspack-css-loader-forked-6899j1?file=%2Fpackage.json&selection=[{"endColumn"%3A11%2C"endLineNumber"%3A17%2C"startColumn"%3A11%2C"startLineNumber"%3A17}]

yes, but it's opened in codesandbox machine which makes it slow, do you know better way?

https://codesandbox.io/p/sandbox/rspack-css-loader-forked-6899j1?file=%2Fpackage.json&selection=[{"endColumn"%3A11%2C"endLineNumber"%3A17%2C"startColumn"%3A11%2C"startLineNumber"%3A17}]

yes, but it's opened in codesandbox machine which makes it slow, do you know better way?

@hardfist I uploaded the changes to GitHub. Here's the link: https://github.com/shaodahong/rspack-swiper6-test-1.

I tested with the main branch and it didn't reproduce, maybe we can wait for version 0.0.10

Confirm fixed in 0.0.10 version


Hang when trying to build Ubuntu 22.04 image

Description
Hi team,
I am using an Azure DevOps Pipeline to run the GenerateResourcesAndImages.ps1 script to build an Ubuntu 22.04 image.
I'm getting hung up when the script runs the file /scripts/installers/git.sh.  Here are the final lines of output:
    azure-arm.build_vhd: Downloading 'https://github.com/mislav/hub/releases/download/v2.14.2/hub-linux-amd64-2.14.2.tgz' to '/tmp/hub/hub-linux-amd64-2.14.2.tgz'...
    azure-arm.build_vhd: Download completed
==> azure-arm.build_vhd: Script exited with non-zero exit status: 1. Allowed exit codes are: [0]
==> azure-arm.build_vhd: Step "StepProvision" failed

After this, it simply hangs here until the Azure DevOps Pipelines job times out.
Platforms affected

[X] Azure DevOps
[ ] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[X] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] macOS 13
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
refs/tags/ubuntu22/20230821.1
Is it regression?
Unsure
Expected behavior
The script to complete successfully
Actual behavior
The git.sh script hangs and the process does not advance after that.
Repro steps
Simply run the GenerateResourcesAndImage script.

Hey @nnellanspdl. Thank you for reporting. Are you trying to build new pipeline for image generation from scratch or did you have this pipeline working before but it have broken recently? And may I also ask you to share you pipeline definition so we understand how exactly generation is being started?

This pipeline has successfully built older versions of the image.  Here is the relevant snippets from my pipeline.
resources:
  repositories:
    - repository: runner-images
      type: github
      name: actions/runner-images
      ref: refs/tags/ubuntu22/20230821.1

stages:
- stage:
  displayName: 'Build Image using GitHub Scripts'
  jobs:
  - job:
    timeoutInMinutes: 360
    steps:
    - checkout: self
    - checkout: runner-images
    - task: AzureCLI@2
      env:
        VNET_RESOURCE_GROUP: $(packerVnetResourceGroup)
        VNET_NAME: $(packerVnet)
        VNET_SUBNET: $(packerSnet)
      inputs:
        connectedServiceNameARM: $(packerServiceConnection)
        addSpnToEnvironment: true
        scriptType: pscore
        scriptLocation: inlineScript
        workingDirectory: $(System.DefaultWorkingDirectory)/runner-images
        powerShellErrorActionPreference: SilentlyContinue
        failOnStandardError: false
        powerShellIgnoreLASTEXITCODE: true
        inlineScript: |

          Write-Output "Building the image"
          Import-Module ./helpers/GenerateResourcesAndImage.ps1
          GenerateResourcesAndImage `
            -SubscriptionId $(packerSubscriptionId) `
            -ResourceGroupName "$(packerResourceGroup)" `
            -ImageType $(packerImageType) `
            -AzureLocation "$(packerRegion)" `
            -AzureClientId $env:servicePrincipalId `
            -AzureClientSecret $env:servicePrincipalKey `
            -AzureTenantId $env:tenantId `
            -Force `
            -EnableHttpsTrafficOnly $true

Thank you, we will take a look.
By the way, I noticed that you reference exact release. It's better to use main branch because releases become outdated very quick as software publishers change the way they distribute it. Could you please try building using the code from the latest commit of main branch?

Hello! I am going to close the issue for now as we are missing additional information, to reproduce the problem, as soon as you have that, please feel free to reach us out again.

I have the same problem:

Version: https://github.com/actions/runner-images/commit/5ffd15d8

Not sure why this was closed.  Building from main is not a good practice.  Why do you even maintain versions at all, if you're just going to tell people to build from main?

I've been trying to build an image since august 25 from the main branch and it still fails. These are my logs, nothing can be concluded there.

Not sure why this was closed. Building from main is not a good practice. Why do you even maintain versions at all, if you're just going to tell people to build from main?

@nnellanspdl, those versions are not actually revisions that you can choose from. They are merely waypoints in a continuous development process designed to assist with the management of update deployments. It would be really nice to be able to build an image from any of the releases we have in repository, but it's impossible because deployment heavily depends on the external resources that are tend to update as well so image generation scripts quickly become outdated. We make an effort to update them as quick as possible but it's impossible to backport script updates to the older releases. Therefore, the most viable option is to use cutting-edge scripts and build using main branch.

Some time ago we wanted to automate this process and wanted to run it on a build agent with a pipeline. Unfortunately, our build agent is hidden behind a private virtual network and therefore we had to change the script a bit.
Before running the function I replace this fragment:
"-var "allowed_inbound_ip_addresses=$($AllowedInboundIpAddresses)"
with this one:
"-var "virtual_network_resource_group_name=$($vnetRg)" $newLine -var "virtual_network_name=$($vnetName)" $newLine -var "virtual_network_subnet_name=$($vnetSubnetName)""
(I had to remove some '`' characters for proper formatting)
The last successfully completed pipeline took place on March 16 and here is packer-log.txt file as a proof that everything worked as expected.
This Saturday I tried to run the script from my local machine and everything worked as expected, so from the local machine everything worked, while on the CI I haven't tried yet. I'll try to create an image on CI again in a while and let you know if it works. I will definitely try to set this option what you suggested @vpolikarpov-akvelon.

Not sure why this was closed. Building from main is not a good practice. Why do you even maintain versions at all, if you're just going to tell people to build from main?

@nnellanspdl, those versions are not actually revisions that you can choose from. They are merely waypoints in a continuous development process designed to assist with the management of update deployments. It would be really nice to be able to build an image from any of the releases we have in repository, but it's impossible because deployment heavily depends on the external resources that are tend to update as well so image generation scripts quickly become outdated. We make an effort to update them as quick as possible but it's impossible to backport script updates to the older releases. Therefore, the most viable option is to use cutting-edge scripts and build using main branch.

I have to create images for my own use, I need to know which 'version' those images are based on.  I need to know specifically what software is included as well as their specific versions.  I can do this by specifying a specific version of the image, as well as referencing the readme file for that specific version.
I can't just say "our images are based on main from august 8th, I can't tell you specifically which versions of software are on there."
With that being said, I only try to build images using the most recent version that you publish, because I realize the underlying software and associated scripts change frequently.

@nnellanspdl a tagged version may have become obsolete due to a minor change in the installation script, if you would like to have the most stable builds we highly recommend you sticking to main, (unfortunately) we do not support the tagged builds as @vpolikarpov-akvelon rightly mentioned, as of the versions of the software installed in the image, you can always generate your own readme file and see what is installed in the image and later share it with your target audience

You're not really listening to what I'm saying.  When I'm building new images, I only use the latest version available at that time.  I realize the script changes frequently.  I do not try to build images based on versions that are weeks/months old.
Anyways, this is off-topic of the real issue.

That way I know specifically which version I am using (and not a version of main from some date). Doing it this way also allows me to utilize the readme for that tag, which lists the exact versions of software that are included in the tag.

I understand your concern, but there's a key point to consider here. Many installation scripts are designed to fetch the latest released version, and the README is generated after all components have been installed. It accurately reflects the state of the image at the moment it was generated. However, if you build your image, for instance, a day after our 'release,' it's possible that some software versions have been updated. Consequently, if you're keen on having precise information about the software versions in your image, it's advisable to rely on a software report generated specifically for your images rather than ours.
Regarding the actual issue you're facing, could you please attempt to build the image with bash debugging enabled (with set -x) for the git.sh script, as I previously suggested? This will help us debugging the issue more effectively.

It appears that the NVA in my build environment is blocking outbound port 22.  Therefore, the following command in the git.sh script is failing:  ssh-keyscan -t rsa,ecdsa,ed25519 github.com.  I will work with my networking team to have that opened up.
And thanks for the info about the image generation.


Support manifest-backed releases, for complex release flows

@joeldodge79 has been working on a manifest-backed release process, which will allow for:

stable branch names that don't include versions #s.
releasing multiple libraries from the same repository in a single PR (rather than needing to split a repo into multiple individual releases.)

TODO:

[x] finish up coding work.
[x] document in GitHub action and release-please repo.
[x] test out feature on googleapis.

CC: @OrenMe

@joeldodge79 I believe we can close this 🎉


Prompt format string

In response issues #62, #57, #54, #17 (so quite a lot of people) and pull request #40, which was an attempt to address some of these points, I have added the ability to describe the shape of the prompt fully through a format string.
You export this as GIT_RADAR_FORMAT or set it in your .gitradarrc file.
%{remote} - Output the remote status part
%{branch} - Output the branch name, or sha reference if detached
%{local} - Output the local commit diff
%{changes} - Output the file changes
With this you can create very flexible and unique prompt, for example:
${branch}%{local}%{changes} = master1↑1M
[${branch}] - %{local} - %{changes} = [master] - 1↑ - 1M
It also supports prefixes and suffixes that only output if there is something to output:
%{[prefix] :local: [suffix]} with no local commits would produce nothing
with local commits would produce [prefix] 1↑ [suffix]
It also supports both zsh colours and bash colour codes so you can colour the parts you add to the prompt really easily.

I haven't done any documentation yet but the basic functionality is working. I've also switched the basic prompt in prompt.zsh and prompt.bash to use the new render_prompt function and a default GIT_RADAR_FORMAT setting that mimics the original prompt shape.

Wow
Good idea
👍

:+1:  It looks good @michaeldfallen ! Thanks for taking the time to address these. :muscle:

Looks great

Thanks guys. I want to run a few performance tests to make sure the extra subshells and sed command don't slow down too much.

This fails for me on Ubuntu:
render_prompt:12: failed to compile regex: Invalid content of \{\}
render_prompt:20: failed to compile regex: Invalid content of \{\}
render_prompt:28: failed to compile regex: Invalid content of \{\}
render_prompt:36: failed to compile regex: Invalid content of \{\}

This fixes it:
diff --git a/radar-base.sh b/radar-base.sh
index d5456d0..464ac45 100755
--- a/radar-base.sh
+++ b/radar-base.sh
@@ -494,8 +494,8 @@ render_prompt() {
   local_sed=""
   changes_sed=""

-  if_pre="%{([^%{}]{1,}:){0,1}"
-  if_post="(:[^%{}]{1,}){0,1}}"
+  if_pre="%\{([^%{}]{1,}:){0,1}"
+  if_post="(:[^%{}]{1,}){0,1}\}"
   sed_pre="%{\(\([^%^{^}]*\)\:\)\{0,1\}"
   sed_post="\(\:\([^%^{^}]*\)\)\{0,1\}}"

And when will be git-radar update with this feature?

@bogem sorry, I've been away on honeymoon and my new wife wouldn't much like it if I spent the time coding. Back now and I'm going to look in to this and merge soon. Just looking in to the performance and the bug @slackorama mentioned above.

Congrats on the marriage! Tell your wife I said thanks for git-radar. It's a huge time saver.
I found another issue in this branch. If your branch has a slash in it (if you use git-flow branches are named "feature/some_cool_fix"), it will break the sed commands:
This works as a fix for me:
@@ -508,7 +508,7 @@ render_prompt() {
     fi
   fi
   if [[ $PROMPT_FORMAT =~ ${if_pre}branch${if_post} ]]; then
-    branch_result="$(readable_branch_name)"
+    branch_result="$(readable_branch_name | sed -e 's/\//\\\//')"
     if [[ -n "$branch_result" ]]; then
       branch_sed="s/${sed_pre}branch${sed_post}/\2${branch_result}\4/"
     else

Let me know if you want me to put together a PR or not.

@slackorama thanks :-) and good catch. This was a major change so thanks for flushing out the bugs. I've created performance tests in master and run them on this, doesn't seem to slow down much, 10ms at most. The real slow down is git status --porcelain which I think I need to async at some point but that's out of scope for this.

I've added the fixes by @slackorama so I think this is good to go.

Readme looks good enough for now -> merging :shipit:

Supeer

Just released it on brew: https://github.com/michaeldfallen/git-radar/releases/tag/v0.4


App became broken?

Seems to be that something goes wrong. If i open it on iOS the preloader "Loading top stories..." and percentage goes to 500% :) and then nothing happening

This issue is made by template7 context. my context on page init is under page.context.url_query[key].
Before the key was copied directly into the context. so we can access throw page.context[key]


Downgrade docker to 3.1.3

Refs #3999

This doesn't solve #3999, only works around it for now. We'll still need to address this in code so we can upgrade docker in the future.


A general question about coffeescope2

Hi, Radu!
What are the main differences from coffeelint-undefined-variables?
From what I've gathered from the readme, your plugin has more options. Any other advantages?
Thanks!

Hi, uh... stranger!
You've already seen https://github.com/clutchski/coffeelint/issues/415 so you should know half the context by now.
This project exists because the original coffeescope was never completed and the author made his position about coffeescript clear (for comparison, here's mine). So I guess the biggest advantage I can think of is the fact that coffeescope2 is actively being developed, whereas you are likely to be on your own with the older package.
Feature-wise, coffeescope2 does indeed have more options, but that can be a mixed blessing at times because given limited resources, I had to trade-off implementation purity for project usefulness which is never a great sign for a project's health.
I'll leave this open in case you have follow-ups.

Thanks for the reply!
I've replaced coffeelint-undefined-variables with coffeescope2 in one project and I already see some things that the previous plugin didn't catch. Actually tons of overwritten variables and some unused ones. It's great that your plugin has control over which things to warn about.
Great job and please keep it up!

Will do, thanks for the interest!


ktrain import fails due to failure to import master_bar from fastprogress

I installed ktrain on my GPU server (running ubuntu 18.04.2)
Trying to import ktrain failed:
>>> import ktrain
using Keras version: 2.2.4-tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/dist-packages/ktrain/__init__.py", line 2, in <module>
    from .imports import *
  File "/usr/local/lib/python3.6/dist-packages/ktrain/imports.py", line 173, in <module>
    from fastprogress import master_bar, progress_bar
ImportError: cannot import name 'master_bar'

Reinstalling fastprogress did not solve the issue; indeed, import  fastprogress does not fail

I was able to reproduce this issue.  This appears to be some sort of bug in the latest version of fastprogress, which was just released a couple of days ago.  The resolution is to downgrade fastprogress to v0.1.22:
pip3 install fastprogress==0.1.22

After doing this, you should be able to import ktrain with no problem.
Thanks.

I change the:
from fastprogress import master_bar, progress_bar
to
from fastprogress.fastprogress import master_bar, progress_bar
in the ~/fastai/imports/core.py file and it worked

Thanks - this is was fixed in v0.7.3,  so that both old-style and new-style fastprogress imports are supported.


wvkbd: 0.9 -> 0.10

Description of changes
https://github.com/jjsullivan5196/wvkbd/releases/tag/v0.10
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 188632 run on x86_64-linux 1

1 package built:

wvkbd


How does macdriver call the SCPreferencesPathSetValue function? I want to set up a system proxy

How does macdriver call the SCPreferencesPathSetValue function? I want to set up a system proxy

We have a plan for functions, which you can track here: https://github.com/progrium/macdriver/issues/151


[FIX]Shader compiled successfully even if file not exist

When the shader file is not exist, it still says "Shader .... compiled successfully" which is confusing

Good idea! Thanks!


Must use 32-bit MSBuild.exe

The BizTalkDeploymentFramework.targets looks for the "Deployment Framework Install Path" in the registry key

HKEY_LOCAL_MACHINE\SOFTWARE\DeploymentFrameworkForBizTalk

However, the installation on a 64bit machine puts the key in the Wow6432Node path
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\DeploymentFrameworkForBizTalk

This causes a problem on our TFS server (see log). So I have had to manually create the key.

*** Add a guard condition to the scripts to fail the build if 64-bit MSBuild.exe is detected. Must use 32-bit MSBuild due to a restriction with BizTalk's ExplorerOM.
Attachments
Uninstall.log.txt
This work item was migrated from CodePlex
CodePlex work item ID: '8185'
Assigned to: 'tfabraham'
Vote count: '1'

[tfabraham@4/28/2011]
Hi Charlie, on the TFS server, are you running 64-bit MSBuild.exe?  I haven't run across this issue on x64 in the past.  Are your development machines x64?  I'm thinking that it normally runs 32-bit MSBuild.exe, just don't have the setup available right now to verify that.

[giuliov@4/29/2011]
Yes, with TFS2010 on a x64 server defaults to run 64bit MSBuild. You need to set x86 on the build definition to run 32bit MSBuild

[tfabraham@6/21/2011]
This is NOT an issue since it is a requirement to run the Deployment Framework MSBuild scripts with the 32-bit version of MSBuild.exe, even on a 64-bit OS.  Will add a guard condition to the scripts to fail the build if 64-bit MSBuild.exe is detected.

[UnknownUser@6/21/2011]

[UnknownUser@6/21/2011]

[UnknownUser@6/21/2011]

[UnknownUser@6/21/2011]
Resolved with changeset 59753.

[UnknownUser@2/21/2013]

[UnknownUser@5/16/2013]


Revamp ramps when attribute_types changes.

This PR implements #10654.
How to test

[ ] Change between string and number attributes. The ramps should be revamped and the selected one should be the first.
[ ] On change, no custom ramp should be present.

Acceptance done, working like a charm changing from category ramp and then to diverging ramp (and viceversa). Tested in local because it is not necessary to test it in staging, it is located.


[RFC 74: Restructure] Break up core models

This PR breaks up Wagtail's core models as per RFC 74
This doesn't include:

Merging audit_log.py into logging.py
Moving wagtail/admin/models.py into core
Moving wagtail/query.py into the models folder

These two will be done in subsequent PRs.
Part of the RFC 74 implementation
Incorporates https://github.com/wagtail/wagtail/pull/7564

Going to break this up into one PR per module


Support prop name for all form fields

This function solves the problem (这个功能解决的问题)
I try to use some components in a legacy application. I need to set the input field attribute name.
Actually it is possible for radio see https://www.naiveui.com/en-US/os-theme/components/radio#API.
Status (not complete):

autocomplete (workaround input-props)
color picker (not possible)
checkbox (not possible)
date picker (not possible)
select (workaround input-props)
slider (not possible)
switch (not possible)
upload (workaround input-props)

Expected API (期望的 API)
prop name see radio implementation. For multiple fields (date picker or dynamic inputs) save as array.

This issue does not have any recent activity. If you are still experiencing similar problems, open a new error, including a minimal copy of the problem


added interfaces as core.schemas

Defined interfaces for base classes.
This creates interfaces in core for some community modules that previously did not have interfaces from core. Ideally, these interfaces help with new integrations, move interfaces to the core == make interfaces more stable.
The next step will be to add these interfaces to the Base classes as parents.
CC @baskaryan

@eyurtsev It is ready for critique.

Hi @leo-gan, I misunderstood what you meant initially by pulling out pure interface from existing interfaces. I don't think we should be creating pure interfaces since a number of the interfaces are loaded with convenience functions that should not exist on a pure interface. I will leave comments on some of the interfaces in the PR to show what I mean.
Generally, I'm in favor of moving all Base classes that we believe are correct into langchain correct, but we have to double check with @baskaryan in terms of sequencing and also scope.

Hi @leo-gan, I misunderstood what you meant initially by pulling out pure interface from existing interfaces. I don't think we should be creating pure interfaces since a number of the interfaces are loaded with convenience functions that should not exist on a pure interface. I will leave comments on some of the interfaces in the PR to show what I mean.
Generally, I'm in favor of moving all Base classes that we believe are correct into langchain correct, but we have to double check with @baskaryan in terms of sequencing and also scope.

My idea is not to move Base classes at all. The idea is to extract pure interfaces and use them to help with integrations. The mandatory fields and functions should be clearly defined. The optional convenience functions should not be part of the Interface.
Some of the current Base classes are overloaded with helper functions, and it is not clear what is mandatory and what is optional without going deep into the implementations of Base classes. As time goes on, more and more convenience functions are added, and integration becomes more complex.

Hi @leo-gan, I misunderstood what you meant initially by pulling out pure interface from existing interfaces. I don't think we should be creating pure interfaces since a number of the interfaces are loaded with convenience functions that should not exist on a pure interface. I will leave comments on some of the interfaces in the PR to show what I mean.
Generally, I'm in favor of moving all Base classes that we believe are correct into langchain correct, but we have to double check with @baskaryan in terms of sequencing and also scope.

If we have only a base abstract class, we can add one [or several] interfaces on top of it. IMHO, it makes sense since it explains the pure purpose. Current base classes are contaminated with helper functions. But we need a clear separation of the required and optional implementation functions.


BDD and TDD tests

Hello sir
When do you run your TDD tests?
On your project, only BDD tests run.
Thanks

Hi,
Yes, I did that on purpose. The idea is to show developers that there are two testing styles (TDD and BDD) and that they can choose one or the other but they should try to avoid mixing both styles.
Thanks


Where consul_bootstrap_node defined ?

I can see that, build_scripts/deploy.sh consumes it.

it's an environment variable


Make quality notification naming consistent

As user,
I want the application to use the same terms for identical thing,
so that I understand what the application is describing.
Hints / Details

In Trace-X quality notifications are mentioned more than once. However, sometimes there are different terms used like "quality topic" or "quality issue". To make sure, that everything is precise and understandable, please check and fix the wrong terms. Only quality notification should be used to describe quality alerts and investigations in general.
In the German translation "Qualitätsthema" should be used.
For example:

(In the last instance, it should probably be "Describe the issue." - Translated from the German counterpart.)
Acceptance Criteria

[x] Quality "topic" (or other terms describing the same thing) renamed to quality "notification" in the entire application (+ in the documentation).
[x]  Check if "Qualitätsthema" is used everywhere in the German translation
[x] Update documentation

Tested on E2E: LGTM
All instances of 'quality topic' that I could find are replaced with 'quality notification'.
Cannot find the term 'quality topic' in the documentation. Can only find 'quality notification'.
Ready for review.

@ds-mwesener
Application labels should be consistent to avoid further naming clashes. Kindly ask to change these labels.

LGFM. PO acceptance in behalf of @jzbmw.


use pinata upload directory for images

https://docs.pinata.cloud/api-pinning/pin-file#pinning-a-directory-example
this will help creators with thousands of images upload to a directory, making their ipfs much more manageable

this doesn't matter since you can do it manually and works very well


Text field cursors jump to end of input

ember-one-way-controls has introduced a regression where starting to type in the middle of a text field will cause the cursor to jump to the end of the input. The proposed fix in 1.0.1 also appears to have issues.
I've confirmed the bug affects us with at least the PSM's slug and publish date fields.
As we have a very imminent release I would suggest reverting to 0.9.2 to get back to a working state.

This should now be fixed in 1.0.2


newAppSec: be safer against bogus data length

It can apparently happen (with at least one gimp .xcf file), that it has
all the same markers as in a jpeg, up until reading the 2 bytes that would
code for the data length.
Since the data length is supposed to include those 2 bytes, the code was
assuming that the value of data length would be always at least 3, and
slicing under that assumption. Which breaks when e.g. an .xcf file
encodes the value 1 on these 2 bytes.
Fixes #34

Thanks!


Create Blog “test”

Automatically generated by Netlify CMS

👷 Deploy Preview for helpful-dango-319c99 processing.

Name
Link

🔨 Latest commit
66afa39e6338cca8450a35ad05026fb2e943c3c6

🔍 Latest deploy log
https://app.netlify.com/sites/helpful-dango-319c99/deploys/6611611918b00f0008ef5356


Time zones are not supported in Alpine Linux-based images.

Describe the bug
Time zones are not supported in Alpine Linux-based images.
To Reproduce
See logs
Expected behavior
It is necessary to include the tzdata package during the build process.

The fix has been applied to the development branch:
8b23846
a72bd99

Close issue


Using negative positioning causes elements to not be swipeable

So the issue is that basically if you use negative positioning on an element, the parent element will not be swipeable right, because it thinks it should be able to natively scroll.
The problem code is here https://github.com/oliviertassinari/react-swipeable-views/blob/master/packages/react-swipeable-views/src/SwipeableViews.js#L113 more specifically  element.scrollWidth > element.clientWidth
If you have negative right positioning (absolute, relative, or negative margin) it will make the parent's scrollWidth greater than the clientWidth.  Having negative left doesn't affect scrollWidth
Below is my sample code where you can't swipe from slide 2 to slide 3 if you try swiping on the tab list nav items box at the top.  In the below scenario, the tablist scrollWidth is 305px and the clientWidth is 290px causing it to think it is natively scrolling, but it isn't.  I even had a second example of the issue where i had to -1px for image alignments, which again broke it.

const styles = {
    slideContainer: {
        height: 100,
    },
    slide: {
        padding: 15,
        minHeight: 100,
        color: '#fff',
    },
    slide1: {
        backgroundColor: '#FEA900',
    },
    slide2: {
        backgroundColor: '#B3DC4A',
    },
    slide3: {
        backgroundColor: '#6AC0FF',
    },
    slide2tab: {
        position: 'relative',
    },
    slide2tabnav: {
        position: 'absolute',
        top: -15,
        left: -15,
        right: -15,
        height: 30,
        backgroundColor: '#3f3'
    }
};

render(
    <SwipeableViews>

            slide n°1

                    Nav items

                    Nav content

            slide n°3

    </SwipeableViews>,
    document.getElementById('root')
);

I wasn't sure how to quickly fix this without breaking more functionality for native scrolling, but let me know if you need anything else from me.

@scoot1585 Thanks for raising that issue. Following http://stackoverflow.com/questions/16688571/getting-a-divs-scrollwidth-when-it-has-an-absolute-positioned-child-div, I couldn't find any better solution than disabling the feature in that case.


Add install target for vkcube-wayland

Addresses #620

CI Vulkan-Tools build queued with queue ID 15258.

CI Vulkan-Tools build # 654 running.

CI Vulkan-Tools build # 654 passed.


Maybe without value check?

Is Maybe missing a constructor that returns Just for a value, or Nothing for a null? From what I can tell, Haskell's Maybe constructor does a type check and returns a Just when given a value and Nothing otherwise. Would it make sense to have the following?
$maybe = Maybe::of(null);
assert($maybe instanceof Nothing);

$maybe = Maybe::of(1);
assert($maybe instanceof Just);

Or, if the violates the Applicative constructor, perhaps the following?
$maybe = Maybe::maybe(null); // Nothing
$maybe = Maybe::maybe(1); // Just
$maybe = Maybe::maybe(false); // Just

I'd be happy to implement this as a function called something like fromNullable, but I'm hesitant to make it automatic. Haskell actually doesn't do any Maybe-filling automatically, but the community has a much more well-ingrained sense of totality when it comes to writing functions. However, you can perfectly validly write:
> :t Just ()
Just () :: Maybe ()

() is Unit, which is probably the closest value to "null" in Haskell.

I'm not too worried about it, something like this works perfectly well:
return isset($value) ? Maybe::just($value) : Maybe::nothing();

Yeah, agreed. I'll add it in, as I think it would help reinforce the idea that Just(null) is valid but really weird!


Spelling error

[info] Invalid preflight CORS reuqest because the header

Hey, nice catch! Are you willing to open a PR? Otherwise I can take care of it :).

@whatyouhide I don't think he's going to open a PR.

@hunterboerner probably not :smile: Taking care of it now.

Ooops, this was already fixed in #7, I just forgot to release a new version :).

Released v0.4.1!


Module not found: Error: Can't resolve './Utils'

Hi! I was trying to implement your dependency but found this error:
ERROR in ./node_modules/node-pdf-verifier/dist/verifier.js
Module not found: Error: Can't resolve './Utils' in '/home/my_project/frontend/node_modules/node-pdf-verifier/dist'
 @ ./node_modules/node-pdf-verifier/dist/verifier.js 15:14-32
 @ ./node_modules/node-pdf-verifier/dist/app.js
 @ ./src/app/solicitud/solicitud-form.js
 @ ./src/app/solicitud/index.js
 @ ./src/app/index.js
 @ ./src/index.js
 @ multi (webpack)-dev-server/client?https://localhost:8083 @babel/polyfill ./src/index.js

I solved it renaming the file ./node_modules/node-pdf-verifier/dist/verifier.js line 15
from this: const utils = require("./Utils");
to this: const utils = require("./utils");
Finally:
888] ./node_modules/node-pdf-verifier/dist/verifier.js 4.97 kB {0} [built]
    + 992 hidden modules
Child html-webpack-plugin for "index.html":
     1 asset
       4 modules
webpack: Compiled successfully.

Hi! Thanks for reporting this issue. I will repair it very soon


[develop, main | Latest] Add "is_legacy_pfp" boolean to /users/

^
All variants of the server should report a boolean "is_legacy_pfp" to tell clients a user's profile icon is a legacy /static/pfp/<pfp_icon>.svg icon.
This is to keep some degree of compatibility between clients and server versions when user PFP uploads are possible.

I assume this can be closed since avatars and pfps currently coexist, correct me if I'm wrong

Yeah this can be closed.


Remove version: Intel.WiFiDrivers version 23.20.0

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

/azp run


PROD mode is not working with SCSS Enabled

Hi All,
I have enabled prod mode and also enabled scss. SCSS works fine if i build in dev mode. But in prod mode it is not able to find css or scss file for each component which is declared in stylesUrl.
Below is the console error :
zone.js?1477508260765:355 Unhandled Promise rejection: Failed to load http://localhost:3000/app/login/login.component.css ; Zone:  ; Task: Promise.then ; Value: Failed to load http://localhost:3000/app/login/login.component.css undefined
I have renamed my file extensions with scss to enable sass.
Can someone please help me on this? I tried the same with angular-seed the same is facing over there too.

Would you upload a minimal demo in order to be able to debug & fix it as quickly as possible?

I have made changes in below files :

Seed.config.ts for ENABLE_SCSS = argv['scss'] || true;
build.html_css.ts for const isProd = Config.ENV === 'dev';
renamed all css files for each component to scss

test.zip
Below is the screenshot of error :

Hope this is enough information to help you to debug.

Waiting for your response.

For me it works ok, only main.css is not being injected, on any reason.

Actually there's nothing to push to a separate branch - just rename all the *.css files to *.scss and run npm run build.prod -- --scss.

Working for PROD. Thanks.
One question can we use the same behaviour in Dev mode? If yes then how?

I have the same problem (compile in dev is fine but build fails in prod), in my case the error is the next:

I realized the @media from sass files cause this error and i dont know how can i fix it, can anyone help me? @mgechev
Thanks.


Add chrome cast support

Description
LEARNER-7389
Please refer to Jira story for more details.

@farhan Please have a look on this PR.

Let's provide the landscape support to the cast controller screen.

After video completion on the casted device, mobile app shows the following screen:

Suggestion:
We should show the mini-controller on the screen with seekbar set to 0 and set Play button so that user will have an option to restart the same video just like its happening on edX media player.

Please check if we can hide/remove the forward backward buttons because we are not managing the Queue in v1.

Casting is not working for downloaded videos

App media player not streaming the video after the device un-casted from cast controller screen.
https://drive.google.com/file/d/1QMTHqUPSi2vzHO1ltV9gQxL_QASxufD4/view?usp=sharing

@farhan-arshad-dev I am done with the first pass of manual testing.

As per app design:

Casting button and expanded controller should be customized to edX app design.

While expanded controller is not customized to app design.

There is no attribute define in the google cast doc to update the color scheme:
https://developers.google.com/cast/docs/android_sender/customize_ui#customize_expanded_controller

What is the decision for v1 for subtitles?

Video Subtitles should also be casted.

We ignore the Subtitles casting for V1 because there is no supported formate in mobile end.

After video completion on the casted device, mobile app shows the following screen:

After completion of video on remote media player app restarts the remote media player and seek to 0, but cast lib automatically open Expanded controller Screen (that is default behavior).
Suggestion:
On completion of the video app shows a button name Play below the message "Video is cating to remote device" .
@farhan thoughts?

We should thumbnail of video/course where ever required for example on cast controller screen and send to Google Cast client.

After video completion on the casted device, mobile app shows the following screen:

After completion of video on remote media player app restarts the remote media player and seek to 0, but cast lib automatically open Expanded controller Screen (that is default behavior).
Suggestion:
On completion of the video app shows a button names Play below the message "Video is cating to remote device" .
@farhan thoughts?

Suggestion seems fine to me, we can use the same play button using for media player

Design Changes:
As per team decision we shall the show the casted button on all screens having toolbar including Logistration screens.

Player screen shows the transcripts when video is casting on remote device.
We should always hide the transcripts when video is casting on remote device.

App media player play button should be used instead of this.

@farhan-arshad-dev  I am done with second pass of manual testing.

'Video is casting to remote device' text should appear in middle of media player area.

'Video is casting to remote device' text should appear in middle of media player area.

Its working fine for me, I have test on 2 devices, Nexus 5 Android 6.0 and Nexus 6P Android 8.1,

@farhan ready for another pass.

Device is casted to remote device.
Go to Video player screen by choosing some video.
You will see an initial UI glitch that needs to be fixed.

Let's add @nonnull annotations on all the new written functions.

@farhan-arshad-dev I am done with the second pass

@farhan Ready for another pass.

Device is casted to remote device.
Go to Video player screen by choosing some video.
You will see an initial UI glitch that needs to be fixed.

UI glitch still exist

Analytics updating LGTM!

A question, Does this feature work for youtube videos?. Thanks!


Fixes typo in doc

Fixes typo in doc
Summary
There's a typo in documentation from enviornment to environment
Fixes #35653

Internal previews

📄 File
🔗 Preview link

docs/core/install/linux-ubuntu.md
Install the .NET SDK or the .NET Runtime on Ubuntu

@dotnet-policy-service agree


Status code 405

Sometimes when requesting different endpoints it returns status code 405 out of nowhere and does this no matter how many times I retry the command. I have to manually restart the server to fix this.  It's done this on different servers connected with FP-700X and DP-150. Version is 1.0.1122.1122
Log
[2019-12-20 18:34:26 INF] Request starting HTTP/1.1 GET http://<IP_ADDRESS>:8001/printers/dt785811/status
[2019-12-20 18:34:26 INF] -- HTTP Request -- GET: http://<IP_ADDRESS>:8001/printers/dt785811/status, Body(0):
[2019-12-20 18:34:26 INF] Executing endpoint 'ErpNet.FP.Server.Controllers.PrintersController.Status (ErpNet.FP.Server)'
[2019-12-20 18:34:26 INF] Route matched with {action = "Status", controller = "Printers"}. Executing controller action with signature Microsoft.AspNetCore.Mvc.ActionResult`1[ErpNet.FP.Core.DeviceStatusWithDateTime] Status(System.String) on controller ErpNet.FP.Server.Controllers.PrintersController (ErpNet.FP.Server).
[2019-12-20 18:34:26 INF] Executing ObjectResult, writing value of type 'Microsoft.AspNetCore.Mvc.ProblemDetails'.
[2019-12-20 18:34:26 INF] Executed action ErpNet.FP.Server.Controllers.PrintersController.Status (ErpNet.FP.Server) in 102.8292ms
[2019-12-20 18:34:26 INF] Executed endpoint 'ErpNet.FP.Server.Controllers.PrintersController.Status (ErpNet.FP.Server)'
[2019-12-20 18:34:26 INF] -- HTTP Response -- Code: 405, Body(54):
{"status":405,"traceId":"|68105e21-439889b41cb1c0ac."}
[2019-12-20 18:34:26 INF] HTTP GET /printers/dt785811/status responded 405 in 175.5647 ms
[2019-12-20 18:34:26 INF] Request finished in 175.9478ms 405 application/problem+json; charset=utf-8

Can you reproduce this with the latest version? It looks like Kestrel problem...

Will update soon and report again if it happens.

Status405MethodNotAllowed, is when the context is not ready to accept your requests. Did you forget your admin page in discovery mode. The context is not ready only when the autodiscovery is running.

It should be off, will check when I can. Thank you.


Unable to recreate model or refresh using JSON

Hi Robyn team,
I'm trying to refresh a model I created using an older version of Robyn. I've tried rerunning the model that created it initially and it gives me an error. I'm using weibull pdf and I've noticed I cannot set channel scales and shapes to 0 which previously worked on "version": ["Robyn (stable) v3.9.0 [R-4.2.2]"]. The model runs after changing the bounds to non-zero. Was there a change made to this? What changes do I need to make to recreate this model so I can refresh it? My goal is to keep the results from the previous year consistent and to refresh on a new year of data.
This is the error I get when I try to run the refresh function on the json:
Error in { :
task 1 failed - "'names' attribute [8] must be the same length as the vector [5]"

Current environment:
R version 4.3.0 (2023-04-21 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19045)
Robyn_3.10.3
@gufengzhou

In an attempt to get it to refresh, I changed the shapes lower and upper bound to 0.0001 and got past this error. The next problem I'm facing is inspecting the values in the json vs what is read into R, the xDecompAgg results are different from what's in the json. the model is recreated, and data is ingested through the robyn_recreate function. Can you please provide guidance on how I can address either or both problems I've mentioned? Thanks in advance.

Hi sorry for the late reply. Both issues (allowing 0 shape/scale and robyn_recreate) should be fixed with the latest GitHub version. Can you update and try?


feature: added live server and watch:web command

Problem

[!NOTE]
Local dev pain point

The current build setup does not efficiently handle watching files for changes across different parts of the project, such as the main codebase and the demo example. This results in a fragmented development workflow where developers need to manually start and monitor multiple watch tasks.
Solution
The PR introduces the following changes to streamline the development workflow:

Added a watch:demo script to navigate to the example directory and run its watch script.
Combined the watch, watch:demo, and watch:serve scripts into a single watch:web script using run-p for parallel execution.
Added a watch:serve script to start a live server on port 9000 serving the example/dist directory.

These changes enable developers to start all necessary watch tasks with a single command, ensuring a more efficient and cohesive development experience.
{
    "watch:demo": "cd ./example && npm run watch",
    "watch:web": "run-p watch watch:demo watch:serve",
    "watch:serve": "live-server --port=9000 example/dist"
}

[!TIP]
Just run npm run watch:web and everyone is happy

License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Would it make sense to also update example README here?


Support for the vast and Vpaid

Good afternoon, tell me whether your wonderful player will support advertising such as vast and VPAID?

why?

not interest


Add option to pay for certain amount of uses in anvil

Suggestions are always welcome and I appreciate all of them. However, please note that not all suggestions just cannot be implemented.
What is your suggestion?
When use anvil command, it has no downsides (normal anvil breaks after use too mush).
What is the suggestion you are proposing?
So when player has use anvil X amount of time, he had to pay (items or money) for use it again
How should this suggestion work?
When in gui, you get msg if anvil has no more uses and how to pay/give it item.
How should I attempt to make this suggestion work?
Make a command like /anvil charge 10
(you get 10 uses)
Player get this MSG "{playername} have charge anvil with {amount} of uses.
Anything else you need to add?
I don't say how you shall implemented, but give only suggestions (when you add this line in Feature request, I try too answer this too).

Would you prefer these charges to be renewed after a server restart or after a certain amount of time? Say it takes you two real life hours to renew one charge for your anvil?

Would you prefer these charges to be renewed after a server restart or after a certain amount of time? Say it takes you two real life hours to renew one charge for your anvil? Or would you like all players to have a specific set of "free" charges that would then run out after you use the maximum amount of charges set in the config, after you would have to pay to use the anvil.

I think of the last part, when players have  specific set of "free" charges and have to pay to get more.
The other two i think upset the players too much :)

Alright! Thanks for the feedback I shall begin working on this suggest as soon as I possibly can!

How is going with this ?

As an update to this:
I have the main plugin mostly updated to support this new addon plugin, the addon plugin is completely done. I have some final touches (like making sure the opened inventory message & sound isn't sent to the executer of the command if they don't have enough money or a free charge).
Unfortunately its currently rather late at the time of writing this and I have some things that I must attend tomorrow; I will certainly try to have the plugin completed tomorrow.

https://www.spigotmc.org/resources/pci-economy.93136/

I'm going to close this for now; should you find an issue or need support for your requested feature please open a new issue at https://github.com/ItsSchatten/PCI_Economy/issues


chore(build): make the script work on Windows

Perhaps we should just bite the bullet, convert this script to node.js and then run it as npm build or something. That would make it simple to build across platforms?

You had me at "node.js" :grin:

See #200.


update PR template to avoid stale InfluxQL spec

[ ] CHANGELOG.md updated
[ ] Rebased/mergable
[ ] Tests pass
[ ] Sign CLA (if not already signed)

@jwilder, this is done because we're seeing a lot of docs repo issues about the InfluxQL spec being out of sync. The one in the repo should be the single source of truth. It would be best if devs update on feature merge rather than support updating when the feature is finally documented or someone in the community notices.

@rkuchan

+1 to adding this. I also like how Homebrew structures their PR template with "You can erase any parts of this template not applicable to your Pull Request.".

:+1:

@gunnaraasen @jwilder I made some changes with Gunnar's feedback in mind. Can you quickly review?

:+1:

:+1:


Add acceptAllDevices option

This patch adds the acceptAllDevices option to platinum-bluetooth-device.
FIX: #28

I signed the CLA!


Improve repository documentation, error handling, logging, and performance

Add detailed comments, docstrings, and improve error handling, logging, and asynchronous programming in multiple files.

api.py:

Add detailed comments and docstrings.
Implement robust error handling in critical sections.
Improve logging using a more advanced logging library.
Refactor code to use asynchronous programming where applicable.

bot.py:

Add detailed comments and docstrings.
Implement robust error handling in critical sections.
Improve logging using a more advanced logging library.
Refactor code to use asynchronous programming where applicable.

chains.py:

Add detailed comments and docstrings.
Optimize database queries to reduce latency and improve performance.
Implement caching mechanisms to store frequently accessed data.
Refactor code to use asynchronous programming where applicable.

loader.py:

Implement robust error handling in critical sections.
Improve logging using a more advanced logging library.
Optimize database queries to reduce latency and improve performance.

pdf_bot.py:

Implement robust error handling in critical sections.
Improve logging using a more advanced logging library.

readme.md:

Provide a more comprehensive readme.md with detailed setup instructions, usage examples, and explanations of different components.

Description by Korbit AI
What change is being made?
Improve documentation, enhance error handling and logging, refactor for asynchronous operations and optimize performance across multiple modules, and supplement the repository with a changelog, comprehensive README, and caching mechanisms.
Why are these changes being made?
The changes are aimed at increasing code maintainability and readability, ensuring robust error handling and informative logging, and leveraging asynchronous programming to improve application responsiveness and scalability. These enhancements support better performance, especially in database operations, and provide users with detailed guidance on setup and component usage. The introduction of a changelog ensures that ongoing project updates are clearly documented.

Is this description stale? Ask me to generate a new description by commenting /korbit-generate-pr-description

Summary by CodeRabbit

New Features

Added a CHANGELOG.md file to document notable changes.
Introduced a "Setup Instructions" section in the README for easier onboarding.
Added a "Usage Examples" section in the README to guide users through application functionalities.

Bug Fixes

Enhanced error handling across multiple modules, including improved logging and user feedback for various operations.

Documentation

Improved code documentation with detailed comments and docstrings in several files, enhancing clarity and usability.

Refactor

Refactored code to implement asynchronous programming in key modules, improving scalability and responsiveness.

@dpendabot recreate


Move label:classes to be a list of classes.

Related Issue(s): #578
Proposed Changes:
Move label:classes property to be a list of class objects.
PR Checklist:

[x] This PR has no breaking changes.
[ ] I have added my changes to the CHANGELOG or a CHANGELOG entry is not required.
[x] API only: I have run npm run generate-all to update the generated OpenAPI files.

I'm unclear on if this needs a CHANGELOG entry - if so let me know and I'll add it.

This must be included in 0.8. This just fixes what the examples already show: label:classes is an array. Not having this in 0.8 either leaves us with an invalid schema/spec Or invalid examples.

Ah, gotcha. If that's the case then I think we can just consider it a 'fix' and not have to do another release candidate.

@cholmes Sorry for the incorrect base, I thought I made it off of dev... :shrug:
The 0.8.0-RC1 release notes have the label extension as 'added'; a 'fixed' changelog entry would make sense if there was a new RC, but if we aren't making another RC for this fix, it might not make sense to have both an 'added' and 'fixed' lines in the changelog for the same feature. But I can put one in if you still think it makes sense, or else I'll merge away.

It could be added as "fixed" for 0.8.0. "Added" was 0.8.0-rc.1.

@m-mohr Added changelog entry to the unreleased section of the CHANGELOG, which can be moved to 0.8.0 once it moves out of release candidate. If that seems good, looks good to merge - from a process standpoint, should I merge this PR or will one of you?

From gitter conversation, this is good to go.


I can't upgrade deconz from 3.8 to 5.1 integration appears always empty.

I am trying to upgrade deconz addon from 3.8 to 5.1 and I have followed all troubleshooting on deconz addon no luck. I am getting this integration after the update always empty.
I tried to uninstall deconz restart HA install again, integration is discovered but after I integrate (which is giving Success message) it is always empty.
This is my log after upgrade:
Config entry for deconz not ready yet. Retrying in 80 seconds. 12:07 PM config_entries.py (WARNING) - message first occurred at 12:06 PM and shows up 2 times Error connecting to deCONZ gateway at <IP_ADDRESS> 12:07 PM components/deconz/gateway.py (ERROR) - message first occurred at 12:04 PM and shows up 6 times Config entry for deconz not ready yet. Retrying in 40 seconds. 12:05 PM config_entries.py (WARNING) Config entry for deconz not ready yet. Retrying in 20 seconds. 12:04 PM config_entries.py (WARNING) Config entry for deconz not ready yet. Retrying in 10 seconds. 12:04 PM config_entries.py (WARNING) Config entry for deconz not ready yet. Retrying in 5 seconds. 12:04 PM config_entries.py (WARNING) Exception occurred: 12:00 PM /usr/local/lib/python3.7/site-packages/zeroconf/__init__.py (WARNING) - message first occurred at 11:51 AM and shows up 3 times
This is log from HA with deconz debug on after HA restart:
2020-01-29 12:04:07 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:04:17 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:04:17 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 5 seconds. 2020-01-29 12:04:23 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:04:33 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:04:33 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 10 seconds. 2020-01-29 12:04:44 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:04:54 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:04:54 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 20 seconds. 2020-01-29 12:05:15 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:05:25 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:05:25 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 40 seconds. 2020-01-29 12:06:06 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:06:16 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:06:16 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:07:37 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:07:47 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:07:47 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:09:08 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:09:18 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:09:18 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:10:39 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:10:49 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:10:49 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:12:10 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:12:20 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:12:20 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:13:41 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:13:51 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:13:51 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:15:12 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:15:22 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:15:22 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:16:43 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:16:53 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:16:53 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:18:14 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:18:24 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:18:24 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:19:45 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:19:55 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:19:55 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:21:16 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:21:26 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:21:26 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:22:47 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:22:57 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:22:57 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds. 2020-01-29 12:24:18 DEBUG (MainThread) [pydeconz.gateway] Sending "get" "None" to "<IP_ADDRESS> " 2020-01-29 12:24:28 ERROR (MainThread) [homeassistant.components.deconz] Error connecting to deCONZ gateway at <IP_ADDRESS> 2020-01-29 12:24:28 WARNING (MainThread) [homeassistant.config_entries] Config entry for deconz not ready yet. Retrying in 80 seconds.
This is log after device restart:
20-01-29 00:50:42 INFO (MainThread) [__main__] Initialize Hass.io setup 20-01-29 00:50:42 INFO (SyncWorker_0) [hassio.docker.supervisor] Attach to Supervisor homeassistant/armhf-hassio-supervisor with version 195 20-01-29 00:50:43 ERROR (MainThread) [hassio.supervisor] Supervisor does not run in Privileged mode. Hassio runs with limited functionality! 20-01-29 00:50:43 INFO (MainThread) [__main__] Setup HassIO 20-01-29 00:50:43 INFO (MainThread) [hassio.utils.gdbus] Connect to dbus: org.freedesktop.systemd1 - /org/freedesktop/systemd1 20-01-29 00:50:43 INFO (MainThread) [hassio.utils.gdbus] Connect to dbus: org.freedesktop.hostname1 - /org/freedesktop/hostname1 20-01-29 00:50:43 WARNING (MainThread) [hassio.dbus.rauc] Host has no rauc support. OTA updates have been disabled. 20-01-29 00:50:43 WARNING (MainThread) [hassio.dbus.nmi_dns] No DnsManager support on the host. Local DNS functions have been disabled. 20-01-29 00:50:43 INFO (MainThread) [hassio.host.info] Update local host information 20-01-29 00:50:43 INFO (MainThread) [hassio.utils.gdbus] Call org.freedesktop.DBus.Properties.GetAll on /org/freedesktop/hostname1 20-01-29 00:50:43 INFO (MainThread) [hassio.host.services] Update service information 20-01-29 00:50:43 INFO (MainThread) [hassio.utils.gdbus] Call org.freedesktop.systemd1.Manager.ListUnits on /org/freedesktop/systemd1 20-01-29 00:50:44 INFO (MainThread) [hassio.host.apparmor] Load AppArmor Profiles: {'hassio-supervisor'} 20-01-29 00:50:44 INFO (MainThread) [hassio.host.services] Reload local service hassio-apparmor.service 20-01-29 00:50:44 INFO (MainThread) [hassio.utils.gdbus] Call org.freedesktop.systemd1.Manager.ReloadOrRestartUnit on /org/freedesktop/systemd1 20-01-29 00:50:44 INFO (SyncWorker_1) [hassio.docker.interface] Attach to homeassistant/armhf-hassio-dns with version 1 20-01-29 00:50:46 INFO (MainThread) [hassio.misc.forwarder] Start DNS port forwarding to <IP_ADDRESS> 20-01-29 00:50:46 INFO (MainThread) [hassio.dns] Start CoreDNS plugin 20-01-29 00:50:46 INFO (SyncWorker_1) [hassio.docker.interface] Clean hassio_dns application 20-01-29 00:50:51 INFO (SyncWorker_1) [hassio.docker.dns] Start DNS homeassistant/armhf-hassio-dns with version 1 - <IP_ADDRESS> 20-01-29 00:50:52 INFO (SyncWorker_5) [hassio.docker.interface] Attach to homeassistant/odroid-xu-homeassistant with version 0.104.3 20-01-29 00:50:57 INFO (MainThread) [hassio.store.git] Load add-on /data/addons/core repository 20-01-29 00:50:57 INFO (MainThread) [hassio.store.git] Load add-on /data/addons/git/a0d7b954 repository 20-01-29 00:50:57 INFO (MainThread) [hassio.store] Load add-ons from store: 63 all - 63 new - 0 remove 20-01-29 00:50:57 INFO (MainThread) [hassio.addons] Found 4 installed add-ons 20-01-29 00:50:57 INFO (SyncWorker_0) [hassio.docker.interface] Attach to homeassistant/armv7-addon-configurator with version 4.2 20-01-29 00:50:57 INFO (SyncWorker_4) [hassio.docker.interface] Attach to homeassistant/armv7-addon-duckdns with version 1.10 20-01-29 00:50:57 INFO (SyncWorker_9) [hassio.docker.interface] Attach to hassioaddons/adb-armv7 with version 0.5.6 20-01-29 00:50:57 INFO (SyncWorker_11) [hassio.docker.interface] Attach to homeassistant/armhf-addon-deconz with version 5.1 20-01-29 00:50:57 INFO (MainThread) [hassio.updater] Fetch update data from https://version.home-assistant.io/stable.json 20-01-29 00:50:59 INFO (MainThread) [hassio.snapshots] Found 3 snapshot files 20-01-29 00:50:59 INFO (MainThread) [hassio.discovery] Load 1 messages 20-01-29 00:50:59 INFO (MainThread) [hassio.ingress] Load 0 ingress session 20-01-29 00:50:59 INFO (MainThread) [hassio.secrets] Load Home Assistant secrets: 1 20-01-29 00:50:59 INFO (MainThread) [__main__] Run Hass.io 20-01-29 00:50:59 INFO (MainThread) [hassio.api] Start API on <IP_ADDRESS> 20-01-29 00:50:59 INFO (MainThread) [hassio.addons] Phase 'initialize' start 0 add-ons 20-01-29 00:50:59 INFO (MainThread) [hassio.addons] Phase 'system' start 1 add-ons 20-01-29 00:51:02 INFO (SyncWorker_13) [hassio.docker.addon] Start Docker add-on homeassistant/armhf-addon-deconz with version 5.1 20-01-29 00:51:07 INFO (MainThread) [hassio.addons] Phase 'services' start 2 add-ons 20-01-29 00:51:07 ERROR (MainThread) [hassio.addons.addon] Add-on core_duckdns have wrong options: Missing required option 'token'. Got {'lets_encrypt': {'accept_terms': False, 'certfile': 'fullchain.pem', 'keyfile': 'privkey.pem'}, 'token': None, 'domains': [None], 'seconds': 300} 20-01-29 00:51:11 INFO (SyncWorker_0) [hassio.docker.addon] Start Docker add-on hassioaddons/adb-armv7 with version 0.5.6 20-01-29 00:51:11 ERROR (MainThread) [asyncio] Task exception was never retrieved future: <Task finished coro=<Addon.start() done, defined at /usr/src/hassio/hassio/addons/addon.py:463> exception=AddonsError()> Traceback (most recent call last):   File "/usr/src/hassio/hassio/addons/addon.py", line 474, in start     await self.write_options()   File "/usr/src/hassio/hassio/addons/addon.py", line 372, in write_options     raise AddonsError() hassio.exceptions.AddonsError 20-01-29 00:51:12 INFO (MainThread) [hassio.api.security] /host/info access from a0d7b954_adb 20-01-29 00:51:15 INFO (MainThread) [hassio.discovery] Send discovery to Home Assistant deconz from core_deconz 20-01-29 00:51:15 ERROR (MainThread) [hassio.homeassistant] Error on call http://<IP_ADDRESS>:8123/api/: Cannot connect to host <IP_ADDRESS>:8123 ssl:None [Connection refused] 20-01-29 00:51:15 INFO (MainThread) [hassio.discovery] Discovery e7ed9fdeb49347c08888a551fc4da574 mesage ignore 20-01-29 00:51:16 INFO (SyncWorker_19) [hassio.docker.interface] Start homeassistant/odroid-xu-homeassistant 20-01-29 00:51:42 INFO (MainThread) [hassio.homeassistant] Detect a running Home Assistant instance 20-01-29 00:51:42 INFO (MainThread) [hassio.addons] Phase 'application' start 1 add-ons 20-01-29 00:51:45 INFO (SyncWorker_11) [hassio.docker.addon] Start Docker add-on homeassistant/armv7-addon-configurator with version 4.2 20-01-29 00:51:50 INFO (MainThread) [hassio.tasks] All core tasks are scheduled 20-01-29 00:51:50 INFO (MainThread) [hassio.core] Hass.io is up and running
I have noticed that old addon has config:
`

Container
Host
Description

5900/tcp

deCONZ graphical desktop via VNC

80/tcp

deCONZ API backend

8080/tcp

deCONZ WebSocket Server

`
A bit different to the new one. Maybe this is the problem, but I am a noob.
No other warnings
Please help I am stuck in the old addon version and can't move on.

I have just notice that there is change how gateway IP is discovered on phoscan app. Before the upgrade I have my local ip after the upgrade there is that deconz ip so maybe there is something into it. Screenshot attached.

Ok so probably the address is updated but the add-on doesn't update the host address in the integration

So how can I fix it? I do not want to be stack on deconz 3.8 forever.

Help please, please. I am stuck in that 3.8.


EditCollective: Prevent editing tiers if not event or collective

Fix https://github.com/opencollective/opencollective/issues/3014
I'm not sure where this was introduced. The real solution to avoid that in the future would be https://github.com/opencollective/opencollective/issues/1451.

@Betree I think this might have been introduced in https://github.com/opencollective/opencollective-frontend/pull/3630

@znarf good catch, https://github.com/opencollective/opencollective-frontend/pull/3630/files#diff-a24a56b7f34652e27e424c18037c2e33R78 probably made us return an array with an empty object VS an empty array as it was before.


Fix url scheme to HTTPS and case insensitive on content-disposition.

I get some errors on install a new PECL package.

:+1:

4 year and nothing...


Update pureconfig-core, ... from 0.17.1 to 0.17.5

About this PR
📦 Updates

com.github.pureconfig:pureconfig-core
com.github.pureconfig:pureconfig-generic

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

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.pureconfig" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.github.pureconfig" }
}]

labels: library-update, early-semver-minor, semver-spec-patch, commit-count:1

Superseded by #1102.


Propagate ssh public key from dashboard to workers, bsc#1030876

does this PR depend on https://github.com/kubic-project/caasp-container-manifests/pull/40 ?

This still concerns me a bit about HA, since it is yet another file in disk that is only available to one administration dashboard machine... We will need to figure this out along with the application secrets...
LGTM :+1: addressing the changes (so we don't write an empty key if that happens, and that we only really care about having read the contents of the file).

@ereslibre: ok, I've addressed your comments, thank you for suggestions


Investigate removal of TSLint

Given the recent(ish) work on the ESLint side it would be nice to have only one linter.
~~https://github.com/JamesHenry/typescript-estree~~
~~https://github.com/eslint/typescript-eslint-parser~~
~~https://github.com/bradzacher/eslint-plugin-typescript~~
All deprecated in favour of:
https://github.com/typescript-eslint/typescript-eslint
Another good reason to upgrade:
https://eslint.org/blog/2019/01/future-typescript-eslint

[ ] https://github.com/quadre-code/quadre/pull/151 First step: use eslint-plugin-typescript for ts and tsx code

Done in https://github.com/quadre-code/quadre/pull/347


Question about the performance influence of the resolution of pretrained swin transformer on the HICO-DET

Have you tried to train the QAHOI which is based on the ImageNet-22K 224x224 pre-trained swin transformer backbone?

Here are some other experiments we did.
The Swin-Base* in this table is based on the ImageNet-22K with 224x224 resolution.

Thanks! Furthermore, I wonder why the QAHOI with R50 backbone cannot surpass the QPIC with R50 backbone? Intuitively,  deformable-detr-r50 should perform better than detr-r50 on HICO-DET dataset

Both of them are fine-tuned on COCO, but QAHOI cannot acquire a huge performance boost like QPIC, it's strange.

epoch
AP
AP-S
AP-M
AP-L

Deformable DETR
50
44.5
27.1
47.6
59.6

DETR
500
42.0
20.5
45.8
61.1

We use the deformable-detr-r50 trained 50 epochs on COCO.
I think there are three main reasons that QAHOI-r50-fine is lower that QPIC-r50-fine:

The AP-L of deformable-detr-r50 is lower than detr-r50.

QPIC only use the low-resolution high-level feature map, and this is beneficial for large object detection. There are 600 HOI categories, although we have not evaluated the spatial distribution of each category. The large size target may be more important than the median or small ones.
The deformable-detr-r50 trained 150 epochs has better performance. Training a deformable-detr with higher AP-L may get better for the HOI task.

The deformable-detr-r50 uses four feature maps.

As the multi-scale experiments of QAHO-swin-tiny, using three feature maps is better.

The attention mechanism.

The attention mechanism of the DETR to achieve global attention may be better than Deformable-DETR. For reference, you can check this paper. Vision Transformer with Deformable Attention
Although QAHOI uses multi-scale feature maps to improve the detection part, the recognition part which requires global semantic information may be weaker than QPIC.

If you have any ideas, feel free to point them out.

Very thanks for your helpful reply!


🐞 There is no file exported to the host machine when the execution command fails

What is the issue?
We are trying to run the UI Playwright tests and export the test results to the host machine. This works fine when all tests pass. However, when there is a test failure, the container exits with error code 2 and does not export the test report.
func (m *Demo1) RunTest(ctx context.Context, source *dagger.Directory) *dagger.File {
    // Connect to the Dagger eng
    container := dag.Container().
            From("mcr.microsoft.com/playwright:v1.46.1-focal").
            WithDirectory("/app", source).
            WithWorkdir("/app").
            WithEnvVariable("npm_config_yes", "true").
            WithExec([]string{"npm", "install", "-g", "npm@10.8.3"}).
            WithExec([]string{"npm", "install", "@playwright/test"}).
            WithExec([]string{"npx", "playwright", "test"})

    _,err := container.Stdout(ctx)
    if err != nil {
    return container.Directory("/app").File("results.xml")
    }
	return container.Directory("/app").File("results.xml")

}
Is there a way to export the report in case of failure as well.Thanks
Dagger version
dagger v0.12.5
Steps to reproduce
We are trying to run the UI Playwright tests and export the test results to the host machine. This works fine when all tests pass. However, when there is a test failure, the container exits with error code 2 and does not export the test report.
func (m *Demo1) RunTest(ctx context.Context, source *dagger.Directory) *dagger.File {
    // Connect to the Dagger eng
    container := dag.Container().
            From("mcr.microsoft.com/playwright:v1.46.1-focal").
            WithDirectory("/app", source).
            WithWorkdir("/app").
            WithEnvVariable("npm_config_yes", "true").
            WithExec([]string{"npm", "install", "-g", "npm@10.8.3"}).
            WithExec([]string{"npm", "install", "@playwright/test"}).
            WithExec([]string{"npx", "playwright", "test"})

    _,err := container.Stdout(ctx)
    if err != nil {
    return container.Directory("/app").File("results.xml")
    }
	return container.Directory("/app").File("results.xml")

}
Is there a way to export the report in case of failure as well.Thanks
Log output
No response

Heya, this looks like a duplicate of https://github.com/dagger/dagger/issues/8275.
Going to close this one, and answer there.


tf.train.L_BFGS_Optimizer

This would be a great addition to tensorflow, and is conspicuously missing. Is there some specific reason it's missing, or is it in the works?

It is not currently in the works, and it would be a great addition to TensorFlow. Any contribution in this area would be very welcome.

Putting in a full implementation of L-BFGS seems like a nontrivial task, but a first step could be introducing some sort of line search functionality, which could be an option to GradientDescentOptimizer as well when in full-batch (no-dropout) mode?
Perhaps there could be e.g. a FullBatchOptimizer base class that implements line searches, with a virtual function StepDirection to compute line search directions (which could then be implemented separately for gradient descent, conjugate gradient, L-BFGS, etc.)?
Thoughts?

Putting in a full implementation of L-BFGS seems like a nontrivial task, but a first step could be introducing some sort of line search functionality, which could be an option to GradientDescentOptimizer as well when in full-batch (no-dropout) mode?
Perhaps there could be e.g. a FullBatchOptimizer base class that implements line searches, with a virtual function StepDirection to compute line search directions (which could then be implemented separately for gradient descent, conjugate gradient, L-BFGS, etc.)?
Thoughts?

I agree that it would be a great addition and I would be happy to contribute. I have been using something analogous to this slick implementation lbfgs_cpp by @js850.
For instance the lbfgs_cpp::compute_lbfgs_step would fit within your proposed StepDirection virtual function, although it would have to be rewritten to support gpus. Likewise for the backtracking linesearch which one might want to use on top of it.

Mark Schmidt's minFunc is famous for its state of the art implementation of line searches. It's probably a very good reference implementation to benchmark against.
As a side note, the implementation of l-BFGS-b in scipy is a wrapper for the official FORTRAN implementation:
http://docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.optimize.fmin_l_bfgs_b.html
http://users.iems.northwestern.edu/~nocedal/lbfgsb.html
which is probably another good reference implementation to benchmark against.

BTW, scipy lBFGS seems to be slower than Matlab's minFunc
I tried running https://github.com/jatinshah/ufldl_tutorial, which uses scipy's lBFGS, and it felt an order of magnitude slower than equivalent Matlab version

@yaroslavvb you have to be careful to use equivalent stopping criterion which is not always easy to do.

I had a question to the authors on testing an implementation of this.
For the other optimisers like Adam there is a python function that does the equivalent optimisation and then the test checks that the real implementation comes up with the same result. That seems reasonable given how simple the other optimisers are, but what about something more involved like L-BFGS-B?
The implementation could be compared to what scipy gets, but then again bringing in scipy as a dependency just for the sake of one test seemed, well, excessive. A full Python implementation just for the tests seems brittle as the Python implementation could just as easily be buggy. Perhaps a pure python implementation is the way to go?

We have an external optimizer interface module coming to contrib/ that should address this. Allows controlling a TF session using e.g. scipy.optimize.minimize(). Should be available soon!

@joshburkart - Sounds like exactly what I was looking for!

This is done now and should be closed. :) See here for usage instructions.

Do you have any numbers on the speed? I've been working on a GPU version of l-BFGS optimizer in tensorflow, so it would be interesting to compare

Hmm nope no numbers. It involves moving data not only off the GPU but also into Python for every loss or gradient evaluation, so I imagine you wouldn't want to use it for small optimization problems if efficiency is an issue. But as your loss becomes more expensive to evaluate this disadvantage becomes less important.

Could persistent tensors be used to avoid the transfers from GPU to python?  You may want to take a look at python/ops/session_ops.py and python/kernel_tests/session_ops_test.py.

@yuanbyu Not if we're using a Scipy optimizer to control a TF session. That's what we have working now. Keeping everything in TF the whole time would require a custom TF implementation.

I guess that the Scipy optimizer makes a sequence of run calls in a TF session? Are there cases that a run call produces a tensor but the tensor is only used in a subsequent run call?  Persistent tensor would make it possible to keep such tensors "in-place" on the device that produced them, avoid moving them back and forth between the python client and the device.
On the other hand, it would be really nice to have a real native TF implementation, possibly using a nested while loop.

So I have a version of l-BFGS that relies on persistent tensors to keep data in TensorFlow runtime, and Immediate mode for syntactic sugar. It's a line-by-line port of lbfgs.lua -- here's a comparison . I checked numerics on some toy problems and it tracks Lua implementation almost exactly .
Persistent tensor operations adds 200-300 usec overhead for each TensorFlow operation, so if "the meat" of each tensor operation is below 300usec, then a fully native TensorFlow implementation will be more efficient.

@yaroslavvb Any plan about when to add your implementation into official TensorFlow code?

@weiliu620 It will not go into official TensorFlow code. There's considerable complexity in the module and nobody in the core team feels comfortable enough to assume ownership of it. However, since it's pure Python, it doesn't need to be part of the core. I'm working on getting a single-file version working so you could "install" the mode by copy pasting it into your file. The main core dependency is persistent tensors which should be working in upcoming release (0.10) after which I can release this mode. Do you have any specific use-cases in mind? In particular, I have the regular l-BFGS, but wondering if I need to do specific line-search additions

@yaroslavvb While I'm testing the neural-style code by @jcjohnson, I found using lbfgs optimizer got cost function ~12% less than using adam optimizer, with fixed number of iterations. There are also some discussions  on these two optimizers on style transfer.
So that is the use case that I run into this issue. Thanks for the work!

@joshburkart Can you provide a minimal example of using the loss_callback? The in-code examples are great, just not using loss_callback. Thanks!

Example callback:
def callback(x):
  # x is the current packed set of values being optimized.
  print(np.linalg.norm(x))

It would be nice if the callback received e.g. a map from tensor name to current value, rather than the internal packed representation as a single vector, but that's currently not implemented. Feel free to work on it!
Note that we're deprecating grad_callback (we're going to run both loss and loss grad in one session.run call) so best not to use that.

Whoa! Please ignore my previous completely incorrect post. Forgot that I actually did implement this correctly the first time. :P The callback does in fact get arbitrary fetches as appropriate-shaped arrays. So here's an example where the callback receives the loss itself (but it could receive any other tensor in the graph):
loss = ...

i = 0
def callback(loss):
  nonlocal i
  print('Loss evaluation #', i, ', loss:', loss)
  i += 1

scipy_optimizer =  tf.contrib.opt.ScipyOptimizerInterface(loss)
scipy_optimizer.minimize(session, fetches=[loss], loss_callback=callback)

I should really rename fetches to callback_fetches, since this is confusing...

Is there any progress on this enhancement? I'm working on that and need a comparison.

@joshburkart tested and the callback works. Thanks for the great work!

Hi @joshburkart and @weiliu620, would you mid elaborating a bit further on how to use a BFGS optimizer? I'm a bit too novice to fill in the missing pieces from Josh's example. I have a basic running net that uses the following:
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(trn_logits, tf_train_labels)) optimizer = tf.train.AdamOptimizer(0.05).minimize(loss)
I'm a bit confused as to how to deal with the: session, fetches=[loss], loss_callback=callback part.
If you have suggestions or some pointers to where to look for answers I'd really appreciate it.
Thanks!

@olegaulov There are some examples in the docstring :)

Thanks @joshburkart ! Just what I was looking for.

Thanks @joshburkart for your contribution. Would you mind to close this issue? @zfrenchee @martinwicke

For future lurkers, here's an end-to-end example of using this optimizer on the UFDL sparse ae tutorial
https://github.com/ncullen93/UFDL_Tensorflow/blob/master/tf_sparse_ae.py

@ncullen93 the link is not valid anymore. does anyone have a backup copy?

@zhaojunz Yes, the link is dead. Maybe this will help on how to use a scipy optimizer (L-BFGS for example):
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/opt/python/training/external_optimizer_test.py

@weiliu620 @joshburkart
I have tried the L-BFGS method in the neural-art code by @jcjohnson .
It does work and return more stable results than Adam.
However, I find the optimization became a little slower.
Also, is there any way to probe at iteration progress (print stuff / generate checkpoint images using interval variables) like the original code does.
Since I find in the official comment doc that "variables subject to optimization are updated in-place at the end of optimization".

Hello @flowice
Do you mind sharing the codes of the L-BFGS in tensorflow with me? So you have the working code?
thanks a lot
Best
Rabeeh

@rabeehk  it is easy to use. I just follow the official doc.
The core code is here:
`
train_step = tf.contrib.opt.ScipyOptimizerInterface(
loss,
method='L-BFGS-B',
options={'maxiter': iterations})
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
train_step.minimize(sess)
`

@flowice Thanks a lot for the help. I tried it, for my loss function, it becomes "nan", maybe the learning rate is too high, I was wondering if you may know how I can modify the learning rate for this method? I could not find this option in the codes. Thanks a lot in advance.

We have added LBFGS based optimizers in Breeze which is being used in Spark MLlib for example and the C++ port from fortran is available through multiple projects (I benchmarked this for example https://github.com/chokkan/liblbfgs) but given that neural nets are based on non-convex loss (original distbelief paper also found that sgd + adagrad works better than LBFGS), is it useful to add LBFGS in tensorflow ? Most likely users are now running convex models in tensorflow and for such models LBFGS is a good fit compared to SGD + Adagrad ?

@debasish83 I've implemented l-BFGS in TensorFlow here.
Some benchmarks are here. It's not as performant as it could be, but @alextp and friends are working on optimizing the underlying framework.
One thing that should significantly speed up implementation above is to reduce Python/TensorFlow round-trips by replacing inner python loops (two-step recursion) with defuns, something like this (h/t @agarwal-ashish)
def f(k, q, *args):
  old_dirs = args[:k]
  ro = args[k:2*k]
  old_steps = args[2*k:3*k]
  for i in range(k-1, -1, -1):
    al = dot(old_dirs[i], q) * ro[i]
    q = q - al * old_steps[i]
  return q

@function.defun
def g(q, *args):
  return f(100, q, *args)

 q = -g
  if k == 100:
    q = g(q, *(old_dirs + ro + old_steps))
  else:
    q = f(k, q, *(old_dirs + ro + old_steps))

@yaroslavvb If the model is distributed on a set of ps nodes, will this https://github.com/yaroslavvb/stuff/blob/master/eager_lbfgs/eager_lbfgs.py work ? I think we need to run BFGS loop on the chief node which coordinate the worker and ps nodes...distbelief paper did that...

Nope, there's no distributed support in Eager. So if you want to large scale implementation, you'll need to use classic execution mode.
There used to be l-BFGS implemented in standard TensorFlow but it was deleted because it never got robust enough. Because tensorflow distributed framework is quite low-level so people sometimes get surprised by how much work it takes to get something robust. Following comment/commits in sync_replicas_optimizer gives an overview of some pitfalls -- https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/training/sync_replicas_optimizer.py

K-FAC is a second-order optimizer, isn't it?
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/kfac

Hi all,
Have any one considered implementing the Scaled Conjugate Gradient Algorithm (SCG) in Tensorflow?
SCG avoids the line search alltogether. SCG is currently implemented in Mathlab as 'trainscg' method.
I would like to contribute, but I am, however, currently not that familiar with Tensorflow.
For reference see:

A scaled conjugate gradient algorithm for fast supervised learning, M. F. Moller, Neural Networks 6 (4), 525-533, 1993.
and more general info on:
Efficient Training of Feed-Forward Neural Networks

The Hessian times a vector (used in the SCG) can be calculated exact and/or approximated.
A scaled conjugate gradient algorithm for fast supervised learning.pdf
Efficient training of feed-forward neural networks - moller - phd thesis.pdf

fyi, there is a BFGS-Implementation in tensorflow/probability:
https://github.com/tensorflow/probability/blob/master/tensorflow_probability/python/optimizer/bfgs.py

I have implemented L-BFGS optimizer in my dinrhiw2 C++ machine learning library. When implemented well line search doesn't take that much time and seem to be get results equally fast than with first order optimizers. For some problems L-BFGS can seem to be able to side-step some local minimas and get better results.
https://github.com/cslr/dinrhiw2/blob/RBM_test/src/math/LBFGS.cpp

FYI -- i've put out a request to update and make the scipyoptimizer interface compatible with eager execution.  Additionally would like to tie in an early stopping option (i list a hack-y way to do this already).  Anyone willing to help would be much appreciated.  The scipy optimizer has L-BFGS + CG + others, so it would be worth the time!

@yaroslavvb Do you have any benchmarks againsts scipy's CPU version ? That would be very interesting.

@flowice Thank you very much for your answer. But could I apply the bfgs method in each batch of data and do the parameter update?
I have also checked the other package like neupy and it seems like they provide an answer. But it seems like this package relies on theano and makes it very difficult to run codes in the 64-bit computer....

this blog posts explains how to use tfp.optimizer.lbfgs_minimize and provides a reproducible example.
https://pychao.com/2019/11/02/optimize-tensorflow-keras-models-with-l-bfgs-from-tensorflow-probability/


Don't try to measure lines that don't exist

By the time that the animation frame is delivered, the requested autoscroll position could not exist anymore. This could cause the editor component to measure a non-existent line and, as a result, throw an exception.
With this commit we will always ignore measurements for screen lines that do not exist.
/cc: @nathansobo

👍 Looks good to me.


Update README.md

Hey @AmeyaJain-25 ,
Kindly Review my PR ,
I have fixed the issue #299 !

Nice work @codeaholic-shub 🚀
Keep Contributing

@Tejas1510 View the PR

Hey @Tejas1510 ,
Kindly Review this PR ,
As it is approved !

Thanks @codeaholic-shub for your contribution✌


Touch support

Hi!
I guess this would be a feature request, but would it be possible to get touch support for dragging the resize bar? Currently if used on a mobile browser with only touch as input I don't see a way to resize the areas.
Thanks!

Nevermind, I just realized it was working already :) Sorry about the noise!


[FEATURE 💡] Non-Responsive Sign-In Form on Mobile Devices.

Description
Issue Summary:
The sign-in form in the project is not responsive, which causes usability problems on mobile devices with smaller screens. When attempting to access the sign-in page on a smartphone or tablet, the form does not adapt to the screen size, making it challenging to use.
Reproduction Steps:
Open the project on a mobile device (e.g., smartphone or tablet).
Navigate to the sign-in page.
Attempt to use the sign-in form.
Expected Behaviour:
The sign-in form should adjust its layout and styling to fit the smaller screen size of the mobile device. Users should be able to easily enter their credentials and sign in.
Screenshots :

Wanna Work upon[y/n] ??
Yes, Please assign me to this issue.

Thank You @vedantmistryy , Please add the Hacktoberfest label.

@vedantmistryy  Please verify the pull request and please add  Hacktoberfest label.

@Haris-Mohanty you are great at explaining issue. Just learn to resolve merge conflicts. Would  be really helpful for you