text:
Fix CLI argument OpenStruct naming conditions

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you written new tests for your changes? Here's an example.
[x] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

Using OpenStruct prevents us from naming an option after any method defined on OpenStruct, for example tap. This showed up in this Linuxbrew PR: https://github.com/Linuxbrew/brew/pull/667#issuecomment-377372812, but would also bite us were we to convert brew create to use the new parser, since it also has a tap option.
Ideally we'd probably want to only define methods for the defined options themselves, but I think it's fine leaving that as an enhancement for now.

@alyssais: The problem was, I missed declaring --tap here Homebrew/brew#3983 as it was not listed in man page on brew pull. flag "--tap", required: true would have prevented  Linuxbrew/brew#667 (comment)
I don't understand how its going to be an issue in brew create if we were to declare it as a flag

I don't understand how its going to be an issue in brew create if we were to declare it as a flag
Please correct me if I'm wrong

@GauthamGoli Check out this test that fails locally without these changes.
    it "can handle options that are named the same as Object instance methods" do
      parser.switch "--tap"
      args = parser.parse(["--tap"])
      expect(args.tap).to be true
    end

I'd like to give a bit of time here for @GauthamGoli to see if there's an OpenStruct solution that's possible.

@MikeMcQuaid It passes locally for me without these changes.
For this test to pass, expect statement has to be expect(args.tap?).to be true because --tap is a switch

Oh, yes, I should have written the test as a flag, sorry. The names confused be a bit.

@GauthamGoli see that new test. I meant flag rather than switch there, apologies.

@MikeMcQuaid @alyssais This change makes more sense. I was not able to get the above test to pass. Do you know the reason why this is happening for only --tap ?

Do you know the reason why this is happening for only --tap ?

It's because every object in Ruby inherits the #tap method from Object, and OpenStruct seems to prohibit redefining it.

Ah! everything makes sense now 👍 Thanks

What do you know. tap is like tee for pipelines in Ruby. https://ruby-doc.org/core-2.5.0/Object.html#method-i-tap

@alyssais Any idea if there's a way to do this by just defining methods on an OpenStruct subclass instead? Would be nice to save the code from building this ourselves from scratch.

authors: GauthamGoli MikeMcQuaid alyssais reitermarkus sjackman


text:
Clarify how to set HOMEBREW_GITHUB_API_TOKEN

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[x] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

It's currently unclear how to fix the GitHub API Token, I've attempted to clarify the output message. Open to feedback!
Unfortunately I'm unable to figure out why the tests aren't passing, would appreciate some guidance.

@JBallin how about using Utils::Shell.set_variable_in_profile here?

Great idea @MikeMcQuaid!

@JBallin brew tests seems to be failing.

@MikeMcQuaid, the tests pass locally. There's an issue with test-bot that seems to be affecting other PR's as well.
GitHub::search_issues returns Validation Failed. My best guess is that it's an issue with hitting the GitHub API on Homebrew's end? Should I open an issue about this?
Here's the failure output from test-bot:
2018-10-15T04:19:31.2064790Z Failures:
2018-10-15T04:19:31.2065400Z
2018-10-15T04:19:31.2066170Z   1) GitHub::search_issues queries GitHub issues with the passed parameters
2018-10-15T04:19:31.2067140Z      Failure/Error: results = subject.search_issues("brew search", repo: "Homebrew/brew", author: "avetamine", is: "closed")
2018-10-15T04:19:31.2067900Z
2018-10-15T04:19:31.2068610Z      GitHub::Error:
2018-10-15T04:19:31.2069340Z        Validation Failed
2018-10-15T04:19:31.2071170Z      # ./utils/github.rb:237:in `raise_api_error'
2018-10-15T04:19:31.2071890Z      # ./utils/github.rb:194:in `open_api'
2018-10-15T04:19:31.2073140Z      # ./utils/github.rb:309:in `search'
2018-10-15T04:19:31.2074730Z      # ./utils/github.rb:242:in `search_issues'
2018-10-15T04:19:31.2076060Z      # ./test/utils/github_spec.rb:34:in `block (3 levels) in <top (required)>'
2018-10-15T04:19:31.2076720Z      # ./test/spec_helper.rb:134:in `block (2 levels) in <top (required)>'
2018-10-15T04:19:31.2077540Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:123:in `block in run'
2018-10-15T04:19:31.2078190Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `loop'
2018-10-15T04:19:31.2078840Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `run'
2018-10-15T04:19:31.2079480Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-retry-0.6.1/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
2018-10-15T04:19:31.2080080Z      # ./test/spec_helper.rb:97:in `block (2 levels) in <top (required)>'
2018-10-15T04:19:31.2080690Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:123:in `block in run'
2018-10-15T04:19:31.2081310Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `loop'
2018-10-15T04:19:31.2081950Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `run'
2018-10-15T04:19:31.2082580Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-retry-0.6.1/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
2018-10-15T04:19:31.2083250Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
2018-10-15T04:19:31.2083890Z      # ./vendor/bundle/ruby/2.3.0/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block (2 levels) in <top (required)>'
2018-10-15T04:19:31.2084020Z
2018-10-15T04:19:31.2084120Z Finished in 3 minutes 15.5 seconds (files took 2.51 seconds to load)
2018-10-15T04:19:31.2084230Z 507 examples, 1 failure
2018-10-15T04:19:31.2084300Z
2018-10-15T04:19:31.2084380Z Failed examples:
2018-10-15T04:19:31.2084450Z
2018-10-15T04:19:31.2084560Z rspec ./test/utils/github_spec.rb:33 # GitHub::search_issues queries GitHub issues with the passed parameters

Thanks again @JBallin!

source: gharchive/pull-request

authors: JBallin MikeMcQuaid

repo: Homebrew/brew

license_type: permissive

license_source: github-api


text:
bottle: Fix bottling for Linux

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[x] Have you successfully run brew style with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

When there is no previous linux bottle, and the bottle block looks like this:
bottle do
  sha256 "5cbcce4556b41ece91f01778068f481514bc3a0d5447ddbff048797236cc9b29" => :mojave
  sha256 "15748ef1ffefa088f7c958e6935c6eec794781858e6190196e18e94ab768adc2" => :high_sierra
  sha256 "49eb0e5d27b8868b2dba20efbde3ef75becc0cbf5ea230c00e5745e2df697cb6" => :sierra
end

then the bottling fails with:
Error: --keep-old was passed but there are changes in:
cellar: old: "/home/linuxbrew/.linuxbrew/Cellar", new: :any_skip_relocation
==> FAILED

This change allows to run the bottling step for these cases.

@sjackman I am not sure I understood 100% of the code in there. I just regrouped code around the mismatches.delete(:cellar) line in a single if/end block.

This change allows to run the bottling step for these cases.

Can you explain these changes in a lot more detail? This doesn't happen when there's a missing macOS bottle: why?
In general I really don't like the approach taken here of essentially turning off all the cellar bottling checks on Linux and turning failures into warnings. There's a reason that cellar :any and cellar :any_no_relocation are different. Bottles should be generated with the correct cellar values instead of hacking them after the fact to not through errors.
As the code already handles: it's acceptable to treat a cellar :any_no_relocation bottle as cellar :any but you can't do this with any other cases as it's incorrect and will break things.

When the macOS bottle is cellar :any, and the Linux bottles is not detected as cellar :any, in all but one case (curl), the bottle has been relocatable.
I see two ways of going forward.

Use an environment variable to downgrade this error to a warning when that environment variable is enabled, which will be enabled for bottling in Linuxbrew/core.

Fixing brew bottle to address the false positives that cause some Linux bottles to be identified as non-relocatable when they are in fact cellar :any.

The latter is clearly more work. I'd like to look at a handful of cases. Perhaps there's one or two causes, which we could address, that account for 99% of the cases. What was the last case that failed? I'll take a look at it.

I see two ways of going forward.

Use an environment variable to downgrade this error to a warning when that environment variable is enabled, which will be enabled for bottling in Linuxbrew/core.

As mentioned above I consider this to be simply ignoring a valid error case.

Fixing brew bottle to address the false positives that cause some Linux bottles to be identified as non-relocatable when they are in fact cellar :any.

This is what I see as the best of the two solutions.
Another option, as mentioned above, is that Linuxbrew/homebrew-core instead has a script that overrides the bottle JSON file to be cellar :any in the desired cases. This will not require any code changes and allows Linuxbrew/homebrew-core to adjust the behaviour until brew bottle is addressed.
To quote myself from above:

I'm not convinced that things that simply pass test do when relocated have 100% of their functionality working perfectly when relocated.

If there's a programmatic solution that e.g. strips some ELF data or similar for 2) I can be convinced it's the correct solution.
I think this is a question of approach: I'd rather have bottles not flagged cellar :any when they could be rather than vice-versa as false negatives will not cause user errors but false positives will.

Michka pointed me to topgrade.
topgrade is detected as non-relocatable on macOS.
topgrade is detected as cellar :any_skip_relocation on Linux.
brew bottle --keep-old topgrade fails in Linuxbrew/core due to this mismatch.
$ uname
Linux
$ brew bottle --keep-old -v topgrade
==> Detecting if topgrade--1.1.0.x86_64_linux.bottle.tar.gz is relocatable...
/home/linuxbrew/.linuxbrew/bin/patchelf --force-rpath --set-rpath /home/linuxbrew/.linuxbrew/Cellar/topgrade/1.1.0/lib:/home/linuxbrew/.linuxbrew/lib /home/linuxbrew/.linuxbrew/Cellar/topgrade/1.1.0/bin/topgrade
Error: --keep-old was passed but there are changes in:
cellar: old: "/home/linuxbrew/.linuxbrew/Cellar", new: :any_skip_relocation

$ uname
Darwin
$ brew install topgrade
…
$ brew bottle -v topgrade
…
Warning: String '/usr/local/Cellar' still exists in these files:
/usr/local/Cellar/topgrade/1.1.0/bin/topgrade
 --> match '/usr/local/Cellar/rust/1.30.1/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-09705dba1dc68cd9.rlib(compiler_builtins-09705dba1dc68cd9.compiler_builtins.10ocm1pa-cgu.15.rcgu.o)' at offset 0x247a2c
…
$ strings /usr/local/bin/topgrade
…
__ZN74_$LT$topgrade..ctrlc..unix..RUNNING$u20$as$u20$core..ops..deref..Deref$GT$5deref11__stability4LAZY17h912228b0dc3ec236E
/private/tmp/rust-20181109-86056-qruqlr/rustc-1.30.1-src/src/rustc/compiler_builtins_shim/../../libcompiler_builtins/src/lib.rs/@/
compiler_builtins.10ocm1pa-cgu.15
/usr/local/Cellar/rust/1.30.1/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-09705dba1dc68cd9.rlib(compiler_builtins-09705dba1dc68cd9.compiler_builtins.10ocm1pa-cgu.15.rcgu.o)
___rust_probestack
rustc/compiler_builtins_shim/../../libcompiler_builtins/src/probestack.rs
__ZN197_$LT$serde..de..impls..$LT$impl$u20$serde..de..Deserialize$LT$$u27$de$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$..deserialize..VecVisitor$LT$T$GT$$u20$as$u20$serde..de..Visitor$LT$$u27$de$GT$$GT$9visit_seq17h80f819d228ec7690E
…
$ du -h /usr/local/Cellar/rust/1.30.1/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-09705dba1dc68cd9.rlib
708K	/usr/local/Cellar/rust/1.30.1/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-09705dba1dc68cd9.rlib
$ topgrade -n
…
App Store: OK
$ brew remove rust
$ du -h /usr/local/Cellar/rust/1.30.1/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-09705dba1dc68cd9.rlib
du: /usr/local/Cellar/rust/1.30.1/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-09705dba1dc68cd9.rlib: No such file or directory
$ topgrade -n
…
App Store: OK

Although the Rust executable topgrade contains an absolute path to a file in the rust package on macOS, that file is not needed for execution.

I updated the code, sorry for the delay. I tried to follow the discussion and I hope I got it right. I think that the effort needs to be put in solution 2:

Fixing brew bottle to address the false positives that cause some Linux bottles to be identified as non-relocatable when they are in fact cellar :any.

Looks like @sjackman already found some things to improve here. We will need to give it another try with some bottles to see if this covers most of the cases.

authors: MikeMcQuaid iMichka sjackman


text:
Synchronize triage configuration

This pull request was created automatically by the sync-triage-config workflow.

@woodruffw FYI that CI is 💥 here.

@woodruffw FYI that CI is 💥 here.

Thanks! Looks like a Codecov flake, kicked it over.

authors: BrewTestBot MikeMcQuaid woodruffw

repo: Homebrew/ruby-macho

license: mit

license_source: bigquery


text:
PDF Decryption

So all I want to do is to be able to open decrypted documents to write on top. I don't need any ability to read text inside the document or parse other data inside (it would be great to have the amount that pdf.js allows when viewing it), and as a matter of fact I am just trying to visually overlay some data. My app allows users to select a pdf and decide where to write some data. I am using pdf.js to visualize these and overlay some data on top and I want to create a new pdf with pdf-lib to print it.
Also I want to say this is an amazing project, great job : D

Hello @Ayfel!
If you're input document is encrypted then it must be decrypted before anything can be done with it, even for a simple task like drawing content on top. Built in support for document decryption is being tracked in https://github.com/Hopding/pdf-lib/issues/233. In the meantime, you might consider using another library or CLI tool to decrypt the document before passing it to pdf-lib for processing.

Hello @Ayfel!
If you're input document is encrypted then it must be decrypted before anything can be done with it, even for a simple task like drawing content on top. Built in support for document decryption is being tracked in https://github.com/Hopding/pdf-lib/issues/233. In the meantime, you might consider using another library or CLI tool to decrypt the document before passing it to pdf-lib for processing.

source: gharchive/issue

authors: Ayfel Hopding

repo: Hopding/pdf-lib

license: MIT


text:
Need help

I lost my phone so I used my secret phrase to recover my wallet when I successfully done it  all my zen disappeared please help me

You missed the right way.use key words and not secret  phrase

authors: Mannouna Zinoboy

repo: HorizenOfficial/zencash-mobile


text:
hospitalrun.io -- domain name is expired

The domain name for http://hospitalrun.io/ is expired, and as a result, all visitors are redirected to the registrar's parked domains page.

Expected behavior:
Actual behavior:
Steps to reproduce:
Screenshots (if applicable):
OS and Browser:

Hey thanks @christophermlne  - I'll follow up with @tangollama

This is 100% my fault. I had it on a long list of things I needed to get to for the project and then missed it.... which is a big fail on my part. Apparently, the domain has been grabbed by someone else who is clearly squatting it. Not sure what to do about. Recommendations are welcome.

I’ll follow up with a domain broker. Shouldn’t be a huge deal.
--
Donald Wasserman
989-859-6392
On Mar 1, 2019, 8:56 PM -0500, Joel Worrall notifications@github.com, wrote:

This is 100% my fault. I had it on a long list of things I needed to get to for the project and then missed it.... which is a big fail on my part. Apparently, the domain has been grabbed by someone else who is clearly squatting it. Not sure what to do about. Recommendations are welcome.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Thank you. We have access to funds in the open collective as/if needed.
On Fri, Mar 1, 2019 at 10:09 PM Donald Wasserman notifications@github.com
wrote:

I’ll follow up with a domain broker. Shouldn’t be a huge deal.
--
Donald Wasserman
989-859-6392
On Mar 1, 2019, 8:56 PM -0500, Joel Worrall notifications@github.com,
wrote:

This is 100% my fault. I had it on a long list of things I needed to get
to for the project and then missed it.... which is a big fail on my part.
Apparently, the domain has been grabbed by someone else who is clearly
squatting it. Not sure what to do about. Recommendations are welcome.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/HospitalRun/hospitalrun-frontend/issues/1598#issuecomment-468877045,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA4t7VCN_RqzBT33Coc7lNYfb84l6f0dks5vSetrgaJpZM4bWwOS
.

--
*Joel Worrall *
@tangollama http://twitter.com/tangollama (c) 717.385.9970

It looks like this issue is resolved.

repo: HospitalRun/hospitalrun-frontend


text:
Code Smells

buenas tardes pues revisando tu pryecto vi que tenia code smells como Large Class , Duplicate Code y Data Clumps

Hi @Josealb97 , I want to work on this issue. Can you assign the issue to me?

repo: HouariZegai/Calculator


text:
Unknown error in XPath.

Caused by: javax.xml.transform.TransformerException: Unknown error in XPath.
at com.gargoylesoftware.htmlunit.html.xpath.XPathAdapter.execute(XPathAdapter.java:188)
at com.gargoylesoftware.htmlunit.html.xpath.XPathUtils.evaluateXPath(XPathUtils.java:145)
at com.gargoylesoftware.htmlunit.html.xpath.XPathUtils.getByXPath(XPathUtils.java:77)
... 51 more
Caused by: java.lang.NullPointerException
at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.nextNode(DOM2DTM.java:390)
at org.apache.xml.dtm.ref.DTMDefaultBase._nextsib(DTMDefaultBase.java:565)
at org.apache.xml.dtm.ref.DTMDefaultBase.getNextSibling(DTMDefaultBase.java:1142)
at org.apache.xml.dtm.ref.DTMDefaultBaseTraversers$ChildTraverser.next(DTMDefaultBaseTraversers.java:463)
at org.apache.xpath.axes.AxesWalker.getNextNode(AxesWalker.java:335)
at org.apache.xpath.axes.AxesWalker.nextNode(AxesWalker.java:363)
at org.apache.xpath.axes.WalkingIterator.nextNode(WalkingIterator.java:195)
at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:335)
at org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:494)
at org.apache.xpath.axes.NodeSequence.setRoot(NodeSequence.java:270)
at org.apache.xpath.axes.LocPathIterator.execute(LocPathIterator.java:212)
at com.gargoylesoftware.htmlunit.html.xpath.XPathAdapter.execute(XPathAdapter.java:167)
... 53 more
We are encountering the aforementioned issue randomly. Most of the time it works fine. We are assuming that this is caused by the fact that XPath object is not designed for multithreading access. I have tried searching for information about this issue however I did not find any solution/workaround, is there any way to fix this?

Sounds reasonable but maybe something else.... https://sourceforge.net/p/htmlunit/mailman/message/23898002/

I saw this thread, but we already have a higher version of the HTMLunit (v.2.29) and there the suggestion is to use 2.7 which is so much older.

the code looks like this (xalan)
next = pos.getNextSibling();

pos can't be null here because it is used before and a local var.
Can you please check your stack trace - maybe the NPE is inside getNextSibling?

I have the same issue in the latest version 2.56.0. The stacktrace I'm seeing is:
Caused by: javax.xml.transform.TransformerException: Unknown error in XPath.
        at com.gargoylesoftware.htmlunit.html.xpath.XPathAdapter.execute(XPathAdapter.java:235)
        at com.gargoylesoftware.htmlunit.html.xpath.XPathHelper.evaluateXPath(XPathHelper.java:137)
        at com.gargoylesoftware.htmlunit.html.xpath.XPathHelper.getByXPath(XPathHelper.java:71)
        ... 102 more
Caused by: java.lang.NullPointerException
        at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.addNode(DOM2DTM.java:215)
        at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.nextNode(DOM2DTM.java:542)
        at org.apache.xml.dtm.ref.DTMDefaultBase._nextsib(DTMDefaultBase.java:565)
        at org.apache.xml.dtm.ref.DTMDefaultBase.getNextSibling(DTMDefaultBase.java:1142)
        at org.apache.xml.dtm.ref.DTMDefaultBaseTraversers$ChildTraverser.next(DTMDefaultBaseTraversers.java:463)
        at org.apache.xpath.axes.AxesWalker.getNextNode(AxesWalker.java:335)
        at org.apache.xpath.axes.AxesWalker.nextNode(AxesWalker.java:363)
        at org.apache.xpath.axes.WalkingIterator.nextNode(WalkingIterator.java:195)
        at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:335)
        at org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:494)
        at org.apache.xpath.axes.NodeSequence.setRoot(NodeSequence.java:270)
        at org.apache.xpath.axes.LocPathIterator.execute(LocPathIterator.java:212)
        at com.gargoylesoftware.htmlunit.html.xpath.XPathAdapter.execute(XPathAdapter.java:214)
        ... 104 more

Need to have a look at the xalan code base.

We are encountering the same issue intermittently with exactly the same stacktrace (HTMLunit v.2.62.0), are there any workaround/solution?

the code looks like this (xalan)
next = pos.getNextSibling();

pos can't be null here because it is used before and a local var.
Can you please check your stack trace - maybe the NPE is inside getNextSibling?

In our case pos = null what is triggered the error stacktrace, the issue is flaky.

@Pldi23
org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.addNode(DOM2DTM.java:215)
looks here like this
type = node.getNodeType();

Can you please post your stack trace.
Do you have xalan-2.7.2?

@rbri

Can you please post your stack trace.

java.lang.RuntimeException: Could not retrieve XPath >//input[lower-case(@type)='radio' and @name='tab-group-1656481419909']< on HtmlPage(http://localhost:42685/jenkins/)@398295463
	at com.gargoylesoftware.htmlunit.html.xpath.XPathHelper.getByXPath(XPathHelper.java:93)
	at com.gargoylesoftware.htmlunit.html.DomNode.getByXPath(DomNode.java:1584)
	at com.gargoylesoftware.htmlunit.html.HtmlRadioButtonInput.setCheckedForPage(HtmlRadioButtonInput.java:181)
	at com.gargoylesoftware.htmlunit.html.HtmlRadioButtonInput.setChecked(HtmlRadioButtonInput.java:139)
	at com.gargoylesoftware.htmlunit.html.HtmlRadioButtonInput.onAddedToPage(HtmlRadioButtonInput.java:279)
	at com.gargoylesoftware.htmlunit.html.HtmlPage.notifyNodeAdded(HtmlPage.java:1771)
	at com.gargoylesoftware.htmlunit.html.DomNode.fireAddition(DomNode.java:1060)
	at com.gargoylesoftware.htmlunit.html.DomNode.appendChild(DomNode.java:955)
	at com.gargoylesoftware.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.appendChild(HtmlUnitNekoDOMBuilder.java:791)
	at com.gargoylesoftware.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.addNodeToRightParent(HtmlUnitNekoDOMBuilder.java:475)
	at com.gargoylesoftware.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.startElement(HtmlUnitNekoDOMBuilder.java:359)
	at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
	at com.gargoylesoftware.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.startElement(HtmlUnitNekoDOMBuilder.java:291)
	at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
	at net.sourceforge.htmlunit.cyberneko.HTMLTagBalancer.startElement(HTMLTagBalancer.java:812)
	at net.sourceforge.htmlunit.cyberneko.filters.DefaultFilter.startElement(DefaultFilter.java:140)
	at net.sourceforge.htmlunit.cyberneko.filters.NamespaceBinder.startElement(NamespaceBinder.java:278)
	at net.sourceforge.htmlunit.cyberneko.HTMLScanner$ContentScanner.scanStartElement(HTMLScanner.java:2811)
	at net.sourceforge.htmlunit.cyberneko.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2131)
	at net.sourceforge.htmlunit.cyberneko.HTMLScanner.scanDocument(HTMLScanner.java:937)
	at net.sourceforge.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:443)
	at net.sourceforge.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:394)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at com.gargoylesoftware.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.parse(HtmlUnitNekoDOMBuilder.java:768)
	at com.gargoylesoftware.htmlunit.html.parser.neko.HtmlUnitNekoHtmlParser.parse(HtmlUnitNekoHtmlParser.java:204)
	at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:298)
	at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:218)
	at org.jvnet.hudson.test.HudsonPageCreator.createPage(HudsonPageCreator.java:54)
	at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:688)
	at com.gargoylesoftware.htmlunit.WebClient.loadDownloadedResponses(WebClient.java:2547)
	at com.gargoylesoftware.htmlunit.html.HtmlFormUtil.submit(HtmlFormUtil.java:82)
	at org.jvnet.hudson.test.JenkinsRule$WebClient.login(JenkinsRule.java:2463)
	at org.jvnet.hudson.test.JenkinsRule$WebClient.login(JenkinsRule.java:2329)
	at org.jvnet.hudson.test.JenkinsRule$WebClient.login(JenkinsRule.java:2475)
	at com.cloudbees.jenkins.plugins.bitbucket.Security2033Test.doClearWhenInvokedUsingGetMethodThenResourceNotFound(Security2033Test.java:157)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.jvnet.hudson.test.JenkinsRule$1.evaluate(JenkinsRule.java:606)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: javax.xml.transform.TransformerException: Unknown error in XPath.
	at com.gargoylesoftware.htmlunit.html.xpath.XPathAdapter.execute(XPathAdapter.java:235)
	at com.gargoylesoftware.htmlunit.html.xpath.XPathHelper.evaluateXPath(XPathHelper.java:137)
	at com.gargoylesoftware.htmlunit.html.xpath.XPathHelper.getByXPath(XPathHelper.java:71)
	... 48 more
Caused by: java.lang.NullPointerException
	at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.nextNode(DOM2DTM.java:390)
	at org.apache.xml.dtm.ref.DTMDefaultBase._nextsib(DTMDefaultBase.java:565)
	at org.apache.xml.dtm.ref.DTMDefaultBase.getNextSibling(DTMDefaultBase.java:1142)
	at org.apache.xml.dtm.ref.DTMDefaultBaseTraversers$ChildTraverser.next(DTMDefaultBaseTraversers.java:463)
	at org.apache.xpath.axes.AxesWalker.getNextNode(AxesWalker.java:335)
	at org.apache.xpath.axes.AxesWalker.nextNode(AxesWalker.java:363)
	at org.apache.xpath.axes.WalkingIterator.nextNode(WalkingIterator.java:195)
	at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:335)
	at org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:494)
	at org.apache.xpath.axes.NodeSequence.setRoot(NodeSequence.java:270)
	at org.apache.xpath.axes.LocPathIterator.execute(LocPathIterator.java:212)
	at com.gargoylesoftware.htmlunit.html.xpath.XPathAdapter.execute(XPathAdapter.java:214)
	... 50 more

Do you have xalan-2.7.2?

yes, we're using xalan-2.7.2

Ah ok, the location is
org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.nextNode(DOM2DTM.java:390)
Will think about it again - maybe we can get rid of xalan at all.
PR's are welcome....

@Pldi23 can imagine two possible scenarios
your code (the XPath selection) works in parallel to some js code that manipulates the dom and the xpath engine works on some dom node in an intermediate state
there is some code that produces a corrupt dom node that leads to this error
What do you think?

@Pldi23 can you debug the problem?

@Pldi23 can imagine two possible scenarios

your code (the XPath selection) works in parallel to some js code that manipulates the dom and the xpath engine works on some dom node in an intermediate state
there is some code that produces a corrupt dom node that leads to this error
What do you think?

Hard to say, I'll try to debug, but the issue happens very rarely and there no obvious way how to make it more reproducible.

I'll try to debug, but the issue happens very rarely and there no obvious way how to make it more reproducible.

I understand, but without having more info it is more or less luck to find this.
If  i can make a xalan version with some debug code inside - will you be able to use this?

Hm, sounds good, I'm not sure if we could update somehow our ci infrastructure to use it, but at least I could use it locally I guess.
(By the way, you could also try to run one of our open source tests for example this one bitbucket-branch-source flaky test. It is flaky here on a simple login step when accessing DOM)

Ok I caught it, this is what I see on a debug right now (didn't analyze it yet)

Just as assumption, could there be a race condition between 2 getByXPath calls?

From your screenshot it looks like some code is executed during page parsing; usually a script tag.
I still guess xalan finds and DomObject still in initialization (has no parent set).
My guess is more code like com.gargoylesoftware.htmlunit.html.DomNode.basicInsertBefore(DomNode) where the node is already attached to the dom before e.g. the parent is set.
If you like i can try to reorder some of this and make a new snapshot build.

a new snapshot build 2.63.0-SNAPSHOT is available - let's cross our fingers

@rbri I run the our test with a your new build 1500 times and it failed again on 1497 attempt. (As I see your fix improve the flakiness, because statistically before your fix failures happened 1 per 250 attempts, but didn't solve it completely)

@Pldi23 you mean it failed only for 3 runs out of the 1500 ones?
Let me think a bit more about this - but for a first wild guess the results are not that bad :-D

I mean it failed once in 1500 runs

@Pldi23 and if you run it only 1499 times :-D
Will check the code - maybe i can spot more locations to improve

@Pldi23 made another snapshot build...

@Pldi23 yes same name

Could you please check, (perhaps I'm paranoying ;)), but I don't see your latest commit in 2.63.0-SNAPSHOT which I just downloaded.

Really strange but it looks you are right.
Have updated the snapshot again - please check

Checked again, weird, but latest commit are still not there.

I looked inside
https://oss.sonatype.org/content/repositories/snapshots/net/sourceforge/htmlunit/htmlunit/2.63.0-SNAPSHOT/
and

contains the fix.

Thank you @rbri , you are right (for some reason maven reloaded htmlunit-2.63.0-20220704.141031-4 every time). Now I get latest build and I'll get back to you after next 1500 runs :)

for maven the -U switch helps here but who knows what all the proxies and content delivery networks out there are doing

@rbri Oh, unfortunately I'm observing a much more failures in this batch of runs, approximately 1 per 100 fails.

@Pldi23 no idea why the results are bad based on the last change - maybe the problem depends on something else.
Found another possible reason for a broken DOM tree - you can try the new snapshot.

@Pldi23 have reverted the DomElement changes and made a new snapshot build

have another idea to reduce the problem.... working on it

Good morning,
after the ci has passed i made a new snapshot build.
From your stack trace we can see the xpath call (from HtmlRadioButton) is done during the parsing of the page. Usually this is the time where the dom is in manipulation and maybe some nodes are not in a consistent state. Because of this i think using XPath inside the HtmlUnit implementation is a bad idea and i have replaced the calls.
I expect one of two possible results

it solves your problem - i outside of tons of new github stars from your whole team i will be your hero of the day :-D or
the problem is still there - but now with a different stack trace. In this case i'm hopefully able to make the code more robust (because we no longer use external xpath code for finding).

@Pldi23 waiting for your results ....

Hi @rbri , unfortunately my local night runs still fails (5 times in 1500 runs).
I see your new commit (seems promising, because I also think that the issue typical to HtmlRadioButton and does not apply to other elements, but who knows...) and morning build, I'll try that patch and rerun soonish.
Thanks for being so persistent, we appreciate it!

before starting the celebration i think you have to do some more tuns to be sure - maybe it was only luck this time

Sure, I setup more runs

btw any change in terms of performance?

Hard to measure (every test running ~8-10 sec and depends of how much load my PC currently and I don't have any tools like dynatrace connected locally) but visually looking on timing I would say performance didn't get any worse

As always i had some hope the changes making the monster faster :-)
Still everything stable and green?

based on my code review of your changes (with my limited knowledges of your library) performance should be improved :) And yes, test is still consistently green!

Ok time to switch of the computer and think about the next steps - do you need a release of this?

I don't want to influence your release strategy, but yes, we need the fix in the nearest release.

There is no real fixed strategy outside making one nearly every month. Will have a look if i can make one this weekend.

Will close this now because it seems to be fixed for at least this situation.
Please open a new one if you facing similar problems.

repo: HtmlUnit/htmlunit


text:
Incorrect event.source when using postMessage

I'm trying to run some code in htmlunit 3.5.0 that has some iframes and uses code like this:
        var win = window.parent.document.getElementById("op_iframe").contentWindow;
        win.postMessage(mes, "*");

The receiving code looks like this:
            window.addEventListener('message', function(e) {
                if (window === e.source) {
                    // ignore browser extensions that are sending messages.
                    return;
                }

                if (typeof e.data !== 'string') {
                    return;
                }

                var result = calculateSessionStateResult(e.origin, e.data);
                e.source.postMessage(result, e.origin);
            }, false);

The problem is that running in htmlunit, the window === e.source check is true and hence it doesn't go on to process the message.
Running in Safari the same site works fine.
Adding some debug it seems event.source.location is the url for the page containing the receiving code.
Looking at the code here:
https://github.com/HtmlUnit/htmlunit/blob/96369779a836e3908aed9e6fa5acd3a54778c01e/src/main/java/org/htmlunit/javascript/host/Window.java#L1988
in particular:
    public void postMessage(final Object message, final String targetOrigin, final Object transfer) {
        final WebWindow webWindow = getWebWindow();
        final Page page = webWindow.getEnclosedPage();
        final URL currentURL = page.getUrl();

        if (!"*".equals(targetOrigin) && !"/".equals(targetOrigin)) {
<...>
        }

        final MessageEvent event = new MessageEvent();
        final String origin = currentURL.getProtocol() + "://" + currentURL.getHost() + ':' + currentURL.getPort();
        event.initMessageEvent(Event.TYPE_MESSAGE, false, false, message, origin, "", this, transfer);
        event.setParentScope(this);
        event.setPrototype(getPrototype(event.getClass()));

I think 'this', which is used as 'source' is the target window rather than the source window? Certainly that seems to be what I'm seeing in the debugger.

@jogu will have a look

Great, thank you! Let me know if it doesn't reproduce easily, I can try and supply a full example (unfortunately some of it is html dynamically generated by our testing system so it's a bit of a pain to unpick it into something standalone).

Was able to build a reproducible case.
Fix is not super simple but i will try to find a solution.

Please try the latest snapshot.

Thank you! I tried htmlunit:3.6.0-20230905.055023-5 - this definitely helps but I'm see a slightly different issue now - it's okay with:
win.postMessage(mes, "*");
but:
e.source.postMessage(result, e.origin);
doesn't seem to work.
Debugging through it looks in postMessage it's failing the target check:
       final WebWindow webWindow = sender.getWebWindow();
        final Page page = webWindow.getEnclosedPage();
        final URL currentURL = page.getUrl();

        if (!"*".equals(targetOrigin) && !"/".equals(targetOrigin)) {

in particular "currentURL" contains the url for the sending page, rather than the target one.

I was puzzled why this didn't fail the unit tests so dug a bit further to make sure it wasn't something I'd misinterpreted; I think the tests pass because here:
https://github.com/HtmlUnit/htmlunit/blob/5f0c6f4be4e0479b9a581ed902184488d01145d3/src/test/java/org/htmlunit/WebTestCase.java#L165C13-L165C13
   URL_FIRST = new URL("http://localhost:" + PORT + "/");
   URL_SECOND = new URL("http://localhost:" + PORT + "/second/");

These only differ in the URL path, which (I think correctly) isn't part of the check in postMessage, so the postMessage succeeds even though the urls are different.

@jogu
have to do some real work for the rest of the day :-)
will work on this later - if you like you can write down some test cases i should include.... it will help if you simly list some cases and i will write the code and all the rest.

Thank you!
I think just one extra test case where the sending page and target page are on urls that differ in at least one of the port/host/scheme and the postMessage call uses the correct url as the target.
e.g. like one of the current positive test cases (e.g. postMessage_jsonPayload) but using URL_THIRD instead of URL_SECOND would do it. I believe it would fail with the current code and pass once the check in postMessage was changed to be comparing the target url (and would also pass against 3.5.0).

ok, will try to update the snapshot tomorrow

sorry you have to be a bit more patient, the fix requires more time to adjust the tests

@jogu
snapshot refreshed - please try again

Thank you! I've tried it, and that part is now working correctly.
Unfortunately it's revealed another bug in the same area (let me know if you'd prefer I open a new bug for this)
in my message receiver I'm seeing that event.origin is:
https://mysite.azurewebsites.net:-1
when I'm expecting it without the :-1, i.e.:
https://mysite.azurewebsites.net
I think it's this line in Window.java's postMessage method:

final String origin = senderURL.getProtocol() + "://" + senderURL.getHost() + ':' + senderURL.getPort();

No need for a new issue, and i think i know the root of that problem.

@jogu snapshot is refreshed, please try again

@jogu will be out for two weeks now - hope the latest snapshot does the job for you

Tried that and everything seems to be working now - awesome, thank you!
I presume I can close this now.

Great, thanks a lot for providing all the details (and for using HtmlUnit).
As usual i will inform on twitter (https://twitter.com/htmlunit) about new releases
and ⭐ 's are also always welcome...

authors: BrillBay jogu rbri


text:
S3 support for image saving

Is it possible to enable s3 uploading of images at least of failed tests.

Sorry, not within the scope of this library.

authors: jamescryer lcacciagioni

repo: Huddle/PhantomCSS


text:
Error is produced after saving a a new damage curve

The following error was produced when trying to save a damage curve that was created.

In the editor for the Aggregated Stage Damage Relationship, I attempted to create damage curves manually. I added two curves - one for each impact area available in the impact area set of the study. Each curve was set with unique damage categories. The error was produced after the configurations in the editor were made.

I encountered the same bug. This should be covered in Task 4: Aggregated stage-damage compute.

this should be fixed. Ready for testing.

Tested and verified fixed in HEC-FDA-2.0-Snapshot task4 1_6_22.

authors: codymccoy dezidizon

repo: HydrologicEngineeringCenter/HEC-FDA


text:
Add RemoteAttestation Demo

Add a RemoteAttestation demo.

你好，邮件已经收到，我会尽快给你回复。

We may need to show that we have placed some demos in the "demos" directory in the "README.md". So how about adding the following description in README.md like:
We take hello_c as an example. (Command should be done inside Docker container):
$ cd /root/occlum/demos/hello_c

# Compile the user program with the Occlum toolchain
$ occlum-gcc -o hello_world hello_world.c
# Ensure the program works well outside enclave
$ ./hello_world
Hello World

# Initialize a directory as the Occlum instance, and prepare the Occlum's environment
$ mkdir occlum_instance && cd occlum_instance
$ occlum init
$ cp ../hello_world image/bin/
$ occlum build

# Run the user program inside an HyperEnclave's enclave via occlum run
$ occlum run /bin/hello_world
Hello World!

+ #### Other demos
+ More demos can be found in [demos](https://github.com/HyperEnclave/hyperenclave/tree/master/demos).

We may need to show that we have placed some demos in the "demos" directory in the "README.md". So how about adding the following description in README.md like:
We take hello_c as an example. (Command should be done inside Docker container):
$ cd /root/occlum/demos/hello_c

# Compile the user program with the Occlum toolchain
$ occlum-gcc -o hello_world hello_world.c
# Ensure the program works well outside enclave
$ ./hello_world
Hello World

# Initialize a directory as the Occlum instance, and prepare the Occlum's environment
$ mkdir occlum_instance && cd occlum_instance
$ occlum init
$ cp ../hello_world image/bin/
$ occlum build

# Run the user program inside an HyperEnclave's enclave via occlum run
$ occlum run /bin/hello_world
Hello World!

+ #### Other demos
+ More demos can be found in [demos](https://github.com/HyperEnclave/hyperenclave/tree/master/demos).

I have add a README.md at demos/RemoteAttestation/README.md.

We may need to show that we have placed some demos in the "demos" directory in the "README.md". So how about adding the following description in README.md like:
We take hello_c as an example. (Command should be done inside Docker container):
$ cd /root/occlum/demos/hello_c

# Compile the user program with the Occlum toolchain
$ occlum-gcc -o hello_world hello_world.c
# Ensure the program works well outside enclave
$ ./hello_world
Hello World

# Initialize a directory as the Occlum instance, and prepare the Occlum's environment
$ mkdir occlum_instance && cd occlum_instance
$ occlum init
$ cp ../hello_world image/bin/
$ occlum build

# Run the user program inside an HyperEnclave's enclave via occlum run
$ occlum run /bin/hello_world
Hello World!

+ #### Other demos
+ More demos can be found in [demos](https://github.com/HyperEnclave/hyperenclave/tree/master/demos).

I have add a README.md at demos/RemoteAttestation/README.md.

We may need to show that we have placed some demos in the "demos" directory in the "README.md". So how about adding the following description in README.md like:
We take hello_c as an example. (Command should be done inside Docker container):
$ cd /root/occlum/demos/hello_c

# Compile the user program with the Occlum toolchain
$ occlum-gcc -o hello_world hello_world.c
# Ensure the program works well outside enclave
$ ./hello_world
Hello World

# Initialize a directory as the Occlum instance, and prepare the Occlum's environment
$ mkdir occlum_instance && cd occlum_instance
$ occlum init
$ cp ../hello_world image/bin/
$ occlum build

# Run the user program inside an HyperEnclave's enclave via occlum run
$ occlum run /bin/hello_world
Hello World!

+ #### Other demos
+ More demos can be found in [demos](https://github.com/HyperEnclave/hyperenclave/tree/master/demos).

I have tested on my platform, and get the result:

Seems that it works well.
@yilingxu Thanks for your contribution!

authors: Bonjourz yilingxu

repo: HyperEnclave/hyperenclave


text:
[Epic] In-app notifications

Summary
OTF needs to inform the users involved in the process of invoice transition through the webapp.  This is so they can be kept up-to-date of the invoice status, and be notified if they are required to do anything.
User Story
We now send e-mail notifications to applicants and reviewers, and Slack notifications to staff.
Suggestion
In-app notifications enable users to view a list of comments and messages associated wtih the Lead (staff) without the need to dig through Slack, e-mail, and the comment tab.

@di, I thought this is one of the TO Dos in current month..
I have been doing some research on this, we could take a lot of ideas from https://github.com/django-notifications/django-notifications, one of the key points that I noticed is about recipient(a user or a list of user) to whom the notifications are being sent on an event.
And the other is about real time updates.

@sks444 Thanks for your research and  new ideas. I thought you preferred to work on the email default before starting this one. I put it back on the TO DO list.

On June 9 standup, for MVP purposes, we discussed to list all the activities on all the submissions staff is involved with, at one place.
Later, this could be done based on user roles as well, e.g. list all activities of all the submission applicant has submitted, at one place or list all activities of all submission reviewers has reviewed, at one place.

There are two types of objects involved in an activity. Source and Related.
Source are the core objects in Hypha. I.e ApplicationSubmission and Project.
Related are the other objects that are related to core objects. I.e. Determination and Reviews for ApplicationSubmission and Invoice and contract for Project.
There are two type of activities that is performed: Comment and Action. I'm thinking to have the list of notifications displayed in a generic way.
For action:
[Link to source object]: Activity Performed [Link to related object if it exist]
So a notification from this submission might look like:
Submission: Progressed from More information required to Need screening
Submission: Sent a determination. Outcome: More information requested. Determination
And notifications from this project might look like:
Project: Approved contract. Contract
Project: Updated Invoice status to: Changes Requested by Staff. Invoice
For comment:
[Link to source object communications tab]: Username made a comment.
So a comment notification from this submission might look like:
Submission communications:  Shrikrishna Singh made a comment.
And a comment notification from this project might look like:
Project communications: sks made a comment.

Notification view will list all these in an order of recently performed. I'm thinking maybe we could also have a filter based on source object. I.e only list notifications for submissions or projects.
@frjo let me know your views on this.

On June 10 standup, we discussed to display two tabs in the notification view. One for communication and other for actions, similar to what we have on one submission. But keeping the notification format same as described above with displaying the truncated title of the source.

On June 16 standup, sandeep demo an iteration of two tabs in the notification view.
Di asked if we could include indications when a notification or activity is NEW so the user knows there are notifications they haven't read yet.
FJ suggested shortening the messages/notifications and giving more details when the user click on the notification (ie Discourse)
sks suggested showing top 10 on a pop-up, and the user going to the notification view for more details. This could be version 2.0

repo: HyphaApp/hypha


text:
ERROR: '<' not supported between instances of 'float' and 'str'

Region and Brand of car
US Hyundai
Version of the integration
2.14.3
Describe the bug
Receiving an error inside Home Assistant when attempting to update sensors"
'<' not supported between instances of 'float' and 'str'
Debug logs if an error occurred
2023-11-13 11:03:21.122 ERROR (MainThread) [custom_components.kia_uvo.coordinator] Unexpected error fetching kia_uvo data: '<' not supported between instances of 'float' and 'str'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/kia_uvo/coordinator.py", line 142, in _async_update_data
    await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 79, in update_all_vehicles_with_cached_state
    self.update_vehicle_with_cached_state(vehicle_id)
  File "/usr/local/lib/python3.11/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 84, in update_vehicle_with_cached_state
    self.api.update_vehicle_with_cached_state(self.token, vehicle)
  File "/usr/local/lib/python3.11/site-packages/hyundai_kia_connect_api/HyundaiBlueLinkAPIUSA.py", line 427, in update_vehicle_with_cached_state
    if vehicle.odometer < get_child_value(
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '<' not supported between instances of 'float' and 'str'

To Reproduce
Run the "Hyundai / Kia Connect: Update" service from Home Assistant.
Expected behavior
Sensors update as expected.
Additional context
In its current state, the sensors are not accessible at all - they never refresh or load (even after rebooting the HA instance).

Experiencing the same issue:

2023-11-13 05:51:23.318 ERROR (MainThread) [custom_components.kia_uvo.coordinator] Unexpected error fetching kia_uvo data: '<' not supported between instances of 'float' and 'str'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/kia_uvo/coordinator.py", line 142, in _async_update_data
await self.hass.async_add_executor_job(
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 79, in update_all_vehicles_with_cached_state
self.update_vehicle_with_cached_state(vehicle_id)
File "/usr/local/lib/python3.11/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 84, in update_vehicle_with_cached_state
self.api.update_vehicle_with_cached_state(self.token, vehicle)
File "/usr/local/lib/python3.11/site-packages/hyundai_kia_connect_api/HyundaiBlueLinkAPIUSA.py", line 427, in update_vehicle_with_cached_state
if vehicle.odometer < get_child_value(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '<' not supported between instances of 'float' and 'str'

https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api/pull/443 may resolve this.
Please test by updating using hacs but select the version as "master" and restart HA.

After setting the version to master, I am again getting data.  Thank you for your quick response to this issue!

@cdnninja – re-downloading the integration from HACS and choosing the 'master' version restored functionality for me as well, thank you!  I try to keep this integration 'up-to-date' within Home Assistant, do you recommend sticking with the 'master' version and avoiding incremental updates?
Thanks for following up as well @csmracing !

@cdnninja – re-downloading the integration from HACS and choosing the 'master' version restored functionality for me as well, thank you!  I try to keep this integration 'up-to-date' within Home Assistant, do you recommend sticking with the 'master' version and avoiding incremental updates?
Thanks for following up as well @csmracing !

Think of the master as a "beta" or current release. It has changes that were made right away.
The numbered releases take master and give it a version on Wednesdays and Sundays.   It also occurs when we manually trigger it when getting a fix out asap.

authors: cdnninja csmracing exactliez


text:
Works with  Nuki smart lock v4 ?

From the README, this lib has been well tested on Nuki smart lock (v2 & v3).
I used it on and that works great. But what about v4? There is someone who has tested It ? Some core lib update is required? Thanks

Great! I will buy It and test it Thanks


text:
now pull data directly from scenario explorer dbs

Please confirm that this PR has done the following:

[x] Tests Added
[x] Documentation Added
[x] Description in RELEASE_NOTES.md Added

Adding to RELEASE_NOTES.md (remove section after adding to RELEASE_NOTES.md)
Please add a single line in the release notes similar to the following:
- (#XX)[http://link-to-pr.com] Added feature which does something

Description of PR
Thanks to @zikolach, we can now directly query the scenario explorers via the REST API.
@znicholls, you may find this useful.

this is good to go once ci passes @danielhuppmann

@gidden this is super super nice great stuff thank you !!

ok, this is g2g @danielhuppmann

authors: gidden znicholls

repo: IAMconsortium/pyam


text:
[Bug] Chestshop signs appear blank when broken by non-owners, resets when traveling dimensions.

Video explaining the bug: https://www.youtube.com/watch?v=OzqLTeAa_8M
The only other bug I found is an incompatibility with Charm's "EditableSigns" feature which won't let users buy/sell items on a chestshop with their empty hand, I'm unsure if you could make a work-around with that? If you need more details with that, I will provide.
Minecraft Fabric 1.18.2

Is this marked as completed/fixed?

It should be fixed in the latest release as well as improved mod compat. I tested it with charm and that definitely works.

authors: IAmSneak RoseTheFoxGit

repo: IAmSneak/diamond-chestshop


text:
Model.fit

Hello does anyone know why in model.fit instead of labels , [labels,data] has been used?
model.fit(data, [labels,data], batch_size=1, epochs=50)

I found this is for VAE part


text:
RBC bank feedback on 1.1 Peer Docker container cfg

John Harrison is requesting an update to the 1.1 documentation due to a problem that has surfaced at RBC:
@mrshah, @bmos, @dbshah - Any concerns about us documenting this?
By default, Hyperledger Peer Docker containers use the docker.sock file for communications to create chaincode containers via the /host/var/run mount.  Non-root users
running inside Hyperledger Peer Docker containers MUST be a member of the docker group defined in the native OS (/etc/group). If the non-root user running
inside a Hyperledger Peer Docker container does not have the same group id as the docker group id contained in the native OS /etc/group file then the following error
will occur:
Error: Error endorsing chaincode: rpc error: code = Unknown desc = error starting container:
Post http://unix.sock/containers/create?name=dev-peer0.org2.example.com-mycc-1.0: dial unix /host/var/run/docker.sock: connect: permission denied
Example:
Listing of /etc/group on native OS that includes the docker group:
docker:x:118
The group id of the docker group is 118.
When starting Hyperledger Peer Docker containers ensure that your docker-compose files have overridden the GROUP_ID and use the group id number
listed in /etc/group.  In this case GROUP_ID should be 118.
In your docker compose yaml files change the environment section of your peer containers by adding:
- GROUP_ID=118 (in this example)
NOTE: You can override the default user id “fabric” if you like, but the key here is that you MUST override the GROUP_ID value.
As a “brute force” solution you can add the following environment variable overrides to your peer containers:
- USERNAME=root
- GROUP_ID=0
- USER_ID=0
In docker-entrypoint.sh for the orderer and peer containers the following line does not trap stderr messages:
_USER_ID=$(id -u ${USERNAME}) &> /dev/null
If the user does not exist a message is displayed in the log:
id: ;  no such user
This can be confusing even though this is working as designed.  If the user does not exist then it will be created
along with its associated username and group attributes.
To suppress the stderr message, I propose using the following line of code for the dockerhub Git Repository (for internal builds):
_USER_ID=$(id -u ${USERNAME} 2> /dev/null)
This will supress the stderr message mentioned above and return a non-zero return code that is checked and acted upon
if a userid is not found, i.e., a new userid will be created (as well as group).

From @mrshah-at-ibm
The processes can be started with the user of choice by passing the following:
USERNAME=<username of choice>
GROUP_ID=<guid of choice>
USER_ID=<uuid of choice>

All the processes will start with the following default user:
USERNAME=fabric
GROUP_ID=198
USER_ID=199
Note: if you are mounting the docker socket inside the peer container, the docker socket will need to have enough permissions for the user to be able to use it. We suggest to pass the docker group's guid to the peer's GRUOUP_ID environment variable.
this needs to be updated in https://github.com/IBM-Blockchain/ibm-blockchain.github.io/blob/master/_pages/09_IBMBlockchain Images Info.md

@mrshah-at-ibm  Could you review the text I added at
https://github.com/pamandrejko/ibm-blockchain.github.io/blob/master/_pages/09_IBMBlockchain Images Info.md
(I used what you provided with a bit of the information from John).
Once you are satisfied I'll create a PR.


text:
ibmcloud sl vs upgrade does not have --flavor option

VSIs ordered in flavor cannot be upgraded with --cpu or --memory options but ibmcloud cli does not have option to specify flavor.
NAME:
  upgrade - Upgrade a virtual server instance

USAGE:
  ibmcloud sl vs upgrade IDENTIFIER [OPTIONS]
    Note: Classic infrastructure service automatically reboots the instance once upgrade request is
    placed. The instance is halted until the upgrade transaction is completed.
    However for Network, no reboot is required.

EXAMPLE:
   ibmcloud sl vs upgrade 12345678 -c 8 -m 8192 --network 1000
   This commands upgrades virtual server instance with ID 12345678 and set number of CPU cores to 8, memory to 8192M, network port speed to 1000 Mbps.

OPTIONS:
  -c value, --cpu value     Number of CPU cores
  --private                 CPU core will be on a dedicated host server
  -m value, --memory value  Memory in megabytes
  --network value           Network port speed in Mbps
  -f, --force               Force operation without confirmation
  --output value            Specify output format, only JSON is supported now.

reference:
https://softlayer-api-python-client.readthedocs.io/en/latest/cli/vs/#vs-upgrade

The latest version 2.6.0 should have this option (as --flavor)
$ ibmcloud.exe  sl vs upgrade --help
NAME:
  upgrade - Upgrade a virtual server instance

USAGE:
  C:\Program Files\IBM\Cloud\bin\ibmcloud.exe sl vs upgrade IDENTIFIER [OPTIONS]
    Note: Classic infrastructure service automatically reboots the instance once upgrade request is
    placed. The instance is halted until the upgrade transaction is completed.
    However for Network, no reboot is required.

EXAMPLE:
   C:\Program Files\IBM\Cloud\bin\ibmcloud.exe sl vs upgrade 12345678 -c 8 -m 8192 --network 1000
   This commands upgrades virtual server instance with ID 12345678 and set number of CPU cores to 8, memory to 8192M, network port speed to 1000 Mbps.

OPTIONS:
  -c value, --cpu value     Number of CPU cores
  --private                 CPU core will be on a dedicated host server
  -m value, --memory value  Memory in megabytes
  --network value           Network port speed in Mbps
  --flavor value            Flavor key name
  -f, --force               Force operation without confirmation
  --output value            Specify output format, only JSON is supported now.

authors: allmightyspiff pizzamax

repo: IBM-Cloud/ibm-cloud-cli-release


text:
feature request: provide a command to list available endpoints

When moving between regions, I have to do a google search to find the appropriate endpoint.  Could we introduce a command (e.g. 'targets') that listed the available endpoints?

when you login without previous endpoint set you will be prompted by available endpoints.  Run ibmcloud api --unset to clear the previous endpoint setting.
If you want to switch region after login, run ibmcloud target -r REGION_NAME,  you can use ibmcloud regions to get all the regions.

please reopen if the answer does not solve your issue


text:
Change FUNCTION to #function, etc. in LoggerAPI to meet Swift 3 standards

The following warnings appear on build:
Compiling Swift Module 'LoggerAPI' (1 sources)
/home/rfdickerson/MIL/Kitura/Packages/LoggerAPI-0.0.1/Sources/LoggerAPI/Logger.swift:37:68: warning: __FUNCTION__ is deprecated and will be removed in Swift 3, please use #function
    public static func verbose(msg: String, functionName: String = __FUNCTION__,
                                                                   ^~~~~~~~~~~~
                                                                   #function
/home/rfdickerson/MIL/Kitura/Packages/LoggerAPI-0.0.1/Sources/LoggerAPI/Logger.swift:38:24: warning: __LINE__ is deprecated and will be removed in Swift 3, please use #line
        lineNum: Int = __LINE__, fileName: String = __FILE__ ) {
                       ^~~~~~~~
                       #line
/home/rfdickerson/MIL/Kitura/Packages/LoggerAPI-0.0.1/Sources/LoggerAPI/Logger.swift:38:53: warning: __FILE__ is deprecated and will be removed in Swift 3, please use #file
        lineNum: Int = __LINE__, fileName: String = __FILE__ ) {
                                                    ^~~~~~~~
                                                    #file
/home/rfdickerson/MIL/Kitura/Packages/LoggerAPI-0.0.1/Sources/LoggerAPI/Logger.swift:43:64: warning: __FUNCTION__ is deprecated and will be removed in Swift 3, please use #function
    public class func info(msg: String, functionName: String = __FUNCTION__,
                                                               ^~~~~~~~~~~~
                                                               #function

Fixed through PR requests

authors: dfirsht rfdickerson

repo: IBM-Swift/Kitura


text:
Cannot set JSONDecoder on Codable router

Context and Description
I want to set dateDecodingStrategy to decode JSON on codable router.
However, using JSONDecoder is hardcoded. So I can't customize behaviors of decoders.
https://github.com/IBM-Swift/Kitura/blob/master/Sources/Kitura/RouterRequest.swift#L208
struct Foo: Codable {
    let date: Date
}

let jsonString = """
{"date": "1970-01-17T10:52:15-08:00"}
"""
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601 // I want to set
let foo = try? decoder.decode(Foo.self, from: jsonString.data(using: .utf8)!)

router.post("/memos") { (foo: Foo, respondWith: (Foo?, RequestError?) -> Void) in
    // Cannot parse `Foo` on Codable routers
}

Thank you for opening this, we are aware of this current limitation. Do you not have control over the JSON you want to POST, though?

+1 on this issue for me.
I'm parsing JSON from https://iam.bluemix.net/identity/token which returns an expiration date as a number of seconds since 1970. JSONEncoder/Decoder support this strategy, so it would be nice if I could just configure this and have that number converted to a Date.

@Andrew-Lees11 is going to look at fixing this.

A pull request to solve this issue has been raised here. This adds a dictionary of custom encoders and decoders which will be used for codable routes and so you have access you the JSON decoder if you wish to customize it.

This PR has been merged and tagged in Kitura 2.5. A blog post describing the new API's is here

authors: Andrew-Lees11 giginet ianpartridge svanimpe


text:
Added MTLS support

Added MTLS support to trawler by replacing prometheus start_http_client to a flask endpoint that exposes prometheus metrics.
MTLS can be enabled using --mtls flag in while running trawler.py or can be enabled as an envar

Tests are failing on this PR - need further investigation

@rickymoorhouse The DCO test has passed and was an issue of not having signed commits. But do not know why travis CI is failing

The travis check fails if the tests fail - if you run them locally you'll see why.
I think it is the additional parameter you added.

authors: SauravSuresh rickymoorhouse

repo: IBM/apiconnect-trawler


text:
Compatible with IBM Blockchain Platform 2.0

Hi,
can you make this compatible with the new IBP?
Thanks!

@sandra-calvo
Not sure if this will be upgraded or not, since it is almost identical to this sample: https://github.com/IBM/fabcar-blockchain-sample
Please follow the fabcar repo for connecting to IBM Blockchain 2.0.

@sandra-calvo @horeaporutiu - so this was updated for Think to IBP2.0: https://developer.ibm.com/patterns/write-a-smart-contract-for-the-fabcarcommercial-paper-or-iks-cluster-with-saas-v2-beta-network-think/

authors: horeaporutiu ljbennett62 sandra-calvo

repo: IBM/car-auction-network-fabric-node-sdk


text:
[Table] Column Resizing throws an error

Describe the bug
Enable hasResize, then resize a column, it dies.
To Reproduce
Enable hasResize, then resize a column, it dies.
Codesandbox is just showing an error on the button example

Please create a reduced test case in CodeSandbox:
https://codesandbox.io/s/codesandbox-yxbkg

Expected behavior
Should resize the column and not crash
Additional context

My yarn lock has the following...

I'm a little concerned here, since I thought that we were fixing the carbon component versions but, it appears that we will be getting diffrernent version of carbon components for different projects that use iot components at a fixed version.  I have no idea if that is causing this issue or not.
I've also been told that there is this PR in carbon and not sure if it's related to this issue or not.
https://github.com/carbon-design-system/carbon/pull/5084
Specific timeline issues / requests

Relevant implementation: https://github.com/IBM/carbon-addons-iot-react/pull/867

How do I reproduce this? Pulling latest from master with the same carbon library versions as shown above doesn't trigger this error.

:tada: This issue has been resolved in version 2.45.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

authors: bjornalm stuckless tay1orjones

repo: IBM/carbon-addons-iot-react


text:
[Carbon X] DatePicker inner container clips content when date range selected

Detailed description
If you select a date range & then reopen either the start or end date picker, the content within is clipped. Here's a screenshot (NOTE: this is a g100 theme with some color overrides, but everything else remains unchanged from Carbon X) --

I think the problem area is this line:
https://github.com/IBM/carbon-components/blob/master/src/components/date-picker/_date-picker.scss#L852
.flatpickr-innerContainer,
  .flatpickr-rContainer {
    width: 100%;
    height: rem(336px);
  }

When I experimented with setting height: auto, it seems to resolve the problem. But I'm not sure if that's an ideal solution. 🤔
Steps to reproduce the issue

Open Carbon X date picker
Use start/end range picker to select a start and end range (try to include the first week of the month in the selected range to better notice the defect)
Reopen the end range date picker
Note the clipped content

@jendowns Thank you for spotting. Your proposed solution sounds fine to me, great if you can run some tests so the change won't accidentally break other in date picker. Thanks!

We updated to the latest carbon-components & we no longer see any clipping. Closing out this issue 🎉

authors: asudoh jendowns

repo: IBM/carbon-components


text:
EEI story 2a

Post:

Get:

To-Do: populate claimStatus field in db-writer


text:
Porting: add monitoring-models-with-openscale-gui

port from https://github.com/IBM/cloudpakfordata-telco-churn-workshop

Add and modify monitoring-models-with-openscale-gui.
update images

Code is in, images need updating.

@scottdangelo , i think we should close here and keep tracking in upstream

tracking in upstream

authors: jrtorres scottdangelo

repo: IBM/credit-risk-workshop-cpd


text:
fish shell autocompletion error

Describe the bug
I got the following error message with fish shell:
⋊> ~/t/gWhisper on 3af9796 ⨯ gwhisper /usr/share/fish/vendor_completions.d/gwhisper.fish (line 1): Variables may not be used as commands. In fish, please define a function or use 'eval $commandName'.
$commandName --complete=fish $args
^
in command substitution
	called on line 0 of file /usr/share/fish/vendor_completions.d/gwhisper.fish

in function “getCompletions”
	called on standard input

in command substitution
	called on standard input

gwhisper                     gwhisper                                                              17:17:04                     17:17:04

To Reproduce
in shell tip gwhisper and then tab
Expected behavior
A clear and concise description of what you expected to happen.
Provide details about your environment

Operating System version:
gwhisper --version output:

fish, version 2.7.1

gRPC/protobuf version: no idea

Compiler version (if related to build):

CMake version (if related to build):

⋊> ~ cmake --version                                        17:20:49
cmake version 3.10.2

CMake suite maintained and supported by Kitware (kitware.com/cmake)

Additional context
I use actually oh my fish

after destroy omf, I still get the error. So I think not because of omf.

ok, use fish 3.0.2 solve the problem

should work now, could you verify?

Unfortunately no. because I have fish 3 now. but I tested in a docker with fish2. I can not reproduce the error.

authors: callalilychen rainerschoe

repo: IBM/gWhisper


text:
remove unused args

audit policy controller doesnt use default-duration
operator doesnt use operatorVersion for any logic

docker run -it hyc-cloud-private-integration-docker-local.artifactory.swg-devops.com/ibmcom/audit-policy-controller-amd64:3.3.1 --default-duration=5 bash
flag provided but not defined: -default-duration
Usage of /usr/bin/audit-policy-controller:
  -alsologtostderr
    	log to standard error as well as files
  -cluster-name string
    	Name of the cluster (default "mcm-managed-cluster")
  -kubeconfig string
    	Paths to a kubeconfig. Only required if out-of-cluster.
  -log_backtrace_at value
    	when logging hits line file:N, emit a stack trace
  -log_dir string
    	If non-empty, write log files in this directory
  -logtostderr
    	log to standard error instead of files
  -master string
    	The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.
  -metrics-addr string
    	The address the metric endpoint binds to (default ":8080")
  -parent-event string
    	to also send status events on parent policy. options are: yes/no/ifpresent (default "ifpresent")
  -prometheus-address string
    	The address where prometheus posts the controller metrics (default ":8090")
  -restart-orphan-pods
    	Pods that are not part of a controller
  -stderrthreshold value
    	logs at or above this threshold go to stderr
  -update-frequency uint
    	The status update frequency (in seconds) of a mutation policy (default 10)
  -v value
    	log level for V logs
  -vmodule value
    	comma-separated list of pattern=N settings for file-filtered logging
  -watch-ns string
    	Watched Kubernetes namespace (default "default")

need to push new CSV after merge

repo: IBM/ibm-auditlogging-operator


text:
Static PVC's Pod Stuck in ContainerCreating on Fyre/Power Cluster

Bug Description
A static PVC's Pod is stuck in ContainerCreating state on a Power cluster created via Fyre.
[root@koi-p-master .volumes]# date; kubectl get pods -n 210-s5-namespace
Mon Oct 12 13:38:31 PDT 2020
NAME                                                          READY   STATUS              RESTARTS   AGE
210-s5-static-blast-write-loop-deployment1-75f9746464-wh54r   0/1     ContainerCreating   0          71m

A describe of the Pod shows these event(s):
Events:
  Type     Reason              Age                   From                                 Message
  ----     ------              ----                  ----                                 -------
  Warning  FailedMount         8m34s (x5 over 56m)   kubelet, koi-p-worker5.fyre.ibm.com  Unable to attach or mount volumes: unmounted volumes=[vol1], unattached volumes=[default-token-9hp88 vol1]: timed out waiting for the condition
  Warning  FailedAttachVolume  3m17s (x21 over 69m)  attachdetach-controller              AttachVolume.Attach failed for volume "static-scale-pv-210-s5-l11-l21-dplmnt1-1" : attachdetachment timeout for volume 14876848176060168092;0A0B0D88:5F7CCC01;path=/mnt/fs1/spectrum-scale-csi-volume-store/.volumes/210-s5-l11-l21-dplmnt1-1
  Warning  FailedMount         105s (x26 over 69m)   kubelet, koi-p-worker5.fyre.ibm.com  Unable to attach or mount volumes: unmounted volumes=[vol1], unattached volumes=[vol1 default-token-9hp88]: timed out waiting for the condition

The path does exist on Scale filesystem (/mnt/fs1) and is Linked:
[root@koi-p-master ~]# date; ls -ailht /mnt/fs1/spectrum-scale-csi-volume-store/.volumes/210-s5-l11-l21-dplmnt1-1
Mon Oct 12 13:39:42 PDT 2020
569857 lrwxrwxrwx 1 root root 60 Oct 12 12:27 /mnt/fs1/spectrum-scale-csi-volume-store/.volumes/210-s5-l11-l21-dplmnt1-1 -> /mnt/fs1/level1_1/level1_1-level2-1/210-s5-l11-l21-dplmnt1-1

The static PVC is Bound:
[root@koi-p-master 210-l2_lw]# date; kubectl get pvc -n 210-s1-namespace
Mon Oct 12 13:36:04 PDT 2020
NAME                         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
210-s1-static-dplmnt1-pvc1   Bound    static-scale-pv-210-s1-l11-l21-dplmnt1-1   10Mi       RWX                           5d22h

To Reproduce
Scripts used to created PVC are resident on the system (koi-p-master), PWD: /mnt/fs1/real-world-tests/launchers/creation_of_pvc_and_deployments/
The script can be launched to create a fileset PVC with a command as such: ./launch_creation_of_pvc_and_deployments.sh -f fs1 -g (GUI IP) -u csiadmin:passw0rd -P static-10-Mi -t blast-write-loop -n 210-s(number) -d 1 -p 1 -s t
Expected Behavior
The PVC should have become Bound.
Environment
Kubernetes State:
[root@koi-p-master ~]# date; kubectl get nodes --show-labels
Mon Oct 12 13:20:42 PDT 2020
NAME                         STATUS   ROLES    AGE     VERSION   LABELS
koi-p-master.fyre.ibm.com    Ready    master   6d19h   v1.18.8   beta.kubernetes.io/arch=ppc64le,beta.kubernetes.io/os=linux,kubernetes.io/arch=ppc64le,kubernetes.io/hostname=koi-p-master.fyre.ibm.com,kubernetes.io/os=linux,node-role.kubernetes.io/master=
koi-p-worker2.fyre.ibm.com   Ready    <none>   6d19h   v1.18.8   beta.kubernetes.io/arch=ppc64le,beta.kubernetes.io/os=linux,kubernetes.io/arch=ppc64le,kubernetes.io/hostname=koi-p-worker2.fyre.ibm.com,kubernetes.io/os=linux,scale=true
koi-p-worker3.fyre.ibm.com   Ready    <none>   6d19h   v1.18.8   beta.kubernetes.io/arch=ppc64le,beta.kubernetes.io/os=linux,kubernetes.io/arch=ppc64le,kubernetes.io/hostname=koi-p-worker3.fyre.ibm.com,kubernetes.io/os=linux,scale=true
koi-p-worker4.fyre.ibm.com   Ready    <none>   6d19h   v1.18.8   beta.kubernetes.io/arch=ppc64le,beta.kubernetes.io/os=linux,kubernetes.io/arch=ppc64le,kubernetes.io/hostname=koi-p-worker4.fyre.ibm.com,kubernetes.io/os=linux,scale=true
koi-p-worker5.fyre.ibm.com   Ready    <none>   6d19h   v1.18.8   beta.kubernetes.io/arch=ppc64le,beta.kubernetes.io/os=linux,kubernetes.io/arch=ppc64le,kubernetes.io/hostname=koi-p-worker5.fyre.ibm.com,kubernetes.io/os=linux,scale=true
koi-p-worker6.fyre.ibm.com   Ready    <none>   6d19h   v1.18.8   beta.kubernetes.io/arch=ppc64le,beta.kubernetes.io/os=linux,kubernetes.io/arch=ppc64le,kubernetes.io/hostname=koi-p-worker6.fyre.ibm.com,kubernetes.io/os=linux,scale=true
koi-p-worker7.fyre.ibm.com   Ready    <none>   6d19h   v1.18.8   beta.kubernetes.io/arch=ppc64le,beta.kubernetes.io/os=linux,kubernetes.io/arch=ppc64le,kubernetes.io/hostname=koi-p-worker7.fyre.ibm.com,kubernetes.io/os=linux,scale=true

CSI State:
[root@koi-p-master ~]# date; kubectl get all -n ibm-spectrum-scale-csi-driver
Mon Oct 12 13:20:59 PDT 2020
NAME                                                  READY   STATUS    RESTARTS   AGE
pod/ibm-spectrum-scale-csi-26tjl                      2/2     Running   0          5d22h
pod/ibm-spectrum-scale-csi-8snh4                      2/2     Running   0          5d22h
pod/ibm-spectrum-scale-csi-927bc                      2/2     Running   0          5d22h
pod/ibm-spectrum-scale-csi-attacher-0                 1/1     Running   0          5d22h
pod/ibm-spectrum-scale-csi-chz7v                      2/2     Running   0          5d22h
pod/ibm-spectrum-scale-csi-jnfcb                      2/2     Running   1          5d22h
pod/ibm-spectrum-scale-csi-operator-bbf987b79-j8vwk   1/1     Running   0          5d22h
pod/ibm-spectrum-scale-csi-provisioner-0              1/1     Running   0          5d22h
pod/ibm-spectrum-scale-csi-snapshotter-0              1/1     Running   0          5d22h
pod/ibm-spectrum-scale-csi-zdwws                      2/2     Running   0          5d22h

NAME                                              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
service/ibm-spectrum-scale-csi-operator-metrics   ClusterIP   10.96.171.180   <none>        8383/TCP,8686/TCP   5d22h

NAME                                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/ibm-spectrum-scale-csi   6         6         6       6            6           scale=true      5d22h

NAME                                              READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/ibm-spectrum-scale-csi-operator   1/1     1            1           5d22h

NAME                                                        DESIRED   CURRENT   READY   AGE
replicaset.apps/ibm-spectrum-scale-csi-operator-bbf987b79   1         1         1       5d22h

NAME                                                  READY   AGE
statefulset.apps/ibm-spectrum-scale-csi-attacher      1/1     5d22h
statefulset.apps/ibm-spectrum-scale-csi-provisioner   1/1     5d22h
statefulset.apps/ibm-spectrum-scale-csi-snapshotter   1/1     5d22h

Node Environment:
[root@koi-p-master ~]# date; mmdsh -f1 -N all "cat /etc/*release | grep CPE; uname -a; rpm -qi gpfs.base | grep Source"
Mon Oct 12 13:19:24 PDT 2020
koi-p-master.fyre.ibm.com:  CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server"
koi-p-master.fyre.ibm.com:  Linux koi-p-master.fyre.ibm.com 3.10.0-1127.18.2.el7.ppc64le #1 SMP Mon Jul 20 22:39:41 UTC 2020 ppc64le ppc64le ppc64le GNU/Linux
koi-p-master.fyre.ibm.com:  Source RPM  : gpfs.base-5.0.5-2.src.rpm
koi-p-worker1.fyre.ibm.com:  CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server"
koi-p-worker1.fyre.ibm.com:  Linux koi-p-worker1.fyre.ibm.com 3.10.0-1127.18.2.el7.ppc64le #1 SMP Mon Jul 20 22:39:41 UTC 2020 ppc64le ppc64le ppc64le GNU/Linux
koi-p-worker1.fyre.ibm.com:  Source RPM  : gpfs.base-5.0.5-2.src.rpm
koi-p-worker2.fyre.ibm.com:  CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server"
koi-p-worker2.fyre.ibm.com:  Linux koi-p-worker2.fyre.ibm.com 3.10.0-1127.18.2.el7.ppc64le #1 SMP Mon Jul 20 22:39:41 UTC 2020 ppc64le ppc64le ppc64le GNU/Linux
koi-p-worker2.fyre.ibm.com:  Source RPM  : gpfs.base-5.0.5-2.src.rpm
koi-p-worker3.fyre.ibm.com:  CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server"
koi-p-worker3.fyre.ibm.com:  Linux koi-p-worker3.fyre.ibm.com 3.10.0-1127.18.2.el7.ppc64le #1 SMP Mon Jul 20 22:39:41 UTC 2020 ppc64le ppc64le ppc64le GNU/Linux
koi-p-worker3.fyre.ibm.com:  Source RPM  : gpfs.base-5.0.5-2.src.rpm
koi-p-worker4.fyre.ibm.com:  CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server"
koi-p-worker4.fyre.ibm.com:  Linux koi-p-worker4.fyre.ibm.com 3.10.0-1127.18.2.el7.ppc64le #1 SMP Mon Jul 20 22:39:41 UTC 2020 ppc64le ppc64le ppc64le GNU/Linux
koi-p-worker4.fyre.ibm.com:  Source RPM  : gpfs.base-5.0.5-2.src.rpm
koi-p-worker5.fyre.ibm.com:  CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server"
koi-p-worker5.fyre.ibm.com:  Linux koi-p-worker5.fyre.ibm.com 3.10.0-1127.18.2.el7.ppc64le #1 SMP Mon Jul 20 22:39:41 UTC 2020 ppc64le ppc64le ppc64le GNU/Linux
koi-p-worker5.fyre.ibm.com:  Source RPM  : gpfs.base-5.0.5-2.src.rpm
koi-p-worker6.fyre.ibm.com:  CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server"
koi-p-worker6.fyre.ibm.com:  Linux koi-p-worker6.fyre.ibm.com 3.10.0-1127.18.2.el7.ppc64le #1 SMP Mon Jul 20 22:39:41 UTC 2020 ppc64le ppc64le ppc64le GNU/Linux
koi-p-worker6.fyre.ibm.com:  Source RPM  : gpfs.base-5.0.5-2.src.rpm
koi-p-worker7.fyre.ibm.com:  CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server"
koi-p-worker7.fyre.ibm.com:  Linux koi-p-worker7.fyre.ibm.com 3.10.0-1127.18.2.el7.ppc64le #1 SMP Mon Jul 20 22:39:41 UTC 2020 ppc64le ppc64le ppc64le GNU/Linux
koi-p-worker7.fyre.ibm.com:  Source RPM  : gpfs.base-5.0.5-2.src.rpm

Additional Context
A snap of the logs is resident on the system (koi-p-master), PWD: /mnt/fs1/CSI-2.1.0-230920-koi-ppc64le/ibm-spectrum-scale-csi/tools/ibm-spectrum-scale-csi-logs_10-12-2020-13:10:48/

Hi @tristan-le , I see CSI being deployed with older dev images please cleanup CSI as well as cleanup the operator/driver images from all worker nodes. Also while deploying the latest dev images use the Redhat sidecar for ppc.

The Fyre cluster that showed this original defect was lost, a new cluster was re-deployed in the same manner. After applying the Operator YAML with these images:
[root@koi-p-master CSI]# date; cat ibm-spectrum-scale-csi-operator-dev.yaml | grep quay
Thu Oct 15 12:50:18 PDT 2020
              value: quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-driver:dev
          image: quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-operator:dev

And a CR YAML with these Side Cars:
[root@koi-p-master CSI]# date; cat csiscaleoperators.csi.ibm.com_cr.yaml | egrep 'attacher|provisioner|driverRegistrar' | grep redhat
Thu Oct 15 12:52:15 PDT 2020
  attacher: "registry.redhat.io/openshift4/ose-csi-external-attacher:v4.4"
  provisioner: "registry.redhat.io/openshift4/ose-csi-external-provisioner-rhel7:v4.4"
  driverRegistrar: "registry.redhat.io/openshift4/ose-csi-node-driver-registrar:v4.4"

It is important to note that the cluster needed an extra secret, which was created via the Redhat: Registry Service Accounts, and that secret to be included in the CR YAML as an 'imagePullSecrets'.
The cluster looked as such:
[root@koi-p-master CSI]# date; kubectl get all -n ibm-spectrum-scale-csi-driver
Thu Oct 15 12:55:44 PDT 2020
NAME                                                   READY   STATUS    RESTARTS   AGE
pod/ibm-spectrum-scale-csi-2m6z2                       2/2     Running   0          3h32m
pod/ibm-spectrum-scale-csi-attacher-0                  1/1     Running   0          3h33m
pod/ibm-spectrum-scale-csi-kvfh6                       2/2     Running   0          3h32m
pod/ibm-spectrum-scale-csi-lztbp                       2/2     Running   0          3h32m
pod/ibm-spectrum-scale-csi-operator-675c6f78c9-26m8z   1/1     Running   0          4h53m
pod/ibm-spectrum-scale-csi-provisioner-0               1/1     Running   0          3h32m
pod/ibm-spectrum-scale-csi-r5xhl                       2/2     Running   0          3h32m
pod/ibm-spectrum-scale-csi-sw9f7                       2/2     Running   0          3h32m
pod/ibm-spectrum-scale-csi-tbjcz                       2/2     Running   0          3h32m

NAME                                              TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)             AGE
service/ibm-spectrum-scale-csi-operator-metrics   ClusterIP   10.103.62.60   <none>        8383/TCP,8686/TCP   4h53m

NAME                                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/ibm-spectrum-scale-csi   6         6         6       6            6           scale=true      3h32m

NAME                                              READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/ibm-spectrum-scale-csi-operator   1/1     1            1           4h53m

NAME                                                         DESIRED   CURRENT   READY   AGE
replicaset.apps/ibm-spectrum-scale-csi-operator-675c6f78c9   1         1         1       4h53m

NAME                                                  READY   AGE
statefulset.apps/ibm-spectrum-scale-csi-attacher      1/1     3h33m
statefulset.apps/ibm-spectrum-scale-csi-provisioner   1/1     3h32m

And static PVCs and their corresponding Pods were able to be created.

Is there already a defect tracking community sidecars?

I did manage to get static PVCs working with the google sidecars with an operator image provided by Smita.
The environment is the same as mentioned above.
The images and sidecars used are as such:
[root@koi-p-master ~]# date; cat /root/CSI/ibm-spectrum-scale-csi-operator.yaml | grep quay
Mon Oct 19 16:31:09 PDT 2020
       value: quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-driver:dev
     image: quay.io/smitaraut/ibm-spectrum-scale-csi-operator:sidecars16Oct
[root@koi-p-master ~]# date; cat /root/CSI/csiscaleoperators.csi.ibm.com_cr.yaml | egrep 'attacher|provisioner|driverRegistrar' | grep gcr
Mon Oct 19 16:31:42 PDT 2020
 attacher: "us.gcr.io/k8s-artifacts-prod/sig-storage/csi-attacher:v3.0.0"
 provisioner: "us.gcr.io/k8s-artifacts-prod/sig-storage/csi-provisioner:v2.0.2"
 driverRegistrar: "us.gcr.io/k8s-artifacts-prod/sig-storage/csi-node-driver-registrar:v2.0.1"

And the PVCs worked:
[root@koi-p-master ~]# date; kubectl get pvc -A
Mon Oct 19 16:31:50 PDT 2020
NAMESPACE     NAME             STATUS  VOLUME                   CAPACITY  ACCESS MODES  STORAGECLASS            AGE
210-f1-namespace  210-f1-fileset-dplmnt1-pvc1  Bound  pvc-a4cacb46-9098-4b00-825d-a0883feba738  1Gi    RWX      210-f1-fileset-csi-spectrum-scale  16m
210-l1-namespace  210-l1-lw-dplmnt1-pvc1    Bound  pvc-4d27fae8-9ac8-4132-b936-0987d366333b  10Mi    RWX      210-l1-lw-csi-spectrum-scale    16m
210-s3-namespace  210-s3-static-dplmnt1-pvc1  Bound  static-scale-pv-210-s3-l11-l21-dplmnt1-1  10Mi    RWX                        4m19s

Is there an anticipation on when the changes in this operator image will be in the CSI 2.1.0 build?

authors: deeghuge tristan-le

repo: IBM/ibm-spectrum-scale-csi


text:
feat: introduce new container authenticator

This commit introduces the new ContainerAuthenticator class,
along with associated tests and documentation.
The ContainerAuthenticator implements the authentication flow
to be used in IKS-managed compute resources where a secure compute resource token
has been injected into the local file system by the IKS compute resource provider.
The authenticator will read the cr token, then use it to obtain an IAM access token
by invoking the IAM "get token" operation with grant-type "cr-token".

:tada: This PR is included in version 9.12.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

authors: ibm-devx-sdk padamstx

repo: IBM/java-sdk-core


text:
Incorrect return type definition for deleteKey

The type definition for deleteKey is:
    deleteKey(params: IbmKeyProtectApiV2.DeleteKeyParams): Promise<IbmKeyProtectApiV2.Response<IbmKeyProtectApiV2.DeleteKey>>;

with IbmKeyProtectApiV2.DeleteKey:
    interface DeleteKey {
        /** The metadata that describes the resource array. */
        metadata: CollectionMetadata;
        /** A collection of resources. */
        resources: KeyWithPayload[];
    }

but the actually returned data is:
{
    "status": 204,
    "statusText": "No Content",
    "headers": {
        "access-control-allow-headers": "Origin, Content-Type, Bluemix-Space, Bluemix-Org, Authorization, Prefer, Request-Origin",
        "access-control-allow-methods": "GET, POST, DELETE, OPTIONS, HEAD",
        "access-control-allow-origin": "*",
        "access-control-expose-headers": "Correlation-Id, Key-Total",
        "bluemix-instance": "14f860fb-ef1c-4814-be09-58c6d269389a",
        "cache-control": "no-cache, no-store, must-revalidate",
        "correlation-id": "931bbe03-eb0b-4d5a-9374-23fd8200c213, 931bbe03-eb0b-4d5a-9374-23fd8200c213",
        "date": "Mon, 29 Nov 2021 16:05:32 GMT",
        "expires": "0",
        "pragma": "no-cache",
        "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
        "connection": "close"
    },
    "result": ""
}

Clearly result is not of the specified data type.

This scenario is an unfortunate consequence of the API definition containing multiple success responses for the deleteKey operatoin... a 200 which returns a response object, and a 204 with no response object.
Because the SDK generator has to generate one and only one method for the operation it uses only the primary success response (the 200 entry with the response object).
In this case, you received a 204 response and the "result" field within that raw response object is not present due to the fact that the server doesn't send a response object for that status code.

Hi @padamstx while I understand the technical reason for this, I think that this aspect still should be addressed, because imho we should make sure that the type definition of the API matches the real data structures. Otherwise how would I code against the API? I would have to code with the premise in mind that there exists a mismatch between the API and the data. In that case it would be better to declare the response as any.
From your explanation the root cause for this issue is a shortcoming of the API generator. I have not looked into every detail, but based on the description a better type definition would be:
    deleteKey(params: IbmKeyProtectApiV2.DeleteKeyParams): Promise<IbmKeyProtectApiV2.Response<IbmKeyProtectApiV2.DeleteKey | string>>;

In this situation, the service team really can't update the API definition, because it currently reflects the behavior of the service (i.e. the operation can return a 200 status code along with an instance of the DeleteKey schema in the reponse body, or a 204 status code with no response body at all).
Unfortunately, the SDK generator uses only the first success response when generating client-side code for an API, and while we theoretically could use a type union to define the return type of the method in node.js, we can't do that in most of the other languages because it just isn't supported (i.e. Go, Java, etc.).
There are several examples of this type of situation with other IBM Cloud services and unfortunately, it's not something we can fix in the SDK generator.

Unfortunately, the SDK generator uses only the first success response when generating client-side code for an API

I do not want to ride this to death, but why can't we fix the SDK generator? If there exist languages that do not support type unions, then the correct type for result is the equivalent of the unknown type for that language. If a language supports unions, then that's the right way to go.
I do not really follow the argument that because of a shortcoming of the SDK generator we are generating an incorrect type. From my perspective no type information is better than an incorrect one, because the incorrect one lures you into false certainty. In effect I have to cast this result to any and then do a runtime type check, so the current type is more harm than benefit.

authors: CarstenLeue padamstx

repo: IBM/keyprotect-nodejs-client


text:
fix: filter out #9d chars from input

This PR fixes a crash in the validator when the input API document contains a x9d character.  This problem was revealed by the open-service-broker API doc.
The fix is to simply replace these characters with space characters before calling the JSON/YAML parser.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

repo: IBM/openapi-validator


text:
feat(IAM Policy Management): support of new query param source_group_id for v2/roles

PR summary

V2Roles to support optional query parameter service_group_id
Fixed replacePolicy example
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR's are merged:
Staging: https://github.ibm.com/cloud-api-docs/iam-access-management/pull/162
Production: https://github.ibm.com/cloud-api-docs/iam-access-management/pull/163
Current vs new behavior

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

https://github.ibm.com/IAM/AM-issues/issues/645

:tada: This PR is included in version 0.33.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

authors: Rajesh-Pirati ibm-devx-sdk

repo: IBM/platform-services-go-sdk


text:
Enable IBM Block Storage via SCBE as Ubiquity backend

This change is

Reviewed 1173 of 1173 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

authors: danapython shay-berman

repo: IBM/ubiquity-docker-plugin


text:
🛑 TICP-Registrar is down

In 730ce1a, TICP-Registrar (https://onof3-pyaaa-aaaal-qac6a-cai.raw.ic0.app/metrics) was down:

HTTP code: 500
Response time: 15562 ms

Resolved: TICP-Registrar is back up in a678425.

repo: IC-Naming/uptime


text:
🛑 IDR (image 3063667) is down

In bcb8e37, IDR (image 3063667) (https://idr.openmicroscopy.org/webclient/?show=image-3063667) was down:

HTTP code: 502
Response time: 99 ms

Resolved: IDR (image 3063667) is back up in a4d480a after 16 minutes.

repo: IDR/upptime


text:
Fix for automatic seeding with tensorflow 2

I didn't find a way to add a test for this on travis. Installing tensorflow 2 in a new build just for that seems overkill.
I tested locally, if we add more stuff depending on tensorflow 2 in the future, it might worth it to add a new build to travis.
packaging.version.parse is a third-party utility but is used by setuptools. To avoid having users running into a failed import, I added the import in the if section.
Related issue: #445

Coverage decreased (-0.07%) to 83.873% when pulling e0d1eae9d3f894d0eb122e3ac80ef798fde9237b on gabrieldemarmiesse:other_stuff into 8a1a2a006b7d3b225add965c0872937ba4baa7ef on IDSIA:master.

Thanks for tackling this! I wouldn't find installing tf2 on travis overkill at all, as we definitely need to test the seeding at some point. However, the current seeding also does not seem to be tested, so we can also do this in a separate PR.

authors: JarnoRFB coveralls gabrieldemarmiesse

repo: IDSIA/sacred


text:
Issues with time out with  ssh private auth while using vagrant with virtual box.

If you're having issues with vagrant and virtual box where the ssh private auth is timing out and failing.  I think there is a pretty easy fix: you have to enable intel viritualization technology in bios for your particular cpu or the like if you're using amd, or the virtual box will not be function and up properly.

ssh private auth is timing out and failing

Debugging-wise, this is very common and typically means the box has generally failed to boot. I think that's what you're seeing, as not having the virt extensions would prevent VMs from running in general.

Yea!  Problem is on my home desktop, I'm running 4.7 Ghz.   Which is fine and stable, until I turn on virtualization, go to sleep mode, wake and try to use any cpuID functions i.e. thermal sensors etc.   I get a driver error and bsod.   -___-
Sticking to vagrant on mac, wayyyy better.

repo: IEEERobotics/bot


text:
List emails for national society and add mailto: URI

Depends on:

https://github.com/IFRCGo/go-api/issues/2080

Changes

Detailed list or prose of changes
Breaking changes
Changes to configurations

This PR doesn't introduce:

[x] typos
[x] conflict markers
[x] unwanted comments
[x] temporary files, auto-generated files or secret keys
[x] console.log meant for debugging
[x] codegen errors

Please update the Changes in description

repo: IFRCGo/go-web-app