Documentation request: use other DBs than SQLite

Currently, only the use of SQLite3 is documented in xtemplate (did I miss something?). But what about others DBs ? How should I do if I want to use PostgreSQL for example ?

xtemplate exposes Go's database/sql package pretty directly. This means that it should work for any driver registered with the sql package. Drivers are registered automatically by just importing them, then you should be able to refer to it by its registered name.
For example the github.com/lib/pq package, which appears to be the most popular PostgreSQL library for Go by a wide margin, registers as the driver name "postgres", which you can see in the pq docs:
connStr := "user=pqgotest dbname=pqgotest sslmode=verify-full"
db, err := sql.Open("postgres", connStr)
// url connection strings are also supported

The parameters passed to sql.Open correspond to the --db-driver, --db-connstr CLI flags and Config.Database.Driver, Config.Database.Connstr config object, respectively, which is used to open the database/sql connection here.

TL;DR:

Import your desired driver at compilation time:

import (
	_ "github.com/lib/pq"
)

Configure xtemplate to use the driver name and connection string for the driver, formatted according to the driver's requirements.

Now, this leaves some open questions:

Should the default builds of xtemplate and xtemplate-caddy include more drivers?

If so, maybe the list should include: sqlite3 (requires CGO), sqlite, pq, mysql.

How should you add drivers in a xcaddy-based build? It maybe as simple as adding the driver package to the list.

My opinion regarding open questions:

if it is decided to include more drivers, we do not need to include both sqliteand sqlite3 as they correspond to the same use case; choose one;
the chosen one should be the default driver provided: it's enough to test xtemplate and to code an app in dev environment;
it seems that providing support for another db at build should no be a problem in this case: their support is required for production and for advanced users who should be able to handle personalized builds if documented;
as I see it, custom docker-xcaddy based builds are the best way to get Caddy working; the download feature of the Caddy website is impressive but did not convince me to use it in my workflow (manual downloads vs procedural, versioned, reproducible way provided by Dockerfile and docker-compose.yml), so if other drivers than sqliteor sqlite3 could not be distributed by Caddy website download, it's not a big deal to my eyes.

Hope this helps !

Yes that's all quite reasonable.
My equivocation between sqlite3 (github.com/mattn/go-sqlite3) and sqlite (modernc.org/sqlite) drivers is caused by some tradeoffs between them. (Honestly there are other options as well.)
Mainly, sqlite3 is the most popular and probably the most correct implementation, but it requires CGO to be enabled at compile time, which precludes using the Caddy download website. While I agree that in general it's not too much to expect advanced users to customize their own builds, it would be unfortunate if people trying xtemplate through the Caddy download site would be unable to use the db feature at all.
The sqlite driver uses a version of sqlite that has been translated from C to Go using automated tools, thus it is pure Go and doesn't require CGO at compile time and should work fine via the Caddy download site. It's also a bit faster in most workloads if I understand the benchmarks correctly. However the great lengths that sqlite devs go to ensure correctness are somewhat attenuated when their source code is translated using tools into a different language, though I suspect many people use it without issue.
There's probably a good solution here somewhere. I'll keep thinking about it.

Ok I think I've figured out what I want to do:
I will use github.com/mattn/go-sqlite3 for cli builds, and add github.com/ncruces/go-sqlite3 module to the Caddy build server. Download server users can add the ncruces/go-sqlite3 module to get a version of sqlite3 driver built entirely in Go in caddy. I will recommend custom build users (via xtemplate cmd or xcaddy) to use mattn/go-sqlite3.
I still need to validate that this will work, but I think this is a good plan for now.

https://github.com/ncruces/go-sqlite3/blob/main/go.mod Is excellent choice
the wazero import allows the use of a WAL allowing it to be used with Marmot  too enable scale out if we want

I think we can also eventually use surrealdb and nats
https://github.com/AltairInglorious/nexus/issues/1 has the flow of ideas to do it.
the package is quite simple and uses nats as a transport to surreal db. The nats payload holds the query in its payload and is then bound to the surreal db wuery.
There is no cgo required.
the surreal db server must be run in its own process.
Surreal db has live worries !! So when the data changes it can be sent over nats and then the template rendered and then pushed over SSE and htmx.
This is something that SQLite cannot do

I agree that surrealdb + nats support would be fantastic

good news. It's a nice match with NATS IMHO. Both are designed to live queries. Someone needs to invent a new DB Terms called a "SQuery" - a "subscription query" :)

It should not be too difficult to write a surrealdb-specific dot provider if that is desired, since it wouldn't work through Go's sql.DB interface.
Once a surrealdb+nats integration is created I'm not sure what changes would be needed in xtemplate considering nats support already exists.


Add support for RateCard API for getting cost information from Azure

Hi,
Would it be possible to add support for the following in order to be able to query rate information from Azure?
https://msdn.microsoft.com/en-us/library/azure/mt219004
Thanks,
hopoffbaby

@hopoffbaby - Thank you for contacting us. We will work with Billing team to create swagger for their APIs. Once we have a swagger, we should be able to add support for the same in Go SDK. I will respond here once we have concrete plan and timeline.

Can you kindly open an issue on the API specs repo instead

This issue has been cloned and can be found here: Azure/azure-rest-api-specs#916
I'll close this copy of the issue. If folks feel there is additional Go specific conversation to be had, feel free to re-open this issue.

Many thanks to @hopoffbaby for creating the new issue in the azure-rest-api-specs repository.


glint --declaration flattens and removes folders if there is no top-level module.

❯ pnpm why typescript

@glint/core 1.2.1
└── typescript 5.3.2 peer
typescript 5.3.2

I observe an incorrect behavior: generating declarations[^dts-name] changes structure entirely based on the presence of a single file. This makes predictability hard with the package.json#exports:
  "exports": {
    ".": {
      "types": "./dist-types/index.d.ts",
      "default": "./dist/index.js"
    },
    "./*": {
      "types": "./dist-types/*.d.ts",
      "default": "./dist/*.js"
    },
    "./addon-main.js": "./addon-main.cjs"
  },

Before: https://stackblitz.com/edit/ember-cli-editor-output-6bfkuh?file=README.md
With the following file structure:
src/
  components/
    foo.gts
    bar.ts
    bar.hbs

And this tsconfig.json:
{
  "extends"<EMAIL_ADDRESS>  "include": ["src/**/*", "unpublished-development-types/**/*"],
  "glint": {
    "environment": ["ember-loose", "ember-template-imports"]
  },
  "compilerOptions": {
    "skipLibCheck": true,
    "declarationDir": "dist-types",
    "emitDeclarationOnly": true,
    "noEmit": false
  }
}

the following declarations directory is created:
dist-types/
  foo.d.ts
  bar.d.ts

Real output from the above stackblitz:

After: https://stackblitz.com/edit/ember-cli-editor-output-unnbr3
The only change:

adding a src/index.ts

now the dist-types directory is correct
dist-types/
  components/
    foo.d.ts
    bar.d.ts

Real output for the above stackblitz:

[^dts-name]: Note that dist-types was an old name for the declarations directory for the v2 addon blueprint. This has no impact on any one's code, because the mapping is defined by the package.json#exports, but the v2 addon blueprint now using the declarations folder name.

looks like in tsconfig.json, setting rootDir: './src' creates behavior consistent with rollup and keeps the package.json#exports aligns.
Will PR to the v2 addon blueprint to add this.


[DO NOT MERGE] Just building a toolchain

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves #NNNNN, fix apple/llvm-project#MMMMM.

@swift-ci Please Build Toolchain macOS Platform


'package.json' does not contain a valid package manifest

What happened?
Hey folks, I have a project which was originally built in Expo. Then we ejected to the bare workflow.
I heard about y'all from the React Native podcast. I wanted to use this tool for an upgrade I'm working on.
I ran the following commands:
yarn add @rnx-kit/dep-check --dev
yarn rnx-dep-check package.json

The install worked, but when running the dependency check, I get this error:
'package.json' does not contain a valid package manifest
Is this me? Or a bug?
Affected Package
@rnx-kit/dep-check
Version
1.12.6
Which platforms are you seeing this issue on?

[ ] Android
[ ] iOS
[X] macOS
[ ] Windows

System Information
info Fetching system and libraries information...
System:
    OS: macOS 12.2.1
    CPU: (8) x64 Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
    Memory: 253.36 MB / 32.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.14.0 - /var/folders/cp/d4ldtj4s6vn7nw41txkf9j640000gn/T/yarn--1646447948836-0.08367085635543492/node
    Yarn: 1.22.11 - /var/folders/cp/d4ldtj4s6vn7nw41txkf9j640000gn/T/yarn--1646447948836-0.08367085635543492/yarn
    npm: 8.3.1 - ~/.asdf/plugins/nodejs/shims/npm
    Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.11.2 - /Users/tylerwilliams/.asdf/shims/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 21.2, iOS 15.2, macOS 12.1, tvOS 15.2, watchOS 8.3
    Android SDK:
      API Levels: 28, 29, 30
      Build Tools: 28.0.3, 29.0.2, 30.0.2, 31.0.0
      System Images: android-28 | Intel x86 Atom_64, android-29 | Intel x86 Atom_64, android-30 | Google APIs Intel x86 Atom, android-30 | Google Play Intel x86 Atom
      Android NDK: Not Found
  IDEs:
    Android Studio: 2020.3 AI-203.7717.56.2031.7784292
    Xcode: 13.2.1/13C100 - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_292 - /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/javac
    Python: 2.7.18 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: 16.11.0 => 16.11.0
    react-native: 0.62.2 => 0.62.2
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found
✨  Done in 7.70s.

Steps to Reproduce
yarn add @rnx-kit/dep-check --dev
yarn rnx-dep-check package.json

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hi @ogdenstudios, rnx-dep-check  checks that both name and version are present in the package.json:
https://github.com/microsoft/rnx-kit/blob/440cd77071a4e2b4dc6960dbe08bbc000f68ddd3/packages/tools-node/src/package.ts#L97-L106
Are you missing either fields?

Oh yup, I certainly am. Thanks so much @tido64! Really appreciate the help. Can't wait to use this tool!


Flexible Auto-Retries for any kind of error responses (4xx, 5xx)

As discussed in https://github.com/crwlrsoft/crawler/issues/99#issuecomment-1739671602 it would be nice to be able to use the RetryErrorResponseHandler differently. In a way that you're able to configure auto retries for any kind of error response.
Not yet sure about the wait times implemented in the RetryErrorResponseHandler. They should probably only be used for the special error responses (429, 503).
@ruerdev

@otsch Good to know about the RetryErrorResponseHandler, I didn't know that. I think it will be very useful when we have more flexibility in how error responses are handled.
It might be a good idea to let users pick a shorter wait time when they get a 429 error while using proxies. As you will switch to a different IP for their next request.

