Automatically create metaschemas when accessing JSONSchema.metaschema

Fixes #68 (2nd try, now with much more testing!) , although I'm submitting it as a draft to indicate that I'm not particularly confident that this is the ideal way to solve it. But it's a starting point, at least.
This change allows the tests added in PR json-schema-org/JSON-Schema-Test-Suite#646 (updated here in PR #67) to pass, in accordance with §9.3.1 of the spec, "Detecting a Meta-Schema".

Catalog.get_metaschema() is added, and is analogous in behavior to Catalog.get_schema(), checking the __meta__ cache directly and then relying on Catalog.create_metaschema() to avoid needlessly creating both JSONSchema and Metaschema instances.
It is called from the now-cached JSONSchema.metaschema property, to keep the parallel with references which are only resolved when used.
Catalog.create_metaschema() now returns the created metaschema to avoid having to immediately look it up again, as does Catalog.create_vocabulary()
The core_vocabulary parameters have become default_core_vocabulary parameters to allow not knowing the core in advance
*The Metaschema constructor now looks in "$vocabulary" for a vocabulary URI matching r'^https://json-schema\.org/draft/[^/]*/core$ and if it finds a unique match, uses that instead of the default
Lack of a recognizable core vocabulary still results in a JSONSchemaError exception if no default is provided
I wasn't entirely sure where to put the Metaschema test cases, so the Catalog-related ones went into that test file and the constructor ones went into a new test_metaschema.py

Note that the fixture is a separate commit because it is shared with the next PR I'm about to post.

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.47 :tada:

Comparison is base (e77ae75) 90.87% compared to head (21405dd) 91.35%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #71      +/-   ##
==========================================
+ Coverage   90.87%   91.35%   +0.47%
==========================================
  Files          21       21
  Lines        1984     2001      +17
  Branches      423      382      -41
==========================================
+ Hits         1803     1828      +25
+ Misses        119      114       -5
+ Partials       62       59       -3

Impacted Files
Coverage Δ

jschon/catalog/__init__.py
91.72% <100.00%> (+2.01%)
:arrow_up:

jschon/jsonschema.py
89.65% <100.00%> (+0.68%)
:arrow_up:

jschon/vocabulary/__init__.py
91.11% <100.00%> (+4.86%)
:arrow_up:

... and 1 file with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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

Having spent a great deal more time in all the relevant areas of the code, I haven't come up with any better approach, so I've moved this out of draft PR status.

Nice work, @handrews! Do you mind if I push to this branch?

@marksparkza Thanks!  I think I opened this PR with the "allow maintainer to make changes"  - thanks for checking but feel free to add commits.  What workflow do you have in mind?  Are you looking to discuss those additional commits?  (Just trying to understand the difference between what you want to do here and merging and then adding things separately).

Or did you mean create this branch in your repo rather than going straight to main?  I'm also totally fine with that.

Automated meta-schema creation is a big win, and I think it's worth rounding off this PR by removing boilerplate create_metaschema() calls in catalog setup scripts, and allowing Metaschema instances to be created implicitly. I realised while working through your changes that this could be done with just a couple of tweaks, so I've added two commits locally: one to update the test suite (identical to the one on the testsuite-main branch, which I'll drop), and one to remove boilerplate.
There are one or two changes that I'd still like to take a closer look at, so I may add further comments following the additional commits. Likewise, please feel free to comment on or query any changes that I make to your code.
Once this PR is merged we're in a good position to publish a very long awaited v0.10, so I'm going to go ahead with that and work through the remaining PRs for the next version increment.

@marksparkza Sounds great!  I will try to finish the PR for the list output format by Monday as I'd like to get that in if possible, but that's the last thing I really wanted to contribute to 0.10.
I have some other things in the works for draft-next support, but that can wait (and TBH I'm about to not have as much time avaialble so they'd probably take a while before I got around to them).

Once this PR is merged we're in a good position to publish a very long awaited v0.10, so I'm going to go ahead with that and work through the remaining PRs for the next version increment.

@marksparkza I think I slightly misunderstood you although it doesn't really change anything.  Just to be sure I understand:  You plan to merge this PR once it's finished and immediately release 0.10.0, correct?
If so, I would recommend also merging the very simple  PRs #72 (putting the not-found schema file name in the CatalogError message so it's not so cryptic) and #73 (a few super-simple tests for the Catalog).  Both were originally part of this PR that I split out to keep this one more focused.  Neither should take long to review.
I'm perfectly happy with the rest (including the list output format that I haven't posted yet) going into 0.11.0 (not that I'd try to veto your package's release schedule anyway, even over the above two PR recommendations!).  Would you consider those remaining PRs enough to release 0.11.0 whenever you get through them, or would there be more that you'd want to have in that release?

plan to merge this PR once it's finished and immediately release 0.10.0, correct?

Yes, that's the plan. I'd prefer to merge this PR as is, and subsequently look at 72 and 73 for a 0.10.1 patch. I do appreciate that they are quite straightforward, but they're also relatively insignificant and shouldn't hold up or force a rebase of 71. Having said that, we're looking at a timescale of days rather than months for 0.10.1.

when you push the 0.10.0 release, I'll rebase the other PRs

Thanks, much appreciated. Please just do 72 and 73, and the rest once 0.10.1 is out. I'll be happy to include the list PR in 0.10.1 if you're ready with it. Otherwise, nothing else goes into 0.10.1.

Would you consider those remaining PRs enough to release 0.11.0

Yes, absolutely!


some changes been made to TensorRT?

