ASOF join support / Specialize Range Joins

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
In many timeseries workloads, the need to join one record to another based on recency or ordering is quite prevalent. This can be with two sensors that maintain different sampling rates, in handling market data (such as situations where you want to find the most recent quote for a given trade), or any other scenario where an ordering of events can be applied. In these situations, it is quite frequent that one set of data is at a much larger scale than the other, typically starting at an order of magnitude. It is also quite common that you would want to actually store your data in the appropriate order so as to minimize the effort when performing this kind of join operation (though that is not strictly the problem itself).
Describe the solution you'd like
Essentially the solution implemented by Clickhouse  and KDB (please note that the Clickhouse solution allows for the full breadth of ordering conditions for closest match).
Describe alternatives you've considered
There is a general subquery solution that can be used to achieve the desired outcome, but it is typically not performant and can be fairly awkward to express. Provided implementation of #141 and sufficient query optimization of the subquery solution into sort-merge join, it may not be necessary as direct syntax.
Additional context
This likely depends on #141

Related issue solved by duckdb: https://github.com/duckdb/duckdb/pull/3219

I haven’t evaluated the polar join_asof solution yet, but I believe it is also pertinent.

There is a blog post about this from duckdbL https://duckdb.org/2022/05/27/iejoin.html

There is a blog post about this from duckdbL https://duckdb.org/2022/05/27/iejoin.htmlduckdbL 有一篇关于此的博客文章 https://duckdb.org/2022/05/27/iejoin.html

We can treat asof join as a special kind of iejoin of course. Furthermore AsOf can stop searching when it finds the first match because there is at most one match.This leaves us room for optimization.  I think it's ok to support asofjoin without iejoin (which can be done later).  Here is another blog about AsOf join https://duckdb.org/2023/09/15/asof-joins-fuzzy-temporal-lookups.
I am willing to have a try this if nobody is working on this.

I am willing to have a try if nobody is working on this.

I don't know of anyone working on this. Maybe @Dandandan @liukun4515 or @ozankabak  know of others who are (or are interested in helping)

IMO the ASOF join syntax is not well-thought out and it is better to leave such operators to downstream or to datafusion-contrib (and not a part of Datafusion core). I agree with the many of the points raised against this syntax (although not the tone) when it was brought up in PostgreSQL mailing list.
At Synnada, we handle time-series use cases like the ones ASOF tries to address -- but we stay within the realm of standard/consistent SQL. I would be happy to share some info on our approach after the holidays.

BTW I think "Range Join" is pretty similar in spirit and does not require special SQL semantics
https://www.vertica.com/blog/what-is-a-range-join-and-why-is-it-so-fastba-p223413/
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/AnalyzingData/Queries/Joins/RangeJoins.htm#:~:text=Vertica provides performance optimizations for,two columns of another table.
I think there is some non trivial overlap with the notion of symmetric hash join that we already have (maybe we could extend the analysis used there)

At Synnada, we handle time-series use cases like the ones ASOF tries to address -- but we stay within the realm of standard/consistent SQL. I would be happy to share some info on our approach after the holidays.

Looking forward to your sharing.
Thanks @ozankabak

This is on my mind, this week is very busy but I will circle back as soon as possible.

If we plan to add ASOF JOIN, I would like to  keep an eye on the issue and be involved in its implementation.

I would like to take part in this one.

IMO the ASOF join syntax is not well-thought out and it is better to have such operators downstream

@ozankabak Can you please elaborate on that a bit? Which of the ~10 existing ASOF join implementations are you considering as not well-thought out and why?

At Synnada, we handle time-series use cases like the ones ASOF tries to address.

It doesn't "try" to address anything, it solves a pain point, that is joining two datasets without matching timestamps efficiently. I'd love to see your "standard/consistent" SQL version though.

This topic came up at the recent DataFusion meetup in San Franciso as something of interest. Is there anyone willing to help drive / lead this project?
I can't offer to do it myself, but I can certainly offer to help review designs and implementations
Thinking about how to break down the work, I think we will need:

Syntax support (I thinks sqlparser-rs already has this, but we may need to pick a dialect, etc)
Figure out how we will represent ASOF join (is it a new JoinType? Is it a new LogicalPlan::AsOfJoin variant? Something else? -- maybe someone could research how other systems handle this)
SQL Planner support (take the AST and make a LogicalPlan)
Optimizer support (not sure what is needed here)
An AsOfJoin ExecutionPlan

Reading  https://duckdb.org/docs/guides/sql_features/asof_join.html
SELECT *
FROM holdings h
ASOF JOIN prices p USING (ticker, "when");

Given the limited semantics of this join (match the row with the largest value of "when") I suspect we could use a modified hash join and modify the "does the row match" clause to also check for "is when greater than the currently matched row"
Another way to implement this would be with a slightly modified merge join
AsOfJoinExec(on=ticker, range_match:"when")
  SortExec(expr=[ticker, when])
    Scan(holdings)
  SortExec(expr=[ticker, when])
    Scan(prices)

The idea being that you could drastically simplify the join if the input was already sorted by ticker as you just need to hold on to the most recently seen value of when)
This is probably slower (as you have to sort the entire input including many values that will be filtered) but would allow for other behaviors other than just "the most rececnt value)