It might be a good idea to let users pick a shorter wait time when they get a 429 error

You can already customize the wait times, see https://www.crwlr.software/packages/crawler/v1.1/the-crawler/politeness#wait-and-retry
I'll think about maybe automatically setting lower default wait times for those two error responses, when calling the new HttpLoader::useRotatingProxies() method 👍🏻


When Microsoft.Azure.Management.BotService GA?

Microsoft.Azure.Management.BotService is in preview.
I can't install this component Microsoft.Azure.Management.Fluent with Bot SDK
I need also this feature:
https://github.com/Azure/azure-sdk-for-net/issues/4546
Roadmap for this?

Any ARM template for bot and appid?

Thank you for opening this issue! We are routing it to the appropriate team for follow up.

Sorry for late response. Could you share some insights, Scott? Thanks

@isra-fel, adding @swagatmishra2007 who is the engineer who can help you

botservice has been GA for over 1.5 years now. My guess is that the reason the generated SDK's are showing up as in preview is because the swagger files in https://github.com/microsoft/azure-rest-api-specs/tree/master/specification/botservice/resource-manager are under a preview folder. Is that correct? If so, we should start an issue on the swagger repo side to mark the files as GA and that should fix the generated SDK's here

@akning-ms Hi Arthur, could you help @swagatmishra2007 to correct the folder structure of BotService specs? Thanks
I think after that, we can regereante and announce GA.
FYI @nickzhums

@swagatmishra2007 You can go to https://portal.azure-devex-tools.com/branch/create to create a new api-version from a preview version.

@swagatmishra2007:  Can you please advise as to whether this is still an outstanding workstream or if it has been resolved?


Reconfigure doesn't handle not having a hostname set well

Behavior:
A chef-server-ctl reconfigure dies with the error: FATAL: RuntimeError: Please add a server section for  to /etc/opscode/private-chef.rb!
This appears to be due to the server not having a valid hostname set, therefore cookbooks/private-chef/recipes/default.rb:87 indexes into the config with nil or "" and doesn't find the local host and complain.  It would be cleaner to just error if the host name is 0 characters.

This is one of the most common first issues encountered by new Chef server users.    We do state in the documentation that A resolvable hostname that is specified using a FQDN or an IP address but we could make it more intuitive

