Unexpected error. 404 page not found

We setup Selenoid container on host based on below 4 steps which listed in "Get Started" documentation:
1.Create config/browsers.json configuration file with content:
2.Pull browser Docker image:
$ docker pull selenoid/chrome
3. Option 2: start Selenoid container
docker run -d --name selenoid -p 4444:4444 -v /var/run/docker.sock:/var/run/docker.sock -v pwd/config/:/etc/selenoid/:ro aerokube/selenoid:latest-release

On host execute:
$ docker ps -a
CONTAINER ID        IMAGE                              COMMAND                  CREATED             STATUS                   PORTS                                                                      NAMES
e877bc8a06c1        aerokube/selenoid:latest-release   "/usr/bin/selenoid -…"   About an hour ago   Up About an hour         <IP_ADDRESS>:4444->4444/tcp                                                     selenoid

$ curl http://localhost:4444/
404 page not found
$ curl http://localhost:4444/status
{"total":5,"used":0,"queued":0,"pending":0,"browsers":{"chrome":{"latest":{}}}}
and then setup another container to build dotnet environment and store souce code by jenkinsfile -> dockerfile, attach jenkinsfile and dockerfile here.
In my test project, initial chrome webdriver as:
var url = "http://<IP_ADDRESS>:4444/";
driver = new RemoteWebDriver(new Uri(url), DesiredCapabilities.Chrome());
Notes: <IP_ADDRESS> is hte docker0 ip address.  Here we can see the 4444 service is up, and no page provide on http://localhost:4444, please specify how to configure my source code to get the remote web driver? Or are there any other required configurations missed? Thanks.

here is my browsers.json:
{
"chrome": {
"default": "latest",
"versions": {
"latest": {
"image": "selenoid/chrome",
"port": "4444",
"path": "/"
}
}
}
}

@Benny86 that's the expected behavior. There is no / handle in Selenoid.

How to run my case in Selenoid container?

As you suggested before, we user remotewebdriver to call 4444 service to get the webdriver in my source code:
In my test project, initial chrome webdriver as:
var url = "http://<IP_ADDRESS>:4444/";
driver = new RemoteWebDriver(new Uri(url), DesiredCapabilities.Chrome());
But currently, we got 404 page not found error in pipeline, it doesn't work for us.

@Benny86 you should the following URL with Selenoid: http://localhost:4444/wd/hub. This is done to be compatible with Selenium server.

http://localhost:4444/wd/hub, this is not for Chrome, right?

To be clear: If I setup with Chrome image, which url would be provided  in my source code to initialize remote web driver? currently :4444/ doesn't work for us.
var url = "http://<IP_ADDRESS>:4444/";
driver = new RemoteWebDriver(new Uri(url), DesiredCapabilities.Chrome());

@Benny86 Chromedriver is always handling requests at /, so the URL should be: http://localhost:4444/. Selenoid contrarily add a prefix /wd/hub - so the URL should be: http://localhost:4444/wd/hub.


Pin rake-compiler at 1.1.1 to fix ruby breakages on CI (backport to v1.43.x)

Backports #28320.

macos artifacts is remaining issue in b/209603283
distrib c# failed but shows no log


