Feature/issue 123 cleanup selector code

@bensinjin I figured I'd get most of the selector clean up while you were off doing something else to avoid rebase grief. This work aligns with what we've been planning under #123. Some changes are still outstanding, but they will not touch as much code so they should be easier to mop up later.

This is looking nice. I'll be sure to properly review before next week.

@rasmus-storjohann-PG I'm happy with this - is it ready to merge? I just want to confirm as it's a lot of changes.


computeMetadata API?

https://github.com/googleapis/google-cloud-cpp/issues/14670 was closed as completed but I cannot find an implementation to verify completion.
Please note that this request is coming from the needs of a sizable corporate account.

I would recommend that you contact your customer representative about this feature request. The compute related code in this SDK focuses on configuring GCE per the API defined here (https://cloud.google.com/compute/docs/reference/rest/v1).
You mention in your original issue that you want to do this without needing an HTTP or JSON library. I'm not aware of any other way to retrieve the metadata. In situations (typically authentication) where this SDK need to access the metadata, we do so using libcurl (HTTP) and nlohmann JSON (https://github.com/googleapis/google-cloud-cpp/blob/39a3faf28d22440aedd371d21bdf158e847f0aca/google/cloud/internal/oauth2_compute_engine_credentials.cc#L309)


When expanding a project that doesn't have bigquery API activated, in the explorer tree, it hangs indefinitely.

fixed in version 0.0.2
https://github.com/bstruct/vscode-bigquery/releases/tag/0.0.2


Variable with boxed function allows call of function without necessary captures in scope

Consider this program:
interface Greet { def sayHello(): Unit }

def main() = {
  var f = box { () }
  try { f = box { g.sayHello() } }
  with g: Greet { def sayHello() = println("hello!") }
  f()
}

This should of course fail at compile-time since at the call-site of f, the capture g is not in scope. However, it fails with the following error at runtime:
Prompt 2 not found

The type of f is inferred as () => Unit at { g }. Thus, the first assignment is also valid due to capture subtyping. If you actually try to annotate it like this, you cannot since g is not in scope (TIL this is called a Voldemort type according to @jiribenes)
If you instead annotate f with the type of its first assignment, the program expectedly fails at compile-time:
interface Greet { def sayHello(): Unit }

def main() = {
  var f: () => Unit at {} = box { () }
  try { f = box { g.sayHello() } }
  with g: Greet { def sayHello() = println("hello!") }
  f()
}

Potentially fixed by #552


[protobuf] update to v3.20.1

Library name:
protobuf
New version number:
v3.20.1
Other information that may be useful (release notes, etc...)

Duplicate of https://github.com/microsoft/vcpkg/issues/24305

Duplicate of https://github.com/microsoft/vcpkg/issues/24305


chore: add the codeOwners file

I add @yuluo-yx and @Ink-33 to the CODEOWNERS file. Please take a look at it.

@LinuxSuRen it seems that has some questions.
Unknown owner on line 3: make sure @Ink-33 exists and has write access to the repository
pkg/runner/grpc_test.go @Ink-33

Thanks for the reminder. How about letting me comment on it?


[OAuth 2] Start an authorized request by suppling an automatic mechanism of token renewal

Summary
As described in OAuth 2 documentation, the access token has an expiration date. The duration of an access token, together with a refresh token, is provided when the user retrieves a new access token.
This PR aims to:

properly store the information about the expiration of a retrieved access token
expose, in the OAuth 2 client, a convenience mechanism to automatically renew an expired token by using the refresh token.
improve error handling by using a convenience enum struct to store all error codes

Why?
I'm working on a library that helps developers to easily access Google services. I found in OAuthSwift a perfect fit for implementing the OAuth 2 process but I wanted to extend its capabilities with a solid mechanism of access token automatic renewal only based on the access token expiration.
How would I use it?
To kick off a request that needs to be authorized simply call, on a OAuth 2 client, the following method:
oauthClient = OAuth2Swift(consumerKey: consumerKey, consumerSecret: consumerSecret, authorizeUrl: AuthenticationConstants.AuthorizeUrl.rawValue, accessTokenUrl: AuthenticationConstants.AccessTokensUrl.rawValue, responseType: AuthenticationConstants.ResponseType.rawValue)

oauthClient.startAuthorizedRequest(urlString, method: .GET, parameters: parameters, headers: headers, onTokenRenewal: { (credential) in
           // Convenience fallback to store new credential somewhere safe (i.e. the keychain)
            do {
                try self.credential.storeOAuthCredential(credential)
            } catch {
                failure(error: error as NSError)
            }
        }, success: success, failure: failure)

Wow! Thank you so much!

thx, good work

See my comment on #217.  I think there may be a bug - at least when used with Meetup.com.


Fix for ineligible filters, use compressed block size

@schlosna @robert3005 @lynchmattj
Fixes two important bugs:

if you have a filter that cannot translate to a parquet filter this would previously fail.
properly generate splits from the compressed size. totalByteSize is the size after decompression, so it would previously bleed the split into the next block causing duplicate data.

💯

Since this was a hairy one, can we put in a test with this PR?

👍  once we add a couple tests

@pwoody did you push this upstream too?  Does it belong added to apache/spark#15835

Yes, but I'd like to address the memory usage problem before updating that PR again.


Pull / Push more than one gs not working as expecte

The plugin works when only working with one gs file. When I try to add a second one, it is pushes correctly. But when I make changes and push again, I get an error and it is not pushed. When I try to pull, the plugin wants to delete this file. When I delete it, I can push again, but then I run in the same problem.
From this I think the problem is: For some reason the plugin can not recognize more than one gs file in the repo.
I am using a GitLab Repo.

Please check the known issue first


Modify cfn-lint custom script to restrict checks against valid cloudformation extensions

Modify cfn-lint custom script to restrict checks against valid cloudformation extensions
Task Link:  N/A
Types of changes

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

Developer Checklist

[ ] My change requires a change to the documentation.
[x] I have updated my branch with the latest changes in master.
[x] I have communicated with the team any changes that might affect work in progress.
[x] I have updated Trello to reflect the current state of the feature.

Documentation Checklist

[ ] I have updated the necessary README's
[ ] I have updated the Runbook

Description of Changes

Modify cfn-lint custom script to check only yaml, yml and json

Context

False positives triggered by cfn-lint PR check. A python file containing the CF template marker(AWSTemplateFormatVersion) used in this script was flagged  and ran against cfn-lint.

Description of Testing Process

Verified locally

@prashant0085 we are already handling the type of files for cfn-lint here. https://github.com/Flux7Labs/central-repo-git-hooks/blob/master/.pre-commit-hooks.yaml

@hanumantharaomvl The custom script used as entry point for the cfn-lint check was flagging a python file since it does not handle extensions.

Thank you for the review @sirhc @hanumantharaomvl


skip to main content works inconsistantly

AT users are having difficulty using the skip to main content. Some users try to click the link and are taken nowhere; others confuse the landmark with the link and click it twice. Tests conducted in Edge with JAWS
Fable video clip 1
Fable video clip 2
Fable video clip 3
Fable video clip 4
Fable video clip 5

Having reviewed all of these videos, I am unable to recreate the issues described. Possibly because of different tooling, possibly because the issues may be intermittent, unsure.
However, in the second video link, the participant indicates that having a nav landmark region around a single "Skip to main content" link is probably unnecessary. This WebAIM article supports that assessment.

@thiessenp-cds  You can't see the clips?

@thiessenp-cds You can't see the clips?

Op now I have access. I just need to be more patient I guess :)

I wasn't able to get the same behaviour either. It may just be a one off quirk. IMO we can note this and move on. Though if another user gets similar behaviour then maybe come back to it.
Though to be really sure, I'd need to know what version of Jaws the user is running. Each screen reader has its own quirks/bugs :) From what I can see he's running windows 10, Edge latests, with Jaws. I tested on Windows 10, Edge latest and Jaws  v2023.2306.38

The other issue he mentions about where the Skip link takes a user, I guess that is up for discussion. For my opinion, I agree with what the user is saying - that a skip to main content link would ideally focus the main content heading. This just makes the interaction clearer. (vs. focusing the main element region)

