[SPARK-4449][Core]Specify port range in spark

Based on https://github.com/apache/spark/pull/3314, use a range for port retry per @sowen @tgravescs 's comments.
With lots of signature of function changed, user can set "spark.*.port" to a string like "a:b" in which "a" represents the minimum port services will start on and "b" the maximum.
In the meantime it still gurantee the backward-compatibility which means user can still use a single number as ports' value.

Test build #30967 has started for   PR 5722 at commit d4da80b.

Test build #30967 has finished for   PR 5722 at commit d4da80b.

This patch fails Scala style tests.

This patch merges cleanly.

This patch adds the following public classes (experimental):

class MasterWebUI(val master: Master, requestedPort: String)

This patch does not change any dependencies.

Test build #31096 has started for   PR 5722 at commit a01a20e.

Test build #31096 has finished for   PR 5722 at commit a01a20e.

This patch fails Spark unit tests.

This patch merges cleanly.

This patch adds no public classes.

This patch adds the following new dependencies:

tachyon-0.6.4.jar
tachyon-client-0.6.4.jar

This patch removes the following dependencies:

tachyon-0.5.0.jar
tachyon-client-0.5.0.jar

Test build #31108 has started for   PR 5722 at commit db0d3ee.

Test build #31108 has finished for   PR 5722 at commit db0d3ee.

This patch passes all tests.

This patch merges cleanly.

This patch adds the following public classes (experimental):

class MasterWebUI(val master: Master, requestedPort: String)

This patch does not change any dependencies.

@srowen  @tgravescs Could you guys take a look at this? Thanks~

Merged build triggered.

Merged build started.

Test build #31232 has started for   PR 5722 at commit a149eba.

Test build #31232 has finished for   PR 5722 at commit a149eba.

This patch fails to build.

This patch merges cleanly.

This patch adds the following public classes (experimental):

class MasterWebUI(val master: Master, requestedPort: String)

This patch does not change any dependencies.

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

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #31257 has started for   PR 5722 at commit 083760a.

Test build #31257 has finished for   PR 5722 at commit 083760a.

This patch fails Spark unit tests.

This patch merges cleanly.

This patch adds the following public classes (experimental):

class MasterWebUI(val master: Master, requestedPort: String)

This patch does not change any dependencies.

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

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #31416 has started for   PR 5722 at commit 5e2940d.

Test build #31416 has finished for   PR 5722 at commit 5e2940d.

This patch passes all tests.

This patch merges cleanly.

This patch adds the following public classes (experimental):

class MasterWebUI(val master: Master, requestedPort: String)

This patch does not change any dependencies.

Merged build finished. Test PASSed.

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

Merged build triggered.

Merged build started.

Test build #31753 has started for   PR 5722 at commit 28a3adf.

Test build #31753 has finished for   PR 5722 at commit 28a3adf.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

Merged build finished. Test FAILed.

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

Test error is:
[error] oro#oro;2.0.8!oro.jar origin location must be absolute: file:/home/jenkins/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar.
Seems like it has nothing to do with this patch. So Jenkins, retest this please.

Jenkins, test this please.

Merged build triggered.

Merged build started.

Test build #31756 has started for   PR 5722 at commit 28a3adf.

Test build #31756 has finished for   PR 5722 at commit 28a3adf.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

Merged build finished. Test FAILed.

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

Jenkins, retest this please.

Merged build triggered.

Merged build started.

Test build #31757 has started for   PR 5722 at commit 28a3adf.

Test build #31757 has finished for   PR 5722 at commit 28a3adf.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

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

Merged build finished. Test FAILed.

Jenkins, retest this please.

Merged build triggered.

Merged build started.

Test build #31842 has started for   PR 5722 at commit 28a3adf.

Test build #31842 has finished for   PR 5722 at commit 28a3adf.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

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

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #31956 has started for   PR 5722 at commit 3b36dff.

Test build #31956 has finished for   PR 5722 at commit 3b36dff.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Merged build triggered.

Merged build started.

Test build #32710 has started for   PR 5722 at commit 0a3d415.

@vanzin How about current change? The port retries spark.port.maxRetries time if user set a single value while it is maxPort - minPort time when user sets "minPort:maxPort".
@srowen If user wanna bind port to some specified value without retry, he should set configuration value to "port:port".

Test build #32710 has finished for   PR 5722 at commit 0a3d415.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

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

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #32712 has started for   PR 5722 at commit 6e80ab0.

Test build #32712 has finished for   PR 5722 at commit 6e80ab0.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

Merged build finished. Test FAILed.

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

Hi @WangTaoTheTonic, yes, that's a lot more in line with what I was thinking. It does allow users to shoot themselves in the foot (e.g., if I set a range "1000-2000" for the UI port and a range "3000-3001" for some other port, then the wider range for the UI port is mostly useless), which I guess is one argument for keeping the current behavior, but I think in the end either is fine.
You do need to fix tests, though, since there's a lot of compilation failures in test code. Running them locally is a good way to catch those. :-)

Merged build triggered.

Merged build started.

Test build #32756 has started for   PR 5722 at commit 2480865.

Test build #32756 has finished for   PR 5722 at commit 2480865.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

Merged build finished. Test PASSed.

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

@vanzin OK i got it.
@srowen How do you think?

Merged build triggered.

Merged build started.

Test build #32771 has started for   PR 5722 at commit bb08eef.

Test build #32771 has finished for   PR 5722 at commit bb08eef.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

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

Merged build finished. Test PASSed.

Merged build triggered.

Merged build started.

Test build #33440 has started for   PR 5722 at commit dff9542.

Test build #33440 has finished for   PR 5722 at commit dff9542.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

Merged build finished. Test PASSed.

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

@srowen Is it ok to go?

Looks like @vanzin is okay about this, what more concerns do you have? @srowen

Merged build triggered.

Merged build started.

Test build #33737 has started for   PR 5722 at commit 4db351a.

Test build #33737 has finished for   PR 5722 at commit 4db351a.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MasterWebUI(val master: Master, requestedPort: String)

Merged build finished. Test PASSed.

I haven't been keeping up with this. @vanzin @srowen  do you have further comments on this?

Any updates on this @vanzin @srowen? I took another quick look myself and found it kind of weird that we're passing strings as ports everywhere. What was the original motivation for doing this again? Revisiting the discussion about maxRetryPorts, is it worth having essentially different retry ports for each port? Personally I'm not super sold on this feature unless there's a compelling use case for it.

