Error in minio client uploading artifact: "301 response missing Location header"

Is this a BUG REPORT or FEATURE REQUEST?:
BUG REPORT
What happened:
Failure uploading an artifact to s3
What you expected to happen:
Expected successful upload
How to reproduce it (as minimally and precisely as possible):
apiVersion: argoproj.io/v1alpha
kind: Workflow
metadata:
  generateName: test-workflow-
spec:
  serviceAccountName: historical-run-workflow
  entrypoint: test-workflow
  templates:
  - name: test-workflow
    dag:
      tasks:
        - name: compile-config
          template: compile-config
  - name: compile-config
    outputs:
      artifacts:
        - name: arty
          path: /tmp/arty.yaml
    container:
      image: REDACTED
      imagepullpolicy: Always
      command: [sh, -c]
      args: ["echo -n asdfasdf > /tmp/arty.yaml"]

Anything else we need to know?:
I am using the new EKS IAM for ServiceAccount (https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html). But the latest go aws sdk should support this.
Environment:

Argo version:

argo: v2.4.2
  BuildDate: 2019-10-21T18:39:52Z
  GitCommit: 675c66267f0c916de0f233d8101aa0646acb46d4
  GitTreeState: clean
  GitTag: v2.4.2
  GoVersion: go1.11.5
  Compiler: gc
  Platform: darwin/amd64

Kubernetes version :

$ kubectl version -o yaml
clientVersion:
  buildDate: "2019-10-02T23:49:20Z"
  compiler: gc
  gitCommit: d647ddbd755faf07169599a625faf302ffc34458
  gitTreeState: clean
  gitVersion: v1.16.1
  goVersion: go1.12.9
  major: "1"
  minor: "16"
  platform: darwin/amd64
serverVersion:
  buildDate: "2019-10-18T17:56:01Z"
  compiler: gc
  gitCommit: b7174db5ee0e30c94a0b9899c20ac980c0850fc8
  gitTreeState: clean
  gitVersion: v1.14.8-eks-b7174d
  goVersion: go1.12.10
  major: "1"
  minor: 14+
  platform: linux/amd64

Other debugging information (if applicable):

workflow result:

$ argo get <workflowname>
Name:                test-workflow-s7j59
Namespace:           argo
ServiceAccount:      historical-run-workflow
Status:              Error
Created:             Thu Nov 28 09:54:02 +0000 (1 minute ago)
Started:             Thu Nov 28 09:54:02 +0000 (1 minute ago)
Finished:            Thu Nov 28 09:54:40 +0000 (24 seconds ago)
Duration:            38 seconds
Parameters:
  trth-image:        "REDACTED"

STEP                                    PODNAME                         DURATION  MESSAGE
 ⚠ test-workflow-s7j59 (test-workflow)
 └-⚠ compile-config (compile-config)    test-workflow-s7j59-2863583866  37s       failed to save outputs: timed out waiting for the condition

executor logs:

$ kubectl logs <failedpodname> -c init
$ kubectl logs <failedpodname> -c wait
time="2019-11-28T09:54:03Z" level=info msg="Creating a docker executor"
time="2019-11-28T09:54:03Z" level=info msg="Executor (version: v2.4.2, build_date: 2019-10-21T18:39:09Z) initialized (pod: argo/test-workflow-s7j59-2863583866) with template:\n{\"name\":\"compile-config\",\"arguments\":{},\"inputs\":{},\"outputs\":{\"artifacts\":[{\"name\":\"arty\",\"path\":\"/tmp/arty.yaml\"}]},\"metadata\":{\"annotations\":{\"eks.amazonaws.com/role-arn\":\"REDACTED\"}},\"container\":{\"name\":\"\",\"image\":\"packages:14999/g.emerton/trth\",\"command\":[\"sh\",\"-c\"],\"args\":[\"echo -n asdfasdf \\u003e /tmp/arty.yaml\"],\"resources\":{},\"imagePullPolicy\":\"Always\"},\"archiveLocation\":{\"s3\":{\"endpoint\":\"s3.amazonaws.com\",\"bucket\":\"REDACTED\",\"accessKeySecret\":{\"key\":\"\"},\"secretKeySecret\":{\"key\":\"\"},\"key\":\"test-workflow-s7j59/test-workflow-s7j59-2863583866\"}}}"
time="2019-11-28T09:54:03Z" level=info msg="Waiting on main container"
time="2019-11-28T09:54:04Z" level=info msg="main container started with container ID: 05358f856885f5f081d25c58bdee781a38daa3bacc68f28d983f436163743d86"
time="2019-11-28T09:54:04Z" level=info msg="Starting annotations monitor"
time="2019-11-28T09:54:05Z" level=info msg="docker wait 05358f856885f5f081d25c58bdee781a38daa3bacc68f28d983f436163743d86"
time="2019-11-28T09:54:05Z" level=info msg="Starting deadline monitor"
time="2019-11-28T09:54:05Z" level=info msg="Main container completed"
time="2019-11-28T09:54:05Z" level=info msg="No output parameters"
time="2019-11-28T09:54:05Z" level=info msg="Saving output artifacts"
time="2019-11-28T09:54:05Z" level=info msg="Annotations monitor stopped"
time="2019-11-28T09:54:05Z" level=info msg="Staging artifact: arty"
time="2019-11-28T09:54:05Z" level=info msg="Copying /tmp/arty.yaml from container base image layer to /tmp/argo/outputs/artifacts/arty.tgz"
time="2019-11-28T09:54:05Z" level=info msg="Archiving 05358f856885f5f081d25c58bdee781a38daa3bacc68f28d983f436163743d86:/tmp/arty.yaml to /tmp/argo/outputs/artifacts/arty.tgz"
time="2019-11-28T09:54:05Z" level=info msg="sh -c docker cp -a 05358f856885f5f081d25c58bdee781a38daa3bacc68f28d983f436163743d86:/tmp/arty.yaml - | gzip > /tmp/argo/outputs/artifacts/arty.tgz"
time="2019-11-28T09:54:05Z" level=info msg="Archiving completed"
time="2019-11-28T09:54:05Z" level=info msg="S3 Save path: /tmp/argo/outputs/artifacts/arty.tgz, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz"
time="2019-11-28T09:54:05Z" level=info msg="Creating minio client s3.amazonaws.com using IAM role"
time="2019-11-28T09:54:05Z" level=info msg="Saving from /tmp/argo/outputs/artifacts/arty.tgz to s3 (endpoint: s3.amazonaws.com, bucket: REDACTED, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz)"
time="2019-11-28T09:54:05Z" level=warning msg="Failed to put file: Put https://REDACTED.s3.dualstack.us-east-1.amazonaws.com/test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz: 301 response missing Location header"
time="2019-11-28T09:54:06Z" level=info msg="Deadline monitor stopped"
time="2019-11-28T09:54:07Z" level=info msg="S3 Save path: /tmp/argo/outputs/artifacts/arty.tgz, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz"
time="2019-11-28T09:54:07Z" level=info msg="Creating minio client s3.amazonaws.com using IAM role"
time="2019-11-28T09:54:07Z" level=info msg="Saving from /tmp/argo/outputs/artifacts/arty.tgz to s3 (endpoint: s3.amazonaws.com, bucket: REDACTED, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz)"
time="2019-11-28T09:54:08Z" level=warning msg="Failed to put file: Put https://REDACTED.s3.dualstack.us-east-1.amazonaws.com/test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz: 301 response missing Location header"
time="2019-11-28T09:54:12Z" level=info msg="S3 Save path: /tmp/argo/outputs/artifacts/arty.tgz, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz"
time="2019-11-28T09:54:12Z" level=info msg="Creating minio client s3.amazonaws.com using IAM role"
time="2019-11-28T09:54:12Z" level=info msg="Saving from /tmp/argo/outputs/artifacts/arty.tgz to s3 (endpoint: s3.amazonaws.com, bucket: REDACTED, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz)"
time="2019-11-28T09:54:13Z" level=warning msg="Failed to put file: Put https://REDACTED.s3.dualstack.us-east-1.amazonaws.com/test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz: 301 response missing Location header"
time="2019-11-28T09:54:21Z" level=info msg="S3 Save path: /tmp/argo/outputs/artifacts/arty.tgz, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz"
time="2019-11-28T09:54:21Z" level=info msg="Creating minio client s3.amazonaws.com using IAM role"
time="2019-11-28T09:54:21Z" level=info msg="Saving from /tmp/argo/outputs/artifacts/arty.tgz to s3 (endpoint: s3.amazonaws.com, bucket: REDACTED, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz)"
time="2019-11-28T09:54:22Z" level=warning msg="Failed to put file: Put https://REDACTED.s3.dualstack.us-east-1.amazonaws.com/test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz: 301 response missing Location header"
time="2019-11-28T09:54:38Z" level=info msg="S3 Save path: /tmp/argo/outputs/artifacts/arty.tgz, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz"
time="2019-11-28T09:54:38Z" level=info msg="Creating minio client s3.amazonaws.com using IAM role"
time="2019-11-28T09:54:38Z" level=info msg="Saving from /tmp/argo/outputs/artifacts/arty.tgz to s3 (endpoint: s3.amazonaws.com, bucket: REDACTED, key: test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz)"
time="2019-11-28T09:54:39Z" level=warning msg="Failed to put file: Put https://REDACTED.s3.dualstack.us-east-1.amazonaws.com/test-workflow-s7j59/test-workflow-s7j59-2863583866/arty.tgz: 301 response missing Location header"
time="2019-11-28T09:54:39Z" level=error msg="executor error: timed out waiting for the condition"
time="2019-11-28T09:54:39Z" level=info msg="Killing sidecars"
time="2019-11-28T09:54:39Z" level=info msg="Alloc=6989 TotalAlloc=27388 Sys=71358 NumGC=8 Goroutines=9"
time="2019-11-28T09:54:39Z" level=fatal msg="timed out waiting for the condition"

workflow-controller logs:

$ kubectl logs -n argo $(kubectl get pods -l app=workflow-controller -n argo -o name)
time="2019-11-28T09:54:02Z" level=info msg="Processing workflow" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:02Z" level=info msg="Updated phase  -> Running" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:02Z" level=info msg="DAG node test-workflow-s7j59 (test-workflow-s7j59) initialized Pending" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:02Z" level=info msg="Create stored template '/test-workflow'" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:02Z" level=info msg="node test-workflow-s7j59 (test-workflow-s7j59) phase Pending -> Running" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:02Z" level=info msg="All of node test-workflow-s7j59.compile-config dependencies [] completed" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:02Z" level=info msg="Pod node test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) initialized Pending" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:02Z" level=info msg="Create stored template '/compile-config'" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:02Z" level=info msg="Created pod: test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866)" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:02Z" level=info msg="Workflow update successful" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:03Z" level=info msg="Processing workflow" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:03Z" level=info msg="Updating node test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) message: ContainerCreating"
time="2019-11-28T09:54:03Z" level=info msg="Skipped pod test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) creation: already exists" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:03Z" level=info msg="Workflow update successful" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:04Z" level=info msg="Processing workflow" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:04Z" level=info msg="Skipped pod test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) creation: already exists" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:05Z" level=info msg="Processing workflow" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:05Z" level=info msg="Updating node test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) status Pending -> Running"
time="2019-11-28T09:54:05Z" level=info msg="Skipped pod test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) creation: already exists" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:05Z" level=info msg="Workflow update successful" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:06Z" level=info msg="Processing workflow" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:06Z" level=info msg="Skipped pod test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) creation: already exists" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:31Z" level=info msg="Alloc=7201 TotalAlloc=232841 Sys=72638 NumGC=508 Goroutines=69"
time="2019-11-28T09:54:39Z" level=info msg="Processing workflow" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:39Z" level=info msg="Skipped pod test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) creation: already exists" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:40Z" level=info msg="Processing workflow" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:40Z" level=info msg="Updating node test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) status Running -> Error"
time="2019-11-28T09:54:40Z" level=info msg="Updating node test-workflow-s7j59.compile-config (test-workflow-s7j59-2863583866) message: failed to save outputs: timed out waiting for the condition"
time="2019-11-28T09:54:40Z" level=info msg="node test-workflow-s7j59 (test-workflow-s7j59) phase Running -> Error" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:40Z" level=info msg="node test-workflow-s7j59 (test-workflow-s7j59) finished: 2019-11-28 09:54:40.40500556 +0000 UTC" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:40Z" level=info msg="Checking daemoned children of test-workflow-s7j59" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:40Z" level=info msg="Updated phase Running -> Error" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:40Z" level=info msg="Marking workflow completed" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:40Z" level=info msg="Checking daemoned children of " namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:40Z" level=info msg="Workflow update successful" namespace=argo workflow=test-workflow-s7j59
time="2019-11-28T09:54:41Z" level=info msg="Labeled pod argo/test-workflow-s7j59-2863583866 completed"
time="2019-11-28T09:59:31Z" level=info msg="Alloc=5625 TotalAlloc=233560 Sys=72638 NumGC=510 Goroutines=69"

I had the same error, and it's somewhat misleading. In my case it was the bucket region that was not correct.


free draw and load pdf

Is there a fix to load pdf or pasting an external image and draw free-style.
I've tried adding code fix, but the fixes are sitting behind the canvas, and hence are of no visual help

Hello. For freehand drawing, there's https://github.com/excalidraw/excalidraw/issues/25, and for image uploading there's https://github.com/excalidraw/excalidraw/issues/19.
As for uploading pdf, there's no issue yet, but I don't understand how that would work.

#25 is closed and we are working on #19 now. @JOEMAIER101 thank you for your suggestions, hopefully we will finish this really soon. If you want to track progress or be involved in any way, join us on #19.
I will close this.


Not able to get Server.swagger(...) to expose /api-docs endpoint

I was able to get swaggerGen to work, as well as normal routes using the @Path decorator.  However, I'm not able to expose the swagger endpoint using the example in the readme.  Wondering if you could tell me what I'm doing wrong?  Here is my server setup:
// server.ts
let expressApp: express.Express = express()
middleware.mountMiddleware(expressApp)
Routes.mountRoutes(expressApp, port)

let server = http.createServer(expressApp)
let io = require('socket.io')(server)
sockets.registerSockets(io)

server.listen(port, '<IP_ADDRESS>', function () {
	console.log('Express started on port ' + port)
})

// middleware.ts
export function mountMiddleware (expressApp) {
	// expressApp.use(morgan('combined'))
	wlog.log('debug', 'serving from static path ' + serverConfig.publicPath)
	expressApp.use('/', express.static(serverConfig.publicPath))
	expressApp.use(BodyParser.json())
	expressApp.use(cors())
}

// routes.ts
export function mountRoutes (app, port) {
	Server.buildServices(app)
	wlog.log('debug', 'setting up Server.swagger from cwd: ' + process.cwd())
	Server.swagger(app, './swagger/api/swagger/swagger.yaml', '/api-docs', '<IP_ADDRESS>:5674', ['http'])
}

GET to http://localhost:5674/api-docs results in ERR_CONNECTION_REFUSED
GET to http://localhost:3000/api-docs (just in case the route was exposed on the same port as the other routes) results in a status 404

We're running into a similar issue.
// app.ts
import * as express from 'express';
import { Server } from 'typescript-rest';

import './api/controllers';

const app: express.Application = express();
Server.buildServices(app);
Server.swagger(app, './dist/swagger.yaml', 'api-docs');

app.listen('4000', () => {
  console.log('REST Server listening on port 4000!');
});

Looking at the debug output, it appears to me as though the route is not registering in the same way as the API routes. Compare /api-docs with /hello in the log:

  express:application set "x-powered-by" to true +0ms
  express:application set "etag" to 'weak' +7ms
  express:application set "etag fn" to [Function: wetag] +11ms
  express:application set "env" to 'development' +7ms
  express:application set "query parser" to 'extended' +7ms
  express:application set "query parser fn" to [Function: parseExtendedQueryString] +8ms
  express:application set "subdomain offset" to 2 +11ms
  express:application set "trust proxy" to false +5ms
  express:application set "trust proxy fn" to [Function: trustNone] +11ms
  express:application booting in development mode +7ms
  express:application set "view" to [Function: View] +9ms
  express:application set "views" to 'C:\\Repositories\\application\\views' +5ms
  express:application set "jsonp callback name" to 'callback' +10ms
  express:router use '/' query +15ms
  express:router:layer new '/' +7ms
  express:router use '/' expressInit +7ms
  express:router:layer new '/' +5ms
  express:router:route new '/hello/:name' +6ms
  express:router:layer new '/hello/:name' +5ms
  express:router:route get '/hello/:name' +7ms
  express:router:layer new '/' +6ms
  express:router:layer new '/' +9ms
  express:router:route new '/hello/:name' +7ms
  express:router:layer new '/hello/:name' +4ms
  express:router:route acl '/hello/:name' +8ms
  express:router:layer new '/' +5ms
  express:router:route bind '/hello/:name' +8ms
  express:router:layer new '/' +5ms
  express:router:route checkout '/hello/:name' +5ms
  express:router:layer new '/' +9ms
  express:router:route connect '/hello/:name' +5ms
  express:router:layer new '/' +5ms
  express:router:route copy '/hello/:name' +5ms
  express:router:layer new '/' +4ms
  express:router:route delete '/hello/:name' +7ms
  express:router:layer new '/' +5ms
  express:router:route get '/hello/:name' +6ms
  express:router:layer new '/' +6ms
  express:router:route head '/hello/:name' +5ms
  express:router:layer new '/' +5ms
  express:router:route link '/hello/:name' +5ms
  express:router:layer new '/' +5ms
  express:router:route lock '/hello/:name' +6ms
  express:router:layer new '/' +5ms
  express:router:route m-search '/hello/:name' +7ms
  express:router:layer new '/' +4ms
  express:router:route merge '/hello/:name' +7ms
  express:router:layer new '/' +4ms
  express:router:route mkactivity '/hello/:name' +4ms
  express:router:layer new '/' +7ms
  express:router:route mkcalendar '/hello/:name' +7ms
  express:router:layer new '/' +5ms
  express:router:route mkcol '/hello/:name' +5ms
  express:router:layer new '/' +4ms
  express:router:route move '/hello/:name' +5ms
  express:router:layer new '/' +62ms
  express:router:route notify '/hello/:name' +3ms
  express:router:layer new '/' +2ms
  express:router:route options '/hello/:name' +4ms
  express:router:layer new '/' +3ms
  express:router:route patch '/hello/:name' +2ms
  express:router:layer new '/' +2ms
  express:router:route post '/hello/:name' +5ms
  express:router:layer new '/' +1ms
  express:router:route propfind '/hello/:name' +2ms
  express:router:layer new '/' +5ms
  express:router:route proppatch '/hello/:name' +1ms
  express:router:layer new '/' +5ms
  express:router:route purge '/hello/:name' +2ms
  express:router:layer new '/' +4ms
  express:router:route put '/hello/:name' +1ms
  express:router:layer new '/' +5ms
  express:router:route rebind '/hello/:name' +1ms
  express:router:layer new '/' +5ms
  express:router:route report '/hello/:name' +1ms
  express:router:layer new '/' +4ms
  express:router:route search '/hello/:name' +2ms
  express:router:layer new '/' +4ms
  express:router:route subscribe '/hello/:name' +1ms
  express:router:layer new '/' +5ms
  express:router:route trace '/hello/:name' +1ms
  express:router:layer new '/' +5ms
  express:router:route unbind '/hello/:name' +4ms
  express:router:layer new '/' +2ms
  express:router:route unlink '/hello/:name' +4ms
  express:router:layer new '/' +1ms
  express:router:route unlock '/hello/:name' +5ms
  express:router:layer new '/' +2ms
  express:router:route unsubscribe '/hello/:name' +4ms
  express:router:layer new '/' +2ms
  express:router:route new '\\api-docs\\json' +22ms
  express:router:layer new '\\api-docs\\json' +1ms
  express:router:route get '\\api-docs\\json' +2ms
  express:router:layer new '/' +12ms
  express:router:route new '\\api-docs\\yaml' +1ms
  express:router:layer new '\\api-docs\\yaml' +6ms
  express:router:route get '\\api-docs\\yaml' +8ms
  express:router:layer new '/' +2ms
  express:router use '\\api-docs' serveStatic +10ms
  express:router:layer new '\\api-docs' +2ms
  express:router use '\\api-docs' <anonymous> +2ms
  express:router:layer new '\\api-docs' +3ms
REST Server listening on port 4000!

@pdusen , are you running windows?  We ran into an issue with Path.join here: https://github.com/thiagobustamante/typescript-rest-swagger/issues/3, where the path library was inserting '\' instead of '/' when running on Windows.

@tamethecomplex I am running Windows, and I independently reached a similar conclusion.

