Tests are needed for this project

when i use :
mention()->asText('collaborator', old('collaborator'), 'users', 'username', 'form-control')

i've got this message :

Type error: Argument 3 passed to Collective\Html\FormBuilder::__construct() must implement interface Illuminate\Contracts\View\Factory, string given...

i think maybe  __construct() of class MentionBuilder miss Illuminate\Contracts\View\Factory as agrument 3  ?

I haven't gotten this before but I'm open to PRs if you are willing to fix this before I take a deep dive to look at it

This has been taken care of in #PR @trongle


Write a Python program to divide two numbers

Description
Write a Python program to divide two numbers
Input  : 2 4
Output : 0.5

How to contribute

Save the solution in divide-two-numbers.py file
Add divide-two-numbers.py file in divide-two-numbers folder

!assign


Bug 2000294: Report esxi api versions

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2000294

I checked that this PR did not cause etcd issues, periodic jobs show the same symptoms
[sig-arch] events should not repeat pathologically
event happened 30 times, something is wrong: ns/openshift-etcd-operator deployment/etcd-operator - reason/OperatorStatusChanged Status for clusteroperator/etcd changed: Degraded message changed from "EtcdEndpointsDegraded: rpc error: code = Canceled desc = grpc: the client connection is closing\nNodeControllerDegraded: All master nodes are ready\nEtcdMembersDegraded: No unhealthy members found" to "NodeControllerDegraded: All master nodes are ready\nEtcdMembersDegraded: No unhealthy members found"

/override ci/prow/e2e-vsphere


Error: Option 'emitDeclarationOnly' cannot be specified without specifying option 'declarations'.

Running typedoc on my source code throws the error:
Error: Option 'emitDeclarationOnly' cannot be specified without specifying option 'declarations'.
I use typescript with babel 7 so I only produce declaration files in my build with typescript. The error message was changed in typescript 2.8.1 (https://github.com/Microsoft/TypeScript/issues/22425) so it might have something to do with the typescript compiler version but I’m not sure.
command
typedoc --out docs src

tsconfig.json
{
  "compilerOptions": {
    "jsx": "preserve",
    "outDir": "lib",
    "lib": ["ES2017"],
    "declaration": true,
    "strictNullChecks": true,
    "downlevelIteration": true,
    "emitDeclarationOnly": true,
    "moduleResolution": "node"
  },
  "include": ["src/**/*", "test/**/*"]
}

Hello @brainkim, you are correct that this is due to TypeDoc using an old version of TypeScript. This will be fixed in the next release.

@aciccarello Is there a place where I can track typescript support for typedoc?


Any guidance on large file uploads above 32mb?

I'm having success with the provider hosting strapi on Google Cloud Run. However if i upload a file above 32mb (their hard request limit) i get the 413 large file http error.
Updated request.json etc.
{
  "parser": {
    "enabled": true,
    "multipart": true,
    "formidable": {
      "maxFileSize": 524288000
    }
  }
}

More of a hosting issue but Google App Engine i presume has similar request limits. Is the media library just not really an option for large files?
Most of what i'm trying to upload are around 50mb.

For now i have a separate Google Cloud Compute vm instance dedicated to CMS and admin with a separate Google Cloud Run config for external consumers.
A bit over the top but should scale (just wish it could be under one roof).
Perhaps on the horizon could be a file upload where it directly sends the file to google storage instead of via the POST to /upload.
❤

Hello @devpascoe,
I've uploaded files over 100MB without any problem, but I use Google Cloud Storage only on dedicated hosting.
I'm not using anymore Google App Engine, so I'm not sure to help you :/
You need to check configuration limit on Strapi and on your server hosting, but GCS have a higher limitation (5 To).
Thanks

I'm using App Engine to host Strapi (with this Google Cloud Storage plugin) and I noticed that I was able to upload bigger files if I gave the App Engine instances more memory.

For now i have a separate Google Cloud Compute vm instance dedicated to CMS and admin with a separate Google Cloud Run config for external consumers.

@devpascoe did you find another better solution or did you stick with it?

For now i have a separate Google Cloud Compute vm instance dedicated to CMS and admin with a separate Google Cloud Run config for external consumers.

@devpascoe did you find another better solution or did you stick with it?

lol stuck with it.


fix: footer position absolute

Hey! I really like your website! :)
But I noticed that the footer did not appear at the bottom for me.
Since you seem to use tailwind CSS, I added the absolute class. This fixed it for me.

Hey! I really like your website! :)
But I noticed that the footer did not appear at the bottom for me.
Since you seem to use tailwind CSS, I added the absolute class. This fixed it for me.

first of all thanks for making this PR.
I'm using this repo as a go-to to make and modify my own website version.
This repo by a mistake been make as a public xD anyway, thanks again!


support for glonass ?

Hi.
Thanks for the Particle library.
However, I recently tried the library with the receiver below, and at least where I live many of the strings from the device seems to be glonass, and start with $GNGGA
https://www.electrodragon.com/product/gnss-module-atgm336h/
I'm currently using this modified tinygps library, maybe you could add the changes and publish this to the Particle library ?
https://github.com/SensorsIot/TinyGPSplus-for-Neo-M8N
Thanks

You can make the change and create a PR.


ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.

This error occurs when running the example app:
Running Gradle task 'assembleDebug'...
✓ Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...
E/flutter (18643): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.
E/flutter (18643): If you're running an application and need to access the binary messenger before `runApp()` has been called (for example, during plugin initialization), then you need to explicitly call the `WidgetsFlutterBinding.ensureInitialized()` first.
E/flutter (18643): If you're running a test, you can call the `TestWidgetsFlutterBinding.ensureInitialized()` as the first line in your test's `main()` method to initialize the binding.
E/flutter (18643): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7)
E/flutter (18643): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4)
E/flutter (18643): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62)
E/flutter (18643): #3      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:146:35)
E/flutter (18643): #4      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:329:12)
E/flutter (18643): #5      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:356:48)
E/flutter (18643): #6      MethodChannelSharedPreferencesStore.getAll (package:shared_preferences_platform_interface/method_channel_shared_preferences.dart:54:22)
E/flutter (18643): #7      SharedPreferences._getSharedPreferencesMap (package:shared_preferences/shared_preferences.dart:187:57)
E/flutter (18643): #8      SharedPreferences.getInstance (package:shared_preferences/shared_preferences.dart:54:19)
E/flutter (18643): #9      debugObtainSharedPreferencesInstance (package:streaming_shared_preferences/src/streaming_shared_preferences.dart:300:23)
E/flutter (18643): #10     debugObtainSharedPreferencesInstance (package:streaming_shared_preferences/src/streaming_shared_preferences.dart:299:27)
E/flutter (18643): #11     StreamingSharedPreferences.instance (package:streaming_shared_preferences/src/streaming_shared_preferences.dart:40:7)
E/flutter (18643): #12     main (package:privacyidea_authenticator/testPref.dart:25:56)
E/flutter (18643): #13     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:241:25)
E/flutter (18643): #14     _rootRun (dart:async/zone.dart:1184:13)
E/flutter (18643): #15     _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (18643): #16     _runZoned (dart:async/zone.dart:1619:10)
E/flutter (18643): #17     runZonedGuarded (dart:async/zone.dart:1608:12)
E/flutter (18643): #18     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:233:5)
E/flutter (18643): #19     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:301:19)
E/flutter (18643): #20     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

To prevent this, the main method should be changed to:
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  /// Obtain instance to streaming shared preferences, create MyAppSettings, and
  /// once that's done, run the app.
  final preferences = await StreamingSharedPreferences.instance;
  final settings = MyAppSettings(preferences);

  runApp(MyApp(settings));
}

This should be mentioned in the documentation of this plugin also.

Just hit the exact same problem. Will try to do an update and Pull Request.

#10

Fixed by #10.


DataFrame.fillna corrupts columns with duplicated names

# Pandas version 0.17.1
import pandas as pd
df = pd.DataFrame({'Same': 1.0, ' Same': pd.np.nan, '  Same': pd.np.nan}, index=[0,1,2])
df.columns = [c.strip() for c in df.columns]
df.iloc[:, 2] # Returns all 1.0

df.iloc[:, 0] = df.iloc[:, 0].fillna(df.iloc[:, 1])

df.iloc[:, 2] # Column 2 is corrupted and returns all NaN

hmm, that appears to be the case. pull-requests to investigate are welcome.

@jreback : Where would the potentially offending code be located?

core/generic


is this project dead now ?

is this project dead now ? )= or only removed from chrome store and you can provide dl link on github ? i just found this nice addon yesterday and now it got removed from chrome store ...

Maybe EA found out about when you started using it...
I'm just kdding, but consider this project dead.


frontend-download: GitHub doesn't allow artifact downloads from anonymous users

Please verify that this bug has NOT been raised before.

[X] I checked and didn't find a similar issue

Describe the bug*
When updating to the latest version I've seen this error scrolling by.
InvenTree database migrations completed!
Found workflow QC (run 7178-1)
Found artifact frontend-build with id 849374398 (1.21MB).
GitHub doesn't allow artifact downloads from anonymous users. Either download the following file
via your signed in browser, or consider using a point release download via invoke frontend-download --tag
Download: https://github.com/InvenTree/inventree/suites/14905555951/artifacts/849374398 manually and
continue by running: invoke frontend-download --file <path-to-downloaded-zip-file>

Not sure if this is a critical error and if I didn't see the error scrolling past and did nothing would the upgrade have failed?
I downloaded the file manually and then ran the invoke frontend-download
Steps to Reproduce

invoke update

Expected behaviour
Is there a workaround for this other than having to download the file manually and then
invoke frontend-download
Is this required during each upgrade?
Deployment Method

[ ] Docker
[X] Bare metal

Version Information
Version Information:
InvenTree-Version: 0.13.0 dev
Django Version: 3.2.20
Commit Hash: af14cef
Commit Date: 08/08/2023
Commit Branch: master
Database: mysql
Debug-Mode: True
Deployed using Docker: False
Platform: Linux-5.15.0-78-generic-x86_64-with-glibc2.35
Installer: GIT
Active plugins: False
Please verify if you can reproduce this bug on the demo site.

[ ] I can reproduce this bug on the demo site.

Relevant log output
Running migrations:
  No migrations to apply.
System check identified no issues (1 silenced).
========================================
InvenTree database migrations completed!
Found workflow QC (run 7178-1)
Found artifact frontend-build with id 849374398 (1.21MB).