A good user experience here would be something along the lines of:
Chef Server could not resolve your hostname: (p.s. it's blank)

Please set it with ...

in HA mode, we could even go one step further to note that you should also have an entry in chef-server.rb for each server that corresponds to that hostname.

:+1:

Closing in favor of #1641


Reported slow queries

There're some queries that are taking long:

This one is probably missing the user_id:
SELECT "visualizations".* FROM "visualizations"  WHERE "visualizations"."name" = <TABLE NAME>

This seems just wrong, map_id filter doesn't make sense:
SELECT COUNT(*) AS "count" FROM "visualizations" WHERE (("map_id" != "map_id") AND ("type" IN ('table'))) LIMIT 1

This might make sense, but it's slow:
SELECT COUNT(DISTINCT(user_id)) FROM visualizations WHERE type != 'remote'

cc @gfiorav @javitonino

#6869 addressed 3), 1) is being fixed by @javitonino in #6884 and others.

There're queries that are slower and more relevant than 2), that can be probably ignored. Some:

[ ] 4: SELECT COUNT(*) AS "count" FROM "visualizations" WHERE ("parent_id" IS NULL) LIMIT 1. ~80s.
5: SELECT "visualizations".* FROM "visualizations"  WHERE "visualizations"."name" = 'viz' (with variations on the name value. Currently being analysed by @javitonino in #6884 and others.

Those are by far the 2 slowest queries. After then there're slow UPDATEs on maps and layers.

Worst queries have already been or are being currently addressed, and the 4 one hasn't happened lately, so it's likely to be outside the Editor. Closing then.


[DOC] Wrong default value for return_metadata in load_forecasting

Describe the issue linked to the documentation
The parameter return_metadata in aeon.datasets.load_forecasting is set to False, but in the docstring it is set to True
Suggest a potential alternative/fix
it should be False in the docstring

Aeon-Assign bot assign @IRKnyazev


Refactor pricing into a trait

TMF648 has QuotePrice and TMF663 has CartPrice.
Both of these structures have similar requirements, including tax free and tax inc pricing and associated functions.
This should be refactored to pull this into a Trait that is then implemented by both structs.
Further tmflib-macro can  be updated to provide default implementation of the trait functions.

@ignazio-castrogiovanni  Something worth looking at perhaps?

I can't see TMF663 CartPrice in master. Is it still to be implemented? Where can I look at the specifics?

I can't see TMF663 CartPrice in master. Is it still to be implemented? Where can I look at the specifics?

It's still in a PR, I was working on conversion between ShoppingCart and a product order when I noticed the refactor.

@ignazio-castrogiovanni  Happy to take you though my approach for this.


[Documentation] fold takes a seed first.

fold takes a range first, that's the whole point of it existing and replacing reduce, which took the seed first and therefore couldn't be used with UFCS when a seed was needed.


I18n Right to left layout

This PR is to improve the layout for languages read left to right. (private discussion with ogabro https://discord.com/channels/838651642190495804/896953911385161750/929675660346130492)
The I18nOrdering component inverts the order of children depending of the chosen language.
I applied it to bonds in this PR.
If this is okay, I will make subsequent PRs to improve other layouts.

putting this on hold for now


Remove Warnings from code

Rename all variables and fix code structure to meet Python pep8 guidelines

Hi, @giulionf
Renaming API class methods and variables will break backward compatibility.

@Mottl okay I see... I've made a new Pull request with only the concurrency changes. Can you have a look at that?

You could do a migration where you had a deprecated function that calls the new one with supressed warnings. That would solve the problem I guess, wouldn't it?

I think that PEP8 warnings are not a big issue. If you have time it's better to rewrite the fetching logic https://github.com/Mottl/GetOldTweets3/issues/3#issuecomment-439092370

Alright then. I will for sure try to work on that issue!

That's will be really great, @giulionf


Extension of the ledger interface

https://github.com/microsoft/scitt-api-emulator/blob/main/scitt_emulator/ccf.py
The CCF interface is well defined, I am interested in adding support for Amazon QLDB and Trillian at this layer.
It looks to me that this must be done in python code for now.
Any advice on starting this work?
I was thinking to port some of the work I prototyped in https://github.com/transmute-industries/did-eqt

That makes sense, I think the idea of the emulator is to play around with formats to inform the specs and also act as something like a validator in the future. That's why the ccf.py part isn't actually hooked up to a real CCF instance but rather generates a fake receipt equivalent. Can we do the same for other ledger types? I fear that by just importing vendor libraries it hides all the details and makes local testing and validation harder. What do you think?


Update to include WhereClause

Updated the Use library within project (non-commandline) to include WhereClause

Coverage remained the same at 99.59% when pulling c73f4ef598cc1f9a10d796f5180c7eaa6ce293a9 on aydancoskun:patch-3 into c378174c6a09560ed2e92d78adcd1a232918f279 on mrjgreen:v3.

Coverage remained the same at 99.59% when pulling bda372b8170a4daf90156a86135ecdd1d9fbe7e6 on aydancoskun:patch-3 into c378174c6a09560ed2e92d78adcd1a232918f279 on mrjgreen:v3.

Coverage remained the same at 99.59% when pulling bda372b8170a4daf90156a86135ecdd1d9fbe7e6 on aydancoskun:patch-3 into c378174c6a09560ed2e92d78adcd1a232918f279 on mrjgreen:v3.

Thanks for your commits!


[enhancement] Project specific LSP configurations

Feature description
As a former VS Code user, I've been missing its per-project configurations for a long time.
For some projects, we would like to check with different LSP or linters. Like the rust compiler project, its layout differs from most rust projects, and thus confuses LSP servers. So painfully, you have to configure manually.
With VS Code, we could just leave an ".vscode" folder containing project specific configurations.
Thankfully, the rust project recommends a plugin named neoconf.nvim.

After trying, I found it actually able to read from ".vscode" project configurations. And I'd like to integrate it into this distro.

seems nice to have.


remove another JavaScript object from the output of db.isMaster() aft…

…er https://jira.mongodb.org/browse/SERVER-13542
In mongo 2.6.10 the output of db.isMaster() now has another JavaScript object. The output looks like this:
{
"setName" : "rstest",
"setVersion" : 1,
"ismaster" : true,
"secondary" : false,
"hosts" : [ "mongohost1:27017" ],
"primary" : "mongohost1:27017",
"me" :  "mongohost1:27017",
"electionId" : ObjectId("5577f0859cdb548fdd637f19"),
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 1000,
"localTime" : "2015-06-10T08:53:30.141Z" ,
"maxWireVersion" : 2,
"minWireVersion" : 0,
"ok" : 1
}

Fixed in #186


With our switch to CRDs it is now possible to give our VM it's final name "VirtualMachine"

So far, we used for our VirtualMachine object the name VM, to allow us  doing simple things at the client side, like kubectl get vms in contrast to kubectl get virtualmachine. Now with CRDs in place, we can change it and use the proper VirtualMachine Kind and still keep the vm/vms convenience.
Our CRD should look like this:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: virtualmachines.kubevirt.io
spec:
  group: kubevirt.io
  version: v1alpha1
  scope: Namespaced
  names:
    plural: virtualmachines
    singular: virtualmachine
    kind: VirtualMachines
    shortNames:
    - vm
    - vms

Minor code adjustments might be necessary (Replacing e.g. "VM" with "VirtualMachine").

@rmohr Please assign to me.


Config for Handling Shulker + Books

By default this plugin kicks all books out of a shulker if there are > 5 books, no matter how big or small they are. It would be nice if we could opt-in to that behavior, or if there was a byte check for book size to prevent book bans.
Limiting shulkers to just 5 books is difficult for book collectors and I am still testing but it seems that m moving shulkers in e-chests can result in deleted books.

set maxBooksInShulker in the config to -1 to not use this feature


[AN-271] Make sure to filter multiple disk warning by user

Jira Ticket: https://broadworkbench.atlassian.net/browse/AN-271

Summary of changes:

What

Only warn if a user has multiple disks of the same type within a workspace

Why

The UI would warn a workspace creator when multiple disks exists within a workspace. However this case is specifically valid as multiple users could share a workspace and therefore create many PDs for the same app type.
This warning was worrying users for no good reason and this should now be an actual warning

Testing strategy

[ ]

Just tested on the BEE that the warning does not appear when multiple disks of the same type are created by different users.


KAFKA-6266: Repeated occurrence of WARN Resetting first dirty offset

Previously, checkpointed offsets for a log were only updated if the log was chosen for cleaning once the cleaning job completes. This caused issues in cases where logs with invalid checkpointed offsets would repeatedly emit warnings if the log with an invalid cleaning checkpoint wasn't chosen for cleaning.
Proposed fix is to update the checkpointed offset for logs with invalid checkpoints regardless of whether it gets chosen for cleaning.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

I think it would be cleaner code to call updateCheckpoints from cleanableOffsets, since there would be less duplication of logic, and the checkpoint updating would occur at the same place the warning gets emitted, but that would have required modifying some of the existing tests, so I figured I would ask for review before making that change on my own

Updated the PR to address comments by @junrao


feat: area service

📬 Changes
Manages the state of an area, determining whether it is "occupied" or "vacant" based on presence triggers or a custom callback. Optionally integrates with scene controllers to adjust scenes based on area state.

...

🗒 Checklist

[x] Read the contribution guide and accept the
code of conduct
[ ] Readme and docs (updated or not needed)
[ ] Tests (added, updated or not needed)

Example usage:
import type { TServiceParams } from '@digital-alchemy/core'
import { defineAreaConfig } from '../areaController'

export function OfficeController(context: TServiceParams) {
  const { hass } = context

  const officeMotion = hass.refBy.id('binary_sensor.office_motion')
  const officeLight = hass.refBy.id('light.office')
  const outsideLuxSensor = hass.refBy.id('sensor.outside_lux_level')
  const homeModeSensor = hass.refBy.id('sensor.home_mode')

  const activateSceneCondtions = [
    () => outsideLuxSensor.state !== 'bright',
    () => homeModeSensor.state !== 'away',
  ]

  const officeLights = [officeLight]

  defineAreaConfig(context, {
    name: 'Office',
    triggers: [officeMotion],
    scenes: {
      triggers: [outsideLuxSensor],
      conditions: activateSceneCondtions,
      definitions: [
        {
          name: 'default',
          on: [() => hass.refBy.id('scene.office_default').turn_on({ transition: 7 })],
          timeout: () =>
            ['home', '1_home', '1_sleep'].includes(homeModeSensor.state)
              ? { minutes: 30 }
              : { seconds: 10 },
          isDefault: true,
        },
        {
          name: 'sleep',
          on: [() => hass.refBy.id('scene.office_sleep').turn_on({ transition: 1 })],
          timeout: { minutes: 1 },
        },
        {
          name: 'chill',
          on: [() => hass.refBy.id('scene.office_chill').turn_on({ transition: 3 })],
          timeout: { minutes: 30 },
        },
      ],
      off: () => officeLights.forEach(light => light.turn_off({ transition: 3 })),
    },
  }, { triggerType: 'motion' })
}

General
Interesting approach, so this seems like a functional approach to defining scenes & their various interactions, where the other one is more declarative. The data structure doesn't work well for type validation, so I am mostly looking at it from that (using some techniques from hass / synapse) and how this might be most useful for both simple and complex use cases
Current API
Definitions
This one is defined as an array, with a name property. This allows for name collisions, which can be less than idea for devs.
If you use an object, the key can deduplicate the names and also provide a human readable name
{
  definitions: {
    [name]: {
      on, timeout, friendly_name
    }
  }
}

The difference being that the name / key could be used to generate relevant entity_ids (via suggested_object_id), where friendly_name could be provided as the human readable version to to hass
Timeout
You have hour / minute as an object
timeout: () => ['home', '1_home', '1_sleep'].includes(homeModeSensor.state)
  ? { minutes: 30 } : { seconds: 10 },

You can find the ISO_8601_PARTIAL or OffsetTypes as an existing standard for time based offset in this repo. Gets used with solar offset math, but it'd be convenient to reuse here
Operations being performed
Breaking down high level concerns I'm seeing here

define scenes

static definitions
dynamic definition

rules engine & state resolution
hooks
metadata & hass related bindings

It'd be great if the scene definitions can be calculated via function also
definition: {
  high: {
   definition: () => {
	return evening? FULL_BRIGHTNESS : 80_PCT
   }
  }
}

A big headache in my own flows is needing a high & evening_high, and needing to pick which button to push. This would give only 1 button, and shift the control over to the implementation

What would be the possible flags in the proposed structure?

Can be used to create calculated states, like the local storage that can be done with synapse.locals. Like occupied, which can have a value calculated based on multiple sensors

at home +
mode === sleep
or scene != "off" && recent motion sensor

These could optionally generate sensor entities on behalf of the dev, and automatically associate them with the room's device.

Rooms & synapse entities provide a return value. The problem is that return value cannot be used within a callback, a variable would indirectly be used in it's own definition. Typescript would respond by silently turning values to any, even though the code works.
For example: this looks to be valid code at first glance, and may or may not produce build errors (seen it both ways depending on details), but entity will turn into any either w way.
const entity = synapse.binary_sensor({
  is_on() {
	return !entity.is_on;
  }
})

In order to work around, the callbacks need to provide data as params into the callback. Here is an extended example to show a more complex interaction
CreateRoom({
  flags: {
    sleeping: {
      type: "boolean",
      default: false,
    },
    occupied: {
      type: "string",
      onUpdate: [isHomeSensor, motionSensor],
      value: ({ scene, flags }) =>
        isHomeSensor.is_on === false ||
        flags.sleeping ||
        (scene !== "off" && motionSensor.state === "on"),
    },
  },
  definition: {
    high: {
      onUpdate: [isEveningSensor],
      definition() {
        return isEveningSensor.is_on ? FULL_BRIGHTNESS : PARTIAL_BRIGHTNESS;
      },
    },
    auto: {
      definition({ flags }) {
        return flags.occupied ? PARTIAL_BRIGHTNESS : OFF;
      },
    },
  },
});

Functions typically run on a 30s interval, onUpdate for provided entities, and when something about itself changes

On the other stuff, def! Like options that allow rolling your own / calculated implementation

Thats a good call there should definitley be a way to auto switch scenes and/or transition between them. Still a little confused on what flags are. Are those like conditions or option toggles?

Did a little rework of the input types. still room for improvement.

changed scene definitions input to object
deleted triggerType option and replaced with

  presence?: {
    sensors: PresenceControllerInput['sensors']
  }

that way if its defined we know to use the presenceController

added friendlyName
attempted to type action, condtion, trigger (having trouble with this one).
fixed the area state sensor typed as any

Still a little confused on what flags are. Are those like conditions or option toggles?

Variables attached to the room basically. They can be reflected as entities in home assistant as the most appropriate entity type

Type
Entity

boolean
switch, binary_sensor

string
text, sensor

enum
select, sensor

number
number, sensor

Broken up as a:

sensor only
controllable
nothing

In the case of nothing, the data can be persisted via the synapse sqlite db

They wouldn't do anything you technically couldn't do with said entities, but this could generate all the entities & handle the coordination for you. The module config system has similar type interactions to this, where it converts objects with type properties to a different data structure
Since synapse allows the creation of sub-devices underneath the main one created by the app - all generated entities can be automatically associated with the room device

Maybe flags is the wrong word, helpers?

should circadian option be in the scene definition?

So far I've been doing a "circadian unless color is specified" approach. I haven't convinced myself that I'd ever want to just turn on to an unknown state with a scene definition.
Is there a use case for you?

No I don't actually know what it does haha. Just trying to sort out if it affects an area, all scenes, or a specific scene

Gotcha! In that case it's a system that's intended to actively manage the color / temp (if supported) of a light. Brightness only lights are unsupported.
It works by setting up a sensor that tracks the current light temp (related to sun position), and sending periodic color update requests to those devices so they are approx the sensor value. There's some internal shenanigans to not just flood everything with update requests
As long as the scene doesn't say "turn on to this color", just brightness, the light might as well track solar temperature. Low hanging fruit for making the rooms feel nice

Oh thats cool! Ok so I personally could see myself using that on a 'default' scene for an area. default would be like like normal lighting with circadian so the color temp adjusts throughout the day. If i have other scenes like 'chill', for example, with purple mood lighting, I wouldn't want circadian running. Does that seem like a correct mental model?

Exactly!

Ok got it. Sounds like it should be an option or flag for a particular scene.


Set up the project with Webpack

Did the following:

Created a basic Webpack setup with babel transpiling to ES5.
Removed all CDN links and added packages to NPM.
Set up project with yarn.

Tested the site on my local, every feature seemed to work.
The gh-pages site will need to be updated to run the new deployment script and the description will need to point to the /dist folder.

Rejecting this one.
GH-pages can only serve static files. So when we do a change, we would have to build it using webpack and then check those files into the gh-pages branch. So much more hassle than just committing the files and the website is automatically updated.


IDisplayValue<T> can/should be moved to Core

The original implementation IDisplayMesh existed in Objects because it relied upon the Mesh class in the Object model.
The new IDisplayValue<T> no longer relies on any specific object, and seems like a good candidate to be moved to Core, as it is the default way to know if an object "is displayable".

IDisplayValue is not very useful however. (due to dynamic object models, and cross SDK models)
To my knowledge, we don't use it.
Should we remove it?

Don't we? Lets have a chat about this sometime this week


WSL npm Syntax Error

Couple students this week have run into this in Ubuntu (referencing the Windows installation of npm):
npm --version
: not foundram Files/nodejs/npm: 3:
: not foundram Files/nodejs/npm: 5:
/mnt/c/Program Files/nodejs/npm: 6: Syntax error: word unexpected (expecting "in")

Can installation guide be modified to avoid this?
cc @codefellows/deltav

I am not enrolled in 201 yet, I start on August 31st. But I have been working on the pre-work this last month and had this same issue, After two long days of trial and error, upgrading to WSL2 and doing the following worked for me.
install latest npm command, and call
nvm install node
sudo apt-get install -y npm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
((close ubuntu and reopen))
nvm
nvm install node
I hope this works for someone else as well.

NVM and npm installation instructions have been updated for WSL2 here: https://github.com/codefellows/setup-guide
Please open an issue there if this problem persists. Thanks for the reports!


ResizeListenerService & BreakpointService: Allow user defined breakpo…

Description
Fixes this: https://github.com/MudBlazor/MudBlazor/pull/7065#issuecomment-1604603646
We made a slight breaking change in the public API of ResizeOptions by switching from Dictionary<string, int> to Dictionary<Breakpoint, int>. This change is an improvement over the previous broken behavior. In the previous implementation, setting values would have no effect on the BreakpointService and ResizeListenerService except when you use IBreakpointService.SubscribeAsync(Action<Breakpoint> callback, ResizeOptions? options) overload.
The code now handles this change by always cloning the ResizeOptions to ensure that we don't mutate the original options injected via dependency injection (services.Configure(Action<ResizeOptions>...)). Additionally, we need now a proper GetHashCode method for ResizeOptions to ensure the correctness of our tests. This is important because we use indexers where the key is a ResizeOption, and since we clone ResizeOptions, the key would not be found otherwise.
Lastly, the ResizeListenerService is marked as [Obsolete]. According to this PR https://github.com/MudBlazor/MudBlazor/pull/2658 the ResizeListenerService was suppressed by BreakpointService.
How Has This Been Tested?
Existing tests, debugging.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.

Don't want to look like a guy who comes and rewrites everything what he sees, but this is also a good candidate for a service rework.
The PR https://github.com/MudBlazor/MudBlazor/pull/2658 says:

This PR split the existing functionality into two distinct services IResizeListenerService and IBreakpointService. While the first one returns an object with the window size, the second one provides the mechanism for the breakpoints.

However, I fail to understand why this cannot be consolidated into a single service. The code is identical, and both services perform the same functions, with the only difference being that one subscribes to BrowserWindowSize while the other subscribes to Breakpoint, as mentioned above.
Also, tjscience comment:

Anyone familiar with ResizeService? Why was SubscribeAsync and UnsubscribeAsync written with Action instead of Func<BrowserWindowSize, Task>? This prevents the ability to (easily) have async in the callback.

I wholeheartedly agree with this. While it is possible to achieve it with a workaround, but then whole service would be full of workarounds which is not ok to me.
Also I took hours of searching, asking and debugging to understand why we have almost 3 identical services which is bad for newcomers. Which is why the ResizeListenerService should be removed and the left two merged in two with proper documentation.

Worth to mention that ResizeOptions has 3 options as EnableLogging, SuppressInitEvent, NotifyOnBreakpointOnly yet none of this is used (except last one in old service) which shows how abandoned the current state all this has.

Visually no regression on components/hidden#listening-to-browser-window-resize-events and https://localhost:5001/components/breakpointprovider#api

Worth to mention that ResizeOptions has 3 options as EnableLogging, SuppressInitEvent, NotifyOnBreakpointOnly yet none of this is used (except last one in old service) which shows how abandoned the current state all this has.

Apparently, it is used when passed to the JavaScript side. To be honest, this should be documented, as the IDE indicates that there are no read references, giving a false sense of safety that it can be freely removed. Additionally, it should be protected from trimming in such cases. I am unsure whether we should address this in this pull request or separately.

Don't want to look like a guy who comes and rewrites everything what he sees, but this is also a good candidate for a service rework. [...]

I really don't mind. We all know that much of the code base needs rewriting. We threw this together in a haste at a time where we didn't yet fully understand best practices in Blazor. Also, we didn't even dream of the success the library now has which adds extra gravity to every design decision. Initially we really built this library simply to fulfill needs we had and most contributors did the same.
If I had more time on my hands I'd also love to rewrite/redesign some things. In any case I love the fact that you have that time and energy at the moment.

I am unsure whether we should address this in this pull request or separately.

If you want to do it in this PR I don't mind at all. Your decision.

I have added an extension method called Clone for ResizeOptions. What are your thoughts? I think it's worth even thought this is service is probably the only one who is going to use it. Actually I'm currently doing a WIP of new service and I plan to use it too, and since we keep old for compatibility it's two now :) It should be trimmed anyway if the services won't be used.
Updated the comments too.


Extended conneg capabilities by implementing JAX-RS-mod-qs Specification

This implements the spec improvement as per https://github.com/factsmission/jax-rs-spec/

The branch from which i made this PR got polluted with another commit, will re-create from other branch.


remove tgz files and licenses. Update readme to notify customers to down…

…load the dependencies
The LICENSES/ dir cannot be inside the charts/ dir as that is helm reserved space and it would be in conflict with the chart.yaml validation.
Update the readme in several places to assist customers in downloading the tgz files using a single command, this avoids the need to attach LICENSE to those artifacts since they would not be part of our repository.
Deleted LICENSES and tgz files from the repo

…load the dependencies
The LICENSES/ dir cannot be inside the charts/ dir as that is helm reserved space and it would be in conflict with the chart.yaml validation.
Update the readme in several places to assist customers in downloading the tgz files using a single command, this avoids the need to attach LICENSE to those artifacts since they would not be part of our repository.
Deleted LICENSES and tgz files from the repo

This change breaks the Chart Repo model - is there somewhere else we can store the LICENSE?
This Chart is going to be published on a Chart Repo as a complete package where a customer will not be able to pre install the dependencies.

Will close this PR and just move the LICENSES elsewhere


Typing argument of function changes title of window

I'm using lsp_signature on my projects and it has an anyoing behaviour that changes the window title on each keystroke or something like this.
I'm able to suppress this behaviour by setting the option set notitle.
Video showing the behaviour below. It would be useful to have this behaviour removed or to have an option to suppress it.
https://user-images.githubusercontent.com/12832066/132046707-ee4528e9-ee2e-47e2-91ac-4ac161c83991.mov
As you can see, it flickers.

title / notitle is global variable. By default it is notitle on neovim startup

I'm talking about suppressing the behavior where the plug-in changes the title of the screen.
Not setting the notitle option  on neovim.
Sorry for the confusion.

If title is true, vim will automatically get the title of the signature floating window when popup. It is not plugin behaviour.

Because the plug-in counts as a new window, so when the focus change the title changes? Makes sense.
Is this the same behavior when using saga to display windows?

Yes.
I do not use gui-nvim. So I can not see this behaviour.
What make things worse for lsp_signature is that the floating window will refresh/recreate itself when you type. This will cause title to flick.

I'm not using GUI-vim, just neovim, this should be happening then?

I am using terminal + galaxy-line/windline both do not show behaviour like this.
title is by default to be false.  Is it been set somewhere in your vimrc?

I'm using Lunarvim, so it might have been. But I'll do a double check.

Yeah, the title comes on true by default, I disabled and it's better for now.
Maybe there's a way to avoid changing focus to the window created by lsp_signature to have both of two worlds? If it's not possible or maybe not worthy we can close this issue.

Fixed, thank you very much @ray-x 😄.
I'll study and learn how your plugin work so I'm able to help a bit more in the future. The option focusable worked like a charm.


python36Packages.bokeh: 0.13.0 -> 1.0.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/python3.6-bokeh/versions.
meta.description for python36Packages.bokeh is: '"Statistical and novel interactive HTML plots for Python"'.

Checks done (click to expand)

built on NixOS
Warning: no invocation of /nix/store/9jw39d7li03pafmlf5vmg47z6pl105w9-python3.6-bokeh-1.0.0/bin/.bokeh-wrapped had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/9jw39d7li03pafmlf5vmg47z6pl105w9-python3.6-bokeh-1.0.0/bin/bokeh had a zero exit code or showed the expected version
0 of 2 passed binary check by having a zero exit code.
0 of 2 passed binary check by having the new version present in output.
found 1.0.0 with grep in /nix/store/9jw39d7li03pafmlf5vmg47z6pl105w9-python3.6-bokeh-1.0.0
directory tree listing: https://gist.github.com/076ec7a5468a00c82b26198aadd9e21c
du listing: https://gist.github.com/5fd1672e79b536c82e22e645f8a4b1b6

Outpath report (click to expand)

Outpath difference report
8 total rebuild paths
2 package rebuilds
2 x86_64-linux rebuilds
2 i686-linux rebuilds
2 x86_64-darwin rebuilds
2 aarch64-linux rebuilds
First ten rebuilds by attrpath
python27Packages.bokeh
python36Packages.bokeh

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9jw39d7li03pafmlf5vmg47z6pl105w9-python3.6-bokeh-1.0.0 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A python36Packages.bokeh https://github.com/r-ryantm/nixpkgs/archive/415767717dabbf662cd7e3aaf0fdf9d00a2de5a5.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9jw39d7li03pafmlf5vmg47z6pl105w9-python3.6-bokeh-1.0.0
ls -la /nix/store/9jw39d7li03pafmlf5vmg47z6pl105w9-python3.6-bokeh-1.0.0/bin

cc @orivej for testing.

Timed out, unknown build status on x86_64-darwin (full log)
Attempted: python36Packages.bokeh
Partial log (click to expand)
[ 31%] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DominanceFrontier.cpp.o
[ 31%] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/EHPersonalities.cpp.o
[ 31%] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/GlobalsModRef.cpp.o
[ 31%] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IVUsers.cpp.o
building of '/nix/store/c6y5nyc90yyf6grcyp6basd2xz54afmy-rustc-1.30.0.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/qsi7vnllifj610ni78z3hs6j7rh3wibf-cargo-1.30.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/smhrlr5a792adilrps8xb5nvfha5029g-geckodriver-unstable-2018-02-24.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/vn6vnrgkhkkh58w1d1f76pwwisi22yxy-python3.6-selenium-3.14.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/4gzhyz64md569xv5wss5j1xr7jw0sdpb-python3.6-bokeh-1.0.0.drv': 1 dependencies couldn't be built
error: build of '/nix/store/4gzhyz64md569xv5wss5j1xr7jw0sdpb-python3.6-bokeh-1.0.0.drv' failed

Unexpected error: command failed with exit code 1 on x86_64-darwin (full log)
Attempted: python36Packages.bokeh
Partial log (click to expand)
100  835k  100  835k    0     0  2276k      0 --:--:-- --:--:-- --:--:-- 2276k
100 15.3M  100 15.3M    0     0  10.1M      0  0:00:01  0:00:01 --:--:-- 14.6M
copying path '/nix/store/hggg14lq2kwm608n92amrb9g4z07qf3w-python3.6-bkcharts-0.2' from 'https://cache.nixos.org'...
warning: unable to download 'https://cache.nixos.org/nar/14v5wnjh1iim3yzh00xa2wpcka1dpjsv5v975lxkm23lx2xmmbpq.nar.xz': HTTP error 503; retrying in 327 ms
warning: unable to download 'https://cache.nixos.org/nar/14v5wnjh1iim3yzh00xa2wpcka1dpjsv5v975lxkm23lx2xmmbpq.nar.xz': HTTP error 503; retrying in 588 ms
error 7 while decompressing xz file
cannot build derivation '/nix/store/smhrlr5a792adilrps8xb5nvfha5029g-geckodriver-unstable-2018-02-24.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/vn6vnrgkhkkh58w1d1f76pwwisi22yxy-python3.6-selenium-3.14.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/85n24nspcd5r7x1wq3iv53vg3mg8hr3g-python3.6-bokeh-1.0.0.drv': 1 dependencies couldn't be built
error: build of '/nix/store/85n24nspcd5r7x1wq3iv53vg3mg8hr3g-python3.6-bokeh-1.0.0.drv' failed

Failure on aarch64-linux (full log)
Attempted: python36Packages.bokeh
Partial log (click to expand)
    return self.values[slicer]
  /nix/store/qfdbglqq4rmjv33y3nhi5qlifgxyg34m-python3.6-pandas-0.23.4/lib/python3.6/site-packages/pandas/core/indexes/datetimelike.py:428: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.
    result = getitem(key)

-- Docs: https://docs.pytest.org/en/latest/warnings.html
 5 failed, 16897 passed, 1027 skipped, 11896 deselected, 37 xfailed, 2 xpassed, 10 warnings in 616.80 seconds
builder for '/nix/store/k37vq3id2j6pmwr9dc64gghdk5yidw7x-python3.6-pandas-0.23.4.drv' failed with exit code 1
cannot build derivation '/nix/store/zqbs4vlplxdxrlvfcygxr4brcb665cp6-python3.6-bkcharts-0.2.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/qd5q35n3c3db4zinabxvjnhmzp0dsad5-python3.6-bokeh-1.0.0.drv': 2 dependencies couldn't be built
error: build of '/nix/store/qd5q35n3c3db4zinabxvjnhmzp0dsad5-python3.6-bokeh-1.0.0.drv' failed


[BUG] @EqualAndHashCode problems with subclasses

When the superclass has an annotation @EqualAndHashCode ,the lombok will generate a CanEqual function , and the CanEqual function is Protected. As the superclass, the subclass with an annotation @EqualAndHashCode will generate a Protected CanEqual function, too.
But in the java code,the CanEqual function does not has an annotation @Override, So the Eclipse will get an problem:"missing override annotation".

Unfortunately, lombok does not have access to the code of the superclass. This would require resolution. You can instruct lombok to add lombok.Generated on the generated methods. Isn't it possible to instruct Eclipse to ignore generated code?


Changes to legal docs sections

Clear legal documents becomes Clear and sign legal documents
Add sign and seal actions to Supplemental funding agreement

Changes
Add a summary of the changes in this pull request
Checklist

[x] Attach this pull request to the appropriate card in Trello.
[x] Update the CHANGELOG.md if needed.

Ways to fix:

We just update the code so it looks for Clear and sign legal documents instead of Clear legal documents
We add a new reduce_padding: true parameter to the task which does this layout change instead, which makes it a function of the data rather than the text (and thus more robust). It also means we can apply this reduced padding to a task in any section, rather than every task in the legal documents section.
We add a new reduce_padding: true, padding: reduced or similar parameter to the action which applies different padding on an action-by-action basis. This involves adding more configuration to the workflow files, but does mean we can do this reduction of padding more selectively.

My personal preference is the last option and being more explicit action-by-action, but that's because I'm a big fan of making sure things are generalised.


how to add multi property

result ssh config file. we will have multi "RemoteForward" property
Host <IP_ADDRESS>
  ProxyCommand nc -X 5 -x <IP_ADDRESS>:10832 %h %p
  RemoteForward localhost:3322  localhost:22
  RemoteForward localhost:10809 <IP_ADDRESS>:10809

It's possible by setting c.set("thehost", RemoteForward=["forward:1 forward:2","forward:3 forward:4"])
I have updated README with an example.
BR,
Soren


fix: make NODE_ENV more predictable

Description
Make the value of NODE_ENV more predictable
Additional context
This was discussed in https://github.com/vitejs/vite/discussions/9274
The one intricacy in implementing was related to running tests. When the first test runs Vite will set a value for NODE_ENV and then Vite will no longer reset the value on subsequent tests, so I had to handle that in the tests themselves. That's unlikely to affect our users though, so I think this is still a good trade-off. E.g. when Playwright runs the Vite server in the tests, it will do so in a sub-process, which I think would isolate each server process from one another.
There was a comment in one of the tests about plugin-legacy that I deleted as it appears to be outdated. Had it not been outdated, I think fixing plugin-legacy would have been the better approach than making Vite adhere to the behavior of a single plugin, but that appears no longer relevant.

What is the purpose of this pull request?

[X] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[X] Read the Contributing Guidelines.
[X] Read the Pull Request Guidelines and follow the Commit Convention.
[X] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[X] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

/ecosystem-ci run

I think we should move forward with this one to be able to test it during the alpha window. @bluwy feel free to merge after you review it.

Ah you're right I missed that. Nevermind then 😄

If you don't define NODE_ENV in an .env file I think it shouldn't have any effect (I haven't tested though). Is there a reason we don't want users to be able to set it there?

It's mostly the concern that resolveConfig has another way to mutate NODE_ENV that would be nice to avoid
https://github.com/vitejs/vite/blob/7d24b5f56697f6ec6e6facbe8601d3f993b764c8/packages/vite/src/node/config.ts#L499-L505
Now that I think about it, since builds are production NODE_ENV by default, the above code doesn't allow someone to build in development NODE_ENV. I can fix that with a follow up PR.


Failover and Ledger

Is there any information regarding the use of failover servers & groups with digests? I assume it will continue to be able to write to the same immutable blob storage account, granted the storage account is available and that the failover server(s) have the proper RBAC permissions, using the sys.database_ledger_digest_locations table.
Is this accurate?

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

ID: e816546f-c57d-2cf3-e3e9-3fdd9e76e3f2
Version Independent ID: e816546f-c57d-2cf3-e3e9-3fdd9e76e3f2
Content: Recover ledger database after tampering - SQL Server
Content Source: docs/relational-databases/security/ledger/ledger-how-to-recover-after-tampering.md
Service: sql-database
Sub-service: security
GitHub Login: @VanMSFT
Microsoft Alias: vanto

@colincats79 -- thank you for your question.  Please consider these resources:

SQL Server on Microsoft Q&A
DBA Stack Exchange
Stack Overflow

@VanMSFT -- please look into this issue.

I did some additional testing, and it appears that a failover server will not read from the container where the digest is located, but will instead (if granted the storage blob contributor role), will create a new virtual folder within using that server name. Does this mean automatic digest will not work in a fail group scenario, and that it needs to be manually configured and run?

I suppose the next logical question would be in the event of a failover and a return back to a primary server, will the digest resume where it left off on the primary and update to the last_verified_block_id generated during the failover period on the failover server,, or will it fail verification?

Thanks for the questions, @colincats79!
@Pietervanhove - Pieter, do you mind helping with this?

#assign:Pietervanhove

Hi @colincats79,
Can you let me know how you did your additional testing? In case of a failover group in Azure SQL Database, there shouldn't be a new folder created on the Azure Storage Account.
In a failover group, both primary and secondary database will have the same digest path. Even when you perform a failover, the digest path doesn't change for both primary and secondary database.
If failover group is deleted or you drop the link, both databases will behave as primary databases.
At that point the digest path of the previous secondary database will change and we will add a folder RemovedSecondaryReplica to the path.
Let me know if you experience any other behavior.
Regards,
Pieter

Hey Pieter, I did some manual type failover exercises (not using a failgroup) in our lower environments.
So you are saying when a fail group is set up in conjunction with an Azure Ledger enabled DB, that the failover to the secondary will continue to write to the same storage account as the primary server, under the same container and path which contains the name of the primary server, and that no additional configuration is required other than RBAC roles on the secondary server?

Hi @colincats79,
That is correct yes. The same applies to geo-replication.
What do you mean by "manual type failover exercises"? Did you use geo-replication and perform a forced failover?
Regards,
Pieter

I made a copy from one db to another to see how the digest updated. Thanks
for the clarification.
Probably obvious question, but the Storage Contributor RBAC needs to be
granted to the secondary as well, correct? Only asking because during
automatic digest deploment, it creates those roles to the managed identity
as part of the ARM template when you enable it.
Thanks
On Mon, Jun 26, 2023, 1:28 PM Pieter Vanhove @.***>
wrote:

Hi @colincats79 https://github.com/colincats79,
That is correct yes. The same applies to geo-replication.
What do you mean by "manual type failover exercises"? Did you use
geo-replication and perform a forced failover?
Regards,
Pieter
—
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/sql-docs/issues/9051#issuecomment-1607917833,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AURSKR5BNYTEKIQCGGHNR2LXNHBELANCNFSM6AAAAAAZBAVBBA
.
You are receiving this because you were mentioned.Message ID:
@.***>

That's correct. You need to configure the RBAC permissions manually for the secondary on the storage account.
I will update the documentation so that it's more clear how the digest management behaves in case of geo-replicas or failover groups.

Thanks for the clarification, @Pietervanhove!
#please-close


Speech_emotion_recognition_BLSTM error

Loading data and features...
Number of samples: 535
Traceback (most recent call last):
File "/home/lwin/speech-emotion/Speech_emotion_recognition_BLSTM-master1/find_best_model.py", line 171, in
trials=trials)
File "/usr/local/lib/python3.5/dist-packages/hyperas/optim.py", line 67, in minimize
verbose=verbose)
File "/usr/local/lib/python3.5/dist-packages/hyperas/optim.py", line 115, in base_minimizer
space=get_space(),
File "./temp_model.py", line 203, in get_space
NameError: name 'sgd' is not defined
Please help to solve!

Hi, this is a bug and please modify this line of code:
choice_val = {{choice(['adam', 'rmsprop', sgd])}} -> choice_val = {{choice(['adam', 'rmsprop', 'sgd'])}}
and it will work.

Thank you very much!!


Makes pre-processing together in specific files for some tests.

I'm writing tests to make accessing arguments, and I think that we should make pre-processing together in specific files for some tests.
I implemented constant file's pathes in a file; utils::test_const .
If we think that we'd like to make accessing pre-processing function for some tests, I'll implement the function in this file.

Oops.
I had misunderstood that origin's URL in my local repository is  official radeco-lib.
But it was my forking repository's one.
So I close this pull-request once.


When tcp requests syn, an incorrect ack is returned. When in the network quadruple, the source IP and port are the same, and the destination IP and port are different

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
As shown in the figure below, two sessions: <IP_ADDRESS>:40001 -> <IP_ADDRESS>:3600 and <IP_ADDRESS>:40001-><IP_ADDRESS>:3448. When the first one sends syn, the seq returned by the server is<PHONE_NUMBER> , when sending syn for the second session, the seq returned by the server is<PHONE_NUMBER>, and cilium mistakenly treats the two sessions as one session.

Cilium Version
1.12.7
Kernel Version
4.19.113-300.el7.x86_64
Kubernetes Version
1.24.10
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Where do you see the two sessions being combined? Are the conntrack maps indicating incorrect information?

Also, Cilium is now up to v1.12.15; please consider upgrading. Likewise, it's difficult to consider issues without a sysdump or other debugging information.

the picture is the sysdump info, you can look the response seq. within in green and blue box,they are two session.

@squeed

the picture is the sysdump info, you can look the response seq. within in green and blue box,they are two session.

Please follow the steps in the issue template:

Sysdump

Install Cilium CLI.
Run cilium sysdump command

Also please reproduce on the latest v1.12 release (which is currently v1.12.16). Or preferably v1.14.

@julianwiedmann The results of the tcpdump packet capture clearly illustrate the problem. Is there no possible direction for the problem?

/reopen


Plot pd.DataFrame with time index

While there are a few examples of time series plots in the tutorials, I could not find an example of plotting a Curve with a time index. The existing examples I found use  integer columns for month and year to create a time series plot.
See also this StackOverflow question I opened: http://stackoverflow.com/questions/32318751/holoviews-how-to-plot-dataframe-with-time-index
If this is not available yet, it would be great to add this possibility.

We have just begun properly integrating pandas (and other) DataFrames with HoloViews, partially because this kind of thing was not possible/too awkward before. It will probably be a few weeks until the dataframe branch is merged and this is properly supported.
If you really need it right away you could try to encode your timestamps into matplotlib's date format and then set the appropriate date formatter on the corresponding Dimension, something like I did in the Exploring Data Tutorial. This is a bit of a pain though, so I'd suggest you wait a few weeks until we have proper support.

Great thanks for the info. Let me know when the branch is ready for some testing or if I can be of any help.

The branch has now been merged, all basic Element types will now support datetime64 arrays. Let me know if you encounter any issues. See here for an example. Closing.


refactor: devScripts update

bumps dev-scripts and TS.
current TS really wanted the generic inputs for Prompter to be of types that extends Answers and not just default to it.  That's probably more flexible?

live reviewed.


A user can refresh the page and keep their score

As a user, I want my quiz score to persist if I refresh the page.

@durw4rd user should be on the same question after refreshing the page, right?

Yes, I think that makes sense!


Add support for non-standard "srcDir"s in module.js

Added support for users who wish to keep their generated files in a custom non-root directory.

Added support for usage of shared Nuxt environment variables for specifying Socket.io URLs. 👍


Provide image URL

I think we want to be able to pass in an image URL as well as upload a file - many of our images will be on the web.

Yes. Actually , the default image is loaded in via its URL, so I think this issue will be fixed in next week.

Cool! :-) This will enable Space Warps users to investigate their finds.
On Sun, Sep 11, 2016 at 8:54 PM, Nan Li<EMAIL_ADDRESS>wrote:

Yes. Actually , the default image is loaded in via its URL, so I think
this issue will be fixed in next week.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/linan7788626/LensWranglerPlusPlus/issues/1#issuecomment-246237981,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AArY9yKBG6ZxinTCVLSCxuFaMDH4ieuZks5qpM0PgaJpZM4J5PiC
.

This issue has been fixed. I just added a textbox and a button to upload images via URL (please see the image below).

But it leads to another problem: now I am using 400*400 images in LW++, and angular pixel size is set to be 0.0225 arcsecs. If we want to upload images via URL and model it correctly, we need to preprocess the image first.

[ ] preprocessing of the input images (rescaling, and reading in the pixelization of the images).

I see something odd when loading in this image: the "Source Plane" and "Image Plane" panel images are registered differently to the "Mass Model" one, so that the caustics appear in the wrong place.

(BTW this image illustrates my concern about the "Source Model" panel - the only thing that we should be doing there is controlling the size, ellipticity, and orientation of each source component, and their positions relative to each other. The moving cursor in the "Source Plane" panel and the click placed in the "Image Plane" panel should determine the position of the whole source model relative to the lens. I think this means we want the "Source Model" panel to have no image background (which makes sense anyway, because the JPG image belongs in the image plane!), only source components and a central cyan cross. This cross would correspond to the click placed on the "Image Plane" panel (to mark the center of one multiple image) and to the cursor position in the "Source Plane" panel.)

The odd thing is because of the issue I mentioned in my reply, the picture dimension of the uploaded image is 467467. However, the dimension of the blocks are 400400, so we need to preprocess an input image with arbitrary size (for example, rescale it). You can see that the pictures in the top panels are rescaled, but the pictures in the bottom panels are not rescaled, so the center of the lens is shifted. I am working on it now.
In term of the source model, we can only sample one source now, so even though you drew two ellipses, the APP will present the first source only. I am thinking about controlling the sources in a similar way as controlling the lenses.  Controlling the sources separately might be a more sensible way than controlling them together, because of its flexibility.  Please let me know your thoughts about the new strategy. Thanks.
Removing the background image of the source model block makes sense to me, I will try to make it, but if we would like to control sources separately, a cyan cross and caustics might be both necessary.

Agreed - more thoughts in #4. Good idea to stick wth one source for now,
but I think with the image plane positioning we will need the concept of a
"primary source component" to go with that of an image plane "anchor
position". For sanity you may want to disable the drawing of new ellipses
in the source model, and force the user to work with the one they are
given. I can't remember if such an action is easy though :-)

Disabling the drawing of new ellipses is a sensible option. I will try to make it.
BTW, I expect that you will recall if it is easy, and instruct me how to do it. :-) Thanks.