@Abi-Nada

The work for this will involve updating each skip to link to point to each page header. Except for forms-forms, I think I'd like to do that in a separate PR because of how impactful that change could be.

I found a simple way to solve this on the below branch. I'll put this task in the backlog for now so we can focus on the download task
https://github.com/cds-snc/platform-forms-client/pull/2813


Clarify that repo must be cloned.

I think it should be clarified at the top of the readme, before going into the dependencies, that one should clone the repo into a folder, for example "azure-sql-db-django", then cd into the folder and then start to dependency installation.

Make sense...initially I thought to give both the options to either create a new project from scratch or download sample.
Fixed it in README.md


List of Enums does not show the list of enum values in the Swagger schema

Hello,
If I have the model:
public class ATM
{
    public enum Currency
    {
        USA,
        CANADA
    }

    private List<Currency> supportedCurrencies;
}

The generated model in the schema would like something like:
ATM": {
    "id": "ATM",
    "description": "",
    "properties": {
        "supportedCurrencies": {
            "$ref": "array",
            "description": "",
            "items": {
                "$ref": "Currency"
            }
        }
    }
}

But there's no mention of the available enum values. Is it possible to fix this, and if so, what should the model look like?
Would there just be an extra enum property under 'supportedCurrencies', or would the enum property appear under 'items'?
Thanks

I have following enum  for generation of enum i like to display  successValue and okValue instead of just OK and SUCCESS. Any help would be appreciated
`package com.main;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@JsonSerialize(using = SerialiazerEnum.class)
public enum ActionType {
SUCCESS("successValue"),
OK("okValue");
private final String value;
ActionType(String value) {
    this.value = value;
}

@Override
public String toString() {
    return value;
}

}
`


Tree is not input scale invariant for simple X transformation?

Theoretically, tree is invariant for X simple transformation, such as "a * X - b". However, I do some simple tests, and I surprisingly found different version xgboost has different odd behavior, simple transformation will lead to different results. Here is the R code:
xgboost 0.71.2, change X to X - 8
library(xgboost)
set.seed(111)
N <- 80000
p <- 50
X <- matrix(runif(N * p, 0, 1), ncol = p)
colnames(X) <- paste0("x", 1:p)
beta <- runif(p)
y <- X %*% beta #+ rnorm(N, mean = 0, sd  = 0.1)

tr <- sample.int(N, N * 0.75)

###

param1 <- list(nrounds = 10, num_parallel_tree = 1, nthread = 10L, eta = 0.3, max_depth = 30,
  seed = 2018, colsample_bytree = 1, subsample = 1,  min_child_weight = 10,
  tree_method = "exact")
param1$data <- X[tr,]
param1$label <- y[tr]

set.seed(2019)
bst1 <- do.call(xgboost::xgboost, param1)
test_pred1 <- predict(bst1, newdata = X[-tr,])

newX <- X  - 8

param2 <- list(nrounds = 10, num_parallel_tree = 1, nthread = 10L, eta = 0.3, max_depth = 30,
  seed = 2018, colsample_bytree = 1, subsample = 1,  min_child_weight = 10,
  tree_method = "exact")
param2$data <- newX[tr,]
param2$label <- y[tr]

set.seed(2019)
bst2 <- do.call(xgboost::xgboost, param2)
test_pred2 <- predict(bst2, newdata = newX[-tr,])

summary(test_pred1 - test_pred2)
#     Min.   1st Qu.    Median      Mean   3rd Qu.      Max.
#-1.784631 -0.316670 -0.001692  0.002795  0.321040  1.831196

R sessionInfo()
> sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.5 LTS

Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/libopenblasp-r0.2.18.so

locale:
 [1] LC_CTYPE=C                 LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8
 [8] LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] xgboost_0.71.2

loaded via a namespace (and not attached):
[1] compiler_3.5.2    magrittr_1.5      Matrix_1.2-15     tools_3.5.2       stringi_1.2.4     grid_3.5.2        data.table_1.11.8 lattice_0.20-38

xgboost from master compilation, <IP_ADDRESS>, change X - 8 to X - 1 or X / 10
library(xgboost)
set.seed(111)
N <- 80000
p <- 50
X <- matrix(runif(N * p, 0, 1), ncol = p)
colnames(X) <- paste0("x", 1:p)
beta <- runif(p)
y <- X %*% beta #+ rnorm(N, mean = 0, sd  = 0.1)

tr <- sample.int(N, N * 0.75)

###

param1 <- list(nrounds = 10, num_parallel_tree = 1, nthread = 10L, eta = 0.3, max_depth = 30,
  seed = 2018, colsample_bytree = 1, subsample = 1,  min_child_weight = 10,
  tree_method = "exact")
param1$data <- X[tr,]
param1$label <- y[tr]

set.seed(2019)
bst1 <- do.call(xgboost::xgboost, param1)
test_pred1 <- predict(bst1, newdata = X[-tr,])

newX <- X  - 1

param2 <- list(nrounds = 10, num_parallel_tree = 1, nthread = 10L, eta = 0.3, max_depth = 30,
  seed = 2018, colsample_bytree = 1, subsample = 1,  min_child_weight = 10,
  tree_method = "exact")
param2$data <- newX[tr,]
param2$label <- y[tr]

set.seed(2019)
bst2 <- do.call(xgboost::xgboost, param2)
test_pred2 <- predict(bst2, newdata = newX[-tr,])

summary(test_pred1 - test_pred2)
#     Min.   1st Qu.    Median      Mean   3rd Qu.      Max.
#-0.714748 -0.109097 -0.003238 -0.002930  0.105858  0.726057

I will try to reproduce it in Python when time allows.

I test in python 3.5.2 with xgboost 0.81
import xgboost as xgb
import numpy as np

np.random.seed(111)
N = 80000
p = 50
X = np.random.uniform(0, 1, (N, p))
beta = np.random.uniform(0, 1, p)
y = X.dot(beta)

tr = int(N * 0.75)

trainX = X[:tr, :]
trainy = y[:tr]
dtest = xgb.DMatrix(X[tr:, :])

param = {"num_parallel_tree":1, "nthread":10, "eta":0.3, "max_depth":30, "seed":2018,
	"colsample_bytree":1, "subsample":1, "min_child_weight":10, "tree_method":"exact"}

dtrain1 = xgb.DMatrix(trainX, label = trainy)
bst1 = xgb.train(param, dtrain1, num_boost_round = 10)
pred1 = bst1.predict(dtest)

trainX_new = trainX / 10
dtrain2 = xgb.DMatrix(trainX_new, label = trainy)
bst2 = xgb.train(param, dtrain2, num_boost_round = 10)
pred2 = bst2.predict(dtest)

np.cov(pred1 - pred2)
array(0.56649683)

@joegaotao Thanks!  Will look into this at weekend. :)

@joegaotao You need to scale the prediction dataset.

@joegaotao
Here:
pred2 = bst2.predict(dtest)
dtest needs to be scaled accordingly.

@joegaotao Beats me.  I tested with multiple configurations including different number of rows and different transformations.  The situation in multiplication is much better than addition.  And the problem in GPU side seems even worse.
My guess is the funny floating point issue.  But will look more closely, debugging a issue only occurs with more than 100000 lines of data is quite messy...

@trivialfis  I also wondered it's the floating issue for boosting iteration, because smaller max_depth and nrounds, it's hard to reproduce the difference. But  I feel it's weird that X location shift or scale change has effect on the tree split even in tree_method=exact

While theoretically there must be the invariance, the scaling is not precise because of the finite float precision. As for the shifts, keep in mind that the number of unique possible float numbers within a unit interval decreases significantly when shifting away from [0,1). E.g., few float numbers survive the following roundtrip example:
In [51]: np.random.seed(111)
    ...: X = np.random.uniform(0, 1, 1000000).astype('float32')
    ...: X_10 = X - 10
    ...: X_ = X_10 + 10
    ...: (X == X_).sum()
    ...:
    ...:
Out[51]: 41725

With a sizeable datasample and such deep trees with hundreds of splits, the chances that one would hit some imprecision points after the transformation in one or a few splits get higher. While I'm not ruling out any potential causes within the xgboost that might also contribute to what we see here, but it very much seems to me as a floating issue.

@joegaotao I looked into gpu hist and gpu exact and I still think floating point is the culprit here.


In guacamol dataset and processed_file_names, use self.filter_dataset instead of self.filter

I believe it should be self.filter_dataset (and not self.filter) as that is the attribute that is set in the constructor of GuacamolDataset

Sorry for the long delay, thanks!


Update to less 2.0

This updates mincer to work with less 2.0
fixes #167

@tikotzky i don't know why, but mincer examples are broken with 2.x.

@puzrin this seems to be the issue: http://stackoverflow.com/questions/26628309/less-v2-does-not-compile-twitters-bootstrap-2-x
I'll open a PR to update the example to the latest version of bootstrap.

Ah, no problem then. Thanks a lot for info

just opened #182 to fix the example


[Device support] Upload/Download values seem to be monthly stats

Anything you want to mention?
Have a feeling this is due to how the device is reporting the stat, but I am trying to get the daily downloads / upload values out of the "rt_ax95q_wan_download(upload)" sensor. The values reported seem to be monthly, but the daily stats are available on the router itself.
So far this seems to be a PEBKAC issue, and not one with the integration itself.
from the HA side, I cannot seem to find a way to reset this value daily outside of the meters sensor, which this is not.
thoughts or input would be appreciated.
Your device model
ZenWifi AX (XT8)
Firmware type
Stock
Firmware version
<IP_ADDRESS>.388_22525
Does everything work well?
Yes

Hello, @1PlusN,
Thanks for your feedback.
The sensors are actually cumulative for the traffic of the router and do not depend on the time period. They might reset only on reboot (or older model when the value overflows some limit)
If you want daily/weekly/monthly usage properly, I suggest creating a utility meter in HA, binding it to the sensor from the integration.
Here is an example of YAML for daily and monthly sensors:
utility_meter:
  router_upload_monthly:
    source: sensor.router_wan_upload
    cycle: monthly
    name: Router/Upload/Monthly
  router_download_daily:
    source: sensor.router_wan_download
    cycle: daily
    name: Router/Download/Daily

Hello, @1PlusN,
Thanks for your feedback.
The sensors are actually cumulative for the traffic of the router and do not depend on the time period. They might reset only on reboot (or older model when the value overflows some limit)
If you want daily/weekly/monthly usage properly, I suggest creating a utility meter in HA, binding it to the sensor from the integration.
Here is an example of YAML for daily and monthly sensors:
utility_meter:
  router_upload_monthly:
    source: sensor.router_wan_upload
    cycle: monthly
    name: Router/Upload/Monthly
  router_download_daily:
    source: sensor.router_wan_download
    cycle: daily
    name: Router/Download/Daily

Spectacular. Thanks @Vaskivskyi. If only the person in my chair knew what they were doing half the time.


Wrong information from cognitive search

This issue is for a: (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

When asked for the qualifications of the Vice President of Product Management role at Contoso, the chat bot bases its answer on the wrong data. It does so because the page of that role in the role_library pdf is shared with information from a different role.
Minimal steps to reproduce

You ask the chat bot the following question:

Note that this is the page in the role_library pdf:

Any log messages given by the failure

No relevant log messages. Error lies in the answer of the chat bot.

Expected/desired behavior

The chat bot works with the cognitive search to find the correct qualifications for the corresponding role.

OS and Version?

Windows 11

Versions

Latest

I also see the same behavior. Additionally, I have tried not splitting the pdfs into seperate pages, uploading the whole pdf instead.
The chatbot then did not seem to know about the qualifications for the "Manager of research and deployment" role at all. However, the qualifications that the bot returned for "Human resources" are from correct section, not the incorrect ones that are on the same page as the title.

Could someone perhaps also provide us with more information on the reason behind splitting the files into separate pages?

@NaminduNadeeshan  You didn't understand us correctly. The citation doesn't matter much, but the information given is wrong! It gives information from a wrong role.


Remove Office Hour Message Banner

Remove the June 2023 Office Hour message banner on Data Hub portal homepage.

Matt prefers to keep the banner on homepge to promote monthly office hour.


Question: how to enable vue devtools?

Hi,
Thanks for the great plugin, is working great!
I do however have a question. I'm creating a chrome extension with Vue but I would like to be able to debug a litter better by using the vue-devtools chrome extension. But I can't manage setting this up for some reason.
Any idea what I would be doing wrong?
I've changed my vite.config so it looks like this but that didn't help.
import VueDevTools from 'vite-plugin-vue-devtools'
import { defineConfig } from "vite"
import { getManifest } from "./src/manifest"
import path from "path"
import vue from "@vitejs/plugin-vue"
import webExtension from "@samrum/vite-plugin-web-extension"

// https://vitejs.dev/config/
export default defineConfig(() => {
  return {
    plugins: [
      VueDevTools(),
      vue(),
      webExtension({
        manifest: getManifest(),
      }),
    ],
    resolve: {
      alias: {
        "~": path.resolve(__dirname, "./src"),
      },
    },
  };
});

I don't know all of the specifics of what you'd need to do to set up it up fully, but you'd need to use the standalone version of the dev tools: https://devtools.vuejs.org/guide/installation.html#standalone

Closing this since it's more of a general extension question and not plugin related.


[gemini] init genimi individual directory

gemini should not belongingg to zero. I moved it out of zero directory.

#755

Can you resolve the conflicts?


Add appropriate casts to prevent build failure on MSVC with warning level 4 in 64bit mode.

Will be solved when merging https://github.com/mateidavid/zstr/pull/9/files


Fixed null palette (made optional in 1.3.5)

This commit fixes the now optional palette chunk, see official format change: https://github.com/aseprite/aseprite/commit/10dda30a15a58d09e561a59594f348b4db3a4405

Thank you for this contribution! Merged

Amazing, thank you!

I didn't know how to fix this and had compiled 1.3.4 locally just to workaround it. Thanks for fixing this!


Update auto-tls.md

Codecov Report

Merging #56 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master     #56   +/-   ##
======================================
  Coverage    4.00%   4.00%
======================================
  Files          13      13
  Lines         375     375
======================================
  Hits           15      15
  Misses        359     359
  Partials        1       1

Continue to review full report at Codecov.

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


Adding a Terrain Correction Raster Function

@jdrisdelle I've added a terrain correction raster function based on the C-Correction algorithm. This raster function will essentially remove hillshades from multispectral imagery.

Looks good @gbrunner


Log duration of nodestore reads. Include nodestore counters

in perf_log output.

High Level Overview of Change

Context of Change

Type of Change

[ ] 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)
[ ] Refactor (non-breaking change that only restructures code)
[ ] Tests (You added tests for code that already exists, or your new feature included in this PR)
[ ] Documentation Updates
[ ] Release

Incorporated into and superseded by #4059.


Add blanket implementation(s)

It would be nice to be able to insert and retrieve values more easily, therefore i propose to include a (extremly trivial) blanket implementation for ToMdbValue and/or FromMdbValue for everything that implements the serde Serialize and/or Deserialize trait using for examble bincode for serialisation.

Hm, I'm not really convinced it is worth the 3rd party dependencies. However, I could imagine this to be an optional feature.

How would lmdb-rs deal with the fact that serialization/deserialization can fail for some reason? Even today the FromMdbValue implementation for String (uses .unwrap()) and &str (might produce an invalid utf8 string) is problematic.
How difficult is to read such encoded data from other programming languages?

the reason im asking you to implement this over just doing it myself is because i literally can not do that. Rust disallows me to, because both Traits are from foreign crates.
Yes, as an optional, compile-time-enabled feature would be the right way to go, especially as currently both serde and rustc-serialize exist and support for both might be positive.