undefined method `children' for :do_find:Symbol

rubocop 0.35.1 errors when parsing this file: https://github.com/theforeman/smart-proxy/blob/develop/modules/puppet_proxy/class_scanner_eparser.rb
Specifically this bit:
def find_CallNamedFunctionExpression o
  if o.lambda
    do_find(o.lambda)
  end
end

It looks like "o.lambda" is getting misinterpreted as a lambda.
Full traceback: https://gist.github.com/brandonweeks/e3684b4b882b2b378793
Test case (credit @domcleal): https://gist.github.com/domcleal/e792c526eed7275f6b4

0.35.1 (using Parser <IP_ADDRESS>, running on ruby 2.2.3 x86_64-darwin14)

Test case (credit @domcleal): https://gist.github.com/domcleal/e792c526eed7275f6b4

https://gist.github.com/domcleal/e792c526eed7275f6b4b


Include recommended VS Code settings

especially for getting compiler errors and warnings for the whole project, not just for the file that's currently open.

+1

+1

especially for getting compiler errors and warnings for the whole project

Is this necessarily a good idea? We've seen some adverse effects in performance when people turn on global project diagnostics.

Is this necessarily a good idea?

Getting feedback faster from my code is always a good idea to me.
I didn't anticipate big effects in performance, you might be right as I don't know much about the internals of TypeScript compiler. I thought it would be doable in a reasonable perf-level considering this is ecosystems like C# has on VS Code.


Set Encryption type correctly

The Client encryption was taking values null or ssl. It was ignoring tls

@GeoSot thx :+1:


Use a cryptographically secure random generator for ULID

Currently, the ULID entropy generator is quite poor because its seed is initialized each time with  the current timestamp (but also the first part of the ID is based on the current timestamp), so it doesn't add a real entropy to the second part block ID.
In this PR I'm proposing to switch to a cryptographically secure random generator.
/cc @codesome @pstibrany @bwplotka

Why would we want that? It does not seem there is an actual issue with this. We don't use that for security.

I get that this is an improvement in the code however, so that would be refactoring, but not really security.

Improving the entropy would reduce the chances of ULID collisions (they're
already very low but with a better entropy we would get an higher
confidence).
On Tue, Feb 25, 2020, 12:38 Julien Pivotto<EMAIL_ADDRESS>wrote:

I get that this is an improvement in the code however, so that would be
refactoring, but not really security.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/prometheus/prometheus/pull/6867?email_source=notifications&email_token=AAM7QEDNTW5T6445TMHW3F3RET7MFA5CNFSM4K3FUEYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM3UKFA#issuecomment-590824724,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAM7QEF6VIGFSUY35PWANKLRET7MFANCNFSM4K3FUEYA
.

Sorry for not being clear with the initial PR description. This PR aims to
improve the entropy to avoid ULID collisions in environments were a large
number of TSDB gets compacted concurrently and there's the requirement to
have unique block IDs across all TSDB (ie. The new Cortex blocks storage).
On Tue, Feb 25, 2020, 12:41 Marco Pracucci<EMAIL_ADDRESS>wrote:

Improving the entropy would reduce the chances of ULID collisions (they're
already very low but with a better entropy we would get an higher
confidence).
On Tue, Feb 25, 2020, 12:38 Julien Pivotto<EMAIL_ADDRESS>wrote:

I get that this is an improvement in the code however, so that would be
refactoring, but not really security.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/prometheus/prometheus/pull/6867?email_source=notifications&email_token=AAM7QEDNTW5T6445TMHW3F3RET7MFA5CNFSM4K3FUEYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM3UKFA#issuecomment-590824724,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAM7QEF6VIGFSUY35PWANKLRET7MFANCNFSM4K3FUEYA
.

Mentioned discussion: https://github.com/cortexproject/cortex/issues/2069

Prometheus will never create two blocks at the same time.
Le mar. 25 févr. 2020 à 12:41, Marco Pracucci<EMAIL_ADDRESS>a
écrit :

Improving the entropy would reduce the chances of ULID collisions (they're
already very low but with a better entropy we would get an higher
confidence).
On Tue, Feb 25, 2020, 12:38 Julien Pivotto<EMAIL_ADDRESS>wrote:

I get that this is an improvement in the code however, so that would be
refactoring, but not really security.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<
https://github.com/prometheus/prometheus/pull/6867?email_source=notifications&email_token=AAM7QEDNTW5T6445TMHW3F3RET7MFA5CNFSM4K3FUEYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM3UKFA#issuecomment-590824724
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AAM7QEF6VIGFSUY35PWANKLRET7MFANCNFSM4K3FUEYA
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/prometheus/prometheus/pull/6867?email_source=notifications&email_token=AACHHJX2SY3MPENOG7JYRPTRET7XNA5CNFSM4K3FUEYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM3USDA#issuecomment-590825740,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACHHJRRLT5VK6X7DDZ2433RET7XNANCNFSM4K3FUEYA
.

Sure, but it's inside TSDB and many other projects use the Compactor package.

I do not think it is wise to use compactor in different go routines, even
for dependencies. Afaik Prometheus does not do this.
Le mar. 25 févr. 2020 à 13:20, Bartlomiej Plotka<EMAIL_ADDRESS>a écrit :

Sure, but it's inside TSDB and many other projects use the Compactor
package.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/prometheus/prometheus/pull/6867?email_source=notifications&email_token=AACHHJUHNQGD6XHQ4M63EDLREUEG7A5CNFSM4K3FUEYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM3X5DA#issuecomment-590839436,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACHHJSC3IYZWGPNVHX4G3DREUEG7ANCNFSM4K3FUEYA
.

I don't think we should be that strict here, this is a reasonable change.

Yes it's a nice refactoring. I assume that we already seed crypto/Rand.
Le mar. 25 févr. 2020 à 13:31, Brian Brazil<EMAIL_ADDRESS>a
écrit :

I don't think we should be that strict here, this is a reasonable change.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/prometheus/prometheus/pull/6867?email_source=notifications&email_token=AACHHJVLGK7IGATP3GNL26TREUFSRA5CNFSM4K3FUEYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM3Y5IQ#issuecomment-590843554,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACHHJQW3XFXJLTK2OPYUZDREUFSRANCNFSM4K3FUEYA
.

Yes it's a nice refactoring. I assume that we already seed crypto/Rand.

Go runtime makes sure it's secure (uses OS-provided ways).

Thanks!

Well... @roidelapluie you merged PR that had still unaddressed comment. ):

Maybe it's my bad: I sometimes mark PR a green approved but still with One comment and LGTM - maybe I should mark it green only when fully approved?

Oh sorry. Indeed I misunderstood your approval.


Take the Docs out of the Controller

I don't like having all the swagger-docs DSL inside the controllers. Would it be possible to extract the docs into separate files? A proposal would be to use them "magically" like that:
# app/controllers/some_controller.rb
class SomeController < SomeBaseController
  has_swagger_docs if Rails.env.docs?

  ....
end

The method has_swagger_docs would then automatically search for a file named after some convention to be defined. It would contain what is currently the DSL in the controller files:
# docs/swagger/some_controller_docs.rb
swagger_controller :some, "Some Resource"

swagger_api :index do
  ...
end

I tried to implement this extension by myself, but I think I'm not experienced enough with ruby meta-programming.

I also like that idea. But I just worried that splitting the code and the docs will cause them to go out of sync more easily.

What about including it into the controller in a way the IDE supports? For example like that:
# app/controllers/some_controller.rb
class SomeController < SomeBaseController
  include SwaggerDocs::SomeController if Rails.env.docs?

  ....
end

Like that the IDE will guide you to the correct file.

+1 for taking docs out of controller

This may qualify as an abuse of concerns, but it seems to work:
# app/controllers/concerns/swagger_docs/books.rb
# The SwaggerDocs namespace isn't required here, but I prefer using it for separation from my other "concerns"
module SwaggerDocs::Books
  extend ActiveSupport::Concern

  included do
    swagger_controller :books, "Book Management"

    swagger_api :index do
      # blah blah
    end

     # etc
  end
end

Then my controller only contains:
# app/controllers/books_controller.rb
class BookController < BaseController
  include SwaggerDocs::Books
end

I already tried some thing like that. But it doesn't work with concerns:
# app/controllers/giscockpit/api/v1/support/geographic_controller.rb
module Giscockpit
  class Api::V1::Support::GeographicController < Giscockpit::Api::ApplicationController
    include SwaggerDocs::Api::V1::Support::Geographic

    # ...

and
# app/controllers/giscockpit/concerns/swagger_docs/api/v1/support/geographic.rb
module SwaggerDocs::Api::V1::Support::Geographic
  extend ActiveSupport::Concern

  included do
    swagger_controller :geographic, 'Geographic'

    swagger_api :gach do
      # ...
    end
  end
end

But it does work if I put the DSL part into the controller itself. As api_base_controller I've configured Giscockpit::Api::ApplicationController.

Closing as swagger-docs was designed to generate from the controllers.

Been looking for solution as well since my controllers were getting messy. krevels's direction worked for me.

@richhollis Can you please suggest some workaround if available for this. Cause for Rails controllers are getting over crowded with swagger code.

krevels's  solution worked.


docs(installation) add TrueNas installation guide

There's not much to go about here; simply if using TrueNas Scale; a user only has to add the TrueCharts catalog to it and then be able to install bitmagnet.
we also manage the stack with setting up CNPG; cloudnative-postgres + offer gluetun a vpn addon that can be enabled on a per app basis.

Hi, I'm happy to add a link to the TrueCharts package but I can't accept the PR in this form as it reads too much like an advert and is too dominating on the installation page. I've created another PR here with a format I'd be happy with: https://github.com/bitmagnet-io/bitmagnet/pull/181

While I agree it's too much fluff and the reference of "we" was weird.
I find it sad you deny a complete step-by-step guide for another platform.
I've no idea what the "dominating" comes down to.

I find it sad you instantly deny a complete step-by-step guide for another platform

I'm not denying a step-by-step guide, but I've never used TrueNas or TrueCharts and it would be me who ends up having to support any instructions - just put it on the TrueCharts package page where it belongs!

I find it sad you instantly deny a complete step-by-step guide for another platform

I'm not denying a step-by-step guide, but I've never used TrueNas or TrueCharts and it would be me who ends up having to support any instructions - just put it on the TrueCharts package page where it belongs!

Obviously you could just point users at the fact we've support staff/volunteers ready to help out if it doesn't work.
Anyway, we'll not push you any further with trying to support your project.


Serialize multiple keys into one enum

Hi,
this is more of a question if possible, in any way i could easily manipulate the json a bit before deserializing.
The problem is, that i receive a json with two fields among others that have a relation to each other and only allow certain combinations, e.g.:
{
    "field1": "A",
    "field2": "B"
}

Now only some combinations are possible like AA, AB, BB and i want to combine those into an enum with all possible combinations. I would need a visitor that visits both fields.
Target enum being like:
enum Field {
 AA = 0,
 AB = 1,
 BB = 2,
 Invalid = 3
}

As is said i can manipulate the json to combine those fields into one but i'm curious if this would be possible without this step

Please take this question to one of the resources listed in https://github.com/serde-rs/serde/tree/v1.0.135#getting-help. Sorry that no one was able to provide guidance here.


Autorest Regen Preview to 3.0.0-alpha.20240204.3 by Josh Love from refs/pull/4174/head

Triggered from https://github.com/Azure/autorest.csharp/pull/4174

API change check
API changes are not detected in this pull request.


eslint does not report that CSS file is not included or not used

In React, you often create a component in a JS file, e.g. MyComponent.js, and then create a companion CSS file, e.g. MyComponent.css . I was surprised that eslint does not report anything if you fail to import your CSS file in your MyComponent.js file:

import "./MyComponent.css";
This can be obvious sometimes, but often life can go on for a while before you realize that you never actually imported the CSS file.  :-)

I was surprised that I could have CSS files in my React project that were not included by any JS file, but eslint did not report  "MyComponent.css is not included in a JS file" .

This approach is "CSS Modules", and is very much not universal. It would not make any sense whatsoever for this general-purpose React plugin to have any special handling of imports of something node itself doesn't support.
You should not be surprised by that - CSS files are not actually importable, so it wouldn't make sense to warn on a non-imported CSS file.

It’s the method suggested in the official React docs and seems to be, by far, the dominant approach.
React does not have an opinion about how styles are defined; if in doubt, a good starting point is to define your styles in a separate *.css file as usual and refer to them using className

“Refer to them using className” is in no way “import them using nonstandard webpack-only loaders”.

Ok. What about reporting if className=“foo” actually actually has access to foo?

That’s impossible, since the source of that css could be from literally anywhere - again, you’re assuming that a local .css file has any necessary affect on the resulting page.


Better performance

I performed a benchmark against MessagePack.
    public class TradeProp
    {
        public string Ticker { get; set; }
        public bool IsValid { get; set; }
        public DateTime DateAndTime { get; set; }
        public float Price { get; set; }
        public uint Size { get; set; }
        public EExchange Exchange { get; set; }
        public ETradeCondition Condition { get; set; }
        public bool HasQuotes { get; set; }
        public QuoteProp Nbbo { get; set; }
    }

    public class QuoteProp
    {
        public string Ticker { get; set; }
        public DateTime DateAndTime { get; set; }
        public float Bid { get; set; }
        public uint BidSize { get; set; }
        public EExchange BidExchange { get; set; }
        public float Ask { get; set; }
        public uint AskSize { get; set; }
        public EExchange AskExchange { get; set; }
    }

Collection : 142,725 trades
Iteration : 10

-----------------------     MESSAGE PACK - TypelessContractless
 - size (byte) => 27,573,212
 - serialize (ms) => avg: 124 | min: 89 | max: 188
 - deserialize (ms) => avg: 219 | min: 158 | max: 471

-----------------------     MESSAGE PACK (LZ4) - TypelessContractless
 - size (byte) => 2,188,703
 - serialize (ms) => avg: 101 | min: 95 | max: 112
 - deserialize (ms) => avg: 192 | min: 168 | max: 253

-----------------------     CERAS (prop) - Without Attributes
 - size (byte) => 5,870,497
 - serialize (ms) => avg: 189 | min: 177 | max: 220
 - deserialize (ms) => avg: 263 | min: 238 | max: 337

-----------------------     CERAS (field) - Without Attributes
 - size (byte) => 5,870,497
 - serialize (ms) => avg: 167 | min: 154 | max: 206
 - deserialize (ms) => avg: 216 | min: 202 | max: 225

Collection : 1,340,724 trades
Iteration : 10

-----------------------     MESSAGE PACK - TypelessContractless
 - size (byte) => 259,002,992
 - serialize (ms) => avg: 869 | min: 822 | max: 1,172
 - deserialize (ms) => avg: 2,084 | min: 1,713 | max: 2,268

-----------------------     MESSAGE PACK (LZ4) - TypelessContractless
 - size (byte) => 20,851,685
 - serialize (ms) => avg: 890 | min: 881 | max: 907
 - deserialize (ms) => avg: 2,074 | min: 1,869 | max: 2,592

-----------------------     CERAS (prop) - Without Attributes
 - size (byte) => 59,315,386
 - serialize (ms) => avg: 1,931 | min: 1,900 | max: 2,031
 - deserialize (ms) => avg: 3,038 | min: 2,442 | max: 3,736

-----------------------     CERAS (field) - Without Attributes
 - size (byte) => 59,315,386
 - serialize (ms) => avg: 1,688 | min: 1,650 | max: 1,760
 - deserialize (ms) => avg: 2,655 | min: 2,041 | max: 3,575

Hi, what benchmarking lib was that done with?
Are you using the known types collection?

Hi, what benchmarking lib was that done with?

Personal system with Stopwatch and several iteration

Are you using the known types collection?

No, no attributes for 2 lib

Some more questions:
Did you compile message pack from source? Or use a compiled dll?
Was this done in debug or release mode?
Do you keep the very first iteration? (that's where some warmup takes place when you don't use KnownTypes)
In any case, once I've completed work on the next feature I'll take an in-depth look at performance again and see where the biggest gains can be had.

Some more questions:
Did you compile message pack from source? Or use a compiled dll?

from nuget

Was this done in debug or release mode?

Always Realease

Do you keep the very first iteration? (that's where some warmup takes place when you don't use KnownTypes)

Yes

In any case, once I've completed work on the next feature I'll take an in-depth look at performance again and see where the biggest gains can be had.

Performance remains very acceptable
The size of the binary is good too
The big plus is the lack of attributes and the support of the inheritance.


Demo doesn't seem to work

There is never a feedback

Unfortunately, I ran out of OpenAI credits to support the demo. I'll add an option of plugging in a key soon-ish.


TP-540 Create pagination component

Summary
JIRA Ticket: TP-540
Adding the pagination component and then using it for the additional codes list page.
Changes

Created pagination component
Added pagination component to the additional codes list page
Paginated additional codes for API  and UI view
Removed Auth for ease of use until SSO becomes a thing

Screenshots

This is probably the first PR that will probably have things to talk about! I'm not 100% sure how understandable the logic is for generating the pagination links, I'm happy to put a comment in the file. I also do not know if it might be worth trying to test it from a few more angles. Feel free to comment if you think there are tests i'm missing.

This is probably the first PR that will probably have things to talk about! I'm not 100% sure how understandable the logic is for generating the pagination links, I'm happy to put a comment in the file. I also do not know if it might be worth trying to test it from a few more angles. Feel free to comment if you think there are tests i'm missing.

Altered the pagination logic to be more similar to what Nick had done previous (It looks more understandable), if you both want to scan it again.

Altered the pagination logic to be more similar to what Nick had done previous (It looks more understandable), if you both want to scan it again.

Just updated the branch, will see if the tests pass

Just updated the branch, will see if the tests pass

Codecov Report

Merging #138 (3f6d7be) into master (cf47b82) will decrease coverage by 0.73%.
The diff coverage is 85.71%.

@@            Coverage Diff             @@
##           master     #138      +/-   ##
==========================================
- Coverage   58.70%   57.96%   -0.74%
==========================================
  Files         157      157
  Lines        9768     9739      -29
  Branches      733      736       +3
==========================================
- Hits         5734     5645      -89
- Misses       3859     3918      +59
- Partials      175      176       +1

Impacted Files
Coverage Δ

additional_codes/views.py
76.66% <42.85%> (-10.84%)
:arrow_down:

common/pagination.py
100.00% <100.00%> (ø)

common/tests/test_pagination.py
100.00% <100.00%> (ø)

exporter/tests/test_exporter_commands.py
33.33% <100.00%> (-37.72%)
:arrow_down:

exporter/tests/test_exporter_tasks.py
44.44% <100.00%> (-55.56%)
:arrow_down:

exporter/storages.py
60.00% <0.00%> (-40.00%)
:arrow_down:

exporter/tasks.py
80.00% <0.00%> (-20.00%)
:arrow_down:

common/renderers.py
86.66% <0.00%> (-13.34%)
:arrow_down:

... and 7 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #138 (3f6d7be) into master (cf47b82) will decrease coverage by 0.73%.
The diff coverage is 85.71%.

@@            Coverage Diff             @@
##           master     #138      +/-   ##
==========================================
- Coverage   58.70%   57.96%   -0.74%
==========================================
  Files         157      157
  Lines        9768     9739      -29
  Branches      733      736       +3
==========================================
- Hits         5734     5645      -89
- Misses       3859     3918      +59
- Partials      175      176       +1

Impacted Files
Coverage Δ

additional_codes/views.py
76.66% <42.85%> (-10.84%)
:arrow_down:

common/pagination.py
100.00% <100.00%> (ø)

common/tests/test_pagination.py
100.00% <100.00%> (ø)

exporter/tests/test_exporter_commands.py
33.33% <100.00%> (-37.72%)
:arrow_down:

exporter/tests/test_exporter_tasks.py
44.44% <100.00%> (-55.56%)
:arrow_down:

exporter/storages.py
60.00% <0.00%> (-40.00%)
:arrow_down:

exporter/tasks.py
80.00% <0.00%> (-20.00%)
:arrow_down:

common/renderers.py
86.66% <0.00%> (-13.34%)
:arrow_down:

... and 7 more

Continue to review full report at Codecov.

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


If vendored assimp is present, always prefer that

The existing behavior is to always prefer the system's assimp package if it is sufficient, even if the vendored assimp package is present. This is very confusing behavior when combined with FORCE_BUILD_VENDOR_PKG.
Additionally, the double find_package calls can result in strange behavior if both calls create or modify targets, as targets created by the first call will be present when the second call tries to create them.

Linux
Linux (forced vendor)
Linux-aarch64
Linux-rhel
Windows

@ros-pull-request-builder retest this


Proposal: ramp-up request rate

In this AWS document: http://aws.amazon.com/articles/1636185810492479, it states:
"We recommend that you increase the load at a rate of no more than 50 percent every five minutes. Both step patterns and linear patterns for load generation should work well with Elastic Load Balancing"
I thus propose a ramp-up with an the interface @tsenart has proposed on the project Gitter chat:
vegeta attack -plan="10:20s 100:20s 1000:20s"

With some thinking to do about the command line interface, I'm in favour of this proposal.

+1

Hi @tsenart
The ramp-up is becoming increasingly important to us. I wondered if you could give me some pointers, so I could attempt to implement this myself?

Hello @aidylewis,
I'm sorry, I haven't had time to work on Vegeta recently. I took 2 hours to implement this feature in the plans branch. It's not well tested and probably needs some work with a clearer mind to get all the edge cases and quality sorted, but you can check it out, build it, test it, etc :-)

Here's an example invocation:
echo "GET http://:6060" | ./vegeta attack -timeout=6s -duration=20s -plan="100@2s 200@4s 400@6s 500@8s 600@10s" | tee result.bin | ./vegeta report

This is fantastic. We appreciate this so much. I'll test it out tomorrow. Thanks.

For anyone else who would like to test this branch:
install https://github.com/mitchellh/gox
go get github.com/tsenart/vegeta
cd $GOPATH/src/github.com/tsenart/vegeta
git checkout plans
gox -osarch="linux/amd64"

Hi @tsenart

We cannot add individuals plans of the same duration.

-plan="100@20s 200@20s”
> 2016/02/04 09:15:02 bad timing order in plan "100@20s 200@20s"

How is the ramp-up supposed to work?

Will the below start off at 100 r/s and then after ten seconds ramp-up to 200 r/s?
echo "GET http://www.stage.bbc.co.uk/news" | vegeta attack -duration=30s -plan="100@10s 200@20s" > results.bin

We never make it to 200 r/s.
Requests      [total, rate]            3989, 133.03
Duration      [total, attack, wait]    29.999565631s, 29.985s, 14.565631ms

Do you think we need a duration flag when we have a plan?

I think you misunderstood the semantics. In a plan, you define relative
points in time where the rate should change. For instance, "100@10s 200@20s"
means that at 10s into the attack, the rate will change to 100 and at 20s
into the attack, the rate will change to 200.
The duration is relevant due to these semantics.
On Thu, 4 Feb 2016 at 10:56, aidylewis<EMAIL_ADDRESS>wrote:

Hi @tsenart https://github.com/tsenart

We cannot add individuals plans of the same duration.

-plan="100@20s 200@20s”

2016/02/04 09:15:02 bad timing order in plan "100@20s 200@20s"

How is the ramp-up supposed to work?

Will the below start off at 100 r/s and then after ten seconds ramp-up to
200 r/s?
echo "GET http://www.stage.bbc.co.uk/news" | vegeta attack -duration=30s -plan="100@10s 200@20s" > results.bin
We never make it to 200 r/s.
Requests      [total, rate]            3989, 133.03
Duration      [total, attack, wait]    29.999565631s, 29.985s, 14.565631ms

Do you think we need a duration flag when we have a plan?

—
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/issues/163#issuecomment-179739572.

Hi @tsenart
Thanks for your response.
If at 10s into the attack the rate change will be 100, what will be the rate from 0 - 10s?

As it stands, it would be 100, since you didn't specify any previous rate. To do so, you can specify a rate at t=0. e.g. 50@0 100@10s 200@20s
As you know, I did this in two rushed hours. Please give me any feedback you have on the interface, expectations, etc.

The interface is sensible, I just misunderstood it. I'll do some testing and ask @DaveBlooman from News to do some testing/give feedback as they are also interested in the functionality.

In fact, I think we need an interface where we specify the ramp-up over a specific period of time and the constant rate over a specific period of time and remove the duration. But I am not sure how to convert that into command line options.
rampto=200for5m constant=200for15m # which is ugly
Thoughts @daveblooman & @PoornimaGunisetti?

I don't see how you can't achieve that with the current interface.
On Thu, 4 Feb 2016 at 14:27, aidylewis<EMAIL_ADDRESS>wrote:

In fact, I think we need an interface where we specify the ramp-up over a
specific period of time and the constant rate over a specific period of
time and remove the duration. But I am not sure how to convert that into
command line options.
rampto=200for5m constant=200for15m # which is ugly
Thoughts @daveblooman https://github.com/daveblooman &
@PoornimaGunisetti?
—
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/issues/163#issuecomment-179834800.

We can make it work with current interface as 50@0 100@10s 200@20s 200@20m

Did you mean 2000@20m? Because if it's 200@20m then there would be no
change from 200@20s.
On Thu, 4 Feb 2016 at 14:30, Poornima Gunisetti<EMAIL_ADDRESS>wrote:

We can make it work with current interface as 50@0 100@10s 200@20s 200@20m
—
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/issues/163#issuecomment-179836885.

Nope I meant 200@20m only as we need it to ramp up within first few seconds and there after wait for few minutes (constant rate).
In case we do not put 200@20s and 200@20m, it will take 20 minutes to ramp up to 200 which is not something we need. Correct me if I am wrong in understanding @aidylewis requirement here!

You can drop the last one. 50@0 100@10s 200@20s with a large enough
attack duration should do the trick.
On Thu, 4 Feb 2016 at 14:37, Poornima Gunisetti<EMAIL_ADDRESS>wrote:

Nope I meant 200@20m only as we need it to ramp up within first few
seconds and there after wait for few minutes (constant rate).
In case we do not put 200@20s and 200@20m, it will take 20 minutes to
ramp up to 200 which is not something we need. Correct me if I am wrong in
understanding @aidylewis https://github.com/aidylewis requirement here!
—
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/issues/163#issuecomment-179842961.

Cool, makes sense. But what if we need constant rate between ramp up? How can we achieve that?

Ignore me, I just realised it is the time at which "ramp up will occur" rather than "ramping up" time.

Yes, the interface is fine. We'll do some testing.

The attack rate between plan transitions is always constant. So for "50@0
100@10s 200@20s" with an attack duration of 30 min, the rates would be.
0s until 10s: 50
10s until 20s: 100
20s until 30m: 200
On Thu, 4 Feb 2016 at 14:43, Poornima Gunisetti<EMAIL_ADDRESS>wrote:

Cool, makes sense. But what if we need constant rate between ramp up? How
can we achieve that?
—
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/issues/163#issuecomment-179846384.

Example:
shell_1
echo "GET http://www.stage.bbc.co.uk/news" | vegeta attack -duration=80s -plan="5@0 10@30s 20@60s" > results.bin

shell_2
while true; do cat results.bin | vegeta report ; sleep 2; done

In the above attack, Vegeta is not managing to reach 10 r/s from 30s to 60s and we never reach 20 r/s (even though we have given 60 seconds to achieve this throughput).

How are you verifying this?
On Thu, 4 Feb 2016 at 15:44, aidylewis<EMAIL_ADDRESS>wrote:

In the above attack, Vegeta is not managing to reach 10 r/s from 30s to
60s and we never reach 20 r/s (even though we have given 60 seconds to
achieve this throughput).
—
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/issues/163#issuecomment-179877022.

Using the above bash loop which pipes the results.bin into the Vegeta report.

Although, I can't see it in the code, you probably average the current total rate, when I am thinking it is the current rate.

No. It's the average rate, not the last one.
On Thu, 4 Feb 2016 at 19:37, aidylewis<EMAIL_ADDRESS>wrote:

Although, I can't see it in the code, you probably average the current
total rate, when I am thinking it is the current rate.
—
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/issues/163#issuecomment-179990291.

My fault. I will try tcpflow or something tomorrow.

I am using httpry on a OS X network interface at 1 second intervals.
sudo httpry -i en0 -s -t 1

We don't get to 10 r/s between 30 - 60 secs, and don't reach 20 r/s.
echo "GET http://www.stage.bbc.co.uk/news" | vegeta attack -duration=120s -plan="5@0 10@30s 20@60s" > results.bin

I'm not sure that tool is measuring the right thing right. Here's a short Go server which should show you how many requests per second it is receiving.
package main

import (
	"log"
	"net/http"
	"sync/atomic"
	"time"
)

func main() {
	count := uint64(0)
	tick := time.NewTicker(time.Second)
	http.ListenAndServe(":6060", http.HandlerFunc(
		func(w http.ResponseWriter, r *http.Request) {
			select {
			case <-tick.C:
				log.Printf("Rate: %d", atomic.SwapUint64(&count, 0))
			default:
				atomic.AddUint64(&count, 1)
			}
		},
	))
}

Very nice.
This is the command I am running:
echo "GET http://localhost:6060" | ./vegeta attack -duration=60s -plan="50@0 100@20s 200@30s" > results.bin

This is the log
2016/02/08 11:35:54 Rate: 0
2016/02/08 11:35:54 Rate: 17
2016/02/08 11:35:55 Rate: 49
2016/02/08 11:35:56 Rate: 49
2016/02/08 11:35:57 Rate: 49
2016/02/08 11:35:58 Rate: 49
2016/02/08 11:35:59 Rate: 49
2016/02/08 11:36:00 Rate: 49
2016/02/08 11:36:01 Rate: 49
2016/02/08 11:36:02 Rate: 49
2016/02/08 11:36:03 Rate: 49
2016/02/08 11:36:04 Rate: 49
2016/02/08 11:36:05 Rate: 49
2016/02/08 11:36:06 Rate: 49
2016/02/08 11:36:07 Rate: 49
2016/02/08 11:36:08 Rate: 49
2016/02/08 11:36:09 Rate: 49
2016/02/08 11:36:10 Rate: 49
2016/02/08 11:36:11 Rate: 49
2016/02/08 11:36:12 Rate: 49
2016/02/08 11:36:13 Rate: 49
2016/02/08 11:36:14 Rate: 67
2016/02/08 11:36:15 Rate: 99
2016/02/08 11:36:16 Rate: 99
2016/02/08 11:36:17 Rate: 99
2016/02/08 11:36:18 Rate: 99
2016/02/08 11:36:19 Rate: 99
2016/02/08 11:36:20 Rate: 99
2016/02/08 11:36:21 Rate: 99
2016/02/08 11:36:22 Rate: 99
2016/02/08 11:36:23 Rate: 99
2016/02/08 11:36:24 Rate: 137
2016/02/08 11:36:25 Rate: 199
2016/02/08 11:36:26 Rate: 199
2016/02/08 11:36:27 Rate: 199
2016/02/08 11:36:28 Rate: 199
2016/02/08 11:36:29 Rate: 199
2016/02/08 11:36:30 Rate: 199
2016/02/08 11:36:31 Rate: 199
2016/02/08 11:36:32 Rate: 199
2016/02/08 11:36:33 Rate: 199
2016/02/08 11:36:34 Rate: 199
2016/02/08 11:36:35 Rate: 199
2016/02/08 11:36:36 Rate: 199
2016/02/08 11:36:37 Rate: 199
2016/02/08 11:36:38 Rate: 199
2016/02/08 11:36:39 Rate: 199
2016/02/08 11:36:40 Rate: 199
2016/02/08 11:36:41 Rate: 199
2016/02/08 11:36:42 Rate: 199
2016/02/08 11:36:43 Rate: 199
2016/02/08 11:36:44 Rate: 199
2016/02/08 11:36:45 Rate: 199
2016/02/08 11:36:46 Rate: 199
2016/02/08 11:36:47 Rate: 199
2016/02/08 11:36:48 Rate: 199
2016/02/08 11:36:49 Rate: 199
2016/02/08 11:36:50 Rate: 199
2016/02/08 11:36:51 Rate: 199
2016/02/08 11:36:52 Rate: 199
2016/02/08 11:36:53 Rate: 199

Some cursory analysis suggests that this feature has passed.

Hi @tsenart
Would you like to merge the code with master and I could give a PR with some documentation?

Hi there,
I need to spend sometime writing tests and thinking about the API before
considering this done. I hope you're not blocked by this though.
On Wed, 10 Feb 2016 at 11:19, aidylewis<EMAIL_ADDRESS>wrote:

Hi @tsenart https://github.com/tsenart
Would you like to merge the code with master and I could give a PR with
some documentation?
—
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/issues/163#issuecomment-182295394.

Not blocked. Give me a shout, if I can help with anything, as I am becoming more comfortable with Go code. Thank you.

So, after having this problem loaded in my mind, and taking a step back, I realised that it's really easy to replicate this feature with a very very simple shell script. For instance:
#!/bin/bash

set -euo pipefail

for rate in 50 100 150 300; do
  echo "GET http://:6060" | ./vegeta attack -rate="$rate" -duration=5s > "results-$rate.bin"
done

./vegeta report -inputs="$(echo results-*.bin | tr ' ' ',')"

@aidylewis: Do you see a reason why you'd want to have this feature in Vegeta still? I think the extra code complexity and the code API breakage offsets the convenience.

I really like this approach, but how would we associate a variable length of duration with rate?

@aidylewis: Here are two different ways.
#!/bin/bash

set -euo pipefail

rates=(50 100 150 300)
durations=(2s 4s 6s 8s)

for i in $(seq 0 3); do
  echo "GET http://:6060" | vegeta attack -rate="${rates[$i]}" -duration="${durations[$i]}" > "results-${i}.bin"
done

vegeta report -inputs="$(echo results-*.bin | tr ' ' ',')"

#!/bin/bash

set -euo pipefail

echo "GET http://:6060" > targets.txt
vegeta attack -rate=50 -duration=2s > results.1.bin
vegeta attack -rate=100 -duration=4s > results.2.bin
vegeta attack -rate=150 -duration=6s > results.3.bin
vegeta attack -rate=300 -duration=8s > results.4.bin
vegeta report -inputs="$(echo results.*.bin | tr ' ' ',')"

Very good. The ability to pass in multiple result bins to the report is a real winner. Thanks for your help.

May I consider this issue closed or do you think it'd be worth documenting this method more thoroughly?

Hi Tomas,
Yes, I would consider this now closed. I will submit a PR with some documentation in the morning and you can tell me what you think. Many Thanks.

Hi @tsenart
I have been away for a couple of days. I don't mind writing documentation on this (e.g. a 'Tips' wiki), but users can also search the repo and get your answers via these threads. WDYT?

A tutorials / usage wiki would be amazing! Sounds good to me :-)
On Wed, 17 Feb 2016 at 10:40, aidylewis<EMAIL_ADDRESS>wrote:

Hi @tsenart https://github.com/tsenart
I have been away for a couple of days. I don't mind writing documentation
on this (e.g. a 'Tips' wiki), but users can also search the repo and get
your answers via these threads. WDYT?
—
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/issues/163#issuecomment-185119068.

I forked the project and started a wiki, but the Wiki changes don't seem to show in the git logs.
Here is what I have anyway:
https://github.com/aidylewis/vegeta/wiki/Tips-and-Tricks

Was -plan deprecated?


Next.js example build problem.

The Next.js example of Material-UI is not built properly. It throws an Error: Minified React error 321

[x ] The issue is present in the latest release.
[x ] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
When I try to create an optimized build and start it with the commands below:
npm install
npm run build
npm run start

It throws the error below:
Automatically optimizing pages .
Error occurred prerendering /404.html: Error: Minified React error #321; visit https://reactjs.org/docs/error-decoder.html?invariant=321 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

Expected Behavior 🤔
It should create an optimized build for next.js deployment.

Steps to Reproduce 🕹

Steps:

clone next.js example

curl https://codeload.github.com/mui-org/material-ui/tar.gz/master | tar -xz --strip=2  material-ui-master/examples/nextjs
cd nextjs
npm install
npm run dev

Try to create an optimized build

next build
next start

Context 🔦
Your Environment 🌎

Tech
Version

Material-UI
v4.7.?

React
16.12.0

Browser
Chrome

TypeScript

etc.

Something if off with your node environment. I would recommend to clear your node_module cache and to try upgrade your tools.


Be compatible with Node.js 0.10

This will transpile lib/ down to Node 0.10 compatible syntax before publishing.
This supports all the way down to node 0.10, but that version comes with npm1.4. pnpm will work just fine with it, but to get support for shrinkwrap they'd need to upgrade to npm@2.

Related: #69

this is more or less ready, but i'm really interested to see how publishing to pnpm-legacy can be automated here. @davej

@rstacruz: Haven't tried it pub my guess is that you could add something like this to your prepublish script
{
  "name": "pnpm",
  "scripts": {
    "prepublish": "node_modules/babel-cli/bin/babel.js . --out-dir babel && cd babel && npm publish"
  },
  "babel": {
    "presets": ["es2015"]
  }
}

The idea is that the babel dir would have a package.json file for pnpm-legacy. The babel dir would also be ignored when publishing npmn (because it's not part of the files array).
You may need to nest the dirs if babel overwrites the package.json in the babel directory but I think it should basically work.

Ouch, that's even more complicated, but I guess that gets around the restriction of certain deps not being compatible with node0.10 (eg, got@6). Also that's probably better as postpublish.
On February 2, 2016 at 2:54:33 AM, Dave Jeffery<EMAIL_ADDRESS>wrote:
@rstacruz: Haven't tried it pub my guess is that you could add something like this to your prepublish script
{
"name": "pnpm",
"scripts": {
"prepublish": "node_modules/babel-cli/bin/babel.js . --out-dir babel && cd babel && npm publish"
},
"babel": {
"presets": ["es2015"]
}
}
The idea is that the babel dir would have a package.json file for pnpm-legacy. The babel dir would also be ignored when publishing npmn (because it's not part of the files array).
You may need to nest the dirs if babel overwrites the package.json in the babel directory but I think it should basically work.
—
Reply to this email directly or view it on GitHub.

Another thought...
Add the devDeps and the babel presets to ./babel/package.json instead. Would be a lot cleaner. Your postpublish would be something like "cd babel && npm install && npm publish" then. You could do all the babel stuff in pnpm-legacy.

Okay, I think I'll make a call on this and have pnpm publish a transpiled legacy-compatible version.

maintaining another babel-legacy/package.json will be more maintenance burden. it means every time a package is added or updated, it'll have to be updated manually.

this also makes greenkeeper.io a bit useless for us, as a side effect of the above.

another babel-legacy/package.json to maintain will mean another npm install to do for developers... hilariously and ironically making it slower for us to get started in development.

I wouldn't even want to think about what a mess travis testing will be in that case.

having a pnpm-legacy npm module would mean fragmentation. those who will choose to programatically use pnpm will likely opt for pnpm-legacy while CLI users will use pnpm... I wouldn't want to deal with problems only appearing in one package but not the other.

a downgraded got@5 isn't so bad, really. it has a happy side effect of making ENOTFOUND (can't find registry.npmjs.org) retriable, which can happen in some cases with pnpm's high concurrency model.

thanks for the inputs @davej, sorry I'd have to go against your preferences here but ultimately, a separate package means burden on both the developers AND the users. had it not been for your input, i'd probably have neglected some edge cases, so thank you for all your help :+1:

Cool, no problem.
By the way, the only reason that you would need to maintain a second version of package.json is because of the issue with the got dependency. That makes it less straight-forward.
Otherwise you could just add pnpm as the only dependency to pnpm-legacy and use babel to transpile node_module/pnpm but not the sub-deps (it's a one-liner). Your index.js would just reference the babelified node_modules/pnpm dir.
I guess you could also transpile the got module to get around maintaining separate package.jsons... Anyhow, sounds like decision is made. :-)

Just a final thing, it's best to use external source maps instead of inlining. It's minimal but there is a small performance hit. AFAIK, *.map files are usually not read unless there is a stack trace so it's more efficient to have separate files.


[supply] can not find a specific release version to promote an application

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
If you pass an application version code which has already marked as Superseded in Google Play Console to the parameter version_code you'll get the error: Track 'internal' doesn't have any releases
According to documentation the supply command should work with version_code parameter to promote the specific application version.
Despite it the supply command promotes only the last uploaded version in the track scope.
Command executed
fastlane android rollout
Complete output when running fastlane, including the stack trace and command used

 DEBUG [2023-04-06 16:08:39.35]: Fetching a new access token from Google...
WARN [2023-04-06 16:08:40.72]: Lane Context:
INFO [2023-04-06 16:08:40.72]: {:DEFAULT_PLATFORM=>:android, :PLATFORM_NAME=>:android, :LANE_NAME=>"android rollout"}
ERROR [2023-04-06 16:08:40.72]: Track 'internal' doesn't have any releases
INFO [2023-04-06 16:08:40.72]: Successfully generated documentation at path '/Users/.../android/fastlane/README.md'
+------+------------------+-------------+
|           fastlane summary            |
+------+------------------+-------------+
| Step | Action           | Time (in s) |
+------+------------------+-------------+
| 1    | opt_out_usage    | 0           |
| 2    | default_platform | 0           |
| 💥   | supply           | 1           |
+------+------------------+-------------+
ERROR [2023-04-06 16:08:40.73]: fastlane finished with errors
bundler: failed to load command: fastlane (/usr/local/bin/fastlane)
FastlaneCore::Interface::FastlaneError: [!] Track 'internal' doesn't have any releases
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane_core/lib/fastlane_core/ui/interface.rb:141:in user_error!'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in method_missing'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/supply/lib/supply/uploader.rb:194:in promote_track'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/supply/lib/supply/uploader.rb:29:in perform_upload'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/actions/upload_to_play_store.rb:33:in run'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/runner.rb:263:in block (2 levels) in execute_action'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/actions/actions_helper.rb:69:in execute_action'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/runner.rb:255:in block in execute_action'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/runner.rb:229:in chdir'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/runner.rb:229:in execute_action'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/runner.rb:157:in trigger_action_by_name'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/fast_file.rb:159:in method_missing'
Fastfile:148:in block (2 levels) in parsing_binding'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/lane.rb:33:in call'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/runner.rb:49:in block in execute'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/runner.rb:45:in chdir'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/runner.rb:45:in execute'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/lane_manager.rb:47:in cruise_lane'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/command_line_handler.rb:36:in handle'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/commands_generator.rb:110:in block (2 levels) in run'
/Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/command.rb:187:in call'   /Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/command.rb:157:in run'
/Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/runner.rb:444:in run_active_command'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:124:in run!'
/Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/delegates.rb:18:in run!'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/commands_generator.rb:354:in run'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/commands_generator.rb:43:in start'   /Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/fastlane/lib/fastlane/cli_tools_distributor.rb:123:in take_off'
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.212.1/bin/fastlane:23:in <top (required)>'   /usr/local/bin/fastlane:23:in load'
/usr/local/bin/fastlane:23:in `<top (required)>'

