bufio: Writer.Flush panics if it holds a nil interface writer

Calling (*bufio.Writer).Flush panics if (*bufio.Writer).Reset is called with a nil io.Writer, then (*bufio.Writer).Write is called before the flush. This seems like an unlikely scenario but it has been seen on docker/docker#10228. Though the use case may be invalid, the call should not panic.
The following code reproduces the issue:
package main

import (
	"bufio"
	"bytes"
)

func main() {
	var buf bytes.Buffer
	wr := bufio.NewWriter(&buf)
	wr.Reset(nil)
	wr.Write([]byte("asdf"))
	wr.Flush()
}

Running the above results in the following panic:
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x20 pc=0x3366a]

goroutine 1 [running]:
bufio.(*Writer).flush(0x2080f0000, 0x0, 0x0)
	/usr/local/go/src/bufio/bufio.go:530 +0xda
bufio.(*Writer).Flush(0x2080f0000, 0x0, 0x0)
	/usr/local/go/src/bufio/bufio.go:519 +0x3a
main.main()
	/tmp/bug.go:13 +0x10b

goroutine 2 [runnable]:
runtime.forcegchelper()
	/usr/local/go/src/runtime/proc.go:90
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:2232 +0x1

goroutine 3 [runnable]:
runtime.bgsweep()
	/usr/local/go/src/runtime/mgc0.go:82
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:2232 +0x1
exit status 2

This was reproduced with Go 1.4.1 on Mac OS X 10.9 but has been experienced in other versions.

The example code is pretty much asking for panic:
it is equivalent to this:
var wr io.Writer
wr.Write([]byte("asdf"))
This is working as intended.

@minux What? Are you kidding me? wr is not nil. Calls to it should not panic. This can be fixed with a nil check in Flush.
How does a caller check for this to avoid panic?

wr := bufio.NewWriter(&buf)
wr.Reset(nil)
wr.Write([]byte("asdf"))
wr.Flush()

The 2nd line set the underlying writer of wr to nil, and
the fourth line ask bufio.Writer to write to a nil writer,
is that any different from my example?
var wr io.Writer
wr.Write([]byte("asdf"))

@minux Please read into the history covered in docker/docker#10228 and the panic at https://gist.github.com/stevvooe/12e63e5f902b5ba7ec01. The reality is much more subtle but the behavior is broken.
I conceded above that the use case is not valid but the panic is not expected.

I fail to see why the panic is not expected. Why Reset(nil)?
Why Write and Flush after reseting the underlying writer to
nil?
Adding the check to the Flush method is just hiding bugs in
the client code. As using an invalid io.Writer is a programming
bug, panic is the correct way.

@minux "As using an invalid io.Writer is a programming
bug, panic is the correct way"
Flushing on a closed Writer is a programming bug too, and yet Go returns an error instead if panicking in this case. Sounds inconsistent to me.

Valid use cases of panic is an excellent question to ask on the
golang-nuts mailing list, but not here. I'm sure gophers there will
explain the idiomatic way of using panics much better than me.
Thanks.
We're not going to make every standard package function to
check for nil interfaces before calling method on them.

@stevvooe bufio.Writer.Reset(w) is setting the underlying writer to w; if Reset is called with nil, that writer is nil. Arguably that is a programmer error, or shall I say "invalid use" of the library. In your case you see a panic in Flush, but any function that eventually writes to the underlying nil writer will panic (e.g.: http://play.golang.org/p/P_f8BbNvCa).
I'd agree with @minux that it's not the job of the library to check for nil each time in this case. And even if one would check, that would lead to a difficult to use library because in the case of bufio, the panics (or errors, rather, if we check) would come at somewhat "arbitrary times". For instance in the example I gave above, all is fine if the buffer is large enough and never flushed, and the programming error is thus hidden as @minux @aluded to.
That said, I think an argument could be made that the bufio factory functions (NewReader, NewScanner, NewWriter, ...  ) but also functions modifying the underlying data structure (Reset, etc.) should check their arguments for validity and report an error otherwise.
However, this is not how this library was written. In case of the factory functions, one could argue that they should return a nil Reader/Writer/what-have-you if the incoming arguments are invalid. But that again puts the burden on each client, even clients that don't do anything wrong, because they cannot know if something else might cause a nil return.
To make a long story short: this package is written with the assumption that the supplied readers and writers are valid: Calling bufio.NewWriter with a nil underlying writer simply makes no sense.
Thus I must agree with @minux that this is working as intended. If one wanted to be very explicit, the documentation could say that the supplied arguments must be non-nil. At best this is a documentation issue.

@griesemer Should the documentation be updated to indicate that once a nil argument is passed, the underlying bufio.Writer is no longer valid and could panic at anytime?

Because in majority of cases passing nil interface is invalid, I don't
think we need
to make that explicit. The document only needs to point out when an
interface
argument can be legally nil and what will happen if it's nil.
Similarly, if a function takes a pointer, it's invalid to pass a nil
pointer unless its
document explicitly allows that and generally it will also document what
will happen
in that case.

I'd like to add that we can't check for nil in (*bufio.Writer).Reset,
because
that will be an incompatible API change.
It's legal to use wr.Reset(nil) to mark (poison) a Writer as not be used
again so that subsequent uses will very likely generate a panic. This is
another reason that we can't make Flush check for nil writers, the panic
might be intended.

@minux It would preferable that all calls to a nil writer panic, rather than the inconsistent behavior encountered now. Part of the complexity of tracking this down was the fact that the bufio.Writer only panicked at certain times making it hard to expose the underlying issue with writer lifecycle management.
I'll note that wr.Reset may have never actually been called in the original triggering code. This was encountered during a complex interaction where an http.ResponseWriter ends up as part of the reader passed to http.NewRequest. This report was provided with a minimal test case to trigger the same panic, which I thought was a related but different problem.
Thank you for looking at this tonight.

Unfortunately, in general we can't check if a method call will
panic unless we actually invoke it.
However, bufio.Writer is there to reduce the number of calls to
the underlying writer, so reliably checking problem during write
will defeat the whole purpose of buffered IO.
As an extreme example, if I pass a typed nil interface (i.e. if T
implements io.Writer, pass (*T)(nil) as the writer), we can't simply
check if the interface itself is nil, and calling the Write method
might still panic (this depending on how T.Write is implemented).
Thus he "random" panic problem you describe will still happen
even if we add the check for nil interfaces. (And this problem
is even harder to debug than that caused by nil interfaces.)

I have to agree that this is all working as intended. @minux and @griesemer mentioned all the most important points: Reset(nil) must remain as supported to allow people to free a Writer without freeing the buffer of a pooled bufio.Writer. It's the callers mistake to use that bufio.Writer before Resetting it back to something valid.

I took a look at the stack trace you mentioned,
https://gist.github.com/stevvooe/12e63e5f902b5ba7ec01
I'm sure it's due to a nil writer. FYI, the analysis goes as follows:

line 530 of bufio/bufio.go is:
n, err := b.wr.Write(b.buf[0:b.n])
this line needs the following memory accesses:
(1) load b.wr and b.n, this requires b to be valid Writer pointer
(2) load b.buf, slice it, this requires b to valid Writer pointer, but it
doesn't need b.buf to contain valid pointer.
(3) load the function pointer from b.wr.
(4) call the function indirectly

b is not nil, as we can see from the arguments dump, b == 0xc208208900.
so (1) and (2) are not the cause.
(4) might cause problem but note that pc=0x78154a is not zero, so the
only possibility is step 3 (and generally if the pc is wrong in (4), it is
almost
certain a memory corruption bug.)

Note that addr=0x20 in the 2nd line. This is address that is being
accessed. 0x20 is precisely the offset of first function pointer in an itab
(itab makes up the first half of a non-empty interface).

As the interface in question is Writer, which only contains one method,
the address of Write should be offset 0x20. at this is consistent with our
analysis.
so the cause is itab == nil, this is only possible if the whole interface
is nil.
Hope this helps when you diagnose problems like this in the future.

@minux @griesemer @bradfitz Thank you all for the careful responses.
I do see your point on the basis that calling (*bufio.Writer).Reset(nil) should result in a poised writer. On principle, this makes sense.
However, having the entire process panic when http.Client holds onto an io.Reader that may no longer be valid seems problematic. If you look at the tip of the trace again, the call to (*bufio.Writer).Reset(nil) is a part of the buffer pool implementation in net/http because its the buffer on *http.response that is actually causing the panic:
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x20 pc=0x78154a]

goroutine 92 [running]:
bufio.(*Writer).flush(0xc208208900, 0x0, 0x0)
	/usr/local/go/src/bufio/bufio.go:530 +0xda
bufio.(*Writer).Flush(0xc208208900, 0x0, 0x0)
	/usr/local/go/src/bufio/bufio.go:519 +0x3a
net/http.(*response).Flush(0xc2085bfae0)
	/usr/local/go/src/net/http/server.go:1047 +0x4c

