Home env/Docker detection on windows

Since HOME is not defaultly set on windows, nvim running ollama.lua doesn't find HOME variable and it doesn't run.

The error showed is this one:

Good call: let me boot up my windows box and give this a spin - thanks for raising this issue!

Thank you to create this awesome plugin, if you like it i can make a pull request tomorrow with the fixes needed

I'm trying to come up with an explaination for which the plugin doesn't recognize docker either. But nothing for now:

Even if docker is for sure installed and tested on the same machine, running the same function in the lua playground works differently from running it inside init.lua

Thank you to create this awesome plugin, if you like it i can make a pull request tomorrow with the fixes needed

Of course! It's my pleasure!

I'm trying to come up with an explaination for which the plugin doesn't recognize docker

I should have some bandwidth this weekend to take a peek. My guess is the plugin runs in a different space that doesn't have the Docker executable in it's same runtime.


Not processing found block on yerbas coin ghostrider algo

[2023-12-06 17:04:34.7680] [I] [yerb] Daemon accepted block 405011 [bee6ac945efa016a4565a63dc89cbe5200d12b51f245d7a2a1dd3fe8aabe6f55] submitted by yhBodyyTbogdjZ7pZGF4ojJ3dtTgEGq5bP
https://kriptokyng.com/coin/yerbas?blockID=yerb&coinSymbol=YERB

Also not working on Yenten either algo yescrypt

rebuild it twice and still no change

Also not working on Yenten either algo yescrypt

all YTN founded blocks takes to much time to get confirmed I think it's something to do with the network it self


[5.3] Artisan without mandatory arguments should output usage

PR for Issue #11878
PR for Master instead of 5.2 #13804

Other than my minor comment, this looks pretty good. :+1:

Changed that

:+1:


feat: port RingTheory.PolynomialAlgebra

This is my first attempt at porting a file.  I fixed a few of the errors, but there are still two issues left.

This looks fine. I'd maintainer-merge it assuming it compiles (I just pushed a couple of minor changes to make the diff with the autoporter smaller)

bors merge


price breaks cannot be deleted

part pricing/price breaks cannot be deleted

ahwww, never mind, it works just fine. red 'block' should need a trashcan icon to make it more clear what it is.


[Error] NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