Environment
✅ fastlane environment ✅
Stack

Key
Value

OS
13.3

Ruby
2.6.10

Bundler?
true

Git
git version 2.40.0

Installation Source
/usr/local/bin/fastlane

Host
macOS 13.3 (22E252)

Ruby Lib Dir
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib

OpenSSL Version
LibreSSL 3.3.6

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
14.3

Swift Version
5.8

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL

LANGUAGE

fastlane files:
`./Fastfile`
default_platform(:android)

platform :android do
    lane :rollout do |options|
        supply(
            json_key: "google-connect-api-key.json",
            package_name: "com.application.id",
            version_code: 12345,
            track: "internal",
            track_promote_to: "production",
            skip_upload_apk: true,
            skip_upload_aab: true,
            skip_upload_metadata: true,
            skip_upload_images: true,
            skip_upload_screenshots: true
        )
    end
end

No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.212.1
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.3.0

bundler
1.17.2

etc
1.0.1

forwardable
1.2.0

rake
13.0.6

rexml
3.2.5

CFPropertyList
3.0.6

public_suffix
5.0.1

addressable
2.8.3

artifactory
3.0.15

atomos
0.1.3

aws-eventstream
1.2.0

aws-partitions
1.742.0

aws-sigv4
1.5.2

jmespath
1.6.2