Hello,
I was previously able to compile all the provided examples in this repo for jetson.
But recently after upgrading my host and reinstalling all required packages (latest updates) I got the following error message while compiling examples for Jetson tx2:
(to me It looks like some variables have changed their names in the latest tensorRT release but the current repo is not updated accordingly?)
__In file included from /home/shervin/Desktop/jetson-inference/segNet.h:9:0,
from /home/shervin/Desktop/jetson-inference/segNet.cpp:5:
/home/shervin/Desktop/jetson-inference/tensorNet.h:159:12: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
nvinfer1::Dims3 mInputDims;
^
/home/shervin/Desktop/jetson-inference/tensorNet.h:164:13: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
nvinfer1::Dims3 dims;
^
In file included from /home/shervin/Desktop/jetson-inference/segNet.cpp:5:0:
/home/shervin/Desktop/jetson-inference/segNet.h: In member function ‘uint32_t segNet::GetNumClasses() const’:
/home/shervin/Desktop/jetson-inference/segNet.h:101:66: error: ‘const value_type {aka const struct tensorNet::outputLayer}’ has no member named ‘dims’
inline uint32_t GetNumClasses() const      { return mOutputs[0].dims.c; }
^
/home/shervin/Desktop/jetson-inference/segNet.cpp: In static member function ‘static segNet* segNet::Create(const char*, const char*, const char*, const char*, const char*, const char*, uint32_t)’:
/home/shervin/Desktop/jetson-inference/segNet.cpp:164:35: error: ‘__gnu_cxx::__alloc_traits<std::allocatortensorNet::outputLayer >::value_type {aka struct tensorNet::outputLayer}’ has no member named ‘dims’
const int s_w = net->mOutputs[0].dims.w;
^
/home/shervin/Desktop/jetson-inference/segNet.cpp:165:35: error: ‘__gnu_cxx::__alloc_traits<std::allocatortensorNet::outputLayer >::value_type {aka struct tensorNet::outputLayer}’ has no member named ‘dims’
const int s_h = net->mOutputs[0].dims.h;
^
/home/shervin/Desktop/jetson-inference/segNet.cpp:166:35: error: ‘__gnu_cxx::__alloc_traits<std::allocatortensorNet::outputLayer >::value_type {aka struct tensorNet::outputLayer}’ has no member named ‘dims’
const int s_c = net->mOutputs[0].dims.c;
^
/home/shervin/Desktop/jetson-inference/segNet.cpp: In member function ‘bool segNet::Overlay(float*, float*, uint32_t, uint32_t, const char*)’:
/home/shervin/Desktop/jetson-inference/segNet.cpp:356:30: error: ‘__gnu_cxx::__alloc_traits<std::allocatortensorNet::outputLayer >::value_type {aka struct tensorNet::outputLayer}’ has no member named ‘dims’
const int s_w = mOutputs[0].dims.w;
^
/home/shervin/Desktop/jetson-inference/segNet.cpp:357:30: error: ‘__gnu_cxx::__alloc_traits<std::allocatortensorNet::outputLayer >::value_type {aka struct tensorNet::outputLayer}’ has no member named ‘dims’
const int s_h = mOutputs[0].dims.h;
^
/home/shervin/Desktop/jetson-inference/segNet.cpp:358:30: error: ‘__gnu_cxx::__alloc_traits<std::allocatortensorNet::outputLayer >::value_type {aka struct tensorNet::outputLayer}’ has no member named ‘dims’
const int s_c = mOutputs[0].dims.c;
^
CMakeFiles/jetson-inference.dir/build.make:1373: recipe for target 'CMakeFiles/jetson-inference.dir/segNet.cpp.o' failed
make[2]: *** [CMakeFiles/jetson-inference.dir/segNet.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/shervin/Desktop/jetson-inference/tensorNet.cpp:5:0:
/home/shervin/Desktop/jetson-inference/tensorNet.h:159:12: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
nvinfer1::Dims3 mInputDims;
^
/home/shervin/Desktop/jetson-inference/tensorNet.h:164:13: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
nvinfer1::Dims3 dims;
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp: In constructor ‘tensorNet::tensorNet()’:
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:32:10: error: ‘mInputDims’ was not declared in this scope
memset(&mInputDims, 0, sizeof(nvinfer1::Dims3));
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:32:32: error: ‘Dims3’ is not a member of ‘nvinfer1’
memset(&mInputDims, 0, sizeof(nvinfer1::Dims3));
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp: In member function ‘bool tensorNet::ProfileModel(const string&, const string&, const std::vector<std::__cxx11::basic_string >&, unsigned int, std::ostream&)’:
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:85:58: error: ‘createInferBuilder’ was not declared in this scope
nvinfer1::IBuilder* builder = createInferBuilder(gLogger);
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:85:58: note: suggested alternatives:
In file included from /home/shervin/Desktop/jetson-inference/tensorNet.h:9:0,
from /home/shervin/Desktop/jetson-inference/tensorNet.cpp:5:
/usr/include/x86_64-linux-gnu/NvInfer.h:2742:18: note:   ‘nvinfer1::{anonymous}::createInferBuilder’
inline IBuilder* createInferBuilder(ILogger& logger)
^
/usr/include/x86_64-linux-gnu/NvInfer.h:2742:18: note:   ‘nvinfer1::{anonymous}::createInferBuilder’
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:153:34: error: no matching function for call to ‘nvinfer1::ICudaEngine::serialize(std::ostream&)’
engine->serialize(gieModelStream);
^
In file included from /home/shervin/Desktop/jetson-inference/tensorNet.h:9:0,
from /home/shervin/Desktop/jetson-inference/tensorNet.cpp:5:
/usr/include/x86_64-linux-gnu/NvInfer.h:2322:23: note: candidate: virtual nvinfer1::IHostMemory* nvinfer1::ICudaEngine::serialize() const
virtual IHostMemory* serialize() const = 0;
^
/usr/include/x86_64-linux-gnu/NvInfer.h:2322:23: note:   candidate expects 0 arguments, 1 provided
/home/shervin/Desktop/jetson-inference/tensorNet.cpp: In member function ‘bool tensorNet::LoadNetwork(const char*, const char*, const char*, const char*, const std::vector<std::cxx11::basic_string >&, uint32_t)’:
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:217:59: error: ‘createInferBuilder’ was not declared in this scope
nvinfer1::IBuilder* builder = createInferBuilder(gLogger);
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:217:59: note: suggested alternatives:
In file included from /home/shervin/Desktop/jetson-inference/tensorNet.h:9:0,
from /home/shervin/Desktop/jetson-inference/tensorNet.cpp:5:
/usr/include/x86_64-linux-gnu/NvInfer.h:2742:18: note:   ‘nvinfer1::{anonymous}::createInferBuilder’
inline IBuilder* createInferBuilder(ILogger& logger)
^
/usr/include/x86_64-linux-gnu/NvInfer.h:2742:18: note:   ‘nvinfer1::{anonymous}::createInferBuilder’
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:234:56: error: ‘createInferRuntime’ was not declared in this scope
nvinfer1::IRuntime* infer = createInferRuntime(gLogger);
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:234:56: note: suggested alternatives:
In file included from /home/shervin/Desktop/jetson-inference/tensorNet.h:9:0,
from /home/shervin/Desktop/jetson-inference/tensorNet.cpp:5:
/usr/include/x86_64-linux-gnu/NvInfer.h:2755:18: note:   ‘nvinfer1::{anonymous}::createInferRuntime’
inline IRuntime* createInferRuntime(ILogger& logger)
^
/usr/include/x86_64-linux-gnu/NvInfer.h:2755:18: note:   ‘nvinfer1::{anonymous}::createInferRuntime’
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:242:77: error: no matching function for call to ‘nvinfer1::IRuntime::deserializeCudaEngine(std::stringstream&)’
nvinfer1::ICudaEngine* engine = infer->deserializeCudaEngine(gieModelStream);
^
In file included from /home/shervin/Desktop/jetson-inference/tensorNet.h:9:0,
from /home/shervin/Desktop/jetson-inference/tensorNet.cpp:5:
/usr/include/x86_64-linux-gnu/NvInfer.h:2667:33: note: candidate: virtual nvinfer1::ICudaEngine* nvinfer1::IRuntime::deserializeCudaEngine(const void*, std::size_t, nvinfer1::IPluginFactory*)
virtual nvinfer1::ICudaEngine* deserializeCudaEngine(const void blob, std::size_t size, IPluginFactory pluginFactory) = 0;
^
/usr/include/x86_64-linux-gnu/NvInfer.h:2667:33: note:   candidate expects 3 arguments, 1 provided
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:281:2: error: ‘Dims3’ is not a member of ‘nvinfer1’
nvinfer1::Dims3 inputDims  = engine->getBindingDimensions(inputIndex);
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:282:37: error: ‘inputDims’ was not declared in this scope
size_t inputSize  = maxBatchSize * inputDims.c * inputDims.h * inputDims.w * sizeof(float);
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:309:3: error: ‘Dims3’ is not a member of ‘nvinfer1’
nvinfer1::Dims3 outputDims = engine->getBindingDimensions(outputIndex);
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:310:38: error: ‘outputDims’ was not declared in this scope
size_t outputSize = maxBatchSize * outputDims.c * outputDims.h * outputDims.w * sizeof(float);
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:328:5: error: ‘struct tensorNet::outputLayer’ has no member named ‘dims’
l.dims = outputDims;
^
/home/shervin/Desktop/jetson-inference/tensorNet.cpp:335:2: error: ‘mInputDims’ was not declared in this scope
mInputDims      = inputDims;
^
CMakeFiles/jetson-inference.dir/build.make:1397: recipe for target 'CMakeFiles/jetson-inference.dir/tensorNet.cpp.o' failed
make[2]: *** [CMakeFiles/jetson-inference.dir/tensorNet.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/jetson-inference.dir/all' failed
make[1]: *** [CMakeFiles/jetson-inference.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2

Same issue here too
I recently updated my TX2 with newly release Jetpack 3.1 which includes TensorRT 2.1
I found Dims3 changed to DimsCHW
Other issues are relate to calling functions with different name or different params which I am looking for.
Looks like many changes has been made to tensorrt 2.1 from 1.0

Hi guys, support for TensorRT2 is working now in master with commit e40bd6
For backwards compatibility, it's still building for previous JetPack's still on TensorRT1 using some macros I added. There were no outward-facing changes to the vision primitive APIs themselves.


Expo App package with TS

Based on https://github.com/entria/entria-fullstack/issues/73
Whats next?

Another PR with Relay

@Wellers0n

@sibelius I'll merge it, OK?

merged


Test runner

Implement Scarb-native test running command, that will default to cairo-test but will be possible to swap with Protostar or other tools.

duplicates #222


add NASA grant

Fixes #111  .
Description of the Change
Checklist
Please check all that apply to your proposed changes

[x] HTML code change
[ ] Added package dependency
[ ] Added data
[ ] Changed django model
[ ] Documentation change
[ ] Added or changed TaskRunner

Additional context

After typing "git push" I didn't have to enter the code or my username/token... I am wondering If you can see what I committed from your end. I can see it on GitHub from my end


Add braces to single line statements and modernize unittest code using clang-tidy

What is the purpose of braces to single line statements?
I'm asking this for myself. I'm trying to setup this code style, but sometimes it is easy for me to write just
if (x)
  expr;

For me uniform looking code is easier to read. It also allows simple copying of for example an if statement no matter how many statements are in the conditional code. And the code in the block can be easily expanded to more than a single line (or multi-line blocks reduced to a single line) without adding (or removing) braces.
We can run clang-tidy from time to time and fix single line statements without braces, so such statements would not prevent new code from being merged.

PS. I used ./configure CXX="bear --append -- clang++" to create the compile_commands.json which is required for run-clang-tidy.

We can run clang-tidy from time to time

Definitely.
And clang-format too.
And also it is possible to add automatic checks to PRs that won't pass on bad formatting. I'm not sure about this. I think I'd prefer more relaxed PR style. We can run format later or refactor some things after merging.


Feature Request: Extended note title

Hi, I'd love to be able to append a short descriptor to my notes' titles, e.g. '2023-11-12 - Today I went for a walk.' That way, in backlinks, etc, I get an immediate reference to the day's activities. However, doing so breaks the link with the calendar (which I need). Is there any way around this?

Hi, Have you checked natural languages dates plugin? Maybe that could cover your issue.


compatibility to php 7.1?

can it works on php 7.1? composer.json block it for now

We use parts of the language that are not available in 7.1 (typehints, namely) so you'd have to upgrade sorry.


Update video_tutorials.md

Added a git video tutorial link (thenewboston youtube channel)

Closing this PR as it should not be pushed with another commit! Please send a new PR with requested change. Thanks!


sharing a post to facebook

i did not find a way to share a post to facebook using this(oneall). after logging into facebook how to share a post selected by user to facebook.? @GioCirque

Facebook no longer allows apps to post for users, only for pages.
-Gio
On Aug 17, 2018, at 06:11, siripragada <notifications<EMAIL_ADDRESS>wrote:
i did not find a way to share a post to facebook using this(oneall). after logging into facebook how to share a post selected by user to facebook.? @GioCirquehttps://github.com/GioCirque
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/GioCirque/OneAll/issues/13, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFAFeuYk5KgXjP-CSBS7MZ9q4JB-n80wks5uRqTLgaJpZM4WBY4j.


roll forward to sso-operator 1.2.7

the 1.2.6 chart for some reason did not get published, 1.2.7 is a
rerelease of 1.2.6 so roll forward to that

merging as otherwise the chart can not be found things can not install.


Wrong file names in Zenodo upload data bit

Please help! Links have a typo!

Still a merge conflict

Is that merge conflict fixed now? I think?


Develop header footer

Following the discussion in #572, the PR removes pgHead2 and pgFoot2. They are replaced with a @func attribute on pgHead and pgFoot. The possible values are:

all
first
last
alt1
alt2

Thanks for the reviews.
@lpugin That one is still good to go also from your side?


Add IsNetherWardStealable()

When all heroes are IMBAfied, we want to move IMBA spells from the forbidden_abilities table to our own IsNetherWardStealable() function. Default is true, meaning the ward will steal and use it. Setting it to false will cause the ward to ignore the skill.

Done by AtroCty.


Syntax error when migrating to postgres via a docker-compose container

Bug description

Running prisma migrate dev --preview-feature against a postgres database via a docker-compose image produces a syntax error:
Environment variables loaded from .env
Prisma schema loaded from db/schema.prisma
Datasource "db": PostgreSQL database "fitness-app", schema "public" at "localhost:5432"

Error: P3006

Migration `20210131084240_initial_migration` failed to apply cleanly to a temporary database.
Error:
Database error: Error querying the database: db error: ERROR: syntax error at or near "AUTOINCREMENT"
   0: sql_migration_connector::flavour::postgres::sql_schema_from_migration_history
             at migration-engine/connectors/sql-migration-connector/src/flavour/postgres.rs:192
   1: sql_migration_connector::sql_database_migration_inferrer::validate_migrations
             at migration-engine/connectors/sql-migration-connector/src/sql_database_migration_inferrer.rs:70
   2: migration_core::api::DevDiagnostic
             at migration-engine/core/src/api.rs:100

here is my .env.local file:
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/fitness-app

POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=fitness-app

here is the docker-compose file:
version: "3.7"
services:
  db:
    image: postgres:latest
    volumes:
      - data:/var/lib/postgresql/data
    env_file: ./.env.local #Here we are using the already existing .env.local file
    ports:
      - "5432:5432"
volumes:
  data:

I am using the standard postgres user which (as far as I know) should have all the right privileges for creating databases and tables.
How to reproduce

create a new project with Prisma, using postgres as the provider
add a docker-compose file
run docker-compose up -d
try to run prisma migrate dev --preview-feature to try to migrate

Expected behavior

The migration should work, and any changes to the schema be reflected in the database. No syntax error should occur.
Prisma information

Schema file:
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

// --------------------------------------

model User {
  id             Int       @id @default(autoincrement())
  createdAt      DateTime  @default(now())
  updatedAt      DateTime  @updatedAt
  name           String?
  email          String    @unique
  hashedPassword String?
  role           Role?     @default(USER)
  sessions       Session[]
  bookings       Booking[]
}

enum Role {
  USER
  ADMIN
  SUPER
}

model Session {
  id                 Int       @id @default(autoincrement())
  createdAt          DateTime  @default(now())
  updatedAt          DateTime  @updatedAt
  expiresAt          DateTime?
  handle             String    @unique
  user               User?     @relation(fields: [userId], references: [id])
  userId             Int?
  hashedSessionToken String?
  antiCSRFToken      String?
  publicData         String?
  privateData        String?
}

model Booking {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  User      User?    @relation(fields: [userId], references: [id])
  userId    Int?
  workout   Workout  @relation(fields: [workoutId], references: [id])
  workoutId Int
}

model Workout {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  booking   Booking?
  duration  Int
  location  String
}

I worked with SQL before which worked without any problems. I decided to switch to postgres, which is when problems started to occur and which is why the below SQL query does not reflect the schema (migrations do not get generated)
SQL queries:
-- CreateTable
CREATE TABLE "User" (
    "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" DATETIME NOT NULL,
    "name" TEXT,
    "email" TEXT NOT NULL,
    "hashedPassword" TEXT,
    "role" TEXT NOT NULL DEFAULT 'user'
);

-- CreateTable
CREATE TABLE "Session" (
    "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" DATETIME NOT NULL,
    "expiresAt" DATETIME,
    "handle" TEXT NOT NULL,
    "userId" INTEGER,
    "hashedSessionToken" TEXT,
    "antiCSRFToken" TEXT,
    "publicData" TEXT,
    "privateData" TEXT,
    FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
);

-- CreateIndex
CREATE UNIQUE INDEX "User.email_unique" ON "User"("email");

-- CreateIndex
CREATE UNIQUE INDEX "Session.handle_unique" ON "Session"("handle");

and (this was also still made via SQLite)
-- CreateTable
CREATE TABLE "Booking" (
    "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" DATETIME NOT NULL
);

Environment & setup

OS: 5.10.7-3-MANJARO
Database: PostgreSQL
Node.js version: 12.20.0
Prisma version:

@prisma/cli          : 2.15.0
@prisma/client       : 2.15.0
Current platform     : debian-openssl-1.1.x
Query Engine         : query-engine e51dc3b5a9ee790a07104bec1c9477d51740fe54 (at node_modules/<EMAIL_ADDRESS>Migration Engine     : migration-engine-cli e51dc3b5a9ee790a07104bec1c9477d51740fe54 (at node_modules/<EMAIL_ADDRESS>Introspection Engine : introspection-core e51dc3b5a9ee790a07104bec1c9477d51740fe54 (at node_modules/<EMAIL_ADDRESS>Format Binary        : prisma-fmt e51dc3b5a9ee790a07104bec1c9477d51740fe54 (at node_modules/<EMAIL_ADDRESS>Studio               : 0.340.0
Done in 1.73s.

@benediktms You can't switch providers and use the old migrations files are those files contains database specific sql. Please use a postgres database during development as well.

Hi @benediktms  — there should be a lockfile in the migrations directory preventing migrate from executing sqlite migrations on postgres. Is this still happening? Does it happen outside of a docker container?

@tomhoule @pantharshit00 thansk for getting back to me.
@pantharshit00 's solution worked. I deleted prior SQLite migrations and now everything works like a charm :)

I am going to close this in that case.


Disappointing decision from core devs.

It's frustrating to see Bitcoincore team scrambled to remove Bitcoin whitepaper upon request of fraud claim.
The Bitcoin whitepaper is published under MIT License.
We have all the right to fight this false decision.
The Craig couldn't even prove that he's Satoshi, and claiming ownership is far away.

The whitepaper should be placed back as quick.

You absolutely have the right to fight it, there are many ways including: https://bitcointalk.org/index.php?topic=5311388.msg56156400
But the bitcoincore.org website is for hosting the software and information about the software project.  The inclusion of the whitepaper was largely incidental: There was only one link to the local copy, the rest were to Bitcoin.org.  There isn't any particular need for bitcoincore.org to have a mirror right now.  As a result, keeping it would just be mere symbolism that would make it easier for Wright to litigate and waste resources which may be desperately needed for a later and more relevant attack which will almost certainly come.  Bitcoin developers are in this for the long haul, and one doesn't win a war by stumbling into every minor skirmish the enemy provokes.
I hope you will reconsider your language and edit your comment to be less of an attack.  I seriously doubt you have the background or expertise to assess any particular move here as "stupid". Maintaining a project like Bitcoin for over a decade requires a patient long term strategy, not responding out of anger to every slight that comes onto the radar.  But even if the decision were an error, though I disagree that it is, it is entirely someone elses decision to make:  You don't get the right to control someone's personal legal strategy just because you use software they wrote.
I posted more about the subject here: https://www.reddit.com/r/Bitcoin/comments/l1uieu/bitcoinorgs_response_to_legal_threats_by_csw/gk1y8h9/

You absolutely have the right to fight it, there are many ways including: https://bitcointalk.org/index.php?topic=5311388.msg56156400
But the bitcoincore.org website is for hosting the software and information about the software project.  The inclusion of the whitepaper was largely incidental: There was only one link to the local copy, the rest were to Bitcoin.org.  There isn't any particular need for bitcoincore.org to have a mirror right now.  As a result, keeping it would just be mere symbolism that would make it easier for Wright to litigate and waste resources which may be desperately needed for a later and more relevant attack which will almost certainly come.  Bitcoin developers are in this for the long haul, and one doesn't win a war by stumbling into every minor skirmish the enemy provokes.
I hope you will reconsider your language and edit your comment to be less of an attack.  I seriously doubt you have the background or expertise to assess any particular move here as "stupid". Maintaining a project like Bitcoin for over a decade requires a patient long term strategy, not responding out of anger to every slight that comes onto the radar.  But even if the decision were an error, though I disagree that it is, it is entirely someone elses decision to make:  You don't get the right to control someone's personal legal strategy just because you use software they wrote.
I posted more about the subject here: https://www.reddit.com/r/Bitcoin/comments/l1uieu/bitcoinorgs_response_to_legal_threats_by_csw/gk1y8h9/

I agree with both Lucienest and gmaxwell's comments and don't think they are in contradiction.
You can't be a good content host in 2021 if you immediately capitulate to fraudulent claims. Whether or not doing this is in your own self-interest, it is bad for everyone else, because it sets a precedent encouraging abuse and self-censorship.
But I think it is completely reasonable if bitcoin core developers don't want to be content hosts. They have other priorities and other more important ways they can contribute to bitcoin's success. If they can't be good content hosts, it is better if they don't host content. An alternative would be to push signed source releases and binaries to github, ipfs, bittorrent, and other places, and let sites like bitcoin.org that may be more willing to take on challenges of hosting make their own valiant attempts at it.
If these issues were going to disappear after taking down a pdf, I don't think they would be a big deal. But what is the chess move going to be when there is a DMCA challenge to remove wallet software after it is used to illegally pay for someone's copyrighted content? What happens if there is law enforcement request to insert a backdoor? If there are plans for dealing with illegitimate requests that don't involve immediately capitulating, then maybe it makes sense to keep hosting. Otherwise it is probably better to find a way of distributing the effort.

I agree with both Lucienest and gmaxwell's comments and don't think they are in contradiction.
You can't be a good content host in 2021 if you immediately capitulate to fraudulent claims. Whether or not doing this is in your own self-interest, it is bad for everyone else, because it sets a precedent encouraging abuse and self-censorship.
But I think it is completely reasonable if bitcoin core developers don't want to be content hosts. They have other priorities and other more important ways they can contribute to bitcoin's success. If they can't be good content hosts, it is better if they don't host content. An alternative would be to push signed source releases and binaries to github, ipfs, bittorrent, and other places, and let sites like bitcoin.org that may be more willing to take on challenges of hosting make their own valiant attempts at it.
If these issues were going to disappear after taking down a pdf, I don't think they would be a big deal. But what is the chess move going to be when there is a DMCA challenge to remove wallet software after it is used to illegally pay for someone's copyrighted content? What happens if there is law enforcement request to insert a backdoor? If there are plans for dealing with illegitimate requests that don't involve immediately capitulating, then maybe it makes sense to keep hosting. Otherwise it is probably better to find a way of distributing the effort.

@ryanofsky

Otherwise it is probably better to find a way of distributing the effort.

I don't think it's an either-or scenario.  It's good to look at a way of distributing the hosting effort regardless of people's willingness to fight legal threats.  You may want to look at #739 and the related PR, especially if you have any IPFS experience.

@ryanofsky

Otherwise it is probably better to find a way of distributing the effort.

I don't think it's an either-or scenario.  It's good to look at a way of distributing the hosting effort regardless of people's willingness to fight legal threats.  You may want to look at #739 and the related PR, especially if you have any IPFS experience.

Sorry, I'm not saying you can't host and distribute hosting at the same time. Of course you can do both.
I'm just saying I think it is better for you to not host files if you have a high profile and you are going to respond to a fraudulent takedown request by rapidly capitulating to it, because the precedent for abuse and self-censorship that you are setting would not seem to outweigh benefits of having one extra server online hosting a few files.
I have weird opinions sometimes, so maybe this is one them. I just think going forward after this pdf event, I would be more assured if core developers either came up with a strategy for dealing with illegitimate legal threats that would not encourage more abuse, or if they decided just to not be in the hosting business.

Sorry, I'm not saying you can't host and distribute hosting at the same time. Of course you can do both.
I'm just saying I think it is better for you to not host files if you have a high profile and you are going to respond to a fraudulent takedown request by rapidly capitulating to it, because the precedent for abuse and self-censorship that you are setting would not seem to outweigh benefits of having one extra server online hosting a few files.
I have weird opinions sometimes, so maybe this is one them. I just think going forward after this pdf event, I would be more assured if core developers either came up with a strategy for dealing with illegitimate legal threats that would not encourage more abuse, or if they decided just to not be in the hosting business.

If we look at the MIT License it clearly states that: MIT-LICENSE

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software.

The Whitepaper also falls into the documentation category.
Notably, It was being asked whether MIT do actually covers the documentations:
Is the MIT license suitable for documentation?

If we look at the MIT License it clearly states that: MIT-LICENSE

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software.

The Whitepaper also falls into the documentation category.
Notably, It was being asked whether MIT do actually covers the documentations:
Is the MIT license suitable for documentation?

@ryanofsky

I think it is better for you to not host files if you have a high profile and you are going to respond to a fraudulent takedown request by rapidly capitulating to it

I think this is a partly false premise.

Rapidly: although I was not party to the discussions, my understanding is that this was discussed for several days before the document removal PR was opened.  Public source: https://www.reddit.com/r/Bitcoin/comments/l1uieu/bitcoinorgs_response_to_legal_threats_by_csw/gk3h1xd/

Capitulating: from the same source of @gmaxwell's above, plus the publicly posted copy of the letter sent to Bitcoin.org, additional demands were made in the letter that were not agreed to.  That indicates to me not a capitulation but a strategic withdrawal.

I have weird opinions sometimes, so maybe this is one them.

Maybe.  Certainly, if you had been the project contributor who had been threatened with a lawsuit by someone with billionaire backing and a history of not paying their legal fees (putting you on the hook to pay for defending against even the most baseless claims), I would think you'd appreciate other contributors trying to help you avoid the expense and stress of a protracted lawsuit by making an inconsequential change to a website.

I would be more assured [...]

More assured of what?

came up with a strategy for dealing with illegitimate legal threats that would not encourage more abuse

I particularly like one of Wladimir's proposed next steps: "In the short run, transfer bitcoincore.org to an organization instead of private ownership."
I think that will be really useful.  I think one of the problems with this situation is that the website is not owned an incorporated entity, so any lawsuits need to be dealt with on an individual basis by the site owner.  If it's owned by a corporate entity, particularly a structure that provides a personal liability shield, then the defense of the site can be more easily outsourced to experts.
Though, even in that case, it's probably not worth wasting money defending a file that's not important to host here and which is less clearly MIT licensed than the project's main code files.

@ryanofsky

I think it is better for you to not host files if you have a high profile and you are going to respond to a fraudulent takedown request by rapidly capitulating to it

I think this is a partly false premise.

Rapidly: although I was not party to the discussions, my understanding is that this was discussed for several days before the document removal PR was opened.  Public source: https://www.reddit.com/r/Bitcoin/comments/l1uieu/bitcoinorgs_response_to_legal_threats_by_csw/gk3h1xd/

Capitulating: from the same source of @gmaxwell's above, plus the publicly posted copy of the letter sent to Bitcoin.org, additional demands were made in the letter that were not agreed to.  That indicates to me not a capitulation but a strategic withdrawal.

I have weird opinions sometimes, so maybe this is one them.

Maybe.  Certainly, if you had been the project contributor who had been threatened with a lawsuit by someone with billionaire backing and a history of not paying their legal fees (putting you on the hook to pay for defending against even the most baseless claims), I would think you'd appreciate other contributors trying to help you avoid the expense and stress of a protracted lawsuit by making an inconsequential change to a website.

I would be more assured [...]

More assured of what?

came up with a strategy for dealing with illegitimate legal threats that would not encourage more abuse

I particularly like one of Wladimir's proposed next steps: "In the short run, transfer bitcoincore.org to an organization instead of private ownership."
I think that will be really useful.  I think one of the problems with this situation is that the website is not owned an incorporated entity, so any lawsuits need to be dealt with on an individual basis by the site owner.  If it's owned by a corporate entity, particularly a structure that provides a personal liability shield, then the defense of the site can be more easily outsourced to experts.
Though, even in that case, it's probably not worth wasting money defending a file that's not important to host here and which is less clearly MIT licensed than the project's main code files.

I will avoid replying again because I don't want to take up too much time and space, but I just want to answer this to be concrete about my view.

More assured of what?

It would be good to be assured that something like this will not happen again. One way could be for a different set of people not associated with core developers to host. Another way could be for the same set of people who are hosting to decide that a bad precedent has just been set, that something different could have been done in this case, and that something different will be done in future cases if there are more challenges.
Any of the following would be great:

Core hosters say they will fight absurd and baseless legal challenges to the bitter end.
Core hosters say they won't necessarily fight challenges to the end but will resist them to some extent. If they decide to implement takedowns, they will do it in a coordinated way that denounces them and instead of giving them any legitimacy with statements like "The licensing status of this file is unclear" and "legally it is safer to remove it" (https://github.com/bitcoin-core/bitcoincore.org/pull/740#issue-558461327)
Core hosters decide not to be core hosters and that hosting can be feasibly outsourced or decentralized.

The next steps that you linked to do sound reassuring and promising. Maybe the cost of one bad precedent is worth it if avoids future ones!

I will avoid replying again because I don't want to take up too much time and space, but I just want to answer this to be concrete about my view.

More assured of what?

It would be good to be assured that something like this will not happen again. One way could be for a different set of people not associated with core developers to host. Another way could be for the same set of people who are hosting to decide that a bad precedent has just been set, that something different could have been done in this case, and that something different will be done in future cases if there are more challenges.
Any of the following would be great:

Core hosters say they will fight absurd and baseless legal challenges to the bitter end.
Core hosters say they won't necessarily fight challenges to the end but will resist them to some extent. If they decide to implement takedowns, they will do it in a coordinated way that denounces them and instead of giving them any legitimacy with statements like "The licensing status of this file is unclear" and "legally it is safer to remove it" (https://github.com/bitcoin-core/bitcoincore.org/pull/740#issue-558461327)
Core hosters decide not to be core hosters and that hosting can be feasibly outsourced or decentralized.

The next steps that you linked to do sound reassuring and promising. Maybe the cost of one bad precedent is worth it if avoids future ones!

Every rational decision is a cost/benefit analysis.
I believe there is close to no benefit to having an additional mirror of the whitepaper, as that just isn't the purpose of this site (and as we've seen, a zillion other parties are more than happy to do it).  Had you asked me if there was one there previously, without looking I would have had to flip a coin:  "On one hand there is no reason for it to be there, on the other hand the site exists primarily because of sketchy behaviour by bitcoin.org, so maybe it was included."
Plenty of times in the past the project has removed stuff-- e.g. icons in the software-- where their legal status was in any slightly way complicated or ambiguous, even without any threat or serious risk of one.  The reason for this is because there was no reason to worry about it or take some exposure: It was an incidental concern which could easily be addressed through replacement.
This particular fraudulent legal threat is highly atypical of fraudulent legal threats: The attacker has enormous funding and essentially has a whole large and apparently-corrupt law firm in their pocket.  This means that although their claim is pathetically spurious and will ultimately fail they will be able to generate millions in legal expenses and waste enormous amounts of time and make enormous amounts of stress.  In a sense, even when you win against something like this you still lose.
Using claims which are no less spurious they already have essentially bankrupt Peter McCormack even after millions of dollars worth of funding-- something that should stand as a cautionary tale about the importance of picking the right fights, in the right locations, with the right people.  This isn't a reason to be afraid but it's a reason that the cost benefit equation has a considerable amount of cost even though the claims are laughably spurious. So the trade-off is poor: Not much, if any benefit, and some significant cost even though we know the claims are bunk.
But most critically this is not the actual fight.  This is some pointless bait move to get people to show their hands and expose their resources to getting picked off with potshots, something to deplete and demoralize people with and once wright has lost this one, wright just pick up the next.
His actual attack will likely be trying to go after the software with spurious copyright and patent claims as well as trying to steal the use of the word Bitcoin entirely.  Every Bitcoin and ounce of contributor endurance spent defending a symbolic victory of keeping an unnecessary mirror on this site-- a battlefield chosen by the opponent, one which is at least more complicated to defend than some others-- is a resource not spent fighting the subsequent attacks that matter.
Consider this-- say the software was still exclusively available on Bitcoin.org and Wright files his threatened action. Then the operator goes into a full fight-to-the-death mode over it (more justified-- because that isn't just a mirror of the whitepaper) and actually loses the case because they run out of resource (money or endurance-- after all people who fly into a rage over a false threat aren't typically people who will be able to endure years of grinding bureaucratic injustice) or because the same conman who duped or corrupted Gavin Andresen (and has kept him duped/corrupted to this very day, even after screwing him over) managed to dupe a far less technical jury... then, seeing as how the site has no other assets to pay for compensation, orders the domain name be turned over to the scammer by the registrars.  So then you would have the only well known location for obtaining the software controlled by a conman who is a professed enemy of Bitcoin.  Is this likely? Absolutely not.  Is it possible? Absolutely.  But this is a risk that can be reduced-- not eliminated-- by a separation of concerns.
So just as you wouldn't recommend embedding a full on web-browser into the code that handles users private keys in the wallet-- not without some VERY compelling reason--  you shouldn't be recommending the bitcoincore.org take on an almost entirely incidental exposure here.  Does it have the right to do so?  Abso-fukn-loutely.  Just like the project has the right to embed a web browser into the wallet.  Having the right to do it doesn't make the exposure it creates a worthwhile trade-off.
Had someone suggested embedding a webbrowser into the wallet and then instantly after someone from Mozilla legal showed up and scremed that it would be illegal to do so--  would it suddenly become a better idea to embed a browser just to show them that the project didn't like being pushed around?  No.  Yes, wright sucks, yes every right thinking person should want to kick him in the nuts as hard as permitted by law.  'Never wrestle with pigs.
In this case, it's not even just a question of embedding one piece of exposure-- Bitcoin.org is being attacked too. So even if you adopted the position that Bitcoin really needed one web browser in the wallet, does it really need both chrome and firefox?
Our community may well be forced into this particular fight once, does it really make sense to fight two independent copies of it at the same time?  Or does the project stay focused on its essential mission while the lead in this fight is taken by other people in the community that don't have another way to contribute and are legally, emotionally, and financially in the best positions to fight this particular fight for as long as it takes-- aided by the rest of us?  Separation assures that even if that particular fight is somehow lost, continuity of the software distribution-- far more critical than a pdf with a thousand mirrors-- won't be lost with it.

Every rational decision is a cost/benefit analysis.
I believe there is close to no benefit to having an additional mirror of the whitepaper, as that just isn't the purpose of this site (and as we've seen, a zillion other parties are more than happy to do it).  Had you asked me if there was one there previously, without looking I would have had to flip a coin:  "On one hand there is no reason for it to be there, on the other hand the site exists primarily because of sketchy behaviour by bitcoin.org, so maybe it was included."
Plenty of times in the past the project has removed stuff-- e.g. icons in the software-- where their legal status was in any slightly way complicated or ambiguous, even without any threat or serious risk of one.  The reason for this is because there was no reason to worry about it or take some exposure: It was an incidental concern which could easily be addressed through replacement.
This particular fraudulent legal threat is highly atypical of fraudulent legal threats: The attacker has enormous funding and essentially has a whole large and apparently-corrupt law firm in their pocket.  This means that although their claim is pathetically spurious and will ultimately fail they will be able to generate millions in legal expenses and waste enormous amounts of time and make enormous amounts of stress.  In a sense, even when you win against something like this you still lose.
Using claims which are no less spurious they already have essentially bankrupt Peter McCormack even after millions of dollars worth of funding-- something that should stand as a cautionary tale about the importance of picking the right fights, in the right locations, with the right people.  This isn't a reason to be afraid but it's a reason that the cost benefit equation has a considerable amount of cost even though the claims are laughably spurious. So the trade-off is poor: Not much, if any benefit, and some significant cost even though we know the claims are bunk.
But most critically this is not the actual fight.  This is some pointless bait move to get people to show their hands and expose their resources to getting picked off with potshots, something to deplete and demoralize people with and once wright has lost this one, wright just pick up the next.
His actual attack will likely be trying to go after the software with spurious copyright and patent claims as well as trying to steal the use of the word Bitcoin entirely.  Every Bitcoin and ounce of contributor endurance spent defending a symbolic victory of keeping an unnecessary mirror on this site-- a battlefield chosen by the opponent, one which is at least more complicated to defend than some others-- is a resource not spent fighting the subsequent attacks that matter.
Consider this-- say the software was still exclusively available on Bitcoin.org and Wright files his threatened action. Then the operator goes into a full fight-to-the-death mode over it (more justified-- because that isn't just a mirror of the whitepaper) and actually loses the case because they run out of resource (money or endurance-- after all people who fly into a rage over a false threat aren't typically people who will be able to endure years of grinding bureaucratic injustice) or because the same conman who duped or corrupted Gavin Andresen (and has kept him duped/corrupted to this very day, even after screwing him over) managed to dupe a far less technical jury... then, seeing as how the site has no other assets to pay for compensation, orders the domain name be turned over to the scammer by the registrars.  So then you would have the only well known location for obtaining the software controlled by a conman who is a professed enemy of Bitcoin.  Is this likely? Absolutely not.  Is it possible? Absolutely.  But this is a risk that can be reduced-- not eliminated-- by a separation of concerns.
So just as you wouldn't recommend embedding a full on web-browser into the code that handles users private keys in the wallet-- not without some VERY compelling reason--  you shouldn't be recommending the bitcoincore.org take on an almost entirely incidental exposure here.  Does it have the right to do so?  Abso-fukn-loutely.  Just like the project has the right to embed a web browser into the wallet.  Having the right to do it doesn't make the exposure it creates a worthwhile trade-off.
Had someone suggested embedding a webbrowser into the wallet and then instantly after someone from Mozilla legal showed up and scremed that it would be illegal to do so--  would it suddenly become a better idea to embed a browser just to show them that the project didn't like being pushed around?  No.  Yes, wright sucks, yes every right thinking person should want to kick him in the nuts as hard as permitted by law.  'Never wrestle with pigs.
In this case, it's not even just a question of embedding one piece of exposure-- Bitcoin.org is being attacked too. So even if you adopted the position that Bitcoin really needed one web browser in the wallet, does it really need both chrome and firefox?
Our community may well be forced into this particular fight once, does it really make sense to fight two independent copies of it at the same time?  Or does the project stay focused on its essential mission while the lead in this fight is taken by other people in the community that don't have another way to contribute and are legally, emotionally, and financially in the best positions to fight this particular fight for as long as it takes-- aided by the rest of us?  Separation assures that even if that particular fight is somehow lost, continuity of the software distribution-- far more critical than a pdf with a thousand mirrors-- won't be lost with it.

@harding Just to be clear, your understanding that this was discussed privately for "a few days" beforehand is mistaken, I believe Greg is referring to initially wanting me to not share the news of the letters for a while after we all received the letters, not that it was discussed prior. It seems that the whitepaper was removed basically a few hours after the threats were sent out. Greg says I broke confidentiality in that Reddit post, but that's not true, both the letters and the activity on this repo were public knowledge and were already being circulated before bitcoin.org put up the statement. That's generally how Craig operates, he shouts about what he's doing or will do, and if he sends you legal papers you can assume it'll be public knowledge a short while after. Speaking of that, see my screenshot below where he just told me about his upcoming plans a few moments ago. [1]
 Instead, because I acted, we ended up setting the narrative, and hundreds of companies and individuals have now joined us in rejecting Craig's claims over the whitepaper. It would have been nice for Bitcoin Core to reject him too.
Bitcoin Core developers saying the licensing status of the whitepaper is unclear is extremely dangerous. The whitepaper was bundled along with the original source code as an associated documentation file, and is clearly MIT licensed. In legal terms, it's just as much a part of the Bitcoin Core project as the genesis block or any line of code, because the MIT license bundles both the associated documentation files and the source code together as "the Software". When you cast doubt on the licensing status of the whitepaper by hastily removing it, from the Bitcoin Core site no less, you're also essentially saying the licensing status of the initial Bitcoin software released by Satoshi is unclear as it's all bundled together. Some Core developers defended the removal claiming it's not a hill worth dying on, and they would only fight back if he comes for the actual code, but they're missing the point, the whitepaper for all intents and purpose was the code, it was included in the initial software Satoshi released, they had no right to get you to take it down.
I think it's somewhat understandable to be spooked by Craig's threats, but painting what Core did here as part of some strategic calculated move is just not true, it was a panicked and rushed change, pushed through after only a few hours of receiving a dubious copyright claim, I doubt an attorney was even consulted, as no credible attorney would advise to comply with frivolous copyright claims. Do you think hundreds of companies and individuals would willingly host his alleged "copyrighted material" if his claims had any merit?
I think @ryanofsky and many other people have every right to feel uncomfortable about this, as you can see from my screenshot below, Craig doesn't plan on stopping, and complying with his demands just for the sake of preventing legal trouble isn't wise, because the goal is to get you to court, not to actually get the whitepaper taken down, so he will just sue you over something else, and subsequent attacks might be harder to defend against than a clear and cut case of hosting MIT content. The developers haven't actually "avoided" any legal trouble here.
[1]. Craig's words a short while ago:

@harding Just to be clear, your understanding that this was discussed privately for "a few days" beforehand is mistaken, I believe Greg is referring to initially wanting me to not share the news of the letters for a while after we all received the letters, not that it was discussed prior. It seems that the whitepaper was removed basically a few hours after the threats were sent out. Greg says I broke confidentiality in that Reddit post, but that's not true, both the letters and the activity on this repo were public knowledge and were already being circulated before bitcoin.org put up the statement. That's generally how Craig operates, he shouts about what he's doing or will do, and if he sends you legal papers you can assume it'll be public knowledge a short while after. Speaking of that, see my screenshot below where he just told me about his upcoming plans a few moments ago. [1]
 Instead, because I acted, we ended up setting the narrative, and hundreds of companies and individuals have now joined us in rejecting Craig's claims over the whitepaper. It would have been nice for Bitcoin Core to reject him too.
Bitcoin Core developers saying the licensing status of the whitepaper is unclear is extremely dangerous. The whitepaper was bundled along with the original source code as an associated documentation file, and is clearly MIT licensed. In legal terms, it's just as much a part of the Bitcoin Core project as the genesis block or any line of code, because the MIT license bundles both the associated documentation files and the source code together as "the Software". When you cast doubt on the licensing status of the whitepaper by hastily removing it, from the Bitcoin Core site no less, you're also essentially saying the licensing status of the initial Bitcoin software released by Satoshi is unclear as it's all bundled together. Some Core developers defended the removal claiming it's not a hill worth dying on, and they would only fight back if he comes for the actual code, but they're missing the point, the whitepaper for all intents and purpose was the code, it was included in the initial software Satoshi released, they had no right to get you to take it down.
I think it's somewhat understandable to be spooked by Craig's threats, but painting what Core did here as part of some strategic calculated move is just not true, it was a panicked and rushed change, pushed through after only a few hours of receiving a dubious copyright claim, I doubt an attorney was even consulted, as no credible attorney would advise to comply with frivolous copyright claims. Do you think hundreds of companies and individuals would willingly host his alleged "copyrighted material" if his claims had any merit?
I think @ryanofsky and many other people have every right to feel uncomfortable about this, as you can see from my screenshot below, Craig doesn't plan on stopping, and complying with his demands just for the sake of preventing legal trouble isn't wise, because the goal is to get you to court, not to actually get the whitepaper taken down, so he will just sue you over something else, and subsequent attacks might be harder to defend against than a clear and cut case of hosting MIT content. The developers haven't actually "avoided" any legal trouble here.
[1]. Craig's words a short while ago:

Cobra is just lying from top top bottom in his post.  It's utterly infuriating because I cannot expose how much he is lying without exposing material which should be kept confidential.

Cobra is just lying from top top bottom in his post.  It's utterly infuriating because I cannot expose how much he is lying without exposing material which should be kept confidential.

I stand by what I said in the original PR. There is a lot of precedent in FOSS projects removing binary blobs with unclear licensing. I consider the whitepaper like this. Yes, you can claim it falls under the MIT license. I haven't seen sufficient proof. But it's great if you believe that and host it yourself.
As said in the original PR, this site is for hosting the software. It's not a lightning rod for unnecessary legal risks.

I stand by what I said in the original PR. There is a lot of precedent in FOSS projects removing binary blobs with unclear licensing. I consider the whitepaper like this. Yes, you can claim it falls under the MIT license. I haven't seen sufficient proof. But it's great if you believe that and host it yourself.
As said in the original PR, this site is for hosting the software. It's not a lightning rod for unnecessary legal risks.


Accordion Deep Linking scrolls to top of accordion when using smudge

This is a duplicate of closed issue https://github.com/foundation/foundation-sites/issues/12141
What should happen?
The window should scroll down to the accordion list item identified in the hash.
What happens instead?
It scrolls down only to the top of the entire accordion.
Possible Solution:
This is a badly pasted patch file. Change line 104 in js/foundation.accordion.js to
var offset = this.$element.find([href$="${anchor}"]).offset();
``
diff --git a/node_modules/foundation-sites/js/foundation.accordion.js b/node_modules/foundation-sites/js/foundation.accordion.js
index 0b9096e..2cdd3dd 100644
--- a/node_modules/foundation-sites/js/foundation.accordion.js
+++ b/node_modules/foundation-sites/js/foundation.accordion.js
@@ -101,7 +101,7 @@ class Accordion extends Plugin {
// Roll up a little to show the titles
if (this.options.deepLinkSmudge) {
onLoad($(window), () => {

       var offset = this.$element.offset();

       var offset = this.$element.find(`[href$="${anchor}"]`).offset();
       $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);
     });
   }

``
How to reproduce:
Paste the doc example deep linked accordion onto a page with basic smudge options enabled.
Add a bunch more list items so that there is room to scroll (and maybe put stuff above the accordion so that if it wants to scroll to the top of the accordion, it has room to move)
Open a list item so that you can copy the url
Navigate away and then paste the url with the deep linked hash into the url bar and press enter
Behold as it scrolls to the top of the accordion rather than down to a list item.
Example page with error.
The following link to the same place
https://get.foundation/sites/docs/accordion.html#deeplink1
https://get.foundation/sites/docs/accordion.html#deeplink3

Duplicate of #12141
@audave can you submit a PR?


Warn if confusable characters are used in ENS name

Description

Check if the ENS name contains a confusable character and raise a warning if there is and there are no errors.

Closes #154

#526

@apbendi yea check out https://github.com/ScopeLift/umbra-protocol/pull/523#discussion_r1212484083, we were gonna fix in a follow up PR since it seems it existed prior to this PR also


cannot destroy aws cluster with attached glusterfs volumes

terraform destroy cannot destroy an AWS cluster because of attached glusterfs volumes:
aws_instance.mi-worker-nodes.1: Destruction complete
aws_security_group.worker: Destroying...
aws_volume_attachment.mi-control-nodes-glusterfs-attachment.1: Error: 1 error(s) occurred:

* Error waiting for Volume (vol-fa473801) to detach from Instance: i-6befc4c7
aws_volume_attachment.mi-control-nodes-glusterfs-attachment.0: Error: 1 error(s) occurred:

* Error waiting for Volume (vol-5a4837a1) to detach from Instance: i-ccefc460
aws_volume_attachment.mi-control-nodes-glusterfs-attachment.2: Error: 1 error(s) occurred:

* Error waiting for Volume (vol-f647380d) to detach from Instance: i-d2efc47e
aws_security_group.control: Destroying...
aws_subnet.main: Destroying...
aws_key_pair.deployer: Destroying...
aws_key_pair.deployer: Destruction complete
aws_security_group.worker: Destruction complete
aws_internet_gateway.main: Error: 1 error(s) occurred:

* Error waiting for internet gateway (igw-77bfe712) to detach: timeout while waiting for state to become 'detached'
aws_security_group.control: Error: 1 error(s) occurred:

* DependencyViolation: resource sg-46f96b21 has a dependent object
        status code: 400, request id: []
aws_subnet.main: Error: 1 error(s) occurred:

* Error deleting subnet: timeout while waiting for state to become 'destroyed'
Error applying plan:

4 error(s) occurred:

* 3 error(s) occurred:

* 1 error(s) occurred:

* Error waiting for Volume (vol-fa473801) to detach from Instance: i-6befc4c7
* 1 error(s) occurred:

* Error waiting for Volume (vol-5a4837a1) to detach from Instance: i-ccefc460
* 1 error(s) occurred:

* Error waiting for Volume (vol-f647380d) to detach from Instance: i-d2efc47e
* 1 error(s) occurred:

* 1 error(s) occurred:

* Error waiting for internet gateway (igw-77bfe712) to detach: timeout while waiting for state to become 'detached'
* 1 error(s) occurred:

* 1 error(s) occurred:

* DependencyViolation: resource sg-46f96b21 has a dependent object
        status code: 400, request id: []
* 1 error(s) occurred:

* 1 error(s) occurred:

* Error deleting subnet: timeout while waiting for state to become 'destroyed'

We might need to add force_detach to the aws_volume_attachment resource...

this was fixed in #639


can it work linux running on virtual machine box on windows

will it work on virtual box running linux on windows???

yes i have external Bluetooth adapters...just wan to know will it still work via virtual box machines ?

yes!


Fix Linkind motion sensor detection

Proposed change
Fixes the issue where Linkind motion sensors get reset after 60 seconds (during continuous motion).
Also fixes the issue where brightness triggers the motion entity.
Explanation
According to the OP in #1291, the Linkind motion sensor uses three bits for the IasZone zone_status:

Alarm_1 for detected motion
Alarm_2 for detected brightness
tamper for detected tamper

ZHA currently creates a binary sensor for motion, but turns it on if either Alarm_1 or  Alarm_2 is set to 1.
As we want to ignore the brightness bit for the motion sensor entity, this PR modifies the quirk to always ignore the Alarm_2 bit on this motion sensor, so only Alarm_1 (motion) is considered for the motion sensor entity.
A test to verify the added code works was also added.
Previous quirk with timeout to reset
#2130 added a quirk which reset the motion sensor after a timeout (expecting continuous reports every 60 seconds).
This caused issues for some users at least (perhaps different firmware versions?).
Z2M does not use a timeout to reset the sensor, so we likely also shouldn't.

In #2225, @jasongabler removed the added quirk entirely and the motion sensors started working again. (Maybe old versions do not use the Alarm_2 bit for brightness at all?)
If you're around, can you try this version of the quirk to see if it (still) works for you?
@LAHA2 Please also confirm if this works.
@1jk, @jfrux, @dmackenzie123, @TheRealSimon42 were the ones that had issues with the motion sensor getting stuck.
If you can, please also try if this quirk version (still) works for you.
Install as a custom quirk:
To install this as a custom quirk, download the the motion.py file.
Then, add this to your HA configuration.yaml. Copy the downloaded .py file in the (newly) created custom_zha_quirks directory and restart HA.
Additional information
Fixes #2225, fixes #1291
Partly reverts #2130 / commit 7f5c50635da36d83cd436b3125edbd3307ed7ca8.
Checklist

[ ] The changes are tested and work correctly
[x] pre-commit checks pass / the code has been formatted using Black
[x] Tests have been added to verify that the new code works

I'm running Home Assistant on Virtual VMWare Workstation 17 on Windows 11. Should I be able to add the custom quirk? Something tells me I lack some access or Python capabilities. Any advice or links to guides is greatly appreciated!

Awesome, thanks for letting me know!

I can also confirm that this quirk resolves the issue of no motion detection in dark. Log section below.
  I have  that problem, and also with ZHA still showing it detecting with the battery removed. ??


feat(applications-service-api): improve error handling for PUT /api/v1/subscriptions/{caseReference}

improve validation and error handling on the PUT /api/v1/subscriptions/{caseReference} endpoint

explicitly handle missing email / subscriptionTypes properties when decrypting payload
return a nicer error message if decryption fails

:tada: This PR is included in version 1.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


academic departments

hardcoded at first in parameters
seek final solution using ALMA api

departments added, but needs to be filtered/sorted.

hard coded list of departments. in the future this should pull live data from an api


Custom DOMAIN for fetchnwp

To significantly reduce NWP file sizes, I've been modifying the DOMAIN in /solarforecastarbiter/io/nwp.py, e.g., for a region in the Southeast:
DOMAIN = {'subregion': '',
          'leftlon': -90.5,
          'rightlon': -80.5,
          'toplat': 35.2,
          'bottomlat': 30}

Maybe there's a better way to do this, but if not, would it make sense to allow a custom domain to be defined through the command line interface as an option for fetchnwp?
Similar, but maybe less useful, would be the ability to define an upper limit on the valid hour for a model. For example, if someone wants to use the GEFS for a probabilistic forecast, but they are not interested in forecasting beyond 24 hours, they could avoid having to save data for hours 30-384 (or whatever the relevant intervals are for GEFS).

From a quick glance, it seems reasonable to add those arguments to cli.fetchnwp and propagate them down through io.fetch.nwp.run and helper functions.
Considerations:

I'm not sure if we'd want to specify the domain as a single complicated argument or as 4 or 5 different arguments on the command line
GFS/GEFS need to be pulled in multiples of 6 hours due to how the data is structured.
reference_observations.py uses the default DOMAIN as a check when creating reference forecasts, but I think that potential inconsistency can be ignored.

I suppose another option is reading from environment variables e.g.
DOMAIN = {'subregion': '',
          'leftlon': os.environ.get('SFA_DOMAIN_LEFTLON', -90.5),
          'rightlon': -80.5,  # and so on...
          'toplat': 35.2,
          'bottomlat': 30}


Security

Hello dx team,
How do you handle security? Are there any guidelines? Do you support authentication, authorization. How?
Web Api provider looks very promising!
Thanks in advance,

Let's continue discussing this in your ticket: https://supportcenter.devexpress.com/ticket/details/t957368/web-api-data-provider-transfer-data-via-rest-api-and-security


SVG images showing with blueish tint on non-Windows platforms

Version: 0.5.12
SVG images show with Red and Blue (of RGB) color channels swapped
see discussion at https://github.com/EtheaDev/SVGIconImageList/issues/229

had to patch SVGIconImageList library and its included Image32 library (used for SVG rendering since it's the more accurate one and written in pure Delphi code) for Android and MacOS-X to show SVGs correctly. In the future when the SVGIconImageList is updated on GetIt Package manager will remove the patched files:


Add my personal site (coolmathgames.tech)

@Mstrodl I noticed that the portfolio link ( http://coolmathgames.tech/portfolio ) is broken.

@Kodiologist I haven't written it yet! I had a portfolio at the time but I decided I wanted to rewrite it, so it 404s at the moment.


Plus Minus

Given an array of integers, calculate the fractions of its elements that are positive, negative, and are zeros. Print the decimal value of each fraction on a new line.

Plus Minus

..


Removing seeking events/attributes

It seems that the current seeking feature in media controls isn't good enough:

the session doesn't know how long it should seek;
it is not possible to implement a UI that allows seeking while a button is pressed.

It might be a good idea to remove it from the spec while we figure out what we want to do here. Unless there is an implementation ready to use these in which case, we should prioritize fixing it.

This relates to issue https://github.com/whatwg/mediasession/issues/42. What do you think of the proposal in https://github.com/whatwg/mediasession/issues/42#issuecomment-105286410?
We could also go ahead and remove this pending further concrete implementer interest/feedback in seeking functionality.

The proposal in issue #42 isn't enough. In that case, the event should carry the seconds to skip because it's likely a UA decision not the website.

Yeah, when we get around for this we'll need a FooEvent which has the extra information as an attribute. Even further down the line, we might need more of that kind to expose favorite, rating or like buttons, discussed briefly in https://github.com/whatwg/mediasession/issues/11

Seeking events and attributes have now been removed from the spec with commit https://github.com/whatwg/mediasession/commit/585871485162a53657f540f5eaa2e645631304b2.
This change is based on feedback received in this issue (https://github.com/whatwg/mediasession/issues/79).
We should continue to discuss seeking behavior in the context of issue https://github.com/whatwg/mediasession/issues/42. As part of tackling https://github.com/whatwg/mediasession/issues/42 we should also be able to address issue https://github.com/whatwg/mediasession/issues/11.
If you want to discuss this change further please re-open this issue or create a new issue on the project as you feel is appropriate.

We should start thinking along the lines of https://github.com/whatwg/mediasession/issues/79#issuecomment-117742691.

Can we reuse an existing Event type for this purpose or should we define a new Event type?
Should seeking duration and behavior be enforced against, e.g. all participating media elements? i.e. should the user agent actively set el.currentTime to +/- the seeking interval or should this be left up to web apps to apply the seeking interval to connected media elements/objects?
Should web applications be able to request a preferred seeking interval? That interval would presumably be echoed back in the corresponding event if it was valid on the current platform - otherwise a platform default would be echoed back in the event).

In the case of Web Audio it's necessary for scripts to have and use the seeking interval, as there's nothing that could happen by default.

So, at the very least, there should be a new Event type for Seek commands, containing the UA-requested seek amount.  For media elements, if this Event is not preventDefault()'d, the UA will just set target.currentTime += event.value. For Web Audio contexts, this event will do nothing by default, but a page could handle this event manually to seek it's playback by the requested amount (by, e.g., tearing down existing AudioBufferSourceNodes and re-enqueueing them at the requested offset.
This same mechanism could work similarly for "fast-forward" and "rewind" events, where the Event's value is the requested rate.


Alter accountant dashboard to include more data

Thanks for creating an issue! Please fill out this form so we can be sure to have all the information we need, and to minimize back and forth.

What are we trying to do?

NOAF is experiencing a pain point around accounting. We should talk about the strat I've laid out here, but I think we can adjust things to mitigate some of their pain points.

What feature or behavior is this required for?

NOAF's accountant not spending multiple hours every month re-entering names of people by hand to send to clinics

How could we solve this issue? (Not knowing is okay!)

One way is to remix the accounting dashboard to include:

full name instead of just initials (this is really kind of the creepy part)
pledge amt
line
pledge sent date and any other fields currently on)

assuming we can do this without major changes in our safety posture. My hunch is yes but I want to get the eng team to weigh in here.

Anything else?

stems from a long conversation colin had with noaf

(also of note, they requested adding weeks at procedure to the fulfillment partial/edit page in the info spot, and requested the ability to sort by clinic on the main accounting page.)

So three issues here, with complexity:

Add Weeks at Procedure to fulfillment partial
On accounting, search by, or sort by, clinic. either one is fine
On accounting, make the search shell have scrolly overflow and add pt name, line; ditch initials; keep other info

Individual steps are ticketed, so closing this out and tracking programming in individual tickets


Exception: Stream did not contain valid UTF-8

(Edited to reflect figuring out one thing and then hitting another bit of confusion)
Not sure what I am doing wrong here. Please keep in mind that I am fairly new to all of this, so I appologize in advance if my questions come off as ignorant.
So I have been using the other Tortoise TTS webui, and trained a model, and have been using it fine in that UI.
But I am having a hell of a time getting the model to load in this UI. The model I am trying to load is holly.pth, which is my fine tuned model.
So I place my model in the proper folder, and I use the drop down menu to select it. I am assuming I am selecting the fine tuned model I want to load? So I select holly.pth in the list, and get the error ---
FileNotFoundError: [Errno 2] No such file or directory: 'F:\AI\TTSWebUI\tts-generation-webui\data\models\tortoise\holly.pth\autoregressive.pth'
The error confuses me, since as far as I understand, the fine tuned model should be in place of the autoregressive.pth?
So I then make a Holly directory, and just select that from the drop down list after putting all the files in there. I still get the error about no autoregressive. being found so I just rename my fine tuned Holly.ptf to autoregresive.pth.
I then select that in the drop down, and am now getting the error ---
FileNotFoundError: [Errno 2] No such file or directory: 'F:\AI\TTSWebUI\tts-generation-webui\data\models\tortoise\Holly\vocoder.pth'
So I searched the entire folder where I keep all of my Tortoise TTS stuff, and I don't find a single file named vocoder.pth.
I am so confused lol. Especially after successfully training the model and being please with the results when using it in the other Tortoise TTS webui.
But I wanted to see if I could fine tune the model in RVC so I installed the tts-generation-webui to make that easier.
I am guesing it might be something I am just doing wrong due to knowing so little about any of this, but am at a loss and not sure.

This indicates that the problem is with the tokenizer file. Mrq modified
tortoise but didn't bring those changes back to the original, once I'm back
from holiday I'll check if the model selection can be just revamped. This
could make this problem disappear.
There is a way to make it work but it's not the first nor the second time
that confusion has happened.
On Mon, Nov 27, 2023, 7:18 PM Kemahudson @.***> wrote:

So I only started learning about all this stuff over the last few months,
so excuse my ignorance if I come off that way with my question.
I have a model (Holly.pth) that I trained in Tortoise TTS that works fine
if I try to use it in other Tortoise TTS gui's. However when I try to use
it in this tts-generation-webui, and click on the load model button, I end
up getting the following errors.
Traceback (most recent call last):
File
"F:\AI\TTSWebUI\installer_files\env\lib\site-packages\gradio\routes.py",
line 437, in run_predict
output = await app.get_blocks().process_api(
File
"F:\AI\TTSWebUI\installer_files\env\lib\site-packages\gradio\blocks.py",
line 1352, in process_api
result = await self.call_function(
File
"F:\AI\TTSWebUI\installer_files\env\lib\site-packages\gradio\blocks.py",
line 1077, in call_function
prediction = await anyio.to_thread.run_sync(
File
"F:\AI\TTSWebUI\installer_files\env\lib\site-packages\anyio\to_thread.py",
line 33, in run_sync
return await get_asynclib().run_sync_in_worker_thread(
File
"F:\AI\TTSWebUI\installer_files\env\lib\site-packages\anyio_backends_asyncio.py",
line 877, in run_sync_in_worker_thread
return await future
File
"F:\AI\TTSWebUI\installer_files\env\lib\site-packages\anyio_backends_asyncio.py",
line 807, in run
result = context.run(func, *args)
File "F:\AI\TTSWebUI\tts-generation-webui\src\tortoise\gen_tortoise.py",
line 49, in switch_model
get_tts(
File "F:\AI\TTSWebUI\tts-generation-webui\src\tortoise\gen_tortoise.py",
line 84, in get_tts
MODEL = TextToSpeech(
File
"F:\AI\TTSWebUI\installer_files\env\lib\site-packages\tortoise\api.py",
line 233, in init
self.tokenizer = VoiceBpeTokenizer(
File
"F:\AI\TTSWebUI\installer_files\env\lib\site-packages\tortoise\utils\tokenizer.py",
line 174, in init
self.tokenizer = Tokenizer.from_file(
Exception: stream did not contain valid UTF-8
I used the one click installer, and just to cover my bases in case
something went wrong with the install, I have reinstalled it 3 times now.
And end up with the same error.
Not sure what I am doing wrong. :/
—
Reply to this email directly, view it on GitHub
https://github.com/rsxdalv/tts-generation-webui/issues/221, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABTRXI2P5HR6KQGFNFUPOM3YGRZINAVCNFSM6AAAAAA733MIA6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGAYTEMBVGEYDENI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Thanks much for the reply! And glad to hear its not just something I was overlooking due to being clueless lol.

My backlog is still a bit long but I think after I finish upgrading to the new RVC I can take a look at forking tortoise to make the model selection better. The new tortoise makes it painfully difficult to get the separate models for download so an option to just swap autoregressive is needed.


Invalid RegEx on Safari

Works fine on Chrome and Firefox, but on Safari I receive the following unhandled runtime error when accessing the project through localhost:
'SyntaxError: Invalid regular expression: invalid group specifier name'
File with issue: ./node_modules/notion-to-md/build/utils/md.js
notion-to-md v2.5.5

Thanks for reporting. I'll try to reproduce it locally and reach out to you.

@DevMattDavies Can you share the problematic content that may have triggered this error? Or can you simply share your notion page so that I can test it with the solution locally?

I'm also seeing this. It looks like it's due to an internal usage of regexs that utilize look behinds.
Looks like it's fixed on iOS 16.4 potentially, but that's too recent of a release for me to rely on :(
https://gist.github.com/alordiel/ed8587044be07e408f5f93b3124836b3?permalink_comment_id=4559542#gistcomment-4559542
Here's the page I'm experiencing this on: https://home-mitchinson-dev-git-safari-bug-bmitchinson.vercel.app
Here's the source code: https://github.com/bmitchinson/home-mitchinson-dev/blob/main/src/pages/index.tsx#L55
Including that line and importing the package white screens the page.
Only effects mobile iOS Safari Versions <16.4 and not safari 16.4 desktop.

Edited link

Thanks for sharing the links, I'll test it. The issue is fixed and it should be live in few days

v2.6.0 is live now. It should fix the issue. Can you confirm from your end?

Thanks for looking into this - have updated to v2.6.0 but now getting a compilation error (affects all browsers), seems to be related to the fs-extra lib:
`./node_modules/graceful-fs/graceful-fs.js:1:0
Module not found: Can't resolve 'fs'
https://nextjs.org/docs/messages/module-not-found
Import trace for requested module:
./node_modules/fs-extra/lib/fs/index.js
./node_modules/fs-extra/lib/index.js
./node_modules/notion-to-md/build/notion-to-md.js
./node_modules/notion-to-md/build/index.js
./src/utils/getAbbreviatedPosts.ts
./src/components/HomePage/HomePage.tsx
./src/pages/index.tsx`

Seems like you are using it in the frontend. File system API only works on the server. Correct me if I'm wrong.
Are you using the whole Library including the notion SDK in frontend?

The getAbbreviatedPosts function (in which notion-to-md is being used) is used in the getStaticProps function of next, so should be running server-side only.

Can you point to the code and the function you are referring to. I couldn't find it in the above provided links.

Sorry I think that was another developer who linked their github/website above.
getAbbreviatedPosts function here:
https://github.com/DevMattDavies/mrgdavies-website-revised/blob/main/src/utils/getAbbreviatedPosts.ts
For clarity the package was working as intended before v.2.5.5, it was just that specific update that broke regex on safari, and then this new issue introduced with v.2.6.

Alright so I'm not sure why it's not working with getStaticProps but next removes any such imports during build.
Can you follow this answer and let me know if it works?
https://stackoverflow.com/a/68098547

Tried adding the webpack config to next.config.js, now getting new error:
TypeError: undefined is not an object (evaluating 'fs.realpath.native')

alright! I'll remove the dependency on fs and leave that on users. Should be fixed in the next release.

New issue opened - current issue being closed by request.


Bump intex to 0.1.5 at stable

Version: stable=0.1.0 (91 days old) => latest=0.1.5 (15 days old)
Installs: stable=63 (66.32%), latest=13 (13.68%), total=95
Click to use developer portal
Click to edit
Note: This is an automatically generated message and not personally authored by bluefox!

1.0.5 created 10.09.2023
13 User (> 10%)
OK


Tutorial 'Dont show this screen again' option broken

Looks like this is because the new SameSite cookie is not being added to the API request.
Apparently this is because the ZAP frame is on the target site, but we have other similar cases (eg the Site tree) where the API calls appear to still work.
Am investigating...

One fix would be to have 2 cookies - the current one and another without the SameSite flag for relatively safe requests that can trigger this issue, but I'd really like to find out why the other API requests are still working...


Rate limiter for postUserMessageWithPubsub()

Rate limiter with a sliding window.
Usage:
const remaining = await rateLimiter(key, maxPerTimeFrame, timeframeSeoncds);

Redis sorted sets are used for the sliding window with a log(n) cost (with N being the number of successful HTTP calls made by the user).

If we ever need to return the number of seconds left before the rate limit will return > 1 again, here is the code to make:
   const oldest = await redis.zRangeWithScores(redisKey, maxPerTimeframe -1, maxPerTimeframe-1, { REV:true})

      if (oldest.length > 0) {
        const retrySeconds = Math.round((oldest[0].score + timeframeSeconds * 1000 - new Date().getTime()) / 1000);
        return new Err({
          retrySeconds: retrySeconds
        })
      }


Missing code for IAsyncDisposable section

In the IAsyncDisposable supported section, towards the end and below the words "Awaits DisposeAsyncCore, shown in the following code"...there doesn't seem to be any code in the box:

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

ID: 3e9c3677-ab1b-2466-6c19-71111b49f84a
Version Independent ID: 3e9c3677-ab1b-2466-6c19-71111b49f84a
Content: What's new in ASP.NET Core 6.0
Content Source: aspnetcore/release-notes/aspnetcore-6.0.md
Product: aspnet-core
Technology: aspnetcore-releasenotes
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@ericmutta thanks for letting us know. There was a bunch of unnecessary code that got removed on review.

Thanks again @ericmutta , fix should be live in 5 minutes.

Always a pleasure @Rick-Anderson and I can see the fix is already live :+1:
Super excited about VS2022 and ASP.NET on .NET 6. Thanks to all of you on the team for the hard work you've done to make this possible (...and I hope the Razor editor evolves rapidly because its pretty buggy right now, with autocomplete mangling text in nearby lines).


[Adaptive] Support entity recognizers like email, url...

Need to support entities recognizer in OBI. But this is not a must have, we could work around this by using luis.

No plans at the moment to expand on our current set of recognizer support to include these. Using LUIS for these entity types is the right direction.


fix(sync): use continue instead of return when ignoring specs

Resolves https://github.com/Kong/kong-portal-cli/issues/165

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
113

Relevant Lines:
292

💛  - Coveralls


added tutorial provider and dialog

Looks good now, the TutorialComponent, is that just for the storybook story? If so can you move it into that file? 😅

Looks good now, the TutorialComponent, is that just for the storybook story? If so can you move it into that file? 😅

yes the problem is the provider that should wrap it and use the context for checking steps. How can I fix that?

It doesn't work when you wrap it like you did when you moved it to the Tutorial.stories.tsx file now?

It doesn't work when you wrap it like you did when you moved it to the Tutorial.stories.tsx file now?

no because getting tutorial step and setWhouTutorialIntro (which are in the TutorialComponent) would be outside of the Provider if I move it.

I accidentally closed it 😅

Just wait for the checks and then you can bump the version number, commit and merge it 😄


Resolved issue of returning an extra promise from entries import module

This fix is for issue - CS-34582


[web]: Divider() is not showing up.

Divider() is not showing up in flutter for web, I tested in Lisview, ListView.separated, Column and alone, all tests are failed.

Hi @kechankrisna
I see there's an open issue addressing the case you described.
Please follow up on https://github.com/flutter/flutter/issues/46339,
Comment there more detailed about your case if it's different.
I'm closing the current one as duplicate.
If you disagree please write in the comments and I will reopen it.
Thank you


 This is the one we use at Artsy.
cc: @ilyakava

The only remaining thing is seasons, https://github.com/ilyakava/pongbot/pull/24.


create training data sets for multi-classification task

Hi,
Thanks for this interesting system.
I have a multi-classification task on text documents(10 different classes),  in each class I have a list of terms that describe the related class,  only 200 documnets are manually labeled by experts into their classes.
the 200 labeled documents are not enough to train a classifcation model.
Hier i'm asking, if it is possible to write labeling functions in Snorkel to imporove my training data. the list of terms of each class can help in this scenario.
currentl, I just have theoritical overview of Snorkel.
Does Snorker helps in this case? how can I write labeling functions for this case?
Any help will be greatly appreciated.
Thanks

If you have more unlabeled documents, you can use Snorkel to write labeling functions to label these documents using the list of terms for each class you have. You can take a look at the intro tutorial or the CDR tutorial for an example of how Snorkel is applied in this case!


Convert object annotation to yolo

@xdshang any idea on how to convert the object task to yolo format?

@xdshang any idea on how to convert the object task to yolo format?

@b3r-prog Haven't done this before. You may have a look at this post: https://stackoverflow.com/questions/56115874/how-to-convert-bounding-box-x1-y1-x2-y2-to-yolo-style-x-y-w-h


Handle cases where the gradients are 0 for inputs

from functorch import grad
import torch

def f(x):
    return (x[0]**2.0).sum()
inps = (torch.randn(3), torch.randn(3))
fx_graph = grad(f)(inps)

Error:
Traceback (most recent call last):
  File "t.py", line 7, in <module>
    fx_graph = grad(f)(inps)
  File "/home/chilli/fb/functorch/functorch/_src/eager_transforms.py", line 155, in wrapper
    results = grad_and_value(f, argnums, has_aux=has_aux)(*args)
  File "/home/chilli/fb/functorch/functorch/_src/eager_transforms.py", line 135, in wrapper
    output, flat_diff_args, create_graph=True)
  File "/home/chilli/fb/pytorch/torch/autograd/__init__.py", line 228, in grad
    inputs, allow_unused, accumulate_grad=False)
RuntimeError: One of the differentiated Tensors appears to not have been used in the graph. Set allow_unused=True if this is the desired behavior.

https://github.com/zou3519/functorch/issues/1 is the same issue


status: map weavelet id to pids for multi, single and ssh deployment.

As of now weaver logs shows the weavelet id but not pids and weaver multi status shows the respective pid but its hard to map weavelet id from the logs to the running process, following commit adds weavelet id with the pids of the components so its easier to debug.

@rgrandl @mwhittaker PTAL

@rgrandl PTAL again. I have tested both single and multi deploy but I was not able to test ssh although I think my code changes should work without any issues. Do we have test for ssh in CI ? or should i setup ssh in my environment.

@rgrandl I might be able to test on ssh as well today, but irrespective of that I think PR is ready for a review again.

@rgrandl I might be able to test on ssh as well today, but irrespective of that I think PR is ready for a review again.

Well I configured ssh setup only to figure out there is no status command in ssh deployer at all, there is a dashboard command but it is a webview. @rgrandl is there any cli command in ssh which is equivalent to status.

@rgrandl Please take a look again.

@rgrandl I might be able to test on ssh as well today, but irrespective of that I think PR is ready for a review again.

Well I configured ssh setup only to figure out there is no status command in ssh deployer at all, there is a dashboard command but it is a webview. @rgrandl is there any cli command in ssh which is equivalent to status.

There is no status command in the ssh deployer apparently.

Can you also run ./dev/build_and_test tidy generate build vet test testrace