Page
https://registry.platformio.org/libraries/mbed-fwrawx/Rm3100/installation
Stack
at O (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:452211)
    at Suspense
    at div
    at div
    at Q (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:151845)
    at div
    at main
    at Y (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:154619)
    at F (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:451585)
    at P (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:606334)
    at O (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:452211)
    at B (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:451641)
    at b (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:443132)
    at https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:557424
    at L (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:605200)
    at I (https://cdn.registry.platformio.org/static/js/main.2fabc71c.js:2:606528)

What is your browser? Could you try to refresh page?


dynamic UI library

waits for #1 to be finished
the elevator has a very simple UI by default, which is ok for most cases, but maybe someone wants more or to build their own interface
to enable that we should:

move the current UI to a new library (elevator-default-ui ?)
add the library for the default UI to the config and load it via SCM
create a documentation (as part of this repository) on how to create a UI library / how it works

Will start that one after I am finished with the SCM Script

@ChristophLHR I've added the default UI library here.
I've also added minimal instructions. Feel free to add to it or ask if anything is unclear.
Before you work on this issue you should take a look at the known bugs and consider if those could be a problem for the UI development. If that's the case you can either resolve them yourself or tell me to prioritise them.

I've also added "UI Libraries" to the elevator README, please add your new library to it when it is finished, for visibility.


⚠ Bofrost.fr has degraded performance

In 533a02e, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1781 ms

Resolved: Bofrost.fr performance has improved in 526b307 after 6 minutes.


Bigquery Query Like  ORDER BY GROUP BY FORMAT_DATE count and subquery not working on bigquery emulator.

Hey @goccy
I have written one query regarding BIG QUERY Like the below for inserting data and fetching data
Whenever insert data it will work fine but when I tried to fetch data using group by or count or order by or using subquery it will not give me a proper record and it will give me error.
This is below code I tried.
type MockUsageEvent struct {
	Key       string `json:"key" binding:"required" conform:"trim"`
	Product   string `json:"product" conform:"trim"`
	Version   string `json:"version" conform:"trim"`
	Platform  string `json:"platform" conform:"trim"`
	Event     string `json:"event" binding:"required,oneofCI=activation" conform:"trim,lower"`
	InstallId string `json:"installid" conform:"trim"`
	Created   string `json:"created"`
}

func (i *MockUsageEvent) Save() (map[string]bigquery.Value, string, error) {
	return map[string]bigquery.Value{
		"key":       i.Key,
		"product":   i.Product,
		"version":   i.Version,
		"platform":  i.Platform,
		"event":     i.Event,
		"installid": i.InstallId,
		"created":   i.Created,
	}, bigquery.NoDedupeID, nil
}

ctx := context.Background()
	meta := &bigquery.DatasetMetadata{
		Location: "US", // See https://cloud.google.com/bigquery/docs/locations
	}
	if err := bigQueryClient.Dataset("dataset").Create(ctx, meta); err != nil {
		return
	}

	sampleSchema := bigquery.Schema{
		{Name: "key", Type: bigquery.StringFieldType},
		{Name: "product", Type: bigquery.StringFieldType},
		{Name: "version", Type: bigquery.StringFieldType},
		{Name: "platform", Type: bigquery.StringFieldType},
		{Name: "event", Type: bigquery.StringFieldType},
		{Name: "installid", Type: bigquery.StringFieldType},
		{Name: "created", Type: bigquery.StringFieldType},
	}

	metaData := &bigquery.TableMetadata{
		Schema:         sampleSchema,
		ExpirationTime: time.Now().Add(time.Duration(1*60) * time.Second), // Table will be automatically deleted in 1 day.
	}
	tableRef := bigQueryClient.Dataset("dataset").Table("table")

	if err := tableRef.Create(ctx, metaData); err != nil {
		return
	}

	inserter := bigQueryClient.Dataset("dataset").Table("table").Inserter()

	items := []*MockUsageEvent{
		{Key: "1bjCljWkq6tinyAMuu0tEAhB80", Product: "Phrased Flintstones0", Version: "Phrased Flintstones0", Platform: "Phrased Flintstones0", Event: "license-request", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB81", Product: "Phrased Flintstones1", Version: "Phrased Flintstones1", Platform: "Phrased Flintstones1", Event: "camera", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB82", Product: "Phrased Flintstones2", Version: "Phrased Flintstones2", Platform: "Phrased Flintstones2", Event: "activation", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB83", Product: "Phrased Flintstones3", Version: "Phrased Flintstones3", Platform: "Phrased Flintstones3", Event: "textsearch", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB84", Product: "Phrased Flintstones4", Version: "Phrased Flintstones4", Platform: "Phrased Flintstones4", Event: "barcode", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB85", Product: "Phrased Flintstones5", Version: "Phrased Flintstones5", Platform: "Phrased Flintstones5", Event: "ocr", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB86", Product: "Phrased Flintstones6", Version: "Phrased Flintstones6", Platform: "Phrased Flintstones6", Event: "fooddetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB87", Product: "Phrased Flintstones7", Version: "Phrased Flintstones7", Platform: "Phrased Flintstones7", Event: "classifications", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB88", Product: "Phrased Flintstones8", Version: "Phrased Flintstones8", Platform: "Phrased Flintstones8", Event: "customdetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones9", Platform: "Phrased Flintstones9", Event: "detectinimage", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones10", Platform: "Phrased Flintstones10", Event: "packagedfood", InstallId: "1", Created: "2022-10-11T17:31:39"},
	}

	if err := inserter.Put(ctx, items); err != nil {
		fmt.Println("err=>", err)
		return
	}

While I try to fetch the record using the below query it is not working
HERE THIS QUERY WILL NOT WORKING
SELECT yearMonth, count, key
			FROM (
					SELECT key, FORMAT_DATE('%Y-%m', PARSE_DATETIME('%Y-%m-%d %H:%M:%S', STRING(created))) AS yearMonth, count(distinct installid) as count
					FROM test.dataset.table
					WHERE created BETWEEN '2022-09-14' AND DATE_ADD(DATE '2022-10-14', INTERVAL 1 DAY)
						 AND installid IS NOT NULL AND length(installid) > 0
					GROUP BY key, yearMonth
					ORDER BY yearMonth
				) AS counts
		 WHERE key IN ("1bjCljWkq6tinyAMuu0tEAhB80","1bjCljWkq6tinyAMuu0tEAhB82","1bjCljWkq6tinyAMuu0tEAhB86") ORDER BY key

It will give me the error  panic: runtime error: invalid memory address or nil pointer dereference [recovered]
Whenever I run this SIMPLE query it will give me 11 records and its works fine but whenever I run the above query it would not work yet.
rows := bigQueryClient.Query(`
			SELECT *
			FROM ` + "`test.dataset.table`" + `
	`)

	it, err := rows.Read(ctx)
	fmt.Println("TOTAL ROWS COUNT", it.TotalRows)

// OUTPUT  : TOTAL ROWS COUNT 11
Please suggest me proper solution for the above query
Thank you @goccy

I wrote a test code and verified it, and the result is different from what you reported.
package server_test

import (
	"context"
	"fmt"
	"testing"
	"time"

	"cloud.google.com/go/bigquery"
	"github.com/goccy/bigquery-emulator/server"
	"github.com/goccy/bigquery-emulator/types"
	"google.golang.org/api/iterator"
	"google.golang.org/api/option"
)

type MockUsageEvent struct {
	Key       string `json:"key" binding:"required" conform:"trim"`
	Product   string `json:"product" conform:"trim"`
	Version   string `json:"version" conform:"trim"`
	Platform  string `json:"platform" conform:"trim"`
	Event     string `json:"event" binding:"required,oneofCI=activation" conform:"trim,lower"`
	InstallId string `json:"installid" conform:"trim"`
	Created   string `json:"created"`
}

func (i *MockUsageEvent) Save() (map[string]bigquery.Value, string, error) {
	return map[string]bigquery.Value{
		"key":       i.Key,
		"product":   i.Product,
		"version":   i.Version,
		"platform":  i.Platform,
		"event":     i.Event,
		"installid": i.InstallId,
		"created":   i.Created,
	}, bigquery.NoDedupeID, nil
}

func TestHoge(t *testing.T) {
	ctx := context.Background()

	bqServer, err := server.New(server.TempStorage)
	if err != nil {
		t.Fatal(err)
	}
	if err := bqServer.Load(server.StructSource(types.NewProject("test"))); err != nil {
		t.Fatal(err)
	}
	testServer := bqServer.TestServer()
	defer func() {
		testServer.Close()
		bqServer.Close()
	}()

	client, err := bigquery.NewClient(
		ctx,
		"test",
		option.WithEndpoint(testServer.URL),
		option.WithoutAuthentication(),
	)
	if err != nil {
		t.Fatal(err)
	}
	defer client.Close()

	meta := &bigquery.DatasetMetadata{
		Location: "US", // See https://cloud.google.com/bigquery/docs/locations
	}
	if err := client.Dataset("dataset").Create(ctx, meta); err != nil {
		t.Fatal(err)
	}

	sampleSchema := bigquery.Schema{
		{Name: "key", Type: bigquery.StringFieldType},
		{Name: "product", Type: bigquery.StringFieldType},
		{Name: "version", Type: bigquery.StringFieldType},
		{Name: "platform", Type: bigquery.StringFieldType},
		{Name: "event", Type: bigquery.StringFieldType},
		{Name: "installid", Type: bigquery.StringFieldType},
		{Name: "created", Type: bigquery.StringFieldType},
	}

	metaData := &bigquery.TableMetadata{
		Schema:         sampleSchema,
		ExpirationTime: time.Now().Add(time.Duration(1*60) * time.Second), // Table will be automatically deleted in 1 day.
	}
	tableRef := client.Dataset("dataset").Table("table")

	if err := tableRef.Create(ctx, metaData); err != nil {
		t.Fatal(err)
	}

	inserter := client.Dataset("dataset").Table("table").Inserter()

	items := []*MockUsageEvent{
		{Key: "1bjCljWkq6tinyAMuu0tEAhB80", Product: "Phrased Flintstones0", Version: "Phrased Flintstones0", Platform: "Phrased Flintstones0", Event: "license-request", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB81", Product: "Phrased Flintstones1", Version: "Phrased Flintstones1", Platform: "Phrased Flintstones1", Event: "camera", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB82", Product: "Phrased Flintstones2", Version: "Phrased Flintstones2", Platform: "Phrased Flintstones2", Event: "activation", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB83", Product: "Phrased Flintstones3", Version: "Phrased Flintstones3", Platform: "Phrased Flintstones3", Event: "textsearch", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB84", Product: "Phrased Flintstones4", Version: "Phrased Flintstones4", Platform: "Phrased Flintstones4", Event: "barcode", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB85", Product: "Phrased Flintstones5", Version: "Phrased Flintstones5", Platform: "Phrased Flintstones5", Event: "ocr", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB86", Product: "Phrased Flintstones6", Version: "Phrased Flintstones6", Platform: "Phrased Flintstones6", Event: "fooddetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB87", Product: "Phrased Flintstones7", Version: "Phrased Flintstones7", Platform: "Phrased Flintstones7", Event: "classifications", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB88", Product: "Phrased Flintstones8", Version: "Phrased Flintstones8", Platform: "Phrased Flintstones8", Event: "customdetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones9", Platform: "Phrased Flintstones9", Event: "detectinimage", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones10", Platform: "Phrased Flintstones10", Event: "packagedfood", InstallId: "1", Created: "2022-10-11T17:31:39"},
	}

	if err := inserter.Put(ctx, items); err != nil {
		t.Fatal(err)
	}

	query := `
	SELECT yearMonth, count, key
			FROM (
					SELECT key, FORMAT_DATE('%Y-%m', PARSE_DATETIME('%Y-%m-%d %H:%M:%S', STRING(created))) AS yearMonth, count(distinct installid) as count
					FROM test.dataset.table
					WHERE created BETWEEN '2022-09-14' AND DATE_ADD(DATE '2022-10-14', INTERVAL 1 DAY)
						 AND installid IS NOT NULL AND length(installid) > 0
					GROUP BY key, yearMonth
					ORDER BY yearMonth
				) AS counts
		 WHERE key IN ("1bjCljWkq6tinyAMuu0tEAhB80","1bjCljWkq6tinyAMuu0tEAhB82","1bjCljWkq6tinyAMuu0tEAhB86") ORDER BY key
`
	query2 := "SELECT * FROM `test.dataset.table`"
	_ = query2
	it, err := client.Query(query).Read(ctx)
	if err != nil {
		t.Fatal(err)
	}
	for {
		var row []bigquery.Value
		if err := it.Next(&row); err != nil {
			if err == iterator.Done {
				break
			}
			t.Fatal(err)
		}
		fmt.Println("row = ", row)
	}
	fmt.Println("TOTAL ROWS COUNT", it.TotalRows)
}

First, the result of executing query2 in the above test code is as follows. this seems to work as expected.
row =  [1bjCljWkq6tinyAMuu0tEAhB80 Phrased Flintstones0 Phrased Flintstones0 Phrased Flintstones0 license-request 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB81 Phrased Flintstones1 Phrased Flintstones1 Phrased Flintstones1 camera 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB82 Phrased Flintstones2 Phrased Flintstones2 Phrased Flintstones2 activation 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB83 Phrased Flintstones3 Phrased Flintstones3 Phrased Flintstones3 textsearch 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB84 Phrased Flintstones4 Phrased Flintstones4 Phrased Flintstones4 barcode 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB85 Phrased Flintstones5 Phrased Flintstones5 Phrased Flintstones5 ocr 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB86 Phrased Flintstones6 Phrased Flintstones6 Phrased Flintstones6 fooddetection 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB87 Phrased Flintstones7 Phrased Flintstones7 Phrased Flintstones7 classifications 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB88 Phrased Flintstones8 Phrased Flintstones8 Phrased Flintstones8 customdetection 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB89 Phrased Flintstones9 Phrased Flintstones9 Phrased Flintstones9 detectinimage 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB89 Phrased Flintstones9 Phrased Flintstones10 Phrased Flintstones10 packagedfood 1 2022-10-11T17:31:39]
TOTAL ROWS COUNT 11

Then I ran query . The result is as follows. This query has been marked as an invalid query by ZetaSQL Analyzer.
Did it work with BigQuery ?
googleapi: Error 400: INVALID_ARGUMENT: No matching signature for operator BETWEEN for argument types: STRING, STRING, DATE. Supported signatures: (INT64) BETWEEN (UINT64) AND (UINT64); (UINT64) BETWEEN (INT64) AND (UINT64); (UINT64) BETWEEN (UINT64) AND (INT64); (UINT64) BETWEEN (INT64) AND (INT64); (INT64) BETWEEN (UINT64) AND (INT64); (INT64) BETWEEN (INT64) AND (UINT64); (ANY) BETWEEN (ANY) AND (ANY) [at 6:55], jobInternalError

@goccy
Thanks for the quick response
Could you please try with a single query?
SELECT yearMonth, count, key
			FROM (
					SELECT key, FORMAT_DATE('%Y-%m', PARSE_DATETIME('%Y-%m-%d %H:%M:%S', STRING(created))) AS yearMonth, count(distinct installid) as count
					FROM test.dataset.table
					WHERE created BETWEEN '2022-09-14' AND DATE_ADD(DATE '2022-10-14', INTERVAL 1 DAY)
						 AND installid IS NOT NULL AND length(installid) > 0
					GROUP BY key, yearMonth
					ORDER BY yearMonth
				) AS counts
		 WHERE key IN ("1bjCljWkq6tinyAMuu0tEAhB80","1bjCljWkq6tinyAMuu0tEAhB82","1bjCljWkq6tinyAMuu0tEAhB86") ORDER BY key

Yes @goccy
It will work fine in bigquery
Currently, I am working on a big query test case so I tried your library big query emulator for the implementation of big query test cases (big query emulator)

@goccy
I am getting the below error could you please suggest me?
googleapi: Error 400: INVALID_ARGUMENT: Table not found: test [at 5:46], jobInternalError

Hi @Vikas-MI
Could you share how to new bigquery client with me? I'm stuck on create any dateset in my mock server. I always got some  error message like Post "http://<IP_ADDRESS>:55189/projects/test/datasets?alt=json&prettyPrint=false": EOF

I wrote a test code and verified it, and the result is different from what you reported.
package server_test

import (
	"context"
	"fmt"
	"testing"
	"time"

	"cloud.google.com/go/bigquery"
	"github.com/goccy/bigquery-emulator/server"
	"github.com/goccy/bigquery-emulator/types"
	"google.golang.org/api/iterator"
	"google.golang.org/api/option"
)

type MockUsageEvent struct {
	Key       string `json:"key" binding:"required" conform:"trim"`
	Product   string `json:"product" conform:"trim"`
	Version   string `json:"version" conform:"trim"`
	Platform  string `json:"platform" conform:"trim"`
	Event     string `json:"event" binding:"required,oneofCI=activation" conform:"trim,lower"`
	InstallId string `json:"installid" conform:"trim"`
	Created   string `json:"created"`
}

func (i *MockUsageEvent) Save() (map[string]bigquery.Value, string, error) {
	return map[string]bigquery.Value{
		"key":       i.Key,
		"product":   i.Product,
		"version":   i.Version,
		"platform":  i.Platform,
		"event":     i.Event,
		"installid": i.InstallId,
		"created":   i.Created,
	}, bigquery.NoDedupeID, nil
}

func TestHoge(t *testing.T) {
	ctx := context.Background()

	bqServer, err := server.New(server.TempStorage)
	if err != nil {
		t.Fatal(err)
	}
	if err := bqServer.Load(server.StructSource(types.NewProject("test"))); err != nil {
		t.Fatal(err)
	}
	testServer := bqServer.TestServer()
	defer func() {
		testServer.Close()
		bqServer.Close()
	}()

	client, err := bigquery.NewClient(
		ctx,
		"test",
		option.WithEndpoint(testServer.URL),
		option.WithoutAuthentication(),
	)
	if err != nil {
		t.Fatal(err)
	}
	defer client.Close()

	meta := &bigquery.DatasetMetadata{
		Location: "US", // See https://cloud.google.com/bigquery/docs/locations
	}
	if err := client.Dataset("dataset").Create(ctx, meta); err != nil {
		t.Fatal(err)
	}

	sampleSchema := bigquery.Schema{
		{Name: "key", Type: bigquery.StringFieldType},
		{Name: "product", Type: bigquery.StringFieldType},
		{Name: "version", Type: bigquery.StringFieldType},
		{Name: "platform", Type: bigquery.StringFieldType},
		{Name: "event", Type: bigquery.StringFieldType},
		{Name: "installid", Type: bigquery.StringFieldType},
		{Name: "created", Type: bigquery.StringFieldType},
	}

	metaData := &bigquery.TableMetadata{
		Schema:         sampleSchema,
		ExpirationTime: time.Now().Add(time.Duration(1*60) * time.Second), // Table will be automatically deleted in 1 day.
	}
	tableRef := client.Dataset("dataset").Table("table")

	if err := tableRef.Create(ctx, metaData); err != nil {
		t.Fatal(err)
	}

	inserter := client.Dataset("dataset").Table("table").Inserter()

	items := []*MockUsageEvent{
		{Key: "1bjCljWkq6tinyAMuu0tEAhB80", Product: "Phrased Flintstones0", Version: "Phrased Flintstones0", Platform: "Phrased Flintstones0", Event: "license-request", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB81", Product: "Phrased Flintstones1", Version: "Phrased Flintstones1", Platform: "Phrased Flintstones1", Event: "camera", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB82", Product: "Phrased Flintstones2", Version: "Phrased Flintstones2", Platform: "Phrased Flintstones2", Event: "activation", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB83", Product: "Phrased Flintstones3", Version: "Phrased Flintstones3", Platform: "Phrased Flintstones3", Event: "textsearch", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB84", Product: "Phrased Flintstones4", Version: "Phrased Flintstones4", Platform: "Phrased Flintstones4", Event: "barcode", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB85", Product: "Phrased Flintstones5", Version: "Phrased Flintstones5", Platform: "Phrased Flintstones5", Event: "ocr", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB86", Product: "Phrased Flintstones6", Version: "Phrased Flintstones6", Platform: "Phrased Flintstones6", Event: "fooddetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB87", Product: "Phrased Flintstones7", Version: "Phrased Flintstones7", Platform: "Phrased Flintstones7", Event: "classifications", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB88", Product: "Phrased Flintstones8", Version: "Phrased Flintstones8", Platform: "Phrased Flintstones8", Event: "customdetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones9", Platform: "Phrased Flintstones9", Event: "detectinimage", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones10", Platform: "Phrased Flintstones10", Event: "packagedfood", InstallId: "1", Created: "2022-10-11T17:31:39"},
	}

	if err := inserter.Put(ctx, items); err != nil {
		t.Fatal(err)
	}

	query := `
	SELECT yearMonth, count, key
			FROM (
					SELECT key, FORMAT_DATE('%Y-%m', PARSE_DATETIME('%Y-%m-%d %H:%M:%S', STRING(created))) AS yearMonth, count(distinct installid) as count
					FROM test.dataset.table
					WHERE created BETWEEN '2022-09-14' AND DATE_ADD(DATE '2022-10-14', INTERVAL 1 DAY)
						 AND installid IS NOT NULL AND length(installid) > 0
					GROUP BY key, yearMonth
					ORDER BY yearMonth
				) AS counts
		 WHERE key IN ("1bjCljWkq6tinyAMuu0tEAhB80","1bjCljWkq6tinyAMuu0tEAhB82","1bjCljWkq6tinyAMuu0tEAhB86") ORDER BY key
`
	query2 := "SELECT * FROM `test.dataset.table`"
	_ = query2
	it, err := client.Query(query).Read(ctx)
	if err != nil {
		t.Fatal(err)
	}
	for {
		var row []bigquery.Value
		if err := it.Next(&row); err != nil {
			if err == iterator.Done {
				break
			}
			t.Fatal(err)
		}
		fmt.Println("row = ", row)
	}
	fmt.Println("TOTAL ROWS COUNT", it.TotalRows)
}

First, the result of executing query2 in the above test code is as follows. this seems to work as expected.
row =  [1bjCljWkq6tinyAMuu0tEAhB80 Phrased Flintstones0 Phrased Flintstones0 Phrased Flintstones0 license-request 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB81 Phrased Flintstones1 Phrased Flintstones1 Phrased Flintstones1 camera 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB82 Phrased Flintstones2 Phrased Flintstones2 Phrased Flintstones2 activation 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB83 Phrased Flintstones3 Phrased Flintstones3 Phrased Flintstones3 textsearch 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB84 Phrased Flintstones4 Phrased Flintstones4 Phrased Flintstones4 barcode 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB85 Phrased Flintstones5 Phrased Flintstones5 Phrased Flintstones5 ocr 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB86 Phrased Flintstones6 Phrased Flintstones6 Phrased Flintstones6 fooddetection 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB87 Phrased Flintstones7 Phrased Flintstones7 Phrased Flintstones7 classifications 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB88 Phrased Flintstones8 Phrased Flintstones8 Phrased Flintstones8 customdetection 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB89 Phrased Flintstones9 Phrased Flintstones9 Phrased Flintstones9 detectinimage 1 2022-10-11T17:31:39]
row =  [1bjCljWkq6tinyAMuu0tEAhB89 Phrased Flintstones9 Phrased Flintstones10 Phrased Flintstones10 packagedfood 1 2022-10-11T17:31:39]
TOTAL ROWS COUNT 11

Then I ran query . The result is as follows. This query has been marked as an invalid query by ZetaSQL Analyzer. Did it work with BigQuery ?
googleapi: Error 400: INVALID_ARGUMENT: No matching signature for operator BETWEEN for argument types: STRING, STRING, DATE. Supported signatures: (INT64) BETWEEN (UINT64) AND (UINT64); (UINT64) BETWEEN (INT64) AND (UINT64); (UINT64) BETWEEN (UINT64) AND (INT64); (UINT64) BETWEEN (INT64) AND (INT64); (INT64) BETWEEN (UINT64) AND (INT64); (INT64) BETWEEN (INT64) AND (UINT64); (ANY) BETWEEN (ANY) AND (ANY) [at 6:55], jobInternalError

Hi @goccy
Yes I get exactly the same error as you getting
Could you please suggest to me the proper solution for it?
googleapi: Error 400: INVALID_ARGUMENT: No matching signature for operator BETWEEN for argument types: STRING, STRING, DATE. Supported signatures: (INT64) BETWEEN (UINT64) AND (UINT64); (UINT64) BETWEEN (INT64) AND (UINT64); (UINT64) BETWEEN (UINT64) AND (INT64); (UINT64) BETWEEN (INT64) AND (INT64); (INT64) BETWEEN (UINT64) AND (INT64); (INT64) BETWEEN (INT64) AND (UINT64); (ANY) BETWEEN (ANY) AND (ANY) [at 6:55], jobInternalError

Hi @goccy
Could you please help me out with this query solution?
Because I am also getting the same error as you getting
googleapi: Error 400: INVALID_ARGUMENT: No matching signature for operator BETWEEN for argument types: STRING, STRING, DATE. Supported signatures: (INT64) BETWEEN (UINT64) AND (UINT64); (UINT64) BETWEEN (INT64) AND (UINT64); (UINT64) BETWEEN (UINT64) AND (INT64); (UINT64) BETWEEN (INT64) AND (INT64); (INT64) BETWEEN (UINT64) AND (INT64); (INT64) BETWEEN (INT64) AND (UINT64); (ANY) BETWEEN (ANY) AND (ANY) [at 6:47], jobInternalError

After correcting the casting process for PARSE_DATETIME argument and created which is the argument of BETWEEN, the error is gone, but I found that the converted query fails due to a bug in go-zetasqlite.
I'm currently working on fixing that.
	query := `
	SELECT yearMonth, count, key
			FROM (
					SELECT key, FORMAT_DATE('%Y-%m', PARSE_DATETIME('%Y-%m-%d %H:%M:%S', created)) AS yearMonth, count(distinct installid) as count
					FROM test.dataset.table
					WHERE DATE(created) BETWEEN DATE '2022-09-14' AND DATE_ADD(DATE '2022-10-14', INTERVAL 1 DAY)
					GROUP BY key, yearMonth
					ORDER BY yearMonth
				) AS counts
		 WHERE key IN ("1bjCljWkq6tinyAMuu0tEAhB80","1bjCljWkq6tinyAMuu0tEAhB82","1bjCljWkq6tinyAMuu0tEAhB86") ORDER BY key
`

Hey @goccy
Yes Thank you so much for your response
Currently, I get this below error like
googleapi: Error 400: failed to parse statements: failed to parse statement: INVALID_ARGUMENT: Syntax error: Illegal input character "%" [type.googleapis.com/zetasql.ErrorLocation='\x08\x04\x10Y'], jobInternalError

@Vikas-MI Based on the error, I would guess that your code is most likely incorrect, so please paste the code you are verifying as is here.

After correcting the casting process for PARSE_DATETIME argument and created which is the argument of BETWEEN, the error is gone, but I found that the converted query fails due to a bug in go-zetasqlite. I'm currently working on fixing that.
	query := `
	SELECT yearMonth, count, key
			FROM (
					SELECT key, FORMAT_DATE('%Y-%m', PARSE_DATETIME('%Y-%m-%d %H:%M:%S', created)) AS yearMonth, count(distinct installid) as count
					FROM test.dataset.table
					WHERE DATE(created) BETWEEN DATE '2022-09-14' AND DATE_ADD(DATE '2022-10-14', INTERVAL 1 DAY)
					GROUP BY key, yearMonth
					ORDER BY yearMonth
				) AS counts
		 WHERE key IN ("1bjCljWkq6tinyAMuu0tEAhB80","1bjCljWkq6tinyAMuu0tEAhB82","1bjCljWkq6tinyAMuu0tEAhB86") ORDER BY key
`

Hey
@goccy
Could you please send me the error which you are getting in this query?

I confirmed this problem was fixed with #67 .
Test code is here. ( put to server directory )
package server_test

import (
	"context"
	"fmt"
	"testing"
	"time"

	"cloud.google.com/go/bigquery"
	"github.com/goccy/bigquery-emulator/server"
	"github.com/goccy/bigquery-emulator/types"
	"google.golang.org/api/iterator"
	"google.golang.org/api/option"
)

type MockUsageEvent struct {
	Key       string `json:"key" binding:"required" conform:"trim"`
	Product   string `json:"product" conform:"trim"`
	Version   string `json:"version" conform:"trim"`
	Platform  string `json:"platform" conform:"trim"`
	Event     string `json:"event" binding:"required,oneofCI=activation" conform:"trim,lower"`
	InstallId string `json:"installid" conform:"trim"`
	Created   string `json:"created"`
}

func (i *MockUsageEvent) Save() (map[string]bigquery.Value, string, error) {
	return map[string]bigquery.Value{
		"key":       i.Key,
		"product":   i.Product,
		"version":   i.Version,
		"platform":  i.Platform,
		"event":     i.Event,
		"installid": i.InstallId,
		"created":   i.Created,
	}, bigquery.NoDedupeID, nil
}

func TestIssue59(t *testing.T) {
	ctx := context.Background()

	bqServer, err := server.New(server.TempStorage)
	if err != nil {
		t.Fatal(err)
	}
	if err := bqServer.Load(server.StructSource(types.NewProject("test"))); err != nil {
		t.Fatal(err)
	}
	testServer := bqServer.TestServer()
	defer func() {
		testServer.Close()
		bqServer.Close()
	}()

	client, err := bigquery.NewClient(
		ctx,
		"test",
		option.WithEndpoint(testServer.URL),
		option.WithoutAuthentication(),
	)
	if err != nil {
		t.Fatal(err)
	}
	defer client.Close()

	meta := &bigquery.DatasetMetadata{
		Location: "US", // See https://cloud.google.com/bigquery/docs/locations
	}
	if err := client.Dataset("dataset").Create(ctx, meta); err != nil {
		t.Fatal(err)
	}

	sampleSchema := bigquery.Schema{
		{Name: "key", Type: bigquery.StringFieldType},
		{Name: "product", Type: bigquery.StringFieldType},
		{Name: "version", Type: bigquery.StringFieldType},
		{Name: "platform", Type: bigquery.StringFieldType},
		{Name: "event", Type: bigquery.StringFieldType},
		{Name: "installid", Type: bigquery.StringFieldType},
		{Name: "created", Type: bigquery.StringFieldType},
	}

	metaData := &bigquery.TableMetadata{
		Schema:         sampleSchema,
		ExpirationTime: time.Now().Add(time.Duration(1*60) * time.Second), // Table will be automatically deleted in 1 day.
	}
	tableRef := client.Dataset("dataset").Table("table")

	if err := tableRef.Create(ctx, metaData); err != nil {
		t.Fatal(err)
	}

	inserter := client.Dataset("dataset").Table("table").Inserter()

	items := []*MockUsageEvent{
		{Key: "1bjCljWkq6tinyAMuu0tEAhB80", Product: "Phrased Flintstones0", Version: "Phrased Flintstones0", Platform: "Phrased Flintstones0", Event: "license-request", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB81", Product: "Phrased Flintstones1", Version: "Phrased Flintstones1", Platform: "Phrased Flintstones1", Event: "camera", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB82", Product: "Phrased Flintstones2", Version: "Phrased Flintstones2", Platform: "Phrased Flintstones2", Event: "activation", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB83", Product: "Phrased Flintstones3", Version: "Phrased Flintstones3", Platform: "Phrased Flintstones3", Event: "textsearch", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB84", Product: "Phrased Flintstones4", Version: "Phrased Flintstones4", Platform: "Phrased Flintstones4", Event: "barcode", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB85", Product: "Phrased Flintstones5", Version: "Phrased Flintstones5", Platform: "Phrased Flintstones5", Event: "ocr", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB86", Product: "Phrased Flintstones6", Version: "Phrased Flintstones6", Platform: "Phrased Flintstones6", Event: "fooddetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB87", Product: "Phrased Flintstones7", Version: "Phrased Flintstones7", Platform: "Phrased Flintstones7", Event: "classifications", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB88", Product: "Phrased Flintstones8", Version: "Phrased Flintstones8", Platform: "Phrased Flintstones8", Event: "customdetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones9", Platform: "Phrased Flintstones9", Event: "detectinimage", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones10", Platform: "Phrased Flintstones10", Event: "packagedfood", InstallId: "1", Created: "2022-10-11T17:31:39"},
	}

	if err := inserter.Put(ctx, items); err != nil {
		t.Fatal(err)
	}

	query := `
	SELECT yearMonth, count, key
			FROM (
					SELECT key, FORMAT_DATE('%Y-%m', PARSE_DATETIME('%Y-%m-%d %H:%M:%S', created)) AS yearMonth, count(distinct installid) as count
					FROM test.dataset.table
					WHERE DATE(created) BETWEEN DATE '2022-09-14' AND DATE_ADD(DATE '2022-10-14', INTERVAL 1 DAY)
					GROUP BY key, yearMonth
					ORDER BY yearMonth
				) AS counts
		 WHERE key IN ("1bjCljWkq6tinyAMuu0tEAhB80","1bjCljWkq6tinyAMuu0tEAhB82","1bjCljWkq6tinyAMuu0tEAhB86") ORDER BY key
`
	it, err := client.Query(query).Read(ctx)
	if err != nil {
		t.Fatal(err)
	}
	for {
		var row []bigquery.Value
		if err := it.Next(&row); err != nil {
			if err == iterator.Done {
				break
			}
			t.Fatal(err)
		}
		fmt.Println("row = ", row)
	}
	fmt.Println("TOTAL ROWS COUNT", it.TotalRows)
}

go test -v ./server -run TestIssue59

@Vikas-MI
I released v0.1.20 to fix this problem.
Could you please confirm the above test code ?

I will close this once. If you still have problems, let me know.

@goccy Thank you for your quick response
But after scanning the result I get this below error could you please look at this issue?
error => googleapi: Error 404: dataset anonymous is not found, notFound

I've never encountered that error, so I need the complete code to reproduce.

@goccy
This is my code

type uses struct {
	id *uuid.UUID `json:"id"`
	Name       string     `json:"name"`
	Lid  *uuid.UUID `json:"lid"`
	Key        string     `json:"key"`
	YearMonth  string     `json:"year_month"`
	Count      int        `json:"count"`
}

var rows *bigquery.RowIterator

rows, err := bigQueryClient.Query(query).Read(ctx)

        fmt.Println("rows", rows)
	var usesList []*model.uses

	for {
		uses := model.uses{}

		err := rows.Next(&uses)
		if err == iterator.Done {
			break
		}
		if err != nil {
			fmt.Println("err", err)
			return nil, fmt.Errorf("error reading list Data. Err: %v", err)
		}
		usesList = append(usesList, &uses)
	}
	return usesList, nil

@goccy Could you please run this above code in your editor and could you please let me know if you are getting any errors or not?

The code you provided is incomplete so I can't try it.

Hey @goccy let me share you full code.

The code you're providing is incomplete Go code. Please paste here the complete code that works just by pasting it into the editor. Otherwise I cannot investigate.

package server_test

import (
	"context"
	"fmt"
	"testing"
	"time"

	"cloud.google.com/go/bigquery"
	"github.com/goccy/bigquery-emulator/server"
	"github.com/goccy/bigquery-emulator/types"
	"google.golang.org/api/iterator"
	"google.golang.org/api/option"
)

type uses struct {
	id *uuid.UUID `json:"id"`
	Name       string     `json:"name"`
	Lid        *uuid.UUID `json:"lid"`
	Key        string     `json:"key"`
	YearMonth  string     `json:"year_month"`
	Count      int        `json:"count"`
}

type MockUsageEvent struct {
	Key       string `json:"key" binding:"required" conform:"trim"`
	Product   string `json:"product" conform:"trim"`
	Version   string `json:"version" conform:"trim"`
	Platform  string `json:"platform" conform:"trim"`
	Event     string `json:"event" binding:"required,oneofCI=activation" conform:"trim,lower"`
	InstallId string `json:"installid" conform:"trim"`
	Created   string `json:"created"`
}

func (i *MockUsageEvent) Save() (map[string]bigquery.Value, string, error) {
	return map[string]bigquery.Value{
		"key":       i.Key,
		"product":   i.Product,
		"version":   i.Version,
		"platform":  i.Platform,
		"event":     i.Event,
		"installid": i.InstallId,
		"created":   i.Created,
	}, bigquery.NoDedupeID, nil
}

func TestIssue59(t *testing.T) {
	ctx := context.Background()

	bqServer, err := server.New(server.TempStorage)
	if err != nil {
		t.Fatal(err)
	}
	if err := bqServer.Load(server.StructSource(types.NewProject("test"))); err != nil {
		t.Fatal(err)
	}
	testServer := bqServer.TestServer()
	defer func() {
		testServer.Close()
		bqServer.Close()
	}()

	client, err := bigquery.NewClient(
		ctx,
		"test",
		option.WithEndpoint(testServer.URL),
		option.WithoutAuthentication(),
	)
	if err != nil {
		t.Fatal(err)
	}
	defer client.Close()

	meta := &bigquery.DatasetMetadata{
		Location: "US", // See https://cloud.google.com/bigquery/docs/locations
	}
	if err := client.Dataset("dataset").Create(ctx, meta); err != nil {
		t.Fatal(err)
	}

	sampleSchema := bigquery.Schema{
		{Name: "key", Type: bigquery.StringFieldType},
		{Name: "product", Type: bigquery.StringFieldType},
		{Name: "version", Type: bigquery.StringFieldType},
		{Name: "platform", Type: bigquery.StringFieldType},
		{Name: "event", Type: bigquery.StringFieldType},
		{Name: "installid", Type: bigquery.StringFieldType},
		{Name: "created", Type: bigquery.StringFieldType},
	}

	metaData := &bigquery.TableMetadata{
		Schema:         sampleSchema,
		ExpirationTime: time.Now().Add(time.Duration(1*60) * time.Second), // Table will be automatically deleted in 1 day.
	}
	tableRef := client.Dataset("dataset").Table("table")

	if err := tableRef.Create(ctx, metaData); err != nil {
		t.Fatal(err)
	}

	inserter := client.Dataset("dataset").Table("table").Inserter()

	items := []*MockUsageEvent{
		{Key: "1bjCljWkq6tinyAMuu0tEAhB80", Product: "Phrased Flintstones0", Version: "Phrased Flintstones0", Platform: "Phrased Flintstones0", Event: "license-request", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB81", Product: "Phrased Flintstones1", Version: "Phrased Flintstones1", Platform: "Phrased Flintstones1", Event: "camera", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB82", Product: "Phrased Flintstones2", Version: "Phrased Flintstones2", Platform: "Phrased Flintstones2", Event: "activation", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB83", Product: "Phrased Flintstones3", Version: "Phrased Flintstones3", Platform: "Phrased Flintstones3", Event: "textsearch", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB84", Product: "Phrased Flintstones4", Version: "Phrased Flintstones4", Platform: "Phrased Flintstones4", Event: "barcode", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB85", Product: "Phrased Flintstones5", Version: "Phrased Flintstones5", Platform: "Phrased Flintstones5", Event: "ocr", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB86", Product: "Phrased Flintstones6", Version: "Phrased Flintstones6", Platform: "Phrased Flintstones6", Event: "fooddetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB87", Product: "Phrased Flintstones7", Version: "Phrased Flintstones7", Platform: "Phrased Flintstones7", Event: "classifications", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB88", Product: "Phrased Flintstones8", Version: "Phrased Flintstones8", Platform: "Phrased Flintstones8", Event: "customdetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones9", Platform: "Phrased Flintstones9", Event: "detectinimage", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones10", Platform: "Phrased Flintstones10", Event: "packagedfood", InstallId: "1", Created: "2022-10-11T17:31:39"},
	}

	if err := inserter.Put(ctx, items); err != nil {
		t.Fatal(err)
	}

	query := `
	SELECT yearMonth, count, key
			FROM (
					SELECT key, FORMAT_DATE('%Y-%m', PARSE_DATETIME('%Y-%m-%d %H:%M:%S', created)) AS yearMonth, count(distinct installid) as count
					FROM test.dataset.table
					WHERE DATE(created) BETWEEN DATE '2022-09-14' AND DATE_ADD(DATE '2022-10-14', INTERVAL 1 DAY)
					GROUP BY key, yearMonth
					ORDER BY yearMonth
				) AS counts
		 WHERE key IN ("1bjCljWkq6tinyAMuu0tEAhB80","1bjCljWkq6tinyAMuu0tEAhB82","1bjCljWkq6tinyAMuu0tEAhB86") ORDER BY key
`

        var rows *bigquery.RowIterator
	rows, err := client.Query(query).Read(ctx)
	if err != nil {
		t.Fatal(err)
	}
        fmt.Println("rows", rows)
	var usesList []*model.uses

	for {
		uses := model.uses{}

		err := rows.Next(&uses)
		if err == iterator.Done {
			break
		}
		if err != nil {
			fmt.Println("err", err)
                         //================================================================

                         //HERE I AM GETTING googleapi: Error 404: dataset anonymous is not found, notFound

                         //================================================================
			return nil, fmt.Errorf("error reading list Data. Err: %v", err)
		}
		usesList = append(usesList, &uses)
	}
	return usesList, nil
}

Thank you so much for your quick response
I have update the updated code here could you please check it again ? @goccy

Did you run this test code even once ? Go compiler can't compile this test code.
I'm sorry, but I will not investigate if you do not give me a code that I can compile next time, because the way you have been asking me to investigate in the past has not been good.

Okay @goccy sure.

The your pasted code is invalid at this time. Support will be finished.
https://github.com/goccy/bigquery-emulator/issues/59#issuecomment-1301960304

package main

import (
	"context"
	"fmt"
	"github.com/gofrs/uuid"
	"testing"
	"time"

	"cloud.google.com/go/bigquery"
	"github.com/goccy/bigquery-emulator/server"
	"github.com/goccy/bigquery-emulator/types"
	"google.golang.org/api/iterator"
	"google.golang.org/api/option"
)

type uses struct {
	id        *uuid.UUID `json:"id"`
	Name      string     `json:"name"`
	Lid       *uuid.UUID `json:"lid"`
	Key       string     `json:"key"`
	YearMonth string     `json:"year_month"`
	Count     int        `json:"count"`
}

type MockUsageEvent struct {
	Key       string `json:"key" binding:"required" conform:"trim"`
	Product   string `json:"product" conform:"trim"`
	Version   string `json:"version" conform:"trim"`
	Platform  string `json:"platform" conform:"trim"`
	Event     string `json:"event" binding:"required,oneofCI=activation" conform:"trim,lower"`
	InstallId string `json:"installid" conform:"trim"`
	Created   string `json:"created"`
}

func (i *MockUsageEvent) Save() (map[string]bigquery.Value, string, error) {
	return map[string]bigquery.Value{
		"key":       i.Key,
		"product":   i.Product,
		"version":   i.Version,
		"platform":  i.Platform,
		"event":     i.Event,
		"installid": i.InstallId,
		"created":   i.Created,
	}, bigquery.NoDedupeID, nil
}

func TestIssue59(t *testing.T) {
	ctx := context.Background()

	bqServer, err := server.New(server.TempStorage)
	if err != nil {
		t.Fatal(err)
	}
	if err := bqServer.Load(server.StructSource(types.NewProject("test"))); err != nil {
		t.Fatal(err)
	}
	testServer := bqServer.TestServer()
	defer func() {
		testServer.Close()
		bqServer.Close()
	}()

	client, err := bigquery.NewClient(
		ctx,
		"test",
		option.WithEndpoint(testServer.URL),
		option.WithoutAuthentication(),
	)
	if err != nil {
		t.Fatal(err)
	}
	defer client.Close()

	meta := &bigquery.DatasetMetadata{
		Location: "US", // See https://cloud.google.com/bigquery/docs/locations
	}
	if err := client.Dataset("dataset").Create(ctx, meta); err != nil {
		t.Fatal(err)
	}

	sampleSchema := bigquery.Schema{
		{Name: "key", Type: bigquery.StringFieldType},
		{Name: "product", Type: bigquery.StringFieldType},
		{Name: "version", Type: bigquery.StringFieldType},
		{Name: "platform", Type: bigquery.StringFieldType},
		{Name: "event", Type: bigquery.StringFieldType},
		{Name: "installid", Type: bigquery.StringFieldType},
		{Name: "created", Type: bigquery.StringFieldType},
	}

	metaData := &bigquery.TableMetadata{
		Schema:         sampleSchema,
		ExpirationTime: time.Now().Add(time.Duration(1*60) * time.Second), // Table will be automatically deleted in 1 day.
	}
	tableRef := client.Dataset("dataset").Table("table")

	if err := tableRef.Create(ctx, metaData); err != nil {
		t.Fatal(err)
	}

	inserter := client.Dataset("dataset").Table("table").Inserter()

	items := []*MockUsageEvent{
		{Key: "1bjCljWkq6tinyAMuu0tEAhB80", Product: "Phrased Flintstones0", Version: "Phrased Flintstones0", Platform: "Phrased Flintstones0", Event: "license-request", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB81", Product: "Phrased Flintstones1", Version: "Phrased Flintstones1", Platform: "Phrased Flintstones1", Event: "camera", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB82", Product: "Phrased Flintstones2", Version: "Phrased Flintstones2", Platform: "Phrased Flintstones2", Event: "activation", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB83", Product: "Phrased Flintstones3", Version: "Phrased Flintstones3", Platform: "Phrased Flintstones3", Event: "textsearch", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB84", Product: "Phrased Flintstones4", Version: "Phrased Flintstones4", Platform: "Phrased Flintstones4", Event: "barcode", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB85", Product: "Phrased Flintstones5", Version: "Phrased Flintstones5", Platform: "Phrased Flintstones5", Event: "ocr", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB86", Product: "Phrased Flintstones6", Version: "Phrased Flintstones6", Platform: "Phrased Flintstones6", Event: "fooddetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB87", Product: "Phrased Flintstones7", Version: "Phrased Flintstones7", Platform: "Phrased Flintstones7", Event: "classifications", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB88", Product: "Phrased Flintstones8", Version: "Phrased Flintstones8", Platform: "Phrased Flintstones8", Event: "customdetection", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones9", Platform: "Phrased Flintstones9", Event: "detectinimage", InstallId: "1", Created: "2022-10-11T17:31:39"},
		{Key: "1bjCljWkq6tinyAMuu0tEAhB89", Product: "Phrased Flintstones9", Version: "Phrased Flintstones10", Platform: "Phrased Flintstones10", Event: "packagedfood", InstallId: "1", Created: "2022-10-11T17:31:39"},
	}

	if err := inserter.Put(ctx, items); err != nil {
		t.Fatal(err)
	}

	query := `
	SELECT yearMonth, count, key
			FROM (
					SELECT key, FORMAT_DATE('%Y-%m', PARSE_DATETIME('%Y-%m-%d %H:%M:%S', created)) AS yearMonth, count(distinct installid) as count
					FROM test.dataset.table
					WHERE DATE(created) BETWEEN DATE '2022-09-14' AND DATE_ADD(DATE '2022-10-14', INTERVAL 1 DAY)
					GROUP BY key, yearMonth
					ORDER BY yearMonth
				) AS counts
		 WHERE key IN ("1bjCljWkq6tinyAMuu0tEAhB80","1bjCljWkq6tinyAMuu0tEAhB82","1bjCljWkq6tinyAMuu0tEAhB86") ORDER BY key
`

	var rows *bigquery.RowIterator
	rows, err = client.Query(query).Read(ctx)
	if err != nil {
		t.Fatal(err)
	}
	//var rows *bigquery.RowIterator

	//rows, err := bigQueryClient.Query(query).Read(ctx)

	if err != nil {
		return
	}
	fmt.Println("rows", rows.TotalRows)

	usesss, err := scanTestWithoutSize(rows)

	fmt.Println("usesss", usesss)

	return
}

func scanTestWithoutSize(rows *bigquery.RowIterator) ([]*uses, error) {
	fmt.Println("rows", rows)
	var usesList []*uses

	for {
		uses := uses{}

		err := rows.Next(&uses)
		if err == iterator.Done {
			break
		}
		if err != nil {
			fmt.Println("err", err)
			return nil, fmt.Errorf("error reading report Data. Err: %v", err)
		}
		usesList = append(usesList, &uses)
	}
	return usesList, nil
}

The your pasted code is invalid at this time. Support will be finished. #59 (comment)
@goccy
I am setting up the code that's why it will take some time to format the code.

Thank you so much @goccy
it's working !!!!!! :)


Test Collection Slow

Describe the bug
We have a fairly large set of tests in Effect-TS, we progressively witnessed increasing slowness in tests and for a while we blindly imputed the reason to be the growing system. After taking a closer look we realized that the collection phase started to take ages and that our tests were running at the same speed as before. After rolling back to 0.14.2 we gained a speedup of about 35/40% in total test time, the perf starts to progressively deteriorate in 0.15 with a big cliff in 0.18.

vs

Reproduction
The issue gets worse as the number of tests grows, clone https://github.com/Effect-TS/core and run yarn && yarn build-all && yarn test
System Info
Multiple, tested on Mac M1, Linux (github actions), Windows WSL2

Used Package Manager
yarn
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Very interesting. We're considering moving to Vitest but performance is still an issue.

In your case the problem is maxConcurrency introduced in 0.15.0 (release). Before that we didn't have a cap. Increase the value and your tests will once again run faster.


M2 Crud Model: Inspection info: invocation parameter types are not compatible with declared

pestle magento2:generate:crud-model
Which module? (Pulsestorm_HelloGenerate)] Namespace_Module
What model name? (Thing)] Thing
Creating: /[..]/app/code/Namespace/Module/Api/ThingRepositoryInterface.php
Creating: /[..]/app/code/Namespace/Module/Model/ThingRepository.php
Creating: /[..]/app/code/Namespace/Module/Api/Data/ThingInterface.php
Creating: /[..]/app/code/Namespace/Module/Model/ResourceModel/Thing/Collection.php
Creating: /[..]/app/code/Namespace/Module/Model/ResourceModel/Thing.php
Creating: /[..]/app/code/Namespace/Module/Model/Thing.php
Creating: /[..]/app/code/Namespace/Module/Setup/InstallSchema.php
Creating: /[..]/app/code/Namespace/Module/Setup/InstallData.php