aws-sdk-core
3.171.0

aws-sdk-kms
1.63.0

aws-sdk-s3
1.120.1

babosa
1.0.4

claide
1.1.0

colored
1.2

colored2
3.1.2

colorize
0.8.1

highline
2.0.3

commander
4.6.0

declarative
0.0.20

digest-crc
0.6.4

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

dotenv
2.8.1

emoji_regex
3.2.3

excon
0.99.0

faraday-em_http
1.0.0

faraday-em_synchrony
1.0.0

faraday-excon
1.1.0

faraday-httpclient
1.0.1

multipart-post
2.0.0

faraday-multipart
1.0.4

faraday-net_http
1.0.1

faraday-net_http_persistent
1.2.0

faraday-patron
1.0.0

faraday-rack
1.0.0

faraday-retry
1.0.3

ruby2_keywords
0.0.5

faraday
1.10.3

http-cookie
1.0.5

faraday-cookie_jar
0.0.7

faraday_middleware
1.2.0

fastimage
2.2.6

gh_inspector
1.1.3

jwt
2.7.0

memoist
0.16.2

multi_json
1.15.0

os
1.1.4

signet
0.17.0

googleauth
1.5.0

httpclient
2.8.3

mini_mime
1.1.2

trailblazer-option
0.1.2