Locally, I was able to resolve my problem by changing the implementation of Server.swagger to use path.posix.join instead of the current path.join:
  router.get(path.posix.join('/', endpoint, 'json'), (req, res, next) => {
    res.send(swaggerDocument);
  });
  router.get(path.posix.join('/', endpoint, 'yaml'), (req, res, next) => {
    res.set('Content-Type', 'text/vnd.yaml');
    res.send(YAML.stringify(swaggerDocument, 1000));
  });

  router.use(path.posix.join('/', endpoint), swaggerUi.serve, swaggerUi.setup(swaggerDocument));

Just confirmed the same myself.

Just opened a PR with this change: https://github.com/thiagobustamante/typescript-rest/pull/19

Thanks. I already merged the code.

Fixed in version 1.0.3


NotesTaker By Ravit

Pull Request Checklist
Go through the check boxes given below and make sure you mark the relevant ones.
To check put x inside [ ] eg. [x] Extension
Is your project an

[x] Extension
[ ] Application

Given below are the mandatory requirements we expect from your project. Your Pull Request will be reviewed only if all the minimum requirements relevant to your project are satisfied.

[x] Added readme.md to my project folder with relevant information.
[x]  I have provided the demo video link (showing the functionality in action) or the public deployment link of my extension of application within the readme.md (if Applicable).
[x] I have explained the process in a readable manner within readme.md.

Terms and Conditions
Plagiarism check from Team Crio will be solid and if your code is found to be plagiarized, the team has every right to reject your Pull Request and take necessary actions.

[x] I can assure you that this is my own contribution and I did not involve in any kind of plagiarism activities.

Buckle up and wait till you recieve communication from the review team. Keep a tab on this pull request page for comments on your project. Any necessary suggestions will also be provide here. All the best :)
Once your PR get's merged, take some time ⏲, celebrate 🥳 and share it with the community on slack.

Notes manipulation can be done in a downloaded word file.
If I add that feature here then in one scenario, If user deletes extra text by mistake in a extension ,then the note will be deleted and can't be reverted back. In such case this feature will become a con of this extension.

Notes manipulation can be done in a downloaded word file.
If I add that feature here then in one scenario, If user deletes extra text by mistake in a extension ,then the note will be deleted and can't be reverted back. In such case this feature will become a con of this extension.

make sense, btw nice work ⭐

Sure

Done

@all-contributors Please add @ravit27 for code, idea, infra, design


Updates to samples

@susmithp and my fixes on @vejmarie's API samples

Signed-off-by: Arun Koshy<EMAIL_ADDRESS>

@susmithp thanks a ton for your help with debugging these scripts -- including server side fixes. We will refresh further along with support for other languages including Go and Python.


chore: Fix typo in comment

Just fixes a small typo. It's close to an area that #445 touches so I'm gonna merge the other first as I don't know whether the closeness can also cause merge conflict

Yup called it, this would have caused a merge conflict. Should be resolved now ^^


New update 1.21.2021

@Null69 https://github.com/Blaumaus/le_chiffre/releases/tag/v1.0.4

@Null69 https://github.com/Blaumaus/le_chiffre/releases/tag/v1.0.4

also i think offsets autoparser will come in the next release

also i think offsets autoparser will come in the next release

also i think offsets autoparser will come in the next release

What does that mean?, You'll integrate hazedumper in your source so everytime there's an update the cheat automatically scan and dump the latest offsets??

also i think offsets autoparser will come in the next release

What does that mean?, You'll integrate hazedumper in your source so everytime there's an update the cheat automatically scan and dump the latest offsets??


Mention IBC for TWS/Gateway

I mentioned IBeam at IBC as well.
https://github.com/IbcAlpha/IBC/issues/103#issuecomment-1698334336

There's also a Docker image project with IB Gateway and IBC, https://github.com/UnusualAlpha/ib-gateway-docker

Great stuff @tredondo 💪 Thanks!


Add scroll to top Button

When we are at the bottom of the page, it is difficult for a user to add up and up. Therefore we need a scroll to top floating button.

Place: Bottom Right
Button Color: #1d1283
Icon Color: #fff

Note: Make it responsive for all the devices
Image for Reference

Could I take up this one?

@rohan09-raj vro, I had already mentioned in the last line of the description that I want to work on this issue.  🙄

@rohan09-raj vro, I had already mentioned in the last line of the description that I want to work on this issue. 🙄

Are you in Real Dev Squad Discord Server ??

Are you in Real Dev Squad Discord Server ??

No. What is Discord's server link?

Here is the link Prateek https://discord.gg/AbAXH9XN
I apologize for my mistake, I have previously discussed this issue with the members there in Real Dev Squad and asked them to create the issue. I thought one of them has created it. You can join the discord server, there we do lot of features like these in different frameworks too and you can contribute to any of them

Ok Bro, No problem 🙂


Add Recursive Labs LTD to index.html

Added in https://github.com/opentffoundation/manifesto/pull/266


Ability to run embeddings against data from an existing table

An obviously useful feature.

Easiest design I can think of for this is:
openai-to-sqlite embeddings output.db --sql 'select id, heading, title from content' -t embeddings

This would run that SQL query, calculate embeddings against all of the columns past the id one, then store those in the table called embeddings.
One catch: what if you want to store the embeddings in output.db but read the incoming data from some other database?
I'm tempted to imitate the sqlite-utils --attach alias other.db option for that - then you could do select id, heading from other.content.

I tested this like so:
curl -O https://datasette.io/content.db
openai-to-sqlite embeddings embeddings.db --attach content content.db \
  --sql 'select id, full_name, description from content.repos'

Then opened in Datasette like this:
datasette content.db embeddings.db --crossdb

And explored the embeddings with:
select
  content.repos.id,
  content.repos.full_name,
  content.repos.description,
  substr(embeddings.embeddings.embedding, 0, 20)
from
  embeddings.embeddings
  join content.repos on content.repos.id = embeddings.embeddings.id

And a related content query (using datasette-openid):
with input as (
  select
    embedding
  from
    embeddings.embeddings
  where
    id = (
      select
        id
      from
        content.repos
      where
        full_name = :repo
    )
),
scores as (
  select
    id,
    openai_embedding_similarity(input.embedding, embeddings.embedding) as score
  from
    embeddings.embeddings,
    input
),
top_n as (
  select
    id,
    score
  from
    scores
  order by
    score desc
  limit
    10
)
select
  full_name,
  description,
  score
from
  content.repos
  join top_n on top_n.id = content.repos.id


[BUG] Counter acts up

What's the issue?

What's the issue?

Its counting weird, isnt it ? :D Shouldnt after one come 2 not 27 ? After 27 i expected 28 and so on :) Tal didnt know also so pls explain how it works if that is supposed to be right :)