I fixed all the issues detected by phpcs / phpmd (using Magento 2 provided rulesets) like code style, missing phpdocs and other easy to fix stuff, but I have two remaining warnings in the file : /[..]/app/code/Namespace/Module/Model/ThingRepository.php
In the save and delete methods when calling respectively :
$this->objectResourceModel->save($object);
or
$this->objectResourceModel->delete($object);
Warning on $object :
Expected \Magento\Framework\Model\AbstractModel, got \Namespace\Module\Api\Data\ThingInterface
Inspection info: invocation parameter types are not compatible with declared

@sallaberry  Thank you!
Three quick questions

What version of Magento are you running against?
Does this only happen with the changes you made, or is it a problem with the current version of pestle.phar as well?
Do you have you changes in a branch somewhere where I could look at them?

Magento 2.3.1
Yes it happens without my changes
I forked the repo and worked on a special branch if that's what you wanted : https://github.com/sallaberry/pestle/tree/%23476-Crud_Improvements

sigh -- sounds like Magento's tightened-up/change their interface/contract assumptions in 2.3.1
@sallaberry Were you planning on submitting a PR for you phpcs / phpmd changes?  If so, what would you be easier

You submit your PR, we confirm it works with older versions of Magento, and then I (or we?) attack the problem of making sure the model's passed to the repository are able to pass all their type hint checks