uber
0.1.0

representable
3.2.0

retriable
3.1.2

webrick
1.8.1

google-apis-core
0.11.0

google-apis-androidpublisher_v3
0.38.0

google-apis-playcustomapp_v1
0.13.0

google-apis-iamcredentials_v1
0.17.0

google-apis-storage_v1
0.19.0

google-cloud-env
1.6.0

google-cloud-errors
1.3.1

google-cloud-core
1.6.0

google-cloud-storage
1.44.0

json
2.6.3

mini_magick
4.12.0

naturally
2.2.1

optparse
0.1.1

plist
3.7.0

rubyzip
2.3.2

security
0.1.3

simctl
1.6.10

terminal-notifier
2.0.0

unicode-display_width
1.8.0

terminal-table
1.8.0

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

word_wrap
1.0.0

nanaimo
0.3.0

xcodeproj
1.22.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.1

fileutils
1.7.0

generated on: 2023-04-06

I have the same issue. It was already reported (#18497) without any solution.


app: report log with a prefixed timestamp

on the downside, we loose colours in the log output. and I'm also curious whether we're interested in relative or absolute time (and precision)... any opinion? I'm happy to merge this as-is, and maybe a "logs reporter library" is something else to do (and/or convert mirage-logs to become one that we're satisfied with)


(PUP-10105) puppet resource --to_yaml emits puppet class tags

Previously some puppet resources would be the objects of Puppet::Util::Execution::ProcessOutput which extends ruby String. When pops serialization checked whether a resource was a String, it used the method is_a?, which returned True for ProcessOutput since it is a child of String, resulting in weird yaml output.
 It will be converted to the String 'utf8'
Warning: Mysql_database[information_schema]['charset']['collate'] contains a Puppet::Util::Execution::ProcessOutput value. It will be converted to the String 'utf8_general_ci'
Warning: Mysql_database[mydb]['charset'] contains a Puppet::Util::Execution::ProcessOutput value. It will be converted to the String 'utf8'
Warning: Mysql_database[mydb]['charset']['collate'] contains a Puppet::Util::Execution::ProcessOutput value. It will be converted to the String 'utf8_general_ci'
Warning: Mysql_database[mysql]['charset'] contains a Puppet::Util::Execution::ProcessOutput value. It will be converted to the String 'latin1'
Warning: Mysql_database[mysql]['charset']['collate'] contains a Puppet::Util::Execution::ProcessOutput value. It will be converted to the String 'latin1_swedish_ci'
Warning: Mysql_database[performance_schema]['charset'] contains a Puppet::Util::Execution::ProcessOutput value. It will be converted to the String 'utf8'
Warning: Mysql_database[performance_schema]['charset']['collate'] contains a Puppet::Util::Execution::ProcessOutput value. It will be converted to the String 'utf8_general_ci'
Warning: Mysql_database[test]['charset'] contains a Puppet::Util::Execution::ProcessOutput value. It will be converted to the String 'latin1'
Warning: Mysql_database[test]['charset']['collate'] contains a Puppet::Util::Execution::ProcessOutput value. It will be converted to the String 'latin1_swedish_ci'
---
mysql_database:
  information_schema:
    ensure: present
    charset: utf8
    collate: utf8_general_ci
    provider: mysql
  mydb:
    ensure: present
    charset: utf8
    collate: utf8_general_ci
    provider: mysql
  mysql:
    ensure: present
    charset: latin1
    collate: latin1_swedish_ci
    provider: mysql
  performance_schema:
    ensure: present
    charset: utf8
    collate: utf8_general_ci
    provider: mysql
  test:
    ensure: present
    charset: latin1
    collate: latin1_swedish_ci
    provider: mysql

Output with fix and warnings disabled:
bundle exec puppet resource mysql_database --to_yaml
---
mysql_database:
  information_schema:
    ensure: present
    charset: utf8
    collate: utf8_general_ci
    provider: mysql
  mydb:
    ensure: present
    charset: utf8
    collate: utf8_general_ci
    provider: mysql
  mysql:
    ensure: present
    charset: latin1
    collate: latin1_swedish_ci
    provider: mysql
  performance_schema:
    ensure: present
    charset: utf8
    collate: utf8_general_ci
    provider: mysql
  test:
    ensure: present
    charset: latin1
    collate: latin1_swedish_ci
    provider: mysql

I'm not super familiar with this code, but this type hierarchy may help frame the discussion: https://github.com/puppetlabs/puppet-specifications/blob/8db1ac65aa6cc6d84bbe0c366ee4b9378d9bfcbd/language/types_values_variables.md#the-type-system
I think the desired behavior is the instance? method for PDataType and PRichDataType and all of its subclasses should use the Ruby instance_of? method, so that we can be certain the passed in object is an instance of that specific class and nothing more. For example, PStringType#instance?(Puppet::Util::Execution::ProcessOutput.new) should return false.
But the assignable? method needs to allow subclasses. For example, if you have a function signature that accepts Data and you pass a String, it should return true (since all String values are also Data values), see https://github.com/puppetlabs/puppet-specifications/blob/8db1ac65aa6cc6d84bbe0c366ee4b9378d9bfcbd/language/types_values_variables.md#the-kinds-of-types-and-values
I'm much less sure about some of the more esoteric features like PObjectType, PTypeSetType, PInitType...

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: BobosilaVictor:x: rootroot seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

jenkins please test this

jenkins please test this

jenkins please test this

/cc: @thallgren , @hlindberg

Hi @BobosilaVictor I had a few comments:

It would be good to add positive and negative unit tests in https://github.com/puppetlabs/puppet/blob/1156ac702c369930434bed2cedacdfe3a30a50e9/spec/unit/pops/types/type_calculator_spec.rb#L1828

For example, there's a test that 1 is an instance of Integer but we don't seem to test that something else isn't an instance. Also would be good to test the behavior if passed a subclass of Integer. And same for boolean, float and string.

I recommend organizing this PR into a few different commits. One for the new unit tests to cover existing behavior, then modify lib/puppet/pops/types/types.rb, and then modify lib/puppet/pops/serialization/to_string_converter.rb (with unit tests) and then modify lib/puppet/application/resource.rb (with unit tests). That way we can run specs after commit and see what behavior changes.

closed in favor of https://github.com/puppetlabs/puppet/pull/8739


[BUG] UCI test is unable to change the SubArea Accounts

EasyRepro Version

[ ] Microsoft Dynamics 365 Online Version 8.2 (8.2.x) (DB 8.2.x) online
[ ] Microsoft Dynamics 365 Online Version 9.0 (9.0.x) (DB 9.0.x) online
[ ] Microsoft Dynamics 365 Online Version 9.0.2 (9.0.2) (DB 9.0.2) online
[X] Microsoft Dynamics 365 Online Version 9.1 (9.1.x) (DB 9.1.x) online

UCI or Classic Web

[X] UCI (XrmApp)
[ ] Classic Web (XrmBrowser)

Online or On Premise

[X] Online
[ ] On Premise

Browser

[X] Chrome
[ ] Firefox
[ ] IE
[ ] Edge