(from https://gist.github.com/stevvooe/12e63e5f902b5ba7ec01)
I'll drop this issue for now and see about a coming up with a reproduction that is simpler than the docker code base. For now, we have a fix that isolates the client's Close call from response's possibly closed writer.


error when using both secrets and exec plugins

I was trying to use {{now|formatdate("%Y%m%d")}} inside a call to exec, but was getting failures indicating the entry did not have the required fields for string replacement. I narrowed it down to the use a the secrets plugin, even if the secrets file is empty. The following task demonstrates that
with secrets the output is Stdout: <function now at 0x10f9a5320> but without it you get the expected answer: Stdout: 20160224
secrets: secrets.yml
tasks:
  test2:
    manual: yes
    disable:
      - seen
      - download
      - backlog
    html:
      url: http://flexget.com/wiki/Plugins
    limit_new: 1
    accept_all: yes
    exec:
      on_output:
        for_accepted:
          - echo "{{now|formatdate("%Y%m%d")}}"
      fail_entries: true

I tried to figure this out but I don't know, perhaps the wrong object is built/retrieved in https://github.com/Flexget/Flexget/blob/develop/flexget/plugins/modify/config_secrets.py#L50 (below what I've found in memory, maybe someone can help) and I can only suggest to modify the if on line 46 as if val and not '<function' in val:
If someone else has a better idea...
Globals	Global variables
element	unicode: echo "{{now|formatdate("%Y%m%d")}}"
environment	Environment: <jinja2.environment.Environment object at 0x067DEA50>
template	FlexGetTemplate: <FlexGetTemplate memory:67de410>
	_debug_info	str: 1=10
	_module	NoneType: None
	_uptodate	NoneType: None
	blocks	dict: {}
	debug_info	<type 'list'>: [(1, 10)]
	environment	Environment: <jinja2.environment.Environment object at 0x067DEA50>
	filename	str: <template>
	globals	dict: {'joiner': <class 'jinja2.utils.Joiner'>, u'secrets': {}, 'lipsum': <function generate_lorem_ipsum at 0x03910BF0>, 'range': <type 'xrange'>, 'dict': <type 'dict'>, 'cycler': <class 'jinja2.utils.Cycler'>, u'now': <function now at 0x0399F170>}
		__len__	int: 7
		'cycler' (59797824)	type: <class 'jinja2.utils.Cycler'>
		'dict' (3747296)	type: <type 'dict'>
		'joiner' (59797920)	type: <class 'jinja2.utils.Joiner'>
		'lipsum' (59764128)	function: <function generate_lorem_ipsum at 0x03910BF0>
		'range' (3746592)	type: <type 'xrange'>
		u'now' (59699688)	function: <function now at 0x0399F170>
		u'secrets' (101098392)	dict: {}
	is_up_to_date	bool: True
	module	TemplateModule: echo "<function now at 0x0399F170>"
		_body_stream	<type 'list'>: [u'echo "<function now at 0x0399F170>"']
			__len__	int: 1
			0	unicode: echo "<function now at 0x0399F170>"
	name	NoneType: None

i'm also running into this problem but it only happens when run from cron. it works as expected when i run it manually from the commandline.


How to exclude specific fields for comparison within the statefulset spec ?

Would like to exclude one specific field within the statefulset spec for the object matcher comparison. Is there a way to exclude specific fields in the statefulset spec for object matcher comparison ?

The way this goes is to remove those fields before the comparison happens. You can see examples here on how to do that:
https://github.com/banzaicloud/k8s-objectmatcher/blob/af0ea18f6ccf72e970a35f370ff0a392b3a1ffdc/patch/deletenull.go#L28-L58
And here is how to use it:
	opts := []patch.CalculateOption{
		patch.IgnoreStatusFields(),
		patch.IgnoreVolumeClaimTemplateTypeMetaAndStatus(),
	}

        patchResult, err := patch.DefaultPatchMaker.Calculate(existing.(runtime.Object), newObject.(runtime.Object), opts...)
	if err != nil {
		return err
	}

Hi,
The above code samples highlights only about status fields and volumeClainTemplateTypeMetaAndStatus fields. How to exclude for a field which is part of the spec. For example a field within the statefulset spec. Is that exclusion also possible ? I could not see any related functions to do the same.

those are examples, you have to craft the function you need for yourself right now

Got it... Would it be possible to implement such field exclusions as part of a common library within this repository ?
Or we could take them as contribution pull requests ?

It's absolutely possible! If you have something we can add it through a pull request of course!

Ok sure.. am currently working on excluding fields in statefulset. i will try to create them in a generic way and come up with a PR.
thanks for the info now.


Create CODEOWNERS

auto add @nvoxland as code reviewer for all changes to liquibase/liquibase
Impact

[ ] Bug fix (non-breaking change which fixes expected existing functionality)
[x] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
A clear and concise description of the change being made.

Introduce what was/will be done in the title

Titles show in release notes and search results, so make them useful
Use verbs at the beginning of the title, such as "fix", "implement", "improve", "update", and "add"
Be specific about what was fixed or changed
Good Example: Fix the --should-snapshot-data CLI parameter to be preserved when the --data-output-directory property is not specified in the command.
Bad Example: Fixed --should-snapshot-data

If there is an existing issue this addresses, include "Fixes #XXXX" to auto-link the issue to this PR
If there is NOT an existing issue, consider creating one.

In general, issues describe wanted change from an end-user perspective and PRs describe the technical change.
If this change is very small and not worth splitting off an issue, include Steps To Reproduce, Expected Behavior, and Actual Behavior sections in this PR as you would have in the issue.

Describe what users need and how the fix will affect them
Describe how the code change addresses the problem
Ensure private information is redacted.

Things to be aware of

Describe the technical choices you made
Describe impacts on the codebase

Things to worry about

List any questions or concerns you have with the change
List unknowns you have

Additional Context
Add any other context about the problem here.

This was an action item from retro.  Do we want to add @nvoxland as a required approver for all PRs via branch protection rules?


Status badge for each OS on Travis

Because Travis CI is not going to do this - https://github.com/travis-ci/travis-ci/issues/4623 - maybe we can query the data through API:

Get build status
Get all jobs for the build and OS specified as badge parameter
Show badge for that build -> job -> OS

Thanks for the suggestion!

Glad you find it useful. =)

I've actually created something for this, but I'd really like to see it in shields.io. I've got cache control issues I think and shields.io seems to solve this well.
The source is here https://github.com/pgoodman/travis-ci-job-status and its available on heroku, for example:

The image URI format is:
https://travis-ci-job-status.herokuapp.com/badge/$organization/$repo/$branch/$os


Add referenceID to spend

@cpacia - this is the wallet interface compliance change to the spend method.

We will be deprecating this repo and will not be accepting updates. See https://github.com/OpenBazaar/openbazaar-go/issues/1672

Comparing this to the wallet-interface.Spend() this doesn't even match. Will close and resolve properly with another PR.


Renaming to Carter

Thinking of renaming Botwin to Carter.
Consensus seems to be that Botwin, whilst I think is genius, and as a benevolent dictator you cannot disagree with me, is confusing some folks as they think it's a Bot framework for Windows so after too many hours thinking about it I've come up with Carter.
Carter comes from the surname of Jay-Z (Shawn Carter) and his is song Empire State of Mind he sings "I'm the new Sinatra". Sinatra is a web framework which inspired Nancy which heavily inspired Botwin.
Unless there is any real objection like people think this is a library for giving instructions on how to cart their mother in law away ("cart - her") we'll rename this in the coming few weeks.
Let me know what you think

You could also say Carter is the flyest kid in the block. I think it's a fine name. Anything that doesn't make me think of botflies...

I like it @jchannon!

The Jay-Z of web frameworks? :-D

I've got 99 problems but HTTP ain't one

Well... You are based off HttpAbstractions... :trollface:

I've got 99 problems and adoption is another
On Sun, 1 Apr 2018 at 09:59, Sebastien Lambla<EMAIL_ADDRESS>wrote:

Well... You are based off HttpAbstractions... [image: :trollface:]
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jchannon/Botwin/issues/92#issuecomment-377773013, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAGappEEPae_URrG63HF1rNBqrCvbXtEks5tkJcBgaJpZM4TCh8I
.

Closed with #95

Icon is here https://github.com/CarterCommunity/Media/raw/master/carterlogo.png


Fixed README headers rendering issue

These lines weren't rendering as the headers they're notated to be. Looks worse on the PyPi page django-webpack-loader. My fix causes it to render correctly on GitHub hopefully that will transfer over. Thanks for the work!

Before
After

Page before fix
Page after fix

Current PyPi

Thanks


[Investigate] System: Employ generics and modern type guards to improve maintainability, extensibility, and type safety

Completed v6 MVP for all extant classes. Closing.


Add support for simple generic actions

Added generic type to Callable type to allow creation of generic actions.
Motivation:
I have an action that takes an interface used as a base for many other classes in it's payload. I would like to be able to type check against the derived type I'm currently trying to send into the action and not the base interface. Adding a generic argument to returned callback type allows me to do that easily.
Example:
interface IFoo {
  a: A;
  b: B;
}

class Goo implements IFoo {
  a: A;
  b: B;
  c: C;
}

const action = createAction("ACTION", resolve => <T extends IFoo>(value: T) => resolve(value));

const reducer = createReducer(/*..*/.);

// Call to action is properly checked against expected derived Goo
reducer(undefined, action<Goo>(new Goo())

I can't seem to figure out how to update the snapshot of create-action.dts.spec.ts properly.

@Haaxor1689 Thanks for PR.

@thebrodmann Thanks for accepting my suggestion.


Add some VM image code

@milismsft Maybe I should remove the version from KnownVirtualMachineImage and fetch the latest every time. But I also don't like doing thing implicitly.


Fix oversized code window with opengl renderer

Changelog / Overview

Fixed oversized Code window when using the opengl renderer

Motivation

Fixes window that wasn't scaled correctly when using Code mobject
Explanation for Changes

Fixes #1834
When using Code mobject it sets the disable_ligatures flag on the Text mobject. When this happens it assigns to self.submobjects, this includes some additional Dot submobjects but when self.get_family() is called these additional objects are not included and so do not get scaled with the others. It wasn't an issue in cairo as it seems to get the family dynamically from the submobjects.
I am not sure if a better solution would be to call assemble_family() anytime there is an update to submobjects?
Documentation Reference

Testing Status

Tested locally with with the below code and resulted in below output.
class CodeFromString(Scene):
    def construct(self):
        code = '''from manim import Scene, Square

        class FadeInSquare(Scene):
            def construct(self):
                s = Square()
                self.play(FadeIn(s))
                self.play(s.animate.scale(2))
                self.wait()
        '''
        rendered_code = Code(code=code, tab_width=4, background="window",
                             language="Python", font="Monospace", scale_factor=0.3)
        self.add(rendered_code)

        self.interactive_embed()

Further Comments

Checklist

[X] I have read the Contributing Guidelines
[X] I have written a descriptive PR title (see top of PR template for examples)
[X] I have written a changelog entry for the PR or deem it unnecessary
[ ] My new functions/classes either have a docstring or are private
[ ] My new functions/classes have tests added and (optional) examples in the docs
[ ] My new documentation builds, looks correctly formatted, and adds no additional build warnings

Reviewer Checklist

[ ] The PR title is descriptive enough
[ ] The PR is labeled correctly
[ ] The changelog entry is completed if necessary
[ ] Newly added functions/classes either have a docstring or are private
[ ] Newly added functions/classes have tests added and (optional) examples in the docs
[ ] Newly added documentation builds, looks correctly formatted, and adds no additional build warnings

Thanks for handling this bug 🥳! I left a minor suggestion, but this lgtm.

Yw :) I was wondering though if there was a more future-proof way of handling it, I guess setting it dynamically like cairo adds overhead, but maybe if submobjects was a property we would have more control over what happens what it is set? Seems like it would be easy for this issue to come up again