First I (or we?) attack the problem of making sure the model's passed to the repository are able to pass all their type hint checks, and then once we figure that out we make it work with what you've got on your branch?

Sounds good, it should still work even though I had to edit some functions in Pulsestorm\Cli\Code_Generation

I'll open the PR right now

It appears the warning actually come from one of PhpStorm basic php rules, not from the official ruleset.
It also complains about SortOrder being undefined in the same file ( Model/Repository.php ).
Maybe we can ignore the warnings but PhpStorm is usually right so I'm not sure...

@sallaberry  A few more questions

I think I may have misunderstood -- I thought the warning you were still seeing were generated via PHP.  It sounds like you're saying that they're coming from ??some-system?? used by PHP Storm itself?

Which Magento coding standards are you applying?  Link/composer package?

I'm sorry if I wasn't clear enough, this is just an inspection problem.
The warnings appears directly in my IDE Phpstorm which comes with his own coding standards, but if you install phpcs globally, you can point Phpstorm to the phpcs binary and use it directly from Phpstorm. (I use squizlabs/php_codesniffer installed globally)
I configured phpcs inside phpstorm to use a ruleset located in dev/tests/static/framework/Magento/ruleset.xml and phpmd to use dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml
Now if there's something wrong in my code and the warning comes from phpcs or phpmd, the error message is prefixed with 'phpcs:' or 'phpmd:'. It's not the case with the two messages I have. I'm sorry I didn't notice that earlier.
Inside Phpstorm native code inspection configuration, I can disable specific rules, set their warning level etc. If I disable the rule: Type Compatibility > Parameter Type (Invocation parameter types are not compatible with declared.) then the warning on ->save($object) disappears. What I find weird is Phpstorm usually doesn't complain for nothing and I always had this rule on.