@jirislav I'm not sure if you chose your tone intentionally to be this way and I have to say I don't really appreciate it.
Nevertheless I will try to answer as best as I can. My concern about the ASOF join is not specific to a particular implementation -- it is a conceptual one. The pain point is of course real, but one doesn't really need a new, special syntax to solve it.
Consider a scenario where we are computing the most recent values of each position in a stock portfolio (akin to @alamb's example). Let's create some sample data via:
CREATE TABLE holdings (
    ts TIMESTAMP,
    ticker VARCHAR(10),
    amount INT
);

INSERT INTO holdings (ts, ticker, amount) VALUES
  ('2024-06-27 09:00:00', 'AAPL', '50'),
  ('2024-06-27 09:00:00', 'GOOGL', '30'),
  ('2024-06-27 09:00:00', 'MSFT', '20'),
  ('2024-06-28 09:00:00', 'AAPL', '60'),
  ('2024-06-28 09:00:00', 'GOOGL', '35'),
  ('2024-06-28 09:00:00', 'MSFT', '25');

CREATE TABLE prices (
    ts TIMESTAMP,
    ticker VARCHAR(10),
    price DECIMAL(10, 2)
);

INSERT INTO prices (ts, ticker, price) VALUES
  ('2024-06-27 09:00:00', 'AAPL', '145.50'),
  ('2024-06-27 09:00:00', 'GOOGL', '2754.36'),
  ('2024-06-27 09:00:00', 'MSFT', '301.22'),
  ('2024-06-28 09:00:00', 'AAPL', '146.20'),
  ('2024-06-28 09:00:00', 'GOOGL', '2770.01'),
  ('2024-06-28 09:00:00', 'MSFT', '305.50');

Consider the following standard query:
SELECT h.*, h.amount * LAST_VALUE(p.price ORDER BY p.ts)
FROM holdings as h, prices as p
WHERE h.ts >= p.ts AND h.ticker = p.ticker
GROUP BY h.ts, h.ticker, h.amount
ORDER BY h.ts, h.ticker

We get the following (expected) result:
+---------------------+--------+--------+----------+
| ts                  | ticker | amount | value    |
+---------------------+--------+--------+----------+
| 2024-06-27T09:00:00 | AAPL   | 50     | 7275.00  |
| 2024-06-27T09:00:00 | GOOGL  | 30     | 82630.80 |
| 2024-06-27T09:00:00 | MSFT   | 20     | 6024.40  |
| 2024-06-28T09:00:00 | AAPL   | 60     | 8772.00  |
| 2024-06-28T09:00:00 | GOOGL  | 35     | 96950.35 |
| 2024-06-28T09:00:00 | MSFT   | 25     | 7637.50  |
+---------------------+--------+--------+----------+

This solves the problem, it generalizes to arbitrary join conditions, and it already works in main branch. The plan one gets from OOTB DataFusion for this query is not very efficient today, but it can be made more efficient. For example, if we specify that the input tables are ordered w.r.t. ts (which we already allow today for external tables), the ORDER BY clause becomes unnecessary and the query gets even more succinct [1]. We can make versions of join algorithms that will take that data ordering and execute even more efficiently than the standard hash join this query compiles into. The nice thing about DF is that one can make this query efficiently run even in more challenging contexts (like streaming data) by implementing custom join operators. This is what we did at Synnada.
Given that we can solve this problem in a general way without any special syntax, I do not see any real benefit of adding another syntax for an already-solved problem in upstream DF. We are also improving built-in join operators constantly and adding new ones, so our plans will also get ever more efficient over time.
Downstream users are obviously free to customize DF in any way they wish. I hope this helps.
[1] @alamb, writing up this example makes me think it could be a good idea to file ticket to support order specification for memory tables too.

We can make versions of join algorithms that will take that data ordering and execute even more efficiently than the standard hash join this query compiles into.

FWIW this is the approach we took at Vertica many years ago (a specialized join implementation rather than specialized syntax). The basic idea is described in https://blogs.opentext.com/what-is-a-range-join-and-why-is-it-so-fastba-p223413/

[1] @alamb, writing up this example makes me think it could be a good idea to file ticket to support order specification for memory tables too.

I agree -- that would be a good improvement

We could contemplate implementing both 🤔
Specifically, if we got the DataFusion engine to be able to identify range joins in general and ASOF joins are special case, we could simply treat an ASOF join as syntatic sugar and pass the general predicates to the rest of the engine

@ozankabak I'm deeply sorry, I didn't realize the tone is inappropriate. Thanks for pointing that out!

Thank you @jirislav, I'm sure we will find a reasonable way forward and make DF and its ecosystem even better for everybody.

A decent data analyst would be worried about the performance of the standard-SQL approach you have just shared. The query actually suggests to create a cartesian product first, then sort it and finally filter it. I'd much rather have proper support for de-facto standard ASOF JOIN syntax than making users believe the query engine is perfect.

I agree that some people may think this way, but this sounds like a conceptual issue on the part of the analyst. The query is declarative and doesn't specify how the calculation will be made. If someone is worried about the how, they can take a quick look at the plan to verify whether it is efficient enough for their needs. Obviously, the plan of the query today is not as efficient as it could be, but I'm optimistic that we will get there soon.

The timestamps in both of your example tables use the same values. To actually prove it works, they should be shifted a little bit without any common timestamp values. Otherwise you don't need ASOF join, right?

Right. The query is correct but I could have chosen my sample data better.
--
I like @alamb's suggestion of starting with operators first and then thinking about various syntactic sugars. I anticipate that there will be other interesting constructs besides ASOF JOIN. To add to this idea, I think a good way forward could be:

Keep making the core engine better, improving existing join operators and adding new ones.
Create a datafusion-timeseries package/crate (or some other more appropriate name) that adds syntactic sugars, extra time-series related features etc. that may not necessarily belong to the main crate, but is useful in time-series contexts.

FWIW this came up at InfluxData recently and we are considering investing more in this area. I will keep this ticket updated

Leaving aside the asof join syntax.
For range join, which contains non-equivalent join conditions, e.g. t1.a > t2.b, but no equivalent conditions, (timing scenario) such SQLs usually endure huge performance issues.
We can solve some of these scenarios by introducing iejoin, you can refer to this paper https://wayang.apache.org/assets/pdf/paper/iejoin.pdf, which I have previously implemented in databend, can achieve impressive performance gains, https://github.com/databendlabs/databend/ pull/11412.
If you plan to implement this, feel free to invite me to participate in the review!

There seems to be a draft PR for iejoin here https://github.com/apache/datafusion/pull/12754. It looks like the author is ready for an initial review


not getting public,src folders when ruuning create react-app

i am trying to install react as per the details ,i am using 1.npm install -g create-react-app and then create raect-app 'app_name'
but i am noy getting src and public folders,please me the issue

Try npx create-react-app --info to check if npmGlobalPackages includes create-react-app. If cra is included then try the below command which creates-react-app and rm -rf the outputted path.
Basically, I just run npx create-react-app@latest your-project-name.

@Umer281 npm create react-app app_name or npx create react-app app_name
then you will get all files accrodingly the difference between npm and npx is npx makes you everything ready and make all the files executable while npm setup the project for you. so i advice you to use :
npx create react-app app_name


'PageLoad is declared but its value is never read' when running svelte-check

Describe the bug
When running svelte-check against a new project with a +page.ts that uses the PageLoad type, the PageLoad type is not used in the generated proxy+page.ts in the .svelte-kit directory. This causes the hint 'PageLoad' is declared but its value is never read to be thrown.
Reproduction
Create a new Svelte Kit app:
npm create svelte@latest my-app

Need to install the following packages:
  create-svelte@latest
Ok to proceed? (y) y

create-svelte version 2.0.0-next.161

Welcome to SvelteKit!

This is beta software; expect bugs and missing features.

Problems? Open an issue on https://github.com/sveltejs/kit/issues if none exists already.

✔ Which Svelte app template? › SvelteKit demo app
✔ Add type checking with TypeScript? › Yes, using TypeScript syntax
✔ Add ESLint for code linting? Yes
✔ Add Prettier for code formatting? Yes
✔ Add Playwright for browser testing? Yes

Install dependencies:
cd my-app
npm i

Add the following code to the end of src/routes/about/+page.ts:
import type { PageLoad } from './$types';

export const load: PageLoad = () => {
  console.log('loading about page');
  return {};
};

Run Svelte Check:
npm run check

Logs
npm run check

><EMAIL_ADDRESS>check
> svelte-kit sync && svelte-check --tsconfig ./tsconfig.json

====================================
Loading svelte-check in workspace: /Users/ccamargo/Projects/my-app
Getting Svelte diagnostics...

/Users/ccamargo/Projects/my-app/.svelte-kit/types/src/routes/about/proxy+page.ts:15:1
Hint: 'PageLoad' is declared but its value is never read.

import type { PageLoad } from './$types';

System Info
System:
  OS: macOS 11.6.8
  CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
  Memory: 275.84 MB / 16.00 GB
  Shell: 5.8 - /bin/zsh
Binaries:
  Node: 16.14.2 - /usr/local/opt/node@16/bin/node
  Yarn: 1.22.17 - /usr/local/bin/yarn
  npm: 8.5.0 - /usr/local/opt/node@16/bin/npm
Browsers:
  Chrome: 104.0.5112.101
  Edge: 104.0.1293.63
  Firefox: 101.0.1
  Safari: 15.6
npmPackages:
  @sveltejs/adapter-auto: next => 1.0.0-next.66
  @sveltejs/kit: next => 1.0.0-next.440
  svelte: ^3.46.0 => 3.49.0
  vite: ^3.0.8 => 3.0.9

Severity
annoyance
Additional Information
Here is the resulting section of the proxy+page.ts file in .svelte-kit:
import type { PageLoad } from './$types';

export const load = () => {
  console.log('loading about page');
  return {};
};

Notice PageLoad is imported but not used.

Hi @dummdidumm. I am still seeing this issue with the latest version. It seems the appended type from the fix is not being recognized as the imported type.

One option would be to append <PageLoad>{} instead so the imported type is recognized.

Ah yeah, my bad, that way it's recognized as a value, not a type. Will fix.


pongbot does not reconnect

Hi, I'm playing with your slack-ruby-bot in my holiday.
I started from pongbot in README and talked with the bot,  it's 👍
However,  after several minutes of network disconnection,
I noticed that pongbot does not try to reconnect to Slack.
For example, turn-off my WiFi network, wait several minutes, and then reconnect WiFi,
pongbot is left disconnected even if WiFi is back.
Terminal does not print any line during that experiment.
I believe handle_exceptions in server.rb kicks restart!.
However, it seems not to catch any exception in this situation.
Any hint to add reconnect feature to pongbot ?
I'm using Ruby 2.3.3 and macOS Sierra and slack-ruby-bot 0.9.
Here is the Gemfile.lock for the pongbot
GEM
  remote: https://rubygems.org/
  specs:
    activesupport (5.0.1)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (~> 0.7)
      minitest (~> 5.1)
      tzinfo (~> 1.1)
    celluloid (0.17.3)
      celluloid-essentials
      celluloid-extras
      celluloid-fsm
      celluloid-pool
      celluloid-supervision
      timers (>= 4.1.1)
    celluloid-essentials (0.20.5)
      timers (>= 4.1.1)
    celluloid-extras (0.20.5)
      timers (>= 4.1.1)
    celluloid-fsm (0.20.5)
      timers (>= 4.1.1)
    celluloid-io (0.17.3)
      celluloid (>= 0.17.2)
      nio4r (>= 1.1)
      timers (>= 4.1.1)
    celluloid-pool (0.20.5)
      timers (>= 4.1.1)
    celluloid-supervision (0.20.6)
      timers (>= 4.1.1)
    concurrent-ruby (1.0.4)
    faraday (0.10.1)
      multipart-post (>= 1.2, < 3)
    faraday_middleware (0.10.1)
      faraday (>= 0.7.4, < 1.0)
    gli (2.14.0)
    hashie (3.4.6)
    hitimes (1.2.4)
    i18n (0.7.0)
    json (2.0.2)
    minitest (5.10.1)
    multipart-post (2.0.0)
    nio4r (2.0.0)
    slack-ruby-bot (0.9.0)
      hashie
      slack-ruby-client (>= 0.6.0)
    slack-ruby-client (0.7.7)
      activesupport
      faraday
      faraday_middleware
      gli
      hashie
      json
      websocket-driver
    thread_safe (0.3.5)
    timers (4.1.2)
      hitimes
    tzinfo (1.2.2)
      thread_safe (~> 0.1)
    websocket-driver (0.6.4)
      websocket-extensions (>= 0.1.0)
    websocket-extensions (0.1.2)

PLATFORMS
  ruby

DEPENDENCIES
  celluloid-io
  slack-ruby-bot

BUNDLED WITH
   1.13.6

Thank you. I can reproduce that WiFi-case error on macOS and Linux (Raspberry PI).
I don't know which layer should raise the error. In this case, the client looks still connected,
but Slack RTM server recognizes the client disconnected
(watching from the other Slack client,  pong-bot looks disconnected).
So, I think pong-bot needs to detect the disconnection using a kind of watchdog-mechanism
such as Websocket ping or Slack API ping. That is, slack-bot client have to keep sending
ping frame/message to the Slack RTM server and detect the absence of pong.
Is it already implemented? If so, we could restart the client on catching the long-absence of pong.

Try with a bot that's implemented on top of https://github.com/dblock/slack-ruby-bot-server, I am pretty sure it has reconnect logic that handles it. For example https://github.com/dblock/slack-market.

Thanks for your kind suggestion. I'll try it.
Let me confirm one more thing.
Do you mean pong-bot sample itself does not have the reconnection feature in question?
Should I use slack-ruby-bot-server?

In theory we should have complete reconnect logic here. So what you described initially still looks like a bug to me, but you'll have to dig through it and possibly PR a fix.

Maybe, this issue is related with faye/websocket-driver-ruby#42 and celluloid/celluloid-io#176.
restart! mechanism in server.rb depends on the :close event from celluloid-io.
Also, slack-ruby/slack-ruby-client#96 looks very similar. @tikh reproduced the same situation by turning off his WiFi. One thing different was periodic pining created a catchable exception, while my pongbot is too shy to sending pings.
I'm not sure I should make pongbot chatty, or hack celluloid-io.

I settled to add such ping thread to my pongbot:
class PingThread  < SlackRubyBot::Server
  on 'hello' do |client, data|
    puts "PingThread: Hello!"

    @reconnect_count ||= 0

    if @ping_thread
      @ping_thread.exit
      @reconnect_count += 1
    end

    @ping_thread = Thread.new do
      sequence = 1
      loop do
        client.ping({id: sequence})
        sleep 30
        sequence += 1
      end
    end
  end
end

This thread emits Errno::ETIMEDOUT on disconnection, then I can catch the exception in my main loop.

If you're using Celluloid you might want to change this not to use a thread. You can add include Celluloid and then use every. Like here.

I'd love for this to be turned into a feature, something that checks bot connections periodically and is built in.

Thanks for the comment. I've tried to replace thread by every like below:
class PingThread  < SlackRubyBot::Server
  extend Celluloid

  on 'hello' do |client, data|
    puts "PingThread: Hello!"

    @reconnect_count ||= 0

    if @timer
      @timer.cancel
      @reconnect_count += 1
    end

    sequence = 1
    @timer = every 30 do
      client.ping({id: sequence})
      puts "PingThread: ping #{sequence}, reconnect<EMAIL_ADDRESS>      sequence += 1
    end
  end
end

I had to use extend instead of include.
I think I should make sure to cancel @timer after reconnect. Is it correct?

Looks good to me.

I have similar problem, but it's worse as I understand. I have bot running without bot server, just on celluloid by .run. The problem is in environment, where network can change. After network change (I now test it by connecting/disconnecting to VPN while bot running) there is no disconnections, bot is still running, but no new messages are recieved, it looks like stuck.
To resolve problem I turn to ping/pong solution, found this issue and take code from here. But it does not work because ping is successfully sent:
D, [2018-06-18T19:35:35.201296 #29157] DEBUG -- SlackRubyBot::Client#send_json: {:type=>"ping", :id=>4}
D, [2018-06-18T19:35:35.201823 #29157] DEBUG -- Slack::RealTime::Concurrency::Celluloid::Socket#send_data: {"type":"ping","id":4}
D, [2018-06-18T19:35:35.202035 #29157] DEBUG -- Slack::RealTime::Concurrency::Celluloid::Socket#write: ��8L�C%8�Hbn�w%�_%`�Qcn�
                                                                                z
D, [2018-06-18T19:35:35.202306 #29157] DEBUG -- : PingThread: ping 4, reconnect: 0.

but no pong recieved. Don't know if it's bug or not in bot or client as it thinks that message is sent, but server does not actually recieve it and response for it.
Now I fixed this by listening for the pong response and (a little dirty, but does not know how to do it cleaner) restarting if there was not:
def run
  instance.on 'hello', ->(client, data) do
    logger.debug "PingThread: Hello!"

    @reconnect_count ||= 0

    if @timer
      @timer.cancel
      @reconnect_count += 1
    end

    @sequence = 1
    @timer = every 15 do
      if @pong_recieved == false
        @pong_recieved = nil

        logger.warn 'Pong for previous ping not recieved, restarting.'
        instance.instance_variable_set('@client', nil)
        instance.restart!
        next
      end

      client.ping(id: @sequence)
      logger.debug "PingThread: ping #{@sequence}, reconnect<EMAIL_ADDRESS>      @pong_recieved = false
    end
  end

  instance.on 'pong', ->(client, data) do
    logger.debug "PingThread: Pong received!"

    if data['reply_to'] == @sequence
      @pong_recieved = true
      @sequence += 1
    end
  end

  super
end

I've recently been doing this. I definitely think we're not properly handling a server-side disconnect, see https://github.com/slack-ruby/slack-ruby-client/issues/208, with someone at Slack looking at helping us.

To tell the truth, my first version was very similar to @gsmetal 's one like below.
But I noticed that waiting pong was over-killing for my case.
class PingThread  < SlackRubyBot::Server
  extend Celluloid

  PONG_ID_QUEUE = []

  def self.pong_received?(id)
    !PONG_ID_QUEUE.delete(id).nil?
  end

  on 'hello' do |client, data|
    puts "Ping Thread HELLO!"
    PONG_ID_QUEUE.clear
    @reconnect_count ||= 0

    if @timer
      @timer.cancel
      @reconnect_count += 1
    end

    sequence = 1

    @timer = every 30 do
      client.ping({id: sequence})
      puts "ping #{sequence}, reconnect<EMAIL_ADDRESS>      sleep 3
      raise Errno::ETIMEDOUT unless pong_received?(sequence)
      sequence += 1
    end
  end

  on 'pong' do |client, data|
    sequence = data[:reply_to].to_i
    puts "pong #{sequence}"
    PONG_ID_QUEUE << sequence
  end
end

Hi,
I am trying to use the simple pong example but I keep getting this error:
D, [2019-02-15T12:39:50.493263 #1637] DEBUG -- request: Accept: "application/json; charset=utf-8"
User-Agent: "Slack Ruby Client/0.13.1"
Content-Type: "application/x-www-form-urlencoded"
I, [2019-02-15T12:40:13.718209 #1637]  INFO -- response: Status 200
D, [2019-02-15T12:40:13.718583 #1637] DEBUG -- response: content-type: "application/json; charset=utf-8"
transfer-encoding: "chunked"
connection: "close"
date: "Fri, 15 Feb 2019 12:39:51 GMT"
server: "Apache"
expires: "Mon, 26 Jul 1997 05:00:00 GMT"
x-accepted-oauth-scopes: "rtm:stream,client"
x-slack-req-id: "ee5bbe76-061b-4214-a598-c2502c77a5df"
pragma: "no-cache"
vary: "Accept-Encoding"
x-content-type-options: "nosniff"
x-xss-protection: "0"
x-oauth-scopes: "identify,read,post,client,apps"
cache-control: "private, no-cache, no-store, must-revalidate"
referrer-policy: "no-referrer"
strict-transport-security: "max-age=31536000; includeSubDomains; preload"
access-control-allow-origin: "*"
x-via: "haproxy-www-xwfn"
x-cache: "Miss from cloudfront"
via: "1.1 ba54b87be4c2c5972b040f7bc946173f.cloudfront.net (CloudFront)"
x-amz-cf-id: "A_T8oLVZ5YiLenwmSOGlUOxOFqt6nYMEhVSNJkZqUJW3eAtNsYaVOA=="
Killed

Resolved via https://github.com/slack-ruby/slack-ruby-client/issues/208


Correct missing underscores in ISA regex

Undescores before Zk and Zknh were missing

Will need a bump in version for merge.

Updated the changelog and bumped version

@ssoler-smd  Thanks for the patch


Resolve-Path -Relative: prevent meaningless cross-drive results, decide on and document exact semantics

The -Relative parameter really only makes sense with path arguments based on the same drive.
Currently, it seems that the current drive's location is used as the basis (which makes sense), with useless results being reported for target paths located on a different drive - with or without a provider prefix:
Steps to reproduce (Windows)
Set-Location C:\
Set-Location HKLM:\Hardware
Resolve-Path C:\Windows -Relative
Resolve-Path FileSystem::C:\Windows -Relative

Expected behavior
Either:  an error message indicating that a relative path cannot be determined, because the target path is on a different drive.
Or: if the intent is to base the relative path on the target drive and its current location, irrespective of what drive the current location belongs to - which would need to be clearly documented - the appropriate relative path - .\Windows - should be reported
Actual behavior
.\C:\Windows
..\

Obvious, these relative paths makes no sense.
Environment data
PowerShell Core v6.0.0-alpha (v6.0.0-alpha.17) on Microsoft Windows 10 Pro (64-bit; v10.0.14393)

Resolve-Path can detect a privider for C:\windows so it should return expected result without an error.


Added /users//moves/ to fetch moves

Codecov Report

Merging #175 into game will decrease coverage by 0.34%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##             game     #175      +/-   ##
==========================================
- Coverage   84.46%   84.11%   -0.35%
==========================================
  Files          52       52
  Lines        2986     3021      +35
==========================================
+ Hits         2522     2541      +19
- Misses        464      480      +16

Impacted Files
Coverage Δ

tests/game_test.py
100% <100%> (ø)
:arrow_up:

nekoyume/game.py
75.59% <100%> (+1%)
:arrow_up:

nekoyume/items/weapons.py
76.92% <0%> (-15.39%)
:arrow_down:

...ume/battle/components/behaviors/skills/__init__.py
84.96% <0%> (-9.16%)
:arrow_down:

nekoyume/battle/components/stats.py
90.9% <0%> (-1.3%)
:arrow_down:

nekoyume/move.py
72.91% <0%> (+0.41%)
:arrow_up:

Continue to review full report at Codecov.

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


Question: Would .pmtiles be interesting to support?

I could maybe help with this.
I would like to have offline maps and directions.
The offline maps I intend on solving by using .pmtiles and a service worker that simulates the range request.
I am wondering if the .pmtiles can also be used to generate the graph on the fly.
It has all the vector tiles. In ym use case the end users device has the whole .pmtiles.

See #22 and #4. I think generating the graph from vector tiles is a cool idea, because it could potentially shrink the bandwidth/storage requirements. What scale does this offline map cover?
Complications:

vector tiles don't encode a graph, so when tunnels/bridges cross, this would incorrectly become routable
the route snapper assumes a fixed graph; there's no tiling. So you could try feeding in all the roads from the entire pmtiles file, or rebuild constantly based on what's in the viewport. If you're doing the former, then... it might be much simpler to just build the graph file once, if the file size difference isn't bad.

Valhalla has routable tiles and is optimized for embedded environments, I think: https://valhalla.github.io/valhalla/tiles/
I think some of the folks involved in https://github.com/maplibre/maplibre-tile-spec are also interested in a tile format that could support both rendering and routing. I've seen some discussion in https://slack.openstreetmap.us/ in a channel for maplibre tiles


Version 1.0

Super Admin Dashboard Created where user can click Login as Admin .
IT will take to Super Admin Dashboard with 7 Screens


Doc: Add a note about preserving name label in bin-op

Fix #6929
Signed-off-by: Julien Pivotto<EMAIL_ADDRESS>

closing in favour of #7819


Though on symfonycasts/reset-password-bundle

FOSUserBundle being deprecated,
Symfony allows devs by using MakerBundle to implement what is missing from FOSUserBundle.
eg :

make:user
make:reset-password depend on  symfonycasts/reset-password-bundle
make:registration-form
...

ATM, TablerBundle use raw input and custom names to implement the template,
which doesn't work with what MakerBundle has created.
Wouldn't it be better to use forms that MakerBundle "auto-code/auto-create" ?
Instead of creating our own form by raw html inputs.
I know Tabler.io use raw inputs to match with most uses,
but in our case we are making a Bundle for Symfony.
It will be more natural to use Symfony form instead of manual HTML inputs.
What do you think about that @kevinpapst ?

I love the idea. The bundle should propagate best practices.
This form is how I use it for "historical reasons". But I am entirely open to improve that.
We just should make sure that we talk about the Symfony version that we want to target.
What about the new security system that was beta in SF5 and is now the default in SF6? I guess there are changes as well.
Keeping several forms would work, but is a nasty job to maintain...

the new security system that was beta in SF5 and is now the default in SF6

Can you provide me any links about that ?

There is a crazy machine, which tries to find stuff for you ... I think it is called Google 😁  Try to search for "symfony updated security system" or stuff like that. It was introduced with 5.2 and then further improved. Most of the time I follow Twitter and RSS links... which I do not bookmark.

Ah yes !
I've implemented it yesterday when I was upgrading Symfony 4, it's a big improvement by Symfony.

It was introduced with 5.2

So, does that mean that TablerBundle will be for >= SF5 🤔.
SF4 implements will end at end 2022 and die at end 2023.
https://symfony.com/releases
TBH I upgrade it because of that (and PHP 8 too)

Yeah. Maybe the bundle should be SF 5+ only.
Just not right now, because my app is in the process of upgrading and I expect it to be a longer task, as I have SAML and LDAP stuff as well, which might become a nightmare during the upgrade...

Back to topic: if you want to integrate a new form, please do so.
I am a one man show and this bundle is only here, becuase I want to share the work I have to do anyways for my app.
And I do make mistakes, a lot of them 😁 so any input to make it better is highly appreciated!

Which security system is active in Symfony has little effect on this, right?
Both the 'old' security system and the new one have some sort of authenticator class, which takes the parameters out of the request and does 'the thing'.
So, which parameters to take out of the request has nothing to do with the security system in place, and thus with the Symfony version.
The only thing - I think - this issue wanted, is to align the form input names used in the examples / templates, with what bin/console make:auth scaffolds for users (that scaffolds an authenticator / guard class and thus scaffolds the code to retrieve user/password/remember_me/csrf from the request). It's nothing but 'aligning defaults' to streamline the development experience, I guess.
Am I correct in this? Because otherwise I don't get it :).


switching fortio to using dev and vendor as a submodule

Use dep, and submodule
Updated build image to latest go 1.8(.7) and to get grpc from vendor instead of image

@costinm ptal, this should help demonstrating https://github.com/istio/istio/pull/3348 / what to do for istio/istio


Rework edm-publishing data product folder, mechanisms

Per discussion with @alexrichey and @damonmcc, a proposed change to edm publishing folder structure, intended to be applied for all products. Will likely start with db-checkbook and then work through depending on downstream ramifications of changes for each (i.e. is it just GIS/readme links that need to know? Does AE depend on this endpoint etc)
Currently, we have a mix of

{product}/{version}/{build_date}
{product}/{branch}/{build_date}
{product}/{branch}/{version}/{build_date}

To unify a bit more, want to move to

product

publish

{version} (official release - be it by date, or "22v1", etc)

(output_files)

draft

{build} (default to just branch, but maybe option to include date as well if multiple versions of same "build" needed)

(output_files)

All of our build steps, be they on main or a dev branch, would go to the draft folder. These are then available for qa tools to access, again be they really qa for outputs from dev branches or qc for ready-to-publish builds on main. Either way, these could then be "published" by a new github action separate from the build action.
With this, the build action would take two inputs

product name
version (publishing version). Maybe optional, default to current date? Or do we want to get more explicit about versioning than just having dated outputs

We'd then have a publish action which also takes two inputs

product name
build name (branch etc - refers to folder in {product}/draft
Which would do a few things
move (copy? probably just move since we don't need the draft anymore) files to appropriate publish folder, based on version.txt in outputs most likely

update acl - drafts might default to private (though there are cases where we want to share internally - devdb, kpdb), published versions more product-dependent (though not sure if we really publish anything as private currently)

clean out build schema/db in edm_data if applicable

The latter part of this is then updating old data in publishing to align with this new format, and reworking of dcpy utils to pull data - luckily all qa app functionality is using dcpy now I believe (or maybe there's one or two hardcoded endpoints in odd spots, but it's mostly there at least)

@AmandaDoyle curious if you have any huge thoughts on this - obviously we'll have some downstream effects, and need to make sure that we don't change things up on someone without warning and making sure that they have the latest endpoints (users, GIS, and AE)

Code to migrate colp
### colp
def copy(folder, prefix):
    key = f"db-colp/{prefix}{folder}/output/"
    publishing.publish_add_created_date("db-colp", key, "public-read", publishing_version=folder)
root_folders = [folder for folder in s3.get_subfolders("edm-publishing", "db-colp") if folder not in ["main", "dev", "draft", "latest", "publish"] ]
for folder in root_folders:
    copy(folder, "")
copy("2022-08-16", "dev/")
root_folders = s3.get_subfolders("edm-publishing", "db-colp/main")
for folder in root_folders:
    copy(folder, "main/")

Code to migrate edde, not done yet since it isn't in monorepo
### eddt
def copy(folder):
    key = f"db-eddt/main/{folder}/"
    publishing.publish_add_created_date(
        "db-edde",
        key,
        "public-read",
        publishing_version=folder,
        file_for_creation_date="housing_production/metadata.yml",
    )
main_folders = s3.get_subfolders("edm-publishing", "db-eddt/main")
for folder in main_folders:
    copy(folder)


Feature/split obj file

Split obj files using obj2mjcf to visualize correct color.

Torobo2 and HandV4 model color is changed.
The color of collision mesh (rgba) is (1, 1, 1, 1).

Update README.

To test these models, please execute example scripts.

Having confirmed the correct colors, I will merge.


How could I change sql editor behavior about apostrophe

i'm using window dbeaver
in some time
i have sql like SELECT * FROM XXX WHERE OOO = :parameter
the question is that when i type apostrophe
expected SELECT * FROM XXX WHERE OOO = ''
BUT lastest version become
SELECT * FROM XXX WHERE OOO = ':parameter'
how can i turn of this option

Sounds like a bug. What database do you use?

Sounds like a bug. What database do you use?

sql server

I re-read your issue again and I'm not sure that understood you correctly. Could you right steps to reproduce or make a video?

I re-read your issue again and I'm not sure that understood you correctly. Could you right steps to reproduce or make a video?

https://i.imgur.com/0raSVDZ.jpg
https://i.imgur.com/iL1w3QM.jpg
https://i.imgur.com/S7cmDX6.jpg
but I just expected SELECT * FROM XXX WHERE OOO = ''
so I need to clear every parameter first

@moron-gay please copy-paste or drag-n-drop images (not image urls) directly in the comment area.
Otherwise it is very hard to understand your use-case.

You can disable this behavior in preferences:

Note: you need to reopen SQL editor to let these changes take effect.
Note2: I've pushed enhancement: now preference change will be applied immediately.

verified


[Windows]Android Emulator does not appear as device target in Android Studio

Steps to Reproduce

follow https://docs.flutter.dev/get-started/install/windows for "Windows Setup"
(a) until https://docs.flutter.dev/get-started/test-drive?tab=androidstudio "Run the app",
b) then (because Desktop app building doesn't work related Issue)
c) refollow those steps for "Android Setup" to add Android build support and an AVD to Android Studio and open the already existing project

Result: Android Emulator device does not appear as device target in "run" toolbar in Android Studio despite documentation followed
Logs

Logs

flutter doctor -v
[√] Flutter (Channel stable, 2.8.0, on Microsoft Windows [Version 10.0.19044.1415], locale de-DE)
    • Flutter version 2.8.0 at C:\Users\Hansen\Downloads\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision cf44000065 (12 days ago), 2021-12-08 14:06:50 -0800
    • Engine revision 40a99c5951
    • Dart version 2.15.0

[√] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at C:\Users\Hansen\AppData\Local\Android\sdk
    • Platform android-32, build-tools 32.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[X] Chrome - develop for the web (Cannot find Chrome executable at .\Google\Chrome\Application\chrome.exe)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.0.2)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.0.31919.166
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2020.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[√] VS Code (version 1.63.2)
    • VS Code at C:\Users\Hansen\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension can be installed from:
       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (2 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19044.1415]
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 96.0.1054.57

! Doctor found issues in 1 category.

Hi @via-lars, Thanks for filing the issue. When you launch the virtual device manually from the avd manager does the device launch and show up in the list of devices in android studio?

Hi, yes, it does:

once I manually launched the emulator via the Play-button in the AVD manager (although I got an error about adb not found the emulator launched) and then clicked the Play-Button in the "run" toolbar, the console output is Running Gradle task 'assembleDebug'... and after now some minutes the app actually displays inside the emulator.
So thank you!
But after closing the emulator, the drop down entry is gone again.
I guess i can work with having to launch the emulator separately first...

thanks for the info. @via-lars, I suspect this issue to be related to android studio or the emulator, in the SDK settings under Android Sdk => Sdk tools
Can you please check if Android Emulator is enabled?

Hello, it is.

@via-lars If you run a native android project, Is the emulator shown in the list of devices?

it is:

Thanks for the info @via-lars, So this looks like a issue with flutter-intellij plugin. I would advise you to please file the issue in the dedicated repository.
Additionally please check if any of the solutions in this issue helps https://github.com/flutter/flutter-intellij/issues/2084
Closing as this isn't really an issue with flutter sdk.


Increase in size gradually, and include more food

I think if we increase the amount of food spawned by a lot and then gradually increase the size of your "cell" instead of "+1" for example, then it will act more like the original game.
At the moment, you can become very large quite easily in a matter of minutes, whereas on the original game, it takes a while to get to that point due to the incrementation in size.
I think as you get bigger, the incrementation of your size decreases slowly so it takes a lot more food to get bigger etc.

I don't think it's because each food increases you more, it's just that it seems that on Agar, you lose X% of your mass every 5 seconds, so as you get bigger, you need more and more food to compensate that loss and get larger (profit of that compensation)

Oh really? I never noticed that decrease in mass. Is that possible with some sort of client side timer? e.g..
var PlayerMass = CurrentMass - 0.1;

Yeah it's like you spend energy on moving, it also helps balancing the game so huge players can't just sit there forever.
I don't think a client timer would be enough, since players could bypass it. That should be handled by the server.

Yes, you constantly lose mass, no matter how big you are (exept you are smallest initial bubble size). To check this out on agar.io, go to the settings (little gear symbol) before you start and tick the "show mass" option. now play the game and look how your mass constantly decreases, the bigger you get the faster the mass is lost. So it is something like @IgorAntun  said :P For cloning the exact same effects, some research has to be done on agar.io.

If I understand correctly, the mass in an agar level is constant.  All players experience attrition, where their mass is slowly redistributed as food (krill, skittles, whatever) at a rate having mass as a factor, thus large players lose mass faster.


Print still not working

Name of Defective Feature
-Print screen
System Settings (Required)

ToolKit Version:
Operating System (Mac/Windows/Etc):
Browser (Chrome/Firefox/Safari):
Browser Version:
Other Extensions:

Export of Toolkit Settings (Bottom Left of Settings Page)

Settings Export
PASTE SETTING EXPORT HERE

Steps to Reproduce the Behavior

CTRL P

Expected Behavior

Budget print only displays the month and year
Actual Behavior

@SunnyGirl777 this is a duplicate of #1268 which is fixed and will be in our next release!


Gitleaks can't handle files with CRLF terminated lines

Describe the bug
When scanning files with CRLF terminated lines gitleaks will not detect secrets.
To Reproduce

Create a new file and add a secret to it. Check that end of line sequence is set to LF first. In VSCode it's indicated in the bottom bar on the right hand side.
Running a scan will detect the secret.
Change end of line sequence to CRLF and save the file.
Running a scan now will not return any wanings.

Expected behavior
Gitleaks should return warnings for files with CRLF.
Basic Info (please complete the following information):

OS: Ubuntu 21.10
Gitleaks Version: v8.2.5

cc @zricethezav

@mickutz It's because of https://github.com/zricethezav/gitleaks/blob/master/detect/files.go#L54-L56. That check has caused some issues elsewhere so probably best to just remove it. Allowlist filtering can be the responsibility of the user


use syscall instead of sys/unix

Thanks @strib for pin-pointing the issue and digging out the sys/unix and syscall changes!

I'm gonna just merge this as last commit was a comment change


base64url encoding data with padding or without padding?

I've been investigating the JWS and JWE specs more and noticed that the JWS spec requires that padding be omitted where as the JWE specification makes no mention about padding on encoded characters. I remember this was discussed awhile back, but I suspect that there's a difference in what's being used or what implementers will use going forward. Do we want to specify whether padding or no padding should be used? If so, I suggest we go with no padding to stay consistent with the JWS requirements.
@selfissued what's your take on this?

The JWE spec references the JWS definition of base64url, and so doesn’t have to repeat it in every detail:
BASE64URL(OCTETS) denotes the base64url encoding of OCTETS, per    Section 2 of [JWS].
and
The terms "JSON Web Signature (JWS)", "Base64url Encoding",    "Collision-Resistant Name", "Header Parameter", "JOSE Header", and    "StringOrURI" are defined by the JWS specification [JWS].

I'll add this detail to the specifications that use JOSE and then close this once I've done so.

Any progress on this @kdenhartog?

After looking at a few implementations, it appears our implementations are using padding (with some having it easier to remove than others at the moment. Given this would require changes to the implementations, I'd prefer to run these changes past implementers of AIP 1.0 to identify their preferred path. With usage of compliant JOSE in the future I think this is an absolute must to implement, but I'm curious if that's the preferred path for AIP 1.0.
@tmarkovski @andrewwhitehead @swcurran @TelegramSam @jovfer @Artemkaaas @esplinr and others which method would you prefer to see? What ever is decided I volunteer to handle the documentation effort (in a timely manor).

This was resolved via an update to the RFCs that reference decoding during unpack operations - PR #396. Closing.


FI-930: Support FHIRPath for generating searches

FI-930: SearchParameters that have complicated FHIRPath expressions (e.g. use descendants() or |) cannot be generically processed by Inferno.  Inferno uses the FHIRPath in order to determine the value of the searchParameter to be used in the search and validate that the results returned conform to the value.
This PR creates a FHIRPathEvaluator class that posts elements to the FHIRPath endpoint. It also adds two new config options, fhirpath_evaluator and external_fhirpath_evaluator_url, which are analogous to the resource_validator and external_resource_validator_url config options. When fhirpath_evaluator is set to external, POST requests will be made to the FHIRPath endpoint in order to resolve FHIRPath expressions against a given complex datatype.
The goal was to substitute out the logic that was previously resolve_path and resolve_element_from_path with a more complete FHIRPath solution. This allows us to remove some of the FHIRPath patching (e.g. removing .as() and truncating the path) that was done in the sequences. However, one patch that has not been removed is .where(resolve() ...) because the external FHIRPath evaluator does not know how to resolve references of the form [Resource]/[id].
NOTE: This PR requires running wrapper/FI-931-add-fhirpath-endpoint locally to work.
Submitter:

[X] This pull request describes why these changes were made
[X] Internal ticket for this PR: https://oncprojectracking.healthit.gov/support/browse/FI-930
[X] Internal ticket links to this PR
[X] Internal ticket is properly labeled (Community/Program)
[X] Internal ticket has a justification for its Community/Program label
[X] Code diff has been reviewed for extraneous/missing code
[X] Tests are included and test edge cases
[X] Tests/code quality metrics have been run locally and pass

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure
where appropriate, and accomplishes the task's purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure
where appropriate, and accomplishes the task's purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

I noticed this difference when running against our demo server:
dev:

FI-930:

I noticed this difference when running against our demo server:
dev:

FI-930:

Yes, I came across that issue as well. It seems to be non-deterministic which outcome happens, and I was able to reproduce that skip result on development by re-running the test multiple times.


[SPARK-31801][API][SHUFFLE][TESTS] Tests for registering map output metadata

What changes were proposed in this pull request?
Builds on https://github.com/apache/spark/pull/28618 in providing tests via a mock implementation of the shuffle plugin system. Note that a proper review of this should be done via comparing to https://github.com/apache/spark/pull/28618. Check out https://github.com/mccheah/spark/compare/register-map-output-metadata...mccheah:register-map-output-metadata-with-tests for a more illustrative diff, at least until the dependent PR merges into maste.
Requires https://github.com/apache/spark/pull/28618.
Why are the changes needed?
We aim to provide test coverage to ensure the plugin system works in a meaningful way. Additionally, it's important to provide a reference implementation for plugin developers to look at.
Does this PR introduce any user-facing change?
No - tests only
How was this patch tested?
The patch should be entirely tests.

Test build #124384 has started for PR 28902 at commit 8dddd15.

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-K8s/29003/
Test PASSed.

Test build #124384 has finished for PR 28902 at commit 8dddd15.

This patch fails build dependency tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class ShuffleStoragePluginSuite extends SortShuffleSuite
case class MockAsyncBackupMapOutputMetadata(
class MockAsyncBackupMapOutputWriter(
class MockAsyncBackupShuffleDataIO(sparkConf: SparkConf) extends ShuffleDataIO
class MockAsyncBackupShuffleDriverComponents(
class MockAsyncBackupShuffleExecutorComponents(
class MockAsyncBackupShuffleOutputTracker(
class MockAsyncShuffleBlockBackupManager(

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/124384/
Test FAILed.

cc @Ngone51 @jiangxb1987

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-K8s/31455/
Test PASSed.

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-K8s/31457/
Test PASSed.

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-K8s/31458/
Test PASSed.

Test build #126832 has started for PR 28902 at commit 72dfb1e.

Test build #126834 has started for PR 28902 at commit 5b2373a.

Test build #126835 has started for PR 28902 at commit 3b485cb.

Test build #126832 has finished for PR 28902 at commit 72dfb1e.

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/126832/
Test FAILed.

Test build #126834 has finished for PR 28902 at commit 5b2373a.

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/126834/
Test FAILed.

Test build #126835 has finished for PR 28902 at commit 3b485cb.

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/126835/
Test FAILed.

Test build #126895 has started for PR 28902 at commit 2c57a9a.

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-K8s/31520/
Test PASSed.

Test build #126895 has finished for PR 28902 at commit 2c57a9a.

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/126895/
Test FAILed.

Test build #126903 has started for PR 28902 at commit e7a548a.

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-K8s/31529/
Test PASSed.

Test build #126903 has finished for PR 28902 at commit e7a548a.

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/126903/
Test FAILed.

Test build #126997 has started for PR 28902 at commit 933f9c6.

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-K8s/31621/
Test PASSed.

Test build #126997 has finished for PR 28902 at commit 933f9c6.

This patch fails to build.
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/126997/
Test FAILed.

Test build #127001 has started for PR 28902 at commit b0c7a86.

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-K8s/31625/
Test PASSed.

Test build #127001 has finished for PR 28902 at commit b0c7a86.

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/127001/
Test FAILed.

Test build #127011 has started for PR 28902 at commit bc06c90.

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-K8s/31635/
Test PASSed.

Test build #127011 has finished for PR 28902 at commit bc06c90.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class RegExpExtractAll(subject: Expression, regexp: Expression, idx: Expression)
    .doc(\"The name of a class that implements \" +
trait CachedBatch
trait CachedBatchSerializer extends Serializable
trait SimpleMetricsCachedBatch extends CachedBatch
abstract class SimpleMetricsCachedBatchSerializer extends CachedBatchSerializer with Logging
case class ColumnarToRowExec(child: SparkPlan) extends ColumnarToRowTransition with CodegenSupport
case class ApplyColumnarRulesAndInsertTransitions(
class ColumnStatisticsSchema(a: Attribute) extends Serializable
class PartitionStatistics(tableSchema: Seq[Attribute]) extends Serializable
case class DefaultCachedBatch(numRows: Int, buffers: Array[Array[Byte]], stats: InternalRow)
class DefaultCachedBatchSerializer extends SimpleMetricsCachedBatchSerializer
trait HashJoin extends BaseJoinExec with CodegenSupport

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/127011/
Test FAILed.

Test build #127294 has started for PR 28902 at commit c61d547.

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-K8s/31913/
Test PASSed.

Test build #127294 has finished for PR 28902 at commit c61d547.

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

Merged build finished. Test PASSed.

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


Matt kirby -  Unit:1, Sprint:2 - Data Wrangling

Assignment 1 looks great! Nice work with commenting your code. All the parts look like they were completed. Feel free to do stretch goals with different data if you want/need further challenge.

Really good work with the daily assignments. Your code is clean and efficient. I would suggest adding comments within code, or markdown blocks between for further explanation of the process. Tables and charts were great. Nice work on the stretch goals.

Outstanding work on the Sprint Challenge. Your code and tables are great and suitable output for the solutions. You could work on adding additional comments within your code for ease of understanding the process. Good work on the stretch goals as well, you did awesome work this week!


Amend rejection help text

@mloughran I don't understand why these checks are failing. It's a very minor copy change.


Update draft-ietf-oauth-transaction-tokens.md

Addresses text regarding the aud claim throughout the document. Issue #76

Although your changes sufficiently capture what is needed, what I liked about the previous draft is that it clearly identified that each Trust Domain MUST have a unique identifier, which is set as the aud value. I wonder if we can say that somewhere (outside of the Terminology section)

Ok, let me see if there is a good place to add that. I wonder if it will be easier to merge PR #90 first and then let me fix this one as there may be conflicts?

Makes sense to work on this after we merge #90
On Fri, Apr 26, 2024 at 3:11 PM George Fletcher @.***>
wrote:

Ok, let me see if there is a good place to add that. I wonder if it will
be easier to merge PR #90
https://github.com/oauth-wg/oauth-transaction-tokens/pull/90 first and
then let me fix this one as there may be conflicts?
—
Reply to this email directly, view it on GitHub
https://github.com/oauth-wg/oauth-transaction-tokens/pull/89#issuecomment-2080179762,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB55UG77Y2GZKFE7FSVPC7LY7LGIFAVCNFSM6AAAAABFO22ZLKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBQGE3TSNZWGI
.
You are receiving this because your review was requested.Message ID:
@.***>


Ad Reload functionality.

The plugin is awesome but it would be more awesome if there was method to reload selected ad.
I mean we should specify reloading time through an attribute to element with class AdSense or AdSense ad wrapper element.
class="adsense" data-reload="2"
The ad gets reloaded after 2 minute.

hello, you tried to test it  with Speed Web dev ? 100 points ? tks


Can not install docfx-companion-tools via chocolatey

Hi
I'm trying to install the tool using the recommended command choco install docfx-companion-tools but it fails with the following error:
Failures
 - docfx-companion-tools - docfx-companion-tools not installed. The package was not found with the source(s) listed.
 Source(s): 'https://chocolatey.org/api/v2/'
 NOTE: When you specify explicit sources, it overrides default sources.
If the package version is a prerelease and you didn't specify `--pre`,
 the package may not be found.
Please see https://docs.chocolatey.org/en-us/troubleshooting for more
 assistance.

Any ideas regarding how this can be fixed? :)

hi @alexander-lysenko-88 , yes: patience... Unfortunately, it still under (manual) validation on the Chocolatey team...
@mtirionMSFT you may have more news?
Note: we've adjusted all the docs and the tools are under validation since last week. You can use the "old" way in the mean time: cloning and build the tool. Just go back a bit in the history and you'll find out. Hopefully this will be solved quickly.

@alexander-lysenko-88 @Ellerbach unfortunately it's blocked in the publishing process and the information is not very clear to me. I'm trying to contact the admins to get it resolved asap. Sorry for the delay! I'll post here when it's resolved.

@alexander-lysenko-88 it's waiting in a queue for review. It looks like it's about to be picked up. In the meantime you CAN already install from Chocolatey, but you have to do it like this:
choco install docfx-companion-tools --version=1.1.0

@Ellerbach, @mtirionMSFT, thank you guys for assistance!
workaround with installation of explicit version works fine 👍

@alexander-lysenko-88 @Ellerbach Chocolatey package is published. You can now safely use:
choco install docfx-companion-tools


Use SourceKind instead of ToBreaking* in tests

Hoping to work on some of the suggestions for consolidating optimization unit tests. Here is a start.

Since that update to the commit is in your own branch, I can't add the .gitignore revert. Would you be able to do that? I'll submit a new PR later.

It reverts the .gitignore file without needing to do and push an
interactive rebase for the whole branch.
On Wed, May 23, 2018 at 2:16 AM, Atif Aziz<EMAIL_ADDRESS>wrote:

@atifaziz requested changes on this pull request.
I'm confused by 6afa00d
https://github.com/morelinq/MoreLINQ/commit/6afa00d8df16445ab70b37b00ea2f7c37b828184.
Do we need it? Seems to me it should be reverted.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/morelinq/MoreLINQ/pull/487#pullrequestreview-122457661,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAn-MRLccrqpNVA_Qun6ZISwS4ULB6qsks5t1QzNgaJpZM4UCJK9
.

--
Avi Levin
Senior Developer
w:<PHONE_NUMBER> x256
twitter: @milyli
milyli.com
http://milyli.com/[image: milyli] http://milyli.com/
Milyli - which stands for “Make It Like You Like It” - is an ediscovery
software development firm dedicated to solving complex ediscovery problems
with innovative, intuitive legal technology.


Translation mistake with "UTF8 with BOM" encoding in Host File Editor settings

Microsoft PowerToys version
0.75.1
Utility with translation issue
Hosts File Editor
🌐 Language affected
Chinese
❌ Actual phrase(s)

UTF8, 带物料清单
✔ Expected phrase(s)
带BOM的UTF8 或 带字节顺序标记的UTF8
ℹ Why is the current translation wrong
BOM stands for Byte Order Mark, not Bill of Materials

Hi, this has been worked on for the 0.78 development cycle. 😄
Please update PowerToys to the latest: https://github.com/microsoft/PowerToys/releases


Barber-Agakov, and OED refactoring

New:

Barber-Agakov estimator of EIG
models and guides for sigmoid link function linear model

Refactored:

consistent API for different EIG estimators
improved code re-use in guides
extended support of EIG estimators: include integrating out random effects, supporting lists of variable names as well as single names

@ae-foster to simplify reviewing, if some of this code is from old PRs merged to oed-master, can you add links to those PRs next to the appropriate bullet points above?

Review of incorporated PRs:

https://github.com/uber/pyro/pull/1326/files smartened up the EIG estimator API (making it consistent between different functions). Moved the 'optimise a loss function' code from benchmarking script to eig.py. There are also a bunch of redundant changes to guide. I would only look at the eig.py diff
https://github.com/uber/pyro/pull/1331/files added sigmoid model and looks like some further refactors related to integrating out nuisance variables. Need only look at the diff for bayes_linear.py and eig.py
https://github.com/uber/pyro/pull/1342 brought the BA guides to their current form (also added linalg changes already merged to dev in https://github.com/uber/pyro/pull/1348). Probably only need to look at amort.py -- new file.

Overall, you could skip reading changes for eig_estimation_benchmarking.py, ab_test.py and item_response.py. There are no substantial changes- just matching new API.

Codecov Report

Merging #1361 into dev will decrease coverage by 0.71%.
The diff coverage is 30.86%.

@@            Coverage Diff            @@
##             dev    #1361      +/-   ##
=========================================
- Coverage   95.8%   95.09%   -0.71%
=========================================
  Files        126      126
  Lines       6646     6704      +58
=========================================
+ Hits        6367     6375       +8
- Misses       279      329      +50

Impacted Files
Coverage Δ

pyro/contrib/autoguide/__init__.py
99.3% <100%> (ø)
:arrow_up:

pyro/contrib/oed/eig.py
45.39% <28.21%> (-22.47%)
:arrow_down:

Continue to review full report at Codecov.

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

End-to-end EIG estimation tests now on branch https://github.com/uber/pyro/tree/barber-agakov-tests

@ae-foster let's try to get this merged today. i think you need to merge #1369 to get CI to be happy.

I'll try and find some time to go over this in person with @eb8680 (unless he's cool to just merge). Ok I'll rebase from dev to get the pytest pin


Add styling for "Common intake ineligible" page

Blocked on #8177
Desktop mocks: https://www.figma.com/design/RmhVJCLgAKWGENJLWWAtNS/CiviForm%3A-Components%2C-Styles?node-id=3838-9000&m=dev
Mobile mocks: https://www.figma.com/design/RmhVJCLgAKWGENJLWWAtNS/CiviForm%3A-Components%2C-Styles?node-id=3838-9089&m=dev

@sijiayam Can you add a link to the mocks?

Design QA complete


 Do you know how to easily enable double Tap and Drag like its found on real Mac as I know.
Thank you :3

@supremekiind I really don't know since I do not use it... so I only googled just for curiosity... Here it is the first result:
https://apple.stackexchange.com/questions/374138/how-to-enable-double-tap-to-drag-in-mac-os-x-catalina
Don't know if it is still valid for BS!

Yes, that’s exactly the way, I also use it exclusively on all my Macs. It works quite well also with the slightly wobbly trackpad in the Matebook.

On 22. Apr 2021, at 23:02, profzei @.***> wrote:
@supremekiind https://github.com/supremekiind I really don't know since I do not use it... so I only googled just for curiosity... Here it is the first result:
https://apple.stackexchange.com/questions/374138/how-to-enable-double-tap-to-drag-in-mac-os-x-catalina https://apple.stackexchange.com/questions/374138/how-to-enable-double-tap-to-drag-in-mac-os-x-catalina
Don't know if it is still valid for BS!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/profzei/Matebook-X-Pro-2018/issues/164#issuecomment-825183411, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOKAXYVW4SEGF4NDVA43VDTKCFGNANCNFSM43NKUM3A.

Thank you man :3


inline assembly not supported

While trying to measure coverage on the ENS, I got this error while instrumenting the Registrar contract:
instrumenting  /Users/primary/Projects/ens-project/security-review/ens-coverage/originalContracts/HashRegistrarSimplified.sol
InlineAssemblyStatement
TypeError: parse[expression.body[x].type] is not a function
    at Object.parseBlockStatement [as BlockStatement] (/Users/primary/Projects/ens-project/security-review/ens-coverage/solcover/parse.js:151:37)

I've hacked around this for now by adding a check to see if the statement type has a parser method.
parse.BlockStatement = function parseBlockStatement(contract, expression) {
  for (let x = 0; x < expression.body.length; x++) {
    instrumenter.instrumentLine(contract, expression.body[x]);
    if (typeof parse[expression.body[x].type] === 'function') {
      try {
        parse[expression.body[x].type](contract, expression.body[x]);
      } catch (e) {
        console.log(expression.body[x].type);
        console.log(e);
      }
    }
  }
};

I suppose this might be related to the solc version issue as well.

Hi @maurelian. Have taken a look at ENS and reproduced your issue, but sadly found several others:

Parsing inline assembly is now fixed on solcover's truffle3 branch. That branch should also be able to handle solc 0.4.8 contracts and use the latest truffle. There's no coverage for assembler but it parses. (Also, if you use it - check the README because installation is different there).

solcover is instrumentating this statement in HashRegistrarSimplified.sol incorrectly: Registrar(registrar).acceptRegistrarTransfer(_hash, h.deed, h.registrationDate)
That needs to be resolved but I think it can be side stepped by assigning the result of Registrar(registrar) to a temporary variable and using the temp to invoke acceptRegistrarTransfer

It looks like there might be a bug in solidity-parser with assembler numeric literals. During the instrumentation sequence SP is emitting an error for this line in  ReverseRegistrar.sol:

SyntaxError: Expected comment, end of line, identifier, or whitespace but "0" found. Line: 49, Column: 27

Will verify the SP issue and open a PR over there if possible. I think it will be a couple days before this stuff is straightened out.

Thanks @cgewecke
I got the same SyntaxError on ReverseRegistrar.sol too. I'm only interested in the HashRegistrarSimplified.sol measurement, so I just commented out the offending section.
I will probably spend some more time today trying to hack out another work around.

Had some luck: here's a report for ENS on codecov.io
Solcover's testrpc instance needed a higher default transaction gas value to run the ENS tests correctly. Also changed a number of ENS things:

There is a problem resolving a require in one of the migration files while running coverage:  commented it out.
Commented out both ReverseRegistrar.sol and its test (solidity-parser bug)
Commented out ens_test.js because it tests events - e.g. how many, where in the logs array, etc. Those all fail because the instrumentation corrupts the event values.
Broke SimpleHashRegistrar's chained constructor/method call  on line 558 into two statements
Commented out the TestRPC provider code in test/util.js and replaced with a line that binds web3 to the modified version of testrpc that solcover has to run.
Changed all hardcoded gas values in the test files to 0xffffff - (except in test/util.js)
A couple SimpleHashRegistrar tests that advance time are timing out after 2 seconds. That might resolve if the mocha default was longer.

These changes are implemented on this fork of ENS at the coverage branch.
$ git clone https://github.com/cgewecke/ens.git
$ git checkout coverage
$ npm install
$ npm run solcover

should reproduce the reports.
Ultimately there is a healthy mix of solcover bugs and solcover integration issues here. Gas hardcoding, event testing, and test suites that manage their own relationship to testrpc are problematic for solcover.

Wow, @cgewecke... you're my one stop code coverage reporting shop. TY for this again.

Ultimately there is a healthy mix of solcover bugs and solcover integration issues here. Gas hardcoding, event testing, and test suites that manage their own relationship to testrpc are problematic for solcover.

One item that nags at me is the dependence on truffle. It seems like a pretty superficial requirement, that slows development of this tool. To my mind, a code coverage tools could simply:

instrument the contracts
run the test command (supplied by a config file)
watch the events generated.

Has that direction been discussed at all?

Also, do you know offhand if any of the changes you made would impact the measurement on the HashRegistrarSimplified.sol contract? Reviewing the list it doesn't look like it, but I wasn't sure.

@maurelian Thanks so much for opening these issues - it really helps development here - we get to find a ton of bugs and try to iron them out.
I agree with you re: truffle - that seems right to me. Instrumentation and coverage map generation are handled in a modular way within the project so it should be possible to decouple from any given Dapp framework tool. There IS a strong dependency on testrpc though.
@area What's your view of this? In some ways I see truffle as a helpful constraint - it defines a fixed target the tool can be tested against while it's in development.
I'm not sure about the effect of the changes. There are two tests that time out under coverage and I don't know if they just need more time to finish or what. Otherwise everything passes, so it should be the same.
My intuition about mis-measurement is that it will produce false positives rather than conceal problems. It would be great if someone who knew the tests well looked at the coverage reports and could evaluate whether they're right or not.
As a side note - codecov.io 's representation of the report leaves out some of the captured data. If you look at the html report istanbul itself generates for HashRegisterSimplified.sol it shows a number of unreached if statement branches - most of them in modifiers that throw - suggesting that the error cases for those modifiers are never tested. Apart from that there's one untested function and a few other unreached conditional branches. . .
That's all I see. I don't know the code base there well enough to know what anything means.

As a side note - codecov.io 's representation of the report leaves out some of the captured data. If you look at the html report istanbul itself generates for HashRegisterSimplified.sol it shows a number of unreached if statement branches - most of them in modifiers that throw - suggesting that the error cases for those modifiers are never tested. Apart from that there's one untested function and a few other unreached conditional branches. . .

Unfortunately, I've still been unable to generate the report from that repo. Would you mind sharing the report folder? Whatever method is easiest for you (dropbox, github, etc) is fine.

I'm away from my computer for the rest of the day but i'll send it over
tomorrow morning.
On Apr 21, 2017 2:37 PM, "maurelian"<EMAIL_ADDRESS>wrote:

As a side note - codecov.io 's representation of the report leaves out
some of the captured data. If you look at the html report istanbul itself
generates for HashRegisterSimplified.sol it shows a number of unreached if
statement branches - most of them in modifiers that throw - suggesting that
the error cases for those modifiers are never tested. Apart from that
there's one untested function and a few other unreached conditional
branches. . .
Unfortunately, I've still been unable to generate the report from that
repo. Would you mind sharing the report folder? Whatever method is easiest
for you (dropbox, github, etc) is fine.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JoinColony/solcover/issues/59#issuecomment-296311268,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AG_gugGBO-WKYyMeqP5m7GV2bdgIRnQAks5rySGUgaJpZM4NCQH-
.

@maurelian The istanbul reports are now included on that ENS fork at the coverage branch. You can also see them with a browser at:
https://cgewecke.github.io/ens-coverage-reports/contracts/index.html.
Are you getting an error when you try to clone the ens fork and generate the coverage yourself? If it seems like testrpc is not connecting  it's possible that a zombie testrpc instance listening on port 8555 is running in the background on your computer. That can happen when solcover crashes because it uses child_process.exec to launch the server. The only way I've found around it is to restart my computer unfortunately. Going to try to fix that issue shortly . . .

I agree with you re: truffle - that seems right to me. Instrumentation and coverage map generation are handled in a modular way within the project so it should be possible to decouple from any given Dapp framework tool. There IS a strong dependency on testrpc though.
@area What's your view of this? In some ways I see truffle as a helpful constraint - it defines a fixed target the tool can be tested against while it's in development.

Decoupling from truffle was the intention behind the 'Support for arbitrary testing sommands' item on the original todo list in the Readme, so I agree this should be something that we should include at some point.
Sorry I've been away from Solcover, by the way - work has ramped up the last month or two as we worked towards launching our (closed) beta, which happened yesterday. Hopefully that'll eventually calm down and I can return to working on this in some meaningful capacity, which I rather enjoyed doing...

Fixed in solidity-coverage.


Update README.md

Just adding Wasabi to the list of supported s3 objects providers

Hey :)
Adding Wasabi sounds good to me. The more platforms, the better
I will definitely add this to the UI as well


Add a HTTP service discovery endpoint

Prometheus supports several methods of dynamic target discovery. Prometheus PVE exporter might expose all (or a selection of) VMs and LXC containers in the HTTP SD format:

Prometheus HTTP SD docs
Proxmox VE Docs on Tags

There is prometheus-pve-sd. So maybe we do not need to implement that here at all.


No support for Make syntax

Please fix the plugin to correctly highlight Makefile like this:
include config.inc.sh

SHELL := /bin/bash
ROUTE_TEST_TMP_FILE := $(shell mktemp)
PARALLEL = parallel --no-notice

nightly/full: nightly/_all  | nightly
	touch $@

clean:
ifeq ($(BUILD_TYPE),QA)
	python make.py --clean data/area_of_interest.poly
else
	rm -rf dependencies
endif

fdw:
	python tools/configure_mysql_fdw.py \
		--foreign_port 13306

These examples are now basically supported, e.g. there is no intelligence, but at least it is not all red.


Bazel fails at runtime when building TensorFlow with custom Nix store prefix

Describe the bug
We use custom Nix store prefixes, and have found that our Nix-built Bazel 3 fails at runtime when building TensorFlow in the Nix sandbox. The error is:
FATAL: Could not find system javabase. Ensure JAVA_HOME is set, or javac is on your PATH.

The same Bazel binary works outside the sandbox and with different Nix store prefixes (including /nix and others).  This is presumably why the problem has not been noticed before.
After some investigation, we have tracked the issue down to Bazel not finding the Nix-generated bazel-rc file in the sandbox.  The bazel-rc file path is added via Nix-specific patch, and is used to override the --server_javabase flag to point to Java. When Bazel runs in the sandbox, the path is not included, and Bazel falls back on other logic to find the rc file (which fails), and it therefore continues with default settings and fails to find Java. Outside the sandbox the path is visible (as long as it's not GCed, I suppose!) and so Bazel works. Inspecting the bazel output store path with nix-store -q --references shows the bazel-rc path is missing from the broken case and present in a working case.
After further investigation, we have found this to be caused by GCC optimisations applied to the string literal containing the path to the bazel-rc file, leading it to be truncated within the binary.  Usually this does not matter since the hash part of the path (which is what Nix scans for) is intact.  However in the case of one of the store prefixes we are using, the string is truncated in such a way that the hash part is missing the last two characters.  This means that the dependency scan fails to find it, and the bazel-rc store path is not added as a reference to the bazel output.  I have included some detail below on the optimisation which causes this failure.  Note that the binary still 'knows' the full path to the bazel-rc, it's just not a contiguous ASCII string in the binary.
Steps To Reproduce
Steps to demonstrate the issue with regular NixOS 21.11:

nix-build -A pkgs.python3Packages.bazel_3, producing (for example) /nix/store/01wbznph6q7dyh17nrzc0psdpriksrl4-bazel-3.7.2
Find the bazel-rc path

nix-store -q --requisites /nix/store/01wbznph6q7dyh17nrzc0psdpriksrl4-bazel-3.7.2 | grep bazel-rc
/nix/store/3ysisg4r89zv7ig25l2q3k3g0bjxx3k7-bazel-rc

Look for the hash in the binary

strings /nix/store/01wbznph6q7dyh17nrzc0psdpriksrl4-bazel-3.7.2/bin/bazel-3.7.2-linux-x86_64 | grep 3ysisg4r89zv7ig25l2q3k3g0bjxx3k7
src/main/cpp/blaexit_code_to_use[0:0:0:0:0:0:0:1src/main/cpp/bazel_startup_optio/nix/store/3ysisg4r89zv7ig25l2q3k3g0bjxx3k7-bazesrc/main/cpp/option_processor.cc--rc_source=clie--default_override=0:common=--emignore_all_rc_fisrc/main/cpp/rc_embedded_tools/jsrc/main/cpp/staon the command l--incompatible_enable_execution_--noincompatible_enable_executiojavalog.properti-Dcom.google.devtools.build.lib.util.LogHandlerQuerier.class=com.google.devtools.build.lib.util.SimpleLogHandleroutput_user_rootfailure_detail_ocom.google.devtools.build.lib.util.SingleLineForbatch_cpu_scheduexpand_configs_ifatal_event_bus_idle_server_taskincompatible_enable_execution_trshutdown_on_low_unlimit_coredumpwrite_command_lowindows_enable_sconnect_timeout_unix_digest_hashhost_jvm_profileinvocation_policze_util_posix.cccouldn't create Failed to write ze_util_linux.ccserver/server.stserver.starttimeCouldn't initialize byte buffer grpc.default_compression_algoritgrpc.grpclb_fallgrpc.max_receivegrpc.max_send_megrpc.resource_qugrpc.primary_usegrpc.lb_policy_ngrpc.service_con

Note the string specifying the bazel-rc path is truncated in the binary (/nix/store/3ysisg4r89zv7ig25l2q3k3g0bjxx3k7-baze, missing the trailing l-rc).  In this case it doesn't cause a problem since the hash is still intact.
Steps to reproduce the actual failure:

Build a Nix with a custom prefix.  /x/yyy/zzzz reproduces the problem (but many others do not, including some longer paths!).
Build pkgs.python3Packages.tensorflow with the sandbox enabled.  This fails to run bazel with the above error.
If you inspect the bazel binary being used, searching for /x/yyy/zzzz using strings as above, you'll find the path is truncated: /x/yyy/zzzz/store/ldg7np1ajgknzx38bhzlbdbr3z7a6d vs /x/yyy/zzzz/store/ldg7np1ajgknzx38bhzlbdbr3z7a6dzd-bazel-rc.  In this case, the last two characters of the hash are missing, which means the dependency scan fails to pick the dependency up.

We are hitting this problem using nixpkgs 21.05 and Nix 2.3.11, but I have verified the same issue affects Tensorflow+Bazel on NixOS 21.11 (it just doesn't cause a failure).  bazel_4 is affected similarly to bazel_3.
We have a patch to manually add the dependency to work around the issue, which I'll submit in a pull request.  However it should be noted that this problem could potentially affect any Nix-built C++ binary with the right flags and an 'unlucky' prefix.  Unfortunately we're not away of a general overall fix for this, aside from patching individual package expressions.
Expected behavior
One would expect the reference to be picked up from the path embedded in the binary, and bazel to run correctly both in and out of the sandbox.
Additional context
The following program can be used to reproduce the problem with just GCC:
#include <iostream>
#include <string>

struct Foo {
    Foo() : x("/x/yyy/zzzz/store/ldg7np1ajgknzx38bhzlbdbr3z7a6dzd-bazel-rc") {}
    std::string x;
};

int main()
{
    const Foo foo;
    std::cout << "FOO: " << foo.x << std::endl;
}

The failure can be reproduced with this (using GCC 10):
g++ -std=c++17 -O2 string_test.cpp
strings a.out | grep '/x/yyy/zzzz.*bazel-rc' >/dev/null && echo succeeded || echo failed

We investigated the generated assembler, and (briefly) the code uses SSE instructions to load 16-byte chunks of the string literal into memory (which is presumably why the string is truncated to 48 characters).  The remaining characters are loaded directly as constants in the code, hence they are not contiguous with the rest of the string in the binary.
The circumstances under which GCC applies the optimisation appears to vary by version and flags, but with GCC 10 we see it using -O2 and C++17 and later.  GCC 8 seems to apply it for earlier std versions. SSE instructions are presumably required (default on x86-64).
Notify maintainers
@mboes @Profpatsch
@NixOS/bazel

Looking at https://godbolt.org/z/zEaneoq7q, there is the movabs instruction with a constant
>>> bytes([0x6c, 0x65, 0x7a, 0x61, 0x62, 0x2d, 0x64, 0x7a])[::-1]
b'zd-bazel'

as described above.
Having things like that would be big bummer for hash rewriting. cc https://github.com/NixOS/rfcs/pull/17


Option to turn on account post notifications

Describe the Feature
This feature would allow users to toggle notifications for posts from selected accounts that they follow.
Attachments
No response
Describe Alternatives
No response
Additional Context
No response

Please see #2050


Add CLI parser...

Use yargs to parse command line arguments.
Add an argument for specifying the bind address.
Add an argument for specifying the bind port.
Allow the region to be specified manually.
Handle endpoints specified with and without the protocol.

Ooh, forgot to check in the package.json; will add later today.

Fixed. 😄

Thanks for being awesome @ThePumpingLemma !


No laser controller found

Hi,
after seeing what you are creating with Liberation I was really curious about ofxLaser. I compiled it under Ubuntu 22.04. And after lengthy debugging I got it to run (needed to add ofxSvg to addons.make and run make with LDFLAGS="-lusb-1.0", I also needed to add #include <stack> into libs/ofxImGui/src/ImHelpers.h). Anyway, all example run but every example shows "No laser controller found" even after clicking on Refresh controller list. I have one Etherdream2 connected to the network and can ping the IP address so, I know it's there. Any advise on how to debug this?

I found the issue ... it was related to a firewall setting.  the Etherdream is found now but the refresh rate is for some reason very slow so, the output kind of blinks. I am not sure if that is related to the fact that it runs on a virtual machine and maybe that affects the network speed.

Glad you sorted the connectivity! Blinking could be caused by so many
thing! Bad network, too many points being sent, the Scan Fail Safety system
on the laser, slow point rate...
Bad network : is the green square next to the laser in the Laser Overview
window changing colour? If it's steady green then that's good.
Too many points : does it happen on all the demos? What are you sending?
Scan Fail Safety : not sure if you know but most lasers have a system that
cut out the laser when the scanners aren't moving. It's usually a button on
the back.
Slow point rate : try changing the laser speed and point rate (you
shouldn't need to go above 30,000 ops)
Hope this helps.
On Sun, 6 Aug 2023 at 18:32, larry104 @.***> wrote:

I found the issue ... it was related to a firewall setting. the Etherdream
is found now but the refresh rate is for some reason very slow so, the
output kind of blinks. I am not sure if that is related to the fact that it
runs on a virtual machine and maybe that affects the network speed.
—
Reply to this email directly, view it on GitHub
https://github.com/sebleedelisle/ofxLaser/issues/41#issuecomment-1666928954,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAA3CERFMUOVQ6UKF3BMEDDXT7IL7ANCNFSM6AAAAAA3EOSILY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I'm not sure what you're trying to do here, sorry. It's probably something to do with 3D projection though, check the 3D example in example_LaserEffects. There may also be some issues with 3D projection.


generate virtualservice: path match type flag

By default, the command kuadrantctl generate istio virtualservice generates Istio VirtualService object with path match type exact.
http:
    - name: getCat
      match:
        - uri:
            exact: /cat
          method:
            exact: GET

OAS 3.X does not explicitly specify it, so this PR adds a command flag to support a new path match type: prefix. With the  command line option --path-prefix-match
kuadrantctl generate istio virtualservice --path-prefix-match

The VirtualService will be generated for path match type prefix.
http:
    - name: getDog
      match:
        - uri:
            prefix: /dog
          method:
            exact: GET

This behavior modifies all the operations read from the OAS. If the path match type needs to be specified per OAS operaton, it is best to explore OAS extensions.

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@8ebb58b). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #41   +/-   ##
=======================================
  Coverage        ?   29.44%
=======================================
  Files           ?       23
  Lines           ?     1233
  Branches        ?        0
=======================================
  Hits            ?      363
  Misses          ?      810
  Partials        ?       60

Continue to review full report at Codecov.

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

No review in 7 days... applying automerge if nobody reviews in 7 days well known merge policy


tools: cluster-wide troubleshooting tool

The tool identifies the most commonly observed errors.
It performs various checks (k8s, cilium) and provides hints
to fix specific issues that it has identified.
The ModuleCheck class implements the basic notion of a check.
It is pluggable in the sense that it can be extended to change
the default on-success and on-failure actions.
The ModuleCheckGroup class provides a grouping construct for
grouping related ModuleChecks. The ModuleChecks in a ModuleCheckGroup are
run in a serial manner. The execution of a ModuleCheckGroup
terminates on the first ModuleCheck failure. In other words, if a
ModuleCheck fails, all subsequent ModuleChecks in the group will be
skipped.
The initial commit contains two ModuleCheckGroups. One for Kubernetes
checks, and the other for Cilium specific checks.

Signed-off-by: Ashwin Paranjpe<EMAIL_ADDRESS>
Summary of changes:
Fixes: 2349
The clusterdebug tool can help identify the most commonly encountered
 issues in cilium deployments. The tool currently supports Kubernetes
 and Minikube clusters only.

 The tool performs various checks and provides hints to fix specific
  issues that it has identified.

@scanf Done. Unstaged the AUTHOR file changes. Updated .gitignore.

Tool looks great. We need to figure out how users should be running this, we have a couple of options:

Include it in the cilium/cilium image and provide a static binary with this tool embedded (using cpython or similar). This binary should also be released on github so non container image users can just run the plain binary.
Provide a separate container image which only includes this tool and starts it automatically. This could be achieved by putting this in a completely separate repo and refer to it from the docs or by including this via a special tag that is based on a separate Dokerfile, e.g. cilium/cilium:cluster-debug

@cilium/team Thoughts?

@tgraf Thanks for the review. I like the idea #2 (shipping this as a separate container), but I'd like to propose that we consider separating the packaging and delivery strategy (how will the user download and run the tool) in a separate PR. For now, we can build and upload the zip file to a publicly accessible location, which the users can download and simply run using the python clusterdebug.zip command. I've submitted a separate PR for the docs update here: https://github.com/cilium/cilium/pull/2356. As can be seen in that PR, there is TODO, which will be fixed after we upload the zip file. Please let me know your thoughts about this. Thanks.

Thanks for the review. I'd like to propose that we consider separating the packaging and delivery strategy (how will the user download and run the tool) in a separate PR. For now, we can build and upload the zip file to a publicly accessible location, which the users can download and simply run using the python clusterdebug.zip command. I've submitted a separate PR for the docs update here: #2356. As can be seen in that PR, there is TODO, which will be fixed after we upload the zip file. Please let me know your thoughts about this. Thanks.

That's fine. I want to make sure we don't just merge & forget.