GitHub doesn't allow artifact downloads from anonymous users. Either download the following file
via your signed in browser, or consider using a point release download via invoke frontend-download --tag <git-tag>

    Download: https://github.com/InvenTree/inventree/suites/14905555951/artifacts/849374398 manually and
    continue by running: invoke frontend-download --file <path-to-downloaded-zip-file>
render stock.js
render helpers.js
render part.js
render model_renderers.js
render news.js
render barcode.js

@StormTrooper thanks for reporting. This should not impact current behaviour but is important for future work.
@wolflu05 @matmair we'll need to address this!

This is intended behaviour; as discussed previously we do not want to have compiled forntend-files in the repo. This is the only feasible way to provide frontend files for non-release git-based installs.

Yep, but should we make "compile frontend" an "opt-in" option until we switch to the new UI? We are going to get a lot of confused users if we make it the default behaviour for invoke update, I think

Several new features I am building won't get a C UI interface (from me at least - #5095, #2284 ) so it would be good to push the change to P UI.

The only options I see here to make this a fully automated process for any commit are either:

Configure a Github PAT somewhere which the script uses to download the artifact (not sure security wise if people would love that, because I wouldn't)
Provide our own artifact server which doesn't have this auth requirement
(Don't care, because ppl. should either use docker or the package installer which both have a build included. And if they still want to use this setup method, they need to work with this semi automated process)

I am for 3

also. If people need a github account because they really don't want to use docker / installer / install node, then that does not seem like a massive burden.

So if I understand the issue right we could close it?

I'm happy to close if @matmair is also

Happy to close, maybe we should add some info about this to the FAQ / install docs

Closing, replaced by https://github.com/inventree/InvenTree/issues/6833


Include the PDF and LaTeX Transformers

These totally should have been re-exported.
/cc @willwhitney

Yup, looks good. I'll start using these too.


go mod download : no congruence between  command result and help description

What version of Go are you using (go version)?

$ go version
go version go1.15

Does this issue reproduce with the latest release?
generate the follow project:
.
├── go.mod
├── go.sum
└── main.go

go.mod generate with go mod init project/test and install dependencies with go get google.golang.org/grpc
module project/test

go 1.15

require (
	google.golang.org/grpc v1.33.0
)

go mod download (with an existent go.mod and main.go)
and
go help mod download
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/${user}/Library/Caches/go-build"
GOENV="/Users/${user}/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/${user}/go-workspace/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/${user}/go-workspace"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/opt/go/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/tk/v867zc1j74

What did you do?
When running the command go mod download   in directory with a go.mod and main.go files, this command return
go mod download: no modules specified (see 'go help mod download')

What did you expect to see?
According to go help mod download:

"... With no arguments, download applies to all dependencies of the main module (equivalent to 'go mod download all'). ..."

using the command go mod download all the dependencies are installed as expected

Your env indicates you are not in a module

This is not case; The project was generated with go module init ...

I'm not able to reproduce the reported behavior with the steps described. Please provide the exact sequence of commands for which you observed the problem.
test$ go version
go version go1.15.3 linux/amd64

test$ go mod init project/test
go: creating new go.mod: module project/test

test$ cat > main.go
package main

func main() {}

test$ go get -d google.golang.org/grpc
go: downloading google.golang.org/grpc v1.33.0
go: google.golang.org/grpc upgrade => v1.33.0
go: downloading golang.org/x/net v0.0.0-20190311183353-d8887717615a
go: downloading golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
go: downloading github.com/golang/protobuf v1.3.3
go: downloading google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55
go: downloading golang.org/x/text v0.3.0

test$ go mod download

test$


Enable names for text chat

It would be nice to enable names for the text chat similar to how webx lets users choose name when someone new joins a session.

There are names, you type /name <name there is a prompt at the top when you join. Obviously the UI is not obvious though. Perhaps I should make the prompt more explicit.


TC-225: TO Html fix

Updated DataTables to version 1.10.15 for required method
Added script which sets all DataTable columns to render as text

This should be cherry-picked into 2.0.x.  Ping me if you need help with that...


ECMAScript Explicit Resource Management

Problem description
Typescript 5.2 had introduced new ECMAScript feature called Explicit Resource Management, which is explicitly designed to cleanup resources with the help of following new structures. using, Disposable, AsyncDisposable, DisposableStack and AsyncDisposableStack.
Our source code compromises of a lot of such cases where we need to cleanup a resources and we use .close methods on most of interfaces for that purpose. We should rather use this new design pattern. to cleanup the code.
Solution description
That's the pattern we can follow for code structure which occopy the network or io resources.
const res = { [Symbol.dispose]() {} };
const asyncRes = { [Symbol.asyncDispose]() {} };
const iter = { [Symbol.iterator]() { return [res, asyncRes].values(); } };
const asyncIter = { [Symbol.asyncIterator]() { return [res, asyncRes].values(); } };

Additional context
https://github.com/tc39/proposal-explicit-resource-management
https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/#using-declarations-and-explicit-resource-management

Closing this issue since we are now using this pattern


Diagnose misplaced associated values in simple enum patterns

Because of an unhandled case in the type checking of patterns it is possible to bind any number of arguments to a "simple" enum case without associated values.  In this case, one of two things would happen:

The compiler would crash
The compiler would miscompile the enum payload.  Maybe you would get (), maybe you would get garbage.

Cut this off at the source by properly diagnosing this case and offering to remove the offending sub-pattern.
Resolves SR-3466 and SR-3466.

@swift-ci please smoke test

@jrose-apple You had source compatibility concerns in the first SR.  I haven't found a way to make this not crash in SILGen, so I wouldn't be surprised if the user was mistaken that this ever worked.

Going to guard this on Swift 3 mode to sidestep compatibility problems.

@swift-ci please smoke test

@swift-ci please smoke test

It might assert in SILGen, but both case .naught() and case naught(_) compile fine in Xcode 8.3's swiftc.

The empty tuple case is a mistake caused by the type checker's modeling.  It's really unfortunate that it wound up working.

@swift-ci please smoke test

@swift-ci please smoke test

⛵

The empty tuple case is a mistake caused by the type checker's modeling. It's really unfortunate that it wound up working.

That's most of source compatibility. :-)


Darkmode update for Home Assistant version: 2022.3.0

The theme colors need to be updated to include input box theme-ing per the Home Assistant Devs.
Here are the variables that need to be used.
Below is a screenshot of the issue:

Dead repo. The only contributor won't fix this issue. Issue present since 11.2021


Fix clipboard POSIX build because of basename conflict

FreeRDP/winpr/libwinpr/clipboard/posix.c:397:20: error: conflicting types for ‘basename’
static const char* basename(const char* name)
^
In file included from FreeRDP/winpr/include/winpr/collections.h:25:0,
from FreeRDP/winpr/libwinpr/clipboard/posix.c:37:
/usr/include/string.h:599:14: note: previous declaration of ‘basename’ was here
extern char *basename (const char *__filename) __THROW __nonnull ((1));

@freerdp-bot can you give a build test ?


Confusing imports in examples

I’ve been trying to go over the examples and I find one thing quite confusing.
http://guide.elm-lang.org/#a-quick-sample
import Html exposing (Html, button, div, text)
import Html.App as Html

After this I don’t understand what Html refers to.
After some googling I think 3 things are in play: module Html, Html type in Html module and also Html alias for Html.App module.
Have you considered not aliasing Html.App as Html?

I've also noticed this and always changed it to
import Html.App as App

I believe all the examples now use import Html.App as App to avoid this confusion. In addition, when Elm 0.18 comes out, Html.App merges into Html, further reducing the confusion around this.


build errors

npm run build show this:
resolve failed:  { Error: Cannot find module 'serve'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.requireRelative.resolve (/home/elmerbulthuis/workspace/hammer.js/node_modules/require-relative/index.js:30:17)
    at resolve (/home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/lib/serialize.js:25:26)
    at findAndRemove (/home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/lib/serialize.js:67:11)
    at /home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/lib/serialize.js:111:13
    at Array.map (native)
    at loadPreset (/home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/lib/serialize.js:103:29)
    at module.exports (/home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/index.js:97:19)
    at Object.<anonymous> (/home/elmerbulthuis/workspace/hammer.js/node_modules/babel-preset-es2015-rollup/index.js:3:18)
    at Module._compile (module.js:570:32) code: 'MODULE_NOT_FOUND' } serve
resolve failed:  { Error: Cannot find module 'babel-runtime'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.requireRelative.resolve (/home/elmerbulthuis/workspace/hammer.js/node_modules/require-relative/index.js:30:17)
    at resolve (/home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/lib/serialize.js:25:26)
    at findAndRemove (/home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/lib/serialize.js:67:11)
    at /home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/lib/serialize.js:111:13
    at Array.map (native)
    at loadPreset (/home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/lib/serialize.js:103:29)
    at module.exports (/home/elmerbulthuis/workspace/hammer.js/node_modules/modify-babel-preset/index.js:97:19)
    at Object.<anonymous> (/home/elmerbulthuis/workspace/hammer.js/node_modules/babel-preset-es2015-rollup/index.js:3:18)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19) code: 'MODULE_NOT_FOUND' } babel-runtime

The serve and babel-runtime dependencies seem to be missing!
see also #1061

I needed to build a custom release and had the same issue. However, building from 2.0.8 works (https://github.com/hammerjs/hammer.js/commit/49731688380a91be07653ee2491ab48ece7952b5), it looks like building setup was updated and something broke.

I also encountered this problem. Updating the dev dependency babel-preset-es2015-rollup to the most recent version (3.0.0) fixed it.


binding to win-hub headerinvoked event in an angular way

I admit that this just may be ignorance on my part, but I am having trouble with detecting a click on a section header in a win-hub control.  I've scanned the source and found the onheaderinvoked event mentioned for this component, but I cannot bind to that event how I would expect to be able to with angular.  For example, I have tried variations on binding to the event in markup:
<win-hub onheaderinvoked="headerInvoked">. . . </win-hub>

where headerInvoked is a method on the active $scope that receives an event object, but it does not get invoked.  Seems like I was able to get the $scope function to be invoked in one variation of this approach, but only without arguments, and because the event.detail.index is required to determine which section header was clicked, that was kind of useless.  The only way I have found to get the click detection to work is to put the following in my controller:
document.getElementById('main-hub').addEventListener('headerinvoked', headerInvoked);

where headerInvoked in this case is not a function defined in the current $scope, but just within the controller body.  This seems like a very un-angular way of doing this.  What an I missing?  Could you provide an example of this somewhere?

Event names are separated by dashes when in markup. Change onheaderinvoked to on-header-invoked like so:
<win-hub on-header-invoked="headerInvoked($event)">. . . </win-hub>

Thanks for the response.  I've tried it that way and it still doesn't work:
<win-hub class="hub-page" id="main-hub" on-header-invoked="headerInvoked($event)">
    . . .
</win-hub>

and in the controller:
$scope.headerInvoked= function(e) {
    . . .
}:

The scope function never gets invoked.  Sorry, I know this should be very basic.

ugh!  nevermind.  I had some crossed wires from trying this so many different ways.  uncrossed the wires and now it works.  sorry.


Increase byte range

tf-controller plan output:

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # random_id.id will be created
  + resource "random_id" "id" {
      + b64_std     = (known after apply)
      + b64_url     = (known after apply)
      + byte_length = 6
      + dec         = (known after apply)
      + hex         = (known after apply)
      + id          = (known after apply)
      + keepers     = {
          + "trigger" = "World"
        }
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + hello_world = (known after apply)

To apply this plan, please merge this pull request.

!replan

Planning in progress...


⚠ Bofrost.fr has degraded performance

In e3a56d9, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1377 ms

Resolved: Bofrost.fr performance has improved in ebad692 after 13 minutes.


Basic milk network created in Composer Playground

To test the basic first network draft: Download the breast-milk-network.bna file onto your computer--->Open https://composer-playground.mybluemix.net/editor inside your browser. Click "Let's BlockChain" ---->Click "Deploy a new business network"----> Click "Browse" under Drop here to upload or browse-----> navigate to the .bna file on your computer and double click. The network should open on the right--->Click Blue "Deploy" button--->on the left click "Connect now" under the network on the left. Have fun testing it!

Hi, @acourtney2015. I would recommend checking in the actual source files that went into creating this BNA file. The BNA file is an archive file that does not allow anyone to edit the contents.
Also, when you do a commit, make sure you use the -s option to sign off the commit.

Hi, tkuhrt!-->. bna file uploaded for ease of entire group to open the network in playground and test functionality. I have another draft of the network with more advanced features that I intend to upload. Need help in getting transit code to work. Can upload the individual files for the more advanced one. Not sure where -s option resides. (not committing using command line). Please give guidance. Thanks!

@acourtney2015 the sign-off is tricky! You need to use the following format
Signed-off-by: Haitao Yue<EMAIL_ADDRESS>What was trick for me was finding the right email, because I've set Github not to share my email address. To find the email go here: https://github.com/settings/emails
Under Primary Emails you'll see what you need, mine looks like this -
Primary email address
"Because you have email privacy enabled<EMAIL_ADDRESS>will be used for account-related notifications and<EMAIL_ADDRESS>will be used for web-based GitHub operations (e.g. edits and merges)."
so my sign off is
Signed-off-by: Marissa Iannarone<EMAIL_ADDRESS>

@MariLeigh that isn't a valid email address, though. If we need to resolve who you are, legally, the no reply address goes nowhere.

@ryjones very good point. I will change my email settings then.

I am closing the pull request to add the files to the main branch. Would like the current files uploaded to remain inside the acourtney2015-patch-1 branch as the files continue to be worked upon. Hope this is correct way to do that. Thanks!


How to obtain BFM_UV.mat?

I want know the detailed way to obtain the BFM_UV.mat. Could you tell me the method? thanks.

The BFM_UV.mat is in the utils folder. But I suppose you mean how the uv coordinates were generated. You can find more information about that in our paper, Section 2.3, in the paragraph "Output grid". Hope that helps!

the detailed way to obtain the BFM_UV.mat

hi, do you find the detailed way to obtain the BFM_UV.mat now?


Update icloud to respect track=false.

Description:
The icloud platform kept updating location (reading from web & handset) all devices, even for ignored devices (track: false in known_devices.yaml)
CC: @Bart274
Checklist:
If code communicates with devices, web services, or a:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass

That's a nice trick 🐬  👍


⚠ Bofrost.be has degraded performance

In a454a74, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1174 ms

Resolved: Bofrost.be performance has improved in 4fca325 after 7 minutes.


Error component

Build a React component that renders a javascript Error object into HTML. The view shall display a pictogram that is ~25% of the width of the parent container. Below the pictogram is the error message displayed.
The following types of errors are handled with special pictograms:

NotFound
NetworkError
CancellationError

Because I just saw it in the Material UI doc: Maybe this could be realized via a snackbar element?

Maybe it's not quite clear from the description above. What we plan to implement is a complete page, that is rendered instead the actual page. Reporting error via notifications is a complete separate issue.


Provide our definition of degree days, freezing index, thawing index.

There are some definitions which may be more specific or incompatible with how we're defining these terms.
Should we specify what we're doing, exactly?

We should! This is a good idea, and something I spoke to John Zarling about a while ago. Eventually we may want to add other methods. Here is the synopsis of my conversation with him.
We are basically doing a "cumulative" method vs. a "seasonal" method.
For example for freezing index, we are summing the number of degree-days below 0 degrees Celsius, calculated as the arithmetic sum of all the negative mean daily air temperatures (degrees Celsius). In practice, this is pretty simple with the WRF dataset:
threshold = 32
`freezing_index = threshold - ((ds.t2.values - 273.15) * 9/5 + 32`

However, there is a seasonal method that is perhaps more commonly used. It goes like this:
Start calculating degree days on January 1st of some year. For an example Interior AK location, that computation will obviously yield a negative number. Do this every day and compute a cumulative, running sum. Over winter and into spring, you'd expect that you have a number that is increasingly negative. In spring you may oscillate between freezing and thawing, so the number grows larger and smaller, but eventually the cumulative sum will reach some minimum value. As spring becomes summer, the numbers are positive until say Oct. 1, and then in fall there is a freeze/thaw mix, but eventually the cumulative sum will reach some maximum value, and then in winter the daily numbers are all negative again.
To compute the seasonal thawing index, subtract the minimum at the end of winter from the maximum at the end of summer.
To compute the seasonal freezing index, subtract the maximum at the end of summer from the minimum that occurs at the end of the following spring.
This is a little more complicated because you need to identify the min-max on the cumulative degree-day time curve, but probably not beyond us.
We're also still only using WRF 20 km data because that was all we had at the time, but now that we have other daily data (NCAR 12 km) at our disposal that we are using in production for beetles, hydrology, and indicators, it'd make sense to provide another flavor of degree day output and move away from the coarser WRF data that we know is fraught with biases.
This would be a very good update for a version 1.x of the EDS.

First sentence of data intro specifies we use the cumulative method.


[Event Request] Codeunit 51 - BOM-Explode BOM - OnAfterGetQtyPerUnitOfMeasure

Dear Support,
We would like to add a new event OnAfterGetQtyPerUnitOfMeasure in the following trigger. This would allow us to further customize the code and migrate existing customizations.
    trigger OnRun()
    begin
        TestField(Type, Type::Item);
        if "No." = "Parent Item No." then
            Error(Text000);

        FromBOMComp.SetRange("Parent Item No.", "No.");
        ToBOMComp.SetRange("Parent Item No.", "Parent Item No.");

        NoOfBOMComp := FromBOMComp.Count();
        if NoOfBOMComp = 0 then
            Error(
              Text001,
              "No.");

        ToBOMComp := Rec;
        if ToBOMComp.Find('>') then begin
            LineSpacing := (ToBOMComp."Line No." - "Line No.") div (1 + NoOfBOMComp);
            if LineSpacing = 0 then
                Error(Text002);
        end else
            LineSpacing := 10000;

        Item.Get("No.");
        QtyPerUnitOfMeasure := UOMMgt.GetQtyPerUnitOfMeasure(Item, "Unit of Measure Code");
        OnAfterGetQtyPerUnitOfMeasure(Rec, Item, QtyPerUnitOfMeasure); //New Code --++

        FromBOMComp.Find('-');
        NextLineNo := "Line No.";
        repeat
            NextLineNo := NextLineNo + LineSpacing;
            ToBOMComp := FromBOMComp;
            ToBOMComp."Parent Item No." := "Parent Item No.";
            ToBOMComp."Line No." := NextLineNo;
            ToBOMComp."Quantity per" := Round(QtyPerUnitOfMeasure * "Quantity per" * FromBOMComp."Quantity per", 0.00001);
            ToBOMComp.Position := StrSubstNo(Position, FromBOMComp.Position);
            ToBOMComp."Installed in Line No." := "Installed in Line No.";
            ToBOMComp."Installed in Item No." := "Installed in Item No.";
            OnRunOnBeforeToBOMCompInsert(ToBOMComp, FromBOMComp);
            ToBOMComp.Insert();
        until FromBOMComp.Next() = 0;

        Delete();
    end;

Event signature:
    [IntegrationEvent(false, false)]
    local procedure OnAfterGetQtyPerUnitOfMeasure(BOMComp: Record "BOM Component"; Item: Record Item; var QtyPerUnitOfMeasure: Decimal)
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 10845.


model_to_resource_type in utils works not as expected

It uses the current locale so keys are presented in current locale and no underscore convertion is made:
"Реестр Клиентов": [
{
"id": "1",
"kodKlienta": 1,
"links": {
"company": "2",
"employees": [],
"groups": [],
"head": null,
"klient": "1",
"profile": "1",
"responsible_operator": "1",
"user_permissions": []
}
}

This issue can be addressed by including the with translation.override('en'): before any call to force_text however i believe this feature should be optional in the first place so there should be some way to configure this option. Please advise where this option should be set?


App doesn't open

App doesn't open since the 1.3 update. Logs:
2021-03-23T22:44:11.2677159+01:00	DBUG	[Sma5h.Interfaces.IStateManager]	[0]	Initialize Resource Provider BgmPropertyProvider for the following match: sound/config/bgm_property.bin
2021-03-23T22:44:11.2680500+01:00	DBUG	[Sma5h.Interfaces.IStateManager]	[0]	Initialize Resource Provider MsbtResourceProvider for the following match: .msbt
2021-03-23T22:44:11.2680866+01:00	DBUG	[Sma5h.Interfaces.IStateManager]	[0]	Initialize Resource Provider PrcResourceProvider for the following match: .prc
2021-03-23T22:44:11.2680948+01:00	DBUG	[Sma5h.Interfaces.IStateManager]	[0]	Initialize Resource Provider PrcResourceProvider for the following match: .prc
2021-03-23T22:44:11.2702681+01:00	DBUG	[Sma5h.Mods.Music.Interfaces.IAudioStateService]	[0]	Retrieving NusBank Volumes from CSV Resources\nusbank_ids.csv

It turns out that it's a culture related issue (guessing your OS isn't in english)? due to a recent change in csv package.
I'm working on it with someone and will push a fix asap.

Fixed, publishing 1.41 in a moment

it still doesn't work, logs are the same

What machine are you testing this on? What OS, 32 bits/64 bits? what language?
Anything specific about your setting would help.

Windows 10 20H2 (19042.870) 64 bit. Polish with English (UK) language pack

I helped someone debug in polish language and I just tested with the OS in Polish and it's running just fine with 1.41.
I'm at a loss of what could be happening to you.
Do you have the "Volume" header in nusbank_ids.csv? this file was changed recently. If that still doesn't do it we might need to do troubleshooting on discord.

yep it was the nusbank_ids.csv file. sorry for wasting your time

np


variable substitution

Is it possible to use variable substitution for configurations?
For example to have a workspace based suppression it would be nice to be able to use a setting like this:
"cpp-check-lint.cppcheck.--suppressions-list=": "${worspaceFolder}\\cppcheck-suppression.txt"

Thanks!

try  v1.5.3   ${workspaceFolder}/cppcheck-suppression.txt


Deployment should scale to 0 replicas when shoot is hibernated

What happened:
Shoot was hibernated and the deployment of the oidc-webhook-authenticator in the seed did not scale to 0 replicas.
What you expected to happen:
Deployment oidc-webhook-authenticator to be scaled to 0 replicas.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know:
Environment:

/assign @dimityrmirchev


There is no reference documentation for the SDKs

This is a web site/doc issue across all the SDKs. I am at the tutorial at KubeCon23 and I can't find any links on the website to pydoc or js doc to describe the Spin specific methods. For example, the Response object in Python. How do I know what methods is has and parameters or responses are available for those methods.
This is must have for me to work with your SDKs. While the examples and getting started are fine, I am stuck after that. For example, with the Response object above, how do I specify a sub-path or parameters in the URL?

Thanks for flagging this.  We have these for Rust and Go but should make those links more prominent and visible; but you're right that we need this for JavaScript and Python too.  I'll raise issues for the JS and Python SDKs, and take a look at making the Rust and Go reference docs more discoverable.  Thanks for the feedback!

I also discovered Spin at Kubecon. I'm attempting to rewrite tracepusher in WASM and potentially host-as-a-service on Fermion cloud. Basically trying to do the equivalent of this (requests module) and I need to know what parameters Request takes:
resp = requests.post(
    f"{endpoint}/v1/traces",
    headers={ "Content-Type": "application/json" },
    json=trace,
    timeout=5
 )
    # print(resp)

@karthik2804 @dicej What would it take to get these docs created from the SDKs?  (See per-repo issues linked above.)
In the meantime @agardnerIT I believe Request takes:

method (as string)
URL (as string)
headers (as dictionary)
body (as bytes or None)

(see https://developer.fermyon.com/spin/v2/http-outbound and https://github.com/fermyon/spin-python-sdk/blob/main/examples/outbound_http/app.py)
@dicej please correct me if I've missed anything

Yeah, we definitely ought to add docs to both spin-js-sdk and spin-python-sdk.  The Python SDK API is currently defined entirely in Rust via PyO3 (e.g. https://github.com/fermyon/spin-python-sdk/blob/cf2dd8c9a92bea6496cbe441b12b9fb61863ef8e/crates/spin-python-engine/src/lib.rs#L40-L70).
Apparently all we need to do to add Python-visible docs to those types and functions is add Rust doc comments, which PyO3 will make available as docstrings at runtime (https://pyo3.rs/v0.20.0/module.html?highlight=docstr#documentation).  What I'm not sure of (not being a Python dev myself), is whether that will be usable by IDEs and/or e.g. pdoc.  Worst case, we can write some .py files by hand which mirror the API defined in Rust.
Regarding spin-js-sdk, @karthik2804 is the expert there, given that most of the API is defined in JS/TS files which he wrote, and he's more familiar with JS documentation best practices than I am.
BTW, we're planning to deprecate both spin-python-sdk and spin-js-sdk in favor of componentize-py and componentize-js (each paired with an updated Spin SDK tailored to those tools) in the future, so although I do think we should continue to support the former with docs etc., we'll want to shift our focus over to the latter around the time WASI Preview 2 ships.

When we say "we", can we pin that down to individuals who can take responsibility for:

Writing the docs.  I am happy to blast out some words if folks show me where they need to go and what they need to look like.
Publishing the docs (deploying the docs web site or whatever).  @karthik2804 would you be able to take this on for JS at least?

@itowlson - yes I can it should be a straightforward step to enable gh pages for the repo. I can make a small PR to get started with the docs on the JS repo.

Awesome, thank you @karthik2804 and feel free to rope me in if I can be useful!

I spent a bit of time looking into our options on the Python side, and I think the path of least resistance is to write a set of .py files which mirror the API defined in the Rust code.  It might be annoying to keep them in sync, but they only need to last until we switch over to componentize-py, at which point the SDK will be some mix of code generated from WIT and hand-written wrapper code.
I'll get started on the docs and see about publishing them via a GitHub action.

Fantastic, thanks @dicej!

+1

Python docs: https://fermyon.github.io/spin-python-sdk/

@itowlson can this be closed now?

I believe this has been addressed.  As future work it would be good to get things into standard docs sites, but that is better to align with the componentize-* iterations of the SDKs.
Original posters, please reopen if you feel the request has not been met!


Sonarr NTFY Script Update

This is the error ^^^^ that Sonarr and the rest of the Arr family throw when you try to add the script templates, to avoid this I have found that you need to add event handling for testing as below. Please add this into your scripts :).
#!/usr/bin/env bash

ntfy_url="https://example.com/topic"
ntfy_username="CHANGEME"
ntfy_password="CHANGEME"

ntfy_title="$sonarr_series_title"
ntfy_message=" "
############################################################added vvvv
if [ "$sonarr_eventtype" == "Test" ]; then
  exit 0
############################################################changed to elif from if vvvv
elif [ "$sonarr_eventtype" == "Download" ]; then
  ntfy_tag=tv
  ntfy_title+=" - S"
  ntfy_title+="$sonarr_episodefile_seasonnumber"
  ntfy_title+=":E"
  ntfy_title+="$sonarr_episodefile_episodenumbers"
  ntfy_message+="- "
  ntfy_message+="$sonarr_episodefile_episodetitles"
  ntfy_message+=" ["
  ntfy_message+="$sonarr_episodefile_quality"
  ntfy_message+="]"
elif [ "$sonarr_eventtype" == "HealthIssue" ]; then
  ntfy_tag=warning
  ntfy_message+="$sonarr_health_issue_message"
else
  ntfy_tag=information_source
fi

curl -u $ntfy_username:$ntfy_password -H "tags:"$ntfy_tag -H "Click: https://www.thetvdb.com/?id=""$sonarr_series_tvdbid""&tab=series" -H "X-Title: Sonarr: $sonarr_eventtype" -d "$ntfy_title""$ntfy_message" --request POST $ntfy_url

Also here is a script for Prowlarr.

#!/usr/bin/env bash

ntfy_url="https://example.com/topic"
ntfy_username="CHANGEME"
ntfy_password="CHANGEME"

ntfy_title="Prowlarr Issue - $prowlarr_health_issue_type"
ntfy_message=" "
if [ "$prowlarr_eventtype" == "Test" ]; then
  exit 0
elif [ "$prowlarr_eventtype" == "HealthIssue" ]; then
  ntfy_tag=warning
  ntfy_message+="$prowlarr_health_issue_message"
fi

curl -u $ntfy_username:$ntfy_password -H "tags:"$ntfy_tag -H "X-Title: Prowlarr: $prowlarr_eventtype" -d "$ntfy_title"\n"$ntfy_message" --request POST $ntfy_url

Hm, I can't seem to replicate the error. Not sure what would cause an exit code 2 in the script. Do you still get the same error if you just end the script with exit 0? (exit 0 on the last line, after curl.)
if [ "$sonarr_eventtype" == "Test" ]; then
exit 0
Would work, but then you don't get the test push notification. Which probably isn't a huge deal though.
Thanks for the Prowlarr script! Is it OK if I include it in the collection?

Sonarr v3 wouldn't let me save it without testing it so I included the test event to just exit 0 and yeah sure no problem :)

I've also got some others some are niche use cases and other are In other languages like powershell

I'm running <IP_ADDRESS>9 of Sonarr myself, and that seems to work for me. Not using a prebuilt container though, maybe that has something to do with it.
But if an exit 0 fixes the issue, I'll add it to the scripts. :)

Yep it works a treat

Done and done!

If you need or want any of my other ones let me know

Sure, one can never get too many ways to get notifications!


Null pointer dereference in conv_ops_fused_int8.cc

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Yes
Source
source
Tensorflow Version
tf 2.12
Custom Code
No
OS Platform and Distribution
No response
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Pointer `side_input_ptr` is dereferenced and passed as the first argument into a call to `std::fmaf` in `tensorflow/core/kernels/conv_ops_fused_int8.cc`.

If we are at 0th iteration in a `for`-loop (line 210) and `side_input_base == nullptr` then `col == 0` and `side_input_ptr` will also equal `nullptr` (line 265). After assign to `side_input_ptr`, this pointer is dereferenced on line 269.

Standalone code to reproduce the issue
Bug was found by Svace static analysis tool.

Relevant log output
No response

https://github.com/tensorflow/tensorflow/blob/c1169a1ba98e1c5d0874cd44ffeb605bfd1cefba/tensorflow/core/kernels/conv_ops_fused_int8.cc#L200-L271

Thanks for reporting the issue, this looks like edge case scenario, I have created a PR to address the issue. Thanks!


please increase versionCode with each release

versionCode for 1.0.4 is 2 – as it was for 1.0.3 (and probably even before), so Android doesn't see this version as an update and people miss out on it. Can you please take care to always increase versionCode when making a new release? That's what Android uses internally to tell versions apart. Thanks in advance!

Further, certificates do not match so no upgrade is possible. 1.0.3 had:
package: name='fr.themsou.monitorinternetless' versionCode='2' versionName='1.0.3' platformBuildVersionName='13' platformBuildVersionCode='33' compileSdkVersion='33' compileSdkVersionCodename='13'
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Number of signers: 1
Signer #1 certificate DN: CN=Clement Grennerat, L=Grenoble
Signer #1 certificate SHA-256 digest: 02c708329a21a830ba81a119e46960c01d29a47ea903d9ffa9b6091a6a5421b8
Signer #1 certificate SHA-1 digest: b64001d0492559eb6622c35cf51795a04fcd5a66
Signer #1 certificate MD5 digest: aeec09b5558f6213b96f4bb341b5b165
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest:<PHONE_NUMBER>0cf3b9dc54c5052a6c738e6b1cf07a851f2e44b63921c13ba792b4
Signer #1 public key SHA-1 digest: e03a84ea5ec410e9d9624afb540dcea3e2cdb68d
Signer #1 public key MD5 digest: f5d2cc67470b50a123d6ce0afb6a5b57

1.0.4 comes with
package: name='fr.themsou.monitorinternetless' versionCode='2' versionName='1.0.4' platformBuildVersionName='14' platformBuildVersionCode='34' compileSdkVersion='34' compileSdkVersionCodename='14'
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Number of signers: 1
Signer #1 certificate DN: C=Fr, ST=France, L=Grenoble, CN=Clément Grennerat
Signer #1 certificate SHA-256 digest: 98d6faab69fe1aabf74421533a10f4e182bd24f9f2b138bbafb73109cb78f6b5
Signer #1 certificate SHA-1 digest: 2b4d30298fc7e05f6060c249d6bea285f38f674b
Signer #1 certificate MD5 digest: 43396edc51d50f6dc222476c8cc00be7
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: fe38b5a8016d244ba3c06605afd7ec53bdf1015e74f860d39fb5d42b53f5e6e9
Signer #1 public key SHA-1 digest: c5142ecca7b995fc4e3d1f1fcb61c11c3d07f4c0
Signer #1 public key MD5 digest: a4ed9b44df1d2ec29c0d8a69fc40554b

What happened to the original key?


Add python3.7 support and content of table on Readme

For better pypi integration and readability

Codecov Report

Merging #18 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #18   +/-   ##
=======================================
  Coverage   85.37%   85.37%
=======================================
  Files          14       14
  Lines         499      499
  Branches       59       59
=======================================
  Hits          426      426
  Misses         58       58
  Partials       15       15

Continue to review full report at Codecov.

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

Pull Request Test Coverage Report for Build 153

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.019%

Totals

Change from base Build 148:
0.0%

Covered Lines:
441

Relevant Lines:
499

💛  - Coveralls

Pull Request Test Coverage Report for Build 153

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.019%

Totals

Change from base Build 148:
0.0%

Covered Lines:
441

Relevant Lines:
499

💛  - Coveralls

Pull Request Test Coverage Report for Build 153

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.019%

Totals

Change from base Build 148:
0.0%

Covered Lines:
441

Relevant Lines:
499

💛  - Coveralls


[Feature] VS Code integration: Aptos, Solidity local

cc: @Menh1505  @Khoa-Dam @Huc06

Sol/Hardhat interact
[ ] Config
[ ] check                 Check whatever you need
[ ] clean                 Clears the cache and deletes all artifacts
[ ] compile               Compiles the entire project, building all artifacts
[ ] console               Opens a hardhat console
[ ] coverage              Generates a code coverage report for tests
[ ] flatten               Flattens and prints contracts and their dependencies
[ ] help                  Prints this message
[ ] node                  Starts a JSON-RPC server on top of Hardhat Network
[ ] run                   Runs a user-defined script after compiling the project
[ ] test                  Runs mocha tests
[ ] typechain             Generate Typechain typings for compiled contracts
[ ] verify                Verifies contract on Etherscan


Modrinth availability

Awesome addon, will this be available on Modrinth?

Probably soon enough after I get some new features done and finish the 1.21.1 version.

Latest public versions on CurseForge have been uploaded to Modrinth. 1.21 soon. https://modrinth.com/mod/isskjs


[Bug]: VLLM OOMing unpredictably on prediction

Your current environment
Collecting environment information...
PyTorch version: N/A
Is debug build: N/A
CUDA used to build PyTorch: N/A
ROCM used to build PyTorch: N/A
OS: Ubuntu 20.04.6 LTS (x86_64)
GCC version: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Clang version: Could not collect
CMake version: version 3.16.3
Libc version: glibc-2.31
Python version: 3.10.9 | packaged by conda-forge | (main, Feb  2 2023, 20:20:04) [GCC 11.3.0] (64-bit runtime)
Python platform: Linux-5.15.0-1051-aws-x86_64-with-glibc2.31
Is CUDA available: N/A
CUDA runtime version: 12.1.105
CUDA_MODULE_LOADING set to: N/A
GPU models and configuration:
GPU 0: NVIDIA A10G
GPU 1: NVIDIA A10G
GPU 2: NVIDIA A10G
GPU 3: NVIDIA A10G
GPU 4: NVIDIA A10G
GPU 5: NVIDIA A10G
GPU 6: NVIDIA A10G
GPU 7: NVIDIA A10G
Nvidia driver version: 535.104.12
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: N/A
CPU:
Architecture:                       x86_64
CPU op-mode(s):                     32-bit, 64-bit
Byte Order:                         Little Endian
Address sizes:                      48 bits physical, 48 bits virtual
CPU(s):                             192
On-line CPU(s) list:                0-191
Thread(s) per core:                 2
Core(s) per socket:                 48
Socket(s):                          2
NUMA node(s):                       2
Vendor ID:                          AuthenticAMD
CPU family:                         23
Model:                              49
Model name:                         AMD EPYC 7R32
Stepping:                           0
CPU MHz:                            3258.700
BogoMIPS:                           5599.97
Hypervisor vendor:                  KVM
Virtualization type:                full
L1d cache:                          3 MiB
L1i cache:                          3 MiB
L2 cache:                           48 MiB
L3 cache:                           384 MiB
NUMA node0 CPU(s):                  0-47,96-143
NUMA node1 CPU(s):                  48-95,144-191
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit:        Not affected
Vulnerability L1tf:                 Not affected
Vulnerability Mds:                  Not affected
Vulnerability Meltdown:             Not affected
Vulnerability Mmio stale data:      Not affected
Vulnerability Retbleed:             Mitigation; untrained return thunk; SMT enabled with STIBP protection
Vulnerability Spec rstack overflow: Mitigation; safe RET
Vulnerability Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:           Mitigation; Retpolines, IBPB conditional, STIBP always-on, RSB filling, PBRSB-eIBRS Not affected
Vulnerability Srbds:                Not affected
Vulnerability Tsx async abort:      Not affected
Flags:                              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf tsc_known_freq pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch topoext perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr rdpru wbnoinvd arat npt nrip_save rdpid
Versions of relevant libraries:
[pip3] No relevant packages
[conda] No relevant packagesROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: N/A
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0	GPU1	GPU2	GPU3	GPU4	GPU5	GPU6	GPU7	CPU Affinity	NUMA Affinity	GPU NUMA ID
GPU0	 X 	PHB	PHB	PHB	PHB	PHB	PHB	PHB	0-191	0-1		N/A
GPU1	PHB	 X 	PHB	PHB	PHB	PHB	PHB	PHB	0-191	0-1		N/A
GPU2	PHB	PHB	 X 	PHB	PHB	PHB	PHB	PHB	0-191	0-1		N/A
GPU3	PHB	PHB	PHB	 X 	PHB	PHB	PHB	PHB	0-191	0-1		N/A
GPU4	PHB	PHB	PHB	PHB	 X 	PHB	PHB	PHB	0-191	0-1		N/A
GPU5	PHB	PHB	PHB	PHB	PHB	 X 	PHB	PHB	0-191	0-1		N/A
GPU6	PHB	PHB	PHB	PHB	PHB	PHB	 X 	PHB	0-191	0-1		N/A
GPU7	PHB	PHB	PHB	PHB	PHB	PHB	PHB	 X 	0-191	0-1		N/A
Legend:
X    = Self
SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
PIX  = Connection traversing at most a single PCIe bridge
NV#  = Connection traversing a bonded set of # NVLinks
🐛 Describe the bug
Environment: AWS g5.48xlarge ec2 instance, running VLLM w/ python 3.10.9, VLLM version 0.3.0 (details in the environment section above)
Here's the (simplified) code I'm using to load and query the model (in this case, Mixtral-8x7b)
from vllm import LLM, SamplingParams
model = LLM(
                    tensor_parallel_size=8,
                    model'mistralai_Mixtral-8x7B-Instruct-v0.1',
                    dtype='bfloat16',
                    quantization=None
                )

vllm_params = SamplingParams(use_beam_search=False, max_tokens=max_tokens, ignore_eos=True) # ignore_eos makes it so max_tokens are actually generated
model_batch_output = self.model_pipeline.model.generate(prompts=batch_input, sampling_params=vllm_params)

Typically, when it comes to LLMs, if you're able to load your model into VRAM, and able to run GPU-based predictions for a given batch size and a given context-length=input_tokens+output_tokens, you can pretty much guarantee that the same model on the same environment won't OOM if make any of those 3 values (batch size, num-input-tokens, num-output-tokens). This is great, because you can figure out your model's limits on a given machine, and then configure your model to go just under those limits in production.
However, I haven't experienced exactly this when it comes to VLLM, presumably because of the complications resulting from its great features (smart KV-caching, continuous batching, etc).
Here's an example: I have a program that runs ^^ the above code on a variety of batch sizes, num-input-tokens, and num-output-tokens. I initially assumed if something OOMed at prediction-time for some tuple of those parameters, it would also OOM at prediction-time if any values in that tuple increased. However I've found this isn't always the case:
e.g. here, we have:
input-num-tokens=8000 (promtp_len)
output-num-tokens=8000 (output_len)
batch_size=1, 2, and then OOMs at 4

However here (same environment, same code, screenshot from the same actual single program that was run), we have:
input-num-tokens=9000 (promtp_len)
output-num-tokens=9000 (output_len)
batch_size=Doesn't (!) OOM for batch sizes of 1, 2, 4, 8, and 16, even though memory requirements presumably have increased

--> Therefore, some questions:

Is this kind of experience a known issue?
Relatedly, are there best practices when it comes to VLLM GPU parameters? There's gpu_memory_utilization, which seems like would reduce OOMs when at 100%, though VLLM documentation suggests that if it's too high, it may cause OOMs. This feels very confusing to me! How can allowing VLLM to use more GPU cause OOMs - unless the leftover GPU amount is reserved for times when VLLM needs extra / 'unexpected' GPU memory, for whatever reason. --> Is that the case, and is there any formula or explanation to help someone figure out when that kind of situation can happen? e.g. if you set gpu_memory_utilization to 50% like Triton does , does that make some sort of special guarantee? What is the best method to figuring out how to guarantee that a VLLM server will never OOM? There's very limited explanations of how these kinds of parameters are affecting things under the hood, it would be fantastic to get a better understanding of this in order to be confident using VLLM.

Thank you!

Hi @hillarysanders are you able to try a newer release of vLLM like 0.3.3? I ask because 0.3.0 is about two months old at this point and has many improvements, especially for MoE models.

@mgoin good point, OK I bumped up to 0.3.3, and it did actually improve things a lot (!), although it didn't get rid of all the hard-to-predict OOMs. Here's a summary plot of before (0.3.0) and after (0.3.3) -

Batch sizes much larger that should be possible w/ a standard batch are now (usually) working, indicating that continuous batching is working mostly properly again (perhaps because of the memory leak bugfix in 0.3.1? But I was seeing the same program hang in 0.3.1, so I'm not sure if those kinds of issues have also been resolved 🤔).
--> Any idea how I can try and debug why the program is still OOMing (and possibly hanging, though I haven't see that yet in 0.3.3) unpredictably? (i.e. the orange dot in the second plot)

This shouldn't be an issue anymore as we have many stable production deployments of vLLM. Please ping me if you have issues!


🟧 Round Manager Dashboard | My Rounds / My Pots - DUPLICATE

Problem
Round managers need to query dashboards to see rounds they are admins for
User Story(s):
As a _______, I want to ____, so that I can
Description
Description of solution
Acceptance Criteria
Outline what needs to be done
Limitations
Outline any potential limitations
Resources

outline links and relevant resources, references implementations

@codingshot isn't this a duplicate of https://github.com/PotLock/bos-app/issues/43?

closing as duplicate


[Enum / Event / Access Request] page 190 "Incoming Documents" - MultiSelectAction

Could you please

change the MultiSelectAction to an enum,
add the required events
and change the scope of the procedure IncomingDocumentMultiSelectAction ?

local procedure IncomingDocumentMultiSelectAction(ActionName: Option)
var
    IncomingDocument: Record "Incoming Document";
    ReleaseIncomingDocument: Codeunit "Release Incoming Document";
begin
    if not AskUserPermission(ActionName) then
        exit;

    CurrPage.SetSelectionFilter(IncomingDocument);
    if IncomingDocument.FindSet() then
        repeat
            case ActionName of
                MultiSelectAction::CreateDocument:
                    IncomingDocument.CreateDocumentWithDataExchange;
                MultiSelectAction::CreateManually:
                    IncomingDocument.CreateManually;
                MultiSelectAction::CreateGenJnlLine:
                    IncomingDocument.CreateGenJnlLine;
                MultiSelectAction::CreateGenJnlLineWithDataExchange:
                    IncomingDocument.CreateGeneralJournalLineWithDataExchange;
                MultiSelectAction::CreatePurchInvoice:
                    IncomingDocument.CreatePurchInvoice;
                MultiSelectAction::CreatePurchCreditMemo:
                    IncomingDocument.CreatePurchCreditMemo;
                MultiSelectAction::CreateSalesInvoice:
                    IncomingDocument.CreateSalesInvoice;
                MultiSelectAction::CreateSalesCreditMemo:
                    IncomingDocument.CreateSalesCreditMemo;
                MultiSelectAction::Release:
                    ReleaseIncomingDocument.PerformManualRelease(IncomingDocument);
                MultiSelectAction::Reopen:
                    ReleaseIncomingDocument.PerformManualReopen(IncomingDocument);
                MultiSelectAction::Reject:
                    ReleaseIncomingDocument.PerformManualReject(IncomingDocument);
                MultiSelectAction::SetReadyForOcr:
                    IncomingDocument.SendToJobQueue(false);
                MultiSelectAction::UndoReadyForOcr:
                    IncomingDocument.RemoveFromJobQueue(false);
                MultiSelectAction::SendToOcr:
                    IncomingDocument.SendToOCR(false);
                //+Change
                else
                    IncomingDocumentMultiSelectActionOnMultiSelectActionElseCase(IncomingDocument, MultiSelectAction);
                //-Change
            end;
        until IncomingDocument.Next() = 0;

    OnAfterIncomingDocumentMultiSelectAction(IncomingDocument, ActionName);
end;

[IntegrationEvent(true, false)]
local procedure IncomingDocumentMultiSelectActionOnMultiSelectActionElseCase(var IncomingDocument: Record "Incoming Document"; MultiSelectAction: Enum "NEW ENUM")
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Apple music playlists

This is a quick implementation of the feature requested in #728 . This allows users to call
spotdl --playlist {apple_music_playlist_url}
and then use the resulting file in the same way they would when calling it for a spotify playlist.

We aren't working on v2. Could you implement this on v3?

If yes, let me know, I'll keep looking through your dev code so that your work is inline with or design principles.


jrg/with anim fps

Add a withAnimFps for manual animation sample rate specification
withImgHeight 120 . withAnimFps 5 . animation $ translateX <$> interval 0 5 <*> circle 2 # fc red <> pure (square 6 # lw none)

I do not understand the CI failures for stack 8.0, 8.2 and 8.4. I does not seem related to my changes.

Our CI currently includes testing that the :hoogle functionality returns the same results as our notebook, which is problematic because it changes pretty regularly. I've been manually updating the notebook to keep these in sync, but I think that's what's happening here. I'm happy to merge this and resolve those conflicts later.

Would you be able to add an example of this functionality in the ihaskell-diagrams notebook as a separate PR?

@vaibhavsagar : Thanks for the merge. Alright, should add a simple animation example to https://github.com/gibiansky/IHaskell/blob/master/notebooks/IHaskell.ipynb soon.


Update 02-load-data-with-power-query-in-power-bi-desktop.md

Added step that is added in the English version.

content has gone through major update and is aligned to English now


Support for grape-swagger >= 0.8

I tried to run this gem against grape-swagger 0.8 but I had some issues, see here https://github.com/fabn/grape-swagger-rails/tree/grape-swagger-0.8 and also https://github.com/tim-vandecasteele/grape-swagger/issues/173
It would be nice to have compatibility for latest dependencies released version.
Thanks.

This can be closed, bump @fabn.


[Azure Monitor OpenTelemetry] Add Performance Counter metrics

Functionality for @azure/monitor-opentelemetry package

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


Deserialisation Fixes & Minor Speedup

Description

Fixes #648 and closes #649, with a flyby oneliner fix for #597 too.

Type of change

Bug fix (non-breaking change which fixes an issue)

How has this been tested?

Unit/Integration Tests (which?)

All. Added some extra ones too 🥰

Manual Tests (please write what did you do?)

TODO: receive more types of objects.
Docs

No updates needed

closing because @cristi8 is making 100x improvements in his branch 🙌


Fix lodash merge CVE (update babel-plugin-tester)

Fixes a security alert on lodash.merge by updating the parent dependency, babel-plugin-tester

Thanks for the review @mattschweers


Spark help resource other than stack overflow?

Just curious if there are any other outlets for getting help/discussing Spark with other users?
I love Stack Overflow, but I don't think it's the best tool for users to ask questions and have discussions around the framework.
Has anyone considered starting up a Discourse forum?
Not my fav UI, but a Google group (listservs are nice, right)?
Again, I love Stack Overflow, but it doesn't really lend itself to the type of communication that I think would best serve this community in terms of free flow of questions and ideas. With SO, you have to be very cautious with how you word things; not that I don't believe in doing research before asking questions, I just think that SO has a specific type of purpose that is not friendly to new users, philosophical discussions, meets and greets, etc. It just feels cold and uninviting.
Thoughts?

I think if you go ahead and set up something, nobody will stop you :) The maintainers seem to be a bit busy at the moment, so it's up to the community to cover that sort of thing. If you do, give me a shout, I'd be happy to join.

Good point and thanks for the reply @toyg. I really appreciate it. :)
Personally, I like listservs, but email does seem to be not as popular these days …
With that said, here are some options that could work well:

service
pros
cons

Slack
Popular; sleek; easy to setup; free plan has a searchable limit of last 10000 messages
Overkill features; not free

Google Groups
Free; email-oriented help
Web interface not that great; email listservs not popular these days; if not locked down, spammers could ruin it; requires moderation

Discourse
Contemporary and intuitive interface; forum-like discussions
Large system overhead, may require moderators; OSS, but not free (free only if self-hosted)

IRC
Focused chat; no frills
Very geeky (in a good way, I suppose); hard to access and navigate for noobs

What else am I missing? Anyone feel like any one wins out over the others?
Note that I am Leaving Stack Overflow off the list, as I personally don't consider that to be a good place to have conversations. Great place for specific questions, but not open-ended and/or philosophical conversations.
Thoughts?

Thanks, it's a relevant discussion to have.

Update
So, just yesterday I stumbled across this repo:
https://github.com/nodejs/help
I think doing the same as above would be the perfect solution for Spark!
Pros:

GitHub, which is already home to Spark
Issue template
Community already here
Email updates and reply by email
All the perks of GitHub issues (tags, milestones, etc.)
Familiar and easy interface
MarkDown support

Cons:

??? (I'm biased)

My proposal to @perwendel
Let's create a GitHub Organization for Spark!
Here's what Node.js is doing as an example:
https://github.com/nodejs
From there, we could officially add repos to the org that are specific/related/built-for Spark, like utilities, ORM layers, examples, starter templates, etc.
We could start out with Spark (this repo) and then add a new repo called "help" (like the Nodejs example above).
Starting small with the goal of it growing in future.
I'm not sure about the rest of you, but this seems like the most obvious/best solution!
I also think that an organization would help to give Spark even more positive exposure as a player in the Java framework arena.
Thoughts anyone?
(@perwendel, I've help setup orgs for companies I've worked for, and would not mind helping setup Spark org, if you think you need the help).

I'm pro using GitHub issues for questions and discussions.
@mhulse we have https://github.com/sparkjava, which corresponds to the website URL. Maybe we should grab spark-java too though 🤔

I'm pro using GitHub issues for questions and discussions.

Yah, it just makes sense. I am not sure how I didn't think of this in my earlier comments! 😆

@mhulse we have https://github.com/sparkjava, which corresponds to the website URL. Maybe we should grab spark-java too though 🤔

Oooh, awesome! So, we're already there! Nice!
Because I'm weird, I'd opt for spark-java and migrate the two repos from sparkjava. From there, we could have a note on the old org that points to the new?
Or, do the reverse, and point to sparkjava?
The good news is, there's already an org with repos.
Well, I would hate to -1 from @perwendel's repo list, but it seems like Spark (this repo) should get moved into the org?
Also, looking at @perwendel's repo lists, looks like there's a few other repos that might help to bolster the org's presence on GitHub. 👍
With all that said, I think we should copy what Nodejs is doing for a help repo!

My last post reminded me that Jekyll had a "help" repo (last time I checked):
https://github.com/jekyll/jekyll-help
Looks like they moved their discussions to a Discourse forum.
Well, I still think GitHub "help" repo is the way to go for Spark. The nice thing about a specific repo for help is that it moves all the question noise from bug reports. We could have an issue template (and update README) to let people know "if this is a support question, pleas visit https://github.com/sparkjava/help" (or, something to that effect).


how to change base path for swagger 2.0

Currently the generated API description is as follows:
{
    "swagger": "2.0",
    "info": {
        "description": "This API is for test",
        "version": "SNAPSHOT",
        "license": {
            "name": "License",
            "url": "/public/footer.html"
        }
    },
    "host": "localhost:8080",
    "basePath": "/",

I want to change it to
{
    "swagger": "2.0",
    "info": {
        "description": "This API is for test",
        "version": "SNAPSHOT",
        "license": {
            "name": "License",
            "url": "/public/footer.html"
        }
    },
    "host": "localhost:8080",
    "basePath": "/myapi",

My project is Spring boot, current the swagger configuration is:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
          .select()
          .apis(RequestHandlerSelectors.any())
          .paths(PathSelectors.any())
          .build()
          .apiInfo(apiInfo())
          .globalResponseMessage(RequestMethod.GET,
            newArrayList(new ResponseMessageBuilder()
              .code(500)
              .message("500 message")
              .responseModel(new ModelRef("Error"))
              .build(),
              new ResponseMessageBuilder()
                .code(403)
                .message("Forbidden!")
                .build()));
    }

    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo(
          "REST API",
          "Some custom description of API.",
          "API TOS",
          "Terms of service",
          "",
          "License of API",
          "API license URL");
        return apiInfo;
    }

}

how should I change the code?

You can just change the servlet context path in spring boot to /myapi using server.contextPath=/myapi in your application property file.

I changed the basepath by adding a custom path provider into Docket.

For anyone else interested in the solution to this problem; in addition to providing a custom path provider, make sure you set the host property of the Docket. Otherwise, the basePath will be determined based on the request url (see Swagger2Controller.getDocumentation(..)).
(The relevant parts of) my Docket configuration looks like this now:
new Docket(DocumentationType.SWAGGER_2)
    .host("www.mydomain.com")
    .pathProvider(new RelativePathProvider(servletContext) {
        @Override
        public String getApplicationBasePath() {
            return "/myapi";
        }
    });

jonaskoperdraat's solution worked for me, adding the host property did the trick. I also used sioulin custom PathProvider in issue 963 in my implementation.

@Configuration
@EnableSwagger2
@EnableConfigurationProperties({
    SwaggerProperties.class
})
public class SwaggerAutoConfiguration extends WebMvcConfigurerAdapter {
    @Autowired
    private SwaggerProperties swaggerProperties;

    @Bean
    public Docket swaggerDocket() {

        return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
            .build()
            .pathMapping(swaggerProperties.getInvokingBasePath());
    }

    @Bean
    public HandlerMapping swagger2ControllerProxyMapping(
        Environment environment,
        DocumentationCache documentationCache,
        ServiceModelToSwagger2Mapper mapper,
        JsonSerializer jsonSerializer) {

        return new Swagger2ControllerRequestMappingHandlerMapping(
            environment,
            new Swagger2Controller(environment, documentationCache, mapper, jsonSerializer),
            swaggerProperties.getBrowsingBasePath());
    }

    @Bean
    public HandlerMapping apiResourceControllerProxyMapping(
        ApiResourceController apiResourceController) {

        return new ProxiedControllerRequestMappingHandlerMapping(
            apiResourceController,
            swaggerProperties.getBrowsingBasePath());
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        String basePath = swaggerProperties.getBrowsingBasePath();

        registry.
            addResourceHandler(basePath + "/swagger-ui.html**")
            .addResourceLocations("classpath:/META-INF/resources/swagger-ui.html");
        registry.
            addResourceHandler(basePath + "/webjars/**")
            .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

@ConfigurationProperties(SwaggerProperties.PREFIX)
@Data
public class SwaggerProperties {
    public static final String PREFIX = "app.swagger";

    private Boolean enabled = true;

    private String browsingBasePath = "/api/swagger";

    private String invokingBasePath = "";
}

public class ProxiedControllerRequestMappingHandlerMapping extends RequestMappingHandlerMapping {
    protected final Map<String, HandlerMethod> handlerMethods = new LinkedHashMap<String, HandlerMethod>();
    protected final Object handler;
    protected final String basePath;

    public ProxiedControllerRequestMappingHandlerMapping(
        Object handler,
        String basePath) {

        this.handler = handler;
        this.basePath = basePath;
    }

    @Override
    protected void initHandlerMethods() {

        logger.debug("initialising the handler methods");
        setOrder(Ordered.HIGHEST_PRECEDENCE + 1000);
        Class<?> clazz = handler.getClass();
        if (isHandler(clazz)) {
            RequestMappingInfo classMapping = createRequestMappingInfo(clazz);

            for (Method method : clazz.getMethods()) {
                if (isValidMethod(method)) {
                    RequestMappingInfo methodMapping = getMappingForMethod(method, clazz);

                    if (methodMapping == null && classMapping == null) {
                        logger.warn(String.format(
                            "Cannot map any URL path onto method [%s] for class [%s]",
                            method.getName(),
                            clazz.getName()));
                        continue;
                    }

                    RequestMappingInfo mapping = ObjectUtils.defaultIfNull(methodMapping, classMapping);
                    HandlerMethod handlerMethod = createHandlerMethod(handler, method);
                    doMapping(clazz, method, mapping, handlerMethod);
                }
            }
        }
    }

    protected void doMapping(
        Class<?> clazz,
        Method method,
        RequestMappingInfo mapping,
        HandlerMethod handlerMethod) {

        for (String path : mapping.getPatternsCondition().getPatterns()) {
            path = basePath + path;

            logger.info(String.format(
                "Mapped URL path [%s] onto method [%s]",
                path,
                handlerMethod.toString()));
            handlerMethods.put(path, handlerMethod);
        }
    }

    @Override
    protected boolean isHandler(Class<?> beanType) {

        return ((AnnotationUtils.findAnnotation(beanType, Controller.class) != null) ||
            (AnnotationUtils.findAnnotation(beanType, RequestMapping.class) != null));
    }

    @Override
    protected HandlerMethod lookupHandlerMethod(
        String urlPath,
        HttpServletRequest request) throws Exception {

        logger.debug("looking up handler for path: " + urlPath);
        HandlerMethod handlerMethod = handlerMethods.get(urlPath);
        if (handlerMethod != null) {
            return handlerMethod;
        }
        for (String path : handlerMethods.keySet()) {
            UriTemplate template = new UriTemplate(path);
            if (template.matches(urlPath)) {
                request.setAttribute(
                    HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE,
                    template.match(urlPath));
                return handlerMethods.get(path);
            }
        }
        return null;
    }

    private RequestMappingInfo createRequestMappingInfo(AnnotatedElement element) {

        RequestMapping requestMapping = AnnotatedElementUtils.findMergedAnnotation(element, RequestMapping.class);
        RequestCondition<?> condition = (element instanceof Class ?
            getCustomTypeCondition((Class<?>) element) : getCustomMethodCondition((Method) element));
        return (requestMapping != null ? createRequestMappingInfo(requestMapping, condition) : null);
    }

    private boolean isValidMethod(Method method) {

        return (AnnotationUtils.findAnnotation(method, RequestMapping.class) != null)
            && Modifier.isPublic(method.getModifiers());
    }
}

public class Swagger2ControllerRequestMappingHandlerMapping extends ProxiedControllerRequestMappingHandlerMapping {
    private final Environment environment;

    public Swagger2ControllerRequestMappingHandlerMapping(
        Environment environment,
        Object handler,
        String basePath) {

        super(handler, basePath);
        this.environment = environment;
    }

    @Override
    protected void doMapping(
        Class<?> clazz,
        Method method,
        RequestMappingInfo mapping,
        HandlerMethod handlerMethod) {

        PropertySourcedMapping mapper = AnnotationUtils.getAnnotation(method, PropertySourcedMapping.class);

        if (mapper != null) {
            String mappingPath = mappingPath(mapper);
            if (mappingPath != null) {
                mappingPath = basePath + mappingPath;

                logger.info(String.format(
                    "Mapped URL path [%s] onto method [%s]",
                    mappingPath,
                    handlerMethod.toString()));
                handlerMethods.put(mappingPath, handlerMethod);
            } else {
                super.doMapping(clazz, method, mapping, handlerMethod);
            }
        }
    }

    private String mappingPath(final PropertySourcedMapping mapper) {

        final String key = mapper.propertyKey();
        return Optional.ofNullable(environment.getProperty(key))
            .map(input -> input.replace(String.format("${%s}", key), input))
            .orElse(null);
    }
}

@hydra1983 thanks for the solution for a reverse-proxy scenario

@hydra1983 how?
i tried buf faild

@beykery 😢  Tried what tho'

@beykery you need to configure the swagger as what I described in the previous comments :D

@jonaskoperdraat how do you create a servletContext object?
Thanks,
Kevin

Its auto wired of type ServletContext in by spring @LuChunQi

@dilipkrish I am using spring boot, it looks like ServletContext could not be auto wired in spring boot by default.
How should I do?
Thanks a lot.

If you use spring cloud Zuul to proxy your micro-services, you can take my example.

I found this what it work by taking a look at the source code of springfox-swagger2-2.5.0:

The BASE URL determined by the ajax request: /v2/api-docs , so I look deep into the Swagger2Controller#getDocumentation() --> springfox.documentation.swagger2.web.HostNameProvider#componentsFrom --> org.springframework.web.servlet.support.ServletUriComponentsBuilder#fromServletMapping --> org.springframework.web.servlet.support.ServletUriComponentsBuilder#prependForwardedPrefix

The key coding like this:
	private static String prependForwardedPrefix(HttpServletRequest request, String path) {
		String prefix = null;
		Enumeration<String> names = request.getHeaderNames();
		while (names.hasMoreElements()) {
			String name = names.nextElement();
			if ("X-Forwarded-Prefix".equalsIgnoreCase(name)) {
				prefix = request.getHeader(name);
			}
		}
		if (prefix != null) {
			path = prefix + path;
		}
		return path;
	}

So, If we want to change the BASE URL, we can just simply change the Http Header in zuul filter like this:
    @Override
    public Object run() {
        RequestContext context = RequestContext.getCurrentContext();
        context.addZuulRequestHeader("x-forwarded-prefix", null);     // 解决swagger base url问题
    }

@wubinhong thanks for sharing!

After ContextPathCompositeHandler enabled in webflux application, the bathpath is still the root path "/".
Seems the Swagger2ControllerWebFlux hard coded base path to "/".
Compiled from master branch, version springfox-swagger2-2.9.0-SNAPSHOT.jar.

@rickgong springfox 2.9.0 isn't event released!

I was able to get it to work with the below property in application.yml.
Note: The api adds the protocol so just have the host name for the value along with the service name if you have Zuul & Eureka setup
springfox.documentation.swagger.v2.host= /

@hydra1983 Unable to resolve dependencies for
AnnotationUtils.getAnnotation, PropertySourcedMapping, new Swagger2Controller
in the code you've posted. i'm also in need of a reverse proxy solution do share!

@vivekvarya dont know what version you're using but please use the latest released version of springfox (2.9.0 currently). Also for reverse proxy you need to set it up with the right X-Forward-xxxxx headers for your upstream

@dilipkrish Thanks for the tip! upgraded dependency to 2.9.0 and the application would refuse to start. Hence downgraded to 2.8.0 and added @hydra1983  code. seems to be working fine through reverse proxy. For some reason did not have to upstream in proxy.

@vivekvarya Great its working in 2.8.0. Mind sharing why it failed to start? I'd like to fix it if possible. BTW 2.9.2 is the latest.

@dilipkrish Yeah 2.9.2 is what i meant(just kept with your syntax). Have attached the error! Do let me know!, will like to use the latest possible version itself.
Swagger error.txt

You most likely have an incorrect version of google guava resolved. Make sure you're using the right version

@dilipkrish I also stumbled upon this (the need to upgrade guava to 20.0 at least) this should be in the release notes of swagger 2.9.2, where can I report this?

i have plenty of api with swagger 2.4 giving issues in registration to zuul.  Changing all APIs to latest swagger version is not an option at this time.  Is there a way i can change basePath in aggrgated swagger resources in zuul gateway?

@mlippens Guava dependency has been removed in the upcoming 3.0.0

@vijaychd The best way I know is to upgrade dependencies.

The solution from @jonaskoperdraat seems only works with WebMvc, since WebFlux's bathPath is hardcoded to ROOT. See: Swagger2ControllerWebFlux.java. Mentioned this here and #2629.  Please correct me if i did something wrong.

Hi all, I was able to get it working behind Zuul reverse proxy.
I'm using  Spring Cloud proxy with Zuul and Spring cloud discovery using Eureka (cloud dependecies in version Finchley.SR1). All in Spring Boot (version 2.0.5.RELEASE). I use Springfox 2.9.2 as Swagger implementation.
Services in my architecture exposes Swagger using standard Docket configuration. To change basePath from default is sufficient to provide following property in Spring Boot property source:
springfox.documentation.swagger.v2.path=/apidoc
Springfox in version 2.9.2 is able to deal with requests from proxy out of the box. When request come from proxy (headers x-forwarded-... are present) Springfox turns on base path resolver which is able to construct base path from such headers. This would work out of the box if there wouldn't be exception during resolving path. During process of resolvig Springfox tries to get spring version using static method org.springframework.core.SpringVersion.getVersion() which returns null in my case. To overcome this issue I have to add my own class org.springframework.core.SpringVersion on classpath. My custom class returns version as static string (in my case "5.0.9.RELEASE"). This is in my oppinion an ugly hack but I didn't discover any other simple solution (I don't want to play with classloaders :)). Any help on this will be appreciated!
Swagger UI is only on gateway. UI collects Swagger doc from services - I use custom resource provider to achive this. There is no need to add the custom filter injecting x-forwarded-path header - Zuul in version 1.3.1 (version is automatically picked up by cloud dependencies BOM) do it automatically. My gateway config:
properties
zuul:
  prefix: /api
    address:
      path: /address/**
      service-id: address-service

spring boot configuration
@Primary //to choose this bean instead of InMemorySwaggerResourcesProvider one (and of course to prevent conflict on startup)
@Bean
public SwaggerResourcesProvider swaggerResourcesProvider(InMemorySwaggerResourcesProvider defaultResourceProvider){
        return () -> {
            List<SwaggerResource> swaggerResources = List.of(
                    createSwaggerResource("address-service", "/api/address/apidoc", "2.0")
            );
            return swaggerResources;
        };
    }

.... where createSwaggerResource is only factory method for SwaggerResource.
Hope it helps...

@jonaskoperdraat So.. should

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
            .host("localhost:8443")
            .pathProvider(new RelativePathProvider(servletContext) {
                @Override
                public String getApplicationBasePath() {
                    return "/r/api/v1/docs";
                }
            });
}

change
https://localhost:8443/swagger-ui.html
to
https://localhost:8443/r/api/v1/docs/swagger-ui.html
..? Because if so, it's now working for me. Am I missing something?

@silentsnooc honestly, I don't know. It's been 2,5 years, and I haven't worked with Swagger on this level since.
As I recall, I came up with the solution by looking through the source code. That might help you as well.
Good luck!

Hi,
I've exactly the same issue as @silentsnooc .
Here is any news on this subject ?

/**
* @OA\OpenApi(
*     @OA\Info(
*         version="1.0.0",
*         title="Lumen Swagger Tutorial",
*     ),
*     @OA\Server(
*         description="Base url server",
*         url="http://localhost/lumen2020/",
*     ),
* )
*/
try in this way

If you use spring cloud Zuul to proxy your micro-services, you can take my example.

I found this what it work by taking a look at the source code of springfox-swagger2-2.5.0:
* The `BASE URL` determined by the ajax request: `/v2/api-docs` , so I look deep into the `Swagger2Controller#getDocumentation()` --> `springfox.documentation.swagger2.web.HostNameProvider#componentsFrom` --> `org.springframework.web.servlet.support.ServletUriComponentsBuilder#fromServletMapping` --> `org.springframework.web.servlet.support.ServletUriComponentsBuilder#prependForwardedPrefix`

The key coding like this:
	private static String prependForwardedPrefix(HttpServletRequest request, String path) {
		String prefix = null;
		Enumeration<String> names = request.getHeaderNames();
		while (names.hasMoreElements()) {
			String name = names.nextElement();
			if ("X-Forwarded-Prefix".equalsIgnoreCase(name)) {
				prefix = request.getHeader(name);
			}
		}
		if (prefix != null) {
			path = prefix + path;
		}
		return path;
	}

So, If we want to change the BASE URL, we can just simply change the Http Header in zuul filter like this:
    @Override
    public Object run() {
        RequestContext context = RequestContext.getCurrentContext();
        context.addZuulRequestHeader("x-forwarded-prefix", null);     // 解决swagger base url问题
    }

Thank you @wubinhong , your share provides the missing part on configuring nginx reverse proxy for swagger service: x-forwarded-prefix.
http {
    upstream swagger_server {
        server <IP_ADDRESS>:12345 fail_timeout=0;
    }

    server {
        # ...
        location /proxy_path/ {
                proxy_set_header        Host $host;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto $scheme;
                proxy_set_header        X-Forwarded-Prefix /proxy_path; # Send swagger the base path
                proxy_redirect off;
                proxy_pass http://swagger_server/;
        }
    }
    # ...
}

I fixed this just by adding server.servlet.context-path: /api/authentication to my application.properties in spring. you need it anyway :)

Possible duplicate of #3104 ... definitely has information that can be used to help in the future

@snagiel Thanks for the advice.
For future readers, this seemed to work for us. Will include the relevant snippets from each file:
File build.gradle
// ...

implementation "io.springfox:springfox-swagger2:2.9.2"
implementation "io.springfox:springfox-swagger-ui:2.9.2"

File src/main/resources/application.yml
# For higher environments using nginx reverse proxy
swagger:
  pathMapping: ${SWAGGER_PATH_MAPPING:/api}

---

# For local environments
spring:
  profiles: local
swagger:
  pathMapping: ${SWAGGER_PATH_MAPPING:/}
---

File src/main/java/.../SwaggerConfig.java
// ...

@Log4j2
@Configuration
public class SwaggerConfig {

  @Value("${swagger.pathMapping}")
  private String swaggerPathMapping;

  @Bean
  public Docket customDocket() {
    log.info("swaggerPathMapping: '{}'", swaggerPathMapping);

    return new Docket(DocumentationType.SWAGGER_2)
        .useDefaultResponseMessages(false)
        .pathMapping(swaggerPathMapping)
        // ...
        .build();
  }

}


Docs for new GitHub App on GH Runner (#4651)

Documentation to Support new GitHub App authentication on Scaler
Checklist

[x] Commits are signed with Developer Certificate of Origin (DCO)

Fixes #
https://github.com/kedacore/keda/issues/4651
Relates #
https://github.com/kedacore/keda/pull/4708

Reviewed.


Remove sensu_asset metadata parameter (sensu2)

Upstream removed metadata from assets (https://github.com/sensu/sensu-go/pull/2273).  Need to update sensu_asset type to account for this change.

So this relates a little to #1006 but upon looking it seems the metadata property was replaced by metadata hash now used also by check and entity which means arbitrary key/values for labels and annotations will be possible with assets.

@treydock can this be closed now that https://github.com/sensu/sensu-puppet/pull/1013 is merged?

Yep, closing.


Question : transition between colorboxes

Hi,
It is more a question than an issue :
In the following example, I make a transition between 2 colorboxes using the "html" attribute.
Is it possible to show the content of the 2nd colorbox instantly without the loading GIF and the white empty box glitch ? (I tried to apply a "display: none" on the .cboxLoadingOverlay element but it didn't work)
http://jsbin.com/buwicu
Thank you for your help !

If you set the transition speed to 0, then there wouldn't be a loading animation.  Otherwise it's something you'd have to modify the plugin to support.

Thanks !


App contains errors if opened in Studio with other language than English

Hi @thatapiguy, frist of all: real nice job there! I immediately opened your app to see its core.
Unfortunately I had a lot of errors in it because my Studio is in French and many of the fields or table names were not recognized by Power Apps since their display name aren't the same in different languages:

I really don't understand why Power Apps doesn't store datasource elements using their internal name and then show the display name in the formula bar using the Studio language. This is really a pain...
Any feedback/ideas on this?

Hi. Thanks for submitting the feedback.  I thought Power Apps would take care of the language related changes automatically, however, that doesn't seem to be the case.
Let me check with some other PowerAddicts and maybe ask someone at Microsoft who could help with this.

@e-gallis can you try changing the Studio language to English before importing , then save the app and then change the language back to French?

@e-gallis can you try changing the Studio language to English before importing , then save the app and then change the language back to French?

Honestly, I really doubt this will change anything as I will be saving the app in English and going back to French should just show up the same errors as all tables and fields will be back to French... But I'll give it a try...