JSII compilation issues

Describe the bug
Unable to compile the code getting compilation errors
Expected Behavior
Compilation should work as expected
Current Behavior
COmpilation is getting failed
[2022-11-30T15:30:29.462] [ERROR] jsii/compiler - Compilation errors prevented the JSII assembly from being created
node_modules/@types/babel__traverse/index.d.ts:68:50 - error TS1005: ']' expected.

68 export type ArrayKeys = keyof { [P in keyof T as T[P] extends any[] ? P : never]: P };
~~
node_modules/@types/babel__traverse/index.d.ts:68:53 - error TS1005: ';' expected.

68 export type ArrayKeys = keyof { [P in keyof T as T[P] extends any[] ? P : never]: P };
~
node_modules/@types/babel__traverse/index.d.ts:68:58 - error TS1005: ';' expected.

68 export type ArrayKeys = keyof { [P in keyof T as T[P] extends any[] ? P : never]: P };
~~~~~~~
node_modules/@types/babel__traverse/index.d.ts:68:70 - error TS1011: An element access expression should take an argument.

68 export type ArrayKeys = keyof { [P in keyof T as T[P] extends any[] ? P : never]: P };

node_modules/@types/babel__traverse/index.d.ts:68:83 - error TS1005: ';' expected.

68 export type ArrayKeys = keyof { [P in keyof T as T[P] extends any[] ? P : never]: P };
~
node_modules/@types/babel__traverse/index.d.ts:68:84 - error TS1128: Declaration or statement expected.

68 export type ArrayKeys = keyof { [P in keyof T as T[P] extends any[] ? P : never]: P };
~
node_modules/@types/babel__traverse/index.d.ts:68:88 - error TS1128: Declaration or statement expected.

68 export type ArrayKeys = keyof { [P in keyof T as T[P] extends any[] ? P : never]: P };
~
👾 Task "compile" failed when executing "jsii --silence-warnings=reserved-word --no-fix-peer-dependencies" (cwd: /Users/krishnakanth/Documents/code/cdk/cdk-resources)

Reproduction Steps
We are using aws-cdk-lib 2.43.1 with jest and other things.
Npx projen compile is getting failed
Below is the package.json
{
  "name": "@cdk/cdk-resources",
  "repository": {
    "type": "git",
    "url": ""
  },
  "scripts": {
    "build": "npx projen build",
    "bump": "npx projen bump",
    "clobber": "npx projen clobber",
    "compat": "npx projen compat",
    "compile": "npx projen compile",
    "default": "npx projen default",
    "eject": "npx projen eject",
    "eslint": "npx projen eslint",
    "gendoc": "npx projen gendoc",
    "package": "npx projen package",
    "package-all": "npx projen package-all",
    "package:java": "npx projen package:java",
    "package:js": "npx projen package:js",
    "package:python": "npx projen package:python",
    "post-compile": "npx projen post-compile",
    "post-upgrade": "npx projen post-upgrade",
    "pre-compile": "npx projen pre-compile",
    "release": "npx projen release",
    "test": "npx projen test",
    "test:update": "npx projen test:update",
    "test:watch": "npx projen test:watch",
    "unbump": "npx projen unbump",
    "upgrade": "npx projen upgrade",
    "watch": "npx projen watch",
    "projen": "npx projen"
  },
  "author": {
    "name": "user",
    "email"<EMAIL_ADDRESS>    "organization": false
  },
  "devDependencies": {
    "@types/jest": "^27.5.2",
    "@types/node": "^12",
    "@types/prettier": "2.6.0",
    "@types/babel__traverse": "^7.18.1",
    "@typescript-eslint/eslint-plugin": "^5",
    "@typescript-eslint/parser": "^5",
    "aws-cdk-lib": "2.43.1",
    "constructs": "10.0.5",
    "esbuild": "^0.14.53",
    "eslint": "^8",
    "eslint-import-resolver-node": "^0.3.6",
    "eslint-import-resolver-typescript": "^2.7.1",
    "eslint-plugin-import": "^2.26.0",
    "ignore": "^5.2.0",
    "jest": "^27",
    "jest-junit": "^13",
    "jsii": "^1.63.2",
    "jsii-diff": "^1.63.2",
    "jsii-pacmak": "^1.63.2",
    "json-schema": "^0.4.0",
    "npm-check-updates": "^12",
    "projen": "^0.54.22",
    "source-map-support": "^0.5.21",
    "standard-version": "^9",
    "ts-jest": "^27",
    "typedoc": "*",
    "typedoc-plugin-missing-exports": "*",
    "typedoc-plugin-no-inherit": "^1.3.1",
    "typescript": "^4.7.4"
  },
  "peerDependencies": {
    "aws-cdk-lib": "^2.43.1",
    "constructs": "^10.0.5"
  },
  "dependencies": {
    "@types/js-yaml": "*",
    "@types/uuid": "^8.3.4",
    "cdk-nag": "2.15.32",
    "deepmerge": "^4.2.2",
    "js-yaml": "^4.1.0",
    "uuid": "^8.3.2"
  },
  "bundledDependencies": [
    "@types/js-yaml",
    "@types/uuid",
    "deepmerge",
    "js-yaml",
    "uuid"
  ],
  "keywords": [
    "cdk"
  ],
  "main": "lib/index.js",
  "license": "Apache-2.0",
  "version": "0.0.0",
  "jest": {
    "collectCoverageFrom": [
      "./src/**/**.ts"
    ],
    "coverageThreshold": {
      "global": {
        "lines": 40
      }
    },
    "preset": "ts-jest",
    "globals": {
      "ts-jest": {
        "tsconfig": "tsconfig.dev.json"
      }
    },
    "clearMocks": true,
    "collectCoverage": true,
    "coverageReporters": [
      "json",
      "lcov",
      "clover",
      "cobertura",
      "text"
    ],
    "coverageDirectory": "coverage",
    "coveragePathIgnorePatterns": [
      "/node_modules/"
    ],
    "testPathIgnorePatterns": [
      "/node_modules/"
    ],
    "watchPathIgnorePatterns": [
      "/node_modules/"
    ],
    "testMatch": [
      "**/__tests__/**/*.[jt]s?(x)",
      "**/?(*.)+(spec|test).[tj]s?(x)"
    ],
    "reporters": [
      "default",
      [
        "jest-junit",
        {
          "outputDirectory": "test-reports"
        }
      ]
    ]
  },
  "types": "lib/index.d.ts",
  "stability": "stable",
  "jsii": {
    "outdir": "dist",
    "targets": {
      "java": {
        "package": "com.cdk.resources",
        "maven": {
          "groupId": "com.cdk",
          "artifactId": "cdk_resources"
        }
      },
      "python": {
        "distName": "cdk_resources",
        "module": "cdk_resources"
      }
    },
    "tsc": {
      "outDir": "lib",
      "rootDir": "src"
    }
  },
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
}

Possible Solution
No response
Additional Information/Context
No response
SDK version used
2.43.1
Environment details (OS name and version, etc.)
MAC Ventura

[2022-11-30T15:30:29.462] [ERROR] jsii/compiler - Compilation errors prevented the JSII assembly from being created node_modules/@types/babel__traverse/index.d.ts:68:50 - error TS1005: ']' expected.
Looks like some of your dependencies are using syntax that is not supported by TypeScript 3.9, which jsii is built on. If you do not directly use these babel types in your own code, you might be able to solve your issue by configuring jsii.types in your package.json.
RFC-373 is preparing us to implement a strategy that will allow us to move to newer TypeScript releases, hopefully really soon.

@kpalaparthi  For the Babel types, a temporary solution is to hardcode @types/babel__traverse to version 7.18.2, then downgrade TypeScript to 3.9.7.
@RomainMuller Is there an ETA on getting the newer version of TypeScript issue resolved? This is insane that JSII is stuck on an ancient version of TypeScript still. It looks like that PR has been stuck in limbo since your comment?

@GEMISIS - this is becoming more of a problem every day, so we're looking to prioritize this work.

The following configuration in package.json allows me to complete npm run build:
"tsc": {
    "types": [
    "node",   <---- To workaround original issue
    "jest"    <---- To workaround error below
    ]
},

error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try npm i @types/jest or npm i @types/mocha and then add jest or mocha to the types field in your tsconfig.

  "devDependencies": {
    "@types/babel__traverse": "7.18.2",
    "@types/jest": "26.0.24",
    "@types/node": "18.11.18",
    "aws-cdk-lib": "2.60.0",
    "constructs": "10.0.0",
    "jest": "^29.3.1",
    "jsii": "^1.73.0",
    "jsii-pacmak": "^1.73.0",
    "ts-jest": "26.2.0",
    "typescript": "3.9.7"
  },

Just ran into this issue where it appears JSII and picking up (and failing on) the @types/node types: https://github.com/RichiCoder1/elastic-serverless-forwarder-cdk/actions/runs/4357841257/jobs/7617647680

This has been resolved by publishing newer version of jsii-compiler that are compatible with newer versions of TS.


Source repository link on nuget page points to incorrect repo

The Source repository link on the nuget.org page for this library points to the Fluxera.Guard repo instead of this one.

Thanks for the heads up, we will fix that. 😊


Unhandled promise

Description

Screenshots
No response
Additional information
can i work on this issue?
Checklist

[X] I agree to follow this project's Code of Conduct
[X] I have checked the existing issues
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

what will change after you handle these promises ? @debankanmitra

the error coming through sonarlint won't come , code will be more clean and readable ...

@debankanmitra ok you can start then.


Some organizations don't have specific types.