Maximum threshold the row can be swiped

Currently the swipeable element can be swiped without any restriction. Can the horizontal pan have a threshold value such that the user can't swipe beyond a threshold value?

I'd like that as well


Cargo-chef recompiles dependencies when building in a workspace

First, thanks for this amazing library!  Great work! 👍
One quick question: I am having an issue with using this in a workspace. Everytime I do RUN cargo build -p my-app --bin my-app, It keeps recompiling third-party dependencies and I expect it to build only my app using already "cargo cooked" dependencies. I am using this in a workspace with the below structure.
my-app
   Cargo.toml
my-app2
  Cargo.toml
my-app3
   Cargo.toml
Cargo.toml
Cargo.lock

This works well when I tried with a single package/binary but recompiling when building an app would defeat the purpose of "cargo cooking" dependencies. Plese, what might I be missing?
Also, I think it would be really nice to have an example for a simple workspace structure in the README since many project tend to use that and cargo-chef seems to support that use-case also 🤔
ARG BASE_IMAGE=rust:1.58

FROM $BASE_IMAGE as planner
WORKDIR /app
RUN cargo install cargo-chef --version 0.1.33
COPY . .
RUN cargo chef prepare  --recipe-path recipe.json

FROM $BASE_IMAGE as  cacher
WORKDIR /app
RUN cargo install cargo-chef --version 0.1.33
COPY --from=planner /app/recipe.json recipe.json
# Build dependencies - this is the caching Docker layer! Don't build in release mode for development
RUN cargo chef cook --recipe-path recipe.json