Code-wise I think this is ok; but I raised the same concern in a previous comment (https://github.com/apache/spark/pull/5722#issuecomment-102134658). Basically, having all ranges be implicit (start port + a shared "max range size") seems to be the less problematic approach (you still may run into issues, but at least at that point it's not a configuration issue).

@andrewor14 There are two motivations about this, first is mention in https://github.com/apache/spark/pull/3314, we would like to control the retry range when user set some port to 0, but @srowen came up this idea which is setting each port to a range.
The other motivation is mentioned in https://github.com/apache/spark/pull/5657. When we start a public port on a specified setting, it better not to retry becasue once the retry happens client will fail to connect it.

The other motivation is mentioned in #5657. When we start a public port on a specified setting, it better not to retry becasue once the retry happens client will fail to connect it.

The users can just configure spark.port.maxRetries themselves can't they?

@andrewor14 my short summary of the problem and/or appeal of a change is that, right now, if you set a port to P, then Spark will always try ports P to P+(N-1), where N is spark.port.maxRetries. This makes sense for some ports (executors, etc.) even if you can imagine that in some cases you want executors to try 9000-9010, and web UIs to try 8000-8080 or something, to match firewall rules -- that is, different N. More importantly imagine running the web UI on port 80; it doesn't make sense to march through 81, 82, 83 as those are different well-known ports.
The problem is indeed that it's a fairly invasive change. I think it would go something like this:

If a port is specified as a number, continue to try several ports following according to spark.port.maxRetries for backwards compatibility
Deprecate spark.port.maxRetries I think
Introduce new "[min,max]" range syntax for ports
Change all the port handling code everywhere to handle (Int,Int)
Change port arg parsing code to handle both cases

I admit I think this would be a good change; I'm also put off by how much change it would be.

It's true that for some ports we want a well-defined, fixed value, but perhaps this is not the right way to fix it? For ports that require a well-defined value, isn't it better to make sure that the code that starts that service does not retry at all, instead of making configuration for other ports more complicated?

Its not necessarily a well defined value but a well defined range.  This is how many network acls work.  You can open up specific port ranges for clients to use.

You can open up specific port ranges for clients to use.

But that's handled today with "port" + "maxPortRetries", right? The other use case is, for example, "the shuffle service must bind to port X, and no other port". That's independent from, for example, the port range where the user wants to set up his executor's akka service.

More importantly imagine running the web UI on port 80; it doesn't make sense to march through 81, 82, 83 as those are different well-known ports.

I would argue that Spark should never use any well-known ports (below 1024). I think it's OK for Spark to retry at 1025 and beyond. I thought the original motivation was for ports that start at 0, where we will pick a random port within a user-specified range that's smaller than 1024 - 65536. Is that not the case?

Either way I agree with @vanzin that this is not the right fix. I've run Spark in a fire-walled environment where I had to assign a special port to each component that would otherwise default at 0. E.g. connection manager at port 9910, block manager at port 9920, executor at port 9930 etc. This is effectively the same as specifying a port range if we set spark.port.maxRetries = 10.

@vanzin you're arguing that you either want to retry all ports N times, or not at all (N=0). That does describe a lot of use cases, but it wouldn't let you, say, let some ports take on a fixed value and not others. If you mean, let N vary per port, yes, that seems to me exactly what a range is. 9999 or [9999,9999] means 9999 + 0 retries; [9999,10001] means 9999 + 2 retries.
Sure, it's an open question: how bad does anyone need to do that?
@andrewor14 yes this came up again for exactly this reason -- someone really wanted to run the web UIs on port 80 (can't find the JIRA just now). I also wondered if this is good practice; not sure it is. There's a separate issue right now that the logic won't allow you to do this. Even if that were fixed you're faced with having to use fixed ports for all ports if any of them (like port 80) must be fixed.
I'm pretty neutral -- if this were being written from scratch I'd push for range syntax, but not sure now just given the code change needed.

If you mean, let N vary per port, yes, that seems to me exactly what a range is.

Correct, but my original question was the same as yours: is there a use case for that?
My view is that no, there isn't. Let's take two ports, "webui" and "akka", and assign different ranges to them. There's only a 10 port range for "webui", and a 1000 port range for "akka". In practice, though, it's as if both ranges were 10, since as soon as you start the 11th application, the webui can't bind and Spark will exit.

What if you want to run your driver UI on exactly one port, but need the executors to try many ports because they may collide with other executors on the cluster from other apps? or even because it's possible you'll schedule two of your executors on one machine? Is that realistic -- I wonder if I miss some reason this won't happen.

What if you want to run your driver UI on exactly one port

Ok, I can somewhat see that argument, although I don't see why someone would require that Spark's UI bind to a specific port. If they're building some application on top of Spark that has its own UI, I'd understand, but then they'd have their own code to decide to which port that UI would bind.

I think it's almost all about binding to port 80. It doesn't make sense to retry on 81, 82, etc. even if it makes sense for all the other daemons to retry 9000, 9001, etc. Right now the code won't even let you use port 80. Interesting question whether it should be allowed. But yeah that is I think the most legitimate use case you can construct for this, which isn't crazy at least.

Ok, I can somewhat see that argument, although I don't see why someone would require that Spark's UI bind to a specific port. If they're building some application on top of Spark that has its own UI, I'd understand, but then they'd have their own code to decide to which port that UI would bind.

Ah I see, I think the use case is if a third party app wants to always point to the SparkUI at 4040 and would rather fail the driver early if it can't bind to that port.

OK I think one thing we all agree is that SPARK-4449 means have different port retries across different ports.
One way to do it is to have the special syntax introduced in this patch. Another way we could do it is by accepting a .maxRetries suffix to each of the port configs, e.g.
spark.blockManager.port 5588
spark.blockManager.port.maxRetries 10

means [5588:5598]. Perhaps this will lead to less change in Spark, though not much less I don't think.

(EDIT: I posted a suggestion that I didn't like in retrospect, so I deleted it. Please disregard.)

So it  seems that the documentation is not very clear on this also:
spark.port.maxRetries	16	Default maximum number of retries when binding to a port before giving up.
when I read that it doesn't mean that it increments the port from the start point.  I read this as retry the same port 16 times.
That can be fixed in a separate jira though.

Hi guys, sorry for seeing your comments so late. I think we already come up with an agreement with two cases this patch wanna fix:
One is that some ports should bind to specified value so that client could connect to them without retries.
The other one is that for some random port (start at 0) we wanna control their ranges too.
And the main problem is that current code is propagating port range as a string everywhere, the better way is converting port argument at parsing stage then passing them as (min, max) in arguments list.
Did I understand it in right way? If yes I will rebase/rewrite the code.

I'd say it slightly differently: the goal is to define, for every configurable port, a range of 1 or more port numbers that may be bound to it. It could be a single port, or a range.
Yes, plumbing through a range of (Int,Int) seems better than String or Int, although the plumbing work will be significant.
The other problem is backwards compatibility. I think that a single number like "8080" could be interpreted as the range "[8080,8080]" but then that changes behavior, as previously, this would cause retries through to port 8095. We can make a breaking change. Or, we can preserve the behavior. So 8080 means [8080,8095]. Callers would use [8080,8080] to mean "only 8080". Which is clunkier then.

I think we better keep backwards compatibility and treat [min, max] as a fine grained control on exact port while the "only 8080" with max retries as a coarse one, which means if user config a range, let's ignore the function of max retries and if user specify a exact value for a port, we retry from the config value until we retrive the max retries.
Maybe weakening the max retries config in first step and removing it in next few releases is better idea.

I would like to move the discussion to the JIRA since there's still disagreement over the high level approach and the changes here are not what we want. I think this requires a broader discussion considering Spark 2.0 is around the corner, so an invasive change is less of a concern provided that we do it the right way this time.
@WangTaoTheTonic would you mind closing this PR for now since there hasn't been activity for more than 2 months?


style: now HTML tags are allowed in collection-specific card titles

Summary
Given the flexibility of the collection system, it's highly incongruous to strictly limit the visible summary on list and grid cards to a single line of un-formatted text. At some point, this may warrant a customization system parallel to what's now available for previews, where modules are created for each collection type that define their list and grid cards.
In the meantime, the same result can be achieved by simply allowing the configured collection summary (what in the EntryCard.js is assigned to the "title" constant) to include HTML tags. That, paired with currently-permitted CSS overriding, gives developers a lot of freedom in designing list and grid cards.
This can be achieved simply by rendering EntryCard titles using dangerouslySetInnerHTML. I've done this.
Now, cards can easily be configured on a collection-specific basis.
Test plan
In config.yml, I've defined a collection with the following summary:
summary: " {{fullName}}{{impact}}"

I also added this CSS to static/admin/cms.css:
h2[class*=ListCardTitle] img {
    max-width: 100px;
    float: left;
    margin: 0 20px 20px 0;
}

h2[class*=ListCardTitle] .fullName {
    font-size: 1.2em;
    font-weight: bold;
}

h2[class*=ListCardTitle] .impact {
    display: block;
    font-size: 0.95em;
    margin-top: 10px;
}

This results in an EntryCard that looks like this:

Hi Miles, and thanks for opening this! While this is a really simple way to open up the collection list for customization, we’re really intentional about our API’s and would want to plan and discuss before introducing something like this. Would you mind opening an issue instead to start that conversation?
In the meantime, many folks that want specific functionality like this run a form of the CMS, allowing them to do whatever they like until the feature they need is added to the CMS. This isn’t ideal, but might help ease the waiting period if this is critical for you.
Hope this helps, and please let us know if you have any questions!


Miscellaneous downloader / VCS improvements

Please have a look at the individual commit messages for the details.

I've turned this into a draft and separated out some commits to easy debugging test failures: https://github.com/oss-review-toolkit/ort/pull/2963


No connection pool for 'SolidQueue::Record' found

I'm trying to setup solid_queue for rails 7.2.1 and
I'm getting the error in terminal when i run bundle exec rails solid_queue:start
ActiveRecord::ConnectionNotEstablished: No connection pool for 'SolidQueue::Record' found. (ActiveRecord::ConnectionNotEstablished)

In my database.yml
default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # https://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  primary:
    <<: *default
    database: test_app_development
  queue:
    <<: *default
    database: test_app_development_queue
    migrations_paths: db/queue_migrate

Running rails s works and it's clearly connecting to the primary database.
In my application.rb, I have the following:
# Database
config.active_record.writing_role = :primary
config.active_record.reading_role = :primary

Note: I have that setup as I have other databases configured in my database.yml and wanted to be explicit that all the app data goes to primary.
After commenting it out, I can verify that the queue is able to connect to the database now. However, I'm wondering if this is the expected behaviour as we should be able to specify those configuration in application.rb and it shouldn't affect how solid_queue connects to the database?

Hey @gczh, did you run bin/rails db:prepare after adding the queue database to database.yml?

And another question: do you have config.solid_queue.connects_to set somewhere?

Hey @gczh, did you run bin/rails db:prepare after adding the queue database to database.yml?

Yep I did!

And another question: do you have config.solid_queue.connects_to set somewhere?

I have that setup in both development.rb and production.rb. Is it not necessary to specify that if my database.yml has a multiple database config?

Is it not necessary to specify that if my database.yml has a multiple database config?

Yes, it is, that's why I asked. I saw another person running into trouble because they hadn't set that up 😅
In any case, apologies, I was replying from my phone yesterday night and didn't properly read and investigate your report 😳 In particular this part:

In my application.rb, I have the following:
# Database
config.active_record.writing_role = :primary
config.active_record.reading_role = :primary

Note: I have that setup as I have other databases configured in my database.yml and wanted to be explicit that all the app data goes to primary.
After commenting it out, I can verify that the queue is able to connect to the database now. However, I'm wondering if this is the expected behaviour as we should be able to specify those configuration in application.rb and it shouldn't affect how solid_queue connects to the database?

I think the writing_role and reading_role don't work like that. I think these parameters refer to the names of the roles and aren't directly related to one of your databases in particular. According to the docs:

So this means you're setting both these roles to be named primary, and for Solid Queue, I assume you configured it to be using the default names, writing and reading. So it makes sense that when you commented that out, it worked.


FR: Add uniq/uniqGlobal functionality

Clickhouse has an ability to limit scope of IN/JOIN constructions while querying clustered tables: you could either use local tables or pass result set to  querying server and do IN/JOIN there depending on your sharding scheme.
It will be nice to have same functionality for uniq* family of functions. The idea is: If you know that particular column contains only specific range of values on each shard of you cluster you could use local version of uniq functions avoiding final aggregation phase (actually replacing it with summing of values received from different shards).

Nice idea!
We have related setting: distributed_group_by_no_merge.
If you set it to 1, then intermediate results from remote servers will not be merged.
Example: https://gist.github.com/alexey-milovidov/b097ac3baa210b7743d046e438bf2831
Also it shows, that settings could be specified in subquery, using SETTINGS clause. (Not every setting could be specified that way.)
distributed_group_by_no_merge is experimental, and its usage is cumbersome.
Specific aggregate function for this purpose will be more usable.
But there are some implementation problems.
In aggregate function interface, we have serialize, deserialize and merge methods.
Of course, we could write single "total" value in serialize method and just sum that values in merge methods - it will work as expected.
But serialize/deserialize is used not only during distributed query execution, but also for another purposes: for external aggregation (when intermediate results are dumped to disk), for storing aggregation states in tables (in materialized views).
It means, that modifying just implementation of aggregate function is not enough to achieve desired result.
We still may introduce some strange aggregate function, that will work as expected during distributed query execution, but will work incorrectly while using external aggregation or storing in tables.

Yeap, you're right, separate function will be more straight forward and understandable approach. However it looks like distributed_group_by_no_merge setting do it's job. Is there any limitations on it's usage?

I remember some issues with building query plan involving ORDER BY or LIMIT.
(like ordered results don't get merged or you get more data than limit)
That is understandable and consistent with behaviour of this option, but may be surprising.

@azat If we do GROUP BY injective function of sharding key, we can set distributed_group_by_no_merge setting automatically.

If we do GROUP BY injective function of sharding key

Indeed, I already though about that kind of optimization (automatically set distributed_group_by_no_merge, this can speedup distributed queries a lot in such cases)

and the setting skip_unavailable_shards is active

Am I understand this correctly, the problem is that if this setting will be ignored, in case of server is unavailable the server will send all rows from all shards except unavailable while it should just give an error? Nice catch!

If we do GROUP BY injective function of sharding key

Although brief look at isInjective shows that it is not set correctly for some useful stuff (module, consistent hashing), so this also should not be forgotten.

Am I understand this correctly, the problem is that if this setting will be ignored, in case of server is unavailable the server will send all rows from all shards except unavailable while it should just give an error? Nice catch!

No, I messed it with skip_unused_shards :)

Although brief look at isInjective shows that it is not set correctly for some useful stuff (module, consistent hashing), so this also should not be forgotten.

But modulo and consistent hashing are not injective.
Example of injective function is toString.
Suppose we write:
SELECT ... GROUP BY toString(sharding_key)

No, I messed it with skip_unused_shards :)

Now I got it!

server is unavailable ... it should just give an error?

Too smart :)

But modulo and consistent hashing are not injective.

Indeed, my mistake.
Optimization for GROUP BY and for WHERE (optimize_skip_unused_shards) mixed in my head


Drag and Drop not working with react-dnd context on the same page

To reproduce, use:
https://github.com/fellmann/codemirror-dnd-test
Browsers: Chrome & Firefox
Description:  When CodeMirror is used on the same page as react-dnd, text drag/drop does not work anymore. Removing the react-dnd Context immediately fixes the problem.

I'd lean towards blaming react-dnd, if it breaks the drag/drop behavior of other component on the page.


create a click script to modularize all available tasks

Because this Ansible orchestration should prepare a development environment starting from a fresh installation, I prefer to avoid any other external dependencies.


Close Unchanged closes all tabs.

For some reason Close Unchanged seems to close all tabs, even if some of them have uncommitted changes.
I am using C and C++ files and the C/C++ extension by Microsoft.

Thank you for creating the issue!
At first glance I have no idea why this is happening, this extension tracks file edited with git so the programming language/file extension shouldn't make much of a difference.
I'll try to find some time to have a look, in the meantime if you could do some more tests (different repos for example) trying to find a common pattern, that would help a lot!

I did some digging. For my Rust project it works as expected, for another C++ project on my private PC this time it does not.
After some debugging via Developer Tools I figured out that in utils.js of your plugin, repository.state.workingTreeChanges is empty for some reason, although in VSCode there are Source Control changes. As a result your plugin thinks that there are no changes, and this is why all files are closed, also the files with changes.

I still cannot reproduce it, do you think you can create a tiny repo where this occurs reliably?
Even if it's just a few files, so that I can clone it and reproduce it locally.

I found the bug. It occurrs in projects with multiple repositories. The following line in closeUnchanged.js is the problem:
const canBeClosed = repositories.some((repository) => !(0, utils_1.hasDiff)(fileName, repository));

It closes the file when there is a single repository that does not have the file. However, if you change it to
const canBeClosed = repositories.every((repository) => !(0, utils_1.hasDiff)(fileName, repository));

(note the every), the command works as expected, because the file is only closed if there really is no repository that has the file.
By the way, what is the (0, utiles_1.hasDiff) doing?

Nice catch! Would you mind submitting a PR to fix this? Or let me know I can change it myself :)

