Add parameter to filter violations by instance ID

Add a parameter to filter violations by instance ID. This would be useful to find violations caused by instances that are currently running in AWS.
Use case: We have many unclosed violations, most referring to instances no longer in existence. We want a way to filter them to look at the ones that come from active instances. Filtering by data is not good enough, because some violations are only checked and reported upon instance creation, and some instances may have been running for a long time. The proposed extra parameter can be used in this situation, for example, by looking for IDs of the currently-running instances in the AWS config frontend.

Current coverage is 46.60%

Merging #397 into master will not affect coverage as of f9738b1

@@            master   #397   diff @@
=====================================
  Files          127    127
  Stmts         2942   2942
  Branches       242    242
  Methods          0      0
=====================================
  Hit           1371   1371
  Partial         61     61
  Missed        1510   1510

Review entire Coverage Diff as of f9738b1

Powered by Codecov. Updated on successful CI builds.

Sounds reasonable to me. @fschlesinger do you also plan to add the actual implementation?

Merging just the API definition does not make sense :smirk:

@hjacobs https://github.com/zalando-stups/fullstop#propose-api-changes

@fschlesinger I wonder if you still need this feature, or if I can close this request?

@harti2006 feel free to close it


Moving to Poetry as a dependency management tool

I have been thinking that Poetry would be a great way to control dependencies.

It would eliminate having different files for development dependencies, and production ones
It would automatically control and update dependencies when possible, without collisions(which currently happen on nbmake and pytest package)
It would automatically create a virtual environment for developers to develop with
It would allow for easier publishing of the package to PyPI

As of by writing this Issue, Poetry's version is 1.1.12 and it doesn't allow to have testing dependencies yet, but in version 1.2 they would make it possible. For now, I think it would be best to keep testing dependencies in the development section of poetry.

I had a Teams conference call, where @chilango74 described moving to Poetry as a little bit challenging, as long as okama targets not only developers but also average users of Python with their conda environment. So the transition has to be scrutinized in that way as well

Switching to poetry would affect only devlopers who install it with pip install git+https://github.com/mbk-dev/okama@dev. General users will still be able to install the package in anaconda environments. Hence moving to poetry seems to be a good idea.

I'd also target including the package in the official anaconda channel. This way we would be able to use conda install okama too. Which is quite common for scientific packages.

Resolved in #24


registerInstrumentations uses the global provider instead of the one passed in