###  my-app
FROM $BASE_IMAGE as builder
WORKDIR /app
COPY . .
COPY --from=cacher /app/target target
COPY --from=cacher $CARGO_HOME $CARGO_HOME
// PROBLEM HERE: Recompiles dependencies everytime even though they should have been cooked at `cacher` stage
RUN cargo build -p my-app --bin my-app

FROM alpine AS my-app
# FROM $BASE_IMAGE AS my-app
WORKDIR /app
EXPOSE 8000
# We are building in debug mode
COPY --from=builder /app/target/debug/my-app /usr/local/bin/my-app
ENTRYPOINT ["/usr/local/bin/my-app"]

The issue seems to have been from me specifying the path as below:
RUN cargo build -p my-app --bin my-app
This probably causes cargo to navigate into that path but not find the target with the dependencies, causing it to recompile them.


Ensure .targets files are included in dotnet-watch

Fix #230
Workaround https://github.com/NuGet/Home/issues/3959

cc @muratg


Added WIZwiki_W7500 board in CMSIS-DAP

These are modified for adding WIZwiki_W7500 board in CMSIS-DAP

Hi @0xc0170
I already modified source code according to your request. But this pull request is still open. It doesn't merge to the master. I wonder when does this pull request close. Is something wrong with my pull request?