By the way, what is the expression (0, utiles_1.hasDiff) doing? What is the 0 for?

To be fair... I don't know. Where did you find it? In the transpiled version? This is the source:
https://github.com/Balastrong/close-tabs/blob/538257de92fdaf353042c1bf7b9e5dd5efc78ffe/src/commands/closeUnchanged.ts#L41-L43

To be fair... I don't know. Where did you find it? In the transpiled version? This is the source:

Yes, I debugged the transpiled version. :D
I would be thankful if you could quickly fix it yourself. I fixed it locally in the transpiled version.

I'm thinking about keeping some but removing the negation inside to keep it linear.
every(!hasDiff) should be thesame as some(hasDiff)

Thanks! I submitted the updated version to the marketplace, it usually takes from a few hours to a couple of days to go live :)


incorrect gradient of real(reduce_prod(complex(...)))

Describe the problem
Tensorflow computes the wrong result for the following gradient:
import tensorflow as tf
x = tf.Variable(1.0)
E = tf.real(tf.reduce_prod(tf.complex( [x,x], [2*x,2*x] )))
sess = tf.Session()
sess.run(tf.variables_initializer([x]))
sess.run(tf.gradients(E,x))

Tensorflow returns 10.0
The correct result is -6 since:
E = real((x+2i*x)^2) = real((1+2i)^2) * x^2 = real(1+4i-4) * x^2 = -3*x^2
dE/dx = -6*x = -6 for x=1

Below is mathematically equivalent code for E, for which Tensorflow returns the correct result of -6.0:
E = tf.real( tf.complex(x,2*x) * tf.complex(x,2*x) )
E = tf.real(tf.exp(tf.reduce_sum(tf.log(tf.complex( [x,x], [2*x,2*x] )))))

System information
Linux distribution = Arch Linux (up to date)
TensorFlow was installed from the Arch Linux package python-tensorflow
I'm using an x86_64 CPU. I'm not using my GPU.
numpy (1.13.1)
protobuf (3.3.2)
tensorflow (1.3.0)
python (3.6.2)

I found 'tensorflow/core/kernels/reduction_ops_prod.cc' to know structure of "tf.reduce_prod()", but there isn't any equation...
On the other hand, I found another issues about reduce_prod and complex, I don't find solution about this problem.
I also want to know how to solve this problem.

It has been 14 days with no activity and this issue has an assignee.Please update the label and/or status accordingly.

Nagging Assignee: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @rmlarsen: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @rmlarsen: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @rmlarsen: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

@rmlarsen Any timeline on when this might be looked at?
@brianwa84 - you might be interested in this
For others that run into this issue, you can use gradient_override_map. Ex (please note that this has not been unit tested):
import tensorflow as tf
from tensorflow.python.ops import array_ops
from tensorflow.python.ops import math_ops
from tensorflow.python.framework import ops
from tensorflow.python.framework import dtypes
from tensorflow.python.ops.math_grad import _safe_shape_div

@tf.RegisterGradient("ModifiedProd")
def _ModifiedProdGrad(op, grad):
    """Gradient for Prod."""
    # The gradient can be expressed by dividing the product by each entry of the
    # input tensor, but this approach can't deal with zeros in the input.
    # Here, we avoid this problem by composing the output as a product of two
    # cumprod operations.

    input_shape = array_ops.shape(op.inputs[0])
    # Reshape reduction indices for the case where the parameter is a scalar
    reduction_indices = array_ops.reshape(op.inputs[1], [-1])

    # Expand grad to full input shape
    output_shape_kept_dims = math_ops.reduced_shape(input_shape, op.inputs[1])
    tile_scaling = _safe_shape_div(input_shape, output_shape_kept_dims)
    grad = array_ops.reshape(grad, output_shape_kept_dims)
    grad = array_ops.tile(grad, tile_scaling)

    # Pack all reduced dimensions into a single one, so we can perform the
    # cumprod ops. If the reduction dims list is empty, it defaults to float32,
    # so we need to cast here.  We put all the shape-related ops on CPU to avoid
    # copying back and forth, and since listdiff is CPU only.
    with ops.device("/cpu:0"):
        rank = array_ops.rank(op.inputs[0])
        reduction_indices = (reduction_indices + rank) % rank
        reduced = math_ops.cast(reduction_indices, dtypes.int32)
        idx = math_ops.range(0, rank)
        other, _ = array_ops.setdiff1d(idx, reduced)
        perm = array_ops.concat([reduced, other], 0)
        reduced_num = math_ops.reduce_prod(array_ops.gather(input_shape, reduced))
        other_num = math_ops.reduce_prod(array_ops.gather(input_shape, other))
    permuted = array_ops.transpose(op.inputs[0], perm)
    permuted_shape = array_ops.shape(permuted)
    reshaped = array_ops.reshape(permuted, (reduced_num, other_num))

    # Calculate product, leaving out the current entry
    left = math_ops.cumprod(reshaped, axis=0, exclusive=True)
    right = math_ops.cumprod(reshaped, axis=0, exclusive=True, reverse=True)
    y = array_ops.reshape(tf.conj(left) * tf.conj(right), permuted_shape)

    # Invert the transpose and reshape operations.
    # Make sure to set the statically known shape information through a reshape.
    out = grad * array_ops.transpose(y, array_ops.invert_permutation(perm))
    return array_ops.reshape(out, input_shape), None