Yeah it's unfortunate that you need to call a fairly obsure method (assemble_family) for things not to break. And any code which already works with self.submobjects would also break arbitrarily🤔. I think using properties is a good direction.


Problem with SVG icon color

Found problem when using fill parameter to change SVG path color in HEX then on map this icon is not visible at all. RGB and plain text are working
Demo:
https://jsfiddle.net/1hL4p5f3/

The problem is that the # characters are not allowed in data URIs, see:
https://www.chromestatus.com/features/5656049583390720

Replace # with %23 to solve the issue within OpenLayers. From my test https://jsfiddle.net/1ypef4m2/, it works within OpenLayers but breaks the SVG demo outside Openlayers.

Will close issue as this is not Openlayers problem.
You can find work-around from @ThomasG77 comment.


ShadowView styles problem

There is problem when i try to pass some styles in to the ShadowView. These styles doesn't apply:
<ShadowView style={styles.container}>
            <Text>Hello this is text</Text>
            <Text>Hello this is text</Text>
            <Text>Hello this is text</Text>
            <Text>Hello this is text</Text>
</ShadowView>

const styles = StyleSheet.create({
  container: {
          shadowColor: '#000',
          shadowOffset: {
            width: 1,
            height: 2,
          },
          shadowOpacity: 0.25,
          shadowRadius: 1.22,
          backgroundColor: '#fff',
          flexDirection: 'row',
          alignItems: 'center',
          width: 250,
          height: 250,
  }
});

In the above example the Texts (children) will not be next to each other as a row, but it will be aligned as a stack.

Thanks for the report. I'll take a look, once I have time. Meanwhile, you can wrap text with another view as workaround.

Yes i tried wrapping it inside another View with the styles i want but when i reload the app or navigate to another screen and back it's realigning all the children as a stack.

Can you share what you tried? I'd like to check this case as well.

I mean to do like
<ShadowView style={styles.container}>
    <View style={styles.inner}>
            <Text>Hello this is text</Text>
            <Text>Hello this is text</Text>
            <Text>Hello this is text</Text>
            <Text>Hello this is text</Text>
    </View>
</ShadowView>

const styles = StyleSheet.create({
  container: {
          shadowColor: '#000',
          shadowOffset: {
            width: 1,
            height: 2,
          },
          shadowOpacity: 0.25,
          shadowRadius: 1.22,
          backgroundColor: '#fff',

  },
  inner: {
          flexDirection: 'row',
          alignItems: 'center',
          width: 250,
          height: 250,
  }
});

I mean to do like
<ShadowView style={styles.container}>
    <View style={styles.inner}>
            <Text>Hello this is text</Text>
            <Text>Hello this is text</Text>
            <Text>Hello this is text</Text>
            <Text>Hello this is text</Text>
    </View>
</ShadowView>

const styles = StyleSheet.create({
  container: {
          shadowColor: '#000',
          shadowOffset: {
            width: 1,
            height: 2,
          },
          shadowOpacity: 0.25,
          shadowRadius: 1.22,
          backgroundColor: '#fff',

  },
  inner: {
          flexDirection: 'row',
          alignItems: 'center',
          width: 250,
          height: 250,
  }
});

Yes this is exactly how i implemented it. On hot reload it works. But if i reload/restart the app or navigate back and forth it is buggy again (all the children aligned as a stack).

I think I found workaround. Inner view style should have backgroundColor. In this case, everything works fine for me. Unfortunately, I haven't had time for a proper fix for it.


[INFRA] Separate the steps for build and test for Spark CI jobs

Why are the changes needed?

For fast-failing with the errors in compilation and builds, separate the steps for build and testing for Spark, the same way as in Flink Test and Hive Test. Separated steps also help to find exception messages in very long logging output, which could be up to around 3k lines, in sections.

How was this patch tested?
CI actions pass.

Do you have any idea for the failures in the testing step after separation? @pan3793

I guess the separation will extend the whole time for the positive cases, the compiling error should be easy to catch locally.

The whole time should not be expanded in much added time.
As mvn install should have properly compiled and installed the latest jar's in the local repo, mvn test just use all the compiled source and tests from local.

The current obstacle is why mvn test just failed to lookup compiled classes after mvn install -DskipTests?
https://github.com/apache/kyuubi/actions/runs/3963918607/jobs/6792291190#step:7:547
Error: ] /home/runner/work/kyuubi/kyuubi/externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/operation/PySparkTests.scala:28: object KyuubiHiveDriver is not a member of package org.apache.kyuubi.jdbc
Error: ] /home/runner/work/kyuubi/kyuubi/externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/operation/PySparkTests.scala:29: object hive is not a member of package org.apache.kyuubi.jdbc
Error: ] /home/runner/work/kyuubi/kyuubi/externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/operation/PySparkTests.scala:70: not found: type KyuubiHiveDriver


Correcting Address to token BOFH

Please note: This repository is being rebuilt to accept the new volume of token additions and modifications. PR merges will be delayed.

I agree to not ping anybody on Discord/Twitter/email about this pull request. Instead I will inquire by posting a new comment in the pull request if needed.

PRs are reviewed in bulk and and can take up to two weeks to be merged.
This repository is managed using an auto merge action. Please ensure your PR has no deleted lines, and it will be merged.
Please provide the following information for your token.
Please include change to the src/tokens/solana.tokenlist.json file in the PR.
DON'T modify any other token on the list.
At minimum each entry should have

