testing: add -json flag for json results

The idea is to make the test results available in JSON form so that other tools like
build servers can read the results easily.

+1 for interfaces for the reporters.
Recommend breaking out the individual tests interface (in comment 16) from things like coverage (which would report the coverage for a single file)

https://groups.google.com/forum/#!topic/golang-nuts/nFpL8YO4R9s is a related discussion on golang-nuts ("Jenkins plugin for Go test coverage format").
This feature is important to integrate Go builds into enterprise build pipelines and make it easier to promote Go in corporate environment.

Russ, is there anything that interested community members can help with on this issue (beyond patiently waiting :smile: )?

It's an open source project with hundreds of contributors.  You can simply write the code and contribute it.  See http://golang.org/doc/contribute.html .

For what it's worth, I've been turning go test output into JSON for some time now.
https://github.com/smartystreets/goconvey/tree/master/web/server/parser
My use case was to create a web server that scans for changes in *.go files and runs tests, reporting them to a web client in a JSON payload.
As @rsc has already mentioned, there are lots of things to consider like arbitrary output, build failures, etc... There are issues with my implementation but I thought I'd reference what I've done in case it's helpful.

+1

+1

Currently the the test results are streamed, so a tool parsing them is able to process/display them as soon as they are available. Loosing streaming would be unfortunate, so I'd advice against dumping Result JSON on completion.
In the related, mutually-exclusive #12826 proposal (-format flag) @minux suggested to stream json for each test/benchmark result, and this is likely the only option (assuming -json) because we don't want to loose results if there is panic/crash.

Assuming preserving streaming is important, here is modified Result struct:
type Result struct {
    Test *TestResult
    Benchmark *BenchmarkResult
    Start *struct {
        Version string
        OS string
        Arch string
        Hostname string
        Time time.Time
    }
    End *struct {
        Time time.Time
        Pass bool
    }
}

All fields are optional. go test can emit one Result in JSON format for each piece of information it acquires. In the beginning it emits Result with Start field filled. Then one Result for each test/benchmark with Test or Benchmark field respectively. As a result, go test standard output is a series of JSON objects. It is decodable by one json.Decoder by calling Decode multiple times.

Why does the Start struct include Version, OS, Arch, etc?
I'd expect
type Result struct {
    Package string
    Start, End time.Time `json:",omitempty"`
    Version string `json:",omitempty"`
    OS string `json:",omitempty"`
    Arch string `json:",omitempty"`
    Hostname string `json:",omitempty"`
    Test *TestResult `json:",omitempty"`
    Benchmark *BenchmarkResult `json:",omitempty"`
    Pass *bool  `json:",omitempty"`
    // maybe also test log output should be included?
    Log []byte
}

SG.
What is Log exactly? Given there is TestResult.Output, I'd expect Result.Log to contain direct writes to os.Stdout in the test binary. Direct writes to os.Stderr would result in Result objects with Log property in stderr of go test.
If we implement framing that @rsc suggested, then Result should probably also have Build string field that would contain anything go build would print. At this time, only -n and -x causes go test to produce extra output. In json format it would be printed out as { "Build": "mkdir ..."}.
I'm proposing raw Build string in contrast to more semantic "Cmd string" for -n/-x because otherwise we would force ourself into a trap that any future go build output must have a field in Result.
I can write a design doc if nobody minds.

The advantage of putting Version into Start with the simple rule "Only one of Start, Test, Benchmark and End may be present.", is to be clear that Version will be specified only when a test binary of a package starts. With Version right in Result, it is not obvious from reading the struct 1) whether Version may be present together with Test? 2) Should a user ignore Version if it is different from the previous value?
Also having Start and End fields as structs clearly signifies current stage.

Okay, please go ahead and write a doc. Probably good to have it all fleshed out.

I think streaming should be the default (i.e. we don't
need the new -test.stream flag), as handling a bunch
of objects is not that difficult than handling a big json
array.

I think go test -json should either

always stream
never stream
not stream, unless -stream
stream, unless -stream=false

First two are easier to implement.
I've just file a proposal, it does not have -test.stream, and proposes (3). PTAL.

In particular, in the proposal the test binary always streams. I assume your motivation for "stream by default" is to prevent loosing results because of a test binary panic.

I see no reason not to always stream.
On 8 October 2015 at 11:48, Nodir Turakulov<EMAIL_ADDRESS>wrote:

In particular, in the proposal the test binary always streams. I assume
your motivation for "stream by default" is to prevent loosing results
because of a test binary panic.
—
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/2981#issuecomment-146384147.

The proposal has been submitted: https://golang.org/design/2981-go-test-json
I think you should reconsider the split between streaming and non-streaming variants, and just go with streaming every time. The burden of combining streamed output seems small compared to the overhead of having two distinct json output types.

I agree that it adds complexity.
I considered the product of non-streaming go test -json to become a canonical format of test result files in Go. For example, they could be stored for future analysis. I assume that's why Version, Arch, etc were put by @rsc in the first place. It would be nice if the canonical file format is valid JSON.
If go test -json output is ultimately to be processed further by another tool (not for storage), then I don't see a reason to include Version, Arch, etc because their values are obvious at the time of the test run.
On the other hand, the canonical test results file format could be defined by a separate tool that aggregates go test -json streamed output.
So, I propose to always stream, simplify output format and exclude Version, Arch, OS and Hostname.

benchcmp and benchstat could be examples of programs that support the standard file format.

If streaming must be configurable, I suggest that -test.json take a list of
comma-separated options. Then we can add more options in the future without
changes to the go command.

proposal updated:

streaming only. Removed -stream flag
output format is greatly simplified; flattened in particular
Version, Arch, OS and Hostname are removed
decreased changes to testing package by making testing.Result internal

OK to implement?

What about coverage information?

Yes, a standard file format should contain coverage, cpuprofile, etc, so I decided to leave this idea for now. It is outside of the scope of this issue.

Ah, you probably mean the go test output about coverage. I forgot about that. Will add.

Done.
Please note that the updated proposal also specifies that examples with output are treated as tests and printed as
{
  "Package": "foo",
  "Test": {
    "Name": "Example1",
    "Status": "PASS",
    "T": 1000
  }
}

Status cannot be "SKIP". Never has Log.

Should I send this proposal to golang-dev or this bug being open is enough for approval/rejection?

I’d suggest sending an email to golang-dev to ask for more
reviewer on the proposal. Thanks.

What is expected to happen when a test has an os.Exit(99) call, or an unhandled panic (especially from runtime, e.g. "fatal error: all goroutines are asleep - deadlock!")? Till now, it was possible to detect which test exited/panicked in -v mode, because it printed the "header", i.e. === RUN TestPanic.
In the proposal, it seems that the description of the -json flag says "stdout is indented JSON objects" (emphasis mine) — seems a bug, rest of the doc seems to have "unindented"?
Not sure about the printed "\n"s; is the output of a test.foo binary monitored, and "\n"s are added only if needed? otherwise, the example output should have empty lines between the JSON objects, no?

I don't see anything in the proposal that helps with the thorniest parts of my "comment 14" from 2013. Specifically, if the test crashes with half-emitted JSON, do you get a useful JSON output from the go command? It is not at all uncommon for tests to crash. This case absolutely must work.
I really think maybe we should encourage people to parse the usual text output instead, like go2xunit does.

@akavel: I addressed your comments in https://go-review.googlesource.com/#/c/16285. Thank you.
@rsc a clean solution could be to use an extra fd exclusively for test binary json output (assuming nothing else in the test binary would write to it). If a test binary crashes in the middle of writing JSON, the go command can safely discard invalid JSON and report anything printed to test binary's stderr.
exec.Cmd.ExtraFiles is not supported on Windows ATM. I will see if I can fix that. This proposal may have to be postponed until that is done.

I'm not sure if this has been discussed, but in addition to (or an alternative to) JSON output, it would be nice to have some sort of hook to format output. For my use-cases that would be much faster than writing wrapper programs for JSON output, and let me augment the data with things like MB/s for parsers and so on.

@rsc one additional idea that I had was that maybe there could be an official pkg for parsing go test output in the std lib. Then, with any changes in go test output format, the lib would be updated accordingly, and authors of go2xunit-like code wouldn't have to find the changes on their own.

Is it true that according to the proposal log messages will be available to external tools only after test will be finished?
{
    "Name": "TestBar",
    "State": "PASS",
    "T": 1000000,
    "Log": "some test output\n"
}