For example:
SELECT ?id ?type ?subtype
			WHERE {
			  ?id a <http://xmlns.com/foaf/0.1/Organization> .
			  ?id a ?type .
			  ?id a ?subtype .
  FILTER ( ?id = <http://sul.stanford.edu/rialto/agents/organizations/00002076-5a5d-4d74-95ed-9e8339cb6ecc>)

			  FILTER ( ?subtype NOT IN (<http://xmlns.com/foaf/0.1/Organization>, <http://xmlns.com/foaf/0.1/Agent>))
				FILTER ( ?type = <http://xmlns.com/foaf/0.1/Organization>)
			}

returns:
{
  "head" : {
    "vars" : [ "id", "type", "subtype" ]
  },
  "results" : {
    "bindings" : [ ]
  }
}

And this query:
SELECT ?id ?type
			WHERE {
				<http://sul.stanford.edu/rialto/agents/organizations/00002076-5a5d-4d74-95ed-9e8339cb6ecc> a ?type .
			}

only returns:
{
  "head" : {
    "vars" : [ "id", "type" ]
  },
  "results" : {
    "bindings" : [ {
      "type" : {
        "type" : "uri",
        "value" : "http://xmlns.com/foaf/0.1/Organization"
      }
    } ]
  }
}

I think this skos namespace is incorrect too:
  "p" : {
        "type" : "uri",
        "value" : "http://www.w3.org/2008/05/skos#prefLabel"
      },
      "name" : {
        "type" : "literal",
        "value" : "NIH National Human Genome Research Institute (NHGRI)"
      }

Cool. Thanks!


No console log when using fly programatically?

Background
I'm building a tool similar to next or create-react-app but for  simple websites without react etc. We are currently using gulp but I'd like to replace that with fly. The current code can be found here.
The problem
I don't seem to be able to get fly to log the expected output when using it programatically. The console is blank but if I run console.log('whatever') inside a task that'll show. Am I missing some option? Or is this a intended behaviour?
Sample code
// lib/utils/taskRunner.js
function startTaskRunner() {
  const cwd = path.join(__dirname, '..');
  const file = path.join(cwd, 'flyfile.js');

  const fly = new Fly({
    file,
    cwd,
    plugins: [
      require('fly-clear'),
    ],
  });

  fly.start();
}

startTaskRunner();

// lib/flyfile.js
exports.clean = function* (fly) {
  yield fly.clear('dist');
};

exports.default = function* (fly) {
  yield fly.start('clean');
};

Thankful for any pointers

@alexandernanberg Hey! I like that plan.

Am I missing some option? Or is this an intended behavior?

Unfortunately, you can't right now. You can access fly.$.log from a task in your flyfile.js file, but the fly instance you get via new Fly() is not attached to the logger/reporter.
I suggest you use console.log() for now. Please watch the repo or follow @fly__js for updates. I plan to revamp fly for 3.0 and among other things, expose the utilities, e.g., the logger, to users.

Hi @alexandernanberg!
Unfortunately, it seems as though you've left us for Gulp 😿 ... but that's okay 😜
Just wanted to let you know that you could have done this:
const join = require('path').join;
const Taskr = require('taskr');
const Reporter = require('taskr/lib/reporter');

function startTaskRunner() {
  // establish instance
  const taskr = new Taskr({
    cwd: join(__dirname, '..'),
    file: join(cwd, 'taskfile.js'),
    plugins: [
      require('@taskr/clear')
    ],
  });

  // attach Reporter (logger)
  Reporter.call(taskr);

  taskr.start();
}

Note: I updated the references from Fly to Taskr since we've changed our name :)

The reason this wasn't done by default (with every instance) is that it's generally not wanted in programmatic use. This is because most of the time, it's used as a silent runner & the main/parent tool is handling is own logging or stdout prints.
This follows the same pattern as our main cli.js boot script -- here.
Aside from that, as @jbucaran mentioned, the only other option for logging is thru each task's first parameter:
exports.default = function * (task) {
  try {
    yield task.source('foo/**').failure({ demo:true });
  } catch (err) {
    task.$.error(`Uh oh! The default task threw: ${err.message}`);
  }
};

The full list of inner-task utilities is available here!
Please let me know if that helps and/or you're willing to give Taskr another try 😉
Thanks!

@lukeed Oh that looks great! I will definitely give Taskr another try, wouldn't be surprised if it replaces gulp now 😉
Thanks guys 😄

Glad to hear 😄 Feel free to ping me if you have any questions or issues.
PS -- Is it okay to close this now?

Sure, will do! 😄


Incorrect memory usage reported for "name" and "geo" when using import command

The problem is in BaseGraph.toDetailsString() when flushAndCloseGeometryAndNameStorage is called then the capacity is already 0 and it will report 0MB which is confusing:
com.graphhopper.GraphHopper - flushing graph ... details: ... name:(0MB), geo:2 820 605 806(0MB)

We could also improve the bounds output for an empty BaseGraph during the import:
bounds: 1.7976931348623157E308,-1.7976931348623157E308,1.7976931348623157E308,-1.7976931348623157E308
A simple bounds: unknown or bounds: invalid would be a lot easier on the eyes. It's debatable if we only want to change the behaviour of BaseGraphNodesAndEdges.toDetailsString() or the one of BBox.toString().


Signals: Target Client ID Local Test

Description
ADO Task 7027
Follow up work from https://github.com/microsoft/FluidFramework/pull/17729

Add coverage for targetClientId signals scenarios in localTestSignals.spec (disabled since it is not supported)

In addition to the disabled cases, there should be coverage for when target client id is not supported. In those cases, even when a target is specified, all clients should get the signal. This we can test right now. One thing I don't recall is whether the target client id comes through to recipients. If so we should have tests that check that aspect is correct.

The current DocumentDeltaConnection submitSignal implementation throws an error if a target client is specified and target client id is not supported.


chore: update codecov action

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 81.64%. Comparing base (0c7f83e) to head (222d6e4).
Report is 44 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #798      +/-   ##
==========================================
+ Coverage   81.43%   81.64%   +0.21%
==========================================
  Files          97       98       +1
  Lines       23877    24292     +415
==========================================
+ Hits        19445    19834     +389
- Misses       4432     4458      +26

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


How can I get payload or json string without save

I want to get a payload value or form json for make a real-time view form.
Thank you

is ok now =]
var payload;
fb.mainView.collection.sort();
payload = JSON.stringify({
  fields: fb.mainView.collection.toJSON()
});

It can gen the json string


MissingAuthorizationError and UnsupportedTokenTypeError should probably result in status code 401

My project is using a BearerTokenValidator as described in the documentation. When I try to access the resource without an Authorization header or with a non-bearer token, the result is a status code 400 Bad Request. I think this should be a 401 Unauthorized.
The change would simply be adding status_code = 401 to both classes.

It sounds reasonable. These two errors are not defined by RFCs.
How about sending a PR?

Here it is: #88

Thanks. It is merged.

Thanks, that was quick!


GlareDB for one-off scripts?

I want to be able to use glaredb without a CLI for one-off scripts and purposes. It would be a great use-case feature to highlight and document as well.
Something along the lines of:
# assume users.json is in this dir
glaredb --exec="SELECT * FROM users.json WHERE status = 'active';"

It might be interesting to think about a non-interactive way of invoking COPY TO (with filtering). This can act as a simple ETL

So I actually used this to generate some of our testdata from an existing parquet file:
$ cargo run --bin glaredb -- --query "copy (select * from parquet_scan('./testdata/parquet/userdata1.parquet')) to './testdata/json/userdata1.json'"
$ cargo run --bin glaredb -- --query "copy (select * from parquet_scan('./testdata/parquet/userdata1.parquet')) to './testdata/csv/userdata1.csv'"

^ That's a super cool use-case


Question: why could different ray.Workers produce same random sampling result when processing the same prob tensor?

I am referring to the _random_sample method from vllm/model_executor/layers/sampler.py

Closing this issue as stale as there has been no discussion in the past 3 months.
If you are still experiencing the issue you describe, feel free to re-open this issue.


Preventing selection of X icon in the sidebar

This prevents accidental selection of the close button (X) of the left
sidebar on mobile landing page. Fixes #5259

Automated message from Dropbox CLA bot
@srimukhsai, it looks like you've already signed the Dropbox CLA. Thanks!

@brockwhittaker can you review?  I'm a bit worried this CSS feature may not have be supported on a wide enough set of browsers.

You should add in the vendor prefixes for other browsers. :)

@timabbott @brockwhittaker I've amended the commit with vendor prefixes

Looks great! @timabbott, good to merge.

Merged, thanks @srimukhsai!  One quick note though: I ended up having to do some logistics to fix the merge commits in your PR before merging this.  Next time, can you please use Zulip's rebase workflow as you edit your branch?  Thanks!
Check out our GitHub guide and commit guidelines for advice on how to do this :).

@timabbott Great!  Will take care of it next time. Thanks :)
Sent from my OnePlus ONEPLUS A3003 using FastHub

@timabbott Great!  Will take care of it next time. Thanks :)
Sent from my OnePlus ONEPLUS A3003 using FastHub

@timabbott Great!  Will take care of it next time. Thanks :)


gridsearch-tasks == -1 in args does not perform grid search

Hello!
Thank you very much for this library - it's great!
I have a question:
The default value of --gridsearch-tasks in main_incremental.py is -1. And it has been given that setting it to -1 will perform grid search for all tasks.
But this does not reflect in the code, and grid search is not done when this is executed.
The only lines where gridsearch_tasks is referenced are line 167, line 214 and line 241 and all of these work only when the value is positive.
Can you please check if the code is right?
Thank you.

Hi, thanks for the issue!
I think you are right! I will check it out.
Thank you so much!
(Noting, just in case: setting it to the value of --num-tasks as done here should run the full GridSearch).

Thank you @mkmenta. Got it, will use --num-tasks.


feat: Add Global Settings Modal

Task linked: CU-3y25v5e Asset lists + Settings Modal - Design

@jonator Thanks for the review! Addressed the feedback 👍

We should be able to remove the whole control/icon-dropdown modal, and any associated single-use types.

 Deleted all these extra dead code on my latest commit

@JoseRFelix Please address merge conflicts, then I'll merge #1201

@JoseRFelix Please address merge conflicts, then I'll merge this then #1201

@jonator Done

Great work!


Update context and root executor options

📦 Enhancement
Fixes #70 and Fixes #71

[x] Bump graphl-core minimum version to 2.3 (was 2.1).
[x] Provide context_value and root_value to executor options (was context and root).

Coverage remained the same at ?% when pulling 5c977d9c118fe714d78f144ab071a71418fd569e on KingDarBoja:enhancement/update-context-root-values into 0137ca1315d811a7e01a1d256e41c74bc1c3fc2c on graphql-python:master.

Would it be possible to publish a new version that includes this change? These warnings are spamming my console 😄

An update would be surely appreciate. But I can understand if this isn't a priority or worthy.

any chance to get it included into PyPI-published release? thank you

These changes are included on latest alpha version of graphql-server, checkout https://github.com/graphql-python/graphql-server/blob/master/docs/flask.md


Auto-add secrets file and slscrypt decryption helper to package.include

This makes serverless-crypt work with wildcard packaging rules like:
package:
  exclude:
    - '**/*'
  include:
    - handler.py