Thanks for the PR. This codebase is being refactored at the moment so please keep your own fork and the PR open or move to a branch other than master. When DAPLink is ready there will be a migration path that is quite simple and your work will benefit from a lot of usability improvements across many newer OSs as well as performance increases and features. Thank you for understanding.


atom view

I was wondering how atom view is implemented? I'm getting a shape mismatch.
In mc-gearnet_edge.yaml I changed the view and entity level to 'atom' and input dimension to 38. As i find 38 atom types in the torchdrug protein class.
Is there another setting i need to change?
Thanks for creating GearNet!

Hi, thanks for raising the question. The atom view is set to changing the node features from residue features to atom features. You can find the implementation here: https://github.com/DeepGraphLearning/torchdrug/blob/6066fbd82360abb5f270cba1eca560af01b8cc90/torchdrug/data/protein.py#L113. I think you also need to check the implementation of Multiview Contrast to make sure the shape of node features can match.


No Google tts engine (I installed it)

After downloaded all components ,this app said there's no google tts engine.i installed it in google play.but this app still asked me to install it.
I found google iis engine has a new name
“Speech Recognition and Synthesis from Google”.
My phone is Samsung Galaxy f52 5g

Samsung Galaxy f52 5g

There was an error with the tts initialization, do you want to continue without tts?

If you press "continue" you will have the possibility of using the app but without TTS, anyway it's strange, do you have a custom ROM on your phone?

I am using GrapheneOS and the app works wonderfully except for the tts. It would be great to support FOSS tts like RHVoice, which can be set as the default tts system-wide.

I am aware of this and in the future (probably in RTranslator 2.1) I will expand the compatibility with different TTS (or directly integrate a TTS inside the app), when I will have updates I will post them in this issue (now I close this one because it is practically a duplicate of the other one).


22

lint fix

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


Feature request: always preserve 1 version of the log

After upgrading to 2.0.20, I noticed a lot of failed backups the next day, but unfortunately the pod log didn't say much:
time="2024-03-13T02:31:00Z" level=info msg="Backup started" plan=kviz-daily
time="2024-03-13T02:31:05Z" level=info msg="new dump" archive=/tmp/kviz-daily-1710297060.gz err="after 0 retries, mongodump log : exit status 1" mlog=/tmp/kviz-daily-1710297060.log plan=kviz-daily
time="2024-03-13T02:31:05Z" level=error msg="BACKUP FAILED: after 0 retries, mongodump log : exit status 1" plan=kviz-daily

Since most of our backups have rentention set to 0 (ie we push to S3, there's no need for local retention), the logs were removed and I've had no chance of figuring out what happened.
For now I've set the retention to 1 (except one very big plan) so if it happens again I can dig through the log. But ideally, no matter the retention levels, we should keep at least the last version of the log. Perhaps simply applying retention+1 to logfiles would suffice in this case (as we don't expect them to be very large anyway).

Ok, this is strange. It seems in case of a failure, the logs were removed, even if retention was set to 1 for the failed plan. Not sure why atm.


New line in richText cell