Each time a card is scanned by any device, the card increases its internal counter, which it keeps (until reset).
When a card is added to lnbits, default initial counter we save to our db is 1. So any scanned card's link containing a counter param higher then 1 is valid for us from start.
In this case the first card's link presented to lnbits contained counter param of 27. Somebody scanned this card 26 times before some app (wallet/pos) finally presented scanned link to the lnbits server. That is valid for us, 27 is higher then 1 so we save this new counter to our db. From now on, any older link with lower counter is invalid for us (it would mean replay attack). We are now ready to pay but payment request never came back for some reason so the amount remained 0 for this hit. No sats moved.
The second hit (card's link presented to lnbits) contained the counter param of 29. One link was scanned and thrown away (not presented to lnbits) for some reason between the first and the second hit. We don't mind as long as we're getting higher then the last time. The third hit we got the very subsequent scanned card's link. The fourth time one there was again one futile scan of the card.
Let me know if this is any clearer now or if there is anything I could explain better.

I am not sure if i understood that tbh
Does it only increase / create an entry here when its presented to pay on the same instance ??

Does this help to understand?

I guess, so only the counter that is present on the card at a successful payment, right ?

It made the confusion smaller, yes :P
Whats the scenario where no entry is made for a counter increase ? When the reader doesnt do anything like no wallet on the phone or smth ?

The counter will increase as soon as the card is powered up by nfc field. Many things can happen for this particular counter number doesn’t make it to the lnbits. Just off the top of my head:

the reader may not read the link properly (the card is approached only very briefly)

the reader doesn’t know the link so it doesn’t follow it (maybe it is just s generic nfc reader that only shows it on screen)

the card is unintentionally read by a system reader before read again by a POS app

etc.

The counter will increase as soon as the card is powered up by nfc field. Many things can happen for this particular counter number doesn’t make it to the lnbits. Just off the top of my head:
* the reader may not read the link properly (the card is approached only very briefly)

* the reader doesn’t know the link so it doesn’t follow it (maybe it is just s generic nfc reader that only shows it on screen)

* the card is unintentionally read by a system reader before read again by a POS app

etc.

Thank you !!


Data Science With Python: Data Pre-processing

Description
Welcome to the 'DSWP' Team, good to see you here.
With this issue, readers will get introduced to core information to 'Data Pre-processing' along with sample code completely in an effective way.
To get assigned to this issue, add your serial numbers mentioned in the spreadsheet of "Data Science with Python", the approach one would follow and the choice you prefer (Documentation, Audio, Video). You can go with all three or any number of options you're interested to work on.
If you had referred any resources, add them up in "DS Resources". Similarly, if you had used datasets, include them in "DS Datasets".
Domain: Data Analysis and Visualization
Mentors Assigned: Dhruv Bajaj / Aishani Singh
Points to Note :
The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title should be the same. Include the issue number along with it.
Changes should be made inside the Datascience_With_Python/ directory & Datascience_With_Python branch.
Follow Contributing Guidelines & Code of Conduct before start Contributing.
This issue is only for 'GWOC' contributors of the 'DSWP' domain.
All the best. Enjoy your open source journey ahead. 😎
Domain
Datascience with Python
Type of Contribution
Audio, Video, Documentation
Code of Conduct

[ ] I follow Contributing Guidelines & Code of conduct of this project.

Issue assigned to @ayushi424 for documentation

Issue assigned to @deepthi1107 for video contribution


Problem with code from "Create Custom C# Module..." tutorial page

Does the code on this page work as it appears that it is intended?
In the Init method you call the module client's GetTwinAsync method, then pass the returned twin's Properties.Desired property to the OnDesiredPropertiesUpdate method, presumably to initialize the module with property values initially in the twin. The OnDesiredPropertiesUpdate method in turn attempts to read a specific property value from the passed-in TwinCollection.
The problem I'm encountering is that the call to GetTwinAsync returns essentially an empty twin, with the Properties.Desired collection containing 0 entries. This causes an out-of-bounds exception when OnDesiredPropertiesUpdate tries to access the "TempuratureThreshold" property. That exception is caught, but that means that the tempuratureThreshold variable is not initialized from the twin.
So, why does GetTwinAsync return an empty twin, and why does Init bother to explicitly call OnDesiredPropertiesUpdate when the Properties.Desired collection is empty?
Thanks.

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

ID: 181d5562-f8d7-9c59-85ea-09efbe397f3e
Version Independent ID: dbedd952-a050-286e-c951-4529ec8e87b8
Content: Tutorial create custom C# module - Azure IoT Edge
Content Source: articles/iot-edge/tutorial-csharp-module.md
Service: iot-edge
GitHub Login: @kgremban
Microsoft Alias: kgremban

Hi, @jeffbi, in step 10, this tutorial show you how to add module twin:

@jeffbi let us know if @SLdragon answered your question? Thanks!

Mostly, I think. But it appears that the JSON file is used only for deployment. How do I get an initial module twin when I'm debugging with VS Code, which is how I came across the empty twin in the first place?

Hi, @jeffbi , our iotedgehubdev 0.8.0 now is support read module twin:
https://github.com/Azure/iotedgehubdev
And this update will be integrated to Azure IoT Edge Extention in the next release.

We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


C Module Support Implementation using node module 'ffi'

I have made some slight modifications to the earlier implementation and moved the examples to :  https://github.com/vaishnav98/bonescript_ffiexamples  and provided a description there. Also added test-cases , hope those tests are ok, i don't have much experience writing test cases.

Coverage increased (+1.1%) to 37.054% when pulling 67f292c018785d59a9a14832e3bbd968a004a2de on vaishnav98:master into a7282d9bf64ebf6a315808ed1cd8daef835dc46b on jadonk:master.

Put examples into bone101/examples/extras/c-from-js/mraa or something like that.
Also, be sure to reference the issue for these pull requests.
https://github.com/beagleboard/bonescript/issues/13


Flow output is putting invalid spaces in array declarations

apollo-codegen generate ./queries/**/*.js --schema schema.json --target flow --output schema.flow.js -- addTypename outputs the following for arrays:
export type StringInputType = {|
  eq?: ?string,
  in?: ?Array< string >,
|};

Notice it should be ?Array<string> without the extra spaces.
Apollo codegen 0.16.5
Flow: 0.54

Try using the latest flow-modern target in newer releases, thanks! Manually constructing strings was really cumbersome and we've moved to working with ASTNodes that should print the correct syntax you're looking for


Data link is Broken

This link works: https://www.research-collection.ethz.ch/handle/20.500.11850/609681
You could consider swapping it -- I believe the dataset was obtained from Bunne et al.'s CellOT paper, correct?


Support thread creation looping

Quote 'Litmus: Running Tests against Hardware' (Alglave et al., 2011):
'Each of these tests consists in repeating r times the sequence of creating t threads, collectively running the litmus test s times, then summing the produced outcomes in an histogram.'
We currently create t threads and run them s times (see #2), but don't yet have a way of repeating this r times.  This seems like an obvious extra feature to add.

Added in d02e46d.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/932 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target.git

Docs Build status updates of commit 2d9ae23:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch Release_Archive_master_2021-06-25-07-46-38 has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


updated hyperlinking in readme

noticed that the hyperlinks for the "readme.md" navigation weren't all working. Corrected this :)

@JackFlexington Thanks, It's hard to notice those things upon many updates.

@JackFlexington Thanks, It's hard to notice those things upon many updates.


logrotateFrequency not working

It appears that the option is mis-spelled in the template for upstart and sysvinit as "logroateFrequency". I attempted to modify my local copy but was still unable to get the logs to rotate at "size 10k". Can you confirm/deny this is an issue?
This is my test run which is not rotating
forever-service install test3 --script testSql.js --logrotateFrequency "size 10k"

Environment
uname -a
Linux nodejs 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux

logrotate
logrotate 3.8.7 - Copyright (C) 1995-2001 Red Hat, Inc.

While trying to dig into logrotate, I found the config file (which I assume this would write to...?) and did not find any trace of test3.

@ssstuckey logrotate script is provisioned in /etc/logrotate.d/ directory, please check there.
As far as size based rotation is concerned look at http://serverfault.com/questions/480551/logrotate-not-rotating-file-after-file-size-exceeds-the-limit
Basically size rotation is not immediately, it is based on, when logrotate job is scheduled to be run. Check if this is what is causing the size based rotation to not work.

@arvind-agarwal Thanks! I was sure it wasn't going to work, but I copied logrotate from /etc/cron.daily to /etc/cron.hourly and sure enough it picked up the size settings fine.


Errors and warnings are not removed from the problems tab when closing the tab/editor containing them

Describe the bug
I would like to be able to use F8 to navigate between my repo's problems. The current problem I'm facing is that the problems list is polluted by github-actions warnings (that are wrong so I cannot fix them). Closing the file with the warning does not remove them from the list so I need to close my entire vs-code to clear them.
Even worse, if I open a diff, or if I open a previous revision of the file, it will add warnings for that revision.
To Reproduce
Steps to reproduce the behavior:

Take a workflow with warnings or errors and open it in an editor
Close the editor (by editor I mean the opened tab, not vscode itself)
The errors remain in the problems tab

Expected behavior
When I close the tab with the github workflow, I expect the warnings/errors to be removed from the list.
Screenshots

Errors remain when no editor/tab is opened.
Extension Version
v0.26.3

Same here, very annoying.

Ditto


Missing cd_ambient_conf.xml file

When I install create a DXA web application as described in Setting up a new ASP.NET MVC Web application and start it, the webapp will complain about the "cd_ambient_conf.xml".
Failed to load configuration file: C:\Users\me\SourceCode\example-dxa-stite\Site\bin\\config\cd_ambient_conf.xml

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: Sdl.Web.Delivery.Core.ConfigurationException: Failed to load configuration file: C:\Users\l19548828\SourceCode\example-dxa-stite\Site\bin\\config\cd_ambient_conf.xml

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Adding SDL DXA .NET 1.6\web\web8\web-ref\config\cd_ambient_conf.xml (from the DXA installation media) to the webapp will resolve the issue. I think this step is missed in the documentation, or in the example web application.
I found this issue on both DXA .NET 1.5 and 1.6, did not test on other versions.

Indeed, the step is missing in that topic. It is described here, though: http://docs.sdl.com/LiveContent/content/en-US/SDL DXA-v6/GUID-EF63A650-30A9-4DC6-907A-D3FCC742926D
For comments on the docs, please leave a comment on the SDL Documentation Portal.

Comment is added to Setting up a new ASP.NET MVC Web application

Documentation issue.

Facing the same issue


How to remove grey border around PDF?

Issue Description
I am trying to remove the gray border than the PDF Viewer renders (I'm on Android using expo)
Steps to Reproduce / Code Snippets
<PDFReader
source={{
uri: selectedSong,
}}
style={{
flex: 1,
padding: 0,
margin: 0,
}}
/>
Expected Results
I expect no border, but it still has a gray border around the entire PDF
Additional Information

React version: 16.13.1
React Native version: sdk-40.0.1
rn-pdf-reader-js version: 4.1.1
TypeScript version: 4.0.0

I am having the same problem, any luck yet?

I am having the same problem, any luck yet?

Use the withScroll prop

Use the withScroll prop

Use the withScroll prop

This doesn't work

I have also failed to remove the grey background. It may help if you really want to remove the grey background from the UI.
<PDFReader
 webviewStyle={{ margin: -26  }}
/>

I want to use the customStyle props to change the background for example. But the changes do not affect the display.


Documenting the context of a yielded block

I'm trying to document the fact that a method will execute its yielded block in a context other than itself. Simple example:
class MyClass
  def other_object
    @other_object ||= OtherClass.new
  end
  # I want to document the fact that this block will be used in an OtherClass instance
  def set_other_block &block
    @other_block = block
  end
  def run_block
    other_object.instance_eval &@other_block
  end
end

Right now my solution is to make up a tag called yieldself:
# ...
# @yieldself [OtherClass]
def set_other_block &block
# ...

Is there a way to do this with the existing tag architecture?

There is currently no builtin tag to describe this semantic. Using a custom @yieldself seems like a reasonable thing to do here.

Works for me. Thanks.


Animation Improvements

Collecting here the list of improvements related to the animation system we would like to see in our version 7:

[ ] Improved Animation Memory management (Draft https://github.com/BabylonJS/Babylon.js/pull/13434)
[x] Animation Blending
[ ] Animation Group Blending/Layering
[ ] Animation Sequencing
[x] Skeleton Retargeting (identical skeleton shape and identical bone hierarchy)
[ ] Skeleton Retargeting (different skeleton shape and identical bone hierarchy)
[ ] Skeleton Retargeting (different skeleton shape and different bone hierarchy)
[ ] Bones management helper (position in world space....)
[ ] Animation management helper (visual debugger without meshes....)

The issues will be refined in their own one once will start the next release.
Here is a list of related forum thread/issues this should be able to address:

https://forum.babylonjs.com/t/animations-storing-key-frames-in-typed-arrays/36566/18
https://forum.babylonjs.com/t/how-to-bind-separate-glb-file-such-as-cloth-etc-to-armature/37574
https://forum.babylonjs.com/t/usd-3000-reward-anyone-figured-out-retargeting-yet/36629/30
https://forum.babylonjs.com/t/additive-animations-distorted/37751
https://forum.babylonjs.com/t/usd-1000-reward-moving-bones-to-different-position/37929

Some other features might worth considering:
Interleaved animation data: https://github.com/KhronosGroup/glTF/issues/1864
EXT_animation_quantization: https://github.com/KhronosGroup/glTF/pull/1991
Resampling animation: https://github.com/donmccurdy/glTF-Transform/blob/main/packages/functions/src/resample.ts

What about supporting blending with Baked Texture Animations?

Where is the memory optimization now? Is it permanently out of the plan?

Memory optimization is a big job! It's not out of the plan, but it's not on the list of short-term features.

What about supporting blending with Baked Texture Animations?

I don't see how this can be done except by moving the entire animation system (or at least a significant part of it) to the GPU...

Pardon my noobness, so has this been integrated into Babylon version 7.1.0?  Does this mean when I load an animation with ImportAnimations and set the target node to the bone of some avatar then retargeting will now work without twisted bones?

Retargeting is one of the sub-task of #14963


Dock remains invisible if launched before any other application

Describe the bug
When nwg-dock is launched from the sway configuration file and no other applications are open, the dock remains invisible, even after one or more applications are launched. Removing the existing dock instance with pkill and reloading the sway config will cause the dock to appear as normal.
Additionally, if nwg-dock is launched in the sway configuration file with -x, the dock remains invisible but takes up a very large portion of the screen (much larger than the actual dock size).
To Reproduce
Steps to reproduce the behavior:

Add nwg-dock launch command to sway configuration file (i.e. exec_always nwg_dock).
Log out and log back in.
Launch any application that draws a window.

Expected behavior
The launched application should appear in the dock.
Screenshots

Desktop:

Fedora Linux 38
go 1.20.3
gtk-layer-shell 0.8.1-1

Sorry to be back so soon! This one is very easy to work around with pkill -f nwg-dock && nwg-dock -r -x, so please don't feel any sense of urgency ☺ Thanks so much!

Could you show me the command you start the dock with in the sway config file?

The launch command I typically use is exec_always nwg-dock -mb 6 -r -x -nows. Removing -x will make the huge gap at the bottom of the screen disappear (so it looks like the dock isn't running at all), but the behavior is the same in that the dock never appears after an application is launched. It looks like -nows is the culprit here—removing that flag will render the dock visible even when no applications with a window are running, so it appears correctly from the start, takes up the appropriate amount of space, and updates when an application is added or removed.
This is using the latest release, 0.3.4.

I have no idea what to say. It works as expected on my side. BTW: turning exclusive zone on (-x) only makes sense if use the dock in the Ubuntu-like way, e.g. like this:


Assessment overview bonus xp

Description
This pull request supports the front end PR which fixes a bug where no bonus XP assignments would display additional XP messages upon finalisation. This was done by adding earlySubmissionXp when render Overview.json.
Changed made

[X] Added earlySubmissionXp to Overview
[X] Changed test cases accordingly

coverage: 94.962% (+0.004%) from 94.958%
when pulling 48931ba1c3054ab2aff71d093efbd941c668d804 on DesSnowy:AssessmentOverviewBonusXp
into 749c5440107df5f040630fa4a16ed86e425edb70 on source-academy:master.

Corresponding frontend PR: https://github.com/source-academy/frontend/pull/2821

Hmm, could you investigate why merging master somehow resulted in failing tests?


Move numpy dep from optional to required

Fixes #160

@griffinmilsap or @pperanich , this should be the easiest "code review" of your lives.
While I'm willing to bypass the ->dev-> gitflow step for this, I don't want to bypass the review-required step unless it's an emergency. This is urgent, but not emergency.


(mongo) Session inside event handlers

Ensure nova and queries accept a "session" from transaction
Pass the "Session" to database collection events.
Tests to ensure all works.

Done.


CorruptedFrameException: data frame using reserved opcode 7

Expected behavior
Web socket connect and run
Actual behavior
I am able to handshake and connect but also getting below error every time, what could be the reason of it -
io.netty.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.handler.codec.CorruptedFrameException: data frame using reserved opcode 7
	at io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation(WebSocket08FrameDecoder.java:412)
	at io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.decode(WebSocket08FrameDecoder.java:229)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)

How can I avoid this exception? Is there a way to catch and log this exception.
Netty version
4.1.50.Final
JVM version (e.g. java -version)
Java 8

Please use the latest version of Netty (4.1.76.Final) as well as WebSocket (13).

Hi @hyperxpro, thank you for your suggestion, I tried the version, Netty (4.1.76.Final) but still facing the same error. By using this version I am not able to connect to websocket or I don't see handshaking happening.
Do I need to change any other dependency?

Can you capture packets with PcapHandler?

I tired capturing packets with wireshark, above error happens when TCP RST (resetting) packets comes in. I believe this exception happening at the time of my IdleStateHandler inside my handler's has overridden method channelRead()
Is there any way to handle this exception and log or check if the frame is not in correct format and ignore it.

Hello @hyperxpro , I found the issue it is because of the jar conflict. We were using some third party jar which also having the Netty jars which causes this issue. This is a old code so miss that change.
Thank you for your advice and help.

That is not the case. WebSocket08FrameDecoder has the following offending code:
     if (!(frameOpcode == OPCODE_CONT || frameOpcode == OPCODE_TEXT
                  || frameOpcode == OPCODE_BINARY)) {
                protocolViolation(ctx, in, "data frame using reserved opcode " + frameOpcode);
                return;
            }

If there is an opCode of 7 (which is unassigned based on the registry), this will result in an error. Based on the RFC, the opCode is unassigned but that doesn't mean we need to throw a protocol exception. A live example:
edge-chat.facebook.com using opCode 7. Therefore, you can't proxy websockets!
I think this should be fixed and prioritized. Otherwise, we'll all have our own version of the decoder!


Add publish targets option

Add an optional field called "publish_targets" in the add/remove
targets API calls. If no value is provided or it's set to true,
publishing of targets will happen the same as now: a subtask will
be started that on completion will have published the modified targets.
If it's set to false, publishing of the targets file changes won't be
published (meaning there won't be any changes in the metadata files
as well) until specifically requested with the newly introduced
API call "api/v1/targets/publish".
This feature is was originated in Task:
https://github.com/vmware/repository-service-tuf-worker/issues/175
discussion.
Additionally, give add_task_id_to_custom a default value.
Close https://github.com/vmware/repository-service-tuf-api/issues/248

Codecov Report
Base: 93.68% // Head: 93.77% // Increases project coverage by +0.08% :tada:

Coverage data is based on head (2a1dbe4) compared to base (88c53a9).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #254      +/-   ##
==========================================
+ Coverage   93.68%   93.77%   +0.08%
==========================================
  Files          16       16
  Lines         602      610       +8
==========================================
+ Hits          564      572       +8
  Misses         38       38

Impacted Files
Coverage Δ

repository_service_tuf_api/targets.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Could you also update the example in tests/data_examples/targets/payload.json to include add_task_id_to_custom and publish_targets?

As I mentioned above, I'm not in favor of adding the add_task_id_to_custom and publish_targets in the payload.json for the tests. IMHO, we should keep only the required fields. The reasons are:

We are also testing if nobody changed the parameter to not optional
We are testing the real user flow, inserting the parameters in the payload.

Could you also update the example in tests/data_examples/targets/payload.json to include add_task_id_to_custom and publish_targets?

As I mentioned above, I'm not in favor of adding the add_task_id_to_custom and publish_targets in the payload.json for the tests. IMHO, we should keep only the required fields. The reasons are:
* We are also testing if nobody changed the parameter to not optional

* We are testing the real user flow, inserting the parameters in the payload.

Oh sorry, although I read the previous comment I forgot about it.
You are right, we could have had the optional fields and then pop them to test if the parameters are optional, but then it would not be as close to the real user flow.
And I see, this way you are coupling documentation and testing making sure that whatever is documented is the same thing being tested, which is pretty nice!


Docs onnx tutorial

add documentation for onnx encoder

Looks good! Let's wait for 3.0 to update the executor and verify that the tutorial works


Release: Gateway 2.8

Summary
Release roll-up PR for Gateway 2.8.
Reason
Gateway 2.8 release.
Testing
TBA

Went through broken link checker logs and fixed all the links that are actually broken. The check will keep failing, as we're linking to a blog that doesn't yet exist, so I tagged it as manually validated.


Trouble executing with batch using IncludeFile

I have a flow that essentially just does IncludeFile() twice.
class SomeFlow(FlowSpec):
    file1 = IncludeFile(
        "file1",
        required=True,
        is_text=False,
    )
    file2 = IncludeFile(
        "file2",
        required=True,
        is_text=False,
    )

    @batch
    @step
    def start(self):
        print(self.file1)
        print(self.file2)
        self.next(self.end)

    @step
    def end(self):
        print('end')

I try to trigger this with python some_flow.py run --file1 file1.json --file2 s3://my-bucket/file2.json.
This gives the following stacktrace:
Metaflow 2.2.3 executing SomeFlow for user:aachkar
    Internal error
Traceback (most recent call last):
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/metaflow/cli.py", line 883, in main
    start(auto_envvar_prefix='METAFLOW', obj=state)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(args, kwargs)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 1257, in invoke
    sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 700, in make_context
    self.parse_args(ctx, args)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 1048, in parse_args
    value, args = param.handle_parse_result(ctx, opts, args)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 1623, in handle_parse_result
    value = self.full_process_value(ctx, value)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 1965, in full_process_value
    return Parameter.full_process_value(self, ctx, value)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 1589, in full_process_value
    value = self.process_value(ctx, value)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 1579, in process_value
    return self.type_cast_value(ctx, value)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 1568, in type_cast_value
    return _convert(value, (self.nargs != 1) + bool(self.multiple))
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/core.py", line 1565, in _convert
    return self.type(value, self, ctx)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/click/types.py", line 46, in __call__
    return self.convert(value, param, ctx)
  File "/Users/aachkar/Library/Caches/pypoetry/virtualenvs/cv-workflows-rEYCzLQU-py3.8/lib/python3.8/site-packages/metaflow/includefile.py", line 229, in convert
    param_ctx = context_proto._replace(parameter_name=self.parameter_name)
AttributeError: 'NoneType' object has no attribute '_replace'

This fails if I make both files local file paths, one an s3 path and the other a local file path, but it works if both are s3 paths.

Yes, we have a PR out for this issue. We will be making a new release of Metaflow soon.


Reopening: Queue priorities & block_for shouldn't be used together

Laravel Version
All versions since 5.6 up to 9.19 and 11.9 at the moment
PHP Version
8.x
Queue driver
Redis
Description
This is a reopening of long standing issue. Original issue: #30728 was closed due to lack of confirmation if the issue exists in currently supported versions.  I've tested actual ones, and the issue is still there up to the current 11.9.x.
For the convenience, copying essential parts of the original issue below:
If you use block_for and also utilize queue priorities, the worker will block on each queue sequentially. This could result in much longer queue processing times.
// config/queue.php

'redis' => [
   'driver'      => 'redis',
   'connection'  => 'queue',
   'queue'       => 'default',
   'retry_after' => 90,
   'block_for'   => 5,
],

Steps To Reproduce
For example, suppose you set block_for=5 and spawn a worker like this:
php artisan queue:work --queue=high,medium,low,default --sleep=0

The worker will block on the high queue for 5 seconds, then the medium queue, then the low queue, and finally the default queue. This means that it could take up to 15 seconds before a job in the default queue is picked up, even if it is the only job in any of the queues.
More seriously, if you set block_for=0 the worker will indefinitely block on the high queue, and the other queues will never be reached.
Solution:
I'm not sure if this is a bug, but I initially assumed that the worker would block on all the queues set for the worker and immediately pick up a new job in any of them.
Perhaps all that's needed is an addition to the documentation recommending that the block_for setting only be used when workers listen to a single queue...

Does the same apply when using Horizon, since the sleep property is going to be at the supervisor level?

@MohammadStemless Horizon is not used. The problem is in a stock Laravel from the repo and reproducible without supervisor.
What do you mean by sleep property? If you talk about --sleep CLI option, it makes no difference:
# config/queue.php:71
'block_for'   => 1, // Default is 0

$ php artisan queue:work --queue=high,default --sleep=0|grep DONE
  2024-06-01 12:26:22 App\Jobs\TestJob ....................... 6.83ms DONE
  2024-06-01 12:26:23 App\Jobs\TestJob ....................... 1.39ms DONE
  2024-06-01 12:26:24 App\Jobs\TestJob ....................... 1.25ms DONE
  2024-06-01 12:26:26 App\Jobs\TestJob ....................... 1.27ms DONE

Same 1 second lag.
$ php artisan queue:work --queue=default --sleep=0|grep DONE
  2024-06-01 12:31:10 App\Jobs\TestJob ....................... 5.65ms DONE
  2024-06-01 12:31:10 App\Jobs\TestJob ....................... 1.12ms DONE
  2024-06-01 12:31:10 App\Jobs\TestJob ....................... 1.25ms DONE
  2024-06-01 12:31:10 App\Jobs\TestJob ....................... 1.15ms DONE

No lag.

“shouldn’t be used together” doesn’t sound right at all. It’s completely fine to use block_for and dequeue from multiple queues.
Closing this since it's not a bug.

@themsaid i'm not sure is my explanation and original author's is not enough, but please let me try explain the issue again.
In your own video how "block_for" works https://x.com/themsaid/status/1232896655982284801 you say that: "When you open a connection with Redis, and if you couldn't find any jobs, wait for 5 seconds, before sleeping and starting (process again)".
In the case:

have a multiqueue(!!!) watch, for example, --queue=high,default
"block_for" => 5 is set to save CPU on no load
send 100 jobs batch to default queue

Expected result:
100 jobs completed in 1 sec. Since there are jobs in the queue and worker can find jobs in Redis, "block_for" should not trigger.
Actual result
100 jobs completed in 500 secs. "block_for" triggers even there are jobs to do.
When it does not happen
If a single queue is used there is no such problem and "block_for" works as expected.
Workaround
What original author says, and what we had to do as well is resetting block_for to null to make jobs work at a designed performance, with a fallback and higher CPU usage.

We have dropped "block_for" setting from the project when ended up with 500.000 jobs in several queues. It does not work as it should. And I see a bizzare practice closing unresolved issues by Laravel team.

+1


Replace chdir to /var/empty with secure creation of tempdir and later removal

Replace chdir("/var/empty") with chdir(emptydir) where emptydir is securely created by tempfile module. After actions complete the dis is removed with shutil.rmtree.
This way the code becomes a bit more portable and not so dependant on specific dir existence (LXC being one of the cases, ubuntu the other, and my specific case the third)
PS: The diff is a bit confusing but in reality the chdir call (and some code after it which i believe is protected by it) is wrapped in
  try:
    ....
  finally:
    try:
    ....
    except:

Did you have any chance to test this.

Oh sorry I've totally forgotten this. Will test it after work.


How to handle against a route without component?

I want to log out my user through /logout/ url, but there doesn't exist any component available—just a JavaScript function such as user.logout().

why do you need a route for that? why not just use:
<button onClick={this.handleLogout}>Logout</button>

Yeah, I went for that approach. Thanks! :+1:


chore: revert missing gitURL validation check

#596

:tada: This PR is included in version 6.41.0 :tada:
The release is available on:

GitHub release
v6.41.0

Your semantic-release bot :package::rocket:


que: 404 Domain not found

Hi there,
I'm currently attempting to setup your tool using the Serverless Application Repository Cloudformation stack. I've followed your documentation and setup Automated Provisioning, Google Service Account, enabled Domain-wide delegation and provided the necessary OAuth Scopes mentioned in another Issue. Upon running the tool I'm receiving the following error:
cannot sync groups and their members: error getting groups from the identity provider: idp: error listing groups: googleapi: Error 404: Domain not found., notFound: withStack
null

I'm wondering if this is something you've encountered before, and if so is there some obvious misconfiguration involved? I'm sure I've provided the correct values for the application parameters, and there's not too much more configuration to get wrong!
Thank you :)

Hi @harrywm , Looks like the user email you need to authorise in the google service account credential is not the same user email you are using for.
I mean, Google API mechanism is weird, but the email of the user must match with the domain and user email you use for the service account and also have the permission requested by the program:

Amazing thank you! Got all the different params mixed up in my head a bit i think!
Thanks again, and for the quick response!


Images Gulp task references source files with .scss extension

I was just browsing the Gulp tasks in prep to use Airframe for the first time and noticed this:
gulp.watch( 'src/img/**/*.scss', [ 'images' ] );
Doesn't seem right, but I could be overlooking something. Apologies if I have ;)

You are very correct, thanks! We just pushed a fix at d37bf54fb565d66547a533a4554eb1e69df830be, and bumped to v1.0.0 because flexbox :)


3D Dice by @programmingninjas

Issue #90

@programmingninjas we aren't accepting React Projects

@MohitNamdev22 why was this issue assigned to me then? I mentioned the tech stack used in the project. Never mind will work on something else


LogicException  : Key path does not exist or is not readable

Describe the bug
When trying to run the command php artisan route:list I get the subject error
To Reproduce
Steps to reproduce the behavior:

install laravel
run php artisan grafite:cms-setup
run php artisan route:list
See error

Expected behavior
Should get a list of routes
Desktop (please complete the following information):

OS: Docker Linux

Additional context
Full Error

LogicException  : Key path "file:///var/www/html/storage/oauth-private.key" does not exist or is not readable
at /var/www/html/vendor/league/oauth2-server/src/CryptKey.php:45
41|             $keyPath = 'file://' . $keyPath;
42|         }
43|
44|         if (!file_exists($keyPath) || !is_readable($keyPath)) {

45|             throw new \LogicException(sprintf('Key path "%s" does not exist or is not readable', $keyPath));
46|         }
47|
48|         if ($keyPermissionsCheck === true) {
49|             // Verify the permissions of the key

Exception trace:
1   League\OAuth2\Server\CryptKey::__construct("file:///var/www/html/storage/oauth-private.key")
/var/www/html/vendor/laravel/passport/src/PassportServiceProvider.php:234
2   Laravel\Passport\PassportServiceProvider::makeCryptKey("oauth-private.key")
/var/www/html/vendor/laravel/passport/src/PassportServiceProvider.php:203
Please use the argument -v to see more details.

The cms-setup will only work on an a fresh Laravel application it will not likely work if its being added to an existing app. PassportServiceProvider is not a default portion of the Laravel framework.


Memory machine: Only use the necessary size

Builds on #1666
Now, the memory machine is downsized to the smallest possible size:
$ MAX_DEGREE_LOG=10 cargo run -r pil test_data/asm/dynamic_vadcop.asm -o output -f --field bn254 --prove-with halo2-mock-composite
...
Running main machine for 1024 rows
[00:00:00 (ETA: 00:00:00)] ░░░░░░░░░░░░░░░░░░░░ 0% - Starting...                         Found loop with period 1 starting at row 100
[00:00:00 (ETA: 00:00:00)] ████████████████████ 100% - 280269 rows/s, 4205k identities/s, 94% progress
Resizing variable length machine 'Secondary machine 0: main_arith (BlockMachine)': 1024 -> 32 (rounded up from 3)
Resizing variable length machine 'Secondary machine 1: main_memory (DoubleSortedWitnesses)': 1024 -> 32 (rounded up from 4)
Witness generation took 0.005317875s
Writing output/commits.bin.
Instantiating a composite backend with 5 machines:
...
== Proving machine: main (size 1024), stage 0
==> Proof stage computed in 15.581958ms
== Proving machine: main__rom (size 16), stage 0
==> Proof stage computed in 800.708µs
== Proving machine: main_arith (size 32), stage 0
==> Proof stage computed in 506.25µs
== Proving machine: main_byte2 (size 65536), stage 0
==> Proof stage computed in 84.450916ms
== Proving machine: main_memory (size 32), stage 0
==> Proof stage computed in 719.375µs
Proof generation took 0.102423415s
Proof size: 88 bytes
Writing output/dynamic_vadcop_proof.bin.

Rebased onto main


Add tests for new ApplicationService functions

@tomasfelcman
FYI included the get_names and update_or_create functions in the Applications test case


Bug: The data returned by the createTextMessage method of version 3.0 js sdk is an empty string

What happened?

What did you expect to happen?
None
How can we reproduce it (as minimally and precisely as possible)?
None
Anything else we need to know?
No response
version

```console
$ {name} version
# paste output here
```

Cloud provider

OS version

```console
# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here
# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here
```

Install tools

fixed in v3.1.0


How to pass the whole response body to the next backend?

Environment info:

KrakenD version: 2.0.6

Describe what are you trying to do:
I am trying to build the endpoint which will sequentially go to Service A, get the JSON response, and then pass the whole response to Service B (whether in body using POST or query string using GET).
I've tried to use Martian, but there is no access to response from the previous backend call; and Lua script (pre-backend), but having the same problem.
Another idea I had is to pass the whole response in query using service-b/endpoint?data={resp0_data} but it doesn't pass the data attribute as string, but as map.
Am I missing something in documentation which would give access to the response from a previous backend or help to stringify the part of response to be passed as query param?

The current implementation of the sequential is meant to take a specific attribute from the response of A and inject it in the URL of the service B.
The body is not cloned for injection in the next service B, so what you are trying to do is not currently possible


hosting:core module config

@shirhatti  config needs to live it it's own doc. Please review.

@Rick-Anderson I just made a couple of changes. Please review

@shirhatti  looks great. Can you give me the squirrel?

I thought you are going to add in the app_offline stuff as well?

@shirhatti sorry, added app_offline (https://github.com/aspnet/Docs/issues/1189 wasn't linked to this).

@Shirhatti add note you must create log file and app_offline. Anything else?

@Shirhatti added note you must create log file and app_offline. Anything else?

I came to the party a little late, but I hope any of those little bits are useful. :smile:
Happy Memorial Day! :rocket: :guitar: :airplane: :tada: :balloon:

@Rick-Anderson @danroth27 I made a couple more changes to configuration reference as well. I'm happy with the technical accuracy of the doc now.
I assume @Rick-Anderson will handle merging it in?

I'm happy with the technical accuracy of the doc now.

@shirhatti  is that a squirrel?

@shirhatti  I'll need help merging
D:\github\8\docs [rick-and-coremod-config ≡]> git rebase -i master
error: could not apply 6ac0715... hosting:core module config
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
Could not apply 6ac07158488f36b5fa776294a4745fc6af5b829e... hosting:core module config


⚠ Digital Ocean - https://status.digitalocean.com/ has degraded performance

In 976fef3, Digital Ocean - https://status.digitalocean.com/ (https://status.digitalocean.com/api/v2/status.json) experienced degraded performance:

HTTP code: 200
Response time: 148 ms

Resolved: Digital Ocean - https://status.digitalocean.com/ performance has improved in 6105606.


Better to have a navigation tab to move the Announcements acording to the priority

Subject of the issue: Better to have a navigation tab to move the Announcements acording to the priority
Describe your issue here.:For user friendliness better to have a navigation tab to move the Announcements acording to the priority
Your environment

version of your python
which browser and its version : Firfox
OS Type (iOS/Android/Linux/Windows): Linux

Steps to reproduce
Tell us how to reproduce this issue. Please provide a working demo as a GIF, if possible.

Expected behaviour
Tell us what and how exactly is it supposed to  happen
Actual behaviour
Tell us what happens instead or what went wrong

@dileepkp3112 - ie from the existing tags to buttons or links are suggested ?

According to priority tag. We can navigate different type of information easily.


Add 'notify' and 'replicate' listener modes to config

...and add unit tests for replicate mode

test output for dc7d6c6:
--- PASS: TestVersionMigration (0.00s)
    --- PASS: TestVersionMigration/12.6To12.6replicate (21.22s)
    --- PASS: TestVersionMigration/12.6To12.6 (31.15s)
    --- PASS: TestVersionMigration/custom11To11 (31.69s)
    --- PASS: TestVersionMigration/9.5To9.6 (32.79s)
PASS
ok      github.com/perangel/warp-pipe/tests/integration 33.044s

Closing as our approach has moved to use different tooling

Closing as our approach has moved to use different tooling


[Menu Entry Swapper] GotR: add option to leftclick take 10 uncharged cells

Being able to stock up on uncharged cells by left clicking would be great qol.
Cheers

Duplicate of #14788


Updated Kubevious Version

Updated Kubevious to latest v1.0.9
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/do-e2e-tests


fix(material/checkbox): refactor to depend on @angular/material/core/tokens

Merging this one in as discussed over DM.


URL Attribute for Colum value to be a Link (like EditLink but for custom URL)

Hi,
I'm trying to URL encode the value of a Field "Company Website", I tried to find an Attribute but with no success.
Is it even possible without the use of custom scripting?

Try to declare a behaviour https://volkanceylan.gitbooks.io/serenity-guide/content/tutorials/multi_tenancy/using_serenity_service_behaviors.html

I think he looks for a formatter @VictorTomaili
It's not possible without writing a format function or formatter.
    public class UrlFormatter : ISlickFormatter
    {
        public string Format(SlickFormatterContext ctx)
        {
            return "" +
                Q.HtmlEncode(ctx.Value) +
                "";
        }
    }

Add this, transform T4 files, and now you have a UrlFormatter.

Ow sorry i dont see title well. Behaviour is when save the link to database with url encoding.

1.9.2 has this formatter now.


Django expressions

Codecov Report

Merging #84 into master will decrease coverage by 0.52%.
The diff coverage is 61.76%.

@@             Coverage Diff              @@
##             master      #84      +/-   ##
============================================
- Coverage     76.06%   75.53%   -0.53%
- Complexity      239      243       +4
============================================
  Files            53       54       +1
  Lines           990     1022      +32
  Branches        340      355      +15
============================================
+ Hits            753      772      +19
- Misses           52       61       +9
- Partials        185      189       +4

Impacted Files
Coverage Δ
Complexity Δ

.../security/validators/DjangoSafeStringInspection.kt
90.9% <100%> (ø)
3 <0> (ø)
:arrow_down:

src/main/java/security/Checks.kt
93.75% <50%> (-1.91%)
37 <1> (+1)

...main/java/security/helpers/QualifiedNameHelpers.kt
70.58% <50%> (-2.75%)
6 <0> (ø)

.../security/validators/DjangoExpressionInspection.kt
60.71% <60.71%> (ø)
3 <3> (?)

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 dfd5cf3...7841796. Read the comment docs.


Improve links/actions section on term genes list pages

I think this looks a bit messy.  I'm about to decrease the gap between "External links" and "Actions" because I think there's too much.

yep, go for it....

I made that change a while ago.


Combine error taming, rich assert, and console virtualization

Fixes #440

Hi @kriskowal this is ready for review. However, in getting here, this got rather large. If you'd like, we should discuss how to break it up into reviewable-sized chunks.

This is a partial review. I am still digesting.

Capturing out-of-band feedback: I’m recommending that we use an API like
} catch (error) {
  assert.note(error, details`number too small ${num}`);
  throw error;
}

(Which I believe would be more palatable than logToConsole(...asLogRecord(...)))
Recommending that we use the catch-and-rethrow in SES module loading as a proving ground for this, and as an example of usage in this change.
I retract my suggestion that we use the term cause (in favor of using note), since I believe there’s a separate need for that term for in-band error annotation, e.g., new Error('Could not find spoon', networkErrorThatCausedFailureToFindSpoon), where code can catch and programmatically inspect the cause chain to make relevant recovery decisions (like whether to retry).

I’m intrigued by the idea that the assertion library would provide “progressively enhanced” behavior depending on whether the console in scope is tamed or untamed. On the one hand, emitting the annotations to the debug system is good. On the other hand, reporting them to the untamed console, regardless of whether they’re later recovered, is a nightmare developer experience.
I will look more closely at this change. I suspect that the untamed case would need a mechanism for correlating related log messages, perhaps using a sequential identifier.

Ready for review!

Adding @warner and leaving @michaelfig as optional reviewers. Only review from @kriskowal is critical.

This is a partial review. I am still digesting.

Capturing out-of-band feedback: I’m recommending that we use an API like
} catch (error) {
  assert.note(error, details`number too small ${num}`);
  throw error;
}

(Which I believe would be more palatable than logToConsole(...asLogRecord(...)))

Done.

Recommending that we use the catch-and-rethrow in SES module loading as a proving ground for this, and as an example of usage in this change.

Still TODO. After this PR is merged but before integration?

I retract my suggestion that we use the term cause (in favor of using note), since I believe there’s a separate need for that term for in-band error annotation, e.g., new Error('Could not find spoon', networkErrorThatCausedFailureToFindSpoon), where code can catch and programmatically inspect the cause chain to make relevant recovery decisions (like whether to retry).

Done.

Ready for review again. For assert.js and console.js, I recommend reviewing the whole files rather than the diffs.

For assert.js and console.js, I recommend reviewing the whole files rather than the diffs.

Nevermind. I squashed and both modules are new compared to master, leaving little choice but to compare entire files. My apologies; I should have squashed less aggressively.

Back to draft until it is again ready for review. Please spend no more time reviewing the current state.

Ready for review again! Includes new design doc at https://github.com/Agoric/SES-shim/tree/console/packages/ses/src/error


Update the authenticate function in the Dingo\Api\Auth\JWTProvider

Fixed the authenticate function according to "tymon/jwt-auth": "0.4.*" library

See #377 and #369

I've now fixed this. Will tag soon.


Updating of template version editor

Is there a way to patch my template editor type.
Code Snippet

   const data = {
      editor: 'design', // I would like to update this field
      html_content: '
hello
',
      subject: 'sample',
    };
    const patchRequest = {
      body: data,
      method: 'PATCH',
      url: `/v3/templates/${dynamicTemplateId}/versions/${version}`,
    };

Exception/Log
UnhandledPromiseRejectionWarning: Error: Bad Request

Technical details:

sendgrid-nodejs version:  "@sendgrid/client": "^7.4.2"
node version: v10.18.1

Closing due to inactivity. Please open a new issue if you still need help.


Hear Our voice, the recaptch has been tired us frequentlly asks when we use famuse ip

when we use ip pf vpn proviider google search redirect us to recaptch many many times in day , we are boring and exauhsted with this action of google, we are not bot. you must create other method to recognize bot from us we are login in in google chrome how to we can be a bot ... you have chrome how you can not understand we are writign in it .
please stop this doing recaptch

dont tell it is not our bussiness

I have to add that this pose a threat to privacy as recurring reCaptcha discouraging people from using secure way to browse internet, which can be a life threatening situation in countries that suppress freedom of speech, and directly violating Google's principle of "Do no Evil".
Even Cloudflare now give in to give us one way puzzle and hCaptcha do not target Tor or VPN users. Only Google thinks it is appropiate to continue this human right violating custom.


When navigating from one site to another, webparts are loaded 3 times on landing page

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
When i navigate from a site to another, on the arrival page, the webpart should load only once...
This is really annoying because we have pages with webparts doing some pretty heavy data loading and which are accessed nearly exclusively from one site to antoher...
Observed Behavior
When i navigate from a site to another, on the landing page, the webpart is loaded 3 times (entirely recreated 3times, i put a log in OnInit function and it is showed 3 times).
If i navigate from one page to another on the same site, the webaprt is only loaded once.
Steps to Reproduce
Assuming you have a webpart with a console log on the oninit method, juste put it on a page.
Then go on ather SP site and add a link to the previous page.
Click on the link and watch your log beeing shown 3 times...
Thanks for your contribution! Sharing is caring.

After a few more tests, it seems it is even worse than i initially thought...
It seems that 3 instances of the webpart are kept in the memory and every user action on the webpart is done 3 times !!!
When navigating back and forth from the page to another site, the browser ends by not responding at all...

Please provide your key code and project configure infomation.

helloworld.zip
Hi, you can find enclosed a helloworld sample spfx webpart with just a onInit method added.
I tested it with two modern communication sites (let's call them 'site A' and 'site B');
I created a page on 'site A' called page1.aspx and put the webpart on this page.
Then i went to site B and added an html link to page1.aspx. When a navigate throgh the link, the webpart is loaded 3 times (the onInit log appears 3 times).
I then added a second link on site B but this time to home.aspx of site A and also added a link on home.aspx of site A to page1.aspx.
When i navigate from 'site B' to home.aspx of 'site A' and then from that page to page1.aspx, the webpart is only loaded once...
Does that cover what you asked?

I can confirm this behavior. But in my case, the onInit (and also the render method btw....) gets called twice and not three times. Which of course is still too much. This only happens during page transition, not when reloading the full site via F5 in the browser for example.

Interesting. I've got only one call from my webpart.
I've used webpart react template and add onInit into the project.
Then deploy the project into the SPO.
Install the webpart on the classic page on Site A
Create a Link on Site B Home page.
Click the link create on Site Home page and direct to Site A
Here is the screenshot of developer tool.
I guess is that bug on modern site, and I'm using classic site?


MAINT: add year/name to license

Coverage increased (+0.5%) to 86.405% when pulling 98bd01118f8241d5f63f3e469ddd3441c4fed0e0 on add-license-year into 13b64e8e187eaf76d34eb74b945c168f58922c4b on master.


Expressions

[ ] boolean and arithmetic expressions (#18)
[ ] casts (#19)
[ ] blocks (#21)

I think we are ready to start spec'ing expressions. If anyone wants to pick an expression and open an issue spec'ing it, now is the time! Please add to this tracking issue if you do.


Kestrel Error -97 EAFNOSUPPORT

I'm using a Raspberry Pi 2 updated to the latest Rasbian and Mono. After upgrading from beta8 to RC1-update1, whenever I try to run dnx web from the HelloMVC example I see this error:
Microsoft.AspNet.Server.Kestrel.Networking.UvException: Error -97 EAFNOSUPPORT address family not supported
  at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.Check (Int32 statusCode) <0x7135e258 + 0x00044> in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.tcp_bind (Microsoft.AspNet.Server.Kestrel.Networking.UvTcpHandle handle, Microsoft.AspNet.Server.Kestrel.Networking.sockaddr& addr, Int32 flags) <0x713460c8 + 0x0004f> in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.Networking.UvTcpHandle.Bind (Microsoft.AspNet.Server.Kestrel.ServerAddress address) <0x713626d0 + 0x00123> in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.Http.TcpListener.CreateListenSocket () <0x71361cb0 + 0x000a3> in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.Http.Listener+<>c__DisplayClass5_0.<StartAsync>b__0 (System.Object _) <0x71361b98 + 0x0003f> in <filename unknown>:0

I tried reinstalling libuv to no success. Any help would be greatly appreciated, thank you.

I've found a work around. It seems this happens because, by default, Raspbian doesn't support or enable IPv6, and Kestrel fails inelegantly when IPv6 isn't present. By following [these instructions] (http://weblog.aklmedia.nl/tag/raspberry-pi/), I enabled IPv6 and everything works, but I think Kestrel really should be able to handle a lack of IPv6 without just crashing.


fix: auto update + copy contract artifacts to boxes from noir-contracts

I didn't know we were already doing this for account contracts - we can avoid manually updating the box ABI/artifacts!

Looks like we've duplicated the contract source files and are copying the artefacts from noir-contracts while the "real" contract source files are still in boxes?

Maybe change the toml files in boxes to contain relative paths. We are already modifying the paths in the unbox command so it should only require small adjustment. And add a bootstrap script to boxes to rebuild the artefacts all at once. Should also try to run the compile script in CI, so that the job will fail if a contract doesn't adopt a breaking change in aztec.nr or noir. Will be great if we can make the job fail if the artefacts are not being updated. But will have to spend some time to figure out the best way to do that.

ok seems reasonable.  updating the Nargo.toml and added a script to copy the source code, gotta think about detection "missed recompilation" in CI

The point of updating the paths in Nargo.toml is that we can just compile from there. So we don't have to copy the source code to noir-contracts and then copy it back to boxes.

ah OK, I thought it was to try to do a last minute compile and check results against the copied artifacts.  remove the link to noir-contracts then, and just do everything in boxes.  i think this will revert from kebab-case back to UpperCamel, because the noir-cointracts output script changes the naming to kebab


Document deployment instructions

Deploying to Kubernetes via Helm should be documented.
Especially, we need to document configuration of ports, hostnames, secrets etc.

Fixed in 0.1.13.


[Hub Generated] Publish private branch 'mengai/cm-vnext-image'

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
Data Plane API - Pull Request

API Info: The Basics
Most of the information about your service should be captured in the issue that serves as your API Spec engagement record.

Link to API Spec engagement record issue:

Is this review for (select one):

[ ] a private preview
[ ] a public preview
[ ] GA release

Change Scope
This section will help us focus on the specific parts of your API that are new or have been modified. Please share a link to the design document for the new APIs, a link to the previous API Spec document (if applicable), and the root paths that have been updated.

Design Document:
Previous API Spec Doc:
Updated paths:

❔Got questions? Need additional info?? We are here to help!

 Contact us!
The Azure API Review Board is dedicated to helping you create amazing APIs. You can read about our mission and learn more about our process on our wiki.

💬 Teams Channel
💌 email

Click here for links to tools, specs, guidelines & other good stuff
Tooling

Open API validation tools were run on this PR. Go here to see how to fix errors
Spectral Linting
Open API Hub

Guidelines & Specifications

Azure REST API Guidelines
OpenAPI Style Guidelines
Azure Breaking Change Policy

Helpful Links

Azure DevTools Wiki

The PR is created based on the updates in the private branch. The updates in the PR has already been reviewed and approved with this PR Azure/azure-rest-api-specs-pr/9275

For SpellCheck, I saw most errors were from package-lock.json, and in other services merged recently(like OpenAI), there are no package.json and package-lock.json, so I removed these two files from my PR.
For LintDiff, there are mainly two kinds of errors:

“OperationIdNounVerb”: In our swagger there are multiple kinds of resources, if we use Noun_Verb, that would be hard to distinguish different resources, and SDK is good with these names, so I tend to ignore this error.
“AvoidAnonymousTypes”: I think we have no way to fix it now, since the swagger is generated by TypeSpec and we used standard resource operation here, nothing we could change for the input of list operations.


Remove unneeded user mode in R script

Now that we are installing texlive to the home directory there is no
need to force user mode.
@BanzaiMan Could you deploy this to staging?

@BanzaiMan could you deploy this to staging, this PR contains a fix for a bug (https://github.com/jimhester/travis-build/commit/9d7599cc125883250fedabf25984192d4bf8cf3b#diff-5b7e1aa01f1c6f058df6e0b9e2486c62R381) that is causing the R builds on staging to fail unconditionally.

@jimhester Sorry about the delay. This has been deployed to staging.

@BanzaiMan No worries, https://github.com/travis-ci/travis-build/commit/27e3017ad1ec9c186ce99ee5574b3bfc74044ac8 puts more of the build output in folds. Could you deploy it to staging when you can, thanks!

@a054622 has been deployed to staging.


Unexpected % Appended To Param Value.

I'm working through Let's Go Further for the second time. I'm using the Flow router this time. I'm on chapter 2 of the book and I've built out 3 basic routes.
package main

import (
	"net/http"

	"github.com/alexedwards/flow"
)

func (app *application) routes() http.Handler {

	// initialize a new router (flow router from Alex Edwards)
	router := flow.New()

	// Routes --------------------------------------------- //
	router.HandleFunc("/v1/healthcheck", app.healthcheckHandler, "GET")
	router.HandleFunc("/v1/widgets", app.createWidgetHandler, "POST")
	router.HandleFunc("/v1/widgets/:id", app.getWidgetHandler, "GET")

	return router

}

Here's my getWidgetHandler function:
func (app *application) getWidgetHandler(w http.ResponseWriter, r *http.Request) {

	// get the id value as a string.
	stringId := flow.Param(r.Context(), "id")

	fmt.Fprintf(w, "id: %s", stringId)

}

I sent the following curl request:
curl localhost:4000/v1/widgets/123
I would expect to get the following output:
id: 123
However, I'm getting:
id: 123%
Oddly enough, if I use fmt.Println(stringId) the output is 123.
Am I doing something wrong? Or is this a bug?
Thanks,
Chris

For reference, I rebuilt the code above with httprouter and the % character is not there.

@christhornham I'm afraid that I can't replicate this problem.
package main

import (
    "fmt"
    "log"
    "net/http"

    "github.com/alexedwards/flow"
)

func main() {
    mux := flow.New()

    mux.HandleFunc("/v1/widgets/:id", getWidgetHandler, "GET")

    err := http.ListenAndServe(":2323", mux)
    log.Fatal(err)
}

func getWidgetHandler(w http.ResponseWriter, r *http.Request) {
    stringId := flow.Param(r.Context(), "id")
    fmt.Fprintf(w, "id: %s", stringId)
}

$ curl localhost:2323/v1/widgets/123
id: 123

When you run your code, what is the length of stringId for /v1/widgets/123? If the length is 3, but fmt.Fprintf(w, "id: %s", stringId) is printing id: 123% then it suggests something is amiss either in the line fmt.Fprintf(w, "id: %s", stringId) or elsewhere in the program.
Do you still have the complete code that you can share?

I rebuilt a copy of the code with the error.
Here's a github link to the project: https://github.com/christhornham/flow-router--
Note: I've made some progress since posting this issue. Please excuse all of the code that I commented out.

Thanks. When I clone that repo and run the code:
$ git clone git@github.com:christhornham/flow-router--.git
$ cd flow-router--/
$ go run ./cmd/api/

I'm not seeing a trailing slash in the response:
$ curl -i localhost:4000/v1/widgets/123
HTTP/1.1 200 OK
Date: Sun, 26 Nov 2023 17:41:25 GMT
Content-Length: 7
Content-Type: text/plain; charset=utf-8

id: 123

I started from scratch to see if it was something I did. I'm still having the same issue when using curl, but not chrome.
Here's a screenshot using curl:

Here's a screen shot in the browser:

I built a new repository for the new code base: https://github.com/christhornham/flow-router-test-v2

That's it! I'm using ZSH and it's definitely appending the highlighted %.
I'm sorry for wasting your time. I'll try to be better at Googling in the future.
I appreciate the help,
Chris


python311Packages.argcomplete: 3.2.2 -> 3.2.3

Description of changes
Fixes an issue which prevents registered apps e.g. nixpkgs-review from successfully offering autocomplete on zsh. (Use it locally as overlay since more than a week 🙏🏻)
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

Thanks for letting me know - changed - large number is considered 500+ just for the future?
Rebase seems not needed 🙏🏻

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review-december/1711/20