Coverage decreased (-5.8%) to 94.203% when pulling 294896dcede4b6f4b86558c3e0283aeca2bdeb53 on dschep:auto-include into 4bfb0162ff99827f4ac7b9dad727b6aaa989aedf on marcy-terui:master.

Coverage remained the same at 100.0% when pulling 97eefb86a5c6f96eabf69c57a30f48550ac64abb on dschep:auto-include into 4bfb0162ff99827f4ac7b9dad727b6aaa989aedf on marcy-terui:master.


Error 502 when chaining multiple NPMs

Checklist

Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?

Yes / No / With tag 2.10.3 which is the latest

Are you sure you're not using someone else's docker image?

Yes / No

Have you searched for similar issues (both open and closed)?

Yes / No

Describe the bug
I have my network setup like below:
Client ==service.domain.tld==> NPM 1 ==service.local.domain.tld==> NPM 2 ==Docker network==> Service Container
Now, I can access my service through NPM 2 with service.local.domain.tld, however, when I try to do it through NPM 1 with service.domain.tld I get a "premature disconnection when reading response headers" or something like that. I had added the following custom configuration to my proxy host on NPM 1
proxy_ssl_name $server;
proxy_ssl_server_name on;

Before the change, it would through a unrecognized name:SSL alert number 112 error, which I can replicate when I try to access port 443 of NPM 2 with just the ip of the docker host. Reading the documentation, adding proxy_ssl_server_name on; should've fixed the issue, however I'm getting the premature disconnects now. NPM 2 does not log anything at all when causing the premature disconnection (with log level set to debug). I have also tried messing with extending the timeouts to see if that was an issue but still no success.
Nginx Proxy Manager Version
 2.10.3
To Reproduce
Steps to reproduce the behavior:

Setup 2 chained NPM istances
Try to access the the service with SSL from the first proxy in the chain

Expected behavior

Service gets proxied
Screenshots

NPM 1:

(HTTP/2 support on or off doesn't make a difference)

NPM 2:

Operating System
x86_64 Virtual machine with ubuntu server 22.04 LTS
Additional context

No custom configuration:

With
proxy_ssl_name $server;
proxy_ssl_server_name on;

Found the issue!
All posts I found suggested changing the Host header to $server instead of $host, however, as I found out you can't do this through the advanced configuration section of the UI. After manually changing the nginx config file, it works as intended.
So the steps to fix it

Locate configuration file in /path/to/data/nginx/proxy_host
Change This line under location / { from

# Proxy!
include conf.d/include/proxy.conf;

With
# Proxy!
add_header       X-Served-By $host;
proxy_set_header Host $server;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-Proto  $scheme;
proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP          $remote_addr;
proxy_pass       $forward_scheme://$server:$port$request_uri;

The only line changed from https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/docker/rootfs/etc/nginx/conf.d/include/proxy.conf is proxy_set_header Host $server
3. Bash into the container and run /usr/sbin/nginx -s reload
4. Exit everything and your done!
Going forwards, would it be possible to have a toggle for this in the UI? Or perhaps a "Custom Hosts" tab where one could define custom nginx configurations using a built-in text editor? I'll probaby create a future request for that, as it seems like a nice feature to have.
P.S. Shout out to this user for a good explanation https://serverfault.com/questions/837480/nginx-double-reverse-proxy#:~:text=I think you,proxy_set_header Host %24proxy_host%3B

I encountered this issue as well, but followed this Reddit comment to add these two lines to the custom config:
proxy_ssl_name $host;
proxy_ssl_server_name on;

I did see the other Reddit thread where the same thing was suggested to you @Fufs; I'm not nginx savvy enough to explain why it works for me and not you😄. I'm only doing this for Emby and Joplin.

If I remember correctly proxy_ssl_name is being set correctly by default. The problem was that NPM2 was closing the connection prematurely. That's because NPM1 was setting the Host header to the address of NPM1 and NPM2 would close the connection because it's not the header it was expecting. If both NPMs were "listening" for the same domain but an external DNS (say <IP_ADDRESS>) was pointing at NPM1 and internal DNS (like PiHole) was pointing at NPM2, then it would work perfectly. But because I like to have separate domains for each machine (to make sure I'm targeting the correct one).

Now there is a better way:
Edit Proxy Host ->  Advanced -> Custom Nginx Configuration ->
proxy_ssl_server_name on;

location / {
    # HSTS (ngx_http_headers_module is required) (63072000 seconds = 2 years)
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

    # Set headers for proxy
    add_header X-Served-By $host;
    proxy_set_header Host $server;
    proxy_set_header X-Forwarded-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;

    # Upgrade connection to WebSocket if necessary
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_http_version 1.1;

    # Proxy configuration
    proxy_pass $forward_scheme://$server:$port$request_uri;
}

The above code will be inserted directly into server{...}
If you want to add Custom locations, do not use the GUI option
The above configuration code can be modified
proxy_ssl_server_name on;

location / {
    # HSTS (ngx_http_headers_module is required) (63072000 seconds = 2 years)
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

    # Set headers for proxy
    add_header X-Served-By $host;
    proxy_set_header Host $server;
    proxy_set_header X-Forwarded-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;

    # Upgrade connection to WebSocket if necessary
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_http_version 1.1;

    # Proxy configuration
    proxy_pass $forward_scheme://$server:$port$request_uri;
}

# Custom locations
location /home {
    # Modify to your own configuration
    set $home_forward_scheme  https;
    set $home_server         "com.example.com";
    set $home_port            443;

    # HSTS (ngx_http_headers_module is required) (63072000 seconds = 2 years)
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

    # Set headers for proxy
    add_header X-Served-By $host;
    proxy_set_header Host $home_server;
    proxy_set_header X-Forwarded-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto  $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP    $remote_addr;

    # Upgrade connection to WebSocket if necessary
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_http_version 1.1;

    # Proxy configuration
    proxy_pass $home_forward_scheme://$home_server:$home_port/;
    # proxy_pass $home_forward_scheme://$home_server:$home_port$request_uri;
}

Use $home_forward_scheme://$home_server:$home_port$request_uri; if you want to append the request's URI directly to the proxy target.
Use $home_forward_scheme://$home_server:$home_port$/; if you want to add an additional trailing slash at the end of the proxy target's URI.
Then you can access https://xxx.com/home

我也遇到了这个问题，但按照Reddit 评论将这两行添加到自定义配置中：
proxy_ssl_name $host;
proxy_ssl_server_name on;

我确实看到了其他 Reddit 帖子，其中向您建议了同样的事情@Fufs; 我对 nginx 的了解不够，无法解释为什么它对我有用，但对你不起作用。我这么做只是为了 Emby 和 Joplin。

please see above


"Sign in with Google temporarily disabled for this app"

"Sign in with Google temporarily disabled for this app. This app has not been verified yet by Google in order to use Google Sign In."
Getting this when trying to authorize the plugin for credentials.

Hey!
I ran into the same issue. I dug through the code and figured out that the Google Drive API has changed since this plugin was published, which is no surprise since the plugin was last modified 4 years ago.
I've updated the plugin to work with the new Google Drive API. My updated version is available here.

 Thank you very much!


fix: message parsing in base64

#9  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @BlankParticle and the rest of your teammates on  Graphite


Why not BitID?

There is an existing proposal with working implementations (Darkwallet, Mycelium, mediawiki) . It would be great to give a motivation how BitAuth improves over BitID. This is not clear from the blogpost  https://github.com/bitid/bitid

There should be compatibility between BitID and BitAuth, especially since it's using the same crypto. I think the only difference is that BitID uses a bitcoin address as the identifier and BitAuth uses a different version byte when encoding an "address" and thus isn't necessarily used to receive bitcoin.


[Question] An idiomatic way to create an Invoice-like form. Should I use stores?

I'm trying my best to understand the idiomatic way to create an Invoice-like form with Svelte 3.
My REPL is here: https://svelte.dev/repl/7aca36569aea49bba38e5fb8b1b0835b?version=3.24.1.
QUESTIONS:

Is this a good way to do it? Should I use a store perhaps?

Is there a way to update amountDue when I change qty and price of my rows? (I know I can do it with rows = rows but it seems to me a bit not-idiomatic way, am I wrong?)

interesting.

it's fine. using stores is always optional.

this is tricky. @kevmodrome whats the recommended way to deeply update objects within arrays again? i feel like we have a recipe for that somewhere

2. i feel like we have a recipe for that somewhere

I searched. No luck.

@frederikhors there is an old issue here https://github.com/svelte-society/recipes-mvp/issues/15
which links to this fundamental change in svelte behavior https://github.com/svelte-society/recipes-mvp/pull/37/files
and this code sample https://github.com/svelte-society/recipes-mvp/pull/16/files
havent tried on your case but see if it helps

@sw-yx thanks. I read everything. Your work in the community is truly amazing and it's a nice gesture in this sad world. Thanks for all your commitment.
I remain skeptical and looking for answers regarding inputs and bind-things like bind:value={row.qty}.
I'm loving Svelte, there must be a way to do this.
:smile:

Oh, I think I found.
I'm using: bind:value={rows[id].qty}.
Am I wrong?

I think I can use bind:value={rows[id].qty} but it seems still hacky to me.
Is there a way to use something like: bind:value={row.qty} and still correctly update rows array?

doubt it, bc the  updater function doesnt know that row is a reactive variable? i could be wrong. the way to test this is look at the compiled output in the svelte REPL and see what the invalidate function is doing. lmk if u get stuck, im feeling a little lazy to do it myself

@sw-yx they answered here: https://github.com/sveltejs/svelte/issues/5248#issuecomment-670830334.
The solution is bind:row.


No link to the slack on the about page alongside the other channels?

Can't find a link to the slack anywhere on the website? Maybe it should go on the about page alongside the other social media channels, or in the getting involved section?

Great question! The Slack link runs out periodically and I was also cautious of putting it on the website as it's the most public area we have. We've already had a bit of spam on the GitHub (funnily enough it was quite technical so it was issues and discussions which was surprising!).
Saying that, it would be a good idea to still put something about Slack and a link to where the access link
is: https://postcard.nhsrcommunity.com/ so I've put this as an enhancement. I'm more than happy for you to have a go at adding this as a PR and I can talk you through it if you'd like.

No worries, didn't realise the link runs out. I'll have a go at adding the link to the postcard.


BackButton and CloseButton with overrideable default icon values

Use case
Hi, we have a custom set of icons that we would like to have inserted into the Back and Close navigation buttons.
Most of our screens already benefit from the automatically implied AppBar's leading button, instead of manually inserting them on every screen/page.

Proposal
The simplest and most straightforward solution might just be an overrideable (static/global?) value somewhere that the buttons have access to.
Still, since it might need to be able to cover more use cases (e.g. different icons per platform or other derived properties like theme/user values), a callback resolver somewhere might be more suitable. Maybe inside ThemeData (similar to what we already have for route anim builders)?

You can create a custom component extended from AppBar which defaulted to a custom icon. Then use it in every page.

Hi @williamhjcho, Thanks for filing the issue. @favechua is right you can create your own AppBar  extending from Appbar as below and use it across your app.
import 'package:flutter/material.dart';

class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
  final String _title;

  @override
  final Size preferredSize;

  CustomAppBar(this._title, { Key? key}) : preferredSize = Size.fromHeight(50.0),
        super(key: key);

  @override
  Widget build(BuildContext context) {
    return AppBar( // your customization here
      title: Text('$_title'),
      centerTitle: true,
      backgroundColor: Colors.black54,
    );
  }
}

// on the file using the appBar just:

class NewScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: CustomAppBar('Your title here'),
    );
  }
}