Updated the version of the UWP projects

#14 Updated the UWP project versions

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: darenm sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for your contribution


Update wallet default limit

What would you like?
Update wallet default transaction limit, follow up to valora-inc/wallet#1315,
Why is this needed?
In case firebase is disabled, the default should be higher.

Closing in backlog spring clean May 2022

@kathaypacific @ellenwoconnor should we reopen this and update the default daily limit?


Computed decorators do not work with Babel 5.1.13

The calling code is the following:
var MyComponent = Ember.Component.extend({
  layout: layout,
  tagName: 'h4',

  key: 'my-key',

  @computed('key')
  test(key) {
    return `${key} + computed`;
  }

});

With Ember 1.12.0-beta.1 I see this error: ember.debug.js:41940 Uncaught TypeError: unsupported content. Looks like Ember tries to render the test function as the content.
Worked before I updated Babel (was using 5.1.8) but I am not sure whether it's a problem of the code in this repo or of the Babel.

same here, ember 1.12 beta and babel 5, this doesn't work

Just tried again, the babel-core version being used by ember-cli-babel/broccoli-babel-transpiler is 5.2.16, but the computed still doesn't run

i'll look.

Works now with:
npm:babel-core 5.4.2
npm:babel-runtime 5.4.2


user is not redirect to after  sign path on updating 2fa setting