Take the following code:
let excel = require('exceljs')
let wb = new excel.Workbook()
let ws = wb.addWorksheet('test')

ws.getCell('B2').value = {
  richText: [
    {
      font: {
        color: {
          argb: `99E391`
        }
      },
      text: `Chuck Norris' tears cure cancer,\n`
    },
    {
      font: {
        color: {
          argb: `FF6565`
        }
      },
      text: `too bad Chuck Norris has never cries.`
    }
  ]
}

wb.xlsx.writeFile('./test.xlsx').then(err => {
  if (!err) {
    console.log(`file written successfully.`)
  } else {
    console.log(`error writing file: ${err}`)
  }
})

The result will be a string resembling the following (Ignoring the line break):

Chuck Norris' tears cure cancer,too bad Chuck Norris never cries.

It seems as though the line break is being stripped from the ends of the text property when the file is being written.
By simply adding a character after the \n the line break does not get removed.  Is there a setting somewhere to turn this functionality on or off?

It works for me, if I change the code in the 3 modules
node_modules\exceljs\dist\es5\xlsx\xform\strings\text-xform.js
node_modules\exceljs\dist\exceljs.js
node_modules\exceljs\dist\exceljs.min.js
from:
if (model[0] === ' ' || model[model.length - 1] === ' ') {
xmlStream.addAttribute('xml:space', 'preserve');
}
into:
if (model[0] === ' ' || model[0] === '\n' || model[model.length - 1] === ' ' || model[model.length - 1] === '\n') {
xmlStream.addAttribute('xml:space', 'preserve');
}

Try add space in line with '\n'. Like this:
  {
      'richText': [
        {font: {underline: true}, text: ' °C \n'},
        {font: {underline: false}, text: 'м'}
      ]
    };

@t1hk You should make a PR, I'm still seeing this issue.

load some xlsx file and save , the richText will missing in save file

anyone could open PR for that?

@bpryer
Try add space in begin line with '\n'. Like this:
  {
      'richText': [
        {font: {underline: true}, text: ' °C \n'},
        {font: {underline: false}, text: 'м'}
      ]
    };

or you can add the space at the end of the line that contains the "\n"

@Siemienik This bug has been fixed by guyonroche, See https://github.com/exceljs/exceljs/commit/493bf3f6b627ed3bbdd0c9ef58f0479c411cc4cc


Update to 1.20.2

Make sure this is a merge and not a rebase/squash.

any update on when 1.20.2 releases???

any update on when 1.20.2 releases???

Give it time bro, Please.
Just because there hasn't been many commits in recent times doesn't mean they aren't working on it at all.

Correct. A change was made to QSL that doesn't really work with FAPI, so we are figuring out a way to fix this. As well the two current maintainers are very busy.

Has there been any progress?
Thanks developers for trying to make this work.

Yes. I have working code that will be pushed into this PR soon

superceeded


The "data.lmdb" file in data seem to be corrupted

Dear Stevenlsw,
I hope this message finds you well. I encountered an issue that the "data.lmdb" file in data seem to be corrupted .
my code is

it still raise KeyError

hi,do you get the correct lmdb data right now

no

hello，do you get the correct lmdb data？

Hi, could you try with python==3.6 and LMDB version is 1.2.1. Let me know
if this could work.
On Tue, Jul 16, 2024 at 9:40 PM Gggggjr @.***> wrote:

hello，do you get the correct lmdb data？
—
Reply to this email directly, view it on GitHub
https://github.com/stevenlsw/hoi-forecast/issues/11#issuecomment-2232154909,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFQRNGK2SUWLB7JTX35Z6IDZMXDP5AVCNFSM6AAAAAA66C2V3KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZSGE2TIOJQHE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hi, I use python==3.6 and LMDB version is 1.2.1. This is my error report.


add empty default for Request params

Tiny change, but essentially I came across a use case where I just wanted to sign a basic GET request, with no other params really.
This change will allow me to write $request = new Request('GET', '/api/getData') instead of $request = New Request('GET', '/api/getData', []).
I didn't bump the version as it shouldn't affect anything really.
Cheers