With TF gradient:
with tf.Graph().as_default() as g:
    x = tf.Variable(1.0)
    E = tf.real(tf.reduce_prod(tf.complex( [x,x], [2*x,2*x] )))
    with tf.Session() as sess:
        sess.run(tf.variables_initializer([x]))
        print(sess.run(tf.gradients(E,x)))

>>> [10.0]

With modified gradient:
with tf.Graph().as_default() as g:
    with g.gradient_override_map({"Prod": "ModifiedProd"}):
        x = tf.Variable(1.0)
        E = tf.real(tf.reduce_prod(tf.complex( [x,x], [2*x,2*x] )))
        with tf.Session() as sess:
            sess.run(tf.variables_initializer([x]))
            print(sess.run(tf.gradients(E,x)))

>>> [-6.0]

Also note that the title of this issue should be "incorrect gradient of reduce_prod"

Nagging Assignee @rmlarsen: It has been 15 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.


Longest Prefix Match

Given a trie with keys 'abc' 'abcde'  & 'abcdefgh'
I wish to have a method which when given 'abcdefg'
returns the entry whose key is 'abcde'.
That is the entry whose key is the longest prefix matching the given string.
I have to do a bit of testing but I believe the method already exists.
AbstractPatriciaTrie.getNearestEntryForKey(Object key);
but it is declared package rather than public.

In case anyone else is wondering how to get a longest prefix match with a PatriciaTrie, the methods you are looking for are:

public K selectKey(final K key)
public V selectValue(final K key)

They are unfortunately only declared on AbstractPatriciaTrie and are not part of the general Trie interface. Also, if the desired prefix is not part of the tree these methods will return "the value whose key is closest in a bitwise XOR metric", i.e. if you are looking for an exact prefix match, you need to also compare the returned key against the search key.

In my tests, floorEntry doesn't return the longest prefix either. For example, if the trie contains com.example. and com., floorEntry("com.google.") returns com.example. rather than com.

floorEntry has nothing in common with longest prefix, it can be uses only for initial approximation


Build error with <IP_ADDRESS>5

Gogs version (or commit ref): <IP_ADDRESS>5
Git version: 2.5.4 (Apple Git-61)
Operating system: OSX deploying to Dokku on vagrant
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[x] SQLite

Can you reproduce the bug at https://try.gogs.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

[INFO] Setting version for gopkg.in/redis.v2 to e6179049628164864e6e84e973cfb56335748dea.
+ make build TAGS=sqlite cert pam
fatal: Not a git repository (or any of the parent directories): .git
go install "-v" -ldflags '-X "github.com/gogits/gogs/modules/setting.BuildTime=2016-10-05 06:03:23 UTC" -X "github.com/gogits/gogs/modules/setting.BuildGitHash="' -tags 'sqlite cert pam'
github.com/gogits/gogs/vendor/github.com/Unknwon/cae
github.com/gogits/gogs/vendor/github.com/Unknwon/cae/zip
github.com/gogits/gogs/vendor/github.com/Unknwon/com
github.com/gogits/gogs/vendor/github.com/go-macaron/inject
github.com/gogits/gogs/vendor/gopkg.in/ini.v1
github.com/gogits/gogs/vendor/gopkg.in/macaron.v1
github.com/gogits/gogs/vendor/github.com/go-macaron/binding
github.com/gogits/gogs/vendor/github.com/go-macaron/cache
github.com/gogits/gogs/vendor/github.com/go-macaron/captcha
github.com/gogits/gogs/vendor/github.com/go-macaron/session
github.com/gogits/gogs/vendor/github.com/go-macaron/csrf
github.com/gogits/gogs/vendor/github.com/klauspost/cpuid
github.com/gogits/gogs/vendor/github.com/klauspost/compress/flate
github.com/gogits/gogs/vendor/github.com/klauspost/crc32
github.com/gogits/gogs/vendor/github.com/klauspost/compress/gzip
github.com/gogits/gogs/vendor/github.com/go-macaron/gzip
github.com/gogits/gogs/vendor/github.com/Unknwon/i18n
github.com/gogits/gogs/vendor/golang.org/x/text/internal/tag
github.com/gogits/gogs/vendor/golang.org/x/text/language
github.com/gogits/gogs/vendor/github.com/go-macaron/i18n
github.com/gogits/gogs/vendor/github.com/go-macaron/toolbox
github.com/gogits/gogs/vendor/github.com/go-xorm/core
github.com/gogits/gogs/vendor/github.com/go-xorm/xorm
github.com/gogits/gogs/vendor/github.com/mcuadros/go-version
github.com/gogits/gogs/vendor/github.com/gogits/git-module
github.com/gogits/gogs/vendor/github.com/gogits/go-gogs-client
github.com/gogits/gogs/vendor/github.com/go-sql-driver/mysql
github.com/gogits/gogs/vendor/github.com/gogits/chardet
github.com/gogits/gogs/modules/log
github.com/gogits/gogs/vendor/github.com/bradfitz/gomemcache/memcache
github.com/gogits/gogs/vendor/github.com/go-macaron/cache/memcache
github.com/gogits/gogs/vendor/gopkg.in/bufio.v1
github.com/gogits/gogs/vendor/gopkg.in/redis.v2
github.com/gogits/gogs/vendor/github.com/go-macaron/cache/redis
github.com/gogits/gogs/vendor/github.com/go-macaron/session/redis
github.com/gogits/gogs/modules/bindata
github.com/gogits/gogs/modules/user
github.com/gogits/gogs/vendor/github.com/strk/go-libravatar
github.com/gogits/gogs/modules/setting
github.com/gogits/gogs/modules/base
github.com/gogits/gogs/vendor/github.com/satori/go.uuid
github.com/gogits/gogs/models/migrations
github.com/gogits/gogs/vendor/gopkg.in/asn1-ber.v1
github.com/gogits/gogs/vendor/gopkg.in/ldap.v2
github.com/gogits/gogs/modules/auth/ldap
github.com/gogits/gogs/vendor/github.com/msteinert/pam
github.com/gogits/gogs/modules/auth/pam
github.com/gogits/gogs/vendor/github.com/issue9/identicon
github.com/gogits/gogs/modules/avatar
github.com/gogits/gogs/modules/httplib
github.com/gogits/gogs/vendor/golang.org/x/net/html/atom
github.com/gogits/gogs/vendor/golang.org/x/net/html
github.com/gogits/gogs/vendor/github.com/jaytaylor/html2text
github.com/gogits/gogs/vendor/gopkg.in/gomail.v2
github.com/gogits/gogs/modules/mailer
github.com/gogits/gogs/vendor/github.com/microcosm-cc/bluemonday
github.com/gogits/gogs/vendor/github.com/shurcooL/sanitized_anchor_name
github.com/gogits/gogs/vendor/github.com/russross/blackfriday
github.com/gogits/gogs/modules/markdown
github.com/gogits/gogs/modules/process
github.com/gogits/gogs/modules/sync
github.com/gogits/gogs/modules/template/highlight
github.com/gogits/gogs/vendor/github.com/lib/pq/oid
github.com/gogits/gogs/vendor/github.com/lib/pq
github.com/gogits/gogs/vendor/github.com/mattn/go-sqlite3
github.com/gogits/gogs/vendor/github.com/nfnt/resize
github.com/gogits/gogs/vendor/github.com/sergi/go-diff/diffmatchpatch
github.com/gogits/gogs/vendor/golang.org/x/crypto/curve25519
github.com/gogits/gogs/vendor/golang.org/x/crypto/ed25519/internal/edwards25519
github.com/gogits/gogs/vendor/golang.org/x/crypto/ed25519
github.com/gogits/gogs/vendor/golang.org/x/crypto/ssh
github.com/gogits/gogs/vendor/golang.org/x/text/encoding/internal/identifier
github.com/gogits/gogs/vendor/golang.org/x/text/transform
github.com/gogits/gogs/vendor/golang.org/x/text/encoding
github.com/gogits/gogs/vendor/golang.org/x/text/encoding/internal
github.com/gogits/gogs/vendor/golang.org/x/text/encoding/charmap
github.com/gogits/gogs/vendor/golang.org/x/text/encoding/japanese
github.com/gogits/gogs/vendor/golang.org/x/text/encoding/korean
github.com/gogits/gogs/vendor/golang.org/x/text/encoding/simplifiedchinese
github.com/gogits/gogs/vendor/golang.org/x/text/encoding/traditionalchinese
github.com/gogits/gogs/vendor/golang.org/x/text/internal/utf8internal
github.com/gogits/gogs/vendor/golang.org/x/text/runes
github.com/gogits/gogs/vendor/golang.org/x/text/encoding/unicode
github.com/gogits/gogs/vendor/golang.org/x/text/encoding/htmlindex
github.com/gogits/gogs/vendor/golang.org/x/net/html/charset
github.com/gogits/gogs/models
# github.com/gogits/gogs/models
models/access.go:84: cannot use x (type *xorm.Engine) as type Engine in argument to accessLevel:
r*xorm.Engine does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session
rewant Where(interface {}, ...interface {}) *xorm.Session
models/access.go:94: cannot use x (type *xorm.Engine) as type Engine in argument to hasAccess:
r*xorm.Engine does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session
rewant Where(interface {}, ...interface {}) *xorm.Session
models/access.go:245: cannot use x (type *xorm.Engine) as type Engine in argument to r.recalculateAccesses:
r*xorm.Engine does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session
rewant Where(interface {}, ...interface {}) *xorm.Session
models/action.go:194: cannot use x (type *xorm.Engine) as type Engine in argument to newRepoAction:
r*xorm.Engine does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session
rewant Where(interface {}, ...interface {}) *xorm.Session
models/action.go:217: cannot use x (type *xorm.Engine) as type Engine in argument to renameRepoAction:

r*xorm.Engine does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session
rewant Where(interface {}, ...interface {}) *xorm.Session

models/action.go:568: cannot use x (type *xorm.Engine) as type Engine in argument to transferRepoAction:
r*xorm.Engine does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session

rewant Where(interface {}, ...interface {}) *xorm.Session
models/action.go:586: cannot use x (type *xorm.Engine) as type Engine in argument to mergePullRequestAction:
r*xorm.Engine does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session
rewant Where(interface {}, ...interface {}) *xorm.Session
models/issue.go:154: cannot use x (type *xorm.Engine) as type Engine in argument to issue.loadAttributes:
r*xorm.Engine does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session
rewant Where(interface {}, ...interface {}) *xorm.Session
models/issue.go:231: cannot use x (type *xorm.Engine) as type Engine in argument to i.hasLabel:
r*xorm.Engine does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session
rewant Where(interface {}, ...interface {}) *xorm.Session
models/issue.go:312: cannot use e (type *xorm.Session) as type Engine in argument to issue.getLabels:
r*xorm.Session does not implement Engine (wrong type for Where method)
rehave Where(string, ...interface {}) *xorm.Session
rewant Where(interface {}, ...interface {}) *xorm.Session
models/issue.go:312: too many errors
github.com/gogits/gogs/vendor/github.com/Unknwon/paginater
github.com/gogits/gogs/vendor/gopkg.in/editorconfig/editorconfig-core-go.v1
github.com/gogits/gogs/vendor/github.com/gogits/cron
github.com/gogits/gogs/vendor/github.com/urfave/cli
Makefile:31: recipe for target 'build' failed
make: *** [build] Error 2
remote: The command '/bin/sh -c ./docker/build.sh' returned a non-zero code: 2
To dokku@my.dokku:edit
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'dokku@my.dokku:edit'

This error looks very similar to https://github.com/gogits/gogs/issues/3712 to me, but the latest commit should have fixed it, trying to understand why it's still happening for me.
Description
Trying to get gogs up and running, for the first time, here are the steps I took:

git clone https://github.com/gogits/gogs.git (git log latest commit: 2bec8a4f1ef6b48220a0010c1482e561abd55810)
git remote add dokku dokku@dokku.me:gogs
git push dokku master (failed due to macaron version)
manually applied the fix (https://github.com/gogits/gogs/pull/3727/files)
git add/commit/push again
encounter the error shown above

Do try running go get -u all. You are not running the latest version of go-xorm.

This isn't my local go install. If I'm understanding the setup correctly, go gets auto-downloaded by Docker, from the logs it looks like it ends up being downloaded into /tmp:
+ cd /tmp/go/src/github.com/Masterminds/glide
+ make build
go build -o glide -ldflags "-X main.version=0.10.2" glide.go
+ go install
+ mkdir -p /tmp/go/src/github.com/gogits/
+ ln -s /app/gogs/ /tmp/go/src/github.com/gogits/gogs
+ cd /tmp/go/src/github.com/gogits/gogs
+ glide install

Quick search for above text pointed me to gogs/docker/build.sh in your repo, so I added your recommended command before make, and now receiving the following error instead:
Executing busybox-1.24.2-r0.trigger
OK: 371 MiB in 62 packages
+ git clone -b 0.10.2 https://github.com/Masterminds/glide /tmp/go/src/github.com/Masterminds/glide
Cloning into '/tmp/go/src/github.com/Masterminds/glide'...
Note: checking out '2d0eb388e16d833ba3c55068335b3577b6b09ff0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

+ cd /tmp/go/src/github.com/Masterminds/glide
+ go get -u all
package cmd/internal/rsc.io/arm/armasm: directory "/usr/lib/go/src/cmd/internal/rsc.io/arm/armasm" is not using a known version control system
package cmd/internal/rsc.io/x86/x86asm: directory "/usr/lib/go/src/cmd/internal/rsc.io/x86/x86asm" is not using a known version control system
remote: The command '/bin/sh -c ./docker/build.sh' returned a non-zero code: 1
To dokku@my.dokku:edit
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'dokku@my.dokku:edit'

So I'm guessing my error is the reverse of what the other user was seeing (so in theory if I was to checkout an earlier commit the error would go away?)

Same error :( Can't build gogs on dokku.

Yep, I ended up reverting to that commit too to get it to work. Encountered an unrelated problem though (nginx 502), which is why I haven't updated this post with my workaround. Ultimately I ended up installing from a docker image (docker pull gogs/gogs), which worked for me. I still think there is something in the docker/build.sh script that should be updated to match up with the interface change to solve this bug, but I'm not familiar enough with the config.

is there a follow-up to this? Reverting to 2bec8a4 does not help to resolve models/access.go:84: cannot use x (type *xorm.Engine) as type Engine in argument to accessLevel:

Thanks your feedback!
Should be fixed by now.


Error in Version 8

I am working with angular version 8 and it emits an error when the project is compiled.
ERROR in ./node_modules/ngx-ssrs-reportviewer/fesm2015/ngx-ssrs-reportviewer.js
Module not found: Error: Can't resolve '@angular/elements' in 'C:\XXXXX\FUNC-668\SOLUCIONAPP\FRONTEND\XXXX.XXXX.Web.Pagos\node_modules\ngx-ssrs-reportviewer\fesm2015'.

getting same error

I'd solved this issue by following #11 on this repository.

I'd solved this issue by following #12 on this repository.

Thanks So much.

Marking as closed.  Removed need for these dependencies in latest version.


Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang failed with exit code 1

Hi I got this error when using xcode 4.2
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang failed with exit code 1
Any idea how to fix it ?

Sorry I rush to use xcode to compile project without compiling openssl lib first

could u explain ur solution a bit more
Thnx!


Added a new problem

Thank you so much
On Wed, Oct 7, 2020 at 9:10 PM Vishruth Subramanian <
<EMAIL_ADDRESS>wrote:

Merged #223 https://github.com/Vishruth-S/CompetitiveCode/pull/223 into
main.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Vishruth-S/CompetitiveCode/pull/223#event-3851235157,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALU77GQC75RJCU6CBUXSS5TSJSDVVANCNFSM4SGLCEAQ
.


Show agents and some information about them in webinterface

Are the api endpoints required for this already present?
I would like to take this up if this only needs a change in the vue app.

My bad, I saw the title and thought that it was another pr which only dealt with the server.


PathNotFoundException: Cannot rename file should communicate if source or target folder doesn't exist

  PathNotFoundException: Cannot rename file to '/tmp/pkg_dartdev_testXUFNPE/dart_app/.dart_tool/pub/bin/my_native_library/native.dart-2.19.0-edge.cebb935c6e60a5c672956bc0063e8af604fa235b.snapshot', path = '/tmp/pkg_dartdev_testXUFNPE/dart_app/.dart_tool/pub/incremental/my_native_library/tmpBEVCAH/native.dart.incremental.dill.incremental.dill' (OS Error: No such file or directory, errno = 2)
This does not communicate which of the two paths doesn't exist.
In:
abstract class File implements FileSystemEntity {

  Future<File> rename(String newPath);

  File renameSync(String newPath);

Semantically that's not how the underlying system call works. It just fails with e.g. ENOENT on POSIX whenever the source or target directory did not exist. Likewise for many other conditions like permission denied and infinite symbolic links, it's not provided whether it was the source or target that was at fault.
It's generally a logic error to try and rename a file you don't know already exists to a destination you don't know already exists.
If you want to what to know whether the source exists, you can check that using e.g. File.exists. It doesn't matter whether the target exists, because the rename operation will make the directory entry for the target if it doesn't exist, and replace any existing file already with that name. The possible case is that the target directory does not exist, which you can check for using e.g. Directory.exists.
The only way the rename function could throw a more accurate exception is to add these checks at the dart level, however such checks are subject to race conditions, and it's best that Dart exposes the raw system call primitive as any higher level abstractions are leaky and racy.

The only way the rename function could throw a more accurate exception is to add these checks at the dart level, however such checks are subject to race conditions, and it's best that Dart exposes the raw system call primitive as any higher level abstractions are leaky and racy.

We can do the checks after we fail. And if someone created the folder/file in the mean time report an error that we don't know why the call failed.

My point is that such checks should be added at a higher abstraction level, such as the application or library code in question, on top of a raw operating system primitive that keeps the base overhead small. You will need such an abstraction layer if you e.g. want to rename files across filesystems. It's a generally a logic error in the application if it tries to rename a file that doesn't exist to a location that doesn't exist.

I think that the current behavior matches what other programming languages do.
As @sortie mentioned, figuring out exactly what caused the error is going to be impossible in edge cases and difficult in other cases (there are a LOT of possible errors and reasons for them).


A new logo suggestion for Flutter-Music-Player

Hi, friend!!. I do not see any logo here, how about if I make a logo for you?. Do you want it?.

Yeah sure... 👍

I just completed a logo for your project. If you like this logo I will directly provide the original file and some file formats that you will request. What do you think?

Sorry for the late reply. I am out of town for one more week and then we
will have a conversation on this. Thanks
On Mon, Jul 30, 2018 at 7:50 PM netvana<EMAIL_ADDRESS>wrote:

I just completed a logo for your project. If you like this logo I will
directly provide the original file and some file formats that you will
request. What do you think?
[image: logo1-01]
https://user-images.githubusercontent.com/41820985/43402975-218d01a2-943e-11e8-9f2d-3212dc5849d3.jpg
[image: logo-01]
https://user-images.githubusercontent.com/41820985/43402950-12cacf96-943e-11e8-818a-00ae543b7bb9.jpg
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iampawan/Flutter-Music-Player/issues/14#issuecomment-408880323,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMCOnHlBvxzZ31Ko5MfRLTwSnYOT3grLks5uLxYjgaJpZM4Vk-UU
.

I would like to contribute to your product logo. Please assign this to me.

I am having a problem running this project on android ...... please guide me .... Thank You

i want to work under  JWOC please asssign me this i can suggest you with amazing logo

I would love to work on this issue. Can you assign me the issue?


Support attributes on array members

Array members are allowed to have attributes such as #[cfg].

Some more experiments:
This compiles on stable:
fn main() {
    [#[allow(unused)] (), (), ()];
}

This fails with a nightly-feature error (attributes on expressions are experimental. (see issue #15701)):
fn main() {
    [#[allow(unused)] (); 92];
}

The fact that the first case parses without feature flags seems like a bug in feature-gating to me.
I guess what we should is to allow attributes on array expressions unconditionally.

bors r+
Thanks!


Add pumps

Add a fill pump that fill via the detergent drawer (like in real life) and a drain pump to drain

done. The drain pump was because the drain was slow now that i cut the pipe by 2.5 cm, it works


double arrows

One arrow moves one slide while another replaces all the visible page of slides into another page.
doubleArrows option (Boolean, default false) passed to the Carousel component

We don't have plans to add new features in carousel v1. In carousel v2 you can implement requested behavior by creating your own custom plugin https://brainhubeu.github.io/react-carousel/docs/plugins/creatingCustomPlugins


Segmentation maps need to be made consistent

At the moment the segmentation map is complete if using a point source and a galaxy catalog, but other combos don't work, I think. Maybe create a self.indexbase that can be incremented after each catalog is read in.

How do we deal with segmentation maps when using extended sources (i.e. small stamp images from fits files)? Currently the code simply assigns all pixels in the stamp image as part of the same single source. This may be ok for small stamp images of single objects, but what about the case where a large mosaic is input, or a stamp image with multiple sources? In this case we may want to do some kind of source detection.
As a first try, use photutils:
from photutils import detect_threshold
threshold = detect_threshold(data, snr=3.)
This detects all pixels with signal 3-sigma above background, where it first determined the background level and rms. So what baout the mosaic image we have where background is 0 except for the sources? The calculated background sigma probably won't be correct here...
Will probably need some quality checking for this case.

For the case of the mosaic image I have, in which the background is exactly 0 and the only signal in the image comes from sources, detect_threshold does not work well. The returned segmentation map has no sources in it.
But when I create the image using detect_sources, the returned segmentation map looks great.
from photutils import detect_sources
threshold2 = detect_sources(data,1e-5,8)
This says that in order for something to be declared a source, it must have at least 8 connected pixels with signals higher than 1e-5.
Maybe the best approach is both. First try detect_threshold. If the returned map has no sources, then try detect_sources. Or the opposite: try detect_sources with the wide open parameters I used above. If the resulting segmentation map comes back with all pixels set to a single source, then try detect_threshold.

Latest fix (pull request #11) now has segmentation maps being successfully created when various catalogs are used in conjunction with one another. Sidereal observation was tested, as well as non-sidereal. Still need to test sidereal observation with non-sidereal objects in the FOV. That mode uses the same code as the non-sidereal case, so everything should be fine.

Segmentation maps now appear all to be consistent. There will always be some uncertainty in the case of extended targets. If pixels where the source does not land are zeroed out then the segmentation map should be a faithful reproduction of the right pixels. If however the non-source pixels contain background or readnoise, then it may be that all pixels in the image are flagged as part of an object.


Contentful migration helper scripts - Initial scripts to migrate cont…

Initial contenful data migration scripts

All the Section rows were missing CategoryId. Not sure if this has already been fixed or not, but I triggered the webhook from Contentful to get them in for now for my work.


Run Chrome as 'chrome' user

This PR enables running Chrome as normal non-privileged user.

I tried with that seccomp and it still didn't work without privileged. I will look into it again though
Jason Smith
Thanks,
-is
~ Typos courtesy of Apple ~
On February 22, 2017 at 22:56 GMT, Jess Frazelle<EMAIL_ADDRESS>wrote:
@jessfraz commented on this pull request.
In chrome/stable/Dockerfile:

-v $HOME/.config/google-chrome/:/data \ # if you want to save state # --device /dev/snd \ # so we have sound # -v /dev/shm:/dev/shm \ # --name chrome \ # jess/chrome # +# For Ubuntu I had to add --privileged to above docker run command

this is because you need a different seccomp policy it lives here: https://github.com/jessfraz/dotfiles/blob/master/etc/docker/seccomp/chrome.json I would just put that in the comment instead, since I wouldnt want people to run it as priviledged
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

its probably because you dont have user namepsaces enabled
https://github.com/jessfraz/dockerfiles/issues/65#issuecomment-146082868
On Wed, Feb 22, 2017 at 3:17 PM, Jason<EMAIL_ADDRESS>wrote:

I tried with that seccomp and it still didn't work without privileged. I
will look into it again though
Jason Smith
Thanks,
-is
~ Typos courtesy of Apple ~
On February 22, 2017 at 22:56 GMT, Jess Frazelle<EMAIL_ADDRESS>wrote:
@jessfraz commented on this pull request.
In [chrome/stable/Dockerfile](https://github.com/jessfraz/
dockerfiles/pull/239#discussion_r102596849):

-v $HOME/.config/google-chrome/:/data \ # if you want to save state

--device /dev/snd \ # so we have sound # -v /dev/shm:/dev/shm \ # --name
chrome \ # jess/chrome # +# For Ubuntu I had to add --privileged to above
docker run command
this is because you need a different seccomp policy it lives here:
https://github.com/jessfraz/dotfiles/blob/master/etc/
docker/seccomp/chrome.json I would just put that in the comment instead,
since I wouldnt want people to run it as priviledged
—
You are receiving this because you authored the thread.
Reply to this email directly, [view it on GitHub](https://github.com/
jessfraz/dockerfiles/pull/239#pullrequestreview-23357334), or [mute the
thread](https://github.com/notifications/unsubscribe-auth/ADS0uYaWfc-nD-
QUGutS3x5MJhaFTsFYks5rfL0WgaJpZM4MJTVi).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/dockerfiles/pull/239#issuecomment-281837174,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABYNbABjBcwCGm3CRlYcr6jeA4Inp4a7ks5rfMHygaJpZM4MJTVi
.

--
Jessie Frazelle
4096R / D4C4 DD60 0D66 F65A 8EFC  511E 18F3 685C 0022 BFF3
pgp.mit.edu http://pgp.mit.edu/pks/lookup?op=get&search=0x18F3685C0022BFF3

I'm not sure.. it looks like Ubuntu 16.04 enables user namespaces by default.
CONFIG_USER_NS=y```

I think I may have gotten it! Let me confirm and then I'll update PR.

You rock!

Glad I could help out!
Thanks for your help on this


Identifying which HTTP requests are API calls automatically

Is your feature request related to a problem? Please describe.
I'm finding that AWS keeps changing their console, which breaks AWS Console Recorder (ACR).
Describe the solution you'd like
It might help if ACR detected requests that had json in the request/response body, and if it didn't have a rule for deciphering it, at least tell the user about it.
Describe alternatives you've considered
The current system of reporting APIs that are broken is labor-intensive and probably doesn't scale.
Additional context
I love this tool!  It was recommended to me by AWS Premium Support.  However, it's frustrating when the API call I need is the one that doesn't get recorded due to some small change by AWS.
Thanks!

Hi Penelope,
Thanks for your feedback. I like your idea, however the AWS Console ecosystem varies wildly in the way request/response models work.
You may be interested to know I have a companion extension which helps be write this over at https://github.com/iann0036/AWSConsoleRecorderGenerator . The generator records all actions and auto-suggests the correct mappings. This however is not always correct and needs human intervention. There is also a very significant amount of requests which are irrelevant.
Also check out https://github.com/iann0036/former2 which is much more reliable at determining the state as it performs read actions with the AWS APIs instead.


bug: no notification handler registered for "Dir" / "GUI"

Did you check docs and existing issues?

[X] I have read all the noice.nvim docs
[X] I have searched the existing issues of noice.nvim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
NVIM v0.11.0-dev-168+ge20c5fba2
Operating system/version
Fedora 39.
Describe the bug
When I open nvim, I get this warning. Then, I get a lot more. The "Dir" happens if I open nvim in termal, the "GUI" if I use nqim-qt.
Steps To Reproduce

Open nvim.

Expected Behavior
No error is shown.
I suspect the handlers are missing either in the general configuration or mine. I could not reproduce it via the below repro configuration. Therefore, I suspect it is another of my plugins. However, I am not sure how best to debug it.
Repro
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/noice.nvim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

That's not noice. I don't show any errors like that.

How odd… My apologies. I was in the noice errors, so I thought it was. My bad.

Well, Noice will capture and show all your errors wherever they happen, but that doesn't mean it's caused by noice...


I've already enabled Virtualization capabilities in the BIOS, but it still prompts me to do it.

ERROR: Please Enable Virtualization capabilities in your BIOS settings...

Do you have VTx enabled from the BIOS ?

I have VTx enabled in Bios,

It appears that the check for BIOS is not returing consistent results across different models , can you please share the output of both commands below in an elevated PowerShell session ?
Get-ComputerInfo -Property HyperVRequirementVirtualizationFirmwareEnabled,hypervisorpresent
(Get-WmiObject win32_computersystem).hypervisorpresent

PS C:\WINDOWS\system32> Get-ComputerInfo -Property HyperVRequirementVirtualizationFirmwareEnabled,hypervisorpresent
HyperVRequirementVirtualizationFirmwareEnabled HyperVisorPresent

                                                        True

PS C:\WINDOWS\system32> (Get-WmiObject win32_computersystem).hypervisorpresent
True

I have the same issue and yes, virtualization is enabled in my BIOS. The output of the first command:

HyperVRequirementVirtualizationFirmwareEnabled = True
HyperVisorPresent = False

The second command results in False. This is on an HP OMEN an188nr.

@scarycrow-dave thanks for sharing the output , you should not get this message if the second output if true which is the case as you shared , one more check please to confirm that virtualization is correctly enabled on your machine . Please run the below to enable the sandbox feature and validate if it was enabled successfully or you got an error message
Enable-WindowsOptionalFeature -FeatureName 'Containers-DisposableClientVM' -All -Online -NoRestart

PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -FeatureName 'Containers-DisposableClientVM' -All -Online -NoRestart
Path          :
Online        : True
RestartNeeded : False

PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -FeatureName 'Containers-DisposableClientVM' -All -Online -NoRestart
Path :
Online : True
RestartNeeded : False

Thank you , will submit a fix shortly

The script is currently checking to see if a Hypervisor is already present.  That will return True if you have Hyper-V already installed (so the computer supports virtualization).  But that does not tell you if your computer supports Virtualization when it returns False.
If it returns false for hypervisor present, you'll need to check to make sure these are true so you know virtualization is supported.
(GWMI Win32_Processor).VirtualizationFirmwareEnabled
and
(GWMI Win32_Processor).SecondLevelAddressTranslationExtensions

The script is currently checking to see if a Hypervisor is already present. That will return True if you have Hyper-V already installed (so the computer supports virtualization). But that does not tell you if your computer supports Virtualization when it returns False.
If it returns false for hypervisor present, you'll need to check to make sure these are true so you know virtualization is supported.
(GWMI Win32_Processor).VirtualizationFirmwareEnabled
and
(GWMI Win32_Processor).SecondLevelAddressTranslationExtensions

Thank you , we are trying to check if virtualization is enabled or not ,VirtualizationFirmwareEnabled returns false if hypervisor is enabled

Yeah, the presence of a hypervisor changes what you get when you query the CPU.  I would check for hypervisor=false, if false then do the additional 2 checks to make sure they are true.

Merged into master fff6af8e10496c37ca29501f2de3cbdb4c834ca8

Thank you that fixed it :)


allow setting graphics pipeline subpass

When creating a graphics pipeline, you need to specify the subpass it will be used in.

Oops, forgotten. Thank you


Add simplifications for elm-explorations/test

So far Simplify only supports core Elm packages (in part because they're really stable), but I think the elm-explorations ones could warrant being handled as well.
Here are some I could think of, but I'm sure a pass over the API could find more.
Test
Test.concat [ a ]
--> a

Expect
-- To help with transitioning from v1 to v2
Expect.true string value
--> foo
-->  |> Expect.equal True
-->  |> Expect.onFail string

Expect.false string value
--> value
-->  |> Expect.equal False
-->  |> Expect.onFail string

Fuzz
Fuzz.filter (always True) a
--> a

Fuzz.filter (always False) a
--> ???

Fuzz.map identity a
--> a

Fuzz.andThen Fuzz.constant a
--> a

Fuzz.andThen (\b -> Fuzz.constant (f b)) a
--> Fuzz.map (\b -> f b) a

Something with Fuzz.constants?
Something about Fuzz.lazy being useless?

Just if you didn't know: Expect.true and Expect.false were removed in 2.0.0, see https://github.com/elm-explorations/test/blob/2.1.1/CHANGELOG.md#4-expecttrue-and-expectfalse-removal

Yes, which is why I wrote "To help with transitioning from v1 to v2" 👍
But yeah, whether that's worth the effort I don't know 😁


Fix for #42.

Assemble URLs more carefully so as to preserve any query string the base URL might contain. Fix for #42.
Used com.shopobot.util.URL, a very handy object-oriented URL manipulator.

@hjellinek I patched this and I'm still seeing the malformed URLs - looks like the Callsets test has its own version of makeUrl.
Additionally, I'm seeing a new error log which looks unintended:
[TESTLOG] ERROR: searchForExpectedReferenceBases(org.ga4gh.cts.api.references.ReferenceBasesSearchIT) due to com/shopobot/util/URL

I'm still having a very tough time determining what URLs are being attempted. I've resorted to adding my own logger statements to the code... unfortunately I'm not even able to see the result of that due to the logger configuration... will keep hacking at it...
Here is the full commandline to reproduce the issues I'm experiencing:
./ctk --ctk.tgt.urlRoot=https://www.googleapis.com/genomics/v1beta2?key=AIzaSyDSCPSt4PhkKoVc8NlcscE_uPvlUppVCEY --cfg.tgt.dataset_id=3556965148596575732

Sorry, @calbach, this seems to be a situation where things work differently when running the script versus under an IDE.  We'll have to take care to test things with the ctk script.
I'm looking into the problem and hope to have a fix sometime today.

Re:

I'm still having a very tough time determining what URLs are being attempted. I've resorted to
adding my own logger statements to the code... unfortunately I'm not even able to see the
result of that due to the logger configuration... will keep hacking at it...

Assuming you're using the ctk script, you can edit the file lib/log4j2.xml (lib is a subdirectory of the directory holding the ctk script) to dump this info.
Look for
        <Logger name="TESTLOG.TRAFFIC" level="warn" additivity="false">
            <AppenderRef ref="TESTLOG"/>
        </Logger>

and change "warn" to one of "trace", "debug", or "info".
(There will be a nicer way to collect this info in an update coming after the compliance_redux merge.)

@calbach, I just merged fixes for the URL and makeUrl problems into the PR.
Please let me know if those fix the problems you found.


Failed request destructor

Refs #129, testing fix from https://github.com/mapbox/mapbox-gl-native/pull/1657

Nope.


rel: Prepare v0.0.2 of network agent chart

Which problem is this PR solving?
Prepares the v0.0.2-alpha release of the network agent.
Short description of the changes

Update chart version to v0.0.2
Add changelog entry

Note:
This PR is based on the following PR and needs to wait for it to merge first:

https://github.com/honeycombio/helm-charts/pull/300

I merged the other PR, this has the extra commit with the appVersion update so not sure if that should be removed first or if it doesn't matter because it gets squashed anyway. Does show a merge conflict though, can you take a look at why that would be a problem?

No idea why, but it saw the chart's version bump as a conflict 🤷🏻 Ready for another review.


Create BlockPathRegex Middleware

What does this PR do?
Creates a regex middleware that blocks requests, and returns a configured response code and message.
Motivation
Fixes #4813, #4812
More

[x] Added/updated tests
[ ] Added/updated documentation

@dtomcej are you still working on this ?

This PR in in status/1-needs-design-review.
https://docs.traefik.io/contributing/maintainers/#pr-review-process

@ldez it has been in this state for 7 months now. Can someone do the design review ?

We consider that this middleware is a routing constraint, and we think that this kind must be able by the routing itself and not a middleware.
So I close for now.


Tests should not use development database

There is a bug in the codebase that is always using the development database. Tests should use data inside testing.ini file.

Closing it.
There should be a better way to test the API against the real database using different settings.


Let this work

...

Looks good. I know it's annoying but try and keep the pull request name related to the changes.


protobuf_generate_cpp for gRPC

Is your feature request related to a problem? Please describe.
It would be ideal to automatically generate code from .proto files like Protobuf does. Currently setting it up (with CMake) has a bit of hassle. The FindGRPC.cmake files I found were all from 2016-2017 (and do not work without further setup), and it would be nice to have an official solution for this.
Describe the solution you'd like
Currently my code for Protobufs:
set(PROTOS
    remote.proto
)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER ${PROTOS})

#include "protos/remote.pb.h"

I would like something similar for gRPC. Ideally:
set(PROTOS
    remote.proto
)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER ${PROTOS})
grpc_generate_cpp(PROTO_SRC PROTO_HEADER ${PROTOS})

#include "protos/remote.grpc.pb.h"

Describe alternatives you've considered
There are the FindGRPC files provided by the community that are unmaintained and over 5 years old.
There's also the CMakeLists file in the examples, but it's also annoying to setup.

https://github.com/faaxm/exmpl-cmake-grpc seems to be the most solid option currently.


Fix build errors

Hi Martijn,
just trying out your project. Stumbled over build errors due to missing configuration in my environment. Since it was only relevant for uploadArchives, I made the build script more robust.
Regards,
Matthias

Thanks for contributing!


Specification v1.3

Tracking updates to v1.3 branch in prep for the release

@coderpatros would it be desirable to have an example protocol buffer project? I cooked one up a few months ago when I was looking at them, I can likely open source it and show how to use the spec to create a service, etc... for people?

@DarthHater I think an example project would be really good.

@coderpatros I'll set one up and open source it!

External reference hashes have been add to protobuf and tested in .NET implementation

@stevespringett this test failure might be one of those you mentioned re java core schemas.

Vote to merge to master

I fully support merging this in.


How to remove GIF support?

Is there any way to disable gif support? or to stop animation after 1 loop?
I want to disable just for react-native-fast-image not for complete app.

@namitonefc I can't help you with disabling GIF support. But you can create remix of this solution (Animated WebP play/pause support): #703 . I've created this for one of our projects. For Android (Glide library) there are two ways to do it, with CustomTarget, and with Listener this PR covers the second one.

@namitonefc I can't help you with disabling GIF support. But you can create remix of this solution (Animated WebP play/pause support): #703 . I've created this for one of our projects. For Android (Glide library) there are two ways to do it, with CustomTarget, and with Listener this PR covers the second one.

For iOS. SDWebImage native API provide the help for animation control, like:
View Level Control： SDAnimatedImageView.isAnimating/SDAnimatedImageView.startAnimating/SDAnimatedImageView.stopAnimating
Image Level Control: SDWebImageDecodeFirstFrameOnly options

Thanks @kaniaorzel and @dreampiggy for your suggestions. I am looking for a simple fix. Please let me know if anyone knows a quick fix just to disable the GIF support on both iOS and Android.


React to async topic feedback

Fixes #2289

@rpetrusha Changes made. :+1:

@rpetrusha I needed to fix one link. While I was looking at the review docs, I felt that having the added cross-reference links in the docs/standard/asynchronous-programming-patterns/index.md without descriptions didn't look good. I reverted the existing three links at the bottom of that topic (in a table format) back into a Related topics section and added the three new cross-reference links in a traditional See also section (where they don't require a description). If that's ok with you, then this should be ok for final :eyes:+:shipit: in the morning.


LUNC is stuck

https://app.zerion.io/tokens/LUNC-0xd2877702675e6ceb975b4a1dff9fb7baf4c91ea9
I think LUNC is stuck.

https://coinhall.org/terra-classic/terra1m6ywlgn6wrjuagcmmezzz2a029gtldhey5k552


Resolves #745: Bump Dagger to 2.24

2.24 makes it simpler to understand dagger as you remove Has{Activity,Fragment,Service,ContentProvider,BroadcastReceiver} for HasAndroidInjector
Among other things, dagger added support for incremental builds in 2.18+

@JoseAlcerreca @ianhanniballake @dlam @yigit Can you review PR?


[Do not merge, for OS qualification only] Ah/docker version fix for 1.12.1 qual

This PR is created to build DC/OS for 1.12.1 containing #5993 (since the change is not available for 1.12.1 ad will be released in version 1.12.5)
The resulting build will be used for RHEL 7.7 + DC/OS 1.12.1 qualification: https://jira.mesosphere.com/browse/DCOS-59943
This PR is not intended for merging and will be closed once the qualification is done.

Build failed, closing.


Can not make sense of the ValueError(f'Claim labels not found: {unfound_labels}')

KMIR attemps to add a feature allowing proving a single claim. There is a ValueError of an initial implemantention based on KProve.get_claims. The error message is as follows. The error msg does not make sense to me.
ValueError: Claim labels not found: ['SIMPLE-SPEC.S', 'SIMPLE-SPEC.I', 'SIMPLE-SPEC.M', 'SIMPLE-SPEC.P', 'SIMPLE-SPEC.L', 'SIMPLE-SPEC.E', 'SIMPLE-SPEC.-', 'SIMPLE-SPEC.S', 'SIMPLE-SPEC.P', 'SIMPLE-SPEC.E', 'SIMPLE-SPEC.C', 'SIMPLE-SPEC..', 'SIMPLE-SPEC.s', 'SIMPLE-SPEC.t', 'SIMPLE-SPEC.a', 'SIMPLE-SPEC.t', 'SIMPLE-SPEC.e', 'SIMPLE-SPEC.m', 'SIMPLE-SPEC.e', 'SIMPLE-SPEC.n', 'SIMPLE-SPEC.t', 'SIMPLE-SPEC..', 'SIMPLE-SPEC.1']

Steps to reproduce:
From master branch, main directory
git checkout feature/prove-a-claim
cd kmir
make build
source set_env.sh
poetry shell
kmir prove ../demo/simple-spec.k --claim SIMPLE-SPEC.statement.1

where SIMPLE-SPEC.statement.1 should be a claim label in simple-spec.k.
The error result shoud be generated from
Expected:
kmir prove ../demo/simple-spec.k --claim SIMPLE-SPEC.statement.1 should prove the specified claim.
Or what should be use as input to select a claim to prove?
PR #https://github.com/runtimeverification/mir-semantics/pull/325 depends on this issue.

@yanliu18 it's best to:

APL (Always Post Links): link to simple-spec.k directly.
Minimize examples. Best to make a minimal test that the team upstream can use as an example to work with directly rather than
Attach each issue to a project board (in this case, the K board).

Thanks for the issue report!

It appears to me that the issues is that you're passing --claim SIMPLE-SPEC.statement.1. Because of the way that KMIR CLI is made in https://github.com/runtimeverification/mir-semantics/pull/325, it is interpreting the single claim name as a list of claim names (which is what upstream pyk expects).
So if we adjust that PR to follow the same convention of using a list of claims like --claim CLAIM1 --claim CLAIM2 (by using the upstream pyk CLI options), then this issue should go away.

It appears to me that the issues is that you're passing --claim SIMPLE-SPEC.statement.1. Because of the way that KMIR CLI is made in runtimeverification/mir-semantics#325, it is interpreting the single claim name as a list of claim names, one for each character in the supplied claim name. This is because upstream pyk expects a list of claim names, not a single name.
So if we adjust that PR to follow the same convention of using a list of claims like --claim CLAIM1 --claim CLAIM2 (by using the upstream pyk CLI options), then this issue should go away.

The call to pyk was implemented here: https://github.com/runtimeverification/mir-semantics/blob/d5ceab8380276098548c9a2a206e33367868c97e/kmir/src/kmir/kmir.py#L115
The single was converted to a interable before sent to pyk.
But your message helped find the cause. The conversion was mistakenly done and the error message was confusing when SIMPLE-SPEC was there.
The issue is gone now. Thanks.


Feature Request- Add task = add person

Creating this issue based on a recent email from Giacomo:
Long standing issue: when we add a task (a person) to a workshop, if the person is not already in the DB, we need to move to the ‘add person’ form, add the person there, return to the workshop, add the task.
This might have had sense when we were aspiring at having a detailed profile of any person in the database. However, since we are more and more often adding persons with just their names, I wonder if a way could be implemented so that adding a new task (person) to a workshop, automatically add the person in the database!
Talisha: I too experience this issue. I'm currently using a text editor as a work around.

The strange thing is that the code is supposed to create a new person when there's no match from DB.
I think this is a bug and I may need a sample input CSV file that doesn't allow to create persons.

Update on the feature request: I will need to know if you want to ditch the old interface ("person", "role", instructor training seats) and use only the new one ("person name", "person last name", "person email", "role", instructor training seats), or combine both ways of adding a task.

@pbanaszkiewicz can you clarify what you mean by the old and new interface?

@maneesha when adding a task to the workshop you have these fields:

This is the current ("old") interface. It assumes a person already exists for this task.
But @gperu & @Talishask want to add tasks when persons don't exist, which means we have to create them. So in the "new" interface we'd have to replace "Person" field with three fields required to create a person: personal name, family name, and their email. However, if we do that, we lose that "old" functionality to add a task for existing person.
Here's what I need to know: how do you see this implemented?

Making a note here as I discussed this with @fmichonneau
Right now we have consents for when someone manages their own profile.  We will also need to modify our privacy policy to note conditions where we may create a profile for someone.


fix: IgnoredTraceContext continue (#4709)

Please answer these questions before submitting pull request

Why submit this pull request?

[-] Bug fix

[ ] New feature provided

[ ] Improve performance

Related issues
#4709

Bug fix

Bug description.

How to fix?

New feature or improvement

Describe the details and related test reports.

Codecov Report

Merging #4710 into master will decrease coverage by 51.11%.
The diff coverage is 0.00%.

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


Prefer use of BackHandler instead of BackAndroid

Fixes #43

@3bola Should be ok. Lets dare to venture.


Add yay helper to make it easier to help users

It's become increasingly more difficult to try and help the users when issues happen and having an AUR helper can make it tremendously easier for us to help the users as well as them help us test changes to confirm fixes.

yay is a little more widely used

Is there a reason you chose yay over pikaur (or even yay-bin)?

I personally prefer pikaur, but it seems yay is the more widely used tool that people understand more.

I think I would prefer pikaur.
This would only be used by us, advanced users, or users who we give direction to, may as well be a tool that we are familiar with and prefer.
pikaur is also much faster to build (just python) and much smaller.

I think I would prefer pikaur.
This would only be used by us, advanced users, or users who we give direction to, may as well be a tool that we are familiar with and prefer.
pikaur is also much faster to build (just python) and much smaller.

Done and done.


Unreadable XML, JSON, ...

Description
Don't know if this is a bug or not, but I can't see a content in a readable (expected) format.
Example:

I've tried all content encondings from the drop-down.
DBeaver Version
Community <IP_ADDRESS>209251341
Operating System
WIN10
Database and driver

DB2
DB2 LUW

Steps to reproduce
No response
Additional context
No response

Hi @ShadelessFox,
I found out that it is a ZIP file ...
Thank you for your time.


fix IPv6 url format for start up console output; add IPv6 listening tests

#490 This PR fix this issue.
Please ensure that your pull request fulfills these requirements:

[x] The pull request is being made against the master branch
[x] Tests for the changes have been added (for bug fixes / features)

What is the purpose of this pull request? (bug fix, enhancement, new feature,...)
Fixes #490

What changes did you make?
Provide some example code that this change will affect, if applicable:
This is just bin file changes, it's not affect the other one's code, if as dependency.

Is there anything you'd like reviewers to focus on?
The tests about IPv6 maybe fail on any machines that not enable IPv6. How to handle this?
Please provide testing instructions, if applicable:
The following tests could not be run on a Travis CI, so no new test cases provide.

Server listened on IPv6, the http-server should serve files on IPv6 correctly.
Server listened on IPv6 Any Address, ie, ::, the server should also can be reach though IPv4.

But this is a command line tool, and I just change the output text, so just run the following commnads to test manually.
npm test
npm start
npm start -- -a <IP_ADDRESS>
npm start -- -a <IP_ADDRESS>
npm start -- -a ::
npm start -- -a ::0
npm start -- -a ::1

TBR.