I would just panic. Im not quite sure how serialization could fail besides going out of memory, which is a crash in things like arrays, too. Deserialization could in fact fail, but you do not expect your database to contain corrupted data, thats just not something you are gona code for. External input, ok, but the database that you just wrote to now containing broken data, no.
That depends on which serialization is used. Maybe allowing two options there would be a good idea. Bincode for a space-efficient encoding, and json/some kind of slightly binarized json for interoperability. I do believe that the main use case for a local memory mapped key-value database is in fact using it with the same software.


Partially transient input: backward fill in time?

In GitLab by @Huite on Aug 22, 2019, 14:34
I've come across a situation where I have time dependent conductances for a river system.
Stages and bottom are fixed in time.
This currently results in somethin like this:
[riv]
    stage_p? = stage.idf
    cond_p2 = cond_20010101.idf

Stage will be set for all stress periods, or not? And will it crash, since no cond_p1 has been defined?
At any rate, I think it would be better to write in the runfile:
[riv]
    stage_p2:N = stage.idf
    cond_p2 = cond_20010101.idf
    cond_p3 = etc.

Where N is the number of stress periods. Seems minimally ambiguous.
The alternative is backward filling, but doesn't feel right (since forward fill is the default).
Also, I'm not quite sure what iMOD-wq will take, and what it won't!

In GitLab by @Huite on Aug 24, 2019, 13:22
Turns out imod-wq crashes when e.g. a well isn't present in the first stress period, but it is in the second.
(Makes sense, since it allocates at the start of the simulation.)
So an error should be raised if the input of a package starts at a later point than the simulation.

In GitLab by @Huite on Sep 3, 2019, 14:59
Addressed in da38fc5a3e8beb95caa296783c748ed7647076fb

In GitLab by @Huite on Sep 3, 2019, 14:59
closed


Adding toast screenshots

Reason for change
Adding VRT to the toast component for each alert type.
Examples of the test are visible here: https://happo.io/a/67/p/129/report/dev-4bd740f5e331dfdd210d#manifold-toast-text
Testing
This can be tested by running npm run happo dev locally.

Codecov Report

Merging #136 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #136   +/-   ##
=======================================
  Coverage   53.39%   53.39%
=======================================
  Files          30       30
  Lines         693      693
  Branches      156      156
=======================================
  Hits          370      370
  Misses        321      321
  Partials        2        2

Continue to review full report at Codecov.

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

Before seeing the suggestions this morning (😩 sorry) I added text to each of the screenshots (in case fonts change for some reason), but I ran into what I can only assume was async weirdness because each time I ran the test one or two of the toasts wouldn't be fully rendered. The current configuration with adding an asyncTimeout to the .happo.js had all of the toasts rendering. Have you experienced this Sam??
Also I do have prettier in my setup, I had originally had it formatting on save thanks to Drew I believe.. I'll take a look at that. I ran it locally and committed the results in the meantime.
And.. copy-pasta guilty. 😅

probably fine, but the bottom border seems to be cut off a bit in the screenshots.

I added my prettier linter to VSCode and src/components.d.ts saw some changes after I ran the linter on it - open to feedback about if that is good or not!

Thank you for the help David! Sam and I ended up needing to add a wrapper to get around the timeout problem, and I think it also fixed the line at the bottom. 👍

For components.d.ts, on one hand it might be no harm done, but probably preferable to avoid formatting changes to it. For my setup, I would only expect that to happen if I saved the file in my editor. Is that what happened in your case, or did something else cause it to format?
My guess is that it well reformat itself next time someone adds/removes/changes a component property. if it's easy to revert, go ahead and do it, but if not, I doubt it makes much difference. This PR does need a rebase though. Let me know if you need help with that at all. Great work!

Yeah what @sslotsky said—I’d recommend running npm run build on this PR, and committing the changes to src/components.d.ts


Feature Request: Order category by updated_date

Sorting a category by plugin updated date would be extremely useful such as the default sorting http://dev.bukkit.org/bukkit-plugins/?category=admin-tools. Sorting by slug is unreliable (slugs don't always match plugin names), and sorting by plugin name is just as unreliable with many names being blank. If this does already exist, and I've simply missed the documentation for such feature, please do let me know.

This is an old post thats been open for some time, but in the interest of closing it out, it was always documented.
http://bukget.org/documentation#categories-category-plugin-listing

Thanks Steve,
Unless I'm mistaken, the updated_date, or date(?) field is never appropriated, and therefore not available in the search. As far as I can tell, only the following fields are available in the response for such a request: 'slug', 'server', 'description', 'authors', 'categories', 'versions', 'plugin_name', as dictated by https://github.com/BukGet/generator/blob/master/bukgen/bukkit.py#L288.
Trying something like https://api.bukget.org/3/categories/bukkit/Admin%20Tools?fields=slug,plugin_name,description,versions&sort=-versions.date, which is the best I can come up with the documentation available, yields a invalid category error.
Am I missing the documentation for this, or is this simply not possible at this time?


Early fix implementation.

Must be tested by two people to confirm functionality.

Closes #9
Tested and works

tested and runs berry good 👍


Single getter paradigm seems too constraining

Sniffing around at flux implementations here. Hoverboard's ultra minimalist philosophy seems appealing, but onViewById/updateItem example seems like a not-great design. Would work in some cases but very confining.
Also, json serialize/deserialize seems a high to provide a read-only copy of the whole state. Could be avoided by letting users expose query functions. Advantages:

expose logical API (facade)
State is private. Clients should not know/care about its structure. Nor should it be tempting to return a writeable copy for perf reasons.
Perf/scaling - as 1000s of items are added, don't get hotspot in JSON code.

First, big thanks for taking the time to review Hoverboard and share your thoughts.
Regarding the JSON serialize/deserialize - I agree completely. The latest version 1.3.0 no longer does this. (See #2). Now state is mutable by default, and users can implement whatever mutation protection they prefer, if any. So it's easy to use serialization or Object.assign or something else. I haven't tested out using an immutability library yet but that should work as well.
About the larger concern you have with a single getter, I gave this some thought early on. I'd originally planned to allow defining any number of get* methods just like on* methods. I went with a single getter for a few reasons. I liked the simplicity, as you noted. I also felt that exposing methods with arguments and return values made it too easy to break out of the Flux single flow of data.
In some sense, I feel that even an ID being passed through to getById is data, it's coming from a user action of some sort. So it should go through the same dispatcher flow via an action. This allows something like an ItemView page to be agnostic about what the parameters are that fetched the item. Instead, the controller can pass the parameters (from the URL or whatever) on to the stores as data, and then get the state back from the stores as they respond to those parameters, and pass the results on to the view.
Ultimately, what I'm trying to achieve with the single getter is a simple API for pulling state out of the stores and passing it on to a view. I envisioned perhaps a store-per-view kind of setup, where the bottom-most store does a kind of map/reduce with other stores, generating the final object that can be passed on to the view as props, like so:
UserProfileStore.getState(function(userProfileState) {
   var el = React.createElement(UserProfile, userProfileState);
   React.render(el, document.body);
});

With the recent changes, you are now allowed to have functions in your state, so I suppose your state could be a model with getter functions on it. Perhaps that allows the flexibility you felt was lacking?
Looking forward to your thoughts.

Further to the last point, here's an example that is now possible with recent changes. You can now maintain a private state and expose multiple getters with an API via a custom getState method. It should allow for much more flexibility in how stores can expose and manage their state.
var store = Hoverboard({
    getState: function(state) {
        // return public state API with multiple getters
        return {
            getAll: function(){
                return state.list;
            },
            getById: function(id){
                return _.find(state.list, {id:id});
            }
        };
    },
    onList: function(list) {
        // notify state listeners something has changed
        this.setState({ list: list });
    }
});

store.list([ { id: 123, some: 'thing' } ]);

// can access the getter this way
var item = store.getState().getById(123);

// or this way
store.getState(function(state){
    var item = state.getById(123);
});

Thoughts?

Starring this email, will think through in the morning when have more brain power. Will also try to use it for real.. think I have a new project that'll work for it.

That's awesome, looking forward to it.

Interesting talk - https://www.youtube.com/watch?feature=player_embedded&v=xKlBivF4f44#t=3414..

think of store as being immutable
offer methods to read...query'ish API's / getByID etc. Might return calculated data.
Mutate via actions, controlled place. Actions are fire and forget.
Dispatcher can be command central, mediate multiple stores.
Lots of flux implementations/competing ideas. Pros and cons to each.
Interested in taking Flux patterns to native environments.

Interesting indeed, got me thinking about a few things.
At times I wonder if Hoverboard's merger of actions, dispatcher and stores could lead to problems, but I feel like that's a trade off that allows you to be more explicit about calling actions on particular stores and listening to store state directly instead of coordinating store responses via waitFor.
I originally wanted to simplify the assembly of async state and management of actions for my React components, and to aim for all the data entering my app as props, coming via some kind of state listener callback system. I decided I did want to use the Flux approach for this, but after reviewing a dozen implementations and being unsatisfied, I decided to write Hoverboard to achieve the single flow of data and state listeners but with a simpler API and approach.
Anyway, thanks for the link, I'm enjoying thinking this stuff through and holding Hoverboard up against any discussion of Flux to see where and how it fits in.


Not usable with client browsers of Firefox, Internet Explorer

When I try to access the scalabrad-web page using non-Chrome browsers (tried Firefox, Internet Explorer) with version -M1 from bintray, I get just a blank page. No login screen, nothing.

We have not worked at all to achieve cross-browser compatibility. Any reason you can't use chrome?

Just that I have a very strong preference toward Firefox (I like the easy access to Bookmarks, personalization).

PRs welcome :) My guess is that the problem is with html imports, but if you can provide some more info from firebug or the dev console that would help.