:+1:
(Don't forget to update CHANGELOG.md too!)

Whoops, good catch, just updated.

Thank you :+1:


[KeyManager] Import Mutable Validator - Add Validator and write keystore and password files to disk

PR Description
Introduces MutableValidator object that allows importing new validators in memory and also writing them in the disk.
Fixed Issue(s)
This PR provides the methods for #4557.
Documentation

[X] I thought about documentation and added the documentation label to this PR if updates are required.

Changelog

[X] I thought about adding a changelog entry, and added one if I deemed necessary.

closing, has been implemented in #4740


Issue with requirements.txt due to marge request

In requirements.txt there are two entries for requests, one requests==2.28.2 made by DEV_FINWIZ and one made by @devfinwiz 5 hours ago, same goes for gradio

Feel free to contribute with any new features or bug fixes if you find any. Thanks for your contribution towards Fin-Maestro.


[read-fonts] gvar: improve delta decoding perf

Determining the delta count and offset to the y-deltas requires processing the full stream, but we really only need to read the control byte for each run to do so.
This gives a roughly 30%(!) boost in loading outlines from variable TrueType fonts.

Turns out my new code had slightly different behavior in that it made an assumption that the boundary between x and y coordinate deltas always aligned with a packed run boundary. This seems to be the case in all fonts I tested. write-fonts specifically encodes the coordinates separately so this is always true and the same probably applies to fontmake. But the spec notably does not make this guarantee so I didn't want this to bite us later.
Fixed the code to handle this case and added a test for it.

This gives a roughly 30%(!) boost in loading outlines from variable TrueType fonts.

Can this be specified in terms of a reproducible test? Run x on main, get result y, run x on my branch, get result less-than-y?

This gives a roughly 30%(!) boost in loading outlines from variable TrueType fonts.

Can this be specified in terms of a reproducible test? Run x on main, get result y, run x on my branch, get result less-than-y?

Agreed something like this would be nice. Filed #1247 to investigate doing some automated performance regression testing.


pip package

Do you have plans wrap this repo into pip package ?

I was just passing by, but what exactly would you like to see in such a package?
Since this repository has binaries (images) and some other stuff that is less relevant in a package.


Add option to automatically append the generated images (web link) to the current note (if any)

The goal is to automatically append the generated images to the current note, if there is one
This should be disabled by default

Decided to enable this by default.


Deploy Checklist: New Expensify 2022-02-02

Release Version: 1.1.35-0
Compare Changes: https://github.com/Expensify/App/compare/production...staging
This release contains changes from the following pull requests:

https://github.com/Expensify/App/pull/6412

[x] QA
[x] Accessibility

https://github.com/Expensify/App/pull/7512

[ ] QA
[ ] Accessibility

Internal QA:

[ ] https://github.com/Expensify/App/pull/7458 - @pecanoro @roryabraham

cc @Expensify/applauseleads

:rocket: All staging deploys are complete, @Expensify/applauseleads please begin QA on version https://github.com/Expensify/App/releases/tag/$(< package.json jq -r .version) :rocket:

:rocket: RORY_TESTING All staging deploys are complete, @Expensify/applauseleads please begin QA on version https://github.com/Expensify/App/releases/tag/$(< package.json jq -r .version) :rocket:

:rocket: RORY_TESTING All staging deploys are complete, @Expensify/applauseleads please begin QA on version https://github.com/Expensify/App/releases/tag/1.1.35-0 :rocket:

The issue #7512 is not applicable for accessibility testing

Looks like https://github.com/Expensify/App/issues/7548 should be fixed by https://github.com/Expensify/App/pull/7551

Marking https://github.com/Expensify/App/pull/7458 off as a QA pass, but will continue to monitor.

Regression is completed.
Checking off https://github.com/Expensify/App/issues/7548 & https://github.com/Expensify/App/issues/7551
Issues logged which are still open
https://github.com/Expensify/App/issues/7556
https://github.com/Expensify/App/issues/7550
https://github.com/Expensify/App/issues/7549
https://github.com/Expensify/App/issues/7547
https://github.com/Expensify/App/issues/7543

:shipit:


fix(test): allow dash/underscore separated names

issue was found whenever creating projects with names like: 'project-2' or
'project_2' Karma weren't able to find the app files.
@IgorMinar can you review?

Lgtm
On Thu, Nov 26, 2015 at 9:54 AM Ciro Nunes<EMAIL_ADDRESS>wrote:

issue was found whenever creating projects with names like: 'project-2' or
'project_2' Karma weren't able to find the app files.
@IgorMinar https://github.com/IgorMinar can you review?
You can view, comment on, or merge this pull request online at:
https://github.com/angular/angular-cli/pull/71
Commit Summary

fix(test): allow dash/underscore separated names

File Changes

M addon/ng2/blueprints/ng2/files/karma-test-shim.js
https://github.com/angular/angular-cli/pull/71/files#diff-0 (4)

Patch Links:

https://github.com/angular/angular-cli/pull/71.patch
https://github.com/angular/angular-cli/pull/71.diff

—
Reply to this email directly or view it on GitHub
https://github.com/angular/angular-cli/pull/71.


Revert "HoloLens 2 Emulator March 2020 Release"

Reverts MicrosoftDocs/mixed-reality#2083
I'd like to revert the change as the download link is taking longer than expected to be verified.

Docs Build status updates of commit 3cdcaf9:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/hololens-emulator-archive.md
:white_check_mark:Succeeded
View

mixed-reality-docs/install-the-tools.md
:white_check_mark:Succeeded
View

mixed-reality-docs/using-the-hololens-emulator.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


migrations directory is in .gitignore

https://github.com/UpstreamDataInc/goosebit/blob/21975c0f5cc2dc678f84453225b91f1ada69703a/.gitignore#L168
Shouldn't migrations be committed? Am I missing something here?
Unfortunately, the commit message of 6e7c328ed9a2d45e84eda0e07b850d308ed12f5b is not very informative :disappointed:

To my understanding we removed it until the schema becomes somewhat stable. Then it has to be re-introduced.

To my understanding we removed it until the schema becomes somewhat stable. Then it has to be re-introduced.

Pretty much.  Migrations are implemented, but it seems like half the time they don't work properly and won't allow the application to start (at least with sqlite).  So the idea is to try to stabilize the schema as much as possible so hopefully they actually work when small changes are needed.

We should fix this for the next release. It is causing major issues in my setup.

We should fix this for the next release. It is a major issue for our setup.

I'm not sure if that's because we don't have migrations in git, or because migrations get generated locally and applied on startup.  For me, I end up having to delete them every so often because they stop the app from starting at all.
Seems like mostly an issue with SQLite not having some functionality for migrations, and aerich not being completely fully implemented yet...

Having migration files as part of the package and preventing them from being generated at start-up seems to me like the way to go. Or is that not how aerich is supposed to be used?

Not sure.  My goal would be that when we make changes to the DB, the user updates goosebit, then runs it, and it generates migrations which then get applied, as each user's migrations in theory could be different.  Not sure though.

I haven't had time to look into this topic, but, I know how e.g. Django's migrations work (which I understand is aerich's inspiration).
Besides the initial migrations, they only need to be created when models (actually the DB schema) are modified and they should be written in a DB-agnostic manner. So, it should be possible to ship them with the package and provide a way for smooth DB migrations on updates. Other frameworks work the same, so I would really assume that this is the case here too.
If the files in the migrations directory are only intermediate, temporary files (which I doubt they are), they cannot live in site-packages/goosebit/migrations and the path to the directory would need to be changed to a "temporary" location.

For the record, this is what ChatGPT spits out when asked "Can I get an example of a migration for an edge case that works with PostgreSQL, MySQL and SQLite?":
from tortoise import BaseDBAsyncClient

async def upgrade(db: BaseDBAsyncClient) -> None:
    # Determine the database type
    dialect = db.schema_generator.client.capabilities.dialect

    if dialect == "postgres":
        # PostgreSQL: Use native JSONB type
        await db.execute_script("""
        ALTER TABLE your_table_name
        ADD COLUMN json_data JSONB;
        """)
    elif dialect == "mysql":
        # MySQL: Use native JSON type
        await db.execute_script("""
        ALTER TABLE your_table_name
        ADD COLUMN json_data JSON;
        """)
    else:
        # SQLite: Use TEXT to store JSON data
        await db.execute_script("""
        ALTER TABLE your_table_name
        ADD COLUMN json_data TEXT;
        """)

async def downgrade(db: BaseDBAsyncClient) -> None:
    # Drop the JSON field during downgrade
    await db.execute_script("""
    ALTER TABLE your_table_name
    DROP COLUMN json_data;
    """)

Of course, I have no idea if this is correct.

I found an interesting project that can create app templates for fastapi / tortoise orm / aerich (and more) projects: https://github.com/s3rius/FastAPI-template
Will rework our migrations based on this popular sample. Also think it can give other insights concerning best practices in this space. So worthwhile to have a look at IMHO.


Update action.yml

I dont seem to see this anywhere in the documentation
https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions


Delete folder

Hi,
I dont't know if it is possible but i haven't found a way to delete a folder i have created. Maybe it is a problem of permission ? On my folder list, i only see a link to update the folder but no link to delete ... It would be useful.
Thanks for your answer,
Max

i have the same issue.. Super admin no help ;/

If using django-suite this is a bug in suit, not really in filer. Please check against a non-styled admin


Completion of error handling

Would you like to add more error handling for return values from functions like the following?

fread ⇒ ReadHeader
fseek ⇒ WordReader constructor

Yeap, this should be done.

I suggest to avoid ignorance of return values a bit more.
Are you interested to apply aspect-oriented software development?
How do you think about to encapsulate error detection and corresponding exception handling as a reusable aspect in your software?

Are there a few update candidates left over?
How do you think about to annotate any functions with "__attribute__((warn_unused_result))"?


Lack of Documentation

No offense but guys you don't have any documentation. List of method signatures on the README file are nearly pointless without actual examples or at least method definitions.

Hi @flexchar we do have a fair amount of documentation on our.umbraco.com/documentation/ but I do realize that its not actually linked to from anywhere in this repository. We will get that updated.
You can find API Documentation for all endpoints in both the Content Delivery and Content Management APIs here:
https://our.umbraco.com/documentation/Umbraco-Heartcore/API-Documentation/
But what you are asking for is usage documentation for the client library itself, right?

I have seen these resources. However I don't find them particularly useful if I am onto using the official client. Which I believe should have in-
Ideally

If you have tests, please publish the code. That would on its own provide quite decent insight 💡

Thanks for the feedback!
We have scheduled some initial work around getting better docs in place for this nodejs client library, so we should soon be able to publish some better docs.
I will update this thread when the first iteration is published.


Vertical stepper

currently in the design system there is only an horizontal stepper.
For multisteps and also for mobile application is better to have it vertical, are you planning to build it?

Thank you for your question @leader80.
We have not planned a vertical stepper right now, but I will discuss the topic with the Team.

@rouvenpost Thank you!
I have refactored the track and trace vertical stepper form scratch, because it was not built very well.
But you're right, we could use this refactored version as a starting point for the new vertical stepper implementation.

Duplicate #954.

Closing in favor of #3363.


For mercycorps/TolaActivity#2457, change focus to rfc or rationale.

I know, right?

I know, right?


Unit test: get two item objects, then specify them in the search with client.asset_search(items=[item1, item2])

Overview
The client.asset_search(...) call should be able to search only the contents of a list of items. This test will check that this is working properly.
Specific test requirements
Firstly, create one

[undefined]TypeError: AssetSearch.init() got an unexpected keyword argument 'items'
VSCode says this items keyword is incorrect


ProteomicsLFQ memory consumed

Description of the bug
The errors are reported when i ran PXD001819 LFQ datasets (about 10G mzML files).  It looks like it's running out of memory? But the available memory is 120G. So I'm not sure if this is normal or not.
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Command used and terminal output
ProteomicsLFQ       -threads 2       -in UPS1_12500amol_R1.mzML UPS1_12500amol_R2.mzML UPS1_12500amol_R3.mzML UPS1_125amol_R1.mzML UPS1_125amol_R2.mzML UPS1_125amol_R3.mzML UPS1_25000amol_R1.mzML UPS1_25000amol_R2.mzML UPS1_25000amol_R3.mzML UPS1_2500amol_R1.mzML UPS1_2500amol_R2.mzML UPS1_2500amol_R3.mzML UPS1_250amol_R1.mzML UPS1_250amol_R2.mzML UPS1_250amol_R3.mzML UPS1_50000amol_R1.mzML UPS1_50000amol_R2.mzML UPS1_50000amol_R3.mzML UPS1_5000amol_R1.mzML UPS1_5000amol_R2.mzML UPS1_5000amol_R3.mzML UPS1_500amol_R1.mzML UPS1_500amol_R2.mzML UPS1_500amol_R3.mzML UPS1_50amol_R1.mzML UPS1_50amol_R2.mzML UPS1_50amol_R3.mzML       -ids UPS1_12500amol_R1_comet_feat_perc_pep_filter.idXML UPS1_12500amol_R2_comet_feat_perc_pep_filter.idXML UPS1_12500amol_R3_comet_feat_perc_pep_filter.idXML UPS1_125amol_R1_comet_feat_perc_pep_filter.idXML UPS1_125amol_R2_comet_feat_perc_pep_filter.idXML UPS1_125amol_R3_comet_feat_perc_pep_filter.idXML UPS1_25000amol_R1_comet_feat_perc_pep_filter.idXML UPS1_25000amol_R2_comet_feat_perc_pep_filter.idXML UPS1_25000amol_R3_comet_feat_perc_pep_filter.idXML UPS1_2500amol_R1_comet_feat_perc_pep_filter.idXML UPS1_2500amol_R2_comet_feat_perc_pep_filter.idXML UPS1_2500amol_R3_comet_feat_perc_pep_filter.idXML UPS1_250amol_R1_comet_feat_perc_pep_filter.idXML UPS1_250amol_R2_comet_feat_perc_pep_filter.idXML UPS1_250amol_R3_comet_feat_perc_pep_filter.idXML UPS1_50000amol_R1_comet_feat_perc_pep_filter.idXML UPS1_50000amol_R2_comet_feat_perc_pep_filter.idXML UPS1_50000amol_R3_comet_feat_perc_pep_filter.idXML UPS1_5000amol_R1_comet_feat_perc_pep_filter.idXML UPS1_5000amol_R2_comet_feat_perc_pep_filter.idXML UPS1_5000amol_R3_comet_feat_perc_pep_filter.idXML UPS1_500amol_R1_comet_feat_perc_pep_filter.idXML   UPS1_500amol_R2_comet_feat_perc_pep_filter.idXML UPS1_500amol_R3_comet_feat_perc_pep_filter.idXML UPS1_50amol_R1_comet_feat_perc_pep_filter.idXML UPS1_50amol_R2_comet_feat_perc_pep_filter.idXML UPS1_50amol_R3_comet_feat_perc_pep_filter.idXML       -design PXD001819.sdrf_openms_design.tsv       -fasta uniprot_yeast_ups_decoy.fasta       -protein_inference aggregation       -quantification_method feature_intensity       -targeted_only false       -feature_with_id_min_score 0.10       -feature_without_id_min_score 0.75       -mass_recalibration false       -Seeding:intThreshold 1000       -protein_quantification unique_peptides       -alignment_order star              -psmFDR 0.01       -proteinFDR 0.01       -picked_proteinFDR true       -out_cxml PXD001819.sdrf_openms_design_openms.consensusXML       -out PXD001819.sdrf_openms_design_openms.mzTab       -out_msstats PXD001819.sdrf_openms_design_msstats_in.csv    -PeptideQuantification:extract:batch_size 1000          -debug 0       2>&1 | tee proteomicslfq.log

Relevant files
log file: proteomicslfq.log
System information
quantms 1.3.0

I have analysed this dataset many times. Never had issues.

You can trace the memory consumption while it's running.

Me too, but the last release of quantms 1.3.0 uses OpenMS 3.2.0. We have other ongoing problems with this version and mzTab export in ProteinQuantifier. @timosachsenberg Can you help us here?

log does not indicate that it is the export. is there a way we can find out where this regression was introduced?

I retried openms 3.2.0 and traced the memory. It does exceed the memory. Why is it out of memory? mzML only has 10G.  I haven't encountered this before either

Thanks for checking. This it is really suspicious. Can you reproduce this e.g., for one or two files?

I can reproduce this in two files. A single file are fine. Test files:  https://www.dropbox.com/scl/fi/jgbw0pvnm18cga1kwgy54/proteomicslfq.zip?rlkey=6igoyec9ffztk9p8f4uriukct&st=osldx9cp&dl=0

I can confirm that it uses 400gb for two small files during feature extraction.
My first guess would be that something inside e.g. the OpenSWATH code might have changed.

These are the two files in PRIDE:
https://ftp.pride.ebi.ac.uk/pride/data/archive/2015/12/PXD001819/UPS1_125amol_R1.raw
https://ftp.pride.ebi.ac.uk/pride/data/archive/2015/12/PXD001819/UPS1_125amol_R2.raw

Likely related to a different conversion using TRFP.
The file works with ProteoWizard msconvert

We reverted to the previous version of ThermoRawfileparser which is not ideal. We will explore more in detail with the new version of ThermoRawFileParser.
To be honest I have lost track of this.