In this case it cannot be said about preserving streaming capability. For our tool (https://github.com/go-lang-plugin-org/go-lang-idea-plugin) it would be better to separate log and test-finished events. So we'll be able to show output before test finished and we'll be able to separate output between tests which were run in parallel. E.g. like this:
{ "name": "TestFoo", "event": "started" }
{ "name": "TestBar", "event": "started" }
{ "name": "TestFoo", "event": "log", properties: {"message": "some test output"} }
{ "name": "TestBar", "event": "finished", "properties": {"state": "pass", "T": 1000000} }
{ "name": "TestFoo", "event": "finished", "properties": {"state": "pass", "T": 1000000} }

It would be even better to allow clients to implement their own reporterts and attach them to gotest as shared libraries.

FWIW, @moshez has started using the JSON Sequence (rfc7464) format for representing test output here at Square. It's extremely simple, and would address @rsc's "comment 14" about interrupted output: the standard specifically addresses ignoring corrupted entries.

@nodirt I have been reviewing your proposal and have some issues:

Why re-use BenchmarkResult for this purpose? It seems odd to me. I'd rather just type Result with just the new fields common to tests, benchmarks, and coverage. Specific results for tests, benchmarks, and coverage can be provided by fields that are pointers to structs (Test *TestResult, etc).
I think we must encapsulate any test program output in JSON objects so that it may be discarded by any program parsing the JSON objects. The suggestion to use "JSON Sequence" format might be the solution.

@nodirt do you have any feedback on my comments? I'd like to see this proposal go ahead.

@nodirt ping?

A Result struct containing either *TestResult or *BenchmarkResult, with optional *CoverageResult SGTM.
I assume by encapsulating any test program output you imply to replace os.Std{out,err} with os.Pipes (too bad they are not io.Writer), encapsulate the output with JSON object and write JSON objects to real stdout/stderr. We cannot associate these objects with any tests because it won't work in parallel test execution case. This SGTM too.
Overall it sounds like the Result struct is going look like
type Result struct {
    Name  string
    State State
    Procs int    // The value of runtime.GOMAXPROCS for this benchmark run.
    Log   string // The log created by calling (*B).Log and (*B).Logf.

    // these two fields are mutually exclusive
    Test *TestResult
    Benchmark *BenchmarkResult

    CoverageMode string
    TotalStatements  int64
    ActiveStatements int64
    CoveredPackages  []string

    Stdout string
    Stderr string
}

where Stdout or Stderr is non-zero only when something is written to os.Stdout/os.Stderr. If any of them are non-zero, the rest of the fields must be zero.
This struct is not idiomatic at all, rather tailored to a simple JSON output format, so maybe we should not give it a more concrete name than generic "Result".
Apologies for the delay.

That struct looks good to me, I'd put the json:",omitempty" struct tag on each optional field, too.

This struct is not idiomatic at all, rather tailored to a simple JSON output format, so maybe we should not give it a more concrete name than generic "Result".

JSONResult maybe?

Good to see the topic is active again!
@nodirt any chance to preserve streaming? See https://github.com/golang/go/issues/2981#issuecomment-154705909 for the description what's wrong with current proposal version exactly.
The initial issue is about supporting other tools and build servers, I bet all of them would like to have proper results streaming here.

@nodirt, in #14313, @rsc and I proposed an extended form of the current text benchmark format that, in particular, supports arbitrary metric:value pairs. Since your proposal builds on the existing, rigid testing.BenchmarkResults, we would lose this capability in JSON output. This has proven invaluable in more sophisticated benchmarks such as the x/benchmarks and gcbench since it lets us leverage our existing tools for benchmark analysis for important metrics beyond the limited set understood by the testing package.
Arguably this is an issue with testing.BenchmarkResult, but since we can't change the existing fields, here are a few ways I can think of to address this:

Introduce a JSONBenchmarkResult to parallel JSONResult that consists simply of the number of iterations and a map from string metric names to float64 values.

Make JSONResult.Benchmark a map[string]float64 with the convention that the "N" entry is the number of iterations.

Take advantage of the parallel between structs and maps in JSON and say that other producers are allowed to add fields to the benchmark result. However, this would mean that consumers have to define their own type paralleling JSONResult in order to swap in a map that can accept arbitrary key: value pairs for the benchmark.

Add a map[string]float64 field to testing.BenchmarkResult for "additional metrics". Since this is adding a field, it would not violate the Go 1 compatibility promise.

My other question is how your proposal deals with subtests/subbenchmarks. I assume this is simply part of the Name field and that the string follows the same convention as it does in the text output, but wanted to check.

@zolotov I believe what is being proposed is a streaming model

@adg JSONResult and json: ",omitempty" SGTM
@aclements I prefer (4) more than others, but in that case it is probably a separate proposal, since it also probably involves adding Metrics map[string]float64 into testing.B. These two designs can merge without conflicts.
re subtests/subbenchmarks: your assumption is correct
@zolotov

Is it true that according to the proposal log messages will be available to external tools only after test will be finished?

no, in your case the output would be
{
    "Name": "TestBar",
    "State": "RUN",
    "Log": "some test output\n"
}
{
    "Name": "TestBar",
    "State": "PASS",
    "T": 1000000,
}

except there would be JSON Text Sequence separators.
--
I'll update the document to make assumptions above clear/explicit.

Perhaps STARTED is a better state name than RUN. WDYT?

@nodirt I got it, thank you! Not sure about STARTED or RUN, both are good.

I prefer (4) more than others, but in that case it is probably a separate proposal, since it also probably involves adding Metrics map[string]float64 into testing.B. These two designs can merge without conflicts.

That's fine.
More generally, how does/should this proposal incorporate extensibility? Adding metrics is one example, which can be accomplished by adding a Metrics field later on. The other example from #14313 is configuration metadata. This is generally shared across many benchmarks (though, I suppose, doesn't strictly have to be), so it's not immediately obvious to me how it would fit in to the proposed structure.

@nodirt would you care to update the proposal doc?

@aclements, how about doing "Metadata map[string]string" in BenchmarkResult? where key follows same rules as configuration metadata. Slightly modified quote:

key begins with a lower case character (as defined by unicode.IsLower), contains no space characters (as defined by unicode.IsSpace) nor upper case characters (as defined by unicode.IsUpper), [text removed]. Conventionally, multiword keys are written with the words separated by hyphens, as in cpu-speed. [text removed].

I believe it is simpler not to support multiple values per key. If there is a key that needs multiple values, users can agree on a separator rune, while the rest of metadata consumers don't have to deal with multiple values.
With string values we lose type safety for numeric metadata values, e.g. but I think it is acceptable, given there may be non-numeric metadata.
@adg apologies for the delay (family reasons). I do care about updating the doc, will do.

please ignore my previous comment. I completely misunderstood configuration metadata: I assumed it is specified by benchmark code, not go test itself.
Yes, we should definitely add
type JSONResult {
  // Configuration is metadata produced by test/benchmark infrastructure.
  // The interpretation of a key/value pair is up to tooling, but the key/value pair is
  // considered to describe all benchmark results that follow, until overwritten by
  // a JSONResult with Configuration.
  //
  // The key begins with a lowercase character (as defined by unicode.IsLower),
  // contains no space characters (as defined by unicode.IsSpace)
  // nor upper case characters (as defined by unicode.IsUpper).
  // Conventionally, multiword keys are written with the words separated by hyphens,
  // as in cpu-speed.
  Configuration map[string]string

  // other fields defined above
}

this differs from the original in that if a config value needs to be changed, a Configuration with all values needs to be emitted again. Rationale: the original proposal does not specify how to undo a key-value pair (an empty string metadata value and no value may have different meanings)

re Benchmark Name Configuration: I think it should be extracted to a separate proposal, so it can be "inherited" by both this proposal and #14313. I can do it.

How about implementing an ability to customize test output with brand-new plugin package? It will be just the same proposal but json-reporter will be implemented as a plugin.

in https://go-review.googlesource.com/#/c/29157/1/design/2981-go-test-json.md@197 @zolotov raised a concern that with the proposal json format it is impossible to distinguish a test "C" within "B" within "A" from "B/C" within "A", and similar cases. I was hoping to solve this issue by filing a proposal to prohibit "/" in subtest/subbenchmark names, but looks like "/" is supported intentionally and it would be a breaking change.
I am thinking to add NestLevel int to JSONResult` which, if not zero/empty, means that a test/benchmark belongs to a parent printed earlier. E.g.
// Test A started
{
    "Package": "github.com/user/repo",
    "Name": "TestComposite",
    "State": "RUN",
    "Procs": 4
}
// Subtest B in A started
{
    "Package": "github.com/user/repo",
    "NestLevel": 1,
    "Name": "B",
    "State": "RUN",
    "Procs": 4
}
// B passed
{
    "Package": "github.com/user/repo",
    "NestLevel": 1,
    "Name": "B",
    "State": "PASS",
}
// Subtest "B/C" in A started
{
    "Package": "github.com/user/repo",
    "NestLevel": 1,
    "Name": "B/C",
    "State": "RUN",
    "Procs": 4
}
// B/C passed
{
    "Package": "github.com/user/repo",
    "NestLevel": 1,
    "Name": "B/C",
    "State": "PASS",
}

it relies on the fact that a test does not finish until all of its subtests finish.
The alternative is to make Name a list of strings and print absolute name each time, e.g. ["A", "B"], ["A", "B/C"], but name array looks odd to me. WDYT? cc @aclements who raised the question of subtests earlier

What about parallel tests? I think we have to include full hierarchical
names for each event.

I don't think we need to worry about B/C inside A vs. A/B/C; my understanding is that those are explicitly intended to be indistinguishable. In practice, people should not be using the same name for two different subtests.

@minux yes
@quentinmit that was a bad example. The concern is that it is regression. Non-JSON format has indentation by which you can tell whether a test is named "A/B" or "B" in "A". Let me copy @zolotov's message here:

How to distinguish third-level subtest and second-level subtest with a slash in the name? E.g. TestFoo/Bar/Buzz1 and TestFoo/Bar/Buzz2 in the following example:

func TestFoo(t *testing.T) {
	t.Run("Bar/Buzz1", func(t *testing.T) { })
	t.Run("Bar", func(t *testing.T) {
		t.Run("Buzz2", func(t *testing.T) {})
	})
}

At the moment, `go test` prints them with different indents:
--- PASS: TestFoo (0.00s)
    --- PASS: TestFoo/Bar/Buzz1 (0.00s)
    --- PASS: TestFoo/Bar (0.00s)
        --- PASS: TestFoo/Bar/Buzz2 (0.00s)

My inclination is that we don't need to preserve this indentation at all. https://golang.org/pkg/testing/#hdr-Subtests_and_Sub_benchmarks specifically prescribes the uniqueness of names:

Each subtest and sub-benchmark has a unique name: the combination of the name of the top-level test and the sequence of names passed to Run, separated by slashes, with an optional trailing sequence number for disambiguation.

I agree. Preserving the nesting makes parsing harder because the parser has
to maintain more states. We already know the name for each test, why not
just use the full unambiguous name for the events? I think most consumer
don't necessarily care about the hierarchical nature of subtests and even
if they do, it's trivial to split the name around / to get the hierarchy
back.

I agree with @minux and @quentinmit.
On 29 September 2016 at 08:40, Minux Ma<EMAIL_ADDRESS>wrote:

I agree. Preserving the nesting makes parsing harder because the parser has
to maintain more states. We already know the name for each test, why not
just use the full unambiguous name for the events? I think most consumer
don't necessarily care about the hierarchical nature of subtests and even
if they do, it's trivial to split the name around / to get the hierarchy
back.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/2981#issuecomment-250322531, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AIDilcigNrm_kpHrMxlM9vx23ir9Lo1nks5quuz6gaJpZM4DOJNy
.

@minux @quentinmit
Hi guys! I'm not talking about the same test names. testing package deals with them and gives them uniqueness names. As @nodirt said, it's about regression. The proposal is about providing a machine-readable output format. Since this format is unable to repeat human-readable format – it's regression.

My inclination is that we don't need to preserve this indentation at all.

@quentinmit Are you proposing to remove nesting from go test standard output too?

@nodirt NestLevel int approach doesn't look reliable to me, especially in case of parallel tests and it's harder to parse, indeed. Also having full qualified test names is important. Name array looks odd to me too.
As a yet another alternative: adding ParentTestName string or ShortName string. Both fields are derived from each other and each of them solves to regression. What do you think?

@minux

I think most consumer don't necessarily care

I think most consumer necessarily cares.

it's trivial to split the name around / to get the hierarchy back.

To get wrong hierarchy back, it won't represent neither test hierarchy from source code nor from go test standard output.

Can you provide a concrete example of the problem? I am having trouble
understanding.

@adg the concrete example is here https://github.com/golang/go/issues/2981#issuecomment-250319312.
I repeat the code and output:
func TestFoo(t *testing.T) {
    t.Run("Bar/Buzz1", func(t *testing.T) { })
    t.Run("Bar", func(t *testing.T) {
        t.Run("Buzz2", func(t *testing.T) {})
    })
}

At the moment, `go test` prints them with different indents:
--- PASS: TestFoo (0.00s)
    --- PASS: TestFoo/Bar/Buzz1 (0.00s)
    --- PASS: TestFoo/Bar (0.00s)
        --- PASS: TestFoo/Bar/Buzz2 (0.00s)

The problem is that since proposed json-format has only full-qualified names of tests, it's impossible to understand that TestFoo/Bar/Buzz1 is subtest of TestFoo and not of TestFoo/Bar.

And why do we care?

Because it is regression. It means that I won't be able to recreate proper test hierarchy using json format.

It's a corner case that only affects people that create sub-tests with
slashes in the name. Does anyone actually do that?

Indeed, it is a corner case, so it's understandable to do nothing with it.

Does anyone actually do that?

In my experience, since it's allowed, for sure there are people who do it; and those of them who use the IDEA will  come to me eventually and will demand to show proper test hierarchy in IDE. At this point, I need at least a link to the discussion of this corner case ;)

@nodirt regarding plugins. Yes, subscribing to all test events and generating output from entities of testing-package is exactly what I thought about.
Here are at least two advantages of this approach:

reporters are written in golang, so they work with go-specific types, they have a whole test runtime and can extract any information regarding the tests they need. So we don't have to change testing package to provide more text-information via json format to third-party tools. We don't have to change go sdk at all, we can change reporters independently.
reporters are written in go, so it's easy to share them. No need to implement converting json testing output to xml-junit format in Java, Python and C# just because different tools are written in different languages.

As for 2, I've already faced it. I implemented the converting gotest output into IDEA-specific test-event-messages and tried to reuse the converter in TeamCity CI because TeamCity uses exactly the same testing messages format. And I failed. I failed because an existing converter uses a lot of IDEA-specific stuff that cannot be used in TeamCity runtime and it's not easy to deal with it right now.

@zolotov

we will still have to design plugin protocol, e.g. we will need to define Go type for events, similar to JSONResult or a new "enum" for event types (EventTestStarted, EventTestFinished, etc). The protocol could go to a different package though.

I think the problem here is that your converter has more dependencies (on IDEA components) than necessary and that's why you cannot use it in TeamCity. What prevents you from getting rid of deps or from writing the converter in Go and consume the result of conversion in both IDEA and TeamCity? a la $ go test -json | convert-to-jet-brains-format

In the larger picture, this would be first plugin for go tool and perhaps this needs to be thought through.

It seems to me that plugins are off-topic/out-of-scope for this feature, which otherwise feels like it's close to happening.

I think the problem here is that your converter has more dependencies

@nodirt it is a problem but it's not the only one. Don't try to solve this, this is just an example that could be avoided by implementing custom reporting on go tool-side.
@cespare the feature is to make readable output for tools, using plugins for customizing testing reporters is a possible way to do it, seems relevant to me.

The proposal is updated, PTAL.
@zolotov are there other problems with this proposal that do not have simple solutions (such as rewriting the converter to go)?

are there other problems

@nodirt I don't see any. I'd like to see the note about subtest in Compatibility or TradeOffs section though.

It seems like this proposal stalled again. What can be done to start making progress again?

@nodirt what's the status here? It seems to me that the proposal is pretty complete and addresses the significant concerns that were brought up along the way.

My priorities and amount of free time changed and now I have no time to implement this.

@nodirt thanks for the update.
I can probably take this over and work on it (for the 1.10 timeframe) but there's no decision on the proposal yet. AFAICT the existing concerns have been addressed.
@golang/proposal-review what else would you like to see?

This looks really cool. I wonder whether it's also useful emitting a state change to indicate blocking around T.Parallel(). For example:
func TestA(t *testing.T) { t.Parallel() }
func TestB(t *testing.T) { t.Parallel() }
func TestC(t *testing.T) {}
func TestD(t *testing.T) {}
func TestE(t *testing.E) { t.Parallel() }

would result in tests A and B each starting and blocking immediately; tests C then D each starting and completing; test E starting and blocking; and finally tests A, B, and E all unblocking and completing. Perhaps we could add an extra couple of new State consts:
const (
	RUN State = iota + 1
	...
	PAUSE
	RESUME
)

Which, for TestA above might look something like:
{"Package": "github.com/user/repo", "Name": "TestA", "State": "RUN", "Procs": 4}
{"Package": "github.com/user/repo", "Name": "TestA", "State": "PAUSE"}
{"Package": "github.com/user/repo", "Name": "TestA", "State": "RESUME"}
{"Package": "github.com/user/repo", "Name": "TestA", "State": "PASS"}

On a related note, have I correctly understood that each event is emitted as line-delimited JSON, like the above? Sure would make using grep and the like easier. There's always jq if you need to format it.
Separately: start, end, and execution times seem to have been omitted from the proposal, despite being discussed above.
✌

I'd like to return to this proposal after some other work in the go command.

Planning to work on this in the Go 1.10 cycle. Will want to fix #19280 first.

@rsc I would be happy to work on this as well (and any guidance from you would be good). Also this can have the IDE label as well.

Thoughts about implementation strategy, per discussion with proposal-review.

We need to address #19280 first (CL pending).
This can't be done by the process under test, because it might crash at any moment.
Probably we can't rely on foo.test being able to run itself as a sub-process (too many weird test execution modes, for example 'copy to ios device and run there').
That leaves cmd/go to parse the test output and do a conversion.
Possibly a new 'go tool test2json' or something like that could be provided as well.

@rsc I think the tool can be maintained by the community / be an golang.org/x tool as long as issues like #19280 or any others which prevent the test reader from correctly determining which test writes which output are addressed. What do you think?

The subject line on this issue is to add a -json flag. If there's a -json flag, it needs to use a tool from the standard repo - we want Go to be self-contained.

I've tried to apply this feature in GoLand and this is the list of issues I faced:

-json parameter doesn't work with -c argument
-json parameter doesn't work with go bench. The only json output for benchmarks is package-passed event (btw, it's incorrectly "failed", looks like a bug), no information about starting, ending benchmarks or about text in stdout in json format.

PASS
ok  	github.com/rcrowley/go-metrics	40.797s
{"Time":"2017-11-11T12:55:29.076331942+03:00","Action":"fail","Package":"github.com/rcrowley/go-metrics","Elapsed":40.797}
…

Some events have become a part of output of others, like this one:

/home/zolotov/dev/go/bin/go test -v -json ./...
{"Time":"2017-11-11T13:05:28.267338195+03:00","Action":"run","Package":"github.com/rcrowley/go-metrics","Test":"TestCounterClear"}
{"Time":"2017-11-11T13:05:28.26745939+03:00","Action":"output","Package":"github.com/rcrowley/go-metrics","Test":"TestCounterClear","Output":"=== RUN   TestCounterClear\n"}
{"Time":"2017-11-11T13:05:28.267468575+03:00","Action":"output","Package":"github.com/rcrowley/go-metrics","Test":"TestCounterClear","Output":"{"Time":"2017-11-11T13:05:28.267472348+03:00","Action":"pass","Package":"github.com/rcrowley/go-metrics","Test":"TestCounterClear","Elapsed":0}
{"Time":"2017-11-11T13:05:28.267476892+03:00","Action":"run","Package":"github.com/rcrowley/go-metrics","Test":"TestCounterDec1"}

The third line is barely parseable.

@zolotov Would you be willing to open new issues for the problems you have found?  Thanks.

@iangudger I can but I believe these problems show that this issue is not solved, what's the point of creating one more "support json output" issue?

@zolotov, you got the wrong Ian.
We don't reuse bugs. The bug is closed and is not tracked on our dashboards, so comments here are likely to go into the void and never been seen.

@zolotov The general problem of JSON output is, we believe, solved.  You are talking about specific problems with the solution.

I filed #22734

@bradfitz got it. thanks


Move documentation to the Admin repository

As per https://github.com/expressjs/discussions/issues/200, moving all the documents that explain how the Express.js project is handled to a specific Admin repository. This will allow the organization to have one setup of the files (documentation, charters...), lowering the maintenance needed for update.
Blocked by: https://github.com/expressjs/Admin/pull/2 (to validate the files organization)

Actually one other question, there may be some foundation wide guidance on where the charter and CoC at least goes. Maybe we can leave those here for now?

Actually one other question, there may be some foundation wide guidance on where the charter and CoC at least goes, maybe we can leave those here for now?

Good point! I will ask and see what would be the recommendation (or requirement - maybe the CoC need to be part of all projects for example)

Strong agree that we cannot merge this until we have things sorted and stable over there. I also still think that for the Charter, contributing, and maybe even CoC we need a skeleton doc in every repo which links out to the main content ones. Something like:

The Express project is made up of many components, we use s centralized copy of the CoC found here.


GSD Request

--- GSD JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v5.15.25",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=4c958f0c5714812461da7785393315b35145ac8c"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "4c958f0c5714812461da7785393315b35145ac8c",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "ax25: improve the incomplete fix to avoid UAF and NPD bugs\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.15.25 by commit 4c958f0c5714812461da7785393315b35145ac8c. For more details please see the references link."
}
--- GSD JSON ---

This issue has been assigned GSD-2022-1000451


Design system / cards: engagement

For standalone engagement cards (not attached to project cards)...

Hover state: grey 1 background, no drop shadow, grey 3 1px border, bottom line is 1 shade lighter (blue 5)
Focus state: white background, blue 6 border 3px, drop shadow


tjm adds duplicate clusters to cluster array in asset.json

tjm should should check that cluster exists before adding a url to the cluster array

resolved with pr #35


Loading the Model on Google Colab

@nixingyang
Hi!
I am trying to load the model on Google Colab. But I am facing issues and I am unable to resolve it.
As suggested in point 1 (#3 ): I have defined the model using init_model. But I am unable to call test_on_batch and load_weights.
When I tried this code snippet after init_model:
_ = training_model.test_on_batch(train_generator[0])
# Load weights from the pretrained model
training_model.load_weights(pretrained_model_file_path)

I got this error:
NameError: name 'training_model' is not defined
It is obvious as first I have to call init_model in order to get training_model.

But when I tried this code:
python3 -u solution.py --dataset_name "Market1501" --backbone_model_name "ResNet50" --pretrained_model_file_path "?.h5" --output_folder_path "evaluation_only" --evaluation_only --freeze_backbone_for_N_epochs 0 --testing_size 1.0 --evaluate_testing_every_N_epochs 1

It gives me this error:
File "<ipython-input-7-44d28dd95e5d>", line 1
    python3 -u solution.py --dataset_name "Market1501" --backbone_model_name "ResNet50" --pretrained_model_file_path "/content/gdrive/Market1501_ResNet50_9502037.h5" --output_folder_path "evaluation_only" --evaluation_only --freeze_backbone_for_N_epochs 0 --testing_size 1.0 --evaluate_testing_every_N_epochs 1
                      ^
SyntaxError: invalid syntax

How do we load this model? I would be grateful for your help.

Hi,
You should run the command python3 -u solution.py ... in a Bash shell rather than an IPython environment.
That is the reason why it yields the syntax error.
To solve this, please check this post. You could try %run ./solution.py ....
All the best.
Xingyang

@nixingyang
Thank you so much for your response.
But how do we initiate training_model and inference_model?
In order to call:
_ = training_model.test_on_batch(train_generator[0])
# Load weights from the pretrained model
training_model.load_weights(pretrained_model_file_path)

we first need training_model and inference_model. Right? Like:
training_model, inference_model, preprocess_input = init_model(
        backbone_model_name=backbone_model_name,
        freeze_backbone_for_N_epochs=freeze_backbone_for_N_epochs,
        input_shape=input_shape,
        region_num=region_num,
        attribute_name_to_label_encoder_dict=
        train_and_valid_attribute_name_to_label_encoder_dict,
        kernel_regularization_factor=kernel_regularization_factor,
        bias_regularization_factor=bias_regularization_factor,
        gamma_regularization_factor=gamma_regularization_factor,
        beta_regularization_factor=beta_regularization_factor,
        use_adaptive_l1_l2_regularizer=use_adaptive_l1_l2_regularizer,
        min_value_in_clipping=min_value_in_clipping,
        max_value_in_clipping=max_value_in_clipping,
        evaluate_concatenated_embedding=evaluate_concatenated_embedding)

Regards

Yes. You could initiate those models by calling init_model.
Xingyang

I have tried but calling init_model needs the arguments. What about the arguments, then?

You may find the default values in the FLAGS variable. Alternatively, one could explicitly change those values in the command, i.e., python3 -u solution.py ....
Xingyang

I have accessed all the parameters from FLAGS variable but what should I pass to attribute_name_to_label_encoder_dict?

Yes. It is better to run the script as it is and debug it line by line if you have doubts.
Xingyang

When I execute %run solution.py, it gives me this error:
---------------------------------------------------------------------------
DuplicateFlagError                        Traceback (most recent call last)
/content/AdaptiveL2Regularization/solution.py in <module>()
     35 from utils.vis_utils import summarize_model, visualize_model
     36
---> 37 flags.DEFINE_string("root_folder_path", "", "Folder path of the dataset.")
     38 flags.DEFINE_string("dataset_name", "Market1501", "Name of the dataset.")
     39 # ["Market1501", "DukeMTMC_reID", "MSMT17"]

3 frames
/usr/local/lib/python3.7/dist-packages/absl/flags/_flagvalues.py in __setitem__(self, name, flag)
    436         # module is simply being imported a subsequent time.
    437         return
--> 438       raise _exceptions.DuplicateFlagError.from_flag(name, self)
    439     short_name = flag.short_name
    440     # If a new flag overrides an old one, we need to cleanup the old flag's

DuplicateFlagError: The flag 'root_folder_path' is defined twice. First from solution.py, Second from solution.py.  Description from first occurrence: Folder path of the dataset.
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-22-43b0ff2d49d6> in <module>()
----> 1 get_ipython().magic('run solution.py')

5 frames
<decorator-gen-51> in run(self, parameter_s, runner, file_finder)

/usr/local/lib/python3.7/dist-packages/IPython/core/pylabtools.py in mpl_execfile(fname, *where, **kw)
    175         matplotlib.interactive(is_interactive)
    176         # make rendering call now, if the user tried to do it
--> 177         if plt.draw_if_interactive.called:
    178             plt.draw()
    179             plt.draw_if_interactive.called = False

AttributeError: 'function' object has no attribute 'called'

Alternatively if I try to run using !python solution.py, I get this error:
2021-03-24 20:10:40.167534: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
Getting hyperparameters ...
Using command solution.py
? False
alsologtostderr False
augmentation_num 1
backbone_model_name ResNet50
beta_regularization_factor 0.005
bias_regularization_factor 0.005
dataset_name Market1501
epoch_num 200
evaluate_testing_every_N_epochs 10
evaluate_validation_every_N_epochs 1
evaluation_only False
freeze_backbone_for_N_epochs 20
gamma_regularization_factor 0.005
hbm_oom_exit True
help False
helpfull False
helpshort False
helpxml False
identity_num_per_batch 16
image_augmentor_name RandomErasingImageAugmentor
image_height 384
image_num_per_identity 4
image_width 128
kernel_regularization_factor 0.005
learning_rate_base 0.0002
learning_rate_drop_factor 10.0
learning_rate_end 0.0002
learning_rate_lower_bound 2e-06
learning_rate_mode default
learning_rate_start 0.0002
learning_rate_steady_epochs 30
learning_rate_warmup_epochs 10
log_dir
logger_levels {}
logtostderr False
max_value_in_clipping 1.0
min_value_in_clipping 0.0
only_check_args False
op_conversion_fallback_to_while_loop True
output_folder_path /content/AdaptiveL2Regularization/output_2021_03_24
pdb False
pdb_post_mortem False
pretrained_model_file_path
profile_file None
region_num 2
root_folder_path
run_with_pdb False
run_with_profiling False
runtime_oom_exit True
save_data_to_disk False
showprefixforinfo True
stderrthreshold fatal
steps_per_epoch 200
test_random_seed 301
test_randomize_ordering_seed
test_srcdir
test_tmpdir /tmp/absl_testing
testing_size 1.0
use_adaptive_l1_l2_regularizer True
use_cprofile_for_profiling True
use_data_augmentation_in_evaluation False
use_data_augmentation_in_training True
use_horizontal_flipping_in_evaluation True
use_identity_balancing_in_training False
use_re_ranking False
v 0
validation_size 0.0
verbosity 0
workers 5
xml_output_file
Recreating the output folder at /content/AdaptiveL2Regularization/output_2021_03_24/Market1501_384x128/ResNet50_16_4 ...
Loading the annotations of the Market1501 dataset ...
Traceback (most recent call last):
  File "solution.py", line 1070, in <module>
    app.run(main)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "solution.py", line 842, in main
    load_accumulated_info_of_dataset(root_folder_path=root_folder_path, dataset_name=dataset_name)
  File "/content/AdaptiveL2Regularization/datasets/__init__.py", line 36, in load_accumulated_info_of_dataset
    root_folder_path = _get_root_folder_path()
  File "/content/AdaptiveL2Regularization/datasets/__init__.py", line 19, in _get_root_folder_path
    root_folder_path = root_folder_path_list[root_folder_path_mask.index(True)]
ValueError: True is not in list

Using !python solution.py looks correct.
The True is not in list error: You need to specify root_folder_path_list in datasets/__init__.py.
Xingyang

os.path.expanduser("~/Documents/Local Storage/Dataset"),
        "/sgn-data/MLG/nixingyang/Dataset"

In this list both of the paths are of the root folder containing datasets, right?
If it is then on my side all three of the datasets should also be present in my root folder?

Yes. Just append your path to the list, and the script will identify it.
You only need to have the dataset that you want to check on the disk.
Xingyang

Then why does it give me this assertion error?
2021-03-24 20:56:39.658331: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
Getting hyperparameters ...
Using command solution.py
? False
alsologtostderr False
augmentation_num 1
backbone_model_name ResNet50
beta_regularization_factor 0.005
bias_regularization_factor 0.005
dataset_name Market1501
epoch_num 200
evaluate_testing_every_N_epochs 10
evaluate_validation_every_N_epochs 1
evaluation_only False
freeze_backbone_for_N_epochs 20
gamma_regularization_factor 0.005
hbm_oom_exit True
help False
helpfull False
helpshort False
helpxml False
identity_num_per_batch 16
image_augmentor_name RandomErasingImageAugmentor
image_height 384
image_num_per_identity 4
image_width 128
kernel_regularization_factor 0.005
learning_rate_base 0.0002
learning_rate_drop_factor 10.0
learning_rate_end 0.0002
learning_rate_lower_bound 2e-06
learning_rate_mode default
learning_rate_start 0.0002
learning_rate_steady_epochs 30
learning_rate_warmup_epochs 10
log_dir
logger_levels {}
logtostderr False
max_value_in_clipping 1.0
min_value_in_clipping 0.0
only_check_args False
op_conversion_fallback_to_while_loop True
output_folder_path /content/AdaptiveL2Regularization/output_2021_03_24
pdb False
pdb_post_mortem False
pretrained_model_file_path
profile_file None
region_num 2
root_folder_path
run_with_pdb False
run_with_profiling False
runtime_oom_exit True
save_data_to_disk False
showprefixforinfo True
stderrthreshold fatal
steps_per_epoch 200
test_random_seed 301
test_randomize_ordering_seed
test_srcdir
test_tmpdir /tmp/absl_testing
testing_size 1.0
use_adaptive_l1_l2_regularizer True
use_cprofile_for_profiling True
use_data_augmentation_in_evaluation False
use_data_augmentation_in_training True
use_horizontal_flipping_in_evaluation True
use_identity_balancing_in_training False
use_re_ranking False
v 0
validation_size 0.0
verbosity 0
workers 5
xml_output_file
Recreating the output folder at /content/AdaptiveL2Regularization/output_2021_03_24/Market1501_384x128/ResNet50_16_4 ...
Loading the annotations of the Market1501 dataset ...
Use /content/gdrive/MyDrive/Colab Notebooks as root_folder_path ...
Traceback (most recent call last):
  File "solution.py", line 1070, in <module>
    app.run(main)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "solution.py", line 842, in main
    load_accumulated_info_of_dataset(root_folder_path=root_folder_path, dataset_name=dataset_name)
  File "/content/AdaptiveL2Regularization/datasets/__init__.py", line 47, in load_accumulated_info_of_dataset
    root_folder_path=root_folder_path)
  File "/content/AdaptiveL2Regularization/datasets/market1501.py", line 65, in load_Market1501
    image_folder_name="bounding_box_train")
  File "/content/AdaptiveL2Regularization/datasets/market1501.py", line 25, in _load_accumulated_info
    assert len(image_file_path_list) == 12936
AssertionError

Something is wrong with your dataset. Please debug the code line by line.
Xingyang

@nixingyang Grateful for your help! Thank you! :)


Write python wrapper

Description
To get mfcc-rust with python, we will need a wrapper.
TODO: add in helpful link on how to do that
TODO: write steps needed to close this issue with checkboxes.
DoD (definition of done)

passes 4 unit tests
can run successfully with Python version of Precise (training and inference)

basic wrapper is already implemented so closing this


Rule "twig-block-name-snake-case" applies for numbers within string

The rule twig-block-name-snake-case applies for numbers directly within a string. I guess it assumes page_product_detail_rich_snippets_gtin_13 instead.
   ┌─ storefront/page/product-detail/buy-widget.html.twig:12:22
   │
12 │             {% block page_product_detail_rich_snippets_gtin13 %}
   │                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: rename this block in snake_case

   ┌─ storefront/page/account/register/index.html.twig:28:54
   │
28 │                                             {% block page_account_register_advantages_entry1 %}
   │                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: rename this block in snake_case

Examples:
{# storefront/page/account/register/index.html.twig #}

{% block page_account_register_advantages_entry1 %}
{% block page_account_register_advantages_entry2 %}
{% block page_account_register_advantages_entry3 %}
{% block page_account_register_advantages_entry4 %}

I kind of agree with the rule that it would be prettier to have a _ before the number. However, for shopware platform (Storefront) we would have to do deprecations and "unnecessary" major version changes in order to fix it. What do you think? Should this be configurable or allowed?
There can be also stuff like "proper names" {% block b2b_something %} where b_2_b_something might be overkill and look strange.
I think for the time being we can ignore those blocks in platform.

The main issue
For me things like:
{% block page_account_register_advantages_entry1 %}
{% block page_account_register_advantages_entry2 %}

{% block b2b_something %}

{% block something_v1_child %}

should all stay the same and don't get suggestions for splitting the number apart.
Only obvious non snake_case names should be reported and suggested (the above are in my view still valid snake_case).
But cases like:
{% block pageAccountRegister %}
{% block page-account-register %}

{% block b2bSomething %}

{% block something_v1-child %}

should be reported and ideally would also have a suggestion.
The other issue
You mention that this causes breaking changes in Shopware. I would suggest using {# ludtwig-ignore twig-block-name-snake-case #} for these places then.
The maybe issue
--fix maybe fixes too much 🤷♂ . We could add some kind of filtering / levels to the suggestions (like Styling, Naming, Refactoring or something with a more obvious order 🤔 ) and then run --fix styling, which only fixes stylistic issues like indentation and line breaks. But that requires quite a bit of extra work and I don't think it is worth it at this point (feel free to prove me wrong).


Allow incomplete url builder tostring

toString is useful for debug even when incomplete

n.b. the builder.toString is used for the HttpUrl.toString representation, but those fields are non null and > 0 for any valid HttpUrl.

https://github.com/square/okhttp/pull/4361


[Feature Request] Support Live Preview Mode

It is supported, but only wiki Links is supported

In my own test vault everything works as expected in live preview mode. Local files as well as files in the web do work without problems.
Could you provide an example that is not working?

With my install, in either live preview or legacy preview, I can only get the plugin to adjust once. It works once, sets the image at [[image name | 300]] or whatever number, and never adjusts again.
Ive disabled all other community plugins, disabled all themes and custom CSS. Tried on a new vault. Disabled other software that I know looks out for modifiers (better touch tool, keyboard maestro )
I tried it on a recent version 13.x and am now trying on 14.4 with same results.
Using Mousewheel version 1.0.13


[enhancement] Rewrite it in Tkinter

This would make the program smaller in size and less dependent on Qt-related modules.

Done in v0.0.2


docs: add script to add RFCs to mdBook

This branch adds a Python script that appends the RFCs in the rfcs dir to the mdBook.
I'm not 100% convinced this is the "best approach", since the script has to be run before building the mdBook. Alternatively, we could just make the RFCs dir a subdirectory of the mdBook, and require PRs that add new RFCs to add them to the index as well. That requires more effort when adding an RFC, and means they can no longer live in a top-level rfcs/ directory. But, on the other hand, it means you don't have to run a big wad of random janky python before you can generate the book.
@jamesmunns WDYT?

No objections, would it be worth it to add it to the "run CI" script in the scripts/ folder so it gets run automatically on docs builds?

No objections, would it be worth it to add it to the "run CI" script in the scripts/ folder so it gets run automatically on docs builds?

yeah, i haven't done the plumbing to add it to CI, or added docs; wanted to make sure we felt good about this approach first. happy to add it if we feel good about this way of generating the RFCs!


Use coherent formatting with spdlog

In GitLab by @tpaluszk on May 7, 2019, 12:01
Using the same formatting library as used in spdlog (fmt) should prevent issues with accidental passing of non-POD to the c++ string format.

In GitLab by @ksiero on Feb 14, 2020, 10:11
closed

@ksiero is this done?

In GitLab by @ksiero on Feb 14, 2020, 10:11
Yes, it is. I don't know how I missed this issue when I was looking at issue list.


Typst Support

There seems to be significant enthusiasm behind a new typesetting system called Typst to replace LaTeX. I would like to be able to use this package with it.
A Latexify.jl equivalent Typstry.jl already exists, so hopefully you can just swap out the backend?
Probably a big ask, but I leave it anyway for your consideration. Thanks.

All of the code is heavily dependent upon the Latexify.jl package, so I don't think this is doable without a Typst equivalent of latexify.jl. It looks like Typstry is more so the equivalent to LaTeXStrings.jl right?
However, I have used the typst option for rendering in quarto and the handcalcs equations render out. Have you tried that?

@jakobjpeters can you comment on feasibility here?

I tried typst for the first time last night, and it is pretty amazing. I guess time will tell how good integration we can get in Julia with typst, but yeah I can try and get it integrated once features are closer to Latexify!


not work in React 0.13.3

React: 0.13.3
Webpack: 1.13.1
Error: ./~/react-draggable/dist/react-draggable.js
Module not found: Error: Cannot resolve module 'react-dom'

It's working for me - this project doesn't list react-dom as a peer dependency, but you need to install it in your app npm install<EMAIL_ADDRESS>--save

This does not support such an old version of React. You may be able to get
it working if you go through the old releases.
On Oct 23, 2016 11:14 PM, "xueshan peng"<EMAIL_ADDRESS>wrote:

React: 0.13.3
Webpack: 1.13.1
Error: ./~/react-draggable/dist/react-draggable.js
Module not found: Error: Cannot resolve module 'react-dom'
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mzabriskie/react-draggable/issues/202, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ABJFP4UizetMt1wqHY2a_IhXOFaz2RMiks5q3DC6gaJpZM4KeYTZ
.


Support for pre-Dec 2014 CU

For customers not on (or willing to move to) recent CUs would it be possible to support not setting MajorVersionLimit and MajorWithMinorVersionsLimit.  Even though EnableVersioning might be false in template an error is thrown regarding set_MajorVersionLimit method not being available.
Ref: http://blogs.msdn.com/b/vesku/archive/2014/12/15/latest-api-updates-in-client-side-object-model-dec-2014-cu-for-sp2013.aspx

I second this request. Provisioning is breaking in our client's environment and there's no way they'll accelerate their CU deployment just for this.
The engine should fail gracefully when encountering non-supported attributes. Is that reasonable to achieve?

Due resourcing constraints, we'll need to select a supported CU version for the on-premises. This means that we simply cannot implement different supports for the CUs even request does make sense. If you need to use the engine with older version, we would suggest to pull down the code, change the code and compile the engine again for your usage.


fix for filename counter of gromacs engine

Closes #942. As proposed there I slightly modified the test to reset the counter via its own reset() method instead of via the engines set_filenames() method.
Engine works and test pass with and without the counter reset in set_filenames(), so it is now a matter of preference if we want to have that reset in set_filenames(). I left it in for now, was not sure what your preference is here.

I think it makes sense to keep it. I think this difference is this: with reset, you can restart your engine with engine.set_filenames(last_num); without reset, that does not work (but you can always restart with engine.filename_setter.reset(last_num + 1)). Is that correct? If so, I'd say that keeping the engine.set_filenames() approach is probably needed to maintain the API.

Yes, if by restart you mean creating a new gromacs engine object. When loading the old engine from storage the count is preserved, i.e. no reset is necessary to continue with a loaded gromacs engine.

[Also, I forgot to mention that I was +1 on the -nt 1 for tests. I feel like you mentioned this at some point long ago, and I agreed, but then never put it in. Thanks for that!]
Time is relative, I think I first brought it up 2 days ago :)

When loading the old engine from storage the count is preserved, i.e. no reset is necessary to continue with a loaded gromacs engine.

It does? Across sessions? I honestly don't remember writing code that would do that, and don't see anything at a quick glance.

Time is relative, I think I first brought it up 2 days ago :)

Haha... maybe it was someone else using the Gromacs engine who mentioned it? Can't find it in issues here, so must have been in person. Maybe @gyorgy-hantal when we were both visiting the UvA.
Apparently I'm getting old enough that my memory is failing in general!

Haha... maybe it was someone else using the Gromacs engine who mentioned it? Can't find it in issues here, so must have been in person. Maybe @gyorgy-hantal when we were both visiting the UvA.

Nice, I wasn't aware this was fixed - for sure not in the version I use (released before Feb 2020) ... maybe time to update... :-D


Added example for DEBUG=amqp10:client env variable

Oh noes i broke the build.

well that's really strange, seems to be related to the secret SB/EH variables built into travis, I'm forcing a rerun to see if it was a fluke

hmm no dice, we'll have to wait for @noodlefrenzy to wake up to take a look at that since he set it up (and actually knows the contents of those env variables). They may have just expired or something silly.

I don't allow forks to see those env variables (otherwise people could just submit PRs with tests that just dump the keys). I'll take a look at what would be required to disable those tests on forks - I'm fairly certain there's a travis environment variable I should be using there. In the meantime, I'll merge the PR as it looks good, thanks!

oh, duh :smile:


REGION_THREAD_PROGRESS signal is broken

This signal always returns -1.  A reproducer is to run simple_prof_c from the examples as follows:
geopmlaunch srun -N1 -n1 --geopm-trace test_prog --geopm-trace-signals=REGION_THREAD_PROGRESS@cpu -- ./examples/simple_prof_c

and examine the progress columns in the trace.

One problem seems to be the way ProfileThreadTable::enable() is called.  The only call I see is for nested MPI regions; otherwise thread profiling is never enabled.
Note: look into whether m_is_enabled should be initialized to true in one of the constructors; seems wrong.


Signed-off-by: Jatin Vishwakarma<EMAIL_ADDRESS>

Was facing problem related  squashing all the commits into a single one so done changes in the forked one

You need to do
git add <the files>
git commit -S
git push -u

The Signed-off-by line should not be the first in the commit.
You only need to have one single commit.

Also, it's weird that now you have 2 files with different letter casing. Only one should be needed.

@coddingjatin thanks for your contribution! I see that you have two similar pull requests open. Which would you rather work in? I'll close the other.

Actually, now that I look at the content of the change, it's clearly irrelevant and possibly AI-generated. Closing this PR as invalid.

I should have checked the contents too, not just the style

Soo Sorry for misunderstanding and problems you guys faced , Actually i had taken help of AI to make content more effective and well mannered. But surely will contribute in future , Thank you for  giving your time. And Closing this PR


Init sim

fixes bug, now able to init with fresh bucket without residual state interfering.

only moan I have is out can be a tad long, but not something that stops me approving this

Checking AWS cli installed..installed
Checking AWS region defined..defined
Checking Docker is running..running
Checking persistent directory exists..exists
Checking /Users/jonathankent/Documents/GitHub/simulator/terraform/deployments/AWS/.terraform is doesn't exist..directory deleted


Plan Page

create a .jsx planpage based on the figma design provided

Page created, needed to integrate in app


Allow template arguments to be documented

Currently, if I attempt to attach a doc comment to a template argument, like this:
        /// Used for CSS/JS cache-busting
        build_timestamp: &'static str,

...I get the following error:
error: expected identifier
  --> src/templates.rs:58:9
   |
58 |         /// Used for CSS/JS cache-busting
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I'm left having to manually add an Arguments section containing a bulleted list to the documentation block for the template as a whole, resulting in this needlessly redundant and typo-prone output:

I've implemented this in https://github.com/utkarshkukreti/markup.rs/commit/45327272008c74090fa701ee26ff52d55fca9301, please let me know if it works for you.

Looks good. :)


Replace "Finished" after completion with "Finished - Number of Rows Processed: XX" and Time for Processing

Would like to add a counter to report at the end how many rows were processed from the file, along with how long it took to complete the processing.

Great suggestion!


[BUG] Emby status check does not work

Environment
Self-Hosted (Bare Metal)
System
Debian
Version
12
Describe the problem
Emby server returns -113 error on the status check when a service is up and running
Additional info

Please tick the boxes

[X] You have explained the issue clearly, and included all relevant info
[X] You are using a supported version of Dashy
[X] You've checked that this issue hasn't already been raised
[X] You've checked the docs and troubleshooting guide
[X] You agree to the code of conduct

I tried different configurations, e.g http, https, local LAN and public.
All other services (proxmox, nginx, sonnar etc) work fine, except emby

Emby the only service that does not report status check @Lissy93

Emby the only service that does not report status check @Lissy93

Hi
Please do NOT ping Lissy93. Or at least not for a service not being detected as online.
I quickly spun up emby and tested in dashy and it all worked fine for me.

For the URL I used http://{ip}:8096
8096 as because it is the port that emby runs on, except you set this up differently.
This is a configuration issue on your side.

+1 to CrazyWolf's response, looks like a config error on your end. Have you seen this section of the troubleshooting  https://github.com/Lissy93/dashy/blob/master/docs/troubleshooting.md#status-checks-failing guide?


Server side rendering with InfiniteLoader + WindowScroller + AutoSizer + List

I am trying to leverage react-virtualized for a server side rendered app. Given that the calculation of the number of elements that need to be rendered is done at componentDidMount, my server side rendered html list is empty. Here is a relevant snippet:
<InfiniteLoader
    isRowLoaded={isRowLoaded}
    loadMoreRows={loadMoreRows}
    rowCount={total}
    minimumBatchSize={24}
    className={styles['product-list']}
  >
{({ onRowsRendered, registerChild }) => (
    <WindowScroller>
    {({ height, isScrolling, scrollTop }) => (
        <AutoSizer disableHeight>
        {({ width }) => (
          <List
            ref={registerChild}
              className="List"
              autoHeight
              height={height}
              width={width}
              onRowsRendered={onRowsRendered}
              rowCount={total}
              rowHeight={500}
              rowRenderer={rowRenderer}
              scrollTop={scrollTop}
              overscanRowCount={8}
          />
          )}
      </AutoSizer>
      )}
    </WindowScroller>
    )}
</InfiniteLoader>

I would like to ensure that server rendered html has 24 elements. Is this something that is achievable right now?

Yes this is definately achievable, however was time consuming for me to get setup right.
I have found that I needed to fake some of the calculations that react-virtualised does client side, in regard to dimensions, on the server
First off, decide our how close to the client render you want the SSR output to look?
If you dont mind bit of screen yank, then you could provide a fixed width/height to components like AutoSizer. It may be good enough for your application.
If you want the output to be fairly close to the same client dimensions, you need to figure out how you want to transmit the client dimensions to the server
eg client hints or cookie
You may also need to override the output of WindowScroller/AutoSizer with some logic like this
var height_to_use = isbrowser() ? height_from_windowsscroller : height_from_client_hints;

Thanks @OzySky, @djeeg. Got this to work with the below piece of code. However, not sure if there is a cleaner way to achieve the same.
<InfiniteLoader
    isRowLoaded={isRowLoaded}
    loadMoreRows={loadMoreRows}
    rowCount={total}
    minimumBatchSize={24}
    className={styles['product-list']}
  >
{({ onRowsRendered, registerChild }) => (
    <WindowScroller>
    {({ height, width, isScrolling, scrollTop }) => (
          <List
            ref={registerChild}
              className="List"
              autoHeight
              height={getHeight(height)}
              width={getWidth(width)}
              onRowsRendered={onRowsRendered}
              rowCount={_props.designs.length}
              rowHeight={getRowHeight}
              rowRenderer={rowRenderer}
              scrollTop={scrollTop}
              overscanRowCount={getOverscanRowCount()}
          />
      )}
    </WindowScroller>
    )}
</InfiniteLoader>

    function getWidth(parentWidth) {
        return isRunningOnServer() ? 400 : parentWidth;
    }

    function isRunningOnServer() {
        return typeof window === 'undefined';
    }

I think this approach will have a warning #892 is mentioning.

Hello! 😄
For this type of question, I suggest using Stack Overflow with a #react-virtualized tag or asking in the react-virtualized Slack channel. Issues are reserved for bug reports and feature-requests.
This helps keep the project somewhat more maintainable for me and hopefully gets you an answer faster (since more people check those places than monitor GitHub issues). 😄


Homebrew installation: workflow improvements

This PR should address comments from Balaji while testing the Homebrew installation workflow

Looks good.

Thanks


Display Project Board Associations in Issues Tab

Description
This feature could be implemented like the display behaviour of milestones within the issues tab for project boards.
How milestone is displayed on a issue in the overview tab:

Example URLs
All cards connected to a issue would get a label of the project, just like milestone is done.
https://github.com/refined-github/refined-github/issues?q=is:issue+is:open+sort:updated-desc

As this page mentioned in the issue template, we don't extend anything related to projects:
https://github.com/refined-github/refined-github/wiki/"Can-you-add-this-feature%3F"
Also: https://github.com/refined-github/refined-github/issues/6968#issuecomment-1739059321


Drop celery completely

It seems to be necessarily to routinely clear out old tasks from the celery queue, otherwise the task runner grinds to a halt (and when new data files are uploaded, the spinny wheel just keeps spinning).
I’m not sure why this happens… I note that CoVE doesn’t process files in the background, and I wonder if it’s because of this sort of added complexity.

I’ve started using rq elsewhere and I really like it. Might be worth investigating switching to that.


Handle selector inference for a readwrite witness of a read-only req

The storage declaration will match a requirement in the protocol, but the setter decl will not. Just keep going.
rdar://problem/32358570

@swift-ci Please test


Failed CSV shouldn't block operator uninstall

/kind bug
What steps did you take and what happened:
[A clear and concise description of what the bug is.]
Failed CSV will block the operator to be deleted by OperatorRequest updating/deletion.
What did you expect to happen:
Even if the operator is failed, it can be deleted by ODLM.
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Environment:

ODLM version:
Minikube/KIND/OCP version:
Kubernetes version: (use kubectl version):
OS (e.g. from /etc/os-release):

It is fixed by https://github.com/IBM/operand-deployment-lifecycle-manager/pull/442


add randomDelay logic

Python Nudge has a feature to randomly delay the launch by up to 1200 seconds.

make a new optional key maxRandomDelayInSeconds with a default of 1200
add the random delay logic to the nudgeStartLogic() function

Addressed with: https://github.com/erikng/NudgeSwift/pull/54
I ended up going a different route than part 2 of this request as it did not work in that function.


Inline code not styled in editor

Discussed in https://github.com/StaticJsCMS/static-cms/discussions/878

Originally posted by fimion September 14, 2023
I am currently editing an article and relized that for some reason an inline <code> reference doesn't appear to get any sort of formatting, and I'm having a hard time figuring out which words have been highlighted as such. I don't know how easy it is to apply formatting to the editor stuff, but it might be wise to make sure that things have some distinction?
I might be able to take a crack at this at some point.

@fimion this is resolved in version 3.3.1


[opt] stop script opt

Proposed changes
Issue Number: close #xxx
Problem Summary:
opt stop scripts and add more helpful info.
In the situation that FE or BE is started by user A but user B tries to stop it, script will return ERROR info instead of nothing.
Checklist(Required)

Does it affect the original behavior: No
Has unit tests been added: No
Has document been added or modified: No Need
Does it need to update dependencies: No
Are there any changes that cannot be rolled back: No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

@morningman


Possible to allow the evaluate button to be moveable?

https://github.com/SanjoSolutions/crafting-addon/blob/8a3085ae0e090df9166db2af508d82f4fd2e9873/Plan.lua#L82
Would you consider making/allowing the 'evaluate' button to be moveable? or possibly anchor it to the crafting window/frame? Instead of having it statically anchored it to the bottom right corner area of the screen as it appears to be defined? Or suggest how I could make the modification myself?
local evaluateButton = CreateFrame("Button", nil, UIParent,

  "UIPanelButtonTemplate")

evaluateButton:SetSize(80, 22)

evaluateButton:SetTextToFit("Evaluate")

evaluateButton:SetPoint("BOTTOMRIGHT", -10, 100)

evaluateButton:SetScript("OnClick", function()

Thank you in advance!

Or suggest how I could make the modification myself?

With the line evaluateButton:SetPoint("BOTTOMRIGHT", -10, 100) the position can be changed.


Prefer Map.from_struct over Map.delete(:struct)

Casting a struct into a map through the standard library is often safer and more future-proof.

Thanks!


move configure step to draw time, to support render call

Chart.js has a render function in addition to update. Unlike update, calling render does not recalculate the layout and update datasets, so it is far more performant in cases where only config or plugins have to be updated. However, render does not invoke the afterScaleUpdate hook, so calling render with an updated annotation config will not update the annotation, since element.configure() takes place in the afterScaleUpdate hook.
To remedy this, I've moved the element.configure() call to within the draw function, so that it still gets called when render is called. This means that, in scenarios when only annotations need to be updated, we can now call render instead of update for a significant speedup in situations where layout or dataset updates are expensive.

Is chart.render() supposed to update annotations now? I have an example where calling update() works but calling render() does not.


Not working in IE when used with TypeScript

I am using @autobind from core-decorators in a TypeScript codebase, and I am seeing errors when trying to execute my code in IE. It works in Chrome, and I have only tried reproducing the error in IE11, so far.

The issue appears to stem from the spread operator in autobind.js:
// original source code
function handle(args) {
  if (args.length === 1) {
    return autobindClass(...args);
  } else {
    return autobindMethod(...args);
  }
}

// the generated output, which I am consuming from npm
function handle(args) {
  if (args.length === 1) {
    return autobindClass.apply(undefined, _toConsumableArray(args));
  } else {
    return autobindMethod.apply(undefined, _toConsumableArray(args));
  }
}

// auto-generated function to handle spread operator
function _toConsumableArray(arr) {
  if (Array.isArray(arr)) {
    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2;
  } else {
    // the offending line
    return Array.from(arr);
  }
}

The Array.from is the issue, since IE does not have support for it.
Thoughts?

The main issue here is that the emitted lib files have ES6-specific functions, and I am not running through any additional transpiling on my end, aside from my TypeScript code, which is being compiled to ES5.
This is also semi-related to #35.

I don't believe this is something I'll be able to accommodate since IMO people should be including an ES6 polyfill library if you're using ES6 and above syntax. Babel users include babel-polyfill which itself includes the core-js polyfill lib. I'm not sure what TypeScript users use. If I include the polyfill, it will add bloat that a vast majority of users don't need since they're already polyfilling ES6. core-decorators actually doesn't officially support TypeScript, but I try to fix a majority of the issues that get reported, as long as it doesn't notably impact the more common ES6 users via babel et al.
That said, it certainly doesn't hurt to warn users in the README that this library assumes you've polyfilled  to ES6.
Thoughts?

Yea, I think you are right on that one.
I generally like to avoid global polyfills, in favor of ponyfills, but in this case I suppose I'll just polyfill the necessary libs. No biggie :smile:
Warning in the README would be a nice heads up, especially since the issue is not noticeable in Chrome, since it has more complete ES6 support.

@maxdeviant thanks for understanding and of course for letting me know, since I did not in fact realize the spread operator transpiles to that. I'll add that warning.

@jayphelps thanks buddy. Its resolved with your help for me. Its working in IE11 now by just installing
npm install --save babel-polyfill
and i have added below imports in my *.ts file.
import "es6-promise/auto"; import "babel-polyfill";
Thank you very much for your help


[SPARK-12522] [SQL] [MINOR] Add the missing the document strings for the SQL configuration

Fixing the missing the document for the configuration. We can see the missing messages "TODO" when issuing the command "SET -V".
spark.sql.columnNameOfCorruptRecord
spark.sql.hive.verifyPartitionPath
spark.sql.sources.parallelPartitionDiscovery.threshold
spark.sql.hive.convertMetastoreParquet.mergeSchema
spark.sql.hive.convertCTAS
spark.sql.hive.thriftServer.async

Test build #48317 has started for PR 10471 at commit 1bc2f2d.

Test build #48317 has finished for PR 10471 at commit 1bc2f2d.

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

Merged build finished. Test PASSed.

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

Test build #48382 has started for PR 10471 at commit 91ec5de.

Test build #48382 has finished for PR 10471 at commit 91ec5de.

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

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

Merged build finished. Test PASSed.

Thanks - I've merged it.


fix(breaking): ACNA-1682 - HTTP/HTTPS proxy agent logic

ACNA-1682 | HTTP/HTTPS Proxy Agent Logic
Description
https://github.com/adobe/aio-lib-core-networking/blob/b8dca7b8c0ab6c91b5fad0343a84635f1690ecb0/src/ProxyFetch.js#L79-L83
This bases whether to use HTTP/HTTPS proxy based on what the proxy protocol is, however this logic is wrong, it should be based on what the end point protocol is:

Type
Proxy
Server

HttpProxyAgent
HTTP
HTTP

HttpProxyAgent
HTTPS
HTTP

HttpsProxyAgent
HTTP
HTTPS

HttpsProxyAgent
HTTPS
HTTPS

As a result, using an http proxy and connecting to an https endpoint causes the logic to pick HttpProxyAgent which then returns an error from the server as we are trying to connect to it via non HTTPS methods
Fixes #16
Related Issue
https://jira.corp.adobe.com/browse/ACNA-1682
Motivation and Context

How Has This Been Tested?

Code has been test on local machine
Unit tests are passing

Screenshots (if appropriate):

Types of changes

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

Checklist:

[X] I have signed the Adobe Open Source CLA.
[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[X] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[X] All new and existing tests passed.

@moritzraho I flagged this as breaking in the title and description. Can we move forward on  merging this fix?

Sure make sense, thanks for the comments

still waiting on some tests to approve tho

@amulyakashyap09 can you add explicit tests that tests the situations you described in the table?


Prevent the overlay list from being doubled.

The Scene class has a helper called createPotentiallyVisibleSet that calls itself if the view frustums have changed since the last frame.  However, this helper always adds all overlay draw commands, doubling up the number of overlay draw commands when this takes place.
This change zeros out the overlay command list prior to re-creating the potentiallyVisibleSet.  Not sure if this is the right or best way to fix this.
Fixes #2642.

Thanks @emackey.  We'll probably want to handle this a bit differently.  @bagnell or I will look at it next week.

This looks good, @emackey.  I made a tweak.  Please merge.

Tests pass, bug fixed.  Merging.


Ban and warning gives different times

When banning someone using the server command /ban it bans the person as per the server log time. When warning someone via the admin panel it uses GMT time.
https://i.imgur.com/eJ6X2OA.png

What does the server use? CET?

Server uses EST

I actually think me and a few staff members compared log times. The server logs seem to be -9 hours from your local computer time where as if you use the admin panel to create a log (ban or warning) they show as per your local computer time.

It may be -7 hours for everyone, I remember checking with a few different people and we figured it was -7 hours or -9 hours for everyone's local time. If it changes to UTC that would be helpful so the time is the same for everyone

I'm trying to fix it in a way that it will show the time in whatever timezone that the user viewing the page is in.

I believe this has been fixed by #87


error: Failed to lift app: Error: Cannot find module './utils'

When I run sails lift or node app.js I get this issue after installing your package. Do you have any pointers?

:tada: This issue has been resolved in version 3.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Sorry for reopening but there seem to be more issues not in the build


Add Benchmark Result Comparision and Reruns

Previously we cut out the reruns and compare step from the new benchmark gha workflow. This PR reintroduces them.

Shows how a commit status will be added on success/failure of the upload job (only if the job runs so if the benchmark fails nothing will show up)

Thanks @assignUser for working on this! The workflow looks great, but it looks like some of the benchmarks were consistently failing even with the retries (which is something I don't remember seeing in dedicated CCI VMs). As a next step, it would be nice to see if we could run these jobs in a dedicated VM to see if the results become more stable.

@pedroerp the consistently failing jobs were caused by an issue with the normal checkout action and the way github choose the "merge base" (aka not the actual merge base).  Which caused code changes on main to leak in and influence the results. With the last changes I have fixed this issue and the benchmark now shows the correct behavior: https://github.com/facebookincubator/velox/actions/runs/4124428464/jobs/7123666423


Dashboard or API metrics for Sequencer

Problem
A clear and concise description of what the problem is
Ideas to solve this
A clear and concise description of what you think could solve this problem.

Number of bids for transfer (received, processed, sent, failed)
Number of bids by Router (received, failed, sent, successful)
The entry and exit time of transfer at Sequencer
transfers metrics for given origin and destination domains
Volume
number of transfers
fees earned by each router
transfer per sec

Tasks that will be completed after working on this issue:

#1542
#1333
#1543

Acceptance Criteria

[ ] X happens
[ ] Y happens

Other
Update per P2P

P2 sequencer metrics (how many requests it got, how many bids per request were recieved, is there any request that got no bids for a long time)
1. RPCs/Subgraphs/Watcher/Gelato/etc. Some of them I know you monitor at your side, I plan to do RPCs monitoring for those endpoints that are specified in router config (once I would finish with all main metrics and alerts, I would move on to RPCs)
2. we definitely need to be calculated and exported on router container side: number of RPC connections per RPC endpoint. Cause not all RPC endpoints give such stats as above and we cannot get this info from anywhere else. If you can expose this info (just number of requests made, optionally you can specify method - it would simplify debug, as a label e.g. connext_rpc_requests{domain="6450786", url="https://bsc-dataseed.binance.org"} 351
or connext_rpc_requests{domain="6450786", url="https://bsc-dataseed.binance.org", method="eth_call"} 269
) - it would be great. Just increase this count on any request, don't need to store it - once container is restarted just start from 0. The only thing - it's better to cut off URI part not to expose credentials. It would have additional side effect - we would see when router failovers to other RPCs, not using the first one

updated with feedback from P2P

Implementing a lightweight version of tracking last bid time from the sequencer, instead of detailed metrics.


[$250] An error occurred while loading more messaged appear when opening a report

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number:
Reproducible in staging?: need reproduction
Reproducible in production?: need reproduction
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @flodnv
Slack conversation (hyperlinked to channel name):  Expensiry - Migrate
Action Performed:

Have a previously paid report migrated
Open the report in NewDot

Expected Result:
Report opens with no issues
Actual Result:
An error occurred while loading more messages. -- I don't think there's any more to load. licking on Try again results in the same.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos

Add any screenshot/video evidence

![image (2)](https://github.com/user-attachments/assets/ede3e5d5-b6a4-4039-b489-b053f5a0dd79)
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021863637943435459036
Upwork Job ID:<PHONE_NUMBER>435459036
Last Price Increase: 2024-12-02

Issue OwnerCurrent Issue Owner: @Ollyws

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

From @puneetlath:

I think we should have a C+ or a Expert Contributor work with Flo to figure out what about the onyx state of that report is causing that error. Then from there, we can figure out whether that's a problem with the data the migration is setting, or something else

Going to add External to get a C+ assigned to help.

What are the next steps here? @Ollyws, do you need @flodnv to provide you the onyx data of this report?

Do we have the reportID? If so, you can get it by turning on debug mode in the Troubleshoot settings, navigating to the report via URL, opening the debug page and sharing the JSON data.
Also, let's move this convo to Slack so that we can collaborate in realtime to get this figured out.

Also, let's move this convo to Slack so that we can collaborate in realtime to get this figured out.

We can use this one.

Posted here: https://expensify.slack.com/archives/C02NK2DQWUX/p1733759043927369?thread_ts=1733161034.736509&cid=C02NK2DQWUX

Nice, thanks!

We're discussing in thread, Melv.

Bumped the thread!

Looking for @janicduplessis input here.

^^ bump. CC: @hannojg

Sorry I have troubles opening the thread link (due to slack connect shenanigans). What is this exactly;y about / what is needed from my side?

Ohhhh, you guys probably aren't in the contributor-plus channel. Duh. I was hoping you guys could look at this.

I think @chrispader is super familiar with that part of the code!
Will also ping Janic internally, as he has worked with that as well and maybe it makes more sense to him than to me right now!

Appreciate it!

Hey, we were discussing this internally and concluded that we are missing the context to understand whats going on 😅  do you think its possible to add us to the chat group?

I think @chrispader is super familiar with that part of the code! Will also ping Janic internally, as he has worked with that as well and maybe it makes more sense to him than to me right now!

Tbh, i'm not that familiar with the code and haven't really worked with it yet.
I can still look into this issue if you want me to, but i think @janicduplessis has more context on this part of the app already


feature: add api to get all allocated addresses of a network

这个 PR 实现什么功能/修复什么问题:
增加：列出一个IP子网下所有分配的IP地址
是否需要 backport 到之前的 release 分支:

release/2.12

/area region
/cc @wanyaoqi @zexi @yousong

Codecov Report

Merging #3440 into master will increase coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #3440      +/-   ##
=========================================
+ Coverage    7.03%   7.03%   +<.01%
=========================================
  Files         496     496
  Lines       82391   82516     +125
=========================================
+ Hits         5797    5808      +11
- Misses      76108   76221     +113
- Partials      486     487       +1

Flag
Coverage Δ

#aFlag
7.03% <0%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

pkg/compute/models/networks.go
0.57% <0%> (-0.06%)
:arrow_down:

pkg/cloudcommon/cronman/cronman.go
54.85% <0%> (+5.33%)
:arrow_up:

Continue to review full report at Codecov.

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

/lgtm
/approve


Spy Set Watcher button : "Ready! Continue Editing in Sentinl" button does not work

Tested with Kibana 5.4.0 and last sentinl 5.4.0 release and Firefox 53.0.3 :

I choose a visualization
I click on "Set Watcher" spy button
define all parameters, with one webhook action
and when I click on "Ready! Continue Editing in Sentinl" button, the sentinl app is launched in a new tab, but without my new watcher added to the watchers list.

Here's my watcher definition :

Experiencing exactly same issue, sentinl 5.4.0

We're refactoring the SPY plugin to pass data into our new wizard - stay tuned.

For information, I don't reproduce the issue since I remove kibana-time-plugin.
This plugin has negative impact on Kibana itself and sentinl plugin.

have the exact same problem - kibana 5.4.3 with latest sentinl release.

@mobdns
Do you have kibana-time-plugin installed on your kibana instance ? If yes, I invite you to remove it.

I think i have found what causing this. When i create visualization against time-based index, and when i click on the "Set Watcher" button in the console i see the following:
commons.bundle.js?v=15122:38 TypeError: Cannot set property 'filter' of undefined
at ChildScope.$scope.makeAlarm (kibana.bundle.js?v=15122:282)
at kibana.bundle.js?v=15122:282
at Object.fn (commons.bundle.js?v=15122:91)
at Scope.$digest (commons.bundle.js?v=15122:39)
at ChildScope.$apply (commons.bundle.js?v=15122:39)
at HTMLAnchorElement. (commons.bundle.js?v=15122:42)
at HTMLAnchorElement.dispatch (commons.bundle.js?v=15122:28)
at HTMLAnchorElement.elemData.handle (commons.bundle.js?v=15122:28)
On the same index with unselected checkmark (Index contains time-based events )in kibana index patern does not produce this kind of error and the button is working fine.

As a workaround enclose with quotes your watcher indices for ex:
"<logstash-{now/d}>","<logstash-{now/d-1d}>"

reopen if still needed. the spy button will be replaced in future versions with integrated kibana tools.


problem with loop

this code is not working :
addi $a1,$zero,0
addi $a2,$zero,0
cm:
addi $a1,$a1,1
bne  $a1,$a2,cm
i mean if we want to jump to the previews code it doesn't understand using bne or beq
only jump (j) work so we have to write it in this way :
addi $a1,$zero,0
addi $a2,$zero,0
addi $a2,$a2,10
fr:
addi $a1,$a1,1
bne  $a1,$a2,cm
j end1
cm:
j fr
end1:

thanks for report ...
yes it was a bug and it fixed now ...

Your welcome :)

On Oct 13, 2015, at 8:46 AM, Ali Barouni<EMAIL_ADDRESS>wrote:
thanks for report ...
yes it was a bug and it fixed now ...
—
Reply to this email directly or view it on GitHub.


Call to _changes fail with couchdb behind nginx reverse proxy

Expected Behavior
It should provider changes feed behind nginx
Current Behavior
GET request to /db/_changes?style=all_docs fail with "Connection Refused" when made by nginx to couchdb server even though getting all_docs succeed
Your Environment
Using official couchdb Docker image

Version used: version 2
Browser Name and version: Chrome 59

See here for configuration settings for nginx to make changes feeds work: https://cwiki.apache.org/confluence/display/COUCHDB/Nginx+as+a+proxy


Implement ConditionallySelectable for [T; N]

PR makes arrays of any size "conditionally selectable" as long as T is conditionally selectable. Changes MSRV to 1.51.
Closes #82

So, what's stopping this from being merged? I would very much like to use this functionality.

@fjarri the only people with commit access are currently on sabbatical. We can discuss getting access with them.

Hi @isislovecruft, I've added const-generics feature that adds arrays support when enabled (it's disabled by default). I also updated readme to mention this feature and travis.yml to test it (tho I don't see that CI is running).