@joshmutus FWIW easy access to bookmarks is a configuration option away in Chrome. Same thing with personalization. Not saying you should switch, just that the impediments you've listed so far can be fixed with a couple Google searches.

Just tried playing with this a bit, and it looks like the problem is due to html imports being polyfilled in firefox. Here's what I see in the network log when running in prod mode:
GET  http://localhost:9000/ [HTTP/1.1 304 Not Modified 2ms]
GET  http://localhost:9000/styles/main.css [HTTP/1.1 304 Not Modified 3ms]
GET  http://localhost:9000/bower_components/webcomponentsjs/webcomponents-lite.js [HTTP/1.1 304 Not Modified 2ms]
GET  http://localhost:9000/scripts/bundle.js [HTTP/1.1 304 Not Modified 2ms]
mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create bundle.js:1221:5
ReferenceError: polymer is not defined bundle.js:16798:1
GET  XHR  http://localhost:9000/elements/elements.vulcanized.html [HTTP/1.1 304 Not Modified 2ms]
GET  https://fonts.googleapis.com/css [HTTP/2.0 200 OK 0ms]
GET  https://fonts.googleapis.com/css [HTTP/2.0 200 OK 0ms]

The problem seems to be that elements.vulcanized.html is being loaded asynchronously (via XHR) and so it gets parsed after the browser loads and runs bundle.js; since the polymer library is included in the html imports, it is not defined when bundle.js gets run, and the app fails to start.

I tried adding a simple html file so that both bundle.js and elements.html are loaded via html imports. This fixes the loading because the polyfill takes care of getting the loading order correct for both. However, there are a bunch of rendering bugs in firefox that will have to be looked into separately. The big one is that polymer dialogs seem not to work well. I'll make a PR with the loading changes and we can go from there.

+1 for firefox support.

If the only thing blocking cross-browser compatibility is use of HTML imports, fixing #331 should fix this as well.


Cleanup lock paths

We are using the lock recipe for millions of objects so we have to create a unique lock name for each object. Since the lock recipe does not delete the path this will mess up zookeeper after a short time.
My suggestion is to have an option to try to delete the path after the lock is released. This can lead to race conditions between ensure_path and the ephemeral node creation so have to do more changes to the recipe.
What do you guys think? Is there another way we can prevent messing up zookeeper with our millions of different locks?

It seems fine with me, wanna do a PR?

btw this might be obsoleted by #334, depending on if you want to support older versions of ZK.


Unblock static.klaviyo.com

Blocking static.klaviyo.com breaks product reviews and product questions in Shopify stores.
The domain is blocked by AdAway, which is unmaintained.
static.klaviyo.com doesn't serve trackers. Their tracker domain seems to be telemetrics.klaviyo.com instead.
No other blocklist that I could find is blocking static.klaviyo.com, so it feels like a false positive by AdAway.

Thank you for this Gustavo @Maronato.
 Closing.


Authentication should have a true silent way to check if a session exists for specified scopes

Today, when you run vscode.authentication.getSession('github', ['repo']); if you are not signed in already, you end up seeing:

which is annoying to the user. Your extension might not really care if a session can be acquired but just if one exists or not.
Codespaces wanted this to show/hide certain commands in the Command Palette.
LiveShare wanted to use this to determine if they should log you in with GitHub or Microsoft.
I'm curious if there are other scenarios where this would be useful. Let me know if you think so :)
cc @eamodio in case you have ideas

duplicate of https://github.com/microsoft/vscode/issues/136300


Add https support

1, Add https protocol  support.
2, Add statusCode in head results, make sure that application can check if download is success in "onEnd" event.

Looks good.


kubernetes: 1.4.5 -> 1.4.6

Motivation for this change
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[x] macOS
[x] Linux