Token Address:
Token Name:
Token Symbol:
Logo: (logo should be uploaded under assets/mainnet//*.<png/svg>)
Link to the official homepage of token:
Coingecko ID if available (https://www.coingecko.com/api/documentations/v3#/coins/get_coins__id_):

Auto merge requirements
Your pull request will be automatically merged if the following conditions are met:

Your pull request only adds new tokens to the list. Any modification to existing
tokens will require manual review to prevent unwanted modifications.

Your pull request does not touch unrelated code. In particular, reformatting changes to unrelated
code will cause the auto merge to reject your PR.

Any asset files added correspond to the token address you are adding. Asset files
must be PNG, JPG or SVG files.

Your change is valid JSON and conforms to the schema. If your change failed validation,
read the error message carefully and update your PR accordingly.

No other tokens shares the same name, symbol or address.

For example, this change would be rejected due to unrelated changes:

The bot runs every 60 minutes and bulk-merges all open pull requests to prevent conflicts.
This means that you need to wait up to 60 minutes for your pull request to be merged or reprocessed.

this is for changing the url of the token image, I know it can take a while for this to be reviewed, just wanting to leave a note here.

Wanted to see when this could be merged as I am correcting the token image address url, which causes a deleted line to show.  This has been open since middle of January.  Just trying to find when it will be merged.


Error when running the container

Hi,
When I try to run the ngrok server, I get the following error:
X:~/ngrok_test$ docker run -it -v /tmp/bin:/ngrok/bin     -e CA_CERT="`awk 1 ORS='\\n' rootCA.pem`"     yappabe/ngrok-server
=> Compiling ngrok binary files
go get github.com/jteeuwen/go-bindata
GOOS="" GOARCH="" go install github.com/jteeuwen/go-bindata/go-bindata
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
	-debug=false \
	-o=src/ngrok/client/assets/assets_release.go \
	assets/client/...
go get github.com/jteeuwen/go-bindata
GOOS="" GOARCH="" go install github.com/jteeuwen/go-bindata/go-bindata
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
	-debug=false \
	-o=src/ngrok/server/assets/assets_release.go \
	assets/server/...
go get -tags 'release' -d -v ngrok/...
package code.google.com/p/log4go: unable to detect version control system for code.google.com/ path
github.com/gorilla/websocket (download)
import "context": import path doesn't contain a slash
package github.com/gorilla/websocket
	imports context: unrecognized import path "context"
import "net/http/httptrace": import path doesn't contain a hostname
package github.com/gorilla/websocket
	imports net/http/httptrace: unrecognized import path "net/http/httptrace"
github.com/inconshreveable/go-update (download)
package github.com/gorilla/websocket
	imports github.com/inconshreveable/go-update
	imports github.com/inconshreveable/go-update/check
	imports github.com/inconshreveable/go-update/check
	imports github.com/inconshreveable/go-update/check: cannot find package "github.com/inconshreveable/go-update/check" in any of:
	/usr/lib/go/src/pkg/github.com/inconshreveable/go-update/check (from $GOROOT)
	/ngrok/src/github.com/inconshreveable/go-update/check (from $GOPATH)
github.com/inconshreveable/go-vhost (download)
github.com/inconshreveable/mousetrap (download)
github.com/nsf/termbox-go (download)
github.com/mattn/go-runewidth (download)
github.com/rcrowley/go-metrics (download)
Fetching https://gopkg.in/yaml.v1?go-get=1
Parsing meta tags from https://gopkg.in/yaml.v1?go-get=1 (status code 200)
get "gopkg.in/yaml.v1": found meta tag main.metaImport{Prefix:"gopkg.in/yaml.v1", VCS:"git", RepoRoot:"https://gopkg.in/yaml.v1"} at https://gopkg.in/yaml.v1?go-get=1
gopkg.in/yaml.v1 (download)
Makefile:8: recipe for target 'deps' failed
make: *** [deps] Error 1

How do I make it work?

I get the same error

@davidkester  We don't use or maintain this repo anymore. Feel free to PR a fix.


Organization for user applications and source

Is your feature request related to a problem? Please describe.
There appears to be no guide for how user applications should be integrated into the existing source structure.
The same issue for libraries. (Note: I may just be missing existing content, but I have dug around and haven't found anything)
Describe the solution you would like.
Ideally, there would be or template or checklist or guide to follow for how to remove the "demos" from the source tree, replace them with a single user application or bundle of applications, and how to reconcile this with the build system configuration.
For my application, I only care about the CMake system, as I am using CLion + existing CMake configs.
Users of other IDE's may want similar guides for their various environments, especially since some of them require far more manual tinkering that others.
The starting point here would be either this github repo as-cloned, or the ZIPed packages that are delivered with the "FreeRTOS Device Software" package generator via the AWS console.
Additional context
The intent and function of the current source organization are not entirely clear, e.g. multiple directories per board, boards associated with a "vendor" that is really an MCU/silicon vendor, etc.
Unclear if library ports and support packages are application-specific, board-specific, vendor-specific, etc.
See the WICED SDK for an example: there, the build system there provides something like a "namespace" (by path) and a clear structure for how end users can put their application code into place and build it with/on the SDK package.

Hello @apullin ,
I agree it is a bit unclear, but please allow me to try and clear things up a bit.
For the current version in amazon-freertos, I would reccommend consumsuming by taking the files you need into your project. We have our own demo running system under the demos/ folder in order for us to choose between demos without repeating some code, but we do not expect customers to take this into their projects. They are merely examples of how to use the API.
For the comment "CLion + existing CMake configs" do you mean to say you are using our CMake configs or your own?
Let's take the MQTT library for example:

Take all of the files in libraries/csdk/mqtt
Take all of the dependencies listed here: https://docs.aws.amazon.com/freertos/latest/lib-ref/c-sdk/mqtt/index.html#mqtt_dependencies these files are found under libraries\c_sdk\standard\common
All the current CSDK libraries in amazon-freertos have a dependency on headers in libraries\abstractions\platform\include\platform and you will to take these headers and writes imlemention for your system
Create an iot_config.h and put the directory in your build's include path.
The doxygen docs hosted publicly will let you know about particular MQTT configurations: https://docs.aws.amazon.com/freertos/latest/lib-ref/c-sdk/mqtt/mqtt_config.html
All dependencies will need to be initialized so be sure to take libraries\c_sdk\standard\common\include\iot_init.h and and libraries\c_sdk\standard\common\iot_init.c. The demos show you when to use this function, in demos\demo_runner\iot_demo_freertos.c. All your networking libraries are initialized before using the library.

I know there are a lot of steps and dependencies for the libraries in amazon-freetos and we have been working towards a simpler model with zero dependencies for the libraries that you are interested in. Our latest release of the MQTT library does not have any dependencies other than C headers: https://github.com/FreeRTOS/coreMQTT/releases/tag/v1.0.0 . This library has it's demos in https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/202009.00 .
Please let me know if this helps.
I will bring up documentation and steps improvements with our team. Thank you for bringing this issue up.

CLion + existing CMake configs

I am just directly using the CMake configs provided in the repo. CLion uses Cmake as it's build system under the hood, and has that ability where the root CMakeLists.txt can be opened "as a project", and it will parse out all the enumerated targets, aws_demos, afr_crypto, etc. It's pretty great!

I would reccommend consumsuming by taking the files you need into your project.

It is still a little unclear if there is a prescribed or expected pattern to be followed to adopt this whole set of libraries.
Should an embedded application have its own abrtirary structure and build system, and then keep a whole copy of this repo as a submodule or wholly contained in a larger source structure?
Should an application live "inside" this repo, adopting the given source layout, and containing all the applicaiton-specific code?
It does seem like the latter, given that core pieces like the BSP and board/mission specific implementation of library support is already positioned inside the repo and on a path that follows namespace-like path, e.g. vendors/st/stm32l475_discovery.
If someone was building a new IoT device and wanted to build on stop of this amazon-freetos repo/SDK and all the pieces therein (TLS, OTA agents, MQTT lib, etc), but has a large source set to drive the device-specific implementation (e.g. displays, motors, etc), is there a best-practices to be followed?
Should users start from an empty IDE project and manually duplicate all the pertinent settings from the demo IDE projects?
Or should users start from the bundled demo IDE project, and extend as needed?
The idea of manually recreating an whole Eclipse project setting-by-setting is ... 😬 worrying.
For contrast, we can compare to the output of another project-generating tool, like STM32CubeMX.
For that tool, FreeRTOS (kernel only) is bundled in as a "Middlewares" component alongside a number of other libraries, a template for the entry point to the user application is generated, and an IDE project file or Makefile for the whole output is made.
From there, there is a prescribed pattern to follow for adding the user's code, modules, libraries, etc.
A big part of the intent of this question is that I would like to adopt some organizational layout whereby I can upgrade to new releases of the amazon-freertos source set (this repo, kernel+libs+agents+etc) in one shot, by dropping it in place around or next to the other pieces of my project's source.
Currently, I have a large-ish project that uses a much older version (1.2.3) of the amazon-freertos libraries, and thus a totally different layout and a custom-make build setup (one big eclipse project).

@apullin
Thanks for your patience and apologize for the delay in getting back to you.  Please find my responses below.

Should an embedded application have its own abrtirary structure and build system, and then keep a whole copy of this repo as a submodule or wholly contained in a larger source structure?
Should an application live "inside" this repo, adopting the given source layout, and containing all the applicaiton-specific code?
It does seem like the latter, given that core pieces like the BSP and board/mission specific implementation of library support is already positioned inside the repo and on a path that follows namespace-like path, e.g. vendors/st/stm32l475_discovery.

The existing demos in the repository follow the latter style as you have correctly pointed out.  However, unlike the demos in the repository, we have a documentation for ESP32 application to consume this repository as a submodule. Please check it out and let us know if it helps.

If someone was building a new IoT device and wanted to build on stop of this amazon-freetos repo/SDK and all the pieces therein (TLS, OTA agents, MQTT lib, etc), but has a large source set to drive the device-specific implementation (e.g. displays, motors, etc), is there a best-practices to be followed?
Should users start from an empty IDE project and manually duplicate all the pertinent settings from the demo IDE projects?
Or should users start from the bundled demo IDE project, and extend as needed?

Unfortunately, currently there is no best practices documented about the structure of an application and project files. This is a good suggestion and we will consider addressing it. Thanks for bringing this up.

A big part of the intent of this question is that I would like to adopt some organizational layout whereby I can upgrade to new releases of the amazon-freertos source set (this repo, kernel+libs+agents+etc) in one shot, by dropping it in place around or next to the other pieces of my project's source.
Currently, I have a large-ish project that uses a much older version (1.2.3) of the amazon-freertos libraries, and thus a totally different layout and a custom-make build setup (one big eclipse project).

Sorry to hear about the issue you are facing for updating the project to the latest version of FreeRTOS. There is a plan for a Long Term Support(LTS) release for FreeRTOS and the details can be found in this link. Please check it out and see if updating to LTS release may help to solve your problem of keeping up with further updates. Please pay attention to our announcements for further updates on the LTS release.
Hope these information helps with the problems that you are facing.

We have a backlog item to revisit the documentation and organization, so I will close this issue.  Feel free to reopen this or create a new issue.  Thank you.


git: add bin\sh.exe to bin

#2776

If this change is still desired and viable, please open PR into ScoopInstaller/Main

If this change is still desired and viable, please open PR into ScoopInstaller/Main

Reopened by accident.


D415 no RGB data

librealsense
2.42.0 RELEASE

OS
Linux

Name
Intel RealSense D415

Serial Number
839112061189

Firmware Version
<IP_ADDRESS>

Advanced Mode
YES

Camera Locked
YES

Usb Type Descriptor
3.2

Product Line
D400

Asic Serial Number
841113022746

Firmware Update Id
841113022746

I am trying to view the RGB data with the python interface or with the realsense viewer I can not see the same in either.

Hi @ShettyHarapanahalli   When viewing the RGB stream in the Viewer or in your own Python application, are you using the RGB stream only?  Or has the IMU stream also been enabled?

I have enabled RGB only, I don't see the IMU as it's 415.

Ah yes, sorry.  Do you receive any messages in the RealSense Viewer such as No Frames Received or is it just blank?

Sharing the cmd line log -
$ [4714:4718:0305/102049.977803:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
[4714:4718:0305/102051.615543:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
[4714:4718:0305/102519.871172:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
[4714:4718:0305/102519.911124:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
[4714:4718:0305/102949.881860:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
[4714:4718:0305/102951.687162:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
[4714:4718:0305/103419.982745:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
[4714:4718:0305/103420.187497:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
[4714:4718:0305/103849.813641:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
[4714:4718:0305/103850.736231:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100
suman@SumanDL:~/sandbox/teat/src$ realsense-viewer
05/03 10:40:18,693 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,693 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,693 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Backlight Compensation control for RGB Camera
05/03 10:40:18,693 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,693 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,693 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Brightness control for RGB Camera
05/03 10:40:18,694 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,694 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,694 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Contrast control for RGB Camera
05/03 10:40:18,694 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,694 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,694 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Exposure control for RGB Camera
05/03 10:40:18,694 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,694 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,694 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Gamma control for RGB Camera
05/03 10:40:18,694 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,694 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,694 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Hue control for RGB Camera
05/03 10:40:18,694 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,694 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,694 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Saturation control for RGB Camera
05/03 10:40:18,694 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,694 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,694 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Sharpness control for RGB Camera
05/03 10:40:18,694 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,694 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,694 WARNING [139901128079104] (sensor.cpp:1112) Failed to add White Balance control for RGB Camera
05/03 10:40:18,694 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,694 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,694 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Enable Auto Exposure control for RGB Camera
05/03 10:40:18,694 ERROR [139900858898176] (handle-libusb.h:51) failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS
05/03 10:40:18,694 ERROR [139901128079104] (sensor.cpp:523) acquire_power failed: failed to set power state
05/03 10:40:18,694 WARNING [139901128079104] (sensor.cpp:1112) Failed to add Enable Auto White Balance control for RGB Camera
[4667:4694:0305/104102.003608:ERROR:connection_factory_impl.cc(428)] Failed to connect to MCS endpoint with error -106

Is there any improvement if you go to the More option of the Viewer's side-panel and select Hardware Reset from its drop-down menu to reset the camera?

the color image appears only when the depth is enabled.

Hi @ShettyHarapanahalli   I see that you closed this case - is the problem solved now, please?


Add create/edit/delete functionality for Stores

I added the mutations to the backend, now we just need to implement them.

e4501f25d27805bacd6f661fdccd6ec66caf132e


Exclude column from Query

Hi. First of all, congratulations for this awesome tool.
English is not my first language, so I apologize for eventual mistakes.
It's relatively common for ORMs to read the tables before execution to know exactly all the columns and its specifications. For example: in Mysql/MariaDb: DESCRIBE products; could return something like this:
Field	    Type               Null     Key     Default    Extra
id          int(11) unsigned   NO       PRI     NULL       auto_increment
uuid        char(36)           NO               NULL
name        varchar(255)       NO               NULL
created_at  datetime           NO               NULL
updated_at  datetime           YES              NULL

By doing this, the QueryBuilder could start all SELECT queries with all fields by default, instead of *. And this is great for several reasons.
I'd like to know if there is a way to enable this?
At this moment all my queries are using "select table.* [...]"
My second question is: how to exclude columns from my query?
I already saw how to omit columns after fetched, but i think this is a really poor solution, since my query:
static findByUUID( uuid ) {
        return this.query().where( 'uuid', uuid ).first().omit( [ 'id' ] );
    }

... Is being written like this anyway:
select `products`.* from `products` where `uuid` = ?
Summing up: I'm just trying to do this:
select
    `products`.`uuid`,
    `products`.`name`,
    `products`.`created_at`,
    `products`.`updated_at`
from `products` where `uuid` = ?

I really appreciate any contributions, since I'm really new to Knex and/or Objection.js.

After more consideration, this is too much of a hack for objection.

I'm using Schwifty, which relies on Joi for schema validations on models. I specify which fields I don't want to show using .strip(). When someone hits my API endpoint (Hapi). I get the Joi schema for the model. Filter out (using lodash) any fields with the flag strip. Then make my query specifying the columns by using the filter Joi schema.
const { DataCentre } = request.models();

const joiSchema = DataCentre.joiSchema.describe();

const selectCols = _(joiSchema.children)
  .omitBy("flags.strip")
  .keys()
  .value();

const result = await DataCentre.query().columns(selectCols);

return result;

I have updated objection to v3, the omit method is gone, I'm trying to replace it:
  omit(props) {     const omitThis = ['id', ...this.Model.search, ...props];     return Object.keys(this.Model.jsonSchema.properties)       .filter(p => !omitThis.includes(p));   }
buuut I get "Duplicate column name 'id'" mysql error.
I try remove the column id from my "omit" function but then I have "Duplicate column name 'other_column'" and other column or other column is duplicate because I have many other select carrying from all my flow.
soooo, is there a way to remove duplicates before send the query?


Forgot to fix commas

There shouldn't be any errors in Italian translation now.

Nice catch, thanks!


Get ERR_CONTENT_DECODING_FAILED when using setupProxy.js

Is this a bug report?
Yes.

Did you try recovering your dependencies?
yes

yarn --version: 1.13.0
Which terms did you search for in User Guide?

gzip, Proxy, ERR_CONTENT_DECODING_FAILED, setupProxy
Environment

Environment Info:
System:
OS: OS X El Capitan 10.11.6
CPU: x64 Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz
Binaries:
Node: 8.12.0 - ~/.nvm/versions/node/v8.12.0/bin/node
Yarn: 1.13.0 - ~/.nvm/versions/node/v8.12.0/bin/yarn
npm: 6.8.0 - ~/.nvm/versions/node/v8.12.0/bin/npm
Browsers:
Chrome: 72.0.3626.109
Firefox: 65.0
Safari: 11.1.2
npmPackages:
react: Not Found
react-dom: Not Found
react-scripts: Not Found
npmGlobalPackages:
create-react-app: Not Found
Steps to Reproduce

(Write your steps here:)

I setup the setupProxy.js to fetch data from an API and feed into my Frontend application
Everything worked fine up until webpack-dev-server version 3.1.11 was released (https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md#3111-2018-12-21)
2.1. NOTE: Create-React-App currently makes use of version 3.1.14 of webpack-dev-server

Expected Behavior

The proxy should simply pass my data across form API to Frontend.
Actual Behavior

Ever since  webpack-dev-server v3.1.1 I get the following error:

VM1054:1 GET https://localhost:9201/api/v1/pages/%2Fgratis net::ERR_CONTENT_DECODING_FAILED 200

This is my current setupProxy.js file:
const proxy = require('http-proxy-middleware');

// Http Proxy Middleware options
// SEE all options @ https://github.com/chimurai/http-proxy-middleware#options
const options = {
  target: 'https://my-api-data.de/', // target host. URL string to be parsed with the url module
  changeOrigin: true, // true/false, Default: false - changes the origin of the host header to the target URL. Needed for virtual hosted sites
  ws: false, // true/false: if you want to proxy websockets
  secure: false, //  true/false, if you want to verify the SSL Certs
  logLevel: 'debug', // string, ['debug', 'info', 'warn', 'error', 'silent']. Default: 'info'
  onProxyReq: proxyReq => {
    // function, subscribe to http-proxy's proxyReq event.
    // add custom header to request
    proxyReq.setHeader('cookie', null); // !!! NOTE: This prevents the requests from send ANY cookie info in the headers. This was causing issues with the server.
  },
  onError: (err, res) => {
    // subscribe to http-proxy's error event for custom error handling
    res.writeHead(500, {
      'Content-Type': 'text/plain',
    });
    res.end(
      `Something went wrong with the proxy middleware. See the setupProxy.js file | ${err}`
    );
  },
};

// create the proxy (without context)
const developmentProxy = proxy(options);

module.exports = app => {
  // only forward calls with '/api/v1' route
  // mount `developmentProxy` in web server
  app.use('/api/v1', developmentProxy);
};

Reproducible Demo

(Paste the link to an example project and exact instructions to reproduce the issue.)

This issue was opened in the http-proxy-middleware repo, possibly similar case?

@petetnt I tried to implement the solution suggested by the other other other Issue (removing the transfer-encoding header).... did not work for me though.
I think the issue is related to webpack-dev-server as this issue only occurs after versions > 3.1.10
It might specifically be related to this commit on version 3.1.10: https://github.com/webpack/webpack-dev-server/commit/b3217ca --> This is just a guess right now, did not test it out.
Might anyone have any ideas on this? Much appreciated.


feat: enable HTTP function trigger async functions

Resolves #6

[x] Enable Knative invoke async
[x] Refine e2e and conformance tests
[x] Update README and API docs

@benjaminhuo please help check whether the tryKnativeAsync sample in README is correct, thanks.

@benjaminhuo please help review latest updates, many thanks.


🐛 fix parts defined in nested needs

fixes #802

Really clean implementation, have to say I would not have found this really cool one.


Added Mobile SMS Alert Feature

Related Issue or bug

Add a feature that alert message should go on saved phone number
Fixes: #[6]

Describe the changes you've made
Added an SMS alert feature that goes to all saved contacts during an emergency parallelly with email and WhatsApp notifications that are sent.
For the SMS provider, I have used the Twilio API service which is free up to a certain duration but seems best among its alternatives, as the alert should be sent as soon as possible others took a long time to do this task whereas Twilio doesn't take much time
I have also updated the requirements.txt as there is an additional package required for loading environment variables which is
python-dotenv==0.17.1
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a little documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
Describe if there is any unusual behaviour of your code(Write NA if there isn't)
A clear and concise description of it.
Checklist:

[ ] My code follows the style guidelines of this project.
[ ] I have performed a self-review of my own code.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[ ] My changes generate no new warnings.
[ ] New and existing unit tests pass locally with my changes.
[ ] Any dependent changes have been merged and published in downstream modules.

Working Video:
https://user-images.githubusercontent.com/56113657/117696633-274b4600-b1df-11eb-9365-bad26939c23e.mp4

@harshakhmk Twilio has a limitation I guess, is there any alternative method as I have used Twilio when I was working on this issue.

@harshakhmk Twilio has a limitation I guess, is there any alternative method as I have used Twilio when I was working on this issue.

@swapnilsparsh
I found Twilio as the best among its alternatives as delivers messages quickly which is mandatory when someone is in emergency. Other solutions were using smtplib which can deliverer SMS but it takes more than 15min to deliver SMS which is not good in an emergency and sometimes it doesn't even deliver a message.
Even though Twilio is economical, it would definitely suit the purpose.
If you have any other alternatives, you can share them with me, I will try implementing them.

@harshakhmk Twilio has a limitation I guess, is there any alternative method as I have used Twilio when I was working on this issue.

@swapnilsparsh
I found Twilio as the best among its alternatives as delivers messages quickly which is mandatory when someone is in emergency. Other solutions were using smtplib which can deliverer SMS but it takes more than 15min to deliver SMS which is not good in an emergency and sometimes it doesn't even deliver a message.
Even though Twilio is economical, it would definitely suit the purpose.
If you have any other alternatives, you can share them with me, I will try implementing them.

Sorry for the inconvenience caused but we are looking for an alternative to Twilio only as we have used Twillio in past and it's not good enough, if possible then use some alternative of Twillio other than smtplib as it takes time.

Same problem here : Merge Conflicts Exist: @harshakhmk

Same problem here : Merge Conflicts Exist: @harshakhmk

That's because I have changed some part of the code in views and also this branch is not up to date

I have found an alternative for SMS alert, is this still needs to be addressed

I have found an alternative for SMS alert, is this still needs to be addressed
@swapnilsparsh

If you want to contribute to the project you can but you will not be getting any points for this PR in GSSOC 21.

Lol I don't need any points, tell me whether my name gets added to the contributor's list?

Yes, your name will be added to the contribution list.

Can u reopen this PR


Add standardised commit message

Previously, we discussed to include a standardised commit message. This is to follow up on that discussion, by adding the template file.
Individually, we all need to perform these changes inside of our .git folder so that this is implemented:

Go to PROJECT_ROOT/.git/hooks/
Rename prepare-commit-msg.sample to prepare-commit-msg
Edit the above file, adding these 2 lines below the /usr/bin/perl -i.bak ... in line 27:

TEMPLATE_SRC="$(dirname $(dirname $(dirname $0)))/.gitcommitmessage"
cat "$TEMPLATE_SRC" >> $COMMIT_MSG_FILE

Save and exit.
When committing on CLI, just type in git commit, which will open up a specified editor, with the template shown.

Codecov Report

Merging #67 (daf5db9) into master (ad33092) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #67   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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 ad33092...daf5db9. Read the comment docs.

Related:
#63 from Sumanth (used the same template file, added examples)
#62 issue related to this


Add React 17 dependencies and update react transition group.

This worked perfectly for me in React 17.

@derrickpelletier can we please have update for this one?

@derrickpelletier or another maintainer, is it possible to accept this PR? It would be nice if we could continue using react-loading-overlay with new react versions.
Thanks! 😎


Navigation current link & hover style

Probably should incorporate the red color from the previous website (#f0134d), currently the website doesn't have an accent color

Yes please, would consider it being our secondary color CI color after our gray.

Hover style is done, does it actually need a current (active) style? Seems like it's not common elsewhere.


Dismiss C# completion on typing of numeric.

Found that when typing out numeric characters C# completion would stay active. Turns out the reason behind this was that our word pattern for C# was incorrect for identifiers resulting in numerics at beginning of words being considered part of the identifier.
This fix restricts numerics \d at the beginning of C# identifiers which then causes the platform to dismiss completion on breaking of word boundaries.

Before

After
Note, cursor jumping to the top of the block after typing ; in this gif is a platform bug.

Fixes dotnet/aspnetcore#5691

lol wut

lol to explain the change. I basically took our pre-existing "identifier" criteria, duplicated it and added a \d to the restriction criteria for first letter:


New Geometry API

Implementing new geometry API
Preparing for pvfactors v2 and new APIs

decoupling geometry calculation from irradiance and view factor calculations
creating separate sub-package that handles geometry related modeling more intuitively thanks to abstractions
needs to plug in easily with other parts of pvfactors

One of the goals for updating the package API is also to allow people to contribute more easily and provide reviews. The initial feedback I had from users was that the API was not super intuitive.
Since this work is done in parallel of what's existing, I'll merge it. There are numerous new tests, and I started updating the docs API reference as well.
Following PRs will continue the implementations and docs updates.


Separate code compilation for autobox

autobox (and and its cousin autobox_extern) where using RTA information when generating code in order to avoiding to use a C symbol (like a table identifier) that will not be defined in the final compiled program.
The problem is that the approach is incompatible with separate compilation principle where the generated code is independent or the program (thus independent of the liveness of the types of a given program).
The solution is to use symbols in the separate compilation, even for potential (or known) dead classes, and let the global phase define these symbols with invalid information.

+1

+1


mapcan requires cl at runtime

When I try to open a file in intero-mode, I get this error: Symbol's function definition is void: mapcan, and intero doesn't work. If I recompile intero.el, I get a warning that mapcan requires cl at runtime.  If I add (require 'cl) to my init.el, intero boots up and works just fine. However, I believe that requiring cl at runtime is not recommended. That said, if there's no way to work around this, then I think (require 'cl) should be added to intero.el so that it works out the box? Or am I the only one experiencing this issue?

@ssmolkin1  This should be fixed with commit 47e0daab98e25807f72fde5b5dbae1f4bf18ad12. Perhaps you're not using the latest version.

Hmm... odd, I installed from MELPA using M-x package-install, so not sure how that happened... but now I've reinstalled and have a version using cl-mapcan instead of mapcan. Thanks @sergv !


Logging cleanup for security

@ostromart Can you give some examples / guidelines?

Tairan, please follow up with Martin on this.


Fixing strokeWidth typo for Warning Icon

The strokeWidth attribute for this Path component was incorrectly defined as stroke-width.
Error in console;
Warning: Invalid DOM property `stroke-width`. Did you mean `strokeWidth`?     at path     at g     at ChildPath (http://localhost:19006/static/js/bundle.js:65185:23)     at g     at svg     at http://localhost:19006/static/js/bundle.js:88165:22     at SVGIcon (http://localhost:19006/static/js/bundle.js:65150:23)     at createdIcon     at div     at http://localhost:19006/static/js/bundle.js:126663:25     at http://localhost:19006/static/js/bundle.js:88165:22     at Box (http://localhost:19006/static/js/bundle.js:63369:23)     at AlertIcon (http://localhost:19006/static/js/bundle.js:53800:23)

@surajahmed any update?

duplicate of #4932

duplicate of #4932

Good luck getting anyones attention


Compatibility with TypeDoc 0.26.x

TypeDoc 0.26.0 was released over the weekend. typedoc-plugin-extras is not currently compatible with it.
Sure, this peerDependecy needs updating, but there seem to be other problems regarding calling the TypeDoc API that need fixing.
Building the PlayCanvas API reference manual gives:
C:\dev\api-reference>npm run build

><EMAIL_ADDRESS>build
> typedoc

[info] Loaded plugin C:\dev\api-reference\typedoc-plugin-property.mjs
[error] The plugin typedoc-plugin-extras could not be loaded
[error] TypeError: app.renderer.once is not a function
    at load (C:\dev\api-reference\node_modules\typedoc-plugin-extras\dist\main.js:80:18)
    at loadPlugins (C:\dev\api-reference\node_modules\typedoc\dist\lib\utils\plugins.js:30:23)
    at async Application.bootstrapWithPlugins (C:\dev\api-reference\node_modules\typedoc\dist\lib\application.js:222:13)
    at async main (C:\dev\api-reference\node_modules\typedoc\dist\lib\cli.js:42:15)
[info] Loaded plugin typedoc-plugin-mdn-links
[info] Loaded plugin typedoc-plugin-rename-defaults
[info] Loaded plugin typedoc-plugin-missing-exports
[error] Found 2 errors and 0 warnings

Hi @willeastcott! Sorry I didn't see the issue... I'm working on a new release.

I just published v3.1.0.


Terminal window closes on right-click, when connection is closed and waiting for keypress

from MSFT:45731977

When you run an application from Visual Studio, and use Windows Terminal, at the end of the application run it will display "press any key to close the window". This is as expected. However, it doesn't only close on keyboard input, but also when you right-click the Terminal window. This is NOT desirable, since right click is also used for copying text.
It should ONLY close on keyboard input.

I noticed that this only happens when you have a small amount of text in the clipboard that doesn't trigger any messagebox (ie. warnings about pasting a lot of text).
I guess what happens is that the right click actually pastes text into the console, and this is then seen as keyboard input and closes the terminal.
I have lost a lot of time running long apps that print debug information to the console by accidentally right clicking INTO the console window, when I wanted to right click on its tab to select "Export Text". It would be very useful, if pasting text was disabled in case the terminal would close on input.

I coulda swore that we didn't paste on a right-click if the right click was causing the window to be focused. Maybe that got lost? Or I'm mistaken?

Hmm, even if you go back to https://github.com/microsoft/terminal/commit/8910a16fd0d0ebf0feaa7b182a5f812a0b28f2d4#diff-c10bb023995e88dac6c1d786129284c454c2df739ea547ce462129dc86dc2697, I suspect this was broken. (that's 3 years old now).
Even in that one, if the TermControl was unfocused, we'd focus it, but then we'd power along and eventually just copy anyways. Weird. Whatever. Easy enough to fix.

Meh, we decided that this is perfectly reasonable behavior as-is.


[SR SQL Planner Summer Camp] New Parser and Analyzer support ShowBrokerStmt

What type of PR is this：

[ ] bug
[x] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：
Fixes #7955
Problem Summary(Required) ：
New Parser and Analyzer support ShowBrokerStmt

[FE PR Coverage Check]
:heart_eyes: pass : 5 / 6 (83.33%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/analysis/ShowBrokerStmt.java
3
4
75.00%
[47]

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/ast/AstVisitor.java
1
1
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 5 / 10 (50.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/analyzer/PrivilegeChecker.java
0
4
00.00%
[885, 886, 888, 890]

:large_blue_circle:
com/starrocks/analysis/ShowBrokerStmt.java
3
4
75.00%
[47]

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/ast/AstVisitor.java
1
1
100.00%
[]

[FE PR Coverage Check]
:heart_eyes: pass : 9 / 10 (90.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/analyzer/PrivilegeChecker.java
3
4
75.00%
[888]

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/ast/AstVisitor.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/analysis/ShowBrokerStmt.java
4
4
100.00%
[]

run starrocks_admit_test

Please rebase the code, then I will merge your code in as soon as possible

run starrocks_fe_unittest

run starrocks_fe_unittest

run starrocks_fe_unittest

[FE PR Coverage Check]
:heart_eyes: pass : 9 / 10 (90.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/analyzer/PrivilegeChecker.java
3
4
75.00%
[944]

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/ast/AstVisitor.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/analysis/ShowBrokerStmt.java
4
4
100.00%
[]

run starrocks_admit_test


Add ES3ink board

Checklist
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes

[x] Please provide specific title of the PR describing the change
[x] If you are adding an new boards, please make sure

[x] Provide link to your allocated VID/PID if applicable
Link
[x] Add your board to action ci in correct workflow and alphabet order for release binary
[x] UF2_BOARD_ID in your board.h follow correct format from uf2 specs

Description of Change
Add ES3ink board

Please follow the PR template description and make following changes

UF2_BOARD_ID is not correct
remove adafruit favicon
provide link to vid/pid

I added link for VID/PID to PR comment and fixed issues which you mentioned. Thanks

I added link for VID/PID to PR comment and fixed issues which you mentioned. Thanks

your PID PR is still opened, have you allocated with the PID yet ?

your PID PR is still opened, have you allocated with the PID yet ?

Sorry, I do not now what you mean by that. Could you rephrase your question? Thanks

sorry, I mean did your request for the PID is accepted yet ?

No, I'm waiting for somebody to make a review, but I do not expect to be declined. I understand if you want wait until will be accepted.

No, I'm waiting for somebody to make a review, but I do not expect to be declined. I understand if you want wait until will be accepted.

PID approval is mandatory, I will mark this PR as draft for now. Please mark it as ready when you have PID allocated.

your PID PR is still opened, have you allocated with the PID yet ?

Sorry, I do not now what you mean by that. Could you rephrase your question? Thanks

https://github.com/espressif/usb-pids


Bug in New Blog Post - time showing as variable, not actual Time

Expected Behavior
When creating a new post, the date should be presented below the Avatar of the author.
Current Behavior
It is providing code instead of the date: :date_full
Possible Solution
Correct the code within:
toha/layouts/_default/single.html
Line 51
Steps to Reproduce

Create blog post via markdown file
Date shows incorrectly

Screenshots
https://imgur.com/a/yfH3VTH
Browsers Affected

[x] Chrome
[x] Firefox
[x] Edge
[ ] Safari 11
[ ] Safari 10
[ ] IE 11

Detailed Description
It appears that Line 51 is not finished with the referencing of :date_full... perhaps a : is missing at the end or the line in general is mistyped?  Prior versions had the following:

{{ .Page.Date.Format "January 2, 2006" }}

Current version has:

{{ .Page.Date | time.Format ":date_full" }}

Possible fix:

{{ .Page.Date | time.Format ":date_full:" }}

Update your Hugo version. This variable has been introduced in recent hugo version.

Update your Hugo version. This variable has been introduced in recent hugo version.

ah - thank you so much!  deeper issue found then since my netlify.toml wasn't playing nice deploying the most recent version.  this resolved it!
thank you kindly!


[enhancement]: Ability to edit the queue

Is there an existing issue for this?

[X] I have searched the existing issues

Contact Details
No response
What should this feature add?
I'd like the ability to edit items in the queue. Features like, changing the prompt, seed, etc. Basically the ability to pick an item or items from the queue and update the parameters before they run. Also the ability to sort the queue, which is a slightly different feature request I suppose.
On a similar thought, when using multiple phrases like {hot|cold}, it'd be useful to recall not only the prompt of an image but also the whole prompt string including what the dynamic prompt was
Alternatives
No response
Additional Content
No response

Queue items are not easily editable. Each queue item is a dynamically generated graph plus some other data. While we technically could allow you to edit the graph, it would be very easy to break things.
This would require a substantial amount of effort to implement and test, but only be useful for very niche use-cases.
Sorry, but this isn't something we will implement.

Sorting the view is something we could do - I think there may already be a request for that. And we could embed the whole dynamic prompt in the metadata.
Can you please do a quick search to see if we already have feature requests for these features, and if not, create individual feature requests for each? Ty!

6656, 6657

Thanks for making the other issues @19wolf !


fix: remove a mirror that can be error from fallbacks

remove https://mirrors.sjtug.sjtu.edu.cn/qt/ from fallbacks
Adjust from report #687

Maybe we can make aqt switch between different mirror servers during the download?

Maybe we can make aqt switch between different mirror servers during the download?

We maybe able to add a mirror URL as black list in live when some download filed and re-try other mirror, so we can change a mirror selection during download.


[Playground] Ability to navigate back to where it was

Playground has been invaluable to fine tune the grammar. Since we have big grammer, when we ctrl+click which takes to a Rule which is somewhere far from where we were going back is painful. If we could navigate back usig toolbar icon or shortcut would be helpful.

@kaisalmen Do you know whether this is a supported feature of Monaco? I.e. back navigation (maybe at least programmatically)?

@msujew I have to check. ALT+Arrow keys doesn't seem to work (I tested this quickly).

@brsanthu and @brsanthu I found this https://github.com/microsoft/monaco-editor/issues/2352 so monaco-editor does not provide it, but maybe there is way via a monaco-vscode-api services. I will check that, because this feature could be a valuable addition to the user experience.

This is generally possible now and is demonstrated here. We can think about adding this to a future version of then playground.


Rename viewportFeatures expression

The name of this expression is confusing because you expect to obtain an array of features, like this one from the interactivity: https://carto.com/developers/carto-vl/reference/#feature.
However, the usage of this expression indicates that you get a list of metadata associated with a feature instead.
viewportFeatures($value, $category) -> array of {value, category}

So IMO it should be renamed to something like viewportMetadata or viewportFeaturesData to clarify what this expression does.

IMO, viewportFeaturesData or even viewportFeaturesMetadata sounds great. Should keep having a viewportFeatures expression that does what you expect, obtaining an array of features?

We could return the same "smart" features we are returning on Interactivity, I think the implementation could re-use most parts of the Interactivity one.

We have just merged the new approach to master 🚀


Improvement for k8s.io/docs/tutorials/kubernetes-basics/

Make it simpler to understand. Cut the Jargon/Clutter, and make it easier to for the person who's reading the documentation, because that's the whole point of documentation.

@Ch-sriram Can you provide more details In which section you are seeing the Jargons or where you are facing understanding the documentation?

Read the paragraph here. Do you really think a person who is just beginning to understand what kubernetes is, will he/she able to understand what you wrote there?
Especially this excerpt:

Kubernetes helps you make sure those containerized applications run where and when you want, and helps them find the resources and tools they need to work.

And also, look at the website's design here, it looks so wrong & awkward. Please answer the following questions for yourself:

Why would you put a sub-heading below an image?
Why are those images so big and the sub-headings so small?
Why would you assume that the people coming to read the documentation would know what "containerization" is? -- Explain the bare basic terms you use there, or at least link them to the concept(s) that we should know, before going through with this, or else people would just be confused by reading the doc.

What I'm trying to say is, make the doc so good, that whoever comes to read for the first time, should get it in the first go. Think from the perspective of a developer who's just trying to read/learn/know about kubernetes for the first time.
I've made a proposal to the code change here

/priority important-longterm

Oops. Wrong place.
/priority awaiting-more-evidence


What to do if you want to support opening XLS format files

What to do if you want to support opening XLS format files

What do you mean? What's the difference between Excel XLS format and opening XLS format?

May related to https://github.com/unvell/ReoGrid/pull/292


Keyboard shortcut for Run

command + enter would be good for this. That's what tools like jsbin use.

Clearing out old issues, closing this for inactivity.


Drop VirtualSpout.getMaxLag() and pass the MetricsRecorder to Consumer

The getMaxLag() method has always felt awkward and it's another one of those situations where we are leaking our concerns across layers. I've wanted to switch this maxLag to be the endOffset and in other Consumer implementations we have a need for the ability to report metrics.  So this PR introduces the MetricsRecorder into the Consumer interface and drops the getMaxLag() metric in favor of a consumer specific one for the starting offset.

While "maxLag" was kind of a garbage stat before, it looks like we lost it entirely in this PR?
Should we be calculating the difference between the current state and end offset for each partition and reporting that?

@Crim We should be able to calculate more accurate max lag using endOffset, no? Isn't that endOffset - currentOffset for each partition?

Where is that reported in the consumer?  Or is that in SpoutPartitionProgressMonitor.java?  Seems weird to have that logic split across two un-related classes.
Does it make sense to just entirely remove SpoutPartitionProgressMonitor.java and fold that logic elsewhere?

@Crim I feel like what we want/need is a set of metrics at the DynamicSpout and VirtualSpout layers that are independent of the Consumer metrics. Right now they are kind of convoluted, but SpoutPartitionProgressMonitor has the sort of thing I suspect we want, just not sure if that's the final resting place. Because that class isn't public and we're not forcing an implementing method I'm OK with it right now, but we should think about a better structure long term.

RE: SpoutPartitionProgressMonitor. The original purpose was to abstract out the common metrics across various consumers so it wouldn't have to be re-implemented for every one, but perhaps thats an early/not needed optimization?

@Crim Yeah, I think what I learned from our other consumer implementation is that the metrics we thought were generic on the kafka one weren't necessarily what I wanted to add. I think standardizing metrics in VirtualSpout about tuples passing through is ok, and I guess I'm saying I feel like that's more what SpoutPartitionProgressMonitor is doing - so it's ok.

@Crim Are we good to go on this one now?

Looks good.  I made a slight tweak in this PR: https://github.com/salesforce/storm-dynamic-spout/pull/50 which wants to merge into your PR here.
Feel free to merge or discard.

@Crim I think we should switch to String.format() in #50, but then I'm fine with you merging it into this branch.

For readability I'd agree with you, tho the interwebs seems to believe that String.format() was considerably slower than just concat'ing

TODO: Update README with new / removed metrics.

I updated the README.  I think the Changelog could use some work, may tackle that next.

Ok, seems solid to me @stanlemon 👍


Must manually create directory /var/lib/containers/storage/overlay for buildah overlayfs to work on Alpine Linux 3.7

Description
I recently ported buildah v0.11 to Alpine Linux and on an Alpine Linux 3.7 machine (bare metal x86_64). It will fail to use overlayfs unless you manually create /var/lib/containers/storage/overlay post install.
I received the error, listed below, when attempting to use buildah which stated I did not have support for the overlay filesystem. I manually verified that the overlay kernel module was loaded and even manually created an overlay file system via mount.  After injecting debug code into the github.com/containers/storage dependency for the build I was able to tease out that there was an expectation of the directory /var/lib/containers/storage/overlay being preset when it in fact was not. Simply running the following solves the issue:
sudo mkdir /var/lib/containers/storage/overlay

NOTE: I'm aware that buildah has no support for Alpine Linux at the moment but as this appears to be unrelated to the OS it seemed best to submit it as others may have a similar issue.
Steps to reproduce the issue:

Build buildah v0.11, using the tar.gz from the release page of this repository, on Alpine Linux 3.7 with default Go compiler and dependencies as listed below.
Clean out /var/lib/containers if it is present from prior uses.
Run sudo buildah --debug from scratch

Build dependencies:
go=1.9.2-r1
btrfs-progs-dev=4.13.2-r0
device-mapper-libs=2.02.175-r0
lvm2-dev
gpgme-dev=1.9.0-r1

Describe the results you received:
$ sudo buildah --debug from scratch
ERRO[0000] 'overlay' not found as a supported filesystem on this host. Please ensure kernel is new enough and has overlay support loaded.
DEBU[0000] devicemapper: kernel dm driver version is 4.35.0
ERRO[0000] devmapper: Udev sync is not supported. This will lead to data loss and unexpected behavior. Install a more recent version of libdevmapper or select a different storage driver. For more information, see https://docs.docker.com/engine/reference/commandline/dockerd/#storage-driver-options
DEBU[0000] [zfs] zfs command is not available: exec: "zfs": executable file not found in $PATH
working-container

Describe the results you expected:
$ sudo buildah --debug from scratch
DEBU[0000] overlay test mount with multiple lowers succeeded
DEBU[0000] backingFs=extfs, projectQuotaSupported=false
INFO[0000] [graphdriver] using prior storage driver: overlay
working-container

Output of rpm -q buildah or apt list buildah:
$ sudo apk info buildah
buildah-0.11-r001 description:
A command line tool used to creating OCI Images

buildah-0.11-r001 webpage:
https://github.com/projectatomic/buildah

buildah-0.11-r001 installed size:
15794176

Output of buildah version:
Version:       0.11
Go Version:    go1.9.2
Image Spec:    1.0.0
Runtime Spec:  1.0.0
Git Commit:
Built:         Sat Feb 10 12:26:00 2018
OS/Arch:       linux/amd64

Output of cat /etc/*release:
3.7.0
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.7.0
PRETTY_NAME="Alpine Linux v3.7"
HOME_URL="http://alpinelinux.org"
BUG_REPORT_URL="http://bugs.alpinelinux.org"

Output of uname -a:
Linux mybox 4.9.65-1-hardened #2-Alpine SMP Mon Nov 27 15:36:10 GMT 2017 x86_64 Linux

Output of cat /etc/containers/storage.conf:
cat: can't open '/etc/containers/storage.conf': No such file or directory

Thanks for making this work on Alpine
/etc/containers/storage.conf is provided by skopeo-containers package.  This content should be shared between all products that use containers/storage, buildah, cri-o, podman, skopeo.  Has skopeo been packaged up for Alpine?
I don't understand why you would need to create /var/lib/containers/storage/overlay directory.  That should happen automatically.

Off of buildah master this is the check for overlay support.
func supportsOverlay(home string, homeMagic graphdriver.FsMagic, rootUID, rootGID int) (supportsDType bool, err error) {
	// We can try to modprobe overlay first
	exec.Command("modprobe", "overlay").Run()

	layerDir, err := ioutil.TempDir(home, "compat")
	if err == nil {
		// Check if reading the directory's contents populates the d_type field, which is required
		// for proper operation of the overlay filesystem.
		supportsDType, err = fsutils.SupportsDType(layerDir)
		if err != nil {
			return false, err
		}
		if !supportsDType {
			return false, overlayutils.ErrDTypeNotSupported("overlay", backingFs)
		}

		// Try a test mount in the specific location we're looking at using.
		mergedDir := filepath.Join(layerDir, "merged")
		lower1Dir := filepath.Join(layerDir, "lower1")
		lower2Dir := filepath.Join(layerDir, "lower2")
		defer func() {
			// Permitted to fail, since the various subdirectories
			// can be empty or not even there, and the home might
			// legitimately be not empty
			_ = unix.Unmount(mergedDir, unix.MNT_DETACH)
			_ = os.RemoveAll(layerDir)
			_ = os.Remove(home)
		}()
		_ = idtools.MkdirAs(mergedDir, 0700, rootUID, rootGID)
		_ = idtools.MkdirAs(lower1Dir, 0700, rootUID, rootGID)
		_ = idtools.MkdirAs(lower2Dir, 0700, rootUID, rootGID)
		flags := fmt.Sprintf("lowerdir=%s:%s", lower1Dir, lower2Dir)
		if len(flags) < unix.Getpagesize() {
			if mountFrom(filepath.Dir(home), "overlay", mergedDir, "overlay", 0, flags) == nil {
				logrus.Debugf("overlay test mount with multiple lowers succeeded")
				return supportsDType, nil
			}
		}
		flags = fmt.Sprintf("lowerdir=%s", lower1Dir)
		if len(flags) < unix.Getpagesize() {
			if mountFrom(filepath.Dir(home), "overlay", mergedDir, "overlay", 0, flags) == nil {
				logrus.Errorf("overlay test mount with multiple lowers failed, but succeeded with a single lower")
				return supportsDType, errors.Wrap(graphdriver.ErrNotSupported, "kernel too old to provide multiple lowers feature for overlay")
			}
		}
		logrus.Errorf("'overlay' is not supported over %s at %q", backingFs, home)
		return supportsDType, errors.Wrapf(graphdriver.ErrIncompatibleFS, "'overlay' is not supported over %s at %q", backingFs, home)
	}

	logrus.Error("'overlay' not found as a supported filesystem on this host. Please ensure kernel is new enough and has overlay support loaded.")
	return supportsDType, errors.Wrap(graphdriver.ErrNotSupported, "'overlay' not found as a supported filesystem on this host. Please ensure kernel is new enough and has overlay support loaded.")
}

Awesome.  Here are the packages buildah requires on Fedora according to RPM.
rpm -q buildah --requires
container-selinux
libassuan.so.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libdevmapper.so.1.02()(64bit)
libdevmapper.so.1.02(Base)(64bit)
libdevmapper.so.1.02(DM_1_02_97)(64bit)
libgio-2.0.so.0()(64bit)
libglib-2.0.so.0()(64bit)
libgobject-2.0.so.0()(64bit)
libgpg-error.so.0()(64bit)
libgpgme.so.11()(64bit)
libgpgme.so.11(GPGME_1.0)(64bit)
libgpgme.so.11(GPGME_1.1)(64bit)
libostree-1.so.1()(64bit)
libostree-1.so.1(LIBOSTREE_2016.3)(64bit)
libostree-1.so.1(LIBOSTREE_2016.8)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libselinux.so.1()(64bit)
ostree
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
runc >= 1.0.0-17
skopeo-containers >= 0.1.20-2
rpmlib(PayloadIsXz) <= 5.2-1

container-selinux is probably not required, since I don't think alpine supports SELinux.
skopeo-containers and runc are the two that you need content from.
If you package up these for alpine on any other platform and make them available for others, we should update the docs to mention them.

@code-ape Is this issue still open, or are you satisfied with the answer?

@rhatdan I think this is good to be closed. I got half way done with packaging and work has flared up the last couple weeks. I’ll submit a new issue when it’s done. Thanks for circling back!

Is this the same issue, on Arch?
skopeo 0.1.29-1
buildah-git r858.45a9d37e-1
runc-git v1.0.0.rc5.r92.g4056a41f-1

sudo buildah images

ERRO[0000] 'overlay' is not supported over extfs at "/var/lib/containers/storage/overlay"

sudo buildah containers

ERRO[0000] 'overlay' is not supported over extfs at "/var/lib/containers/storage/overlay"
CONTAINER ID  BUILDER  IMAGE ID     IMAGE NAME                       CONTAINER NAME

sudo buildah from docker://base/archlinux

ERRO[0000] 'overlay' is not supported over extfs at "/var/lib/containers/storage/overlay"
Getting image source signatures
Copying blob sha256:f42607dabea90d3d7bd17b21ab146439632ac0cd00531b470c7cc278499e0b77
 137.50 MiB / 137.50 MiB [=================================================] 43s
Copying blob sha256:f9cb6b731431c1c143686fb9cfd8da3b39a941c6caf6a4181037f59ea3fca6e3
 234 B / 234 B [============================================================] 0s
Copying blob sha256:43c3fa17bad983ad9de5096f1a8639c700fb229f09d25cb028f7830a8578a34c
 11.73 MiB / 11.73 MiB [====================================================] 2s
Copying blob sha256:42fa23ba4bec76fcf8a5b2679f7566c36aebaa80ffa56864dd2f6fb419dbd340
 71.99 MiB / 71.99 MiB [===================================================] 22s
Copying config sha256:7477438791e3aae60ba1215accfa7a09a2e713b6fc7a017f364c0effed09f6f3
 3.34 KiB / 3.34 KiB [======================================================] 0s
Writing manifest to image destination
Storing signatures
archlinux-working-container

sudo buildah containers

ERRO[0000] 'overlay' is not supported over extfs at "/var/lib/containers/storage/overlay"
CONTAINER ID  BUILDER  IMAGE ID     IMAGE NAME                       CONTAINER NAME
667963ce131f     *<PHONE_NUMBER>e3 docker.io/base/archlinux:latest  archlinux-working-container

sudo buildah run archlinux-working-container -- sh

ERRO[0000] 'overlay' is not supported over extfs at "/var/lib/containers/storage/overlay"
sh-4.4# exit

pacman -Qql skopeo

/etc/
/etc/containers/
/etc/containers/policy.json
/etc/containers/registries.d/
/etc/containers/registries.d/default.yaml
/usr/
/usr/bin/
/usr/bin/skopeo
/usr/share/
/usr/share/bash-completion/
/usr/share/bash-completion/completions/
/usr/share/bash-completion/completions/skopeo
/usr/share/man/
/usr/share/man/man1/
/usr/share/man/man1/skopeo.1.gz
/var/
/var/lib/
/var/lib/atomic/
/var/lib/atomic/sigstore/

This is the check
	case graphdriver.FsMagicAufs, graphdriver.FsMagicZfs, graphdriver.FsMagicOverlay, graphdriver.FsMagicEcryptfs:
		logrus.Errorf("'overlay' is not supported over %s", backingFs)
		return nil, errors.Wrapf(graphdriver.ErrIncompatibleFS, "'overlay' is not supported over %s", backingFs)
	}

Do you happen to know if extfs support Overlay?

Actually I am wrong extfs does not seem to support DType?
https://github.com/containers/storage/blob/master/drivers/overlay/overlay.go#L279


Update UG for Edit commands

Tag commit with v1.2

LGTM, explanations are clear and well parsed :thumbsup:


Remember window position

Not sure if this is an issue with the app itself, but usually when I Ctrl-click to close an application, it remembers the previous window position when it runs the next time. Doesn't seem to happen for Messenger.

I think remembering window position should be part of the app already. Unfortunately it doesn't seem to work in a multi-monitor environment either :(

I think ctrl-click force closes the app, that's why the position isn't remembered.

Not sure if this goes here, or should be an additional issue, but the window doesn't reposition when the app is positioned in a monitor that has been disconnected. Using Win+Arrow key in Windows will reposition it correctly.


Add validation/support for get_ports defined with brackets in XDC

XDC files are sometimes distributed with get_ports arguments provided in {} brackets, and sometimes with spacing between brackets and the port name. For example, the Digilent Nexys Video which is a popular development board for Artix 7 is provided with XDC constraints defined this way.  The current code only supports the case where no spacing is present, and fails cryptically otherwise. This change adds support for space between port names and brackets and outputs a message describing the supported get_ports parse formats if neither is found to work.
Closes issue #15

https://gist.github.com/gh-sh4/5a2f5bf088d4b460b0aaf7d06fdcfe0c
I also created a couple of gtest tests which validate this for both get_ports with and without spaces. Both tests pass, but I cannot include with this change since tests are submodule'd from another repository.


onEndReached re render all images every time

Thank you for the library. Everything seems to be working fine except when onEndReached is called, all images are re rendered. Is there a way to fix this issue ?

https://github.com/hejun041/react-native-masonry-list
may help

Thanks closing

Hi how did you fix onEndReached call all images?

:tada: Efficiently Add More Images
Version *2.12.0 update: Without rerendering the images.
import MasonryList from "react-native-masonry-list";

//...
// example function to add more images
addMoreImages(newImages) {
    this.setState({
        images: this.state.images.concat(newImages)
    });
}

render() {
    return (
        <MasonryList
            images={this.state.images}
        />
    );
}
//...

:+1: If you like react-native-masonry-list, please be sure to give it a star. Thanks.