not sure if this a bug ? but once user has successfully set his 2fa setting he should be redirect to some page but currentlysetting page is shown and there is way to get out of it until you manually changes url.

@williamatodd

@aki1221 I'll take a look at this tomorrow morning.

@aki1221 are you saying that you're expecting a controller-level redirect that is not occurring?
This is intended behavior which can be overridden on a case-by-case basis by copying the controller to the application, see https://github.com/williamatodd/devise-2fa/blob/master/app/controllers/devise/tokens_controller.rb#L28
I'm going to close this as it's not a bug.  If you'd like to submit a pull request with an override function for redirects, I'll consider merging it if it's accompanied by robust test cases.


Update development troubleshooting docs

This change removes the warning in LocalFileStorage under packaging/services.py, and updates the documentation as described in ticket #4309.

This was fixed in https://github.com/pypa/warehouse/pull/4360, sorry @asfaltboy!

Sorry, missed that there were docs changes here too. Could you revise this to leave the warning in place?

Sure thing, bit later though, right now I'm stuck boarding my flight
On Sat, Jul 28, 2018, 15:46 Dustin Ingram<EMAIL_ADDRESS>wrote:

Sorry, missed that there were docs changes here too. Could you revise this
to leave the warning in place?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pypa/warehouse/pull/4366#issuecomment-408612686, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AATn8CYDUbHVE52U1AtWSYC0sQOCf1Bdks5uLHk8gaJpZM4Vk_7O
.

I've rebased over latest master, to resolve conflicts, and removed the changes in packaging/services.py. I'm about to take off, please let me know if there's anything else to address in this commit.
On an unrelated note, one of the other contributors, using linux, had trouble running make initdb while the containers were up. The error was something about postgresql refusing to drop the database while a connection was still open. This we fixed by simply ctrl+c-ing out of the make serve command and running make initdb again. Perhaps we should update the docs to reflect this scenario as well?

Thanks! ✨


RuntimeError: NetCDF: HDF error

What happened?
I am reading the era5 nc data and extracting the values by latitude and longitude.
My code worked fine for 8 hours but then suddenly it broke. Here is the error message.
I'm guessing its an error related to the threads?
What did you expect to happen?
No response
Minimal Complete Verifiable Example
No response
MVCE confirmation

[ ] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray.
[ ] Complete example — the example is self-contained, including all data and the text of any traceback.
[ ] Verifiable example — the example copy & pastes into an IPython prompt or Binder notebook, returning the result.
[ ] New issue — a search of GitHub Issues suggests this is not a duplicate.

Relevant log output
RemoteTraceback:
"""
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\multiprocessing\pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "D:\project\assimilation\fun_tools.py", line 54, in cell_assimilation
    result = run_ensemble(observations, longitude, latitude)
  File "D:\project\assimilation\enkf.py", line 142, in run_ensemble
    enkf.setup_wofost()
  File "D:\project\assimilation\enkf.py", line 48, in setup_wofost
    self.weather_db = NCWeatherDataProvider(self.longitude, self.latitude)
  File "D:\project\assimilation\ncweatherdataprovider.py", line 56, in __init__
    self._read_observations()
  File "D:\project\assimilation\ncweatherdataprovider.py", line 105, in _read_observations
    value = pnt[varname.replace("-","_")].values[0]
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\core\dataarray.py", line 642, in values
    return self.variable.values
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\core\variable.py", line 512, in values
    return _as_array_or_item(self._data)
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\core\variable.py", line 252, in _as_array_or_item
    data = np.asarray(data)
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\core\indexing.py", line 552, in __array__
    self._ensure_cached()
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\core\indexing.py", line 549, in _ensure_cached
    self.array = NumpyIndexingAdapter(np.asarray(self.array))
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\core\indexing.py", line 522, in __array__
    return np.asarray(self.array, dtype=dtype)
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\core\indexing.py", line 423, in __array__
    return np.asarray(array[self.key], dtype=None)
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\coding\variables.py", line 70, in __array__
    return self.func(self.array)
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\coding\variables.py", line 137, in _apply_mask
    data = np.asarray(data, dtype=dtype)
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\core\indexing.py", line 423, in __array__
    return np.asarray(array[self.key], dtype=None)
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\backends\netCDF4_.py", line 93, in __getitem__
    return indexing.explicit_indexing_adapter(
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\core\indexing.py", line 712, in explicit_indexing_adapter
    result = raw_indexing_method(raw_key.tuple)
  File "C:\ProgramData\Anaconda3\lib\site-packages\xarray\backends\netCDF4_.py", line 106, in _getitem
    array = getitem(original_array, key)
  File "src\netCDF4\_netCDF4.pyx", line 4406, in netCDF4._netCDF4.Variable.__getitem__
  File "src\netCDF4\_netCDF4.pyx", line 5350, in netCDF4._netCDF4.Variable._get
  File "src\netCDF4\_netCDF4.pyx", line 1927, in netCDF4._netCDF4._ensure_nc_success
RuntimeError: NetCDF: HDF error
"""

Anything else we need to know?
My code is not easily simplified so it may not be reproducible, the last time I ran the code it was an error after 5 hours of normal work.
first: 53%|█████▎    | 952/1803 [5:32:09<4:56:55, 20.93s/it]
second:  78%|███████▊  | 1408/1803 [8:02:31<2:15:22, 20.56s/it]
The error is the same
Environment