[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Now i really have to finish nixos kubernetes modulr tests. Have you tried this update with nixos module?

I tested it on my one node cluster and I haven't noticed any issues so far.

Cool, tnx!
On Wed, Dec 7, 2016, 10:06 PM Pascal Bach<EMAIL_ADDRESS>wrote:

I tested it on my one node cluster and I haven't noticed any issues so far.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/20958#issuecomment-265573471, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAjvS_EMgQpLxWLMjDgN7ys2jH5aPfNTks5rFx_dgaJpZM4LGAQP
.


GetAndStoreTokens(...).CookieToken seems to always be null

From @NTaylorMullen on Wednesday, July 19, 2017 4:52:23 PM
Take the following example:
app.Run(async (context) =>
{
    var antiforgery = context.RequestServices.GetRequiredService<IAntiforgery>();

    // The token.CookieToken is always null
    await context.Response.WriteAsync("
Cookie Token: " + token.CookieToken + "

");
});

I'm not confident as to how many valid scenarios utilize the token.CookieToken but it's a blatant issue nevertheless.
Copied from original issue: aspnet/Antiforgery#152

From @NTaylorMullen on Thursday, July 20, 2017 12:25:43 PM
Did a deep investigation of this and the root cause of the issue Is that we always utilize newly created cookie tokens when creating our AntiforgeryTokenSet… This means that after the first request there’s no “new” cookie token and it therefore returns null.

Hi. Thanks for contacting us.
We're closing this issue as there was no much community interest in this ask for quite a while now.


Added support for external switch

I have added the ability to read the ext-switch state by boolean value, it is also selectable in the driver if the ext-switch should be active as well as reversed or not, just like it is possible to do in the webinterface of the shelly device.
For optimum results, please enable MakerAPI App in hubitat, add the shelly device. (this will enable live update of the external switch state in hubitat)
When you have the MakerAPI URL string for "refresh" of your shelly device, go into your shelly's webinterface --> I/O URL Actions --> EXTERNAL_SWITCH ON & EXTERNAL_SWITCH OFF and add the "refresh request url" (Should look something like the URL below) - add the same URL on both.
The below URL must be adjusted to what you get from the MakerAPI App
http://[HUBITAT-IP-ADDRESS]/apps/api/[API_ID]/devices/[DEVICEID]/refresh?access_token=6ff1de9c-bla-bla-bla

Merged and thank you!!!


Use _use* properties to determine "wants" and "has"

Extracted from https://github.com/jashkenas/backbone/pull/3443#discussion-diff-22830716

Groovy.

Fantastic. Thanks @jridgewell! :heart:


Ozone Read fails with StatusRunTimeExceptions after 2 datanode fail i…

…n Ratis pipeline
https://issues.apache.org/jira/browse/HDDS-1809
This issue is fixed by the code change in https://issues.apache.org/jira/browse/HDDS-1713.
Previously network topology use Ipaddress as the node key in topology cluster, which results that three sorted Datanodes are the same node.
Now datanode uuid is used as the node key in topology cluster, so sorted Datanodes will be three different nodes now.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
532
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+1
mvninstall
633
trunk passed

+1
compile
389
trunk passed

+1
checkstyle
65
trunk passed

+1
mvnsite
0
trunk passed

+1
shadedclient
848
branch has no errors when building and testing our client artifacts.

+1
javadoc
162
trunk passed

0
spotbugs
457
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
673
trunk passed

_ Patch Compile Tests _

+1
mvninstall
560
the patch passed

+1
compile
371
the patch passed

+1
javac
371
the patch passed

+1
checkstyle
68
the patch passed

+1
mvnsite
0
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedclient
671
patch has no errors when building and testing our client artifacts.

+1
javadoc
164
the patch passed

+1
findbugs
689
the patch passed

_ Other Tests _

+1
unit
303
hadoop-hdds in the patch passed.

-1
unit
1230
hadoop-ozone in the patch failed.

+1
asflicense
38
The patch does not generate ASF License warnings.

7562

Reason
Tests

Failed junit tests
hadoop.ozone.client.rpc.TestReadRetries

hadoop.ozone.web.client.TestKeysRatis

hadoop.ozone.web.client.TestKeys

hadoop.ozone.web.TestOzoneWebAccess

Subsystem
Report/Notes

Docker
Client=19.03.0 Server=19.03.0 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1143/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/1143

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux 87eeba2f473d 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / eb36b09

Default Java
1.8.0_212

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1143/1/artifact/out/patch-unit-hadoop-ozone.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1143/1/testReport/

Max. process+thread count
1780 (vs. ulimit of 5500)

modules
C: hadoop-ozone/integration-test U: hadoop-ozone/integration-test

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1143/1/console

versions
git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

Thanks @ChenSammi for working on this. The change just enables the read path with topology awareness feature enabled. Can we just close this issue as resolved with HDDS-1713 and open up a new jira to just enable the read with topology awareness feature on?
The actual change does not fix the problem as described. What do you think?

@bshashikant  Agree. I will open a new ticket and close this one.

Create a ticket for this code change.


Parasite AI 2

About the PR

Basically am making the parasites even more like cm with their AI.
Requires #4042
Current features:

[X] AI parasites cannibalize eachother if more than 2 are around eachother
[X] AI parasites can't be pulled
[X] Player parasites can't be picked up (and can escape pickups)
[X] Parasites can't be thrown by hand, and eggs can't be thrown at all
[X] AI Parasites die after 30 seconds if not carried by a carrier PARTIAL
[X] AI Parasites have forced Idle time after being picked up/dropped/removed from eggs/resinholes PARTIAL
[X] AI Parasites only go into eggs/resin holes/eggmorph (not yet) when about to die PARTIAL
[X] Leap and infect idles changed to 5 seconds exactly
[X] Chance to go idle after successful leaps/infects
[X] AI Parasites can successfully infect from leaps up to 3 tiles away
[X] Parasites die if they do 2 successful infects/leaps
[X] Idle time refreshes jumps
[X] Separate AI into dying and active compounds
[X] Xenos can examine AI parasites to know if they're active, idle, or dying
[ ] Parasites can join from carriers if over carrier's reserve
[X] Add doafter to placing eggs

Why / Balance

parity
Technical details

TODO
Media

Requirements

[X] I have read and I am following the Pull Request Guidelines. I understand that not doing so may get my pr closed at maintainer’s discretion
[ ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

no cl yet

Why do they cannibalize each other

All the non-carrier related features are done, just need the carrier PR itself now to finish up.

It's all done for the most part I think...whew. Carriers been bugfixed, game juice has been added. I think I covered all the bases I set out to (If something's missing it's cause I forgot about it). Carrier works, resin traps seem to work fine, parasites be parasiting.

Test fail is real for once
  Failed UninitializedSaveTest [22 s]
  Error Message:
   Prototype XenoResinHole modifies component on spawn: Physics. Modified yaml:
bodyType: Static


Get last timestamp for sensor

Ported a piece of TMPO code to the houseprint, it should be replaced as
soon as the last_timestamp method is pulled there.
Do sensor.last_timestamp() to get the end of the last TMPO-block that
is found for that sensor, or device.last_timestamp() to get the last timestamp for the device.
@WolfBerwouts I have also added a last_timestamp() method on the device level, so you can deal with inactive gas sensors by checking if their 'brothers and sisters' are also inactive or not.

Coverage decreased (-0.7%) to 68.795% when pulling 1b7a070069a2cffb1b8087610f71f4bdc84c1315 on JrtPec:get-last-timestamp-for-sensor into 2c695474e0b3bb6b19fb766eda315471f5fbe719 on opengridcc:develop.

Coverage decreased (-0.7%) to 68.795% when pulling 1b7a070069a2cffb1b8087610f71f4bdc84c1315 on JrtPec:get-last-timestamp-for-sensor into 2c695474e0b3bb6b19fb766eda315471f5fbe719 on opengridcc:develop.


fix: Add missing opening quote

And thank you for this tool!

@Hywan,
Thanks for having already signed the Contribution License Agreement. Your agreement has not been validated yet. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

thanks!


Error when validating Prisma.JsonValue

Issue with Prisma.JsonValue
Prisma has a JsonValue type, which is defined as below.
export declare type JsonValue = string | number | boolean | JsonObject | JsonArray | null;
export declare type JsonObject = {
    [Key in string]?: JsonValue;
};
export declare interface JsonArray extends Array<JsonValue> {}

Following to above definition, an array with primitive values still conforms to JsonValue.
So, arrays like [1, 2, 3], ['hello', 'world'] or [1, 'hello', true] are all valid JsonValue.
However, typia throws an error like this.
typia.validate<JsonArray>([1, 2, 3]);
{
  success: false,
  errors: [
    {
      path: '$input',
      expected: '(JsonArray | JsonObject | boolean | null | number | string)',
      value: [Array]
    }
  ],
  data: undefined
}

This is very weird, because when you make the same type as a type alias, this one passes like this.
type TJsonArray = Array<JsonValue>;
typia.validate<TJsonArray>([1, 2, 3]);

// or this also works
// typia.validate<Array<JsonValue>>([1, 2, 3]);

{ success: true, errors: [], data: [ 1, 2, 3 ] }

type TJsonArray = Array<JsonValue>; and interface IJsonArray extends Array<JsonValue> {} should be the same as long as I understand, and other library such as zod doesn't have the same issue. Or my zod implementation might be wrong.
So, it seems the way how typia uses interface and type alias is causing the issue.
Reproduction
I made a small reproduction project here.
change the DATABASE_URL in .env to yours, and run
$ pnpm install
$ pnpm migrate
$ pnpm dev

to start the project.
Then console will print things like this
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [NestFactory] Starting Nest application...
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [InstanceLoader] PrismaModule dependencies initialized +299ms
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [InstanceLoader] AppModule dependencies initialized +2ms
zod:: { success: true, data: [ 1, 'two', null ] }
typia:: {
  success: false,
  errors: [
    {
      path: '$input',
      expected: '(JsonArray | JsonObject | boolean | null | number | string)',
      value: [Array]
    }
  ],
  data: undefined
}
Array<JsonValue>:: { success: true, errors: [], data: [ 1, 'two', null ] }
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [InstanceLoader] UsersModule dependencies initialized +3ms
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [RoutesResolver] AppController {/}: +30ms
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [RouterExplorer] Mapped {/, GET} route +2ms
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [RoutesResolver] UsersController {/users}: +0ms
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [RouterExplorer] Mapped {/users, POST} route +0ms
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [RouterExplorer] Mapped {/users/:id, GET} route +0ms
[Nest] 75843  - 11/13/2023, 10:53:13 PM   DEBUG [PrismaService] Prisma connected
[Nest] 75843  - 11/13/2023, 10:53:13 PM     LOG [NestApplication] Nest application successfully started +1ms

some example codes with validating is in src/users/users.controller.ts.
about database connection and schema
It requires PostgreSQL because I want to ensure that Prisma and PostgreSQL does not take this as an issue. It's only typia related validations saying an array is not a valid JsonValue.
You can find this when sending an api request to POST /users. It will create a data in the database, but will throw validation error while serializing response body with Nestia.
Also, it doesn't look like pnpm issue related to node_modules structure. I tried with npm, or hoisted pnpm but it was the same.

Your type definition is invalid.
The JsonValue must be defined like below.
type JsonValue = string | number | boolean | JsonObject | JsonArray | null;
type JsonObject = {
    [Key in string]?: JsonValue;
};
type JsonArray = Array<JsonValue>;

At first, you've not to extends the Array type through the interface (interface JsonArray extends Array<JsonValue>.
The definition means that JsonArray is not an Array type, but an Object type which has length: number property and [n: number]: T accessor. Therefore, it would be considered to not Array, but some ArrayLike Object type. The reason why typia had reported you that [1, 2, 3] is invalid type also base on the fact. It's not a bug, but exactly spec.
If you define the JsonArray like above, then there will not be any problem.

I found that Prisma actually defined JsonArray type to extending the Array.
It is bug of Prisma, so I'll report issue about that.

Prisma issue had been delayed too much time.
Therefore, I did hard coded for this case.
Now, upgrade to v5.5.5, then be supported.


feat: Add postgresql support for OpenDAL

This PR will add postgresql support for OpenDAL.

OHHHHHHH, why? It doesn't make sense to add SQL support in OpenDAL!
You are right. OpenDAL is designed for accessing unstructured data like local fs and s3. And database like postgresql is not good for such use cases. But it doesn't mean we can't do this.
We can store some small (for example, 4KiB) data in database in quick and easy way! We don't need to worry about mysql, pg, clickhouse, xxxdb anymore: use opendal and write data.
Maybe, I'm not convinced and still believe it's useless.
That's Ok. OpenDAL's design makes sure that adding a new service like pg won't affect your existing features at all. Postgresql will under services-postgresql feature and only users who enable this feature will need those code.
So, What's the performance?
We don't know about it so far. This PR just a start, we will try to do some bench to have a general idea about it's perf.
What's next?
I will add integration test to make this service works. And than we can try to add MySQL, SurrealDB and other dbs.
My current interest is to add databend support so that I can run databend on databend (aha, this is really useless, but funny)!

It sounds a bit crazy, but why not :)

It's a  really really crazy idea

It's a really really crazy idea! Next, Maybe we need to build OpenDAL on SQLite!

Ok, let's expand OpenDAL to more open areas!


Failed to sign in the desired format

Hello, so im from mexico and we need to send an xml to some governant service, i manage to resolve mi issue with an other library xmlsec, but i prefer to use signxml but i have not been able to accomplish that.  with multiple test i thnik i know where the issue is, so im signing my xml with this code
` with open('key.pem', 'rb') as key_file:
private_key_data = key_file.read()
    private_key = serialization.load_pem_private_key(
        private_key_data,
        password=None,  # Add your passphrase if the key is encrypted
        backend=default_backend()
    )
    with open('cer.rec.pem', 'rb') as cert_file:
        certificate = cert_file.read()
    tree = ET.parse('path_to_xml.xml')
    root = tree.getroot()

    signer = XMLSigner(
        method=methods.enveloped,
        c14n_algorithm='http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments'
    )
    # signer.sign_alg = SignatureMethod('http://www.w3.org/2000/09/xmldsig#rsa-sha1')
    signer.namespaces = {None: namespaces.ds}

    # Pass the private key object and certificate bytes to the signer
    signed_xml = signer.sign(
        root,
        key=private_key,
        # cert=certificate,
        always_add_key_value=True,
    )
    # XMLVerifier().verify(signed_xml)

    final_signed_xml = etree.ElementTree(signed_xml)
    final_signed_xml.write('signed_xml.xml', encoding='UTF-8', xml_declaration=False)`

this works fine but has 2 problems  or maybe 1, the most important is because inside the tag transforms
<Transforms>                     <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />                     <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" />  </Transforms>
as you can see we have two items, if i send the xml with this two items the service just returns a status code 500, if i manually delete the secon transform item <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" /> now it can connect to the service but i dont know if this can affect the signing some hot, because i get a invalid signature error. now with xmlsec when it signs the xml it has this format

if i use a beautify tool to get format the service will also throw 500, so idk if the problem could be the format taht signxml is giving to me.
this is the format in signxml

basically after "sellado" is all in one line, i know this should not be the problem,  but eseems like the goubernament is very strict with the format,  and is just not working with signxml. so basically the answer is if:

there is a way to eliminate or set what is going to be inside "Transforms" tag
is there a way to format the xml taht signxml is siging, i have tried with pretty print but it has the same result.

thanks a lot

Hello, thanks for your interest in SignXML.
You can certainly subclass the XMLSigner class to define a custom behavior that does not add the Transform node with the Algorithm. Such a behavior would be non-standard and therefore would not be accepted into the SignXML library itself - but we do provide the tools to subclass and override the method that defines this behavior.
You can't manually delete the node yourself without doing this, because deleting the node invalidates the signature. The signing process itself has to be altered before the signature is finalized.
The second issue that you describe (that the signature is all in one line) is not relevant if your counterparty is compliant. If your counterparty requires pretty-printing (which is not compliant), that can also be added by subclassing and round-tripping the XML before signing: etree.tostring(etree.fromstring(etree.tostring(doc), pretty_print=True)), method='c14n').
I am going to close this issue for now since it does not appear to be a problem with SignXML. If you think otherwise, please describe the specific non-compliant behavior and we can reopen.

thanks a lot for your response, i will try that


Number of times played, year meta tag, & star sorting options

Adds:

custom year tag and sorting options for it
sorting options for star rating
sorting options for number of times played
file name & path to statistics page

⚠ new field 'timesPlayed' in the ImageElement 🥇
Will close #99
Will close #139

Once #138 lands I'll style up the year meta tag to be pretty 👌 (I'll be re-using styles from that branch) 💯

Sorry, been a tad busy! 👍 Feel free to merge to keep working, I can review after! 🙂 Should have some time this week!
Great work! 👌

No worries at all! I merged a PR just ahead of this one so I could work some more on the styling. It's going well 👍 Enjoy your weekend!


interpreter.start(state) executes state.actions

Bug or feature request?
Bug - maybe
Description:
When interpreter is restarted with previous state, state.actions are executed (without eventObj param) at restart.
import { Machine, State } from 'xstate'
import { interpret } from 'xstate/lib/interpreter'

const machine = Machine({
  initial: 'here',
  states: {
    here: {
      on: {
        move: {
          actions: ['lookAtAMap'],
          target: 'elsewhere',
        },
      },
    },
    elsewhere: {},
  },
})

const interpreter = interpret(
  machine.withConfig({
    actions: {
      lookAtAMap(ctx, evObj) {
        console.log('lookAtAMap', { evObj })
      },
    },
  })
)

console.log('start interpreter')
interpreter.start()
let state = interpreter.send('move')
// console.log => lookAtAMap { evObj: { type: 'move' } }
interpreter.stop()

console.log('restart interpreter')
interpreter.start(state)
// console.log => lookAtAMap { evObj: undefined }

(Bug) Expected result:
In my opinion (I'am not expert of statecharts) interpreter.start(state) should not react to state.actions.
(Bug) Actual result:
state.actions are executed on restart.
eventObj parameter is undefined on restart.
I've found a workaround with State.inert
...
console.log('restart interpreter')
interpreter.start(State.inert(state))

I feel like this is expected behavior, especially for the scenarios when initial states have actions that must be executed. @mogsie what do you think?
This is because interpreter.start(initialState) considers what's passed into it as the initial state, which must exhibit the on-entry-executing behavior.
But what we should probably consider instead is interpreter.pause() and interpreter.restart(). However, I don't think this is part of the SCXML specification or if it's even recommended functionality. If it seems okay, I would be fine adding it (interpreted statecharts would have their own internal state machines to represent this 😄 )
Another consideration: should we add an inert property to state instances? E.g.,
// restart
interpreter.start(state.inert);

Okay, let's go for the minimal change, since (unless I'm mistaken) your intention is:

Start the interpreter again from this state, but don't execute the actions again

And "this state, but don't execute the actions again" is the same as State.inert(state) which we can make state.inert.

The state.inert getter will be available in the next release.

this is expected behavior, especially for the scenarios when initial states have actions that must be executed.

I agree with you about the above and I'm trying to find a way to restore a state to the machine/interpreter with some actions "that must be executed".
My use case is that once an EVENT happens and the State transitions to another, the new State will want to use entry to execute actions and deal with the EVENT.
If I restart the interpreter with a saved state, my machine needs the EVENT to be executed in the entry, or the logic will not be expected anymore.
@davidkpiano Is there any way to fulfill the above use case with the latest XState?

this is expected behavior, especially for the scenarios when initial states have actions that must be executed.

I agree with you about the above and I'm trying to find a way to restore a state to the machine/interpreter with some actions "that must be executed".
My use case is that once an EVENT happens and the State transitions to another, the new State will want to use entry to execute actions and deal with the EVENT.
If I restart the interpreter with a saved state, my machine needs the EVENT to be executed in the entry, or the logic will not be expected anymore.
@davidkpiano Is there any way to fulfill the above use case with the latest XState?

Can you file this as a separate issue? It should be possible already.

@davidkpiano thank you very much for the reply, the new issue was created, appreciate you help!

Hello @davidkpiano , I am in the same situation as @amelon but with error handling. I am persisting my state between request front / back and when invoking service, if an error occured, my actions for logging error are executed (logError and tellErrorMessage) and I go to a "WaitingForInfo" state, it's fine.
But at the next request when I load my previous state and start the machine, the logging error actions are executed at the begining. Am I doing something wrong ? Are do I need to use the inert state too ?
Here is an extract of my machine.
Thank you in advance for your feedback.
         WaitingForInfo: {       on: {         MESSAGE: {           target: 'InfoCollected',         },       },     }, InfoCollected: {       invoke: {         src: 'extractInfo',         id: 'invoke-mgdk0',         onDone: [           {             target: 'requestAssistance',           },         ],         onError: {           target: 'WaitingForInfo',           actions: ['tellErrorMessage', 'logError'],         },       },     },

Hello @davidkpiano , I am in the same situation as @amelon but with error handling. I am persisting my state between request front / back and when invoking service, if an error occured, my actions for logging error are executed (logError and tellErrorMessage) and I go to a "WaitingForInfo" state, it's fine. But at the next request when I load my previous state and start the machine, the logging error actions are executed at the begining. Am I doing something wrong ? Are do I need to use the inert state too ? Here is an extract of my machine. Thank you in advance for your feedback.  WaitingForInfo: { on: { MESSAGE: { target: 'InfoCollected', }, }, }, InfoCollected: { invoke: { src: 'extractInfo', id: 'invoke-mgdk0', onDone: [ { target: 'requestAssistance', }, ], onError: { target: 'WaitingForInfo', actions: ['tellErrorMessage', 'logError'], }, }, },

In XState v4, make sure to delete state.actions.length = 0 before restoring.
In XState v5 beta, actions are not persisted (they shouldn't be; they already occurred), so you won't run into this problem.

OK thank you for your quick reply


Update translation on Flashlight action(Optional)

Your suggestion is applied and thanks for your patience!!

OK, merged! I updated F-DROID, but should take about a week for them to publish it. It is v11.1.
Thanks again for your help.


Error "macro in macro" When Accessing Compiler Defines Using Compiler.getVariable

Description:
When attempting to access compiler defines using Compiler.getDefine, I encounter an error: "macro in macro".
I need it to control various compilation options for example package name,
What is the recommended way to do it from reflaxe?

It's a little annoying, but you might need to wrap it with #if macro, that's what I do in Reflaxe/C++:
https://github.com/SomeRanDev/reflaxe.CPP/blob/0630b5824b5574e368d622c37588b70869d312af/src/cxxcompiler/CompilerInit.hx#L55

Fixed the issue and added 2 new defines.
My real isue was that I've been stupid and used Cmpiler.getDefine instead of  Context.definedValue, your link was in context in either case, and pinpointed where I was wrong.
Thank you


Only update Monitor on demand - feature request

Hi,  I like the monitor control but I am finding that important data is either being missed due to sampling rate or it's scrolled off.  What would help and provide additional functionality would be a way to change the sampling mode from auto to on-demand.
Maybe there is an official way I didn't notice, but have found I can do this in a hacky way, as follows:

set interval to 0 in monitor config
add values eg, pm.controller.controller.value.append(0.1)

Would adding an append member function to the MonitorBindingApi, to allow official usage in this way be possible?

I agree with you! Currently there is no official way to update a monitor manually, so I'll implement the feature later.

Maybe... can you do it by using refresh() of the monitor? this method manually fetches a bound value.
const pane = new Tweakpane();
const pm = pane.addMonitor(target, 'foo', {
  interval: 0,
});

pm.refresh();

Yes, that works.
Although having the ability to update with a supplied value is slightly more flexible than having to set the property value, which requires access to the base object.

having the ability to update with a supplied value is slightly more flexible than having to set the property value

I understand your use case, but monitor is for monitoring existing parameter values. Currently that is out of scope of Tweakpane.

Yes, of course.  I was using it as something which would be better described as a logger rather than a monitor.  I was also using it as monitor but adding in spike values to mark events in the trace.

I know that there is a certain demand for general purpose UI library. If it was something like addGraphView, it would be natural to have a method for pushing a specific value. But at least for now, I don't have a plan to add such a method.

So, in conclusion, if you'd like to update a monitor manually, change a bound value and run update(). Currently there is no plan to add a useful method for this case.
https://github.com/cocopon/tweakpane/issues/96#issuecomment-706505988
Feel free to reopen the issue if you still have a problem.


chore: Bump vault_autounseal lib version

I forgot the version bump in #550 :disappointed:
Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that validate the behaviour of the software
[ ] I validated that new and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

@ghislainbourgeois

There's nothing here, should we close this?

Mentioned in the description: I forgot the version bump in https://github.com/canonical/vault-k8s-operator/pull/550 😞

@ghislainbourgeois

There's nothing here, should we close this?

Mentioned in the description: I forgot the version bump in #550 😞

But I do not see a version bump in this one either, I see no changes at all.

@ghislainbourgeois

There's nothing here, should we close this?

Mentioned in the description: I forgot the version bump in #550 😞

But I do not see a version bump in this one either, I see no changes at all.

:laughing: it was bumped by another PR so there's no diff anymore. I guess you're right, it can be closed!


ListItem prop-type should be either String or Node, since it is supported.

Isn't it?
Thanks!

@TCMiranda which prop are you referring to?

@shaurya947 Sorry, "secondaryText" prop

@TCMiranda Isn't string considered as a node by react?

@oliviertassinari yes, see https://facebook.github.io/react/docs/reusable-components.html
@TCMiranda so what is your exact question? The current proptype is indeed node (how I think it should be)..

Oh i see..
I was receiving a propType warning, so I thought the problem was the String, but actually, one item of the the list I was rendering had a Boolean value, giving me the warning.
Thanks for the support! Regards,


"Invalid VC proof" troubleshoot help

Problem description

I need some input to troubleshoot this issue, when we mint the token  and got this error in guardian-service

 Invalid VC proof

where should i check data?
I am running the published docker image so I can add logs for troubleshoot.
what data will passed into 'RunAction' of MintBlock
Step to reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.

I found the way to troubleshoot this issue, we can close this


[Improvement] Improve project build guide

Why are the changes needed?

The build guide now is quite complex, I tried to simplify it.
Brief change log

Simplify project build guide.

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[X] Run test locally before making a pull request

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

Thanks for the review! @XBaith