Closing as it is neither a bug nor a new feature request

Hi @maheshmnj ,
The main proposal of this issue was to just extend the existing functionality of BackButton and CloseButton.
As opposed to create an extra widget, which would require me to replace it everywhere on the app AppBar/SliverAppBar -> MyCustomAppBar/MyCustomSliverAppBar.


Domain activation is Failed - [BRIEF DESCRIPTION]

App Id: d2oknmlludd9v9
Region: us-east-2
Step: Domain activation
Status: Failed
Error message: One or more of the CNAMEs you provided are already associated with a different resource.

Closing in favor of https://github.com/aws-amplify/amplify-console/issues/2048


Add freezeRequest AppConfig API Function

Description

This PR adds a new API function to the AppConfig component called freezeRequest. The purpose of this new API function it to freeze the original request made to the ssr server and place it in the HTML. This method can also be redefined per the projects needs. By default we freeze the url and the 'Accept-Language' header.
This change allows for a cleaner interface when it's required that we know information about the request whilst configuring the application.
The frozen request is available as a global browser variable called __ORIGINAL_REQUEST__ on the browser. It's also made available to the extraGetPropsArgs function by means of its this scope, both on the client and server.
NOTE: This is a first cut and isn't very polished. I'm open to suggestions.
https://gus.lightning.force.com/lightning/r/ADM_Work__c/a07EE000005xD1dYAE/view
Types of Changes

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] New feature (non-breaking change that adds functionality)
[ ] Documentation update
[ ] Breaking change (could cause existing functionality to not work as expected)
[ ] Other changes (non-breaking changes that does not fit any of the above)

Breaking changes include:

Removing a public function or component or prop
Adding a required argument to a function
Changing the data type of a function parameter or return value
Adding a new peer dependency to package.json

Changes

Add freezeRequest
Use class component in AppConfig (this should be manditory)
Bind scope for extraGetPropsArgs

How to Test-Drive This PR

(step1)

Checklists

General

[ ] Changes are covered by test cases
[ ] CHANGELOG.md updated with a short description of changes (not required for documentation updates)

Accessibility Compliance
You must check off all items in one of the follow two lists:

[ ] There are no changes to UI

or...

[ ] Changes were tested with a Screen Reader (iOS VoiceOver or Android Talkback) and had no issues
[ ] Changes comply with WCAG 2.0 guidelines levels A and AA
[ ] Changes to common UI patterns and interactions comply with WAI-ARIA best practices

Localization

[ ] Changes include a UI text update in the Retail React App (which requires translation)

Hey @bendvc I think this looks like a great approach. I think what you've done here addresses my "Hmm, not a global variable" worry from before well. I think you might have identified a kind of problem category here: There are some things we want to make available to the entire app, where "entire app" means (1) all getProps style static methods and (2) any react rendering code.
For the React rendering code there's a fix – we set up providers. Let's do that here, too. For "available in all special methods", we have to do work to make sure the thing is available everywhere. Maybe you can think of a pattern for it?

Closing due to inactivity and priority shift. We'll pick this up when there is more time to define a good usable API.


crash due to memory error

i have 8 gb memory but it consumes  all and crash
┌─[photon@parrot]─[~/AChecker]
└──╼ $python bin/ac* -f dep2 -b
Killed


search bar  limit  search scope invaild

Type: Bug
files to  include   enter  a  path or folder,  cloud not  limited  search scope  in  this
VS Code version: Code 1.73.1<PHONE_NUMBER>f055b99068d3688932416f2346dd3b, 2022-11-09T04:27:29.066Z)
OS version: Windows_NT x64 10.0.19044
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-10400 CPU @ 2.90GHz (12 x 2904)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
undefined

Memory (System)
15.79GB (6.07GB free)

Process Argv
E:\project\battery-rental-sys-pc --crash-reporter-id c1281403-71a6-456a-b4b5-c9d182f1b495

Screen Reader
no

VM
0%

Extensions (14)

Extension
Author (truncated)
Version

npm-intellisense
chr
1.4.2

vscode-eslint
dba
2.2.6

gitlens
eam
13.0.4

EditorConfig
Edi
0.16.4

vs-code-xml-format
fab
0.1.5

auto-rename-tag
for
0.1.10

code-runner
for
0.11.8

vscode-docker
ms-
1.22.2

remote-containers
ms-
0.262.3

vetur
oct
0.36.1

LiveServer
rit
5.7.9

code-settings-sync
Sha
3.4.3

svelte-vscode
sve
106.2.0

sass-indented
syl
1.8.22

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vsdfh931:30280409
vshan820:30294714
vstes263:30335439
vscorecescf:30445987
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593:30376534
pythonvs932:30410667
cppdebug:30492333
vsclangdf:30486550
c4g48928:30535728
dsvsc012cf:30540253
azure-dev_surveyonecf:30548226
pyindex848:30577860
nodejswelcome1cf:30587006
fc301958:30595537
3biah626:30602489
gswce1:30605430
3d0df643:30608728
dbltrim-noruby:30604474
89544117:30607850

/gifPlease

Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, .gif files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (Developer: Toggle Screencast Mode in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue.
Happy coding!

it's  some  screen recording.

i  find  input  rules of  ./ser/*  to   limit  serch scope  and  all  is right,  so  i   close  the  issues


set the link in the constructor so that the toArray function includes…

… the correct link

I don't think this proposed solution is appropriate.

The toArray method is intended to provide you with the raw payload of the original response.
The accessor methods are meant to be used to access "opinionated" results of the contents of the raw payload for "commonly" used information.
Your proposed solution directly manipulates the raw payload within the resource owner object, which would cause the getUrls accessor method to return an incorrect result.

Is there another way to get this properly coded ?

You can retrieve the user's information using the opinions in this package by doing the following:
$user = $provider->getResourceOwner($token);

echo $user->getId();
echo $user->getEmail();
echo $user->getFirstname();
echo $user->getLastname();
echo $user->getImageurl();
echo $user->getName();
echo $user->getUrls();

or you can get the raw data that was returned from the API request and process it within your project
$user = $provider->getResourceOwner($token);

print_r($user->toArray());

If you would like to contribute to the resource owner object and improve the accessor methods it provides, that is just fine so long as the accessor methods do not change the underlying array, as you previously requested.


Opera 12 textarea bug

Opera does not differ client and offset size for textarea with scrollbar.
Maybe I will do another hack for Opera, or not.

Or not. Wontfix. Dont use Opera 12 textarea scrollbar customization.


Angular Version

I just wanted anyone that stumbled into your issue tracker to know that I ported your code to AngularJS so it can be used as a service.
https://github.com/Skinner927/angular-disablescroll

Nice. Sorry for huge delay but I've added this to the readme.


text/template: index is too restrictive in its type validation

Given:
package main

import (
	"html/template"
	"os"
)

func main() {
	m := make(map[template.HTML]string)
	m["Key"] = "Val"

	// OK!
	if _, ok := m["Key"]; !ok {
		panic("Map lookup failed")
	}

	t, err := template.New("foo").Parse(data)
	if err != nil {
		panic(err)
	}

	// This fails
	err = t.Execute(os.Stdout, m)

	if err != nil {
		panic(err)
	}
}

var data = `{{ index . "Key" }}`

This panics:
panic: template: foo:1:3: executing "foo" at <index . "Key">: error calling index: value has type string; should be template.HTML

Juggling around with template.HTML and string types seems like a common thing in Go templates, and I would expect the index func to work the same way as a straight map lookup in this case.

Just like in #14751, index mirrors ordinary Go execution. It doesn't just take anything and do its best. This is not, say, Javascript.

@rsc in this case it does definitely not mirror Go execution.
``go
m["Key"] // Ok!

Is different than:

```html
{{ index . "Key" }} // Panic!

I understand your resistance to change existing behavior in Go, but please don't make up arguments that doesn't hold water.
template.HTML is a string  -- and when strings can be used as keys in map[template.HTML] lookups, then the same should be the case for the index func. A template.HTML isn't anything, it is a well defined string.

@bep you wrote

when strings can be used as keys in map[template.HTML] lookups

but they cannot. Only template.HTMLs can be used. In this code:
m["Key"] // Ok!

"Key" is an untyped string constant so it may be realized as a template.HTML when given a type.
In this template code:
{{ index . "Key" }} // Panic!

"Key" is a string. If you wrote
k := "Key"
_ = m["Key"]

you'd get the equivalent compile error: cannot use k (type string) as type "html/template".HTML in map index.
https://play.golang.org/p/wdLJzrtl_p

All that said, I agree that the template code is necessarily more clumsy than Go code because it lacks the convenience of constants. I'm not sure anything can be done to improve the situation in a backwards-compatible manner, though.

Any way you spint it: given my latest examples index func will not win any usability price awards.


Todo-List Partner Review

Hello Matthieu! Please can you review this PR for you.
Thank you🙌

Hi @theodoku
Your project is complete! There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉

Highlights
✅ Correct Github flow
✅ Professional PR
Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.


allow-delete

New Feature

Allow DELETE on /uris/ and /pages

Coverage increased (+0.0007%) to 99.919% when pulling b4e3e9adcfd3e8ccc0f27498732ee12a935a8772 on allow-delete into b091e86634722485d918ecd51b35ddee75250745 on master.

Coverage increased (+0.0007%) to 99.919% when pulling e8c639e477845e6292afbed38a734efe738a537d on allow-delete into b091e86634722485d918ecd51b35ddee75250745 on master.

Coverage increased (+0.0008%) to 99.919% when pulling 4aa8616cf9df3a7ddfbfbb013fd242be3cfe127f on allow-delete into b091e86634722485d918ecd51b35ddee75250745 on master.

Coverage increased (+0.0008%) to 99.919% when pulling 4aa8616cf9df3a7ddfbfbb013fd242be3cfe127f on allow-delete into b091e86634722485d918ecd51b35ddee75250745 on master.


Bridge DMs/chat

Bridgy Fed doesn't currently bridge DMs or chat. It could!
Honestly, this is very unlikely. First, the product, UX, and technical needs for chat are pretty different from social networking, which Bridgy Fed is current architected and designed for. Second, for safety and privacy, Bridgy Fed is pretty strictly limited to only bridge fully public content right now, and I'm reluctant to change that.
Still, happy to track the idea here!

Since dm's are not encrypted to begin with I don't think the privacy issue is that big of an issue maybe make the bot send you a disclaimer dm when you sent the first message
In terms of ux if a dm is a reply to a public post AP -> AT it should probably be fromated:
RE: <link to post>

<text>

From AT -> AP every dm should for simplicity probably be a new message everything else just gets things too complicated
I personally would love to see this feature be realized

From AT -> AP every dm should for simplicity probably be a new message everything else just gets things too complicated

At the least it needs to be a reply to the previous message.
It would make for very bad UX if the context of the conversation was lost each time.
(That said, this really is a rough transition between ActivityPub and ATProto, since ActivityPub trivially has private group conversations for example and mentioned-only messages can be contained inside more public conversations.)

When it comes to a standard like Matrix (which I'm no expert on though) I think the main difference from eg. Mastodon-style microblogging is that its about events being posted to rooms / groups rather than being broadcasted from the users own account.
And the way of reading events is to join a room / read them from a room.
So when it comes to "chats" I think one should separate the 1:1 style chats from more open groups / rooms.

Plumbing notes: Groups in Fediverse / IndieWeb
Eg. Lemmy has rooms / groups – they call it "community" – and these are as possible to discover through WebFinger as user accounts are, see eg: https://fedidevs.org/reference/webfinger/#app-lemmy-handle-lemmy_supportlemmyml There they identify it with:
  "properties": {
    "https://www.w3.org/ns/activitystreams#type": "Group"
  }

In the IndieWeb the wiki  brings up hashtags as one example of a group-style thing, but I think the best example is how one submits to news.indieweb.org using u-category:
#indienews

Plumbing notes: Bridging related aspects about Matrix
On the topic of Matrix: It unlike most other standards have an official standard for bridging: https://spec.matrix.org/v1.12/application-service-api/#third-party-networks / https://spec.matrix.org/v1.12/client-server-api/#third-party-networks
Instant Messaging is also only of plenty of plenty of Modules supported on Matrix: https://spec.matrix.org/v1.12/client-server-api/#modules A microblogging-style module could probably exist eventually, but already when MSC1767: Extensible events in Matrix (accepted in https://github.com/matrix-org/matrix-spec-proposals/pull/1767) is supported one should be able to do something like this to losslessly bridge ActivityPub to Matrix with clients able to progressively enhance to use the full ActivityStreams object:
{
    // irrelevant fields not shown
    "type": "m.message",
    "content": {
        "m.text": [
            { "body": "Hello world", "mimetype": "text/html" },
            { "body": "Hello world" }
        ],
         "org.example.activitystreams": {
            "id": "https://rhiaro.co.uk/2016/05/minimal-activitypub",
            "type": "Article",
            "name": "Minimal ActivityPub update client",
            "content": "Today I finished morph, a client for posting ActivityStreams2...",
        },
    }
}

(What made me think of Matrix in this context was that I got reminded that social networking was an example some had when Matrix was created, and when looking into the functionality of Bluesky it feels like Matrix actually have somewhat of an overlap with it, the concept of a home server is more distinct in both of them whereas Mastodon kind of blurs the concept of community and home server, making the server itself be a kind of community group rather than it being separate from the servers. The IndieWeb kind of follows Bluesky and Matrix as well, but without as much specified about server-to-server relays / aggregation, mainly relying on WebSub and not much more)

The "Group" actor in ActivityPub is somewhat unrelated to chats, it's more a message distribution abstraction.
I think some fediverse software may implement it in a way that makes it largely invisible to arrive at a more group-chat-like experience, though.
Conversations in Mastodon don't really have explicit 'membership': Who can view a post is controlled for each post and can broaden or narrow for branches of the same conversation individually. That makes it very difficult to map it into a linear format where there's only one singleton chat/room associated directly with each contact.

Good conversation, thanks everyone!
I don't disagree with any of the plumbing or technical points here. I do want to reiterate a couple non-technical points, though.
First, while you all are right that we can probably translate the data models, interactions, and other details, chat and social networking are still very different products. How people use them, and what they use them for, feel pretty different, at least to me. (The counterargument is DMs and chat that are built into in social networks like the fediverse, Bluesky, etc, of course.)
Second, for as long as I've been building Bridgy classic, and now Fed, I've tried hard to only bridge fully public content. I know it's possible to bridge non-public content, and even do it safely and responsibly, but it would add a significant amount of risk and liability. Personally, right now at least, I'm still not interested in taking on that added risk and liability.
However, if anyone wants to fork Bridgy Fed and try to add DM support, I'd absolutely help! It'd be a nontrivial project, but very doable.

Publicly logged chat rooms / groups that anyone can read the history off – those have the same permission model as the current content in Bridgy Fed.
(A chat room, a Facebook group, a Lemmy community – they mostly differ in what content one can share and both chat rooms and Facebook groups can be either private or public)
I would also keep private stuff out of it.

I do get the point you’re making though – typical chat shouldn’t be in Bridgy Fed, but groups could be, and this issue isn’t about groups explicitly, but chat rooms are a subset of groups and some groups could make sense - eg bridging IndieWeb news to Lemmy or something like that

@voxpelli understood! Groups does seem more likely for Bridgy Fed support. New issue sounds great, feel free to file one!
SWICG is also running a task force on groups aka the "threadiverse" right now, I'll happily follow wherever they end up and read anything they publish on this.


WIP: Added and corrected type hints and DocBlocks across the board

I've added and corrected type hints, as well as DocBlocks across the board.

Some types were missing (either as direct type hint, or in the DocBlock) or was incorrect.
These should now be correct everywhere.
Some type hints, as well as DocBlocks, were referencing classes instead of interfaces - changed those to be entirely interfaces.
I've made all classables in DocBlocks fully qualified, which is partly why so many files has been changed.
I've also separated some of the more common definitions (like Authenticatable methods) into separate, semantic interfaces, so they can easily be extended, making typing more maintainable.
I added a base PHPStan config, and updated .editorconfig and .gitignore for that file.
I also took the liberty to add some more .gitignores while I was adding PHPStan - let me know if I should revert them.

All tests still passes, like before.
While I set the PHPStan config to max, it currently only passes on level 5, apart from some of the mocking stuff.
It's on my todo to have a chat to @Sammyjo20 about those, as they were a bit problematic.
A bit later this week, maybe next, I'll sort

iterable types (PHPStan level 6)
callable types (PHPStan level 7)
look into sorting generics for DTOs, among other things

Should I make them as part of this PR, or make new ones for them?
This one is already fairly large.
#120 already tries to adress generics, so maybe do that there?

I think I've solved pretty much everything that was 'wrong' now (missing types, or incorrect DocBlocks).
The files I've excluded from PHPStan (locally) are

src/Http/Faking/MockClient.php
src/Traits/Responses/HasSimulationMethods.php

They were tricky to type hint because the requests and/or responses can be many types, and in some cases unsupported types.
So I'll need to speak to @Sammyjo20 about them specifically, to clear things up a bit, so we can correctly add types and make static analysis tools a bit happier. 🙂
All existing tests (and PHPStan level 5) goes through now.


How long does it take to solve PongDeterministic-v3 ?

Hi,
I was having a issue that cannot replicate the training time as reported.
In the readme, it is said the training time is under 2 hours even with mac book pro. I have tried both 16 workers with 10 CPU cores (Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz) and 32 workers with 6 CPU cores (Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz). The solved time is more than 4.5 hours.
16 workers

I also tried with 6 workers with a 6 CPU cores as recommended. The reward is around -19 after training 2 hours. Is there any tricks that can accelerate the training?
Also, I have a output like this:
 no server running on /tmp/tmux-1002/default
Will this affect training a lot?
Thanks a lot!

You're getting lower numbers of steps/sec than I do on my MBP. When I run
python train.py --num-workers 16 --env-id gym-core.PongDeterministic-v3 --log-dir /tmp/vncpong

I get over 250 steps/sec:

My machine is:

If your universe version is more recent than your universe-starter-agent, you might be getting a huge number of deprecation warnings, enough to slow down training. Check the tmux panes for the worker processes. Updating universe-starter-agent will fix it.
Also, check all your worker processes by scanning through the panes in tmux. If you killed a previous session there might be containers still running, causing errors like:
universe.error.Error: [0] Could not start container after 5 attempts. Last error: 500 Server Error: Internal Server Error ("b'{"message":"driver failed programming external connectivity on endpoint universe-tQcQDT-0 (e6a2a96bb46eaab0f07fd5b2b8cb7c1633774eb7dfa164d36be9dbb49e400f1e): Bind for <IP_ADDRESS>:15909 failed: port is already allocated"}'")

Running
$ docker kill $(docker ps -q)

will clean them up.

Hmmm, there may be a bug in the latest Universe that prevents starting more than 5 envs in the mode that universe-starter-agent uses. Are you seeing errors like below in any of the tmux panes?
universe.error.Error: [0] Could not start container after 5 attempts. Last error: 500 Server Error: Internal Server Error ("b'{"message":"driver failed programming external connectivity on endpoint universe-tQcQDT-0 (e6a2a96bb46eaab0f07fd5b2b8cb7c1633774eb7dfa164d36be9dbb49e400f1e): Bind for <IP_ADDRESS>:15909 failed: port is already allocated"}'")

I didn't use VNC, the command I used is
python train.py --num-workers 2 --env-id PongDeterministic-v3 --log-dir /tmp/pong
I saw lots of warnings like this, since I am using tensorflow 0.12
WARNING:tensorflow:From worker.py:27 in run.: initialize_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.variables_initializer` instead.
[2017-01-03 10:07:11,453] From worker.py:27 in run.: initialize_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.variables_initializer` instead.
WARNING:tensorflow:From worker.py:28 in run.: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.global_variables_initializer` instead.
[2017-01-03 10:07:11,454] From worker.py:28 in run.: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.global_variables_initializer` instead.
WARNING:tensorflow:From worker.py:37 in run.: __init__ (from tensorflow.python.training.summary_io) is deprecated and will be removed after 2016-11-30.
Instructions for updating:
Please switch to tf.summary.FileWriter. The interface and behavior is the same; this is just a rename.
[2017-01-03 10:07:11,829] From worker.py:37 in run.: __init__ (from tensorflow.python.training.summary_io) is deprecated and will be removed after 2016-11-30.
Instructions for updating:
Please switch to tf.summary.FileWriter. The interface and behavior is the same; this is just a rename.
[2017-01-03 10:07:11,845] Events directory: /tmp/pong/train_0
[2017-01-03 10:07:14,091] Starting session. If this hangs, we're mostly likely waiting to connect to the parameter server. One common cause is that the parameter server DNS name isn't resolving yet, or is misspecified.
I tensorflow/core/distributed_runtime/master_session.cc:993] Start master session 8040c947eeeb3ac4 with config:
device_filters: "/job:ps"
device_filters: "/job:worker/task:0/cpu:0"

[2017-01-03 10:07:17,266] Starting training at step=500
[2017-01-03 10:07:17,307] Resetting environment
[2017-01-03 10:07:32,594] Episode terminating: episode_reward=-21.0 episode_length=824
[2017-01-03 10:07:32,622] Resetting environment
Episode finished. Sum of rewards: -21. Length: 824

Ok, with that command I get

solved in half an hour. Thanks @tlbtlbtlb  looks like tensorflow version difference maters a lot.

Huh, I'll try to figure out what's going on with TF 0.12.

I installed tensorflow 0.12.1 and I still get 400+ steps/sec with 2 workers on my MBP.
I'll leave this closed, but if anyone can reproduce the low performance (~100 steps/sec on an MBP instead of ~400) I'd appreciate a report including all the package verrsions.


Weird errors while NPC is trying to step out of map?

Is there any way how to get rid of this? When the SEA monster reaches the edge of the map and tries (idk why) to step out of the map, the huge spam of error warnings shows up.

fixed for me


remove padding of DAOControllerView-container to align the table

https://nanopay.atlassian.net/browse/NP-1957

@googlebot I signed it!

@googlebot I signed it!

@googlebot I fixed it.

@googlebot I fixed it.

@googlebot I fixed it.


Support for rmdir

Creating this issue independent of #78.

[x] https://github.com/awslabs/mountpoint-s3/issues/83
[ ] Implement rmdir in the filesystem

Creating a directory is a local-only concept for Mountpoint. However, directory markers may exist from other applications such as S3A or the AWS Console.
Open question: should rmdir remove those?

My guess is no? It creates a weird situation where rmdir foo works if your keyspace looks like:
foo/

but not if it looks like
foo/a.txt

or even
foo/
foo/a.txt

I'd argue that rmdir would work in both cases. In the former, we delete the marker. In the latter, we perform the delete and it succeeds anyway.
There's some risk around rmdir where the keyspace looks like this, since you could remove a number of parent directories also:
foo/bar/baz/

If we stick to never deleting directory markers, then what do we expect from rmdir?

rmdir is a no-op, and the directory will still exist locally and remotely
rmdir is local-only, and the directory will be dropped from the superblock. A subsequent lookup on the parent may reintroduce the directory.
Something else?

My guess is no? It creates a weird situation where rmdir foo works if your keyspace looks like:
foo/

but not if it looks like
foo/a.txt

or even
foo/
foo/a.txt

rmdir is for removing empty directory right?


how to specfiy Keycloak Version 20.0.1

The latest version of the class object is java 17, does't match java 11 in keycloak 20.0.1.

Hello @Duncan-dsf,
For usage of your theme in Keycloak 20 you must use the retrocompat-*.jar jar generated by Keycloakify.
https://docs.keycloakify.dev/migration-guides/v8-greater-than-v9


How to modify scenarios

For example, I am wondering how to switch to 'Empty Goal Close' or '3 vs 1 with Keeper' scenarios listed in the paper. I have read the code. But what I have gotten is just that I can change number of left players agent controls. I am here for your help ^_^

Thanks for your attention. I have found all available scenarios in gfootball/doc/...


{{🚀[Feat]: Added Feature to upload files locally}}

Closes Issue: #57

Hi @jainaayush01, Thank you for the PR.
But actually, we are working on Refactoring and implementing redux. You can see PR #99, so once it is merged, then we will work on this PR for sure.
Please bare with us 🙌 😊

Hi @jainaayush01, we are done with the refactoring of code, so I would request you to remove the merge conflicts so we can preview the PR, and merge it once done. 🙌

Done.

Also, there is a compilation error

Please check once running code in local 🙌

Also, there is a compilation error

Please check once running code in local 🙌

my bad i should have checked!! sorry for that

I have copied the SyntaxEditor.js file from the main branch here and have added my changes there. Still, I am seeing 2 more file changes. please let me know if some more changes are to be made or should I just make a new PR with an updated codebase.

Preview Link - https://syntaxmeets-6urefc9zf-kothariji.vercel.app/
Hey @jainaayush01, the PR looks amazing, things are working great 🙌
⚠ but there are a few bugs

Even if we have explicitly mentionedthat we will accept only  .c, .cpp, .java, .js, .ts, .clj, .cljs, .cs, .cbl, .cob, .cpy, .erl,, but then also we are able to upload .jpeg, .exe etc. So can we validate the file extension in handleFileChange function, and if its not valid we can show an alert that, please upload the supported files only.

Another issue is that currently there are no such restrictions on the size of the file, but if you'll try uploading big files, the socket will be disconnected.  So it can be great if we can restrict the file size for now to max '10 kb'.

Please let me know for the same 🙌

I have fixed the above mentioned bugs if still there's something missing out please let me know.
🙌


Bug: Why moor fails to get the right rows based on today

This is probably caused by timezones - see also https://github.com/simolus3/moor/issues/286. Depending on which queries you use, you could store dates with a custom typeconverter using DateTime.toIso8601String() and DateTime.parse():
class FormattedDateTimes extends TypeConverter<DateTime, String> {
  const FormattedDateTimes();

  @override
  DateTime mapToDart(String fromDb) {
    if (fromDb == null) return null;

    return DateTime.parse(fromDb);
  }

  @override
  String mapToSql(DateTime value) => value?.toIso8601String();
}

You can then replace usages of dateTime in your table definitions by using text().map(const FormattedDateTimes()).
In your query, you could then use n.nextReviewTime.like('2020-10-13%')

@simolus3 I have another question about this. If I replace it into n.nextReviewTime.like('2020-10-13%'), will it affect the performance of the query, compared with the old one?

This is probably caused by timezones - see also #286. Depending on which queries you use, you could store dates with a custom typeconverter using DateTime.toIso8601String() and DateTime.parse():
class FormattedDateTimes extends TypeConverter<DateTime, String> {
  const FormattedDateTimes();

  @override
  DateTime mapToDart(String fromDb) {
    if (fromDb == null) return null;

    return DateTime.parse(fromDb);
  }

  @override
  String mapToSql(DateTime value) => value?.toIso8601String();
}

You can then replace usages of dateTime in your table definitions by using text().map(const FormattedDateTimes()).
In your query, you could then use n.nextReviewTime.like('2020-10-13%')

No, it should have a similar performance, as both queries require a full table scan.


Does JS Engine support extrakey as of right now?

Sorry if you've been getting this one a lot. If it doesn't NATIVELY support extrakey, does it at least support that one lua script that adds it? (Yes there's a script for extrakey in lua, it's really cool actually.)

it does not natively support extrakey
because of the chart loading system used in this engine, no

There is this that uses 0.7 https://github.com/FunkinExtraKeys/FNF-PsychEngine-EK

@JordanSantiagoYT could someone adopt your chart loading system to handle more than 4k and then put a LUA file in the code to make 6K charts?

...could someone adopt your chart loading system to handle more than 4k and then put a LUA file in the code to make 6K charts?

am i seeing this right???
"adopt"????

No, and Jordan said it never will.


Pickling doesn't work for GettableProperties

Pickling can't load classes with GettableProperties since it directly tries to setattr.

Hmm. Can they simply be excluded from the state?

I don't think so - We don't want to lose immutable attributes like UID, date created, etc. across pickling/unpickling.

Right. Hmm.
It seems like this is hard to solve in general, since they are so flexible. However, Is there a way we could tag certain attributes to be included in the state? Right now we are not storing the whole class dict, but rather just the entries that correspond to the properties. Could we give GettableProperty instances an optional argument that specifies a state attribute to save / restore? When it hit a GettableProperty, it would omit it from processing, but include any state attributes that were specified...?

I don't think I understand what you mean by a state attribute - could you give an example?

I was thinking something as simple as:
OLD
    def __setstate__(self, newstate):
        for key, val in iteritems(newstate):
            setattr(self, key, pickle.loads(val))

NEW
    def __setstate__(self, newstate):
        for key, val in iteritems(newstate):
            self._backend[key] = pickle.loads(val)

But then this piggy-backs onto some of the discussion in #113 about what sort of validation should happen on unpickling. With this, there would be none at all.

Ah. Okay, a GettableProperty may be:

Fully specified somehow through the other properties
Specified somewhere else, e.g., with _variable, and then it is presenting an interface to it.

The latter is the case when dealing w/ things like the fixed uuid case. So, in case (1), we actually don't want to try to unpack anything, because it is specified already from the rest of the state, and the GettableProperty doesn't allow setting. In case (2), we need to unpack something, but not the GettableProperty itself, and we don't know what. However, perhaps the GettableProperty itself can specify a list of attribute names like _variable, which are added to the state in its place, and then mapped back to the equivalent backing variables on load.
Currently, only things that show up in the _props dictionary are actually stored, so otherwise there is no way that the _variable attribute is going to be pickled, right?

These are set directly to _backend with #123


Improve ci with dotnet-releaser

Hey,
this is a small PR to improve the usage of dotnet-releaser (thank you for using it! 🙂 )

Adding build and test in Debug to dotnet-releaser (so that coverage takes it into account as well)
Use dotnet-releaser run so that it builds on regular commits and publish only when there is a tag and it is the main branch

Oh thank you!
I'm gonna have to sheepishly admit why it's configured like this - pure laziness. I'm wanting to deploy on each commit to main for now with using minver's autogenerated pre release version.
Granted, I probably shouldn't be deploying five or six times in a night. But if I wanted to deploy on every push and tag for main is there a configuration to do so?

I'm gonna have to sheepishly admit why it's configured like this - pure laziness. I'm wanting to deploy on each commit to main for now with using minver's autogenerated pre release version.
Granted, I probably shouldn't be deploying five or six times in a night. But if I wanted to deploy on every push and tag for main is there a configuration to do so?

Oh right, ok! There is nothing currently to handle this case properly.
Just to understand more the use case, you would like to have a mode where on e.g every commit, it could push a preview NuGet package for example, but it would not create a GitHub release for them or do you expect actually to create a release?

You got it-  every commit to main is a pre-release that is pushed to nuget but no gh release is published. Then once I'm ready to bump it out of pre-release I tag the version and upon tag push that does the full release.
PRs / pushes to branches other than main would get neither, of course.
That model matches what we are doing with Spectre too, so it isn't just a model for my laziness :-)

You got it- every commit to main is a pre-release that is pushed to nuget but no gh release is published. Then once I'm ready to bump it out of pre-release I tag the version and upon tag push that does the full release.

Ok understood, makes sense. I have updated dotnet-releaser which is adding nuget.publish_draft and I have updated this PR to leverage it, I haven't tested it but it should hopefully work as expected.

Right on, I appreciate that.
Happy to be a test case for this too.


Gen45 create demonstration methods

Description
Created demonstration methods in MainClass.java.

Accidental pull request with upstream repository. Meant to pull request with my fork.


Merge release into master again

@bot-gradle test and merge

OK, I've already triggered a build for you.


Ideas for supporting isize/usize

I know that it isn't safe to support isize or usize directly as their sizes change depending on the platform that the code runs on.  That said, it's still useful in some cases to be able to lay them out in memory.  I can see the following two methods of supporting them that aren't too horrible.

Feature gate the support, so that programmers need to opt into them.
Create unsafe versions of the appropriate traits that isize, usize, and anything else that is unsafe to implement can support.

I prefer the second option it's a lot easier to search for blocks of unsafe code and really verify them than to have some feature turned on that might be unsafe.  Would you be open to either of these ideas?
Why I'm after this
I need a better/safer alternative to abomonation that can handle cyclic data structures correctly.  Portability is less of a concern than speed (if I need to make it portable, I can add in a header that describes the sizes and layouts of primitive types held within, including any pointers).  I've already looked into a variety of serializers, and the closest I've found to what I need is rkyv, but in talking with the author, I've learned that cyclic data structures aren't supported, only DAGs.  All of the other serializers that I've found only support trees, or if they do support serializing DAGs and cyclic datastructures, do so at the cost of deserializing DAGs into trees (I'm looking at you serde).  In short, I want python's pickle, but for rust.  And since it doesn't appear to exist at the moment, I have to invent it.  binary-layout will likely be a low-level building block for it, assuming I can convince my boss to let me write it.

Afaik, pickle is portable and, depending on the pickle version, achieves this by either always using i64, or by having a different type tag for i32 and i64. Does it work for your use case to just always use i64 when you want to store isize?
If you really need this, I'm ok with adding it but behind big warning banners. Can you give an example on how the API with unsafe would look like? I'm not sure if unsafe is the right approach since we don't really break rusts safety guarantees. A feature flag "nonportable-types" could work, but as you said, a marker in the type definition is better. Another idea that may work is a NonPortable wrapper that you need to write:
define_layout!(name, BigEndian, {
   field1: i8,
   field2: NonPortable<isize>,
}

Or maybe you need to add the marker to the general layout and if you don't, then those types are unavailable
define_layout!(name, BigEndian, NonPortable, {
   field1: i8,
   field2: isize,
}

LayoutAs is a way to pre/post-process data while you're writing/reading it. In the memory, a isize as u32 looks exactly like a u32, also respecting endianness of the layout. How truncation works is up to your impl LayoutAs<u32> for usize code.

OK, so that sounds perfect!  Do you mind if I make a PR with the additions above?

It's fine, I can add it to my own crate easily enough.  It just seemed like a simple way of adding in support for isize/usize, that's all.


_DBRANCH=nightly Does not exist in docker hub

_DBRANCH=nightly is failing on install, had to manually change the bash script to use the "latest" tag instead.
not a big deal, just a heads up

Hello @johnster000
you're totally right -> Will change this - Thanks 👍🏻


Modules - Automated Tests

Currently our system of testing relies on confirmation of successful build during CI pipeline process, use of typescript models to enforce sensible data structures, code reviews on PRs, manual quick testing and general common sense.
Whilst this is reasonable for small projects and few contributors we're quickly moving beyond what is time-efficient or reasonably robust. I would suggest in the first instance we create a few simple e2e tests to make sure core platform features work as expected, and provide a basis to build on as more things crop up.
Open to suggestions on favourite tooling to do so, or anything else we might want to implement

hey, the most leg work is done here; basically a combination of puppeteer and cucumber.
in short,

you write all the cucumber step definitions like this
you reference the steps as this, in any order you like, and also pass parameters to it.

this runs in the CI as well, the stuff outside of './test-suite' is just fancy CLI tooling to fire up sample page
currently there is code in place to measure/intercept network requests as well, so you can add here your KPI for app size and what not. I still have somewhere a full chrome event log parser to analyze other things like LongTask-Reports, rage clicks but I left this to google lighthouse later on.
let me know, i can adjust this quickly for the current dev ops, it's BSD-3 so do whatever you like :-)
A typical cucumber test would look as follows:
Background:
Given I am connected to the one-army setup at 'your url here'
@debug
Scenario: User can not create poll
Given a user with less than '100' points
Then the poll button is not shown
I love it however, you can pipe this reports than also into automatic issues

Cool! Yeah I'm pretty fixed personally on puppeteer, I've used it with a few other projects and really like it (and am not aware of any widely used alternatives for e2e)
I know react comes with jest, I've also used Mocha (+chai) and a bit of Jasmine before which I had no issue with. I can see cucumber is pretty popular too but haven't ever used. I really like the look of what you've described.
My gut feeling at the moment is:
Unit - Jest + Enzyme (although not implemented for all components)
E2E - Puppeteer + cucumber
We could also push the boat out a little with the like of:
Lighthouse - we could link into their cli tools to run automated, this would be pretty straightforward and could be quite cool as an additional performance metric
Bundle size analyzer - something which we've seen come up is people adding dependencies which bloat. Might be nice to try catch these automatically too
A couple links which might be of use to people who are interested (and please add more if you come across any)

jest + enzyme
puppeteer + jest
[puppeteer + cucumber]https://medium.com/@anephenix/end-to-end-testing-single-page-apps-and-node-js-apis-with-cucumber-js-and-puppeteer-ad5a519ace0
2018 (Feb) tools roundup
React Docs - Jest testing

@PepijnSenders - I know you've used enzyme in the platform already, do you have any thoughts on the above conversation?
@SpaceK33z - Maybe you'd be able to share some quick thoughts too?

Also I've just started using cypress on another project and really like it

@chrismclarke , looks good, i am just concerned about : it doesn't seem to run locally, and adding performance KPIs tests won't be that easy but ok

Hey all, lighthouse is a good idea, but google analytics recently integrated this into their tooling. So you don't need to manually set it up anymore.
Jest + Enzyme are the tools I usually use for testing and nock for http mocking, or moxios specifically for axios.
For e2e I really like testcafe because they don't use the browser api which can be buggy sometimes. Cypress uses a similar method but was only for chrome when I started researching

Thanks @PepijnSenders  and @tx4x , really interesting points. Cypress is still only chrome, more browsers on the roadmap but no real timeframe given from what I can see.
I'll try find some time this week to continue exploring a few options and push for small implementation, then create more specific issues to follow-up on.
(also an extra mostly for my own reference/talking with the design team - https://cssstats.com/ could help us keep an eye on unnecessary duplication/convolution across frontend dev)

In chrome devtools you can also calculate how much of your css is actually used. Or we can move to a library like emotion!

@PepijnSenders : yup, that's I'd always recommend to split the whole story up into cross browser e2e/functional testing and KPI testing: basically all the stuff you want to run as pre-commit hook which are so much easier with a few puppeteer scripts and a handful chrome event parsers. KPIs should act here ideally as early safety net, so no one can add resources/scripts that exceed size, LongTask, FPS, memory, gpu,... budgets. There's also 'App-Index' btw. (i have some background in APM/RUM ;-)
g

Life in acronyms :p

:p
yep, I should have write these things out. that are the lessons learned

larger sites (ebay, atm, etc..) instrument their pages at run-time for KPIs they can improve progressively. the collected beacons(first render, resource-timing-api, rage clicks,...) go then back into the dev cycle but also trigger alarms when users have crashes. this is done by injecting their sites with 3th party monitoring agents.... possibly we  can skip this for some time and go straight to
have at least some build-time tests in place preventing too big builds, slower frame rates, unresponsiveness, etc.. from getting into master. these tests should run fast and honestly i don't know better than chrome APIs and parsing events. this safes you from lots of trouble :-) as said, a few puppeteer sctipts (i have:-) and we're set.
functional/e2e tests running on CI are independent and kinda own story
g

any news or decisions ? if not to I add Cucumber as proposed, as Typescript based CLI tool via puppeteer scripts. I don mind the tooling per se. Soon we should have some basic tests (local, pre-commit hook) in place, no ?

I'm still pretty keen to put in cypress as I really like it and want to get more familiar, however finding it hard to find the time for everything right now (more people in project means a lot more oversight work + based in various parts of Africa for work for next 6 weeks) so if anybody wants to add anything else then they can feel free.
The main downside to cypress is it's freaking huge as a dev dependency! (like 500MB), so probably best to add scripts with expectation that anyone running tests has installed globally (easy enough to add to cli pre-build script too)

We've (finally) gotten around to implementing cypress testing, with a bunch of specs and integrations already done (thanks @tmhung88!)
Closing this issue here as dealing with specific tests on a case-by-case basis


incorrect voxel dimensions in derivatives/resampled

Looks like the fix in #13 for the ome.zarr broke the resampled derivatives , they are off by 1000

actually looks like the fix in #13 was buggy since it the physical_size_{xyz} variables are in microns not millimeters

This is now fixed in #32 -- note it was only affecting json metadata in the main branch -- the error in downsampled niftis was limited to the lifecanvas branch..


"shader_get_param_list" returns texture parameters last

Godot version:
3.2.3.Stable
OS/device including version:
NA
Issue description:

"VisualServer.shader_get_param_list()" returns texture parameters last. This means that ShaderMaterials display their uniforms in the inspector in a different order than they are declared in the shader. This makes it difficult to make nice custom inspectors for shader parameters and is confusing when using a custom shader in general.

Result of printing "shader_get_param_list"
[ {
"class_name": "",
"hint": 0,
"hint_string": "",
"name": "float_uniform",
"type": 3,
"usage": 7
}, {
"class_name": "",
"hint": 0,
"hint_string": "",
"name": "int_uniform",
"type": 2,
"usage": 7
}, {
"class_name": "",
"hint": 0,
"hint_string": "",
"name": "vec_uniform",
"type": 7,
"usage": 7
}, {
"class_name": "",
"hint": 17,
"hint_string": "Texture",
"name": "sampler_uniform1",
"type": 17,
"usage": 7
}, {
"class_name": "",
"hint": 17,
"hint_string": "Texture",
"name": "sampler_uniform2",
"type": 17,
"usage": 7
}, {
"class_name": "",
"hint": 17,
"hint_string": "Texture",
"name": "sampler_uniform3",
"type": 17,
"usage": 7
} ]

Steps to reproduce:
Open the attached project and observe the shader on the object compared to it's shader parameter inspector. Use the "print params" checkbox to see the shader_get_param_list output.
Minimal reproduction project:

shader_get_param_list.zip

I agree this should be changed to match the declaration order. Feel free to open a pull request for this :slightly_smiling_face:

I agree this should be changed to match the declaration order. Feel free to open a pull request for this :slightly_smiling_face:

I'll try and see if I can figure out what's causing it and do the pull request. Seems like a good first bug fix for me to try.

I'll try and see if I can figure out what's causing it and do the pull request. Seems like a good first bug fix for me to try.

I thought https://github.com/godotengine/godot/blob/master/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp line 335 looked like a likely candidate to where this issues is
void RendererSceneRenderForward::ShaderData::get_param_list(List<PropertyInfo> *p_param_list) const {
	Map<int, StringName> order;

	for (Map<StringName, ShaderLanguage::ShaderNode::Uniform>::Element *E = uniforms.front(); E; E = E->next()) {
		if (E->get().scope != ShaderLanguage::ShaderNode::Uniform::SCOPE_LOCAL) {
			continue;
		}

		if (E->get().texture_order >= 0) {
			order[E->get().texture_order + 100000] = E->key();
		} else {
			order[E->get().order] = E->key();
		}
	}

	for (Map<int, StringName>::Element *E = order.front(); E; E = E->next()) {
		PropertyInfo pi = ShaderLanguage::uniform_to_property_info(uniforms[E->get()]);
		pi.name = E->get();
		p_param_list->push_back(pi);
	}
}

Adding 10000 to the texture_order is to make sure they are at the end I assume, I don't really get what's going on here.
I tried commenting out the if statement and always doing the or part and that causes the texture slots to always be in front and override each other as well it seemed, so obviously this was done to work around some issue.
Someone a bit more familiar with this might need to chime in.

I thought https://github.com/godotengine/godot/blob/master/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp line 335 looked like a likely candidate to where this issues is
void RendererSceneRenderForward::ShaderData::get_param_list(List<PropertyInfo> *p_param_list) const {
	Map<int, StringName> order;

	for (Map<StringName, ShaderLanguage::ShaderNode::Uniform>::Element *E = uniforms.front(); E; E = E->next()) {
		if (E->get().scope != ShaderLanguage::ShaderNode::Uniform::SCOPE_LOCAL) {
			continue;
		}

		if (E->get().texture_order >= 0) {
			order[E->get().texture_order + 100000] = E->key();
		} else {
			order[E->get().order] = E->key();
		}
	}

	for (Map<int, StringName>::Element *E = order.front(); E; E = E->next()) {
		PropertyInfo pi = ShaderLanguage::uniform_to_property_info(uniforms[E->get()]);
		pi.name = E->get();
		p_param_list->push_back(pi);
	}
}

Adding 10000 to the texture_order is to make sure they are at the end I assume, I don't really get what's going on here.
I tried commenting out the if statement and always doing the or part and that causes the texture slots to always be in front and override each other as well it seemed, so obviously this was done to work around some issue.
Someone a bit more familiar with this might need to chime in.


Problems on api manager 20230228

I upgraded api manager from 20220530 to 20230228 and from dynatrace-aspectj-1.0.1.jar to dynatrace-aspectj-1.0.2.jar and now I am seeing this error in the gateway trace:
`

DEBUG
3/31/23, 11:10:49.264
Adding MessageListener: com.vordel.circuit.net.ConnectionProcessor$1@b2a1573

INFO
3/31/23, 11:10:49.265
Dynatrace  :: outgoing x-dynatrace header  FW4;-462096422;6;1834380753;184;0;-1871449397;1945;9f22;2h01;3h6d566dd1;4hb8;6h4a0b72fdbd2657ea40b2902bc1f7594b;7h4d10fe6eb31f70c6

FATAL
3/31/23, 11:10:49.265
[1695329e] can't set fieldname 'requestHeader': must be done before node is being started.

FATAL
3/31/23, 11:10:49.265
[1695329e] can't set fieldname 'requestHeader': must be done before node is being started.

FATAL
3/31/23, 11:10:49.265
[1695329e] can't set fieldname 'requestHeader': must be done before node is being started.

FATAL
3/31/23, 11:10:49.265
[1695329e] can't set fieldname 'requestHeader': must be done before node is being started.

FATAL
3/31/23, 11:10:49.265
[1695329e] can't set fieldname 'requestHeader': must be done before node is being started.

FATAL
3/31/23, 11:10:49.265
[1695329e] can't set fieldname 'requestHeader': must be done before node is being started.

FATAL
3/31/23, 11:10:49.265
[1695329e] can't set fieldname 'requestHeader': must be done before node is being started.

DEBUG
3/31/23, 11:10:49.265
Get connection to host devapi.example.com port 443 scheme https

`

It also appears not to create services for each API in api manager like it did before.  This happened with 20230228 on both versions of dynatrace-aspectj-1.0.x.jar.  Now all the traffic in dynatrace shows under the "Requests executed in background threads of vshell" service which isn't very nice to look at compare to before.

Hi @rathnapandi
Is this something you will be able to look into?  If you need more info or want me to test anything let me know.  Here are a couple screenshots from dyantrace:
The old version creates services for each API in api manager:

The new one only creates services for built in API manager API's:

All the API traffic shows under "Requests executed in background threads of vshell"
Thanks,
Jeremiah

Hi @jschutte27,
There is a java api change on Feb 2023 release. Can you test with
dynatrace-aspectj-1.0.3.jar.zip
unzip dynatrace-aspectj-1.0.3.jar.zip and copy the jar file to API Gateway.

Hi @rathnapandi,
I tried the supplied jar file and it caused all requests to error 500 on the gateway.  Here is a trace from the healthcheck endpoint:
70c83564f20093c96a0020ad.txt
Is there anything else I can provide to troubleshoot?
Thanks,
Jeremiah

Hi @jschutte27,
Can you add a host http header and test it?   or use the attached jar file.
dynatrace-aspectj-1.0.3-hostheaderfix.jar.zip

@jschutte27  Thanks for the confirmation.


New Feature: Money Drop

Nothing is misbehaving, i am making a rpg server and it would be nice if sentinels could drop currency.

Make a money item, and put that in the drops.
Or use Denizen and write a script that uses - money give (...) when a player kills your NPC


Respect decimal numbers

If someone posts "0.5!", it shouldn't calculate the factorial of 5!

We'll just tread "0.5!" as not a factorial, since we're working with BigInt and not with floats


README: Minor copy edits

Why?
Noticed some further readability problems in the README. A tool this fantastic should have the best documentation!
What?
This is a combination of 2 commits.

README: Minor copy edit to examples
README: Spelling/grammar copy edit to intro text

Thank you for fixing up the grammar, I really appreciate it! 😊

Thank you for fixing up the grammar, I really appreciate it! 😊


Switch tempdir to tempfile

Tempdir is deprecated and got merged into tempfile. We should update all references to tempdir to rather use tempfile
Basically search all Cargo.toml files for tempdir

Closed by #603


Indexer

customer:
performer:
deadline:
estimated:
started:
actual:
completed:
confirmed:
dependencies:

[x] anoma/anoma-archive#1299

supersedes:

We need an Indexer Implementation
An Indexer, in short, is a service that queries information about the state of the node.
I believe we will want the Indexer to do the following:

give all the unrevealed commitments
give all the unspent resources
give all the nullifiers
give all the unspent resources with some custom filter from a sample application.
give the current block height

Implementation Ideas
I believe we can implement the Indexer in a few ways depending on the storage retrieval mechanisms we chose.
But the basic strategy is as follows:

The indexer subscribes to:

Messages about new blocks

From this subscription it can get facts about:

The new nullifiers to remove unrevealed commitments
New commitments to add to the unrevealed commitments
new nullifiers to add to the nullifier set
The new block height

Which should satisfy everything.
The genserver should likely store:

All the non nullified commitments

We can use the blob storage to get the resources from the commitments

The current block height
The known nullifiers

Overall it would be a rather simple genserver.

Another topic for the Kudos specific filter


Web-console: prevent unnecessary loading of disabled data sources

To prevent the unnecessary loading of disabled datasources, when the user flips the show disabled switch the datasourcesQueryManager will automatically refresh with using the /druid/coordinator/v1/metadata/datasources?includeDisabled endpoint. If the showDisabled switch is off, it will refresh on using the /druid/coordinator/v1/metadata/datasources endpoint, however it will only do so when the user manually refreshes.

LGTM, thank you for the fixes 👍