Describe the bug
I´ve run the UCITestOpenActiveAccount test successfully in my local VS. I´ve associated this test to a Test Case in a DevOps project. Then I have a pipeline that runs the Test Case using Visual Studio Test. I get the following error:
BrowserAutomation Information: 9000 : BrowserInitialized invoked.
BrowserAutomation Information: 9001 : BrowserInitialized completed.
BrowserAutomation Information: 10001 : Command Start: Login - Attempt 1/5
BrowserAutomation Information: 10002 : Command Success: Login - 1 attempts - total execution time 14357.6912ms - Return Result: Success
BrowserAutomation Information: 10001 : Command Start: Initialize Unified Interface Modes - Attempt 1/5
BrowserAutomation Information: 10002 : Command Success: Initialize Unified Interface Modes - 1 attempts - total execution time 15074.0335ms - Return Result: True
BrowserAutomation Information: 10001 : Command Start: Open App Sales Hub - Attempt 1/5
BrowserAutomation Information: 10001 : Command Start: Initialize Unified Interface Modes - Attempt 1/5
BrowserAutomation Information: 10002 : Command Success: Initialize Unified Interface Modes - 1 attempts - total execution time 25190.825ms - Return Result: True
BrowserAutomation Information: 10002 : Command Success: Open App Sales Hub - 1 attempts - total execution time 25750.4388ms - Return Result: True
BrowserAutomation Information: 10001 : Command Start: Open Sub Area - Attempt 1/5
BrowserAutomation Information: 10004 : Command Retry: Open Sub Area - System.InvalidOperationException: Unable to click element. - Retry 2/5 initiated
BrowserAutomation Information: 10004 : Command Retry: Open Sub Area - System.InvalidOperationException: Unable to click element. - Retry 3/5 initiated
BrowserAutomation Information: 10003 : Command Failure: Open Sub Area - 3 attempts - total execution time<PHONE_NUMBER>ms - Return Result: System.InvalidOperationException: Unable to click element.
   at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.<>c__DisplayClass52_0.<WaitUntilClickable>b__0() in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 520
   at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntil(ISearchContext driver, Func`2 searchFunc, Nullable`1 timeout, Action`1 successCallback, Action failureCallback) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 582
   at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntilClickable(ISearchContext driver, By by, Nullable`1 timeout, Action`1 successCallback, Action failureCallback) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 528
   at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntilClickable(ISearchContext driver, By by, Nullable`1 timeout, Action`1 successCallback, String exceptionMessage) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 520
   at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.ClickWhenAvailable(ISearchContext driver, By by, Nullable`1 timeout, String errorMessage) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 43
   at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.GetSubAreaMenuItems(IWebDriver driver) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 722
   at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.TryOpenSubArea(IWebDriver driver, String subarea) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 561
   at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.<>c__DisplayClass34_0.<OpenSubArea>b__0(IWebDriver driver) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 525
   at Microsoft.Dynamics365.UIAutomation.Browser.DelegateBrowserCommand`1.ExecuteCommand(IWebDriver driver, Object[] params) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\DelegateBrowserCommand.cs:line 28
   at Microsoft.Dynamics365.UIAutomation.Browser.BrowserCommand`1.Execute[T1,T2,T3,T4,T5,T6,T7,T8,T9](IWebDriver driver, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\BrowserCommand.cs:line 103
BrowserAutomation Information: 9000 : BrowserDisposing invoked.
BrowserAutomation Information: 9001 : BrowserDisposing completed.

I´m trying to run the following code:
public void UCITestOpenActiveAccount()
        {
            var client = new WebClient(TestSettings.Options);
            using (var xrmApp = new XrmApp(client))
            {
                xrmApp.OnlineLogin.Login(_xrmUri, _username, _password, _mfaSecretKey);

                xrmApp.Navigation.OpenApp(UCIAppName.Sales);

                xrmApp.Navigation.OpenSubArea("Sales", "Accounts");

                xrmApp.Grid.SwitchView("All Accounts");

                xrmApp.Grid.Search("A. Datum");

                xrmApp.Grid.OpenRecord(0);

                xrmApp.ThinkTime(3000);

            }
        }

All packages have been updated to the latest stable version.
Expected behavior
Finish the test successfully

8its Could you make a screenshot on an error and check it https://github.com/microsoft/EasyRepro/blob/3dc3570c5ad72e812381c4b874110ede5d93a507/Microsoft.Dynamics365.UIAutomation.Sample/AzureDevOps/UCI/RegressionTests.cs#L148

not too sure if this is what you asked for...

onlineusername, password and crm url are set in EasyRepro.runsettings file.

... and after modifying the code to make it runnable, same error as in the beginning

here the results of a local test execution

any hint will be welcome
thank you.

This is how we call the test plan

this is the task in YAML format
`steps:

task: VSTest@2
displayName: 'VsTest - testAssemblies TEST'
inputs:
testSelector: testPlan
testPlan: 2799
testSuite: '2800,2801'
testConfiguration: 7
searchFolder: '$(System.DefaultWorkingDirectory)\Microsoft.Dynamics365.UIAutomation.Sample\bin\Debug'
resultsFolder: '$(Common.TestResultsDirectory)'
uiTests: true
vsTestVersion: toolsInstaller
runInParallel: false
codeCoverageEnabled: true
diagnosticsEnabled: true
continueOnError: true`

The Test plan has been defined as follows

You should specify Settings file or path to it in task: EasyRepro.runsettings

I´ve updated the RegressionTests.cs file, to open the Sales Hub app and comment everything after that.

EasyRepro.runsettings has been configured in the Pipeline

Error after running the pipeline

Standard_Console_Output.log
BrowserAutomation Information: 9000 : BrowserInitialized invoked. BrowserAutomation Information: 9001 : BrowserInitialized completed. BrowserAutomation Information: 10001 : Command Start: Login - Attempt 1/5 BrowserAutomation Information: 10002 : Command Success: Login - 1 attempts - total execution time 9770.4938ms - Return Result: Success BrowserAutomation Information: 10001 : Command Start: Initialize Unified Interface Modes - Attempt 1/5 BrowserAutomation Information: 10002 : Command Success: Initialize Unified Interface Modes - 1 attempts - total execution time 16342.4372ms - Return Result: True BrowserAutomation Information: 10001 : Command Start: Open personalSettings SettingsMenu.About - Attempt 1/5 BrowserAutomation Information: 10002 : Command Success: Open personalSettings SettingsMenu.About - 1 attempts - total execution time 699.7381ms - Return Result: True BrowserAutomation Information: 10001 : Command Start: Dialog Click OK - Attempt 1/5 BrowserAutomation Information: 10002 : Command Success: Dialog Click OK - 1 attempts - total execution time 30161.6847ms - Return Result: True BrowserAutomation Information: 10001 : Command Start: Open App Sales Hub - Attempt 1/5 BrowserAutomation Information: 10004 : Command Retry: Open App Sales Hub - OpenQA.Selenium.ElementClickInterceptedException: element click intercepted: Element  is not clickable at point (364, 591). Other element would receive the click:
...
   (Session info: chrome=112.0.5615.138) - Retry 2/5 initiated BrowserAutomation Information: 10004 : Command Retry: Open App Sales Hub - OpenQA.Selenium.ElementClickInterceptedException: element click intercepted: Element  is not clickable at point (364, 591). Other element would receive the click:
...
   (Session info: chrome=112.0.5615.138) - Retry 3/5 initiated BrowserAutomation Information: 10003 : Command Failure: Open App Sales Hub - 3 attempts - total execution time 13885.1272ms - Return Result: OpenQA.Selenium.ElementClickInterceptedException: element click intercepted: Element  is not clickable at point (364, 591). Other element would receive the click:
...
   (Session info: chrome=112.0.5615.138)    at OpenQA.Selenium.WebDriver.UnpackAndThrowOnError(Response errorResponse, String commandToExecute)    at OpenQA.Selenium.WebDriver.Execute(String driverCommandToExecute, Dictionary2 parameters)
at OpenQA.Selenium.WebDriver.InternalExecute(String driverCommandToExecute, Dictionary2 parameters)    at OpenQA.Selenium.WebElement.Execute(String commandToExecute, Dictionary2 parameters)
at OpenQA.Selenium.WebElement.Click()
at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.<>c.b__2_0(IWebElement e) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 43
at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntil(ISearchContext driver, Func2 searchFunc, Nullable1 timeout, Action1 successCallback, Action failureCallback) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 578    at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntilClickable(ISearchContext driver, By by, Nullable1 timeout, Action1 successCallback, Action failureCallback) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 528    at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntilClickable(ISearchContext driver, By by, Nullable1 timeout, Action1 successCallback, String exceptionMessage) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 520    at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.ClickWhenAvailable(ISearchContext driver, By by, Nullable1 timeout, String errorMessage) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 43
at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.<>c__DisplayClass32_0.b__1(IWebElement appContainer) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 475
at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntil(ISearchContext driver, Func2 searchFunc, Nullable1 timeout, Action1 successCallback, Action failureCallback) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 578    at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntilVisible(ISearchContext driver, By by, Nullable1 timeout, Action1 successCallback, Action failureCallback) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 503    at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.TryToClickInAppTile(String appName, IWebDriver driver) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 474    at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.<>c__DisplayClass29_0.<OpenApp>b__0(IWebDriver driver) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 398    at Microsoft.Dynamics365.UIAutomation.Browser.DelegateBrowserCommand1.ExecuteCommand(IWebDriver driver, Object[] params) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\DelegateBrowserCommand.cs:line 28
at Microsoft.Dynamics365.UIAutomation.Browser.BrowserCommand`1.Execute[T1,T2,T3,T4,T5,T6,T7,T8,T9](IWebDriver driver, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9) in D:\a\1\s\Microsoft.Dynamics365.UIAutomation.Browser\BrowserCommand.cs:line 103
Creating Page Source file with name EXCEPTION_Source_20230428080731.html
BrowserAutomation Information: 9000 : BrowserDisposing invoked.
BrowserAutomation Information: 9001 : BrowserDisposing completed.
Debug Trace:
Creating Page Source file with name EXCEPTION_Source_20230428080731.html
`

Enable video recording and check what is happening, it looks like some extra dialog is opening.
https://learn.microsoft.com/en-us/visualstudio/test/configure-unit-tests-by-using-a-dot-runsettings-file?view=vs-2022#videorecorder-data-collector

Nice feature! Now I can see that the test is not able to simulate a click on Sales, Accounts, so the test is stuck in the command xrmApp.Navigation.OpenSubArea("Sales", "Accounts");` The error message is the same "Unable to click element" as I mentioned at the beginning.
One thing that is so confusing is that when I run the test Regression_EntityControls_GetValue_SetValue locally it works but when running in the pipeline it does not. Is there any particular reason for this behavior?
Thank you for your support.

Post screenshot please

Regression_EntityConttrols_GetValue_SetValue(). Some code is commented to avoid issues.
`public void Regression_EntityControls_GetValue_SetValue()
{
var telemetry = new Microsoft.ApplicationInsights.TelemetryClient { InstrumentationKey = _azureKey };
telemetry.Context.Operation.Id = Guid.NewGuid().ToString();
telemetry.Context.Operation.ParentId = _sessionId;
telemetry.Context.GlobalProperties.Add("Test", TestContext.TestName);
var client = new WebClient(TestSettings.Options);
var xrmApp = new XrmApp(client);
try
{
telemetry.TrackTrace("Login Started");
xrmApp.OnlineLogin.Login(_xrmUri, _username, _password, _mfaSecretKey);
telemetry.TrackTrace("Login Completed");
TakeScreenshot(client, xrmApp.CommandResults.Last());
//xrmApp.Navigation.OpenApp(UCIAppName.Sales);
            //telemetry.TrackTrace("OpenAbout Started");
            //xrmApp.Navigation.OpenAbout();
            //telemetry.TrackTrace("OpenAbout Completed");
            //TakeScreenshot(client, xrmApp.CommandResults.Last());
            //xrmApp.Dialogs.ClickOk();

            telemetry.TrackTrace("Open Sales Hub Started");
            xrmApp.Navigation.OpenApp(UCIAppName.Sales);
            telemetry.TrackTrace("Open Sales Hub Completed");
            TakeScreenshot(client, xrmApp.CommandResults.Last());

            telemetry.TrackTrace("OpenSubArea Started");
            xrmApp.Navigation.OpenSubArea("Sales", "Accounts");
            telemetry.TrackTrace("OpenSubArea Completed");
            TakeScreenshot(client, xrmApp.CommandResults.Last());

            telemetry.TrackTrace("SwitchView Started");
            xrmApp.Grid.SwitchView("All Accounts");
            telemetry.TrackTrace("SwitchView Completed");
            TakeScreenshot(client, xrmApp.CommandResults.Last());

            //telemetry.TrackTrace("GetGridControl Started");
            //var gridHtml = xrmApp.Grid.GetGridControl();
            //WriteSource("GRID_", gridHtml);
            //telemetry.TrackTrace("GetGridControl Completed");

            telemetry.TrackTrace("Search Started");
            xrmApp.Grid.Search("Economic");
            telemetry.TrackTrace("Search Completed");
            TakeScreenshot(client, xrmApp.CommandResults.Last());

            telemetry.TrackTrace("OpenRecord Started");
            xrmApp.Grid.OpenRecord(0);
            telemetry.TrackTrace("OpenRecord Completed");
            TakeScreenshot(client, xrmApp.CommandResults.Last());

            #region Boolean
            telemetry.TrackTrace("GetValue-Text Started");
            xrmApp.Entity.GetValue("telephone1");
            telemetry.TrackTrace("GetValue-Text Completed");

            telemetry.TrackTrace("SetValue-Text Started");
            xrmApp.Entity.SetValue("telephone1","867-5309");
            telemetry.TrackTrace("SetValue-Text Completed");
            #endregion
            TakeScreenshot(client, xrmApp.CommandResults.Last());
            //#region Lookup
            //telemetry.TrackTrace("SetValue-LookupItem Started");
            //xrmApp.Entity.SetValue(new LookupItem { Name = "customerid", Value = "maria campbell", Index = 0 });

            //telemetry.TrackTrace("SetValue-LookupItem Completed");
            //#endregion

            telemetry.TrackEvent(String.Format("{0} is successful.", TestContext.TestName));
        }
        catch (System.Exception ex)
        {
            telemetry.TrackException(ex);
            WriteSource("EXCEPTION_Source_", client.Browser.Driver.PageSource);
            TakeScreenshot(client, xrmApp.CommandResults.Last());
            throw ex;
        }
        finally
        {
            xrmApp.Dispose();
            telemetry.Flush();
        }
    }`

Execution from Visual Studio locally

Execution from Pipeline

I meant dynamics web app screenshot when error appeared

There is no error at all. The following is a screenshot of the ScreenCapture.wmv file created during the test.

This is the video screen capture. At the end, after closing the blue bubble at top right, the test doesn´t do anything else, and it should open the Accounts list.
https://user-images.githubusercontent.com/18676174/235177187-a0959c11-8112-48dd-b407-959c70b755ef.mp4
I hope this could help

Could please post screen for full stacktrace
Looks like issue with blue drop that block any click on app, you should close it before.
Do you use the same account for local and Azure test run?
Do you see this drop on local run?

Could please post screen for full stacktrace Looks like issue with blue drop that block any click on app, you should close it before. Do you use the same account for local and Azure test run? Do you see this drop on local run?

Sorry Shakevg, I don´t know where to get the full stacktrace.
I use the same account for local and pipeline runs.
In local run the blue bubble does not appear.
Thank you

Oh my gosh! You won't believe it.
I've found this issue, and now my pipeline is working after adding a task to resize the screen.
Thank you for your help, after all I've learned several things.


Make approved features non-experimental

PR Summary
As discussed in @PowerShell/powershell-committee, these features will be out of Experimental status:
PSCoalescingOperators
PSErrorView
PSForEachObjectParallel
PSPipelineChainOperators
PSTernaryOperator
PSUpdatesNotification
PSWindowsPowerShellCompatibility
Microsoft.PowerShell.Utility.PSGetError

Code marking them as Experimental has been removed.
PR Context
Fix https://github.com/PowerShell/PowerShell/issues/11302
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[x] None
OR
[ ] Experimental feature(s) needed

[ ] Experimental feature name(s):

User-facing changes

[x] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[ ] N/A or can only be tested interactively
OR
[x] Make sure you've added a new test if existing tests do not effectively test the code changed

Tooling

[x] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
OR
[ ] I have considered the user experience from a tooling perspective and enumerated concerns in the summary. This may include:

Impact on PowerShell Editor Services which is used in the PowerShell extension for VSCode (which runs in a different PS Host).
Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.
Impact on PSScriptAnalyzer (which provides linting & formatting in the editor extensions).
Impact on EditorSyntax (which provides syntax highlighting with in VSCode, GitHub, and many other editors).

Understoodneedmoretime
On Mon, Dec 9, 2019, 3:11 PM Andrew<EMAIL_ADDRESS>wrote:

@anmenaga requested changes on this pull request.
PSWindowsPowerShellCompatibility has to remain experimental. Primary
reasons:

not enough flight time yet. First time it appeared only few weeks
ago in Preview 6. On high level this feature changes module load behavior
for some modules so it has capability to change/mess up existing user
scripts/scenarios that were running fine before it. We've seen this
happened with ScheduledJobs and CertificateProvider.
This needs more flight time.
As continuation from #1
https://github.com/PowerShell/PowerShell/issues/1 if something goes
wrong because of this feature - currently the only mechanism to turn it off
is ExperimentalFeature switch.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/PowerShell/PowerShell/pull/11303?email_source=notifications&email_token=AN6RWNJI6DRPN4DHKUAQT2TQX2X7FA5CNFSM4JYSGPK2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCOPYN7I#pullrequestreview-329221885,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN6RWNJUPPR6XT2UGHUQSITQX2X7FANCNFSM4JYSGPKQ
.

CodeFactor issues are unrelated to my specific changes

@anmenaga if this feature becomes blocking/impactful negatively for customers, we would be ok taking a change to add a setting to powershell.config.json to disable this specific feature.

@SteveL-MSFT Please resolve merge conflicts

I only reviewed the code changes related to ternary operator and update notification. Feature owners please review changes related to your features and sign off.

if this feature becomes blocking/impactful negatively for customers, we would be ok taking a change to add a setting to powershell.config.json to disable this specific feature.

@SteveL-MSFT when are we going to know it becomes blocking? Do you mean after 7.0.0 GA, we can make changes in the servicing branch of 7.0.0 to add back the experimental feature declaration and checks for the win-module-compat work?

@daxian-dbw I opened a new issue https://github.com/PowerShell/PowerShell/issues/11309 which we can accept for GA

@SteveL-MSFT Please fix build failures.

@daxian-dbw  Please re-review.

Make sense to add CL- label?


Unable to init a terminal session

Open a new tab will not display any message, and can't input any command either.

I am having the same issue as @snowwolf007cn
Issue came up after I upgraded Atom.
I tried to rebuild the package and also reinstalled the package, but I still have the same issue.
Environment:
Ubuntu 16.04
Atom 1.12.7
terminal-plus 0.14.5

I have the same issue. I only just installed the plugin. Enviroment:
macOS 10.12.2
Atom 1.12.7
terminal-plus 0.14.5

I found what is the issue.
Opening new tab causes an error in console(Ctrl+Shift+I) saying there is module mismatch.

Module version mismatch. Expected 49, got 46

This mean the package(native module) has to be rebuilt for correct electron version. The electron version used by atom.
If and when I will find a solution I will post it here. Hopefully today in the afternoon.

I also have the same issue. Here is my environment:
macOS 10.12.2
Atom 1.12.7
terminal-plus 0.14.5

To rebuild native electron module you will need to run this command
npm rebuild --runtime=electron --target=1.3.13 --disturl=https://atom.io/download/atom-shell --build-from-source
You will need correct electron target version. You can get electron version number by opening atom dev-tools and putting into console
process.versions.electron
To rebuild native packages you will also need node-gyp installed globaly
npm install -g node-gyp
In order to rebuild this module you will also need make.
On Ubuntu just run sudo apt-get install build-essential checkinstall to install make
Anyway I did all that and it still did not work, because pty.js was failing to build, so I changed version of pty.js in package.json to 0.3.1 and after that I just run npm rebuild... and it worked.

Another much simplier solution would be to use this package platformio-ide-terminal

some issue here
macOS 10.12.1
Atom 1.10.2
terminal-plus 0.14.5

Confirm
OSX 10.11.6
Atom 1.12.7
terminal-plus 0.14.5

Same issue: Screenshot below

Same here!

In ~/.atom/packages/terminal-plus/package.json in the dependencies section
remove the commit id (#......) at the end of the pty.js entry:
"pty.js": "git+https://github.com/jeremyramin/pty.js.git#28f2667" becomes
"pty.js": "https://github.com/chjj/pty.js.git"
cd ~/.atom/packages/terminal-plus/
npm install
apm rebuild
Restart Atom, and it should worked.

Thanks @neos2008 I see there's  a PR with this fix. Hopefully, it gets merged soon.
cc @jeremyramin

Same issue as well

+1

Same issue on Linux Fedora 25

@jeremyramin any chance you could merge the pull requests or give commit access to someone so they can do it?

Temporary fix for windows based on based on @neos2008 answer:
File -> Settings -> Open Config Foler (shortcut to c:\users\<user>\.atom)
Change
"pty.js": "git+https://github.com/jeremyramin/pty.js.git#28f2667" to
"pty.js": "git+https://github.com/bonizz/pty.js.git"

cd c:\users\<user>\.atom\packages\terminal-plus
npm install
apm rebuild

The winpty submodule in https://github.com/jeremyramin/pty.js.git was pointing to an old commit, so I forked winpty and updated the submodule.  Note that I'll delete this fork once this is fixed in main.

@snowwolf007cn @nejcokorn @figgyc @gyang1011 @psychoche @fayimora @bgq007 @neos2008 @mattymil @willin @lpabon @easygater @JonasT @bonizz
Try Termination, it's an actively developed fork of terminal-plus. Worked great for me.


cannot install package

pip install django-formset-bootstrap returns this error
Could not find a version that satisfies the requirement django-formset-bootstrap (from versions: )
No matching distribution found for django-formset-bootstrap

Indeed, it looks like this package got lost during the migration of PyPI. I will upload it again later today, will let you know when it is available.


Bump to RoboVM 1.0.0

The build failure was caused by maven repository delay.

I went ahead and fixed a bunch of other stuff in the 1.0 upgrade, so I'm going to skip this pull request, but everything in it has been applied.

There still a bug in RoboVM https://github.com/robovm/robovm/issues/837 that you may notice.


Issue with exported Ansys Fluent msh files

I am trying to import/export a simple polygon mesh from/to Ansys Fluent.
Reading an Ansys .msh file works fine, I got all points and elements in the python mesh object. But when I save the same mesh object to Ansys .msh format (Binary & ASCII) and try to import the file in Ansys, the import fails with a message (Premature End-of-file found). It is missing some elements like index 13 is converted to index 12 and has some data issues.
Simple shape - Binary.msh.txt
Simple shape - ASCII.msh.txt
Any help is appreciated!
Thanks!!

We need the original mesh and the exact procedure to reproduce the error.

Hi @nschloe,
The attached files are original mesh files, I only appended .txt to name to attach it here. please remove .txt extension from the file name. These files were exported from Ansys Fluent.
Below is the code to read and write mesh to a new file. As you can see I am not changing anything on mesh object.
`msh2 = meshio.read("Simple shape - ASCII.msh", file_format='ansys-ascii')
print('points', msh2.points.shape, msh2.points)
print('cells ', msh2.cells['quad'].shape, msh2.cells['quad'])
meshio.write("updated_Simple shape - ASCII.msh", msh2, file_format='ansys-ascii')`
When I try to import the "updated_Simple shape - ASCII.msh" file back in Ansys Fluent, it throws import failed error "Premature End-of-file found".

The fifth line of the updated file
(10 (1 1 188 1 3))(

look wrong, e.g. compared to the twelfth line of the input.  The parentheses are unbalanced; I think it should be
(10 (1 1 188 1 3)(

This line is written in
https://github.com/nschloe/meshio/blob/d4c68b3c473101d09965ddec3fdff53f4e54c17c/meshio/ansys_io.py#L387-L393
I suspect the second closing parenthesis should be deleted.

Tentatively closing as fixed. Feel free to reopen if this isn't the case.


Make GCS compatible with AWS S3s multiple object delete API

Is your feature request related to a problem? Please describe.
We are migrating our AWS S3 code to use GCS. However, the fact that GCS is not compatible with S3's multiple object delete API bothers me, and now I'm deleting objects one at a time, and it's not really ideal.
Describe the solution you'd like
I hope GCS can become compatible with S3' multiple object delete API.
Describe alternatives you've considered
Currently I'm deleting one object at a time. Another option is, I can leverage com.google.cloud.storage.StorageBatch, but that means I need to use GCS's library, and redo all the credentials stuff. Plus, there is no asynchronous API. This defeats the purpose of reusing the S3 code to create a seamless migration.
Additional context
N/A

Hi @linzebing, This functionality would require feature work by the GCS backend system.
We will pass along the request so they are aware.
Additionally, it would probably be good to engage with support to ensure this is also surfaced from that avenue.


Bug: Creation of alerts with special characters redirect to empty page

Affected module
Does it impact the UI, backend or Ingestion Framework?
UI / Backend
Describe the bug
A clear and concise description of what the bug is.
Special Character in the name while creating the alert throws an error
https://github.com/open-metadata/OpenMetadata/assets/40225091/7e17cc63-5783-4c9f-88ac-a71955c6fbdc
To Reproduce
Create an alert with the name Bug.Test ( special character being . )
Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g. 0.8]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
Add any other context about the problem here.

Fixed in #18448


Update references， When renaming/move the md file in the resource manager of the operating system

This plugin is so great! When I move a md note in Obsidian, the plugin checks if attachments need to be moved and links updated.
I would expect that move file/renames title would update references When renaming the md file in ⭐⭐⭐the resource manager of the operating system⭐⭐⭐ other than obsidian. This becomes very problematic when consolidating & summarizing notes. Now a significant amount of effort has to be put into listing out all reference points up manually updating them.
That’s a LOT of friction, and a LOT of error.
So many people have mentioned this issue, but no one has ever solved it. This plugin of yours, Big Brother, is the closest approach solution, and I hope it will be considered if the feature can be implemented.
https://forum.obsidian.md/t/broken-links-in-relative-path-mode-on-move-rename/4386

This is a plugin for Obsidian, so it can only handle modifications in Obsidian, not modifications in other applications (such as the resource manager of the operating system).


Extract Keymaps to public static class for use in Godot projects

Hey there, awesome project - This is a game changer for me!
The PR allows for Godot developers to check against Godot keycodes in an ImGUI window.
For example:
if (ImGui.IsKeyPressed(ImGuiInput.KeyMap[Godot.Key.A]))
{
    log.Information("Keyboard button A was pressed");
}

Otherwise using the ImGuiKey  enumeration in our projects increases coupling.

Hi, thanks for the PR. I'm working on the next version in the develop branch, so the Dictionary has been changed to a switch statement, and stuff has been reorganized.
I think this would actually be a great place to use an extension method, so usage would look like:
if (ImGui.IsKeyPressed(Godot.Key.A.ToImGuiKey()))

If you want to get a PR merged, it's probably simplest to just open a new one on the develop branch. In ImGuiGD.cs, add:
public static ImGuiKey ToImGuiKey(this Key key)

and the same for JoyButton, using the Convert* methods in ImGuiGDInternal.
Otherwise, I'll take care of that myself in the next few days.

Thanks for the reply, I've implemented it as you suggusted - Great idea.
Succesor: https://github.com/pkdawson/imgui-godot/pull/13


fix #254: E2BIG

Fixes #254

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Where applicable, update Windows pools used to azsdk-pool-mms-win-2022-general and rename vmImage to the windows-20xx format

Where applicable, update Windows pools used to azsdk-pool-mms-win-2022-general and rename vmImage to the windows-20xx format.
This discussion explains why we chose given vmImage format:
Mike Harder: 1ES Hosted Pool image name changes
posted in Azure SDK / Engineering System 🛠 at Wednesday, February 15, 2023 12:10 PM
For further context, please see:

https://github.com/Azure/azure-sdk-tools/issues/3407

API change check
API changes are not detected in this pull request.


Set up as a package

This script has some dependencies, so it would make sense to install as a package rather than expecting the script+template to be used alone.

Done!


Added loader-30

Your contribution is greatly appreciated @muneeb-i-khan
Don't forget to star the repo and follow me on Github.
Thanks!


refactor(driver): migrate to Puppeteer driver

BREAKING CHANGE: remove multi-browser support

:tada: This PR is included in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: expose tryAcquire()

Allow users to try and get a token, but don't require them to block if the lock would fail.
Maybe eventually this function would take a timeout, or could setImmediate itself; so maybe it should be async from the get-go? I went for the "fast" option of exposing exactly what it does.

Seems like a good addition.


support for ios launcher icons

support for ios launcher icons

+1 for the 1024x1024 export option (ios required)

See #242


Please Add "Split" Feature from DiscordFreeEmojis

Is your feature request related to a problem? Please describe.
Currently, if you send an emoji using this plugin, it'll send as a massive link that'll remain next to your message.
This takes up a large amount of space (typically at the start of your message) that could be alleviated with this feature.
Describe the solution you'd like
In the DiscordFreeEmojis plugin from An00nymushun, there is a version of the plugin that allows you to send the emoji separately from your message to prevent it from showing as a link.
For example, if I sent "emoji.png Words words, words words", it would send as 2 messages. 1 containing the link to the image ("emoji.png"), which embedded automatically, and the message itself ("Words words, words words").
This would also work regardless of where your emoji was, front or back. It made sure to send the emoji separately from any other text to be as similar as possible to the original Nitro experience.
Describe alternatives you've considered
You could always send it separately manually, but this is an extra step that the aforementioned plugin had removed.
Transitioning from that plugin to this one is mildly more inconvenient, despite all the additional features in this one.
Additional context
Currently, the plugin sends like this:

I would like it to send like this:

Or if your message is "words emoji.png", like this:

Although these features didn't exist in the original plugin, I propose this is how an emoji in the middle of your message would be sent ("words emoji.png words"):

And sending with an image attached would prioritize the emoji and text above the attached image because that's how it is with Nitro ("words emoji.png [attachedFile.png]").

Added in 1.7.0, update when prompted, won't work with attachments btw.


added correct link

as per user report #6131, so i added a correct link to download TSS in zip file for troubleshooting.

@RAJU2529 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

I don't have the permission to merge the PR. The changes look good to me.


Honour preview prop lifecycle

Allows other components to toggle the previewing state of <MarkdownEditor />. (Currently the previewing prop is only honoured at mount time - updates do not propagate to state).
This is towards zooniverse/Panoptes-Front-End#1972.

Solid!! Thanks :shipit:

Published as<EMAIL_ADDRESS>

Nice one. I forgot to update the README though, new PR on the way...