What happened?
Steps to Reproduce
Create an open telemetry setup with 2 providers. Register one globally and pass the other as tracerProvider to registerInstrumentations
Then run a process which results in the instrumentation generating traces.
Expected Result
The instrumentation will only write to the provider passed as tracerProvider
Actual Result
The instrumentation writes to the global provider (defaultProvider
Additional Details
Basically I want to sample the traces coming from from Prisma, but I do not want to sample the traces that we manually instrument via wrapWithSpan etc. Not sure if there is some other way to achieve this, but it's very confusing that the provider I pass in to registerInstrumentaitons is not used.
OpenTelemetry Setup Code
import * as api from "@opentelemetry/api";
import { AsyncHooksContextManager } from "@opentelemetry/context-async-hooks";
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
import { registerInstrumentations } from "@opentelemetry/instrumentation";
import { Resource } from "@opentelemetry/resources";
import {
  BasicTracerProvider,
  BatchSpanProcessor,
  ConsoleSpanExporter,
  SimpleSpanProcessor,
  TraceIdRatioBasedSampler,
} from "@opentelemetry/sdk-trace-base";
import {
  SEMRESATTRS_DEPLOYMENT_ENVIRONMENT,
  SEMRESATTRS_SERVICE_NAME,
  SEMRESATTRS_SERVICE_VERSION,
} from "@opentelemetry/semantic-conventions";
import { PrismaInstrumentation } from "@prisma/instrumentation";
import { ReploError } from "schemas/errors";

import { gitSha, reploEnv } from "../env";

export function openTelemetrySetup() {
  // NOTE (Gabe 2024-05-07): a context manager is required to propagate the
  // context for span nesting
  const contextManager = new AsyncHooksContextManager().enable();
  api.context.setGlobalContextManager(contextManager);

  // NOTE (Gabe 2024-05-07): This uses OTEL_EXPORTER_OTLP_XXXX env vars for
  // configuration.
  const otlpTraceExporter = new OTLPTraceExporter();

  const defaultProvider = new BasicTracerProvider({
    resource: new Resource({
      [SEMRESATTRS_SERVICE_NAME]: "replo-publisher",
      [SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: reploEnv,
      [SEMRESATTRS_SERVICE_VERSION]: gitSha,
    }),
  });
  const sampledProvider = new BasicTracerProvider({
    // NOTE (Gabe 2024-05-07): Sampling is enabled here to limit the performance
    // impact.
     sampler: new TraceIdRatioBasedSampler(0.1),
    resource: new Resource({
      [SEMRESATTRS_SERVICE_NAME]: "replo-publisher-prisma",
      [SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: reploEnv,
      [SEMRESATTRS_SERVICE_VERSION]: gitSha,
    }),
  });

  if (reploEnv === "production") {
    sampledProvider.addSpanProcessor(new BatchSpanProcessor(otlpTraceExporter));
    defaultProvider.addSpanProcessor(new BatchSpanProcessor(otlpTraceExporter));
  } else {
    // NOTE (Gabe 2024-05-07): this can be uncommented to write traces to the
    // console during development.
    sampledProvider.addSpanProcessor(
      new SimpleSpanProcessor(new ConsoleSpanExporter()),
    );
    defaultProvider.addSpanProcessor(
      new SimpleSpanProcessor(new ConsoleSpanExporter()),
    );
  }

  defaultProvider.register();
  api.trace.setGlobalTracerProvider(defaultProvider);

  registerInstrumentations({
    instrumentations: [new PrismaInstrumentation()],
    tracerProvider: sampledProvider,
  });
}
const tracer = api.trace.getTracer("replo-publisher");

export async function wrapWithSpan<R>(
  fn: () => Promise<R>,
  name: string,
  parentContext: api.Context,
): Promise<R> {
  const span = tracer.startSpan(name, {}, parentContext);
  try {
    const result = await fn();
    span.setStatus({ code: api.SpanStatusCode.OK });
    return result;
  } catch (error: unknown) {
    let message: string | undefined;
    if (error instanceof ReploError) {
      message = error.message;
    }
    span.setStatus({
      code: api.SpanStatusCode.ERROR,
      message,
    });
    throw error;
  } finally {
    span.end();
  }
}

package.json
{
  "name": "",
  "private": true,
  "version": "0.0.0",
  "workspaces": {
    "nohoist": [
      "react"
    ]
  },
  "scripts": {
    "dev": "dotenv -e ../../.env -- concurrently -k --names \"Esbuild,Nodemon\" -c \"bgBlue.bold,bgMagenta.bold,bgRed.bold\" \"yarn watch:build\" \"yarn watch:server\"",
    "watch:build": "tsx scripts/build.mts --watch=true",
    "watch:server": "doppler run -p publisher -c dev -- nodemon \"./dist/main.js\" --watch \"./dist\"",
    "build": "tsx scripts/build.mts",
    "docker-build": "docker build -t replo-publisher -f Dockerfile ../../ --build-arg=\"COMMIT=$(git rev-parse HEAD)\"",
    "docker-run": "./scripts/docker-run.sh",
    "start": "node dist/main.js",
    "start-ci": "IS_TESTING=true doppler run -p publisher -c dev -- yarn start",
    "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}' --fix --max-warnings=0",
    "lint:report": "eslint --output-file eslint_report.json --format json 'src/**/*.{js,jsx,ts,tsx}' --max-warnings=0",
    "tsc": "tsc",
    "prettier": "prettier --write .",
    "test": "IS_TESTING=true doppler run -p publisher -c dev -- vitest --config=vite.unit.config.mts --run",
    "watch-test": "vitest --config=vite.unit.config.mts",
    "integration:dev": "IS_TESTING=true doppler run -p publisher -c dev -- vitest --config=vite.integration.config.mts",
    "integration": "IS_TESTING=true doppler run -p publisher -c dev -- vitest --config=vite.integration.config.mts --run",
    "start:test": "concurrently -k --names \"Esbuild,Nodemon\" \"yarn watch:build\" \"yarn watch:server\"",
    "clean": "rm -rf node_modules && rm -rf dist && rm -rf .turbo",
    "graphql:codegen": "doppler run -p publisher -c dev -- graphql-codegen --config graphql-codegen.ts",
    "patch": "patch-package"
  },
  "dependencies": {
    "@aws-sdk/client-s3": "^3.238.0",
    "@fastify/autoload": "5.8.0",
    "@fastify/cors": "9.0.1",
    "@fastify/helmet": "11.1.1",
    "@fastify/multipart": "8.2.0",
    "@fastify/rate-limit": "9.1.0",
    "@fastify/static": "7.0.3",
    "@immobiliarelabs/fastify-sentry": "8.0.1",
    "@logdna/logger": "^2.6.6",
    "@opentelemetry/api": "^1.8.0",
    "@opentelemetry/context-async-hooks": "^1.24.1",
    "@opentelemetry/exporter-trace-otlp-http": "^0.51.1",
    "@opentelemetry/instrumentation": "^0.51.1",
    "@opentelemetry/resources": "^1.24.1",
    "@opentelemetry/sdk-trace-base": "^1.24.1",
    "@opentelemetry/sdk-trace-node": "^1.24.1",
    "@opentelemetry/semantic-conventions": "^1.24.1",
    "@prisma/client": "^5.13.0",
    "@prisma/instrumentation": "^5.13.0",
    "@prisma/nextjs-monorepo-workaround-plugin": "^5.13.0",
    "@segment/analytics-node": "^0.0.1-beta.17",
    "@sentry/core": "7.112.1",
    "@sentry/integrations": "7.112.1",
    "@sentry/node": "7.112.1",
    "@trpc-limiter/memory": "0.0.3",
    "@trpc/server": "next",
    "@types/async-retry": "^1.4.8",
    "@types/safe-compare": "^1.1.2",
    "add": "^2.0.6",
    "async-retry": "^1.3.3",
    "autoprefixer": "^10.4.14",
    "customerio-node": "^4.1.1",
    "esbuild": "0.17.19",
    "esbuild-plugin-pino": "2.1.1",
    "esbuild-sass-plugin": "2.9.0",
    "fastify": "4.25.2",
    "fastify-plugin": "4.5.1",
    "fastify-raw-body": "4.3.0",
    "fastify-sse-v2": "^4.0.0",
    "fastify-type-provider-zod": "1.1.9",
    "fs-extra": "^11.1.0",
    "google-auth-library": "^9.6.2",
    "got": "^12.5.2",
    "graphql-request": "^6.1.0",
    "graphql-tag": "^2.11.0",
    "jsonrepair": "^3.8.0",
    "jsonwebtoken": "^9.0.0",
    "lodash-es": "^4.17.21",
    "node-fetch": "^3.3.1",
    "node-html-parser": "^6.1.5",
    "openai": "^4.32.1",
    "patch-package": "^8.0.0",
    "pino": "9.0.0",
    "pino-pretty": "11.0.0",
    "postcss": "^8.4.24",
    "postcss-minify": "^1.1.0",
    "posthog-node": "^3.1.3",
    "prom-client": "14.2.0",
    "query-string": "^8.1.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "replo-database": "*",
    "replo-logger": "*",
    "replo-runtime": "*",
    "replo-shared": "*",
    "replo-utils": "*",
    "retoolrpc": "^0.1.6",
    "safe-compare": "^1.1.4",
    "sass": "1.58.1",
    "schemas": "*",
    "stripe": "^14.19.0",
    "superjson": "2.2.1",
    "tinycolor2": "^1.6.0",
    "uuid": "9.0.1",
    "workerpool": "^9.1.1",
    "zod": "^3.19.1",
    "zod_utilz": "^0.7.3",
    "zx": "^7.2.3"
  },
  "devDependencies": {
    "@graphql-codegen/cli": "4.0.1",
    "@graphql-codegen/typescript": "^4.0.0",
    "@graphql-codegen/typescript-graphql-request": "^5.0.0",
    "@graphql-codegen/typescript-operations": "^4.0.0",
    "@sentry/esbuild-plugin": "2.16.1",
    "@types/fs-extra": "^9.0.13",
    "@types/jsonwebtoken": "^9.0.2",
    "@types/lodash-es": "^4.17.6",
    "@types/node": "^20.12.4",
    "concurrently": "^7.3.0",
    "css-loader": "^6.7.3",
    "dotenv": "^16.0.1",
    "dotenv-cli": "^7.3.0",
    "eslint": "^8.47.0",
    "eslint-config-replo": "*",
    "graphql": "^15.8.0",
    "nodemon": "^2.0.20",
    "prettier": "3.2.5",
    "tsconfig-replo": "*",
    "tsx": "4.10.5",
    "typescript": "^5.4.5",
    "vite": "5.0.12",
    "vitest": "1.2.2"
  },
  "engines": {
    "node": "20.x"
  }
}

Relevant log output
replo-publisher:dev: [Nodemon]   resource: {
replo-publisher:dev: [Nodemon]     attributes: {
replo-publisher:dev: [Nodemon]       'service.name': 'replo-publisher',
replo-publisher:dev: [Nodemon]       'telemetry.sdk.language': 'nodejs',
replo-publisher:dev: [Nodemon]       'telemetry.sdk.name': 'opentelemetry',
replo-publisher:dev: [Nodemon]       'telemetry.sdk.version': '1.24.1',
replo-publisher:dev: [Nodemon]       'deployment.environment': 'development',
replo-publisher:dev: [Nodemon]       'service.version': undefined
replo-publisher:dev: [Nodemon]     }
replo-publisher:dev: [Nodemon]   },
replo-publisher:dev: [Nodemon]   traceId: '12612a54851409041dcd25156a61bdd2',
replo-publisher:dev: [Nodemon]   parentId: '2d5668bd154cce8b',
replo-publisher:dev: [Nodemon]   traceState: undefined,
replo-publisher:dev: [Nodemon]   name: 'prisma:engine',
replo-publisher:dev: [Nodemon]   id: '059228e56d19b1e4',
replo-publisher:dev: [Nodemon]   kind: 0,
replo-publisher:dev: [Nodemon]   timestamp:<PHONE_NUMBER>384988,
replo-publisher:dev: [Nodemon]   duration: 2000,
replo-publisher:dev: [Nodemon]   attributes: {},
replo-publisher:dev: [Nodemon]   status: { code: 0 },
replo-publisher:dev: [Nodemon]   events: [],
replo-publisher:dev: [Nodemon]   links: []
replo-publisher:dev: [Nodemon] }

It looks like the primsa instrumentation does not use that tracer that's passed in, but gets the tracer directly from the API. This does not look like it's a bug in registerInstrumentation().
Is there a specific reason why you want to sample traces that are created by the Prisma instrumentation, but not your own? The sampled flag is part of the trace context, as it's not common to sample part of a trace (dropping prisma spans sometimes, keeping all manually instrumented spans, if I understand correctly) - that's also one of the reasons why Span ID is not part of the sampling decision. Telemetry will be inconsistent this way and it'll always look like there's stuff missing.

Got it, yeah looks like a bug on Prisma's implementation, guess we can close this one. Thanks for the quick response and investigation!
The reason I have it set up this way is that I want to use sampling on Prisma traces because we generate tons of them and I do not want to affect the performance of our application, nor do we actually need all of the. I do NOT want to sample the manually instrumented traces because we only use them for certain key processes where we want as much visibility as possible.
Not sure I understand what you're suggesting. My assumption is that because the sampling is configured on the provider and that if I have two separate providers then I should be able to sample certain traces and not others. Is there some other way I can achieve this behavior?

hey @pichlermarc I closed the issue because I don't believe it's a problem with this repo, but I would still love you input on the above when you get a second 🙏

The reason I have it set up this way is that I want to use sampling on Prisma traces because we generate tons of them and I do not want to affect the performance of our application, nor do we actually need all of the. I do NOT want to sample the manually instrumented traces because we only use them for certain key processes where we want as much visibility as possible.
Not sure I understand what you're suggesting. My assumption is that because the sampling is configured on the provider and that if I have two separate providers then I should be able to sample certain traces and not others. Is there some other way I can achieve this behavior?

The reason I have it set up this way is that I want to use sampling on Prisma traces because we generate tons of them and I do not want to affect the performance of our application, nor do we actually need all of the. I do NOT want to sample the manually instrumented traces because we only use them for certain key processes where we want as much visibility as possible.
Not sure I understand what you're suggesting. My assumption is that because the sampling is configured on the provider and that if I have two separate providers then I should be able to sample certain traces and not others. Is there some other way I can achieve this behavior?

Ah I see. The Sampler is a user-implementable interface for that reason. You could implement a sampler that in essence delegates to a AlwaysOnSampler for your own spans and a TraceIdBasedRatioSampler for the others (you could distingush them by their attributes, or by span name).
Then you can combine that with a ParentBasedSampler that will delegate the sampling decision to the your custom sampler if the span is a root span.
This way traces you started will always be kept, and traces you did not start will not be kept in n% of cases. This way you have one TracerProvider with a custom sampler that will make a sampling decision based on your criteria (and respect previous sampling decisions to avoid broken traces).

mmm that makes a lot of sense, I'll look into doing that.
The reason I didn't see my setup as being problematic is that the Prisma traces and our manual traces are entirely separate, neither is a parent of the other, so we wouldn't get into a situation where part of a trace disappears, but it sounds like y'all have better way to deal with this type of situation.
Thanks!!

I implemented a Sampler like you suggested and it works great, thanks again for the guidance!

Glad I could help :)


Add method to reset resource variables.

Add method to reset resource variables. Call this method from ResetVariableTensors.
BUG=http://b/220940833

Who found it a good idea to call free (via FreeSubgraphs) on all the nodes that are still being used for invocation later?


haskell developPackage  error: creating directory '/nix/var

Issue description
I try using haskell's developPackage but the
{ pkgs ? import <nixpkgs> {} }:

  devPkg = pkgs.haskellPackages.developPackage {
  root = ./hs;
};
in
  devPkg

that I run from a folder that contains hs/hs.cabal and the haskell source code. Then I run nix-shell
$ nix-shell shell-develop.nix
building '/nix/store/h5vyjlmllyvcqsbq89gs06i09j1l9gm1-cabal2nix-hs.drv'...
installing
error: creating directory '/nix/var': Permission denied
error: creating directory '/nix/var': Permission denied
** need a revision for VCS when the hash is given. skipping.
** need a revision for VCS when the hash is given. skipping.
** need a revision for VCS when the hash is given. skipping.
** need a revision for VCS when the hash is given. skipping.
cabal2nix: user error (Failed to fetch source. Does this source exist? Source {sourceUrl = "/nix/store/fgiafw1caz7bnqwy7lrp6rg076z5n19s-hs", sourceRevision = "", sourceHash = Guess "", sourceCabalDir = ""})
note: keeping build directory '/tmp/nix-build-cabal2nix-hs.drv-7'
builder for '/nix/store/h5vyjlmllyvcqsbq89gs06i09j1l9gm1-cabal2nix-hs.drv' failed with exit code 1
error: while evaluating anonymous function at /home/teto/mptcpnetlink/shell-develop.nix:5:1, called from undefined position:
while evaluating 'developPackage' at /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:207:7, called from /home/teto/mptcpnetlink/shell-develop.nix:10:12:
while evaluating anonymous function at /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:210:20, called from /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:218:34:
while evaluating 'callCabal2nix' at /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:180:32, called from /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:213:9:
while evaluating 'overrideCabal' at /home/teto/nixpkgs/pkgs/development/haskell-modules/lib.nix:37:24, called from /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:190:8:
while evaluating 'callPackageKeepDeriver' at /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:156:33, called from /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:190:23:
while evaluating 'overrideCabal' at /home/teto/nixpkgs/pkgs/development/haskell-modules/lib.nix:37:24, called from /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:157:5:
while evaluating 'callPackage' at /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:115:22, called from /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:157:20:
while evaluating 'callPackageWithScope' at /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:75:37, called from /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:115:28:
while evaluating 'makeOverridable' at /home/teto/nixpkgs/lib/customisation.nix:67:24, called from /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:98:8:
while evaluating 'drvScope' at /home/teto/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix:88:18, called from /home/teto/nixpkgs/lib/customisation.nix:69:12:
build of '/nix/store/h5vyjlmllyvcqsbq89gs06i09j1l9gm1-cabal2nix-hs.drv' failed

and the error is not that clear, why would it try to create /nix/var ?
the hs.cabal file contains:
name: netlink-pm
version: 1.0.0
license: GPL-3
license-file: LICENSE
cabal-version: >= 1.18
build-type: Simple

executable project1
    build-depends: base < 5, netlink
    main-is: daemon.hs
    default-language: Haskell2010

Steps to reproduce
Technical details

system: "x86_64-linux"
host os: Linux 4.14.24, NixOS, 18.09.git.31145cb (Jellyfish)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.0.4
nixpkgs: /home/teto/nixpkgs

I can't reproduce this.

@mpickering thanks for trying.
I tried on upstream nixos-unstable with the same result. My haskell overlay just consists in       zeromq4-haskell = prev.haskell.lib.dontCheck hprev.zeromq4-haskell;so I doubt it's responsible for the error.
You might be able to reproduce by cloning https://github.com/teto/netlink_pm and running nix-shell shell-develop.nix in the root folder. This repository is a huge mess as I try to convert a python script in haskell and learning about the haskell/nix quirks.

I can reproduce this with
{ pkgs ? import <nixpkgs> {} }:

pkgs.haskellPackages.developPackage {
  root = ./emptydir; # this directory does not contain an emptydir.cabal
}

Note that your hs.cabal is a symlink to a file in /home/teto.

thanks !
hs.cabal  is a symlink towards /home/teto/mptcpnetlink/hs/netlink-pm.cabal, ie, the netlink-pm.cabal in the same folder (https://github.com/teto/netlink_pm/blob/new/hs/netlink-pm.cabal). Depending on the tool (I don't remember if it's cabal/stack or another one), the name of the .cabal file must adopt different conventions. Either way, I am not sure why developPackage has this constraint. Wouldn't it be possible to search for a *.cabal and warn if there are several.
The symlink is valid
$ head /home/teto/mptcpnetlink/hs/hs.cabal
name: netlink-pm
version: 1.0.0
license: GPL-3
license-file: LICENSE
cabal-version: >= 1.18
build-type: Simple

executable project1
    build-depends: base < 5, netlink
    main-is: daemon.hs

but it's cool you could reproduce it with an empty dir.

The symlink is valid

But it's not dereferenced during import to the store.
{ pkgs ? import <nixpkgs> {} }:

pkgs.stdenv.mkDerivation {
  name = "test";
  version = "1";
  src = ./.;
  phases = [ "installPhase" ];
  installPhase = ''
    ls -l $src/symlink
    cp $src/symlink $out; # symlink points to a file outside ./
  '';
}

results in
these derivations will be built:
  /nix/store/1gwl1220gfd5i4b7vzdwwyvqsrzllarr-test.drv
building '/nix/store/1gwl1220gfd5i4b7vzdwwyvqsrzllarr-test.drv'...
installing
lrwxrwxrwx 7 nobody nogroup 26 Jan  1  1970 /nix/store/64ycv3s7a5qhick3bhknnlm18q13q92x-emptydir/symlink -> /home/sarah/scratch/target
cp: cannot stat '/nix/store/64ycv3s7a5qhick3bhknnlm18q13q92x-emptydir/symlink': No such file or directory

Or, without the sandbox but still using normal nixbld isolation
these derivations will be built:
  /nix/store/1gwl1220gfd5i4b7vzdwwyvqsrzllarr-test.drv
building '/nix/store/1gwl1220gfd5i4b7vzdwwyvqsrzllarr-test.drv'...
installing
lrwxrwxrwx 7 root root 26 Jan  1  1970 /nix/store/64ycv3s7a5qhick3bhknnlm18q13q92x-emptydir/symlink -> /home/sarah/scratch/target
cp: cannot stat '/nix/store/64ycv3s7a5qhick3bhknnlm18q13q92x-emptydir/symlink': Permission denied

right, thanks for investigating this. I hadn't thought about it because hs.cabal was originally a real file and I had (a different) problems. I replaced it iwth a hardlink and it seems fine (hell there are other haskell errors but I've gotten used to override everything).
This gave me a hunch I was at fault user error (Failed to fetch source. Does this source exist? Source {sourceUrl = "/nix/store/fgiafw1caz7bnqwy7lrp6rg076z5n19s-hs" but ... well I have no excuse :'(

No problem! :) The error message isn't exactly very clear, and could be worth improving, if you want to file an issue! :)

I got this error for a different reason.
I had my Haskell package named differently (e.g. nix-batch) from the directory it was in (e.g. nix-batch-hs)
I read the code and realised it expects the directory to be named the same. In my case I just renamed the directory.

name ? builtins.baseNameOf root

Ugh, such code shouldn't exist :)
So what happens is:

developPackage gets passed root = ./.
name is determined by it's parent directory name (which will be different as it's user chosen)
cabal2nix can't find the cabal file so it falls back to git and other fetchers

Since this issue was opened, it appears that developPackage and cabal2nix have been fixed:

developPackage now uses "" as the name of the resulting derivation when passes a path (like ./.).
cabal2nix / callCabal2nix tries to find the .cabal file for the passed-in package even if it doesn't match the name it was given.


Not Compatible with wire-runtime 2.0.3 Version

wire-gardle-plugin is not compatible with wire-runtime 2.0.3 version.

Yep. I'll have a look this week.
On Mon, Jan 11, 2016, 2:20 AM Kiran89kumar<EMAIL_ADDRESS>wrote:

wire-gardle-plugin is not compatible with wire-runtime 203 version
—
Reply to this email directly or view it on GitHub
https://github.com/square/wire-gradle-plugin/issues/11.

Any chance this plugin will be updated soon to support the latest wire version?

We plan to invest in a first-party Gradle plugin in the next two months.
Lots of other things are taking priority right now.
On Thu, Jun 16, 2016 at 9:55 PM Alex Metcalfe<EMAIL_ADDRESS>wrote:

Any chance this plugin will be updated soon to support the latest wire
version?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/square/wire-gradle-plugin/issues/11#issuecomment-226661794,
or mute the thread
https://github.com/notifications/unsubscribe/AAEEEfFI_S517dUAv1GORj4wYqibES_Qks5qMf6HgaJpZM4HCLds
.

Would love to hear if there's any update on this. :-)


Better Lucee support for CFLint

Collection ticket for discussion around Lucee and CFLint

From @KamasamaK:
I have not used Lucee extensively, so if anyone can comment on syntax differences that would need to be taken into consideration that would be great as parse errors would be the biggest issue. Currently, I know that Lucee makes semicolons optional and allows for trailing commas (#365). There is also the proposal for an HTML island, but as far as I am aware nothing has come of it.
Another syntactic difference is the way Lucee uses tags in script compared to the CF11+ generic syntax. ACF requires parentheses as I believe they are implemented as functions.
ACF
cfsavecontent(variable="contentVar") {
    ...
}

Lucee
savecontent variable="contentVar" {
    ...
}

I have not used Lucee extensively, so if anyone can comment on syntax differences that would need to be taken into consideration that would be great as parse errors would be the biggest issue. Currently, I know that Lucee makes semicolons optional and allows for trailing commas (#365). There is also the proposal for an HTML island, but as far as I am aware nothing has come of it.
Tag to script syntax
Another syntactic difference is the way Lucee uses tags in script compared to the CF11+ generic syntax. ACF requires parentheses as I believe they are implemented as functions.
ACF
cfsavecontent(variable="contentVar") {
    ...
}

Lucee
savecontent variable="contentVar" {
    ...
}

Arrow function/Lambda syntax
ACF
g = function(x,y) {
    return x*y;
}

Lucee
h = (x,y) -> x*y

Lucee-exclusive operators

===: Check value and type
CT: Alias for CONTAINS
NCT: Alias for DOES NOT CONTAIN

I am also testing but a big one (that I think more developers would use) would be
<cfscript>
dump(SERVER);
</cfscript>

There is also the ternary and elvis operators:

var item = FileExists(thing) ? "Yep" : "Nope";
var item = rockstar?:"Elvis";

More info here: http://docs.lucee.org/guides/developing-with-lucee-server/operators.html

Yeah, what would it take to add arrow function support? Currently CFLint throws a NullPointerException when it encounters them.
(I can open this as a new issue if you'd like - I just thought I'd put it here since you mentioned it above.)
https://bitbucket.org/michaelborn_me/cfevents/addon/pipelines/home#!/results/4

Hi!
It's seems the arrow function is not supported yet.
And, here is another syntax from Lucee that is no well handled.
This is the oredered struct definition using array brackets:
var z = [
  a = 1,
  b = 2
];

That is equivalent to this ugly piece of code:
var z = new struct( 'ordered' );
z.a = 1;
z.b = 2;

Thanks!


[WIP]MYNEWT-640 Add support for newt target append command.

The newt target append command allows the user to append target variable values
for variables that can take multiple values and not overwrite other variable values. This addresses the concern raised in MYNEWT-543.
The append command uses the same format as newt target set.
The variables that can have values appended are: syscfg, cflags, aflags, and lfags.
Note: We need to decide how to handle deleting a value. Currently, for the
newt target set command, when the user enters <variable-name>="", the
variable-name is deleted from the yml file.   The append command
implementation flags an error when the user specifies
<variable-name>=""  (since we don't want to overload the command),
and leaves it to the user to use the set command to delete the variable.
However, there currently isn't a way for the user to delete a
specific value for the multi-value. Couple of ways we can support delete:

Add a newt target delete command for deleting variables:

If the user enters <variable-name>="", then the variable is deleted
from the yml file.
For multi-value variables, the user can specify the value to delete as
follows:

syscfg=LOG_LEVEL:CONFIG_NEWTMGR deletes the LOG_LEVEL and
CONFIG_NEWTMGR variable from the target syscfg.yml
cflags="-DNODEBUG -DMYDEFINE" deletes the -DNODEBUG and -DMYDEFINE
flags.

Remove the variable deletion functionality from newt target set.

Don't support deleting individual values  for multi-values variable. User
would use the newt target set command to delete the variable and then enter the new values.

Other options such as overloading the append command somehow?

I think option 1 would be the cleanest solution. But not sure if we wan't so many newt target sub commands.

Will change command to amend and add a -d flag to delete variables.

Closing the PR. Not sure why commit https://github.com/apache/incubator-mynewt-newt/pull/61/commits/7408d18499855f6ba253d7fe90d1736e0bf85711 which has already been merged in  a different is included in this pr


Question about RoPE

In the following code snippet (from here):
rotary_emb = self.rotary_embed(q.shape[-2])

Is the inference about the sequence length incorrect?
Based on this line of code:
q, k, v = rearrange(qkv, 'b n (h d) -> b n h d', d = self.dim_head).split(self.qkv_head_breakdown, dim = -2)

The -2 dimension seems to be the number of heads. Shouldn't it be q.shape[-3]?

@U-rara great catch Wei!


[SPARK-30066][SQL][FOLLOWUP] Remove size field for interval column cache

What changes were proposed in this pull request?
A followup for #26699, clear the size field for interval column cache, which is needless and can reduce the memory cost.
Why are the changes needed?
followup
Does this PR introduce any user-facing change?

no
How was this patch tested?

existing ut.

Test build #115389 has started for PR 26906 at commit 42174d0.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/20195/
Test PASSed.

@cloud-fan @dongjoon-hyun @maropu, thanks all for take a look at this followup. And excuse me for bringing extra works to you guys.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/20204/
Test PASSed.

Test build #115399 has started for PR 26906 at commit 9b6e8ff.

Test build #115389 has finished for PR 26906 at commit 42174d0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/115389/
Test PASSed.

Test build #115399 has finished for PR 26906 at commit 9b6e8ff.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/115399/
Test PASSed.

Test build #115420 has started for PR 26906 at commit 11b7f71.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/20223/
Test PASSed.

Test build #115420 has finished for PR 26906 at commit 11b7f71.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/115420/
Test PASSed.

Thanks! Merged to master.

thanks for merging and reviewing.


chore: Add a GitHub bug report template for errors

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Feat: Client Report Envelope Item

#skip-changelog
:scroll: Description

Create envelope item from client report model.
:bulb: Motivation and Context

The item will be added to an envelope so we can send it to the backend.
:green_heart: How did you test it?
Unit tests.
:pencil: Checklist

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

Codecov Report

Merging #810 (91a86df) into feat/client-report-recorder (75ab5bb) will increase coverage by 5.72%.
The diff coverage is n/a.

@@                       Coverage Diff                       @@
##           feat/client-report-recorder     #810      +/-   ##
===============================================================
+ Coverage                        89.82%   95.55%   +5.72%
===============================================================
  Files                              118        2     -116
  Lines                             3696       45    -3651
===============================================================
- Hits                              3320       43    -3277
+ Misses                             376        2     -374

Impacted Files
Coverage Δ

dart/lib/src/client_reports/client_report.dart

dart/lib/src/client_reports/discarded_event.dart

dart/lib/src/sentry_envelope_item.dart

flutter/lib/src/binding_utils.dart

dart/lib/src/sentry_span_interface.dart

dart/lib/src/noop_sentry_span.dart

dart/lib/src/sentry.dart

...nt_processor/native_app_start_event_processor.dart

dart/lib/src/transport/rate_limit_category.dart

dart/lib/src/client_reports/outcome.dart

... and 106 more

Continue to review full report at Codecov.

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

Conceptually seems fine. Though I see some build check failures?

Conceptually seems fine. Though I see some build check failures?

A few files were renamed but not on test files, likely a merging issue @denrase ?

@marandaneto Sry about that, let me check/fix


Unable to update from temperature sensor

hello, I have had this problem for a couple of days before.
Unable to update from temperature sensor: could not convert string to float: 'unavailable'
7:24 custom_components/smartir/climate.py (ERROR)
-Unable to update from humidity sensor: could not convert string to float: 'unavailable'
7:24 custom_components/smartir/climate.py.

Issues without debug logging will be closed.
Issues without configuration will be closed
-->

Home Assistant version last
SmartIR version last
**climate:

platform: smartir
name: Condizionatore Salotto
device_code: 1002
controller_data: "<IP_ADDRESS>"
temperature_sensor: sensor.salotto_temperature
humidity_sensor: sensor.salotto_humidity
power_sensor: binary_sensor.power_sensor_condizionatore_salotto**

The state of your temperature sensor is 'unavailable' instead of a float number

Sorry for coming back to this, but i have the same issue.
It is probably because my zigbee sensors take a little longer to load on startup so they show up as unavailable when smartir loads.
Is there a way i can avoid this error?
perhaps change the temp sensor to some template that will show zero until it loads?
  - platform: smartir
    name: UP LR AC Toshiba
    unique_id: smartir_toshiba
    device_code: 1260
    controller_data: remote.broadlink_lr_up_remote
    temperature_sensor: sensor.up_lr_xiaomi_temperature_sensor ##<-- this takes more time to load

Same problem here


Piotr Szmyd

This Tuesday June 22nd 2021, our dear friend Piotr Szmyd (@pszmyd) passed away. Piotr was a respected member of our community, a steering committee member, and a passionate contributor. Everyone loved him.
By creating this issue we hope you can share a story or a thought to help keep his memory alive and show his family and his friends how much he meant to us.

Building a community means creating relationships with people we didn't expect to. Piotr was one the most important members of this community since the beginning. Anyone who has used Orchard must be thankful for his contributions and his generosity.
Those who still attend our meetings know how fond I was of Piotr and would often still joke about him being late even though he wasn't active on the project anymore. This shows how much he touched us. If you don't remember these moments let me share some videos we recorded during our conferences, which he never missed.
https://www.youtube.com/watch?v=OyTIlssxoJE&list=PLpCsCyd254FpFB-O4mW6q8z0lEqwdIuXa&t=553s
https://www.youtube.com/watch?v=OyTIlssxoJE&list=PLpCsCyd254FpFB-O4mW6q8z0lEqwdIuXa&t=675s
https://www.youtube.com/watch?v=OyTIlssxoJE&list=PLpCsCyd254FpFB-O4mW6q8z0lEqwdIuXa&t=1555s
https://www.youtube.com/watch?v=4m0glsmA5vA&list=PLpCsCyd254FqVObbQDDKQOVN7XM0NDZin&t=700s
I encourage anyone to share a though or a memory about Piotr and share their location. I hope that this way we can express what a great person he was and how much he was appreciated by people from all over the world.
Sebastien Ros / Bellevue, WA, USA

This picture was taken as we all met in Los Angeles for the first time in 2012. It was the first time I met @Jetski5822, @pszmyd, and @bleroy in real life (IRL).
The next day, @pszmyd and I went to get coffee and get on our laptops at a nearby Coffee Bean. I drove. Fifteen minutes after we left, Piotr says, "Uh, I left my backpack at the coffee shop". He didn't seem too worried, which I found odd. I would have panicked! We drove back, and there was his backpack, right where he had left it - no biggie!

I have been really inspired by Piotr's contributions when I started to use Orchard and my journey to open source projects.
He made one of the first major module (Hierarchical menu) that has been then integrated to the CMS.
He was also one of the first contributors I met during the first Orchard Harvest in Los Angeles.
We will always remember him smiling like on the picture.
Antoine Griffard / Lille, France.

On each and every meeting of the Orchard community, you could be sure that the best way to have a good time was to follow Piotr around. He was the most fun and kind. His contributions were foundational and awesome, we wouldn't be where we are today without his always smart and thoughtful work. I'll always remember the times and conversations we had with him. My deepest sympathies go to his family and his close friends.

I'm extremely saddened to have received the news about Piotr Szmyd.  There are few people one meets in our journey through life that simply are who they are, without pretense or posture.  Piotr Szmyd was someone you immediately recognized as 100% genuine, kind, thoughtful, nearly always positive, and had a deep kind energy.  I'm so sorry I won't be connecting with you again on this journey.  Your passing has truly touched me and I hope that you know that you touched many people who had the opportunity to connect with you along the way.
Sincerest condolences to his wife and family.

Piotr was an amazing guy. I met him for the first time at the Amsterdam conference and he really made me feel welcome as a new member of the community.  His humour was infectious and he was so fun to be around.  He was one of the people I looked forward to meeting at every conference I attended.
He will be missed.

Although I never spoke to him in person I remember his name to this day as he kindly helped me with some Orchard issues a few years back. I had a great time with Orchard and he made it happen. It is really sad to lose such a great guy and contributor. My condolences goes out to every person that was in direct contact with him.

What a loss. I had the honor to meet Piotr in one of the Orchard Harvests that took place in Spain. Haven't met anyone else from the community in person before, he was one of the first guys that add me the the circle. My deepest condolences to his family and friends.

This picture was taken in LAX on September 2012 on my way to the first Orchard Harvest conference ever. This is also the first time I finally got to meet Piotr in person, who has been a key figure in my career as an Orchard consultant.
It all started thanks to his Advanced Menu module, a key-component that was missing in Orchard that got me to finally jump on to the Orchard bandwagon. I didn't understand how Orchard worked, but Piotr's generous contributions helped me to get into it. I cannot over-emphasize the importance of his contributions to the project
Those times were just magical and I was lucky enough to got to work with him in beautiful Santa Monica. We shared fun, laughter and passion for our craft, always impressing me with his bright intelligent mind, great sense of humor, his boyish mischievous smile and above all his kind heart.
I will always have fond memories of my friend.
Sipke Schoorstra / Apeldoorn, Netherlands

I first met Piotr, as @morrisonbrett mentioned in LA.
The first large Orchard Harvest, I think he rented an apartment with the other Proligence team and drank all night - Pure Piotr fashion. Whilst I haven't spoken to him in some time, if we were to meet up, it would no doubt be like no time had passed.
He was a friend, and he will be missed.
Here's some photos I found (Sorry about the quality, I had been drinking! (seems so had Piotr!))

i didn't have the chance to meet him but he inspired me a lot.
Sincerest condolences for his family and friends.
Jean-Thierry Kéchichian / Romans, France

I feel deeply sad to hear this bad news. I started to hear from him at Orchard forums and stack overflow, and very early I noticed he was a smart guy  from which you can learn a lot on any of his comments. For that it is not enough to be smart you also need to have the will of helping others and explain things with enough detail, and without doubt he was there to help with all the knowledge he had available and the will to help others.  At Orchard Harvest at Spain I had the opportunity to meet him,. My impression after meeting him was even better,  he was not only smart and helpful he was a really funny guy and better perso n.  He is the kind of people everyone would love to surround themselves for anything.
Piotr will live always between those who meet him within this community

May our branches merge again, Piotr!
(Coming from the left guy here: https://github.com/OrchardCMS/Orchard/issues/8484#issuecomment-868966753. Budapest, Hungary)

Really sad and shocked to hear this. We never met in real life, but had some nice interactions online in the Orchard Classic days. He stuck out from the crowd. Lot of love to his friends and family.

So sad to hear about Piotr passing. I absolutely share the sentiment how genuinely nice, down-to-earth and chill Piotr was, always fun to spend time with (and we definitely started on a good note building on the legendary Polish-Hungarian friendship). All those occasions we met are memorable (the Orchard Harvest conferences + in Warsaw in 2014 and then in Lisbon in 2016).
My professional career's backbone being OSS and Orchard, I'm absolutely certain Piotr (together with the commenters above btw) made a positive impact on my life, for which I'm extremely grateful.
Here's another great photo with him (taken by @morrisonbrett during Orchard Harvest in Amsterdam in the June of 2013):

You will be missed.
Benedek Farkas // Budapest, Hungary

This is really tough to hear. Piotr and I met once at the first Orchard Harvest in California. He was a real nice guy and always would answer questions I may have had with Orchard. As someone who uses Orchard every day and has built a business around it, I can't say how thankful I am for the community here. Piotr no doubt answered a ton of questions I had and contributed to the success of the project so we could all be successful. I am so sad to hear this and will be sure to contribute back to the community in a way that Piotr would be proud of. RIP.

I too am saddened to hear of this loss. Though I hadn't met Piotr in person, he was a great help in my ramping up in Orchard, even back to the CodePlex days. Best wishes to the family coming from Carthage, NY, USA.


[BUG] - Lack of RTL Support in Input

NextUI Version
2.0.10
Describe the bug
The repository does not work correctly when the direction is set to RTL (Right-to-Left). Elements are not displayed as expected, leading to usability issues.
The label is not in the right place
See Here

The Clear Button is not in the right place
See Here

Your Example Website or App
No response
Steps to Reproduce the Bug or Issue

Go to [https://storybook.nextui.org/?path=/story/components-input--label-placement&globals=locale:ar-AE]
Change the document direction to RTL (locale: Arabic).
Observe the issues mentioned above.

Expected behavior
I expected the UI to properly support RTL direction, with elements aligning and displaying correctly from right to left.
Screenshots or Videos
No response
Operating System Version
All
Browser
Chrome

Hi, I'm new to GitHub buy yes, I have the same problem. any workaround to solve it?

Hi, I'm new on GitHub and this is my first comment and yes, I have this issue too!


Migrate tripForm to react

Trip form could be found http://localhost:3000/trip/
Currently it's quite hard to use material-ui so I would suggest to use more lightweight components.
Regarding design bootstrap/3.1.1 is used
Please:

[ ] Apply bootstrap looking how it is done in blaze way
[ ] Remove blaze form
[ ] Add internalization. Currently blaze helper "t" is written and used, which loads messages from json structure. Cheap and dirty. Please suggest better ways.
[ ] Implement trip saving logic - see save event
[ ] Currently there is a logic which changes icon when geolocation of the address is detected. currentTrip.to.getLatlng is reactive - when the value is set the template is rerendered - how this could be implemented in react?

Optionally

[ ] Implement / adopt cucumber test for this page. See post-trip - almost the same test could be reused just changing step to
And I see "#trip-toAddress" in "/trip"

@ArnoldasSid  New branch for MUI was created https://github.com/spastai/vilnius-carpool/tree/0.1.9/refactor/meteor-1.3 - and pull request for this #47
Try to move the code from https://github.com/spastai/meteor-carpool-react-material-test/blob/master/client/components/TripForm.jsx
Also check http://guide.meteor.com/ui-ux.html#i18n
If something is missing - write here

Please describe what tap/i18n issues you faced

I think it just doesn't find my translations in i18n folder. Because TAPi18n.__('labelFrom') just returns 'labelFrom' and it doesn't register that I have multiple languages defined
I have described labels here
https://github.com/vilnius/vilnius-carpool/blob/0.1.9/refactor/meteor-1.3/src/packages/carpool-view-mui/i18n/en.i18n.json
And I am using them here
https://github.com/vilnius/vilnius-carpool/blob/0.1.9/refactor/meteor-1.3/src/packages/carpool-view-mui/components/trip-form/TripForm.jsx

Fix for a tap is on my branch: https://github.com/spastai/vilnius-carpool/commit/35ecd2403c5613765b4a26c7ee0631b2889092b2

I'm not sure will we do anything more for this task (indication on succesfull geo location, which shows that address entered by user could be located on map - https://www.thinkwithgoogle.com/articles/chapter-5-form-entry.html says that error should be shown - would it be possible to show yellow field box while address is not detected?


[BISERVER-14720] Upgrade log4j2

:white_check_mark: Build finished in 7m
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
assemblies/core/static,assemblies/static,plugins/pur/core

:exclamation: No tests found!
:information_source:  This is an automatic message

@bennychow please review, I fixed it

:white_check_mark: Build finished in 3m 24s
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
assemblies/core/static,assemblies/static

:exclamation: No tests found!
:information_source:  This is an automatic message

:white_check_mark: Build finished in 2m 59s
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
assemblies/core/static,assemblies/static

:exclamation: No tests found!
:information_source:  This is an automatic message


Throw an error if no source maps to upload

Description
if there is no source maps to upload, the plugin just sits there silently without doing anything.
Describe the solution you'd like
Would be beneficial if there was an error that would be thrown when there is nothing to upload. This would help troubleshooting a lot (in our case, no source maps were generated while I thought it was the plugin that fails). After all, the plugin is used to upload source maps so it should also expect to have something to upload.

Hi @villesau
Thanks for the feedback. With the webpack plugin I'm not sure we'd want to fail the build by default as the plugin will be automatically run by webpack as part of the build there may be some legitimate cases where source maps aren't produced.
We'll look into how best to communicate this scenario though, or whether we could have an option to fail the build.

@mattdyoung I think there should not be a legitimate reason not to produce source maps if the plugin is in use. If you don't produce source maps you should not use the plugin either. So it is a misconfiguration that should fail the build. If there still is a valid use case for not having source maps and having the plugin, an ecape hatch would be having a toggle to suppress the exception. So I would do it other way around: I'd provide way to bypass the exception, but throw it by default. Though, you could then skip adding the plugin in the first place.
For example we use exactly the same setup for staging & prod, but for staging we do not include the plugin.


Container canary

See: https://github.com/NVIDIA/container-canary
Can run checks on a session image to determine if it is compatible with Amalthea.
Run container canary as an optional init step when starting a session.

...or even better examine running container canary as admission webhook or something like that every time a jupyter server is created.

Discussion points during sprint planning.
We have a few ways to implement this:

do it in the notebook service (i.e. the notebook service does it on every session launch and exposes it as an endpoint so that any docker image can be checked)
do it in amalthea as a validating admission webhook server (see https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#write-an-admission-webhook-server)

Timeboxed to 2 days


Cache and Db rework

This is a major change, backup your database before running.  I'll recommend testing from my repo before push this request. So far so good on my machine, but additional testing will be welcomed

Major rework of the cache system, will fix #251, and also JMMServer will return data faster, for clients consumption, startup will be really fast right now, but Db needs generation, you should expect from 15 min to 1 hour startup (Depending of the size of your collection) the first time (db generation), after that startup will go down to a few seconds.

Internal changes that may partially fix #142 (more work needed), we have the assumption that one ANIDB_Episode might have only one ANIDB_Series, but that is not the case. One AnIDB_Episode might be in more than one series. (Toriko x One Piece crossover) is episode 1 in Toriko and Episode 452 in One Piece. JMMServer Signatures changed. Changes for JMMClient are already made. Additional work must be made, removing the AnimeID relation in AniDB_Episode. And create an One To Many Relation Table.

Assumption on #142 were wrong, closing pull request. Till fix


PIRK-48 - Pirk should pass all FindBugs tests

Address a number of FindBugs warnings, including

Unused local variables.
Inefficient use of keySet()-get() rather than entrySet().
Exposed collections marked as final.
Streams not closed.

There are still 22 warnings outstanding after these fixes.

+1 - This is great, thanks so much for doing this.
I've never used Findbugs before, but looks like I'm about to start ;) I'm in favor of adding the maven plugin into the pom. We should document our use of Findbugs on the website developer info - I will comment on the corresponding JIRA.


[19.03] Included named pipe mounts documentation

Proposed changes
Added documentation about named pipe mounts.
Related issues (optional)
This documentation was requested on docker/cli/pull/1195

Deploy preview for docsdocker ready!
Built with commit e93cc3720d6844b1e83e0459715a82ff80a33911
https://deploy-preview-7427--docsdocker.netlify.com

@thaJeztah commit is now updated but I did change base from vnext-engine back to master as it looks to be quite lot of behind.
Btw. Do you know if there plan to publish 19.03 version of Docker EE? I'm just curious as that is version what is used by Windows Servers.

@thaJeztah Sorry for the delayed response, and thank you for updating the title. I have added a new label, content/unreleased for tracking purposes.
You are correct @olljanat - we haven't worked with vnext branches in almost a year; so using master as your base branch was the right call. Thank you for your patience - we will be merging this as soon as the code release is confirmed.

Merged, thank you for contributing!


remove 1.9.3 support

we're not testing in travis, so it may break at any time, v4.0.0
is the last foodcritic release that can be guaranteed to support 1.9.3
this will end support for chef-11 users on the omnibus package (which
still ships ruby-1.9.3 for $REASONS).  gem install foodcritic should
still work for those users and pick 4.0.0 over 5.0.0.
if we don't do this, then whenever we really release a version which
breaks 1.9.3 hard then 11 users will pick it up with a gem install and
will be suddenly broken hard instead of just pinned to an old version.

#315 is related

@tas50 reviewz

:+1: since we're not testing on this Ruby platform and old users will fall back to the current release


It is possible to use this module without specifying an aws_account_id

This breaks when enable_aws_integration is not true.

https://github.com/scribd/terraform-aws-datadog/blob/master/examples/cloudwatch_log_sync/main.tf is already using it without account id isn't it?

I misrepresented the conditions for error. The module accepts invalid parameters:

enable_aws_integration is true, or the default value (true)
aws_account_id is null

I would want the module to reject this misconfiguration, rather than what it currently does, which is create a datadog aws integration with no aws_account value.

I see, yeah, that's a valid bug.


VSCode : connection problems even when connection works in one tab, and refuses to work in another tab. :((

VSCode Version: Code 1.14.2 (cb82febafda0c8c199b9201ad274e25d9a76874e, 2017-07-19T23:22:50.650Z)
OS Version: Darwin x64 15.6.0
Extensions:

Extension
Author (truncated)
Version

jsontotype
dan
0.0.3

json-tools
eri
1.0.2

code-runner
for
0.6.28

macros
ged
1.2.0

mssql
ms-
1.1.0

PowerShell
ms-
1.4.1

Csharp-ASPNETCore
rah
1.0.5

python
tht
0.2.3

Steps to Reproduce:

Reproduces without extensions: Yes/No

Connection problems even when connection works in one tab, and refuses to work in another tab. :((

@Hitoshma sorry I don't get what's the connection problem you have?

This issue has been closed because it needs more information and has not had recent activity. Please refer to our guidelines for filing issues. Thank you for your contributions.


Argue to the training partner why our game is a good idea

The reasons for playing our game were explained in our game presentation.


Not running on redhat based systems

I was trying to upload it on a dedicated server running redhat, and it did not work. I think it only works with debian based systems. If so can you please mention that in the readme file. Thanks.

Is this still the case? Just wondering as my clients server is running redhat


Pages Rendered From Markdown

How do I create a page that loads its content from a Markdown file? I am building my personal website and I would like to have content/index.md be the content of my home page while still having the blog content in a subfolder content/blog/example-post.md. I tried
const Home = ({ isLoading, page }) => (
  <BodyRenderer>{page.node.body}</BodyRenderer>
);

export default withPhenomicApi(Home, props => ({
  page: query({ path: "content/index.md" })
}));

but this does not work. I am using the version ^1.0.0-alpha.1.
Thanks

Can you try for the query
‘’’
path: "content",
id : "index"
‘’’
.md is not required (removed from the id) and path without id is to get a collection (so partial result).

So I tried
const Home = ({ isLoading, page }) => (
  <BodyRenderer>{page.node.body}</BodyRenderer>
);

export default withPhenomicApi(Home, props => ({
  page: query({ path: "content", id: "index" })
}));

and I get an error in the browser console which says Uncaught TypeError: Cannot read property 'body' of null. Using JSON.stringify I got the content of the page prop parsed into the Home component and its output is below. I double checked and the file content/index.md exists relative to the App.js in the root of my project.
{"status":"error","node":null,"error":{"type":"basic","url":"http://localhost:3333/phenomic/content/item/index.json","redirected":false,"status":404,"ok":false,"statusText":"Not Found","headers":{},"body":{},"bodyUsed":false,"error":{}}}

During loading, node is undefined. So you need to test like in other pages/examples that isLoading is false or that the node is defined.

So I did that and now in the dev server windows I get the error ✖ @phenomic: ID 'index' not found in database ('content') whenever I load the page in my broswer. The code i'm using is
const Home = ({ isLoading, page }) => (
  <div>
    {isLoading && "Loading..."}
    {!isLoading &&
      page.node && (
        <BodyRenderer>{page.node.body}</BodyRenderer>
    )}
  </div>
);

export default withPhenomicApi(Home, props => ({
  page: query({ path: "content", id: "index" })
}));

Ha sorry... this id thing is not intuitive... Try “” (empty string).

Thanks for your help that got it working.


Fix a typo in generating localised untitled editors hint.

This PR fixes #123152. It seems that issue is caused by mistyping selectALanguage as selectAlanguage in src/vs/workbench/browser/parts/editor/untitledHint.ts. This PR is intended to fix it.

@gnaggnoyil thanks. However I think this does not fix the issue. The id of the localized string should not affect this. Did you try out this PR, why do you think this gets it fixed?

No plans to merge, thus closing.


scripts/version.sh doesn't have execute permissions

It is run from another script but it doesn't have execute permissions so the build fails with Bourne shell.

Does for me on a fresh clone:
[rpolzer@brlogenshfegle aaaaxy (git)-[main]-]$ ls -la scripts/version.sh
-rwxr-xr-x 1 rpolzer rpolzer 4237 Apr  3 23:43 scripts/version.sh

Wonder where things went wrong? If I chmod -x it, git diff shows the diff too, showing that git is tracking this.

It fetches tarballs from Go index servers:
=> v1.2.34.mod doesn't seem to exist in /disk-samsung/freebsd-ports/distfiles/go/games_aaaaxy/aaaaxy-v1.2.34.
=> Attempting to fetch<EMAIL_ADDRESS>v1.2.34.mod                                           3075  B   26 MBps    00s
=> v1.2.34.zip doesn't seem to exist in /disk-samsung/freebsd-ports/distfiles/go/games_aaaaxy/aaaaxy-v1.2.34.
=> Attempting to fetch<EMAIL_ADDRESS>v1.2.34.zip                                             24 MB   10 MBps    03s

It looks like they alter file permissions on Go servers: https://github.com/golang/go/issues/52999

In this case, AAAAXY probably should always run shell scripts via "sh" and never via the executable bit.
I'll fix that.


Table 15 "G/L Account" - Field  "Account Type" - Missing Option values for spanish localization

Trying to build an app on spanish localization we got an option missing error.
Building the same app on all other available localizations (~ 45) no error is thrown.
We found that in spanish localization the specific field "Account Type" of Table 15 "G/L Account"  has only 2 options.
Other 4 tables (table 841 "Cash Flow Account"  -   table 376 "G/L Account (Analysis View)" -  table 410 "IC G/L Account" - table 5488 "Trial Balance Entity Buffer")  have the same field "Account Type" . And here all (5) options are present.

Is this a bug?
Have we to create a specific app version for ES?
Thank you

I would think the fix is that the field should be an Enum, then if ES localisers want to prevent using certain values for whatever reason, they will now have the ValuesAllowed property.

This is legacy deviation which happened 10+ years ago, way before we even start thinking about apps and enums. We will try to align it with W1.

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


Question: Test functions and Gauss-Lobatto integration

Hello Ehsan,
I'm a PhD student in Germany and I try to use your hp-VPINN approach for 2D convection-dominated convection-diffusion equations. I've implemented your idea by myself based on this code and what you wrote in your paper. I've got a small questions that I couldn't find an answer the last days. If I understand your paper correctly, then you are using as test functions P_{k+1}-P_{k-1}, where P_{k} is the k-th Legendre polynomial, to ensure that they are zero along the boundary of the cell(s). Furthermore, in section 4.1 you write that you are using Gauss-Lobatto integration and this is what I see in your code as well. I was wondering why you use Gauss-Lobatto and not Gauss-Legendre? Using Gauss-Lobatto seems to be strange to me. Gauss-Lobatto includes the boundary of the domain but by construction the test functions are zero there. Why is that important in contrast to Gauss-Legendre?
Thanks a lot in advance and thank you for your research for your work! :)
Best
Derk

Absolutely. Using Gauss-Lobatto integration is not a good idea as modified Legendre functions vanish them on the boundary, if the weak form is a function of the test function. If you have a different weak form, which excludes test function and instead takes its derivatives, then it makes sense to use Gauss-Labotto because you also enforce weak form on the boundaries as well which makes sense


Add theming to footer

Add theming to ZopaFooter to be able to:

show/hide LogoBlock, LegalBlock and SocialBlock
stretch LegalBlock full width
add optional legalAmendment prop to amend LegalBlock

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Maven Central badge should be based on repo1.maven.org rather than search.maven.org

According to this:

Upon release, your component will be published to Central: this typically occurs within 10 minutes, though updates to search can take up to two hours.

So, besides the delay, if the indexing jobs for search.maven.org are paused, it may take quite some time to see the last artifact version even though it has been actually released on Maven Central.

Hi, thanks for suggesting this.
Would you like to open a pull request?

@paulmelnikow sure, today I'll give it a try! :sunglasses:


Incorrect Follower Count

After logging in via
func main() {
	insta := goinsta.New("username", "password")
	err := insta.Login()
	if err != nil {
		fmt.Println(err)
	}
	fmt.Printf("%s", prettyPrint(*insta))
}

The login is successful, in the output I'm getting the correct username. Unfortunately I don't get things like my follower count. It is zero which it definitely isn't.

After you logged-in into your account you will receive only part of your information. To sync it you have to call another function.
package main

import (
	"log"
	"os"

	"github.com/ahmdrz/goinsta"
)

func main() {
	insta := goinsta.New(os.Getenv("INSTAGRAM_USERNAME"), os.Getenv("INSTAGRAM_PASSWORD"))
	if err := insta.Login(); err != nil {
		log.Fatal(err)
	}
	defer insta.Logout()

	user, err := insta.Profiles.ByID(insta.Account.ID)
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("Follower count: %d", user.FollowerCount)
}

We will fix it as soon as I can. Thank you for your notice.


UI: Update some dependencies

Bringing some security related fixes.

👍
On Fri, Sep 29, 2023, 13:58 Julien Pivotto @.***> wrote:

@roidelapluie https://github.com/roidelapluie requested your review on:
#12905 https://github.com/prometheus/prometheus/pull/12905 UI: Update
some dependencies as a code owner.
—
Reply to this email directly, view it on GitHub
https://github.com/prometheus/prometheus/pull/12905#event-10510593754,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEDLGDLQPNQP3L5UFOY5ODX42ZXLANCNFSM6AAAAAA5MLOHJY
.
You are receiving this because your review was requested.Message ID:
@.***>


Any way to add a purple "note" in markdown docs like you show above?

I'd like to include some "notes" in markdown docs like readme's etc in repos inside Azure DevOps.  It doesn't appear that there is a way to do this.  Is anything planned or can it be made possible?  Or even better, did I miss the right way to achieve this?
An example of what I'm trying to achieve is shown by this text above on this page:
"Not all file formats are supported within pull requests, such as Microsoft Office Message (.msg) files."
Thanks in advance -
Erik

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

ID: fa622358-f5bb-1f5c-177a-081a37b6acef
Version Independent ID: 72f7fd16-a822-66c8-3a34-8905645ce5f2
Content: Markdown syntax for files, widgets, and wikis in Azure DevOps - Azure DevOps
Content Source: docs/project/wiki/markdown-guidance.md
Product: devops
Technology: devops-collab
GitHub Login: @chcomley
Microsoft Alias: chcomley

@dahlsailrunner - can you post a screencap?  I dont see what you mean on this page.
Markdown does accept HTML, perhaps its just a
 element with some css that they have added.

Yep -- here you go!  :)  And i did try to do this with html, but i couldn't get it to work.

Hi @dahlsailrunner, I'm not sure I completely understand your question - you're trying to add markdown files in repos, and then publish them as wikis? You can do that using code wikis: Publish repo to wiki.
If I've misunderstood your intention, please let me know.

I'm trying to add a purple "note" section in a markdown doc in a readme.md file within a repo - much like the one shown in the screenshot above.  It looks like there is some syntax like:
> [!NOTE]
> Put note text here...

but that doesn't seem to work in azure devops when it renders the md file.

Hi @dahlsailrunner, These are special div class syntax tags that our publishing group supports for docs.microsoft.com. What you're trying to do isn't supported. If you'd like to submit an idea or feature request, please go here: https://visualstudio.microsoft.com/vs/support/#talktous. Thanks!

Done!  In case anyone comes looking for it, the request is here:
https://developercommunity.visualstudio.com/idea/670867/add-support-for-a-note-in-markdown.html
Thanks for the time / consideration.

Hey all, the github thread debating this is enormous.
In the meantime here is some Azure DevOps html style that gets us close.
Notes
> 🛈 Note
> One day Azure DevOps will support notes.

Warnings
> ⚠ Warning
> Until then, we will do it ourselves.

@TroyWitthoeft : Thanks for this. I'll use it in the meantime.
I wonder if ADO will ever extend further support for some of its markdown.

@DaleyKD my guess is no.


zookeeper installation directory path for cluster of zookeeper servers.

Which zookeeper server installation directory path should be given in the path column when we are specifying cluster of zookeepers in the ensemble of servers in Exhibitor.

The top level directory where ZooKeeper is installed. e.g. "/opt/zookeeper-3.4.5".


Allow default db to be passed to new_instance

Is your feature request related to a problem? Please describe.

Often, I will create a client which only must connect to one db - in this case, it would improve developer experience to have the ability to set a default db which would make the param optional in all instance methods
At present, I have a workaround by overriding all the methods in the class:
class Cloudant(CloudantV1):
    DEFAULT_SERVICE_NAME = "cloudant"
    DB = None

    @classmethod
    def new_instance(
        cls,
        service_name: str = DEFAULT_SERVICE_NAME,
        db: str = None,
    ) -> "CloudantV1":
        """
        Return a new client for the Cloudant service using the specified parameters
        and external configuration.
        """
        authenticator = get_authenticator_from_environment(service_name)
        cls.DB = db
        service = cls(authenticator)
        service.configure_service(service_name)
        return service

    def delete_database(self, **kwargs):
        if self.DB is not None:
            return super().delete_database(**kwargs, db=self.DB)
        else:
            return super().delete_database(**kwargs)

    ...

    def put_security(self, **kwargs):
        if self.DB is not None:
            return super().put_security(**kwargs, db=self.DB)
        else:
            return super().put_security(**kwargs)

But this is not ideal and requires a lot of boilerplate
Describe the solution you'd like

Ideally, new_instance would accept an optional param of db which would allow us to set a default database name
Describe alternatives you've considered

The alternative involves lots of boilerplate code
Additional context

N/A
I would be happy to submit a PR for this if it's something y'all are willing to incorporate

Hi @jpribyl,
Thank you for your feedback! Since our sdk generated from OpenAPI specs we do not directly modify number of files including CloudantV1 class methods, but we'll consider your use case for future enhancements.

Ahh, I see, thanks for the reply @eiri ! Is there a way for me to contribute to the OpenAPI specs?
This is totally unrelated but as I am using this SDK I am also discovering that the SDK does not seem to have a method allowing me to call a couchdb update handler (IE this endpoint https://docs.couchdb.org/en/latest/api/ddoc/render.html#db-design-design-doc-update-update-name-doc-id)
Do you know if that is in the works for a future version as well? I would be happy to help add in that method + handler too if it's possible!

We are planning to open source the specs, but we are not quite there yet, the API changes in the upcoming CouchDB 4.0 mixed our plans a bit. But thank you for your interest, appreciate that!
Yes, we have the coverage of the ddoc's update handler in our TODO queue, but unfortunately no estimate delivery time at the moment.

Awesome, thanks again for the replies and all the work y'all have put into this. I'm really excited to see where this project goes. We just added couch to our stack so I'll be sure to keep an eye out for updates!


[ISSUE #5969] Remvoe duplicate deleteUnusedStats

Make sure set the target branch to develop
What is the purpose of the change
fix #5969
Brief changelog
XX
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Codecov Report

Merging #5973 (4c07108) into develop (ff8c4c8) will decrease coverage by 0.02%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             develop    #5973      +/-   ##
=============================================
- Coverage      43.40%   43.38%   -0.02%
- Complexity      8826     8828       +2
=============================================
  Files           1090     1090
  Lines          76608    76607       -1
  Branches       10003    10002       -1
=============================================
- Hits           33248    33238      -10
- Misses         39197    39216      +19
+ Partials        4163     4153      -10

Impacted Files
Coverage Δ

...ocketmq/broker/processor/AdminBrokerProcessor.java
25.31% <ø> (+0.08%)
:arrow_up:

...apache/rocketmq/broker/longpolling/PopRequest.java
31.03% <0.00%> (-13.80%)
:arrow_down:

...tmq/remoting/protocol/body/ConsumerConnection.java
95.83% <0.00%> (-4.17%)
:arrow_down:

...e/rocketmq/store/ha/autoswitch/EpochFileCache.java
77.08% <0.00%> (-1.39%)
:arrow_down:

.../apache/rocketmq/store/ha/DefaultHAConnection.java
65.86% <0.00%> (-1.21%)
:arrow_down:

...cketmq/broker/schedule/ScheduleMessageService.java
56.91% <0.00%> (-1.14%)
:arrow_down:

...ent/impl/consumer/DefaultLitePullConsumerImpl.java
67.65% <0.00%> (-1.10%)
:arrow_down:

...he/rocketmq/client/impl/consumer/ProcessQueue.java
59.91% <0.00%> (-0.89%)
:arrow_down:

...rocketmq/client/impl/factory/MQClientInstance.java
47.41% <0.00%> (-0.60%)
:arrow_down:

...ava/org/apache/rocketmq/filter/util/BitsArray.java
59.82% <0.00%> (ø)

... and 8 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[WIP] container-level validation, add docs

add pydantic-zarr models of Zarr array and Zarr group for container validation, e.g. checking that dimensional attributes (like number of axes, dimensionality of transforms) are consistent with the shape of the arrays in a multiscale group.
this PR also add docs using mkdocs
I'm also working on at least one convenience method for creating a model of a multiscale group from a collection of arrays + spatial metadata. this will greatly simplify some of the logic in xarray-ome-ngff

too long has this lingered. it's going in.


Clean up Sharing tab on datasets

We should adopt the GUI improvements from the groups page in the sharing tab as well.
Groups:

Sharing tab:

The pencil icon to change roles, the Add button might make sense under the tab as well (instead of/in addition to the dropdown?), and delete icon for removing the sharing permissions.

See if we can re-use or generalize components here. For example, list of users w/ gravatar? List of groups with description?

Other possible ideas: expand groups to see the members. See who has which permissions on a dataset.


bevy_asset: Improve NestedLoader API

Objective
The NestedLoader API as it stands right now is somewhat lacking:

It consists of several types NestedLoader, UntypedNestedLoader, DirectNestedLoader, and UntypedDirectNestedLoader, where a typestate pattern on NestedLoader would be make it more obvious what it does, and allow centralising the documentation
The term "untyped" in the asset loader code is overloaded. It can mean either:

we have literally no idea what the type of this asset will be when we load it (I dub this "unknown type")
we know what type of asset it will be, but we don't know it statically - we only have a TypeId (I dub this "dynamic type" / "erased")

There is no way to get an UntypedHandle (erased) given a TypeId

Solution
Changes NestedLoader into a type-state pattern, adding two type params:

T determines the typing

StaticTyped, the default, where you pass in A statically into fn load<A>() -> ..
DynamicTyped, where you give a TypeId, giving you a UntypedHandle
UnknownTyped, where you have literally no idea what type of asset you're loading, giving you a Handle<LoadedUntypedAsset>

M determines the "mode" (bikeshedding TBD, I couldn't come up with a better name)

Deferred, the default, won't load the asset when you call load, but it does give you a Handle to it (this is nice since it can be a sync fn)
Immediate will load the asset as soon as you call it, and give you access to it, but you must be in an async context to call it

Changes some naming of internals in AssetServer to fit the new definitions of "dynamic type" and "unknown type". Note that I didn't do a full pass over this code to keep the diff small. That can probably be done in a new PR - I think the definiton I laid out of  unknown type vs. erased makes it pretty clear where each one applies.

Old issue
The only real problem I have with this PR is the requirement to pass in type_name (from core::any::type_name) into Erased. Users might not have that type name, only the ID, and it just seems sort of weird to have to give an asset type name. However, the reason we need it is because of this:
    pub(crate) fn get_or_create_path_handle_erased(
        &mut self,
        path: AssetPath<'static>,
        type_id: TypeId,
        type_name: &str,
        loading_mode: HandleLoadingMode,
        meta_transform: Option<MetaTransform>,
    ) -> (UntypedHandle, bool) {
        let result = self.get_or_create_path_handle_internal(
            path,
            Some(type_id),
            loading_mode,
            meta_transform,
        );
        // it is ok to unwrap because TypeId was specified above
        unwrap_with_context(result, type_name).unwrap()
    }

pub(crate) fn unwrap_with_context<T>(
    result: Result<T, GetOrCreateHandleInternalError>,
    type_name: &str,
) -> Option<T> {
    match result {
        Ok(value) => Some(value),
        Err(GetOrCreateHandleInternalError::HandleMissingButTypeIdNotSpecified) => None,
        Err(GetOrCreateHandleInternalError::MissingHandleProviderError(_)) => {
            panic!("Cannot allocate an Asset Handle of type '{type_name}' because the asset type has not been initialized. \
                    Make sure you have called app.init_asset::<{type_name}>()")
        }
    }
}

This unwrap_with_context is literally the only reason we need the type_name. Potentially, this can be turned into an impl Into<Option<&str>>, and output a different error message if the type name is missing. Since if we are loading an asset where we only know the type ID, by definition we can't output that error message, since we don't have the type name. I'm open to suggestions on this.

Testing
Not sure how to test this, since I kept most of the actual NestedLoader logic the same. The only new API is loading an UntypedHandle when in the DynamicTyped, Immediate state.
Migration Guide
Code which uses bevy_asset's LoadContext::loader / NestedLoader will see some naming changes:

untyped is replaced by with_unknown_type
with_asset_type is replaced by with_static_type
with_asset_type_id is replaced by with_dynamic_type
direct is replaced by immediate (the opposite of "immediate" is "deferred")

Sorry, realistically I'm not going to have time to review this.

@aecsocket I'll give you a day or two to respond to the review, then merge this in before the release candidate ships :)

Resolved everything apart from 1 comment. I think my reasoning makes sense for leaving that one open.


Transformation from UML to RDF shall consider the definition of reuse

The transformation script shall consider re-used terms, and external terms must not be generated in the OWL artefact.
However, in the SHACL artefact, the reused terms might need to appear as they may play a role in the validation.

addressed in the styleguide


Sampling CPython with Arm SPE using WindowsPerf

Add new Learning Path for Sampling CPython with Arm SPE using WindowsPerf:

Created https://github.com/ArmDeveloperEcosystem/arm-learning-paths/pull/1307


Fix depth-less Face Detector pipeline

Hi @gespona,
Currently, the Dai Face Detector script crashes when setting UseDepth to false. This is because some cases were not handled in the source library.
This PR adds those checks. I also changed the default UseDepth to false, to show the intention, but I could revert it.
The rest of the diff is just whitespace, so you can look at it with the whitespace ignore option.

@AndreiMoraru123 Thank you again. Yes similar to previous case. The idea is to use UseDepth and missing some cases when False. Could you keep UseDepth=True by default? :) More than happy to review and merge then

Updated. Thanks for looking into it!


[HW] Mujib Bahadiri

Name: Mujib Bahadiri
Email<EMAIL_ADDRESS>Linkedin Profile: https://www.linkedin.com/in/mujib-bahadiri-21630321/
Attach the homework step I screenshots below:

Deployed and running from production env:

Attach the homework step II screenshots below:

Connect to collection api to get the collections created in the db. Use the required token and the namespace specified in the lab in order to validate against the API.

Result returned from the backend

Searching for a document in a collection:

Awesome! Thanks for the well documented results, Mujib!

Yes, agreed, thanks for your submission. Here's your badge -> https://api.badgr.io/public/assertions/oa9hsxB-RY22l4w_p88m4w?identity__email=mujib.bahadiri%40gmail.com

Thanks guys for the well organized workshop 👍


Missordering on sellmeier Coefficients

Hello, just want to start by saying my team and I are super appreciative of this repo and all the work that went into creating it. This is a massive accomplishment and wonderful contribution. I would be super happy to lend a helping hand to this bug.
I am noticing that certain glass materials do not keep a consistent ordering to their formula coefficients. the examples i found were in the schott folder
Here, f5 is in an order that follows a pattern of
b1, c1, b2, c2, b3, c3,
Then k10 seems to break this pattern and go
c1, b1, b2, c2, b3, c3
Here are some graphs that compare these two glasses and their resulting refractive index calculations. In these examples, the coefficients are pulled to match the k10 ordering. the blue line corresponds to data gathered from the refractive_index_db, and the red line corresponds to data our team has compiled

Hi!
how exactly did you get the coefficients from the database? Everything seems to be working fine with the web-interface:
https://refractiveindex.info/?shelf=glass&book=SCHOTT-K&page=K10
coefficients: 0 1.15687082 0.00809424251 0.0642625444 0.0386051284 0.872376139 104.74773
https://refractiveindex.info/?shelf=glass&book=SCHOTT-F&page=F5
coefficients: 0 1.3104463 0.00958633048 0.19603426 0.0457627627 0.96612977 115.011883

Oh my goodness thank you so much for the reply! we are pulling directly from the yml file into a list, and zipping them up with a predefined coefficient ordering. the files i have reflect exactly what you pasted. . . . i will close the issue and dig further into the bug we are dealing with and double check that the problem is on our side.
Again, thank you so much! We cannot emphasize enough how grateful we are to your work!


nginx.service - failed to read PID from file /run/nginx.pid - Invalid Augument

I've checked the nginx.conf file and it's pointing to the correct place.  Pathfinder is running on my server, but when i check status I get this:
Aug 08 14:23:20 pathfinder.eveminions.com systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 08 14:23:20 pathfinder.eveminions.com systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument
Aug 08 14:23:20 pathfinder.eveminions.com systemd[1]: Started A high performance web server and a reverse proxy server.

Running ubuntu server 16.04 on digital ocean / running nginx version 1.10.0

We solved it, @exodus4d you can close it.

Actually no. Where is the solution to solve this problem?

@MeLeRyZ This worked for me.
That warning with the nginx.pid file is a know bug (at least for Ubutnu if not for other distros as well). More details here:
https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864
Workaround (on a ssh console, as root, use the commands bellow):
mkdir /etc/systemd/system/nginx.service.d
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf
systemctl daemon-reload
systemctl restart nginx

Then check if you still see that nginx.pid error and also if nginx is actually running and if you can connect to port 80 on your server.
I would also check if this actually exists and the permissions on it:
/run/uwsgi/mysite3.sock

If nginx is running and uWSGI is running as well then I guess it's a configuration problem
I understand you want to use Django so I would recommend to review your actual configuration and compare it with the one from here:
http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html
I hope it helps!
Source - https://stackoverflow.com/a/42084804/6230772


added example to get test plans for the projects

Command:
cargo run --example test_plan --features="test_plan"

Great - thanks!


Navigation from PatternField in IntelliJ

class A {
  int get foo => 0;
}

void f(Object? x) {
  if (x case A(foo: var a)) {}
}

DAS produces the navigation region, see {"offset"::68,"length"::4,"targets"::[1]}] below:
1679348233072:Noti:{"event"::"analysis.highlights","params"::{"file"::"/Users/scheglov/dart/test/bin/test.dart","regions"::[{"type"::"KEYWORD","offset"::0,"length"::5},{"type"::"CLASS","offset"::6,"length"::1},{"type"::"BUILT_IN","offset"::16,"length"::3},{"type"::"INSTANCE_GETTER_DECLARATION","offset"::20,"length"::3},{"type"::"CLASS","offset"::12,"length"::3},{"type"::"LITERAL_INTEGER","offset"::27,"length"::1},{"type"::"TOP_LEVEL_FUNCTION_DECLARATION","offset"::38,"length"::1},{"type"::"KEYWORD","offset"::33,"length"::4},{"type"::"PARAMETER_DECLARATION","offset"::48,"length"::1},{"type"::"CLASS","offset"::40,"length"::6},{"type"::"KEYWORD","offset"::55,"length"::2},{"type"::"PARAMETER_REFERENCE","offset"::59,"length"::1},{"type"::"KEYWORD","offset"::61,"length"::4},{"type"::"CLASS","offset"::66,"length"::1},{"type"::"INSTANCE_GETTER_REFERENCE","offset"::68,"length"::3},{"type"::"KEYWORD","offset"::73,"length"::3},{"type"::"LOCAL_VARIABLE_DECLARATION","offset"::77,"length"::1}]}}
1679348233073:Noti:{"event"::"analysis.navigation","params"::{"file"::"/Users/scheglov/dart/test/bin/test.dart","regions"::[{"offset"::6,"length"::1,"targets"::[0]},{"offset"::12,"length"::3,"targets"::[2]},{"offset"::20,"length"::3,"targets"::[1]},{"offset"::38,"length"::1,"targets"::[3]},{"offset"::40,"length"::6,"targets"::[5]},{"offset"::48,"length"::1,"targets"::[4]},{"offset"::59,"length"::1,"targets"::[4]},{"offset"::66,"length"::1,"targets"::[0]},{"offset"::68,"length"::4,"targets"::[1]}],"targets"::[{"kind"::"CLASS","fileIndex"::0,"offset"::6,"length"::1,"startLine"::1,"startColumn"::7},{"kind"::"GETTER","fileIndex"::0,"offset"::20,"length"::3,"startLine"::2,"startColumn"::11},{"kind"::"CLASS","fileIndex"::1,"offset"::1286,"length"::3,"startLine"::28,"startColumn"::22},{"kind"::"FUNCTION","fileIndex"::0,"offset"::38,"length"::1,"startLine"::5,"startColumn"::6},{"kind"::"PARAMETER","fileIndex"::0,"offset"::48,"length"::1,"startLine"::5,"startColumn"::16},{"kind"::"CLASS","fileIndex"::2,"offset"::867,"length"::6,"startLine"::18,"startColumn"::7}],"files"::["/Users/scheglov/dart/test/bin/test.dart","/Users/scheglov/Source/Dart/sdk.git/sdk/xcodebuild/ReleaseARM64/dart-sdk/lib/core/int.dart","/Users/scheglov/Source/Dart/sdk.git/sdk/xcodebuild/ReleaseARM64/dart-sdk/lib/core/object.dart"]}}

But in IntelliJ it navigates back to foo: instead of the get foo declaration.
This requires https://dart-review.googlesource.com/c/sdk/+/289921 to be landed.

@jwren

@scheglov can you verify that the issue has now been fixed?

Yes, I can navigate from foo: to get foo.


Add MySQL support

I would like to help in adding mysql support. To add the mysql driver jar would be very easy, but not very useful. IMHO we should split out the postgresql driver to a separate node module, and make it possible for everyone to only install the modules (jars) he really uses.
I would like to hear what others think about it, especially @cgreening, are you open to some kind of solution as a pull request? If yes, what do you suggest?

I can add you as a collaborator if you'd like?

Sure, but what does that mean? I only worked like: forked, pushed my changes, then pull request.
Also I'd like some input in terms of how to start (I know how to do it for my needs, but I'd prefer to hear others and do it in a way that will make more people happy, at least those that use either postgresql and/or mysql, but I guess, that after the change I plan it would be easier to add later other plugins as well.

if you do install postgresql as a separate module, then it would still be pulled in with the same npm i along with the mysql module right? In that case, it would probably make more sense to include both the jars and allow something through the options to control which one to use. how does that sound. That way most of the liquibase stuff can remain common just the connectivity etc. can change.

This is what I did today because I needed something "quick & dirty": https://github.com/flocsy/grunt-liquibase/tree/monolitic, but I dislike it for 3 reasons:

why do I need to download & install the postgresql driver if I don't even have one pg server?
if I add both of them to the classpath in order to make it easier to select only the driver you need, then it even loads both of them if I'm not mistaken.
now it's 2 drivers, but next months it could be 5, and most of the people will only use 1 or maximum 2 of them, and even those 2 only one at a time...

So I would prefer as a long term solution something like:
npm i grunt-liquibase
npm i grunt-liquibase-mysql
OR npm i grunt-liquibase-postgresql
There's one serious issue with this though: it's not backwards compatible for those who already use "grunt-liquibase" with the postgresql, 'cause it won't work unless they add grunt-liquibase-postgresql plugin as well. But this is a different problem that we'll need to address after we decided how we want it to look, then we'll see how to deal with this.

I see what you are saying. The pattern you are suggesting is exactly what is used by the maven-liquibase-plugin since I had to do a dependency on that as well as the DB driver I used :-)
I am fine with that approach. If you want to send in a PR, I would be happy to review it :-)

Ok, I'll do it next week. Any idea how to minimize the problem for people who use postgresql? Is it enough to create a major release? (not even use what it would be in this case. Current is 0.1.11, so the next major should be 1.0.0? Or only 0.2.0?) Or make it more smooth, for example:
grunt-liquibase-core, grunt-liquibase-postgresql, grunt-liquibase-mysql?
This way grunt-liquibase would just not be updated any more, but won't break anything (and if there's a way to tell npm that the upgrade of grunt-liquibase is grunt-liquibase-postgresql, that would solve even the updates, but I'm not sure if there's such a thing in npm)

I think making it a major version number change is probably the nicest thing to do to users. I think it should be 1.0.0 according to http://semver.org/ as it's a breaking change.
Alternatively we can mark the old package as deprecated with a warning message that tells users to install the core and database driver: https://docs.npmjs.com/cli/deprecate

Agree with @cgreening

grunt-liquibase-core, grunt-liquibase-postgresql, grunt-liquibase-mysql?
This way grunt-liquibase would just not be updated any more, but won't break anything (and if there's a way to tell npm that the upgrade of grunt-liquibase is grunt-liquibase-postgresql, that would solve even the updates, but I'm not sure if there's such a thing in npm)

I am not sure if that is even necessary since they would be separate packages, it would be up to the folks involved to use the latest if they need it, correct?

Ok, here it is:
https://github.com/flocsy/grunt-liquibase
https://github.com/flocsy/grunt-liquibase-postgresql
https://www.npmjs.com/package/grunt-liquibase-postgresql
Pull request: https://github.com/cgreening/grunt-liquibase/pull/15
And the MySql driver:
https://github.com/flocsy/grunt-liquibase-mysql
I hope to publish it to npm soon.

merged


 Maybe that'll fix your problem.

Old issue, closed.