commit: None
python: 3.8.12 (default, Oct 12 2021, 03:01:40) [MSC v.1916 64 bit (AMD64)]
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 140 Stepping 1, GenuineIntel
byteorder: little
LC_ALL: None
LANG: zh_CN.UTF8
LOCALE: ('Chinese (Simplified)_China', '936')
libhdf5: 1.12.1
libnetcdf: 4.8.1
xarray: 2022.3.0
pandas: 1.3.5
numpy: 1.22.3
scipy: 1.7.3
netCDF4: 1.5.8
pydap: None
h5netcdf: 1.0.1
h5py: 3.7.0
Nio: None
zarr: None
cftime: <IP_ADDRESS>
nc_time_axis: None
PseudoNetCDF: None
rasterio: 1.2.10
cfgrib: None
iris: None
bottleneck: 1.3.4
dask: 2022.6.1
distributed: 2022.6.1
matplotlib: 3.5.1
cartopy: 0.20.1
seaborn: 0.11.2
numbagg: None
fsspec: 2022.3.0
cupy: None
pint: None
sparse: None
setuptools: 61.2.0
pip: 21.2.2
conda: 4.13.0
pytest: 7.1.2
IPython: 7.31.1
sphinx: 4.4.0

Are you reading from a file on disk or on the network?
In general, HDF Error indicates a corrupt file or a network problem.

Closing for now.
Seems like an upstream issue.
Feel free to reopen if it is still relevant.


TypeError: Cannot read property 'length' of null

Installing this plugin and attempting to edit an entity with a rich text field causes this error:
TypeError: Cannot read property 'length' of null
    at e (http://localhost:1337/admin/main.b97a0402.chunk.js:1:2632541)

I took a quick look through the codebase and can't find where .length is being used.

May I know which strapi version are you using?

Strapi v3.6.1, Node v14.16.1
Now that you mention it, it might be the node version. I'll try it.


Support for multiple storms consumers not showing lag details for other consumers

Support for multiple storms consumers #158 is able to detect lag for other consumers configured under multiple "zookeeper-path", but the Consumer Group Status (/v2/kafka/(cluster)/consumer/(group)/lag) does not show lag details for other zookeeper paths.
[storm "local"]
..
zookeeper-path=/storm-cluster1
zookeeper-path=/storm-cluster2
Here, if the other storm consumer /storm-cluster2 is lagging but the Consumer Group Status always shows the lag details for first consumer /storm-cluster1, even though the first consumer is not lagging. The alert emails are also generated but with the offsets of first consumer.

This sounds like an issue of group name collisions between two different storm clusters reading from the same Kafka cluster. In the existing code, there's not a good way to resolve it - consumers are associated with the Kafka cluster, so you're going to get unpredictable results when there are two with the same name in the same cluster.
In in burrow-1.0 rewrite, I'll think on this and see if we can come up with a reasonable way to resolve it.

So looking at this again, I'm going to close it out. Given the way Burrow works (even in 1.0), the consumer groups are assigned to a cluster, so there's an expectation that the group name is unique for the Kafka cluster. This means that if you have 2 storm clusters that each have a group with an identical name, you'll have problems. This is expected, and not something that will be supported at this time.


Can't find version 3.0 of 'Microsoft.AspNetCore.Mvc'

Hello,
I'm trying to upgrade one of my many class libraries that was used by a Asp.Net Core 2.2 project.
The class library has 'Microsoft.AspNetCore.Mvc' version 2.2 as dependency. Now we are trying to upgrade all the projects using .net core 3.0, net standard 2.1 and asp.net core.
Unfortunately, I can't find many of the Microsoft.AspNetCore packages for the 3.0 version. Am I missing anything?

In 3.0, the way a core set of AspNetCore packages is reference changed to only need Microsoft.AspNetCore.App and Microsoft.AspNetCore.All to simplify a number of difficulties around keeping up with dependencies. You should be able to see how this is wired together by spinning a new mvc app (dotnet new mvc) using the 3.0.100 SDK.
/cc @anurse in case I'm saying something misleading.

@leculver, I got you. So in as 3.0, we  only need Microsoft.AspNet.App  (.all is no longer used).

In .NET Core 3.0, the packages moved to the new "FrameworkReference" concept. So instead of referencing individual packages, you reference the ASP.NET Core framework in your library, like this:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>

That includes most of the Microsoft.AspNetCore.* components. Some are still external, for things like Redis integration and Newtonsoft.Json support. Those have 3.0 versions on NuGet.org you can reference.

Microsoft.AspNetCore.App version 3.0+ is no longer shipped as a nuget meta package but a framework included in the sdk. So there is no such "entire package" and you don't need to worry about it.

Thank you!!

@anurse , @AlseinX  that means that if I have a .netStandard2.0 project with Microsoft.AspNetCore.Mvc now I have to migrate that project to a .netcoreapp3.0 then add the FrameworkReference "Microsoft.AspNetCore.App". Am I correct?

that means that if I have a .netStandard2.0 project with Microsoft.AspNetCore.Mvc now I have to migrate that project to a .netcoreapp3.0 then add the FrameworkReference "Microsoft.AspNetCore.App". Am I correct?

This is correct. ASP.NET Core 3.0 requires .NET Core 3.0. See https://github.com/aspnet/Announcements/issues/324 for details here.
If you need to continue to support ASP.NET Core 2.x versions you can multi-target your library.

Sounds like the question was answered, so closing. Please re-open if there's more to discuss.


How should we approach backmatter in author mode?

So backmatter / references etc. are missing in the author currently. We should have things more strict here. I think we don't really need a back matter that's just another container with sections etc. Instead we should just display a single ref-list at the bottom of the doc that's in a fixed place.
The main question is how we should approach conversion here. E.g. if the original JATS file has multiple ref lists and some stuff in sections in the backmatter.... If we really don't want to teach the author backmatter stuff in favor of a simpler interface it would be an option to really just normalize (=strip that content) during conversion. @oliver---- what's your opinion here? Is it worth investing into a loss-free conversion if many parts are not even accessible through the interface.

I think in general we should figure out where JATS is too flexible from the/our authoring point of view.
E.g. we would only have one ref-list in the authoring tool.
Then the question is which ref-list to edit if more than one are present.
I think we should just pick the first and edit it.
Conversion is not really affected here, as everything is still regular JATS.
What we eventually do to 'normalize' the mult-ref-list case I don't know yet. I would need to understand first why somebody wanted multiple ref-list.

Definitely we don't want the whole  free form in the author.
It would be more like having different UIs, such the References section, which are written into the back matter.

The same for <front>.

Solving this with overriding the ArticleComponent for the author.


About the input of F.gumbel_softmax

From my understanding, the input of F.gumbel_softmax (i.e., the logits parameter) should be the \log of a discrete distribution. However, I didn't see any softmax or log_softmax before the gumbel_softmax. It seems like you're treating the output of self.proj as log-probabilities with the range of (-inf, inf), which indicates that the probabilities of the discrete distribution have the range of (0, inf).
I'm curious about why you don't use softmax to normalize things into (0, 1) and make the sum of them to be 1. Does the mathematics still make sense without normalizing?

@ZikangZhou Hi, although this is an old thread, I want to share my thoughts here since there's still an open issue pointing here, I hope this doesn't cause any inconvenience.
According to the documentation of F.gumbel_softmax, the logits parameter represents "unnormalized log probabilities". The term "unnormalized" here likely indicates that the logits have not been adjusted to fall within a normalized range by uniformly shifting all components. This normalization step doesn't impact the results of softmax, as any uniform shift gets canceled out during the softmax calculation, according to its definition.(e.g., if we add $a$ to logits $(x, y)$, the softmax results will be the same: $\frac{e^{x+a}}{e^{x+a}+e^{y+a}} = \frac{e^x}{e^x+e^y}$). Therefore, I believe the authors' usage of F.gumbel_softmax is actually appropriate.
You may also check the PyTorch's implementation of F.gumbel_softmax to confirm.


event parameter in useObserve callback is not populated

I want to do something based on an observable change in a component. I need to check the previous value of the observable and compare it to the current value. How to do this?
Currently I can see useObserve hook takes a callback, which receives a parameter e. This e parameter has value and previous properties (which I think are useful for my needs) but these are always undefined. Is it a bug or something?

Oh hmm, there was a bug in how previous was calculated - we originally intended it to be used internally just for comparison but then exposed it in the event without fixing it for that usage. And we need to update the docs for observe/useObserve. We'll do that soon! But I'll just explain it here:
observe/useObserve take a Selector as the first parameter, which is either an Observable or a function. The value of that Observable or the return value of the function is passed in as value to the second parameter, the reaction. And previous contains the previous value  from the previous time the reaction was called.
Here's a sandbox showing it, using the latest version with the bug fixed: 1.0.0-rc.29
Please let me know if that's still not working right, and thanks for the report!

Tested version 1.0.0-rc.20 and previous is working as expected. Thanks.


use debian slim baseimages

Hallo,
using debian slim baseimages should bring the size down by a few MBs, without really compromising features. The con is the missing documentation.

To be frank, the primary use case of buildpack-deps is for folks who don't care as much about size and instead simply want the entire kitchen sink included by default, so unless the size difference is a really dramatic percentage, this change isn't going to be very compelling.

Using slim bases would probably be relevant for the curl and scm variants since they are a lot smaller. For the regular variant, not so much, but it is convenient to base it on the scm variant so it would inherit the "slim"ness...


Fix "tools:context" in layout.xml

Issue
none
Overview (Required)
I fix wrong "tools:context" in layout.xml.
Also add to layout.xml of Activity which did not have "tools:context".
Links
none
Screenshot
There was no change on the Android Studio preview... 🙄

:eyes:

LGTM! 💯 Thanks!


Commit of Name Surname

Good job! :star2: :star2:  :chart_with_upwards_trend:
I close your pull request now. Please use the same procedure to submit your proposed assignment solutions for the upcoming sessions.


We should support appliances in our analyses

NHS Prescription Services use a custom version of the BNF to code prescriptions. This is all the BNF, plus a bunch of extra codes ("pseudo-classifications") for things not in the BNF. Full details are here.  In particular, it includes pseudo-codes for appliances which in the BNF are listed in appendices rather than with fully coded entries.
The OpenPrescribing codebase assumes that there are chemicals and products associated with every prescribing line, and skips creating BNF chapters/sections/paras/products which start with the word DUMMY (which all the pseudo-codes do). This means it is impossible to analyses involving groups of appliances; you must list them one-by-one.
Increasingly we are getting requests for access to appliance data. There has been an increase in appliance prescribing across the board (see screenshot below); there are also, anecdotally, issues with waste (e.g. sterile packs of 20 pads being opened and destroyed to use a single pad).
So to take Hyabak eye drops, for example -- these are in the custom BNF only as two AMPs, viz. Hyabak Sod Hyaluronate Eye Dps 10ml and Hyabak UD Sod Hyaluronate Eye Dps 0.4ml Ud P/F but the products are DUMMY PRODUCT<PHONE_NUMBER>8 and DUMMY PRODUCT<PHONE_NUMBER>3 respectively (and the paragraph for both is DUMMY PARAGRAPH 213000). The lowest-level classification that both these presentations have in common is DUMMY CHEMICAL SUBSTANCE 213000001.
So the challenge here is that most users would be interested in something that should be called Hyabak Soc Hyaluronate (rather than the two individual presentations), but it's actually called DUMMY CHEMICAL SUBSTANCE 213000001 in the data.
To support appliance data, we would have to:

Find a way to meaningfully label dummy chemical substances (either heuristically, or possibly through the D+DM mapping Lisa got hold of recently... needs checking to see if that has more useful classifications)
Remove the code that skips dummy classifications
Add code to hide dummy classifications in the user interface (I'm not sure without looking if there's any...)

@annapowellsmith, any other comments?

Cool - agree we should start supporting these!
We could skip the first bullet point - just import the DUMMY names as they are. Then hide them in the front-end, and just let expert users search by code.
This would be easy enough on the back-end, and should only require a few tweaks in the front-end to allow users to search for 213000001 without showing DUMMY in the autocomplete.

The problem with the naive approach is that appliances tend to be at the AMPP level but people are interested in the AMP level (i.e. KoolBitz Bandages rather than KoolBitz Bandages 1m, 5m, and 10m as separate entities).  So expert users would end up having to do their own compound queries for all the KoolBitz bandages together.
In other words, the question becomes: will it be useful enough for end users when they have to combine lots of AMPPs together in one query, or is that going to add too much mental overhead?
In turn, I suspect the answer to that question depends on exactly how many presentations of the same product there tend to be on average. If most appliances only come in 2 or 3 different forms, then it's not a biggie, but if lots of them come in 10s of forms, it may be.

Remind me what AMPP and AMP mean in BNF code terms?

Sorry, shouldn't have thrown AMPP in there, I used it wrongly. Sorry - explained in more detail below!  But for the purposes of this discussion, my point is people are unlikely to want to do a search for Hyabak Sod Hyaluronate Eye Dps 10ml and Hyabak UD Sod Hyaluronate Eye Dps 0.4ml Ud P/F. They will just want to search for Hyabak Sod Hyaluronate.
The degree to which this is a problem is the degree to which single "chemicals" (which in appliance-land might mean "dressings") have many different "presentations". Which we can find out with a bit of analysis.

To clear up AMPP etc:

A means Actual, V means Virtual. Virtual means a generic name for a product (Paracetamol) versus Actual which is a brand sold by a manufacturer (e.g. Panadol).
MP is Medicinal Product and should include the strength.
The final (optional) P is Product and refers to an actual pack you can buy -- usually distinguished by pack size.

So Paracetamol 500mg tabs is a VMP. Paracetamol 500mg tabs 12 is a VMPP. Panadol 500mg tabs 12 is an AMPP.
BNF data contains VMPs and AMPs but no pack sizes, which has caused some interesting problems in the Tariff work I've been doing in the background, because you can get one AMP in two very different pack sizes of very different prices.
Acarbose,0601023A0,Acarbose,0601023A0AA,Acarbose_Tab 50mg,0601023A0AAAAAA
^                     ^                     ^
|                     |                     |
chem                 prod                presentation

So the "presentation" in BNF-land is either an AMP or a VMP. Not as I said earlier an AMPP (or VMPP), When I said

The problem with the naive approach is that appliances tend to be at the AMPP level but people are interested in the AMP level

It should have been

The problem with the naive approach is that appliances tend to be at the AMP level (presentation in BNF terms) but people are interested in the chemical or product level (in BNF terms)

I hope that clears it up :)

Thanks for the explanation - very clear!
So it will help to look at codes for a specific example. Following yours, let's look at these two products:
Hyabak Sod Hyaluronate Eye Dps 10ml (presentation code<PHONE_NUMBER>8, DUMMY PRODUCT<PHONE_NUMBER>8, DUMMY CHEMICAL SUBSTANCE 213000001)
Hyabak UD Sod Hyaluronate Eye Dps 0.4ml Ud P/F. (presentation code<PHONE_NUMBER>3, DUMMY PRODUCT<PHONE_NUMBER>3, DUMMY CHEMICAL SUBSTANCE 213000001)
So your concern is that people will want to search for the Hyabak Sod Hyaluronate product in general, but the only code-based search to do that is for 213000001, which also includes lots of other products. I think that's correct?
I see the concern, but possibly YAGNI, and I don't think it should stop us importing them. I think we should import these products as they are, and then if people do get in touch and say that this is a problem for them, we should look at doing some name extraction, regex search, or whatever is needed.

The Hyabak is a good example of where we struggle with some of this.  Sodium Hyaluronate is used as a lubricant in the eye.  It also has a medicines code (1108010P0).  But, sometimes, for licensing reasons, manufacturers tend to have these classed as an appliance, rather than a medicine, so the usage is split over both areas - with the appliance codes NOT showing on openprescribing.

Also @sebbacon, interesting demonstration of the AMPP issue - but I thought that, for most drugs, although it used to be the case in the past that different pack sizes had different costs per pill, certainly for PartVIIIA of the drug tariff this has now been removed?

@annapowellsmith agreed possibly YAGNI, or at least, there's no real harm in adding these as nominators to our dataset. In the worst case they're not helpful because grouping them manually is too much effort, but there's already loads of chemicals, products etc to navigate in any case and we might find it's Good Enough.
@richiecroker so to summarise (for when we come back to this):
A single product can be listed as an appliance (in which case it has a pseudo-classification) or a medicine. For example, Hylo-Comod Eye Drops 0.1% are classified as a medicine, with a presentation code of 1108010P0BDAAAC and a Chemical Substance code 1108010P0 (Sodium Hyaluronate). But Hyabek is classed as an appliance, with identical presentation and product code<PHONE_NUMBER>3 and a dummy chemical substance code 213000001.
So there are actually two reasons why appliances are problematic for analyses, both because denominators are hard to make meaningful:

When they are in pseudoclassifications the "chemical" or "subparagraph" doesn't have a meaningful name
The products are sometimes (often?) classified as medicines, meaning the denominators are (very or somewhat) likely to be incomplete.

I've had a quick look at the DM+D data and unfortunately the only other classification system it provides (ATC) does not have classifications for appliances.
The conclusion: if we want to support rich analyses of appliances, we will have to do extra work to devise useful alternative denominators; develop names for the dummy sections / chemicals; or encourage NHSBSA to do so.
There are 21080 DUMMY presentations in 682 paragraphs, 763 sub-paragraphs, and 1063 dummy chemicals. Examples of dummy chemicals with many (~100) presentations are:

Hernia support belts (come in many sizes)
Compression stockings
Incontinence appliances

So this does seem like something we could develop quite easily with a medical librarian in a few weeks, if we wanted to look for funding for it.

Good discussion, thanks all!
I think the consensus is that the short-term task is to add them in the naive way, then return to this discussion if we find that users want to search in different ways.

The UI challenge side of this would be addressed by #953


Fix workspace reimbursement section blinks

Details

When we open the reimbursement page, the reimbursement section blinks when loading the first time.
Fixed Issues

$ https://github.com/Expensify/App/issues/32841
PROPOSAL: https://github.com/Expensify/App/issues/32841#issuecomment-1850651744
Tests

Same as QA Steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA Steps
QA Steps

Open Settings > Workspaces > Select any workspace > Reimbursement
Verify the "Unlock next-day reimbursement" section loads initially without any blink

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/50919443/af33fea0-4263-4e7b-a5e8-7b82277c76d9

Android: mWeb Chrome

https://github.com/Expensify/App/assets/50919443/90a35aa5-4a87-4046-a974-3c06d9dded1e

iOS: Native

https://github.com/Expensify/App/assets/50919443/dda64cab-7774-49c0-89a4-9c4fd00c3c18

iOS: mWeb Safari

https://github.com/Expensify/App/assets/50919443/3d337e1f-9e38-4786-88b6-2170247dc481

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/50919443/ac807e6a-8890-4852-87fc-70c276cb4ea1

MacOS: Desktop

https://github.com/Expensify/App/assets/50919443/2585d9d1-beaf-4a97-a68c-dfcb75b07b9c

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/Julesssss in version: 1.4.23-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.4.23-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Suggestion: expose _vue_directives in production

In relation to:
https://github.com/fergaldoyle/vue-form/issues/7
When authoring a plugin I found el._vue_directives very useful, only to find it's removed in production.
Would it be possible to keep it in production builds? Maybe with the same naming convention as v-models internal object.
__v_model
__v_directives

cant you use $vm.$options.directives?

Didn't know about $vm.$options.directives but it's not the same thing as el._vue_directives.

I added it mostly for potential devtools use and was cautious about the additional memory usage since this is adding an array to every single node that has a directive. But it seems we don't need it for textNodes, which may bring the usage to an acceptable level.
Can you elaborate a bit more on what use case you have found for this?

When writing a directive it's a useful way to check attribute bindings, and gives you a lot of detail about them.
Although a simple attribute check and $eval would probably meet most requirements, as I've now done for the issue I referenced above.
So if there's a memory usage concern it's probably not worth enabling it in production builds.

I think I'll close this for now - Vue's reactivity system is pretty memory hungry, so I'd like to avoid any non-critical memory consumption.


pull request for e2e test at 12/09/2016 12:15:01

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

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.


Fix the link to homepage

Make the menu items to be exactly at the same level as the menu

closed wit a commit delivered to #20


revert asynchronous devices mounting.

I had previously tried to mount asynchronously, but this made our integration tests unstable.
I reverted it once, but it was still there, so I deleted it.

@tsturzl You may not have read much of the code around here, but please give it a light review if you like.

@tsturzl
When I ran it with docker in my local, it worked normally, but I could only find out that it failed in the integration test.
If you have any problems with cgroups asynchronous support, I should seriously look into it.