Relax GOT indirection into PC-relative addressing

Some psABIs define the linker optimizations to relax a GOT load into a PC-relative address materialization. AArch64 [1] allows the linker to rewrite ADRP+ADD into ADR. x86-64 does the same thing with the R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX relocations.
In our case, we have lots of AUIPC+LD instruction pairs to load an address from the GOT in our RISC-V programs because la assembly pseudo instruction is expanded to that instruction pair. If the PC-relative address loaded by the instruction pair is a link-time constant, we can rewrite the instructions with AUIPC+ADDI to directly materialize the value into a register, which eliminates one memory load.
We can't rewrite existing AUIPC+ADDI instruction pairs unconditionally because technically there may exist code that jumps to the middle of the instruction pair. That should be extremely rare, but we can't deny the possibility. Therefore, R_RISCV_GOT_HI20 is required to be annotated with R_RISCV_RELAX in this proposal. Currently, neither gas nor LLVM assembler emit R_RISCV_RELAX for R_RISCV_GOT_HI20. I have a WIP patch to emit R_RISCV_RELAX only for the la pseudo instruction.
[1] https://github.com/ARM-software/abi-aa/blob/844a79fd4c77252a11342709e3b27b2c9f590cf1/aaelf64/aaelf64.rst#relocation-optimization

The following question is more about the implementation than the ABI, but does this also mean we can sometimes garbage-collect the corresponding GOT entry? That would also serve to slightly improve spatial locality in GOT accesses.

@aswaterman Yes we can, and the following sentence in this proposal should cover that topic.

If this relaxation eliminates all references to the symbol's GOT slot, the linker may opt not to create a GOT slot for that symbol.

As a benchmark, lld contains about 100k R_RISCV_GOT_HI20 relocations in total in its input object files. When I tried to build lld with this relaxation, about the half of the relocations were optimized and turned into PC-relative addressing. The remaining R_RISCV_GOT_HI20 relocations referred to symbols defined by external shared objects and couldn't be optimized by this relaxation.

Patch for GNU assembler: https://sourceware.org/pipermail/binutils/2023-September/129523.html
Patch for the mold linker: https://github.com/rui314/mold/commit/a19783d82a5133dd5e2f07762761565a1c306128

Seems fine to me. The AArch64 scheme (I participated in the review) has the nice property that adrp+ldr costs just 2 relocations while ours costs 4.
The AArch64 ABI has explicitly called out properties when an optimization can be made: non-preemptible & not-ifunc (https://maskray.me/blog/2021-01-18-gnu-indirect-function#non-preemptible-ifunc). We shall also disallow relaxation to an absolute symbol for -shared/-pie links.

Just like AArch64, I didn't want to introduce a new relocation for backward compatibility. In hindsight, the RISC-V psABI could have defined R_RISCV_GOT_LOAD for the auipc+ld instruction pair just like it did for auipc+jalr with R_RISCV_CALL. But it's too late to make such change to the ABI.

Technically, we can allow GOT to PC-relative optimization even in the absence of relaxation. With R_RISCV_RELAX, we can allow removing one instruction. Also, I am not sure we need 2 R_RISCV_RELAX.

You made a good point. Since the second ld instruction is annotated with R_RISCV_RELAX, it might be optimized out as a result of linker relaxation, so any code that directly jumps to the ld instruction is probably wrong -- that ld might not exist at runtime. So, maybe we don't need to make a change to the assembler and can just do this optimization to the existing object file?

I made a change to the proposal so that it requires only one R_RISCV_RELAX for each relaxable auipc+ld instruction pair.

This is what I was suggesting a while back when specifying that undef weak symbols be forced to be via the GOT for medany, so thanks for doing this. This should allow us to remove the note that allows GCC to not do that.

@jrtc27 This proposal doesn't really relax references to unresolved weak symbols for the medany code model, because we handle only PC-relative references in this proposal. Since unresolved weak symbols are handled as if they were absolute symbols at address 0, their addresses aren't PC-relative constants.
But we could relax references to absolute symbols, too, so let me add that to this proposal. I intentionally omitted it at first because I thought that the use case is rare, but weak symbols are indeed a fairly important use case.

Updated the proposal to allow to relax an absolute symbol at a very low address. Please take a look.

@MaskRay @jrtc27 Any comments? My change to GNU assembler was approved and can be merged once this proposal is ratified.

My reference to AArch64 is meant to highlight that GOT optimization is not necessarily linked with linker relaxation.
GOT optimization can be performed even in the absence of R_RISCV_RELAX relocations. My article at https://maskray.me/blog/2021-08-29-all-about-global-offset-table#got-optimization describes several architectures that provide linker optimization but not linker relaxation.
I am concerned that using 2 R_RISCV_RELAX relocations may not bring enough return on investment.
2 Elf64_Rela relocations are 48 bytes.
Embedded applications that use -fno-pic mostly avoid GOT anyway.
I think x86-64 GOTPCRELX provides no difference on slightly larger applications.
It just optimizes some microbenchmarks.

@MaskRay I chose to require R_RISCV_RELAX there because the existing code could be using the value set by auipc t0, %got_pcrel_hi20(foo) in some obscure ways. If that's the case, we can't rewrite or remove the instruction.
But I might be overthinking. A value computed by %got_pcrel_hi20(foo) doesn't make sense at all if it is not combined with a corresponding %pcrel_lo(label). So I understand your point. I just chose to be on the safer side.
Is there anyone who thinks we should require 'R_RISCV_RELAX' for %got_pcrel_hi20? If no one wants it, I can remove it from the proposal.

I think I resolved all comments. Please take another look.

@kito-cheng Yeah, that makes sense. We have never removed an instruction or replaced it with a compact one if there's no R_RISCV_RELAX pointing to that location. Removing an auipc pointed to by R_RISCV_GOT_HI20 without RELAX looks indeed inconsistent.

Another random idea come to my mind - we can call it optimization IF we don't perform any code shrinking, so we may also optimize this case with replacing auipc with nop like other architecture, also same idea can apply to other existing relaxation too.
But it just throw an idea not review comments, so don't putting into this PR :p
And that's may useful for those scenarios which disable linker relaxation.

That we have too many RELAX relocations is indeed a problem, but that's not new and not specific to this proposal. I created an issue for the topic, so let's discuss that here: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/401

Please take another look

Ping?

Gentle ping

Another random idea come to my mind - we can call it optimization IF we don't perform any code shrinking, so we may also optimize this case with replacing auipc with nop like other architecture, also same idea can apply to other existing relaxation too.
But it just throw an idea not review comments, so don't putting into this PR :p
And that's may useful for those scenarios which disable linker relaxation.

Right. Converting to the following is linker optimization, which does not shrink the section
    auipc   tX, <hi>
    addi    tY, tX, <lo>

I think this conversion does not need R_RISCV_RELAX.
This patch focuses on what we can do with R_RISCV_RELAX. We have

int6 c.li tY, <symbol-value>
int12 addi tY, zero, <symbol-value>
other auipc+addi

Frankly, I consider the first two forms not that useful. They require absolute addresses, which imply -fno-pic code.
However, -fno-pic code typically doesn't generate GOT-generating relocations in the first place.
int12 is rather constrained even for embedded programming, so the utilitization of the relaxation for the first two will be very low.
As a toolchain developer, I will not add complexity to assembler/linker for something I can control.
The last, auipc/addi, as mentioned, does not need R_RISCV_RELAX, and we have heard success story from AArch64 adrp+add.

The forms to relax absolute symbols are for unresolved weak symbols. With these forms, we don't need to store zeros in GOT for weak symbols. I think this use case is too important that we can't ignore.

The forms to relax absolute symbols are for unresolved weak symbols. With these forms, we don't need to store zeros in GOT for unresolved weak symbols. I think this use case is too important that we can't dismiss.

I think it differently. Undefined weak symbols are actually relatively rarely used (and many can be converted weak definitions) and almost every use case is non-measurable for performance. I even believe most use cases are checked just once in one program invocation.

My original proposal didn't include the relaxation of small absolute symbols. I added it as a response to https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/397#issuecomment-1725802256. So I guess you guys can discuss? @jrtc27
My opinion is it's a good relaxation because:

If we scan relocations to relax GOT-loading instructions for relative symbols anyway, there seems no reason to avoid the relaxation opportunity for small absolute symbols, and
if you executable is position-dependent and has a GOT only for weak undefined symbols, this relaxation can eliminate the GOT section entirely.

if you executable is position-dependent and has a GOT only for weak undefined symbols, this relaxation can eliminate the GOT section entirely.

This was the reason given for why GCC wouldn't adopt the "use the GOT for possibly-undefined weak symbols + -mcmodel=medany" specification and it had to be weakened for the 1.0 psABI. So either that was wrong and we can just do it anyway in GCC or we need this for GCC to use the GOT in this case (and thus not require instruction rewriting with -mno-relax). Doing neither isn't a solution though.

Any more comments?

Sorry, but I am still very confused.
The description is rewritten in a tone that this is for optimization.
I commented that the int6 c.li tY, <symbol-value> and int12 addi tY, zero, <symbol-value> schemes do not seem useful due to the small ranges, and therefore, very few eligible symbols.
Therefore, only the auipc+addi conversion seems useful in practice.
I then asked about performing GOT optimization regardless of R_RISCV_RELAX (like AArch64), which seems to not have been extensively discussed.

Another topic is whether this scheme can help unresolved undefined weak symbols.
riscv64-linux-gnu-gcc -O1 -mcmodel=medany -fno-pic generates an inappropriate PC-relative code sequence for auipc+lw __attribute__((weak)) extern int x; int foo() { return x; }.
(R_RISCV_PCREL_HI20/R_RISCV_RELAX + R_RISCV_PCREL_LO12_I/R_RISCV_RELAX)
For -mcmodel=medany -fno-pic, clang 16 emits the same code sequence.
clang 17 has changed to auipc+ld+lw (R_RISCV_GOT_HI20 + R_RISCV_PCREL_LO12_I/R_RISCV_RELAX), which fulfills the recommendation in #201.
Does GCC benefit from this proposal to move away from PC-relative to GOT? How?
Do we know whether GNU ld relaxes R_RISCV_GOT_HI20 and if no, what the lone R_RISCV_RELAX is about?
This proposal suggests that R_RISCV_GOT_HI20 needs a pairing R_RISCV_RELAX, i.e. R_RISCV_GOT_HI20/R_RISCV_RELAX + R_RISCV_PCREL_LO12_I/R_RISCV_RELAX.
This can be argued as acceptable if we consider that GCC/Clang already emit R_RISCV_PCREL_HI20/R_RISCV_RELAX + R_RISCV_PCREL_LO12_I/R_RISCV_RELAX for PC-relative addressing,
so doing the same for GOT addressing is ok.
However, this can also be argued as an unnecessary size regression for GOT addressing, which is used heavily for -fPIC.
In addition, my argument that short ranges stands.

I'm not sure if I've understood your questions correctly, but as I see it:

The optimization for small absolute addresses aligns well with our recommendation to always use GOT for weak symbols. I believe this alignment should be convincing enough to adopt this approach, especially since the optimization is straightforward and could perhaps be implemented with fewer than 20 lines of code in the linker. If we don't want to do that, we probably need a strong reason to not do so.
For greater safety, we should mandate two RELAX relocs for GOT_HI20 and PCREL_LO12_I. Existing object files might contain machine code that jumps into the middle of the auipc+ld instruction sequence. While that's unlikely, it is not illegal, so we cannot guarantee that relaxing existing object files will be completely safe without a hint that the object file was generated by a compiler/assembler that is aware of this GOT optimization.

For c.li and addi part: it's more like completeness of this proposal IMO, and it may only benefit only small set of embedded program, but it's simple enough so I am happy to include that.
For linker optimization without R_RISCV_RELAX, I am also happy to see that, however I would like be come a separated PR to address that part, as I mention before it's would be new concept to RISC-V psABI, it's not necessary become blocker to this PR IMO.
For GCC implementation: Yeah, it's unfortunately we don't fix that on GCC land yet...we should find some people to fix that :(

Are there any further comments or discussions? I believe the proposal is in good shape and ready to be merged.


cdl: fix problems found in application testing

scripts: Don't shallow copy pNext in command recording
This is a workaround for #102
cdl: Make checkpoint managers thread safe

CI CrashDiagnosticLayer build queued with queue ID 253481.

CI CrashDiagnosticLayer build # 245 running.

CI CrashDiagnosticLayer build # 245 aborted.

CI CrashDiagnosticLayer build queued with queue ID 253577.

CI CrashDiagnosticLayer build # 246 running.

CI CrashDiagnosticLayer build # 246 passed.


Cannot do anything (KeyError: 'rhx_gis')

I use ubuntu 19.10, python3.7, instaloader 4.2.4
This part of code worked perfectly a day ago, but now i got unexpected error.
from instaloader import Instaloader, Post

link = 'https://www.instagram.com/p/Bo5zFRLFqXb/'

L = Instaloader()
shortcode = link.split('/p/')[1].replace('/', '')
post = Post.from_shortcode(L.context, shortcode)

Output:
Traceback (most recent call last):
  File "/home/adrian/Documents/Instabot/instagram.py", line 98, in <module>
    print(inst.if_post_exists('https://www.instagram.com/p/Bo5zFRLFqXb/'))
  File "/home/adrian/Documents/Instabot/instagram.py", line 24, in if_post_exists
    Post.from_shortcode(self.L.context, shortcode)
  File "/home/adrian/Documents/Instabot/venv/lib/python3.7/site-packages/instaloader/structures.py", line 79, in from_shortcode
    post._node = post._full_metadata
  File "/home/adrian/Documents/Instabot/venv/lib/python3.7/site-packages/instaloader/structures.py", line 142, in _full_metadata
    self._obtain_metadata()
  File "/home/adrian/Documents/Instabot/venv/lib/python3.7/site-packages/instaloader/structures.py", line 135, in _obtain_metadata
    self._rhx_gis_str = pic_json['rhx_gis']
KeyError: 'rhx_gis'

And one more example
from instaloader import Instaloader, Profile

usernake = 'adree67'

L = Instaloader()
profile = Profile.from_username(L.context, username)

Output:
Traceback (most recent call last):
  File "/home/adrian/.local/lib/python3.7/site-packages/instaloader/structures.py", line 510, in _obtain_metadata
    self._rhx_gis = metadata['rhx_gis']
KeyError: 'rhx_gis'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/adrian/Documents/Instabot/instagram.py", line 96, in <module>
    print(inst.if_user_exists('adree67'))
  File "/home/adrian/Documents/Instabot/instagram.py", line 15, in if_user_exists
    Profile.from_username(self.L.context, username)
  File "/home/adrian/.local/lib/python3.7/site-packages/instaloader/structures.py", line 465, in from_username
    profile._obtain_metadata()  # to raise ProfileNotExistException now in case username is invalid
  File "/home/adrian/.local/lib/python3.7/site-packages/instaloader/structures.py", line 512, in _obtain_metadata
    raise ProfileNotExistsException('Profile {} does not exist.'.format(self.username)) from err
instaloader.exceptions.ProfileNotExistsException: Profile adree67 does not exist.

Actually, these post and user exist, so i have no idea what is wrong. pls help

Duplicate #297


More section moving between README and INSTALL

Container install and usage of tkn-pac should be in INSTALL
Signed-off-by: Chmouel Boudjnah<EMAIL_ADDRESS>

Codecov Report

Merging #228 (8c1542a) into main (445d0c7) will increase coverage by 0.10%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #228      +/-   ##
==========================================
+ Coverage   67.49%   67.59%   +0.10%
==========================================
  Files          27       27
  Lines        1646     1648       +2
==========================================
+ Hits         1111     1114       +3
  Misses        420      420
+ Partials      115      114       -1

Impacted Files
Coverage Δ

pkg/git/git.go
85.71% <0.00%> (+5.06%)
:arrow_up:

cmd/pipelines-as-code/main.go
42.85% <0.00%> (+20.63%)
:arrow_up:

Continue to review full report at Codecov.

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

/retest


Expose interface to get and set internal log level

opentelemetry-cpp can emit internal log messages under certain scenarios and those log messages can be suppressed using opentelemetry.sdk.common.internal_log.GlobalLogHandler.SetLogLevel.
This may be useful particularly in our tests which trigger these conditions but we don't want these messages to pollute our test log.

Implemented in PR #134


Click the dock icon does not show application

Describe the bug
When the application is running, close the window so that it is running in menu bar and pin the icon to the dock. Clicking the dock icon does not bring the main window back up, only clicking the menu bar icon does.
Expected behavior
Clicking the dock icon will open the main screen
Diagnostic report (REQUIRED)
OrbStack info:
Version: 1.7.0
Commit: c5439c5612cdb5febbbc69169a4f3b11cdada6c2 (v1.7.0)
System info:
macOS: 15.1 (24B5035e)
CPU: arm64, 12 cores
CPU model: Apple M2 Max
Model: Mac14,5
Memory: 64 GiB
Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2024-09-02T20-42-59.885272Z.zip

Screenshots and additional context (optional)
No response

same happened to mine

macOS: 15.1 (24B5035e)

You should highlight that this is, and you are, running pre-release developer builds of non-stable macOS...
Yes, the same happened after I upgraded to 15.1 Developer Preview.

Also happens in the latest Orbstack 1.7.2 (17389) (Canary Branch)

Fixed for the next version.

Awesome - thank you!

Released in v1.7.3.


Data errors in various big.Int datatype

Bug description
If you are using big.Int.int64 that is not the real value, especially on the validator_delegation module.
Expected behavior
Expected much smaller value than<PHONE_NUMBER>0000

Closed with #45


Can't change temperature

If i ask for changing the temperature in Homekit, the phone can't find any devices that support temperature control.
No Problem with changing to automatic-mode, cooling-mode, heating-mode. Everithing else is really good. Thanks
(Edit: removed file download link)

Hi @marwi234! Could you create a Gist with your log entry or embed it as code block in your post in case it's a shorter one? This is a more secure way than having people download raw files.

https://gist.github.com/marwi234/df468bba82cc3c854254721869e30c6f

seem homekit problem and updated to ios 15.5 would fix it


[SPARK-20950][CORE]add a new config to diskWriteBufferSize which is hard coded before

What changes were proposed in this pull request?
This PR Improvement in two:
1.With spark.shuffle.spill.diskWriteBufferSize configure diskWriteBufferSize of ShuffleExternalSorter.
when change the size of the diskWriteBufferSize to test forceSorterToSpill
The average performance of running 10 times is as follows:(their unit is MS).
diskWriteBufferSize:       1M    512K    256K    128K    64K    32K    16K    8K    4K
---------------------------------------------------------------------------------------
RecordSize = 2.5M          742   722     694     686     667    668    671    669   683
RecordSize = 1M            294   293     292     287     283    285    281    279   285

2.Remove outputBufferSizeInBytes and inputBufferSizeInBytes to initialize in mergeSpillsWithFileStream function.
How was this patch tested?
The unit test.

Can one of the admins verify this patch?

Performance tuning, we need to set up the size.
Such as:
Filebuffersize is set to 64K or 16K
Serializerbuffersize is set to 512K or 2M.

These are already configurable, right? they're intentionally connected to other configs. Do you have a case where this is significantly suboptimal?

@srowen
sorry, the description of pr would be wrong. so  I modify to this  PR.
spark.shuffle.file.buffer is already configurable, in addition to other PR#18182 to describe it.
spark.shuffle.sort.initialSerBufferSize, It is a new configuration to configure SerializerBufferSize.

I don't think that addresses my question? when would you set this separately?

@srowen
thanks for review it.
In our performance tuning, find the row of record the size of more than 2M.  so need to initialSerBufferSize configurable. but Change initialSerBufferSize  is not good for performance tuning.
However, change spill diskWriteBufferSize  is good for performance tuning.
So I did a little experiment, change the size of the diskWriteBufferSize to test.
set diskWriteBufferSize to 1M, 512K, 256k, 256K, 128K, 64K,etc.
diskWriteBufferSize           1M    512K    256K    128K    64K	32K    16K    8K     4K
RecordSize:2.5M       	742	   722     694	  686      667	668	  671    669    683
RecordSize:1M	        294	   293     292	  287      283	285    281     279    285
In order to eliminate the interference of other factors, these results are tested take the average of 10 times.
please review code again.
thanks.

There's no description of your test or what the numbers mean. I assume they're times. Why would a smaller buffer be faster?

@srowen
yes, you're right, It's time, and their unit is MS.
the numbers Is the average time of 10 times running forceSorterToSpill.
I assume big buffer copies time consuming longer than small buffer. Although the small buffer has been copied many times.  or local file systems write big buffer that time consuming longer than small buffer.

@gatorsmile
Can you review this code.
thanks.

cc @jiangxb1987 @cloud-fan

the change looks reasonable, but you really need to update your PR description. You are not improving some config, but introducing a new config which is hard coded before.

It would be also great to update the explicit performance tuning result in PR description.

retest this please

retest this please

Test build #78967 has started for PR 18174 at commit 62ccd4e.

Test build #78967 has finished for PR 18174 at commit 62ccd4e.

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

Merged build finished. Test FAILed.

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

retest this please

Test build #78981 has started for PR 18174 at commit 62ccd4e.

Test build #78981 has finished for PR 18174 at commit 62ccd4e.

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

Merged build finished. Test PASSed.

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

retest this please

Test build #79074 has started for PR 18174 at commit f6d895c.

Just to understand what is happening.

Shuffle records are written to a serialisation buffer (1M) after serialisation
The serialised buffer is written to in-memory-sorter’s buffer
once in-memory sorter’s buffer is full, the data is copied to sorter’s disk buffer (1M)
the sorter’s disk buffer is written out to a buffered output stream (buffer = 32k)

I am guessing reducing the sorter’s disk buffer (in step 3) is helping because it triggers fewer writes at the step 4.

Test build #79074 has finished for PR 18174 at commit f6d895c.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

retest this please

retest this please

retest this please

Test build #79123 has started for PR 18174 at commit 3efc743.

Test build #79123 has finished for PR 18174 at commit 3efc743.

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

Merged build finished. Test PASSed.

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

LGTM, pending test

thanks.

retest this please

retest this please

Test build #79195 has started for PR 18174 at commit dc3997a.

Test build #79195 has finished for PR 18174 at commit dc3997a.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

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

Merged build finished. Test FAILed.

retest this please

retest this please

Test build #79219 has started for PR 18174 at commit dc3997a.

Test build #79219 has finished for PR 18174 at commit dc3997a.

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

Merged build finished. Test PASSed.

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

thanks, merging to master!

@cloud-fan
thanks.


Excluding tags query / match none option

Not sure if this is something that makes sense for the general public. Let me know if you are interested of merging this in and I can add some tests and update the README.md file.
I've added support for a match: :none option that would execute a NOT IN query.

Great work - looks like there's a few Rubocop tweaks to make, though. If you're able to fix those and squash your work into a single commit, I'll then very happily merge it in :)

Wonderful - thanks for this! :)


"Reset Buff and Debuff Positions" button should be a "Scan" button instead

There's no reason to reset the positions and require the user to reload the app. The button should just be a manual way of triggering a scan for buffs/debuffs. Then buttons which call the function can also be added to the appropriate Errors for Buff/Debuff bars when they are not found to trigger a manual rescan.
beginRendering() should probably be split into two functions with find(De)BuffsBar() functions moved into their own wrapper (findBars() or a better named function). Rendering has nothing to do with finding the bars anyways - it was mostly setup the way it is now as finding the bars is a requirement for the overlay to function properly.

Made a typo when trying to close this. ("closest")


Decouple / suggest the symfony/console dependency

In short: I would like to check on that; is there anything why the console component is actually required at the moment?

@afoeder all CLI commands implemented in here strictly depend on symfony/console


SSL certificate problem: self signed certificate

Hello,
I am unable to use our on-prem Git repo with a self signed certificate with GitSavvy and Sublime Text 3.  Normally, I would ignore the certificate if running Git from the CLI:
git -c http.sslVerify=false push origin master
Is there an option in GitSavvy settings to configure that?
Thanks.

Hi @ncatenacci!
You can look at this setting
https://github.com/divmain/GitSavvy/blob/817a740bdca59923f5bf767b126c032106c4af5f/GitSavvy.sublime-settings#L208-L215

Thank you!  That worked.


Fixes multi lang support for scholarships

What's this PR do?
Fixes scholarships for multi lang supports
How should this be reviewed?
Do scholarships show up on global translation if its only provided on the US translation?
Does the US translation still show the scholarship?
Any background context you want to provide?
This is another example of why I'm not a fan of the entity wrappers for global work. The wrapper had the correct language applied, but it still returned the en value (I'm assuming it prefers returning something over returning). This obviously does not work for our business logic!
Relevant tickets
Fixes #6536

🚢

🚂 🚋 🚋


Get pointer to lfs_file_t type from the pathname.

Hello All.
Is there a way to get a pointer to "lfs_file_t" structure for a file by the pathname?
The reason I want it:
I keep a list of all open files in a dedicated array of lfs_file structures. When  "lfs_remove(&lfs, pathname);" is called I want to verify that the file with "pathname" is not open i.e there is no correspondent lfs_file in my list.
As far as I could see, Little FS deletes open files without error messaging.
Thanks.

Hi @baranovus, I don't think this is possible with littlefs currently.
One option is wrapping lfs_file_open and lfs_file_close and check the state of the open file list on both.
littlefs does let you delete open files without an error. However it does internally mark the open files such that they won't be written out on close. I don't know if this does what you're looking for though.
https://github.com/ARMmbed/littlefs/blob/master/lfs.c#L1827-L1829

Thank. I will try to keep the pathname hash codes in my list of open files.


Create servlet-printout/test-output directory

A lot of servlet-printout tests fail on clean checkout because the test-output directory doesn't exist. This patch creates it before running test cases.

Strange we haven't encountered this. Running mvn clean install works just fine. Which JDK/Maven are you using?

Suppose this explains it: https://github.com/nls-oskari/oskari-server/blob/master/servlet-printout/pom.xml#L20. Thanks, I'll take a look at this.

Note that mvn clean does not remove test-output directory even without skipTests true tag in pom.xml, only target. Please try repeating the issue by deleting test-output manually.

Yep. We haven't been running the tests ourselves because there's the skipTests flag on the pom.xml that causes tests not being run on that module... Not sure of the reason for this. Propably just a slip. Anyway my confusion is explained by this since with the skipTests-flag I don't need to have a test-output directory (don't even have it in the first place) and for that reason haven't stumbled into this issue. I'll merge this to the develop-branch and remove the skipTests-flag once tested.

Great, thanks!
Even after this fix is applied, I'm getting several errors (on Oracle JDK 1.8.0_40/Maven 3.3.9):
Tests in error:
  testGeojsPrintTestJsonAsPPTX(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest): Invalid args for test
  testWmtsPrintJsonAsPNG(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest)
  testWmtsPrintZoom3JsonAsPNG(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest)
  testWmtsPrintZoom7JsonAsPNG(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest)
  testWmtsPrintZoom7png8opacityJsonAsPNG(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest)
  testWmtsPrintZoom7jpegopacityJsonAsPNG(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest)
  testWmtsPrintZoom7png8opacityJsonAsPDF(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest)
  testWmtsPrintZoom7png8opacityJsonAndTemplateAsPDF(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest)
  testWmtsLayerPrintZoom7png8opacityAndTemplateWithTableContentAsPDF(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest)
  testWmtsLayerPrintZoom7png8opacityAndTemplateWithPagedTableContentAsPDF(fi.nls.oskari.printout.ws.jaxrs.map.WebServiceMapProducerResourceTest)

Tests run: 34, Failures: 0, Errors: 10, Skipped: 0

It seems that PPTX support was removed in 42c6f617798557d7f2d1368afdd53d6ffc45c0b5, but the test are still there and the readme still mentions it.
I'm not sure about the WMTS tests, do they fail bacause of invalid test JSON data or a bug in constructing LayerDefinition.

I think the tests just haven't been updated for some time. The WMTS layers config got changed a while back and pptx (and some other like docx maybe) support was dropped on a library update change since we didn't use it anyway and as such can't maintain it properly.

Merged the change to develop-branch. There's still a ticket open for making the test actually work

I was thinking that it might actually be better to create the test files under target instead of test-output, so that they could be deleted with mvn clean. But let's take it one step at the time, it would be great to have the test pass with minimal changes first.
By the way, if you always merge pull requests to develop branch first, I would suggest that you change the default branch in GitHub to develop, and/or document this practice in the root README.md. I think it would save you from some manual work if pull requests are created on top of a correct branch :)


Fedora 28, platform not support

As the topic ..
I using fedora in version 28 .. because I like,
Unfortunately whole flow project for this environment does not works.
I try to use flow with react, but I'm really care for operating system fedora, where I consider between TS and Flow.

Flow runs on Linux without problems. You will have to be more specific if you want to get any help.


Profile again

Looks like the hold is up in pruning lineages, which isn't utilized in the model anyway, only in lineage synthesis. This is to be expected because this is done recrusively through the tree and walks through the tree several times.

It was suggested that we individually profile the figure creation process (not the testing) as I usually do. We can identify which figure takes the most time. My bet is on figure 5 (AIC).

To profile:
python3 -m cProfile -o profile genFigures.py 5
gprof2dot -f pstats --node-thres=5.0 profile | dot -Tsvg -o profile.svg

AIC figure

Figure 4 (analyzing over an increasing number of lineages or starting cells)

Seems like making pruning faster would be the best bet in terms of speeding up figures.

Wrote a short script to generate all figures at once and then profiled it:

Figure 6 (performance vs distribution divergence)

@shak360 note that you have to remove any multithreading to get accurate profiling. thread.lock just means the thread is waiting for another to finish.

beta_parent_child_func is a good candidate for numba.

@shak360 please profile again. My changes have hopefully reduced some of the slower parts.

Figure 3 (after recent speed changes)

FIgure 4 (after recent changes)

Is there a need to copy the tree before pruning? Why not just prune the original?

I was just paranoid about losing information, or data that was generated. I thought it was better to keep both an unpruned and pruned copy of the tree in memory, regardless of the user's final choice. I like the idea of just having one tree, where the pruned (the cells that didn't survive) are just "hidden".

Great. I just made a change that should speed up get_nonroot_gammas(). Once you've changed the pruning re-profile—I think all the slow spots in the current profiling will be gone.

I think we can easily speed this up by 3-5X still.

(figure 3)

(figure 4)

Think we're great at this point.


Add support for full metadata TSVs that are dynamically generated

Replace the hard-coded links to the pre-generated TSVs with a request to /fetch/manifest/files?format=full&filters={"projectId":{"is":"some UUID"}} and handle the resulting retry-after dance, just like for the manifests.

This will be slow, initially but see https://github.com/databiosphere/azul/issues/1138

@NoopDog I've added #1139 as a blocker. That ticket is currently in dev. I think you should retract the promotion of this change to  staging.


Can I use bgfx to build general GUI program?

Hi authors,
I just want to write some Android/iOS apps, not games. Is bgfx suitable for me?

Most likely - no, creating generic UI apps is more then just rendering graphics. This also includes accessibility support (like Voice Over in iOS) and native font rendering, and all animations. Even huge frameworks like Qt are struggling to get "native feel" on iOS and Android, so I don't think it's realistic to just create native feeling app from scratch without spending enormous effort.
That being said, if your app design is really unorthodox in terms of native UI - yes, then it's most likely possible. One of the biggest challenge is to get native fonts into your app, for this you can use my library https://github.com/jimon/nativefonts :) I don't have idea how to get accessibility work properly, and Apple will most likely be unhappy with your app if accessibility doesn't work properly. Also getting custom scroll lists to feel like native is HUGE PAIN IN THE BUTT, but I already did it, so you can get started with help of my code here https://github.com/beardsvibe/leengine/blob/master/src/scrollview.c
PS. If you're really serious about it, I have a project on hold, it's a material design library on top of graphics API, kinda like imgui but with really nice graphics, and with native fonts. Would be nice to start developing it again.

Depends on which level you want to write your GUI... bgfx is just rendering library, so writing UI controls is totally up for you. Some people are using bgfx + nanovg for this. For example: https://github.com/ollix/moui

I get it. Thank you!


Display used server IP in verbose mode

Checklist

[X] I've searched for similar feature requests.

Enhancement request
When running curl in verbose mode, it will print every ip it tries to connect to, until a connection is stablished.
~ ➜ curl -v www.google.com
*   Trying [2001:db8::3:8bd0]:80...
*   Trying [2001:db8::3:8bd1]:80...
* Connected to www.google.com (2001:db8::3:8bd1) port 80 (#0)
> GET / HTTP/1.1

The above example request tells the user that curl was trying to connect to both 2001:db8::3:8bd0 and 2001:db8::3:8bd1, while ultimately a connection was established to 2001:db8::3:8bd1.
While ideally httpie would implement the same output as curl, it should at least be able to print the IP it connected to.

Problem it solves
It is very common to have multiple IPv4 and IPv6 addresses within DNS and which one exactly was used is very relevant when debugging or in cases where different ip's may return different content.

Hey @SRv6d, I am a newbie to Open-source,  can I pick this up?

Hey @SRv6d, I am a newbie to Open-source, can I pick this up?

Of course you can, although your PR would have to be approved by a httpie maintainer (which I am not).

@turingnixstyx Any updates on this? I played around with it for a bit this morning, and it's not as easy as it looks on the surface.
All of the low level http requests are being handled by requests which in turn uses urllib3. Neither of these provide this information while attempting the connection (not even as debug logs we could try to capture and rewrite). I got a PoC working locally where we can access the IP of the successful connection, but it uses undocumented APIs and is not compatible across Python/requests versions (so I don't think that's viable either).
The only robust solution would be to implement the get_connection function in HTTPie's adapter to return a custom urllib3.ConnectionPool which does expose this information. This would be very involved and way out of my wheelhouse. Perhaps somebody smarter could figure it out :p

@SRv6d If you're still in search of a solution, I found https://github.com/httptoolkit/httptoolkit while poking around. It's open source and would allow you to open a shell which sends all your traffic through a local proxy capturing all the connection attempts. ⚠ I have not used it or inspected the source code; I cannot vouch for or endorse it in any way. ⚠ But it does look like it could do some of what you want.

Somewhat partial solution would be to at least include the IP which httpie connected to (as opposed to listing all the attempted IP addresses). This should be easy enough. Threw some code into client.py (I realize this is not where the output should happen, just a POC) and this is how the output looks like:
$ python -m httpie https://storage.googleapis.com/generate_204
Connected to storage.googleapis.com (<IP_ADDRESS>) on port 443

HTTP/1.1 204 No Content
Content-Length: 0
Cross-Origin-Resource-Policy: cross-origin
Date: Sat, 30 Dec 2023 00:49:08 GMT


Install with protobuffer from brew

Version of protoc (protoc --version)
libprotoc 3.0.0
Version of ProtocolBuffers.framework
2.4.1
Description
You can now install protobuffer from brew:
brew install --devel protobuf

So after I installed protobuf-swift:
brew install protobuf-swift

I get the following output no matter which source dir:
protoc --swift_out=swift *.proto
dyld: Library not loaded: /usr/local/opt/protobuf/lib/libprotobuf.9.dylib
  Referenced from: /usr/local/bin/protoc-gen-swift
  Reason: image not found
--swift_out: protoc-gen-swift: Plugin killed by signal 5.

Does brew not put the lib in /usr/local/opt/protobuf/lib/libprotobuf.9.dylib?

You version 10 of libprotobuf. Check out [https://github.com/alexeyxo/protobuf-swift/issues/118](same issue)


Change the way user secret reference is passed to the connectors

Currently, connectors receive appName/appNamespace string inside a request, e.g. notebook/default. Based on this string, they access vault to retrieve credentials in m4d/user-creds/appName/appNamespace/system.
Following https://github.com/IBM/the-mesh-for-data/pull/398, connectors should receive a link to vault plugin for reading a secret.
@revit13 - please describe what information needs to be passed to the connectors and how to configure vault/connectors for this purpose.

As for what information needs to be passed to the connectors, this should be somehow similar to the information passed to the modules to retrieve dataset credentials using Vault client:
1) address:  Vault address, example: http://vault.m4d-system:8200/ - this might be taken by the connectors directly from m4d-config configMap
2) AuthPath is the path to auth method used to login to Vault i.e  v1/auth/kubernetes/login - the manager extracts that from cluster-metadata configMap of the cluster.
3) Role is the Vault role used for retrieving the credentials, example: "connector"  - this should be passed to the connector or placed in m4d-config configMap. Please see more details below.
4) SecretPath is the path of the secret holding the credentials in Vault, for example
/v1/kubernetes-secrets/example?namespace=m4d-system
As for the SecretPath  - the Vault path in which the plugin is enabled (for example kubernetes-secrets) comes from the connector - it is currently hard-coded in the connector code, for example katalog connector knows the path in Vault that it needs to use to read dataset creds. As opposed to the modules part of this field (the plugin path) should be known to the connector. the secret details should be passed to the connector.
Here is a description of how to use those values with Vault client to get the secret:
https://ibm.github.io/the-mesh-for-data/contribute/module/#credential-management
As for how to configure vault/connectors for this purpose:
To allow a connector to access that path we need to:

define policy to allow to access all secrets in that path- I currently use a script to add such policy but the proper way is to define it once in the plugin installation after the plugin is enabled.
Add role to connect identity to policy: in this case the identity is the service account of the connector and the policy is the one mentioned above. I use a script to add role to the modules in m4d-blueprints but that functionality should be moved to the manager. As for the connectors I am not sure if the manager should add such role as this role should be defined once for each connector so we can insert that to the script as well. Anyway, to add a role the kueberetes auth path of the cluster should be known together with the policy name and the connector service account name.


[Release] Stage to Main

https://github.com/adobecom/milo/pull/2178
https://github.com/adobecom/milo/pull/2093
https://github.com/adobecom/milo/pull/2181

@Roycethan @JackySun9 @tedAir @Dli3 @sigadamvenkata
PR https://github.com/adobecom/milo/pull/2181 got merged to stage before this already approved PR could get merged in main because of an urgent issue on production.  This just reverts the code merged in PR https://github.com/adobecom/milo/pull/2059
Could you please help do a quick round of check again.
cc @Blainegunn  @ryanmparrish @rgclayton @narcis-radu @drashti1712 @3ch023

@Roycethan @JackySun9 @tedAir @Dli3 @sigadamvenkata PR #2181 got merged to stage before this already approved PR could get merged in main because of an urgent issue on production. This just reverts the code merged in PR #2059
Could you please help do a quick round of check again.
cc @Blainegunn @ryanmparrish @rgclayton @narcis-radu @drashti1712 @3ch023

ok re-verified on stage - apart from an issue (causing due to a CDN change ) but not related to this PR , ok from home page side.
For everyone's reference marking here: https://jira.corp.adobe.com/browse/WPS-25099?focusedCommentId=41296503&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-41296503

Adding do-not-merge as another PR merged to stage(https://github.com/adobecom/milo/pull/2123) has been added to this. We might need to revert the stage PR or re-verify the changes on this one. Waiting for confirmation on the same.
@salonijain3 @overmyheadandbody @Blainegunn @Ruchika4

Do not merge label has been removed, as the other PR on stage has been reverted and will be raised after this PR goes to main as per the process.


Finetuning Errors

Hey I'm getting the following fine tuning errors on a multi gpu machine. I made sure to re-patch keras, but haven't had any luck. Any idea what the issue is?
W0927 22:27:35.617535<PHONE_NUMBER>20896 deprecation.py:323] From /usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/clip_ops.py:286: where (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.where in 2.0, which has the same broadcast rule as np.where
W0927 22:27:36.428683<PHONE_NUMBER>20896 deprecation.py:506] From /usr/local/lib/python2.7/dist-packages/tensorflow/python/training/adagrad.py:76: calling init (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Call initializer instance with the dtype argument instead of passing it to the constructor
global_step: (VariableV2): /job:localhost/replica:0/task:0/device:GPU:0
2019-09-27 22:27:44.207266: I tensorflow/core/common_runtime/placer.cc:54] global_step: (VariableV2)/job:localhost/replica:0/task:0/device:GPU:0
global_step/Assign: (Assign): /job:localhost/replica:0/task:0/device:GPU:0
2019-09-27 22:27:44.207316: I tensorflow/core/common_runtime/placer.cc:54] global_step/Assign: (Assign)/job:localhost/replica:0/task:0/device:GPU:0
global_step/read: (Identity): /job:localhost/replica:0/task:0/device:GPU:0
2019-09-27 22:27:44.207337: I tensorflow/core/common_runtime/placer.cc:54] global_step/read: (Identity)/job:localhost/replica:0/task:0/device:GPU:0
w/Initializer/random_normal/RandomStandardNormal: (RandomStandardNormal): /job:localhost/replica:0/task:0/device:GPU:0
2019-09-27 22:27:44.207349: I tensorflow/core/common_runtime/placer.cc:54] w/Initializer/random_normal/RandomStandardNormal: (RandomStandardNormal)/job:localhost/replica:0/task:0/device:GPU:0
Traceback (most recent call last):
File "training.py", line 162, in
estimator_model = tf.keras.estimator.model_to_estimator(keras_model=model, config=run_config)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/estimator/init.py", line 73, in model_to_estimator
config=config)
File "/usr/local/lib/python2.7/dist-packages/tensorflow_estimator/python/estimator/keras.py", line 450, in model_to_estimator
config)
File "/usr/local/lib/python2.7/dist-packages/tensorflow_estimator/python/estimator/keras.py", line 331, in save_first_checkpoint
saver.save(sess, latest_path)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1173, in save
{self.saver_def.filename_tensor_name: checkpoint_file})
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 950, in run
run_metadata_ptr)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1173, in run
feed_dict_tensor, options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1350, in do_run
run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1370, in do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device for operation w/Initializer/random_normal/mul: Could not satisfy explicit device specification '' because the node node w/Initializer/random_normal/mul (defined at training.py:90) placed on device Device assignments active during op 'w/Initializer/random_normal/mul' creation:
with tf.device(None): </usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/resource_variable_ops.py:602>  was colocated with a group of nodes that required incompatible device '/job:localhost/replica:0/task:0/device:GPU:0'. All available devices [/job:localhost/replica:0/task:0/device:CPU:0, /job:localhost/replica:0/task:0/device:XLA_CPU:0, /job:localhost/replica:0/task:0/device:XLA_GPU:0, /job:localhost/replica:0/task:0/device:XLA_GPU:1, /job:localhost/replica:0/task:0/device:XLA_GPU:2, /job:localhost/replica:0/task:0/device:XLA_GPU:3, /job:localhost/replica:0/task:0/device:XLA_GPU:4, /job:localhost/replica:0/task:0/device:XLA_GPU:5, /job:localhost/replica:0/task:0/device:XLA_GPU:6, /job:localhost/replica:0/task:0/device:XLA_GPU:7, /job:localhost/replica:0/task:0/device:XLA_GPU:8, /job:localhost/replica:0/task:0/device:XLA_GPU:9, /job:localhost/replica:0/task:0/device:GPU:0, /job:localhost/replica:0/task:0/device:GPU:1, /job:localhost/replica:0/task:0/device:GPU:2, /job:localhost/replica:0/task:0/device:GPU:3, /job:localhost/replica:0/task:0/device:GPU:4, /job:localhost/replica:0/task:0/device:GPU:5, /job:localhost/replica:0/task:0/device:GPU:6, /job:localhost/replica:0/task:0/device:GPU:7, /job:localhost/replica:0/task:0/device:GPU:8, /job:localhost/replica:0/task:0/device:GPU:9].

Device assignments active during op 'w/Initializer/random_normal/mul' creation:
with tf.device(None): </usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/resource_variable_ops.py:602>
Original stack trace for u'w/Initializer/random_normal/mul':
File "training.py", line 162, in
estimator_model = tf.keras.estimator.model_to_estimator(keras_model=model, config=run_config)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/estimator/init.py", line 73, in model_to_estimator
config=config)
File "/usr/local/lib/python2.7/dist-packages/tensorflow_estimator/python/estimator/keras.py", line 450, in model_to_estimator
config)
File "/usr/local/lib/python2.7/dist-packages/

The logs are a bit hard to parse (& seem incomplete? I can't find the final error). Can you post the entire log file (perhaps a pastebin link)?

Yep! I'll post a link with the full log when I have a moment. From what I can tell the key parts were:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device for operation w/Initializer/random_normal/mul: Could not satisfy explicit device specification '' because the node node w/Initializer/random_normal/mul (defined at training.py:90) placed on device Device assignments active during op 'w/Initializer/random_normal/mul' creation:
and
resource_device_name='/job:localhost/replica:0/task:0/device:GPU:0' supported_device_types_=[CPU] possible_devices_=[]

I've never seen that before. Are you able to run inference on the same GPU?

Yep I can run inference just fine. It's just on training that I run into
this issue.
On Wed, Oct 2, 2019 at 10:04 AM Nitish Shirish Keskar <
<EMAIL_ADDRESS>wrote:

I've never seen that before. Are you able to run inference on the same GPU?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/salesforce/ctrl/issues/32?email_source=notifications&email_token=AFJNOQGOASKETIZPHOZ7BI3QMTBABA5CNFSM4I3LPKC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAFJCWA#issuecomment-537563480,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFJNOQC55O4NIKANAQWNJ7TQMTBABANCNFSM4I3LPKCQ
.

Made a pull request that was able to fix the issue. Not sure if you want to merge it in, but figured I'd put it up if anyone else was looking for a solution #51


[video_player] Update Usage section of README

This PR provides additional context to some of the capabilities of the video_player plugin. Specifically, it adds information on the limitations on the Data Sources and Constructors for the VideoPlayerController, providing information about looping and its interaction with the seekTo method, and closed captioning.
Pre-launch Checklist

[X] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[X] I read the Tree Hygiene wiki page, which explains my responsibilities.
[X] I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
[X] I signed the CLA.
[X] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[ ] I listed at least one issue that this PR fixes in the description above.
[X] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
[X] I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
[X] I updated/added relevant documentation (doc comments with ///).
[X] I added new tests to check the change I am making, or this PR is test-exempt.
[X] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

(I've removed the issue link from the PR description, since this doesn't actually address the issue it referenced. But this PR doesn't need an issue.)

Are you still planning on updating this PR to address the review comments above?

I am currently not planning to update the PR, but I greatly appreciate your
time in reviewing it.
They have informed me greatly about improving my own open-source
contributions in the future.
On Thu, Nov 17, 2022 at 4:17 PM stuartmorgan @.***>
wrote:

Are you still planning on updating this PR to address the review comments
above?
—
Reply to this email directly, view it on GitHub
https://github.com/flutter/plugins/pull/6389#issuecomment-1319216543,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATRXFLMN2FQ5TM4GD6FPAC3WI2OEXANCNFSM6AAAAAAQJ5ZYNU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Given that, closing. Please feel free to open a new PR if you decide to revisit this.


How to exclude some routes when using nuxt generate

current router
 page
 --- about.vue
 --- index.vue

I just want to generate an about HTML file when using nuxt generate, how can I do that?

I was wanting to do the same thing today. My solution was to use a custom module to leverage the internal plugin system (Note that in the latest releases these are now called hooks and have been re-worked a bit. They don't appear to be documented yet.)
I'm not sure if this is the best approach but it certainly seems to do the trick for now.
modules/custom-generate.js
module.exports = function () {
  this.nuxt.hook('generate:extendRoutes', async routes => {
    const whiteList = ['/about', '/login'];
    const routesToGenerate = routes.filter(page => whiteList.includes(page.route));
    routes.splice(0, routes.length, ...routesToGenerate);
  });
};

nuxt.config.js
modules: [
  '~modules/custom-generate.js'
],

You can also just use the generate.routes property in nuxt.config.js to manually pick what routes to generate. It even takes an async function.

@qm3ster Good point. I think the only catch is that generate.routes gives you control over dynamic routes only. If you want to blacklist some static routes from generate is there a better way?

No, setting anything to generate.routes disables route autogeneration.
The only reason it's documentation heavily mentions dynamic routes is that it was created before extendRoutes was, and was the only way to generate any dynamic routes at the time.

I tried but it did not work
 generate: {
    routes: ["about"]
  },

How to setting generate.routes make nuxt  disables route autogeneration ? Can you show the code?
Nuxt Version : 1.3.0

@dan-peterson @SzHeJason I was wrong, this has been changed a gorillion months ago.
The generate.routes are now merged with autodetected routes.
generate:extendRoutes seems like the only way now.

For all googlers, this is possible via regex in generate.exclude. if the route URL matches the regex, the page will be excluded from generating but can still be served as "SPA route"


运行时出错，我是直接下载的完整代码，但是在运行时出现如下错误：

Traceback (most recent call last):
File "train.py", line 494, in
main(opt)
File "train.py", line 140, in main
target_net = models.init_model(name=args.targetmodel, pre_dir=pre_dir, num_classes=dataset.num_train_pids)
File "/Eric/works/Adversarial-attack-on-Person-ReID-With-Deep-Mis-Ranking/models/init.py", line 41, in init_model
checkpoint = torch.load(pre_dir)
File "/opt/conda/lib/python3.6/site-packages/torch/serialization.py", line 358, in load
return _load(f, map_location, pickle_module)
File "/opt/conda/lib/python3.6/site-packages/torch/serialization.py", line 542, in _load
result = unpickler.load()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa8 in position 0: ordinal not in range(128)

python 3.6.9
torch == 0.4.1
ubuntu  16.04
cuda 10.2

./models/init.py 文件代码作如下修改：
checkpoint = torch.load(pre_dir)  修改为
from functools import partial
import pickle
pickle.load = partial(pickle.load, encoding="latin1")
pickle.Unpickler = partial(pickle.Unpickler, encoding="latin1")
checkpoint = torch.load(pre_dir, map_location=lambda storage, loc: storage, pickle_module=pickle)
应该可以解决这个问题(也是在别的地方看到的解决办法，确实有效，这里贴一下，如果有别的小伙伴遇到同样的问题可以尝试一下。

方法二
直接修改
checkpoint = torch.load(pre_dir, encoding="latin1")

In fact, the essence of this issue is that the model was pretrained and saved in Python2.7 but reload in Python3+. So the perfect configuration for this project is python 2.7 + Pytorch 0.4.0. I will add some comments for that. Thanks for your enthusiasm!


Use ngMap with tab - only the first tab will be initiated

The map in the first active tab works fine but all the other maps do not work.
I tried tab features of bootstrap and angular-bootstrap but both have the same issue.
Code sample which uses angular-bootstrap.
  <tabset>
	<tab heading="Static title 1"><map center="[40.74, -74.18]" /></tab>
	<tab heading="Static title"><map center="[42.74, 34.18]" /></tab>
  </tabset>

Please close the map tag with </map>

Thank you for the response.
This is not the solution. I also tried the following code but got the same result.
  <tabset>
    <tab heading="Static title 1"><map center="36.74, 139.11"></map></tab>
    <tab heading="Static title"><map center="36.74, 139.11"></map></tab>
  </tabset>

Please provide me a plnkr that is not working

http://plnkr.co/edit/DZj5RkDUHk9C8oTvsjcf

If you remove bootstrap css or js, it works again.
Thus, it's not a problem of ngMap, but a problem of bootstrap.

Please add your full example in plunker, next time, so that we can quickly see what's the issue without guessing around.

Thanks for checking. The reason to use bootstrap is to use the tab feature.
If removed there is no way to initialize the map.

bootstrap is out of scope on this discussion. I can't and won't answer
outside of ngMap.
On Sun, Aug 23, 2015 at 10:15 PM, Lei Xu<EMAIL_ADDRESS>wrote:

Thanks for checking. The reason to use bootstrap is to use the tab feature.
If removed there is no way to initialize the map.
—
Reply to this email directly or view it on GitHub
https://github.com/allenhwkim/angularjs-google-maps/issues/279#issuecomment-133991379
.

Understood. Thanks.

I had a very similar issue. The only difference I guess is that I had tabs inside a ui-bootstrap modal.
Add an ng-if on the map element in the 2nd tab and run a function that sets the boolean for the ng-if to true on select of the 2nd tab.  Something like this.

same error.... someone know how solve it?

Please add plunder example

it's the same http://plnkr.co/edit/DZj5RkDUHk9C8oTvsjcf?p=preview

The solution I listed above works in your plunker.
$scope.showMap = false;

    $scope.reRednerMap = function() {
        $scope.showMap = true;
        google.maps.event.trigger($scope.maps[1], 'resize');
        google.maps.event.trigger($scope.maps[2], 'resize');
    }

<tab heading="One"><map center="London"></map></tab>
    <tab heading="Two" select="reRednerMap()">
      <map ng-if="showMap" id="liverpool" center="Liverpool"></map>
    </tab>

thanks @mnovak20

@mnovak20 's solution in plunker, http://plnkr.co/edit/fUECI0?p=preview.
This is another solution with delayed init with init-event.
http://plnkr.co/edit/K1kFDh?p=preview
  <tabset>
    <tab heading="One" ng-click="$emit('a')">
      <map center="London"></map>
    </tab>
    <tab heading="Two" ng-click="$emit('b')">
      <map init-event="b" center="Liverpool"></map>
    </tab>
    <tab heading="Three" ng-click="$emit('c')">
      <map init-event="c" center="Andria"></map>
    </tab>
  </tabset>


Passing raw DOM elements

So... currently it seems I can't pass raw DOM elements to virtual dom.
I propose that when virtual dom is passed a DOM element to be inserted to the tree, insert it to the childNodes queue as is without wrapping it in a VNode. And have the diffing algo skip actual diffing and simply insert the raw dom element as is (replacing the previous one ofc)
I have put together a simple patch here https://gist.github.com/awalGarg/37f77ca6d97a7850ccbc#file-diff-diff which did the trick in my immediate use case, but I haven't tested it at all. It looks pretty naive to me, but ofcourse can be improved (or rewritten).

Seems like a use case for widgets.


PreparedStatement.getParameterMetaData has problems with encyrpted connections

Driver version or jar name
HEAD
SQL Server version
2016
Client operating system
Win 7
Java/JVM version
1.8.0_xxx
Table schema
from the driver test cases. see code below.
Problem description
calling PreparedStatment.getParameterMetaData throws this exception:
com.microsoft.sqlserver.jdbc.SQLServerException: Operand type clash: void type is incompatible with date encrypted with (encryption_type = 'RANDOMIZED', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'JDBC_CEK', column_encryption_key_database_name = 'XYZ')
Expected behavior and actual behavior
no exception should be thrown
Repro code
add one line to the existing jdbc test cases. In AESetup.java, add the last line here:
    protected static void populateDateNormalCase(LinkedList<Object> dateValues) throws SQLException {
        String sql = "insert into " + dateTable + " values( " + "?,?,?," + "?,?,?," + "?,?,?," + "?,?,?," + "?,?,?," + "?,?,?" + ")";

        pstmt = (SQLServerPreparedStatement) Util.getPreparedStmt(con, sql, stmtColEncSetting);
        ParameterMetaData parameterMetaData = pstmt.getParameterMetaData();

Hi @gs-rezaem. Thanks for filing out this issue. As of now, Microsoft JDBC driver does not support retrieval of parameter metadata for encrypted columns. Please check the documentation here.
We will provide the support in near future. Will update you on this github issue once completed.  Thanks!

Related Issue #887
'sp_describe_undeclared_parameters' doesn't support temp tables.
Proposed fix to fix both issues:
Provide an option to switch to SET FMTONLY to gather Parameter MetaData since 'sp_describe_undeclared_parameters' has known limitations and backward compatibility issues.


Trouble reproducing example

Hi. I cloned this repo in hopes of running the two commands you mentioned in the README.md.
I do get this error when running bazel run //:copy_compile_commands:
Starting local Bazel server and connecting to it...
WARNING: --enable_bzlmod is set, but no MODULE.bazel file was found at the workspace root. Bazel will create an empty MODULE.bazel file. Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel. For more details, please refer to https://github.com/bazelbuild/bazel/issues/18958.
INFO: Repository bazel_compdb instantiated at:
  /Users/eduardokapp/Desktop/Estudos/vscode-bazel-cpp-example/WORKSPACE:14:15: in <toplevel>
Repository rule git_repository defined at:
  /private/var/tmp/_bazel_eduardokapp/10b1ccf4a88cab284280890aabc80f9a/external/bazel_tools/tools/build_defs/repo/git.bzl:189:33: in <toplevel>
ERROR: /private/var/tmp/_bazel_eduardokapp/10b1ccf4a88cab284280890aabc80f9a/external/bazel_tools/tools/build_defs/repo/git_worker.bzl:210:9: An error occurred during the fetch of repository 'bazel_compdb':
   Traceback (most recent call last):
	File "/private/var/tmp/_bazel_eduardokapp/10b1ccf4a88cab284280890aabc80f9a/external/bazel_tools/tools/build_defs/repo/git.bzl", line 180, column 35, in _git_repository_implementation
		update = _clone_or_update_repo(ctx)
	File "/private/var/tmp/_bazel_eduardokapp/10b1ccf4a88cab284280890aabc80f9a/external/bazel_tools/tools/build_defs/repo/git.bzl", line 43, column 20, in _clone_or_update_repo
		git_ = git_repo(ctx, directory)
	File "/private/var/tmp/_bazel_eduardokapp/10b1ccf4a88cab284280890aabc80f9a/external/bazel_tools/tools/build_defs/repo/git_worker.bzl", line 98, column 12, in git_repo
		_update(ctx, git_repo)
	File "/private/var/tmp/_bazel_eduardokapp/10b1ccf4a88cab284280890aabc80f9a/external/bazel_tools/tools/build_defs/repo/git_worker.bzl", line 116, column 10, in _update
		fetch(ctx, git_repo)
	File "/private/var/tmp/_bazel_eduardokapp/10b1ccf4a88cab284280890aabc80f9a/external/bazel_tools/tools/build_defs/repo/git_worker.bzl", line 150, column 13, in fetch
		_git(
	File "/private/var/tmp/_bazel_eduardokapp/10b1ccf4a88cab284280890aabc80f9a/external/bazel_tools/tools/build_defs/repo/git_worker.bzl", line 186, column 15, in _git
		_error(ctx.name, ["git"] + start + list(args), st.stderr)
	File "/private/var/tmp/_bazel_eduardokapp/10b1ccf4a88cab284280890aabc80f9a/external/bazel_tools/tools/build_defs/repo/git_worker.bzl", line 210, column 9, in _error
		fail("error running '%s' while working with @%s:\n%s" % (command_text, name, stderr))
Error in fail: error running 'git fetch origin refs/heads/*:refs/remotes/origin/* refs/tags/*:refs/tags/*' while working with @bazel_compdb:
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
WARNING: Target pattern parsing failed.
ERROR: Skipping '//:copy_compile_commands': no such package '@@bazel_compdb//': error running 'git fetch origin refs/heads/*:refs/remotes/origin/* refs/tags/*:refs/tags/*' while working with @bazel_compdb:
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
ERROR: no such package '@@bazel_compdb//': error running 'git fetch origin refs/heads/*:refs/remotes/origin/* refs/tags/*:refs/tags/*' while working with @bazel_compdb:
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
INFO: Elapsed time: 6.322s
INFO: 0 processes.
ERROR: Build did NOT complete successfully
ERROR: Build failed. Not running target

Any idea why is this? Is there any dependency I should have?

this repo was made with a very old version bazel and some of the dependencies commits looks to no longer exist (judging from the error). My example repo is probably not the best reference anymore considering how out dated it is 😅

You know what, I updated the example to be more modern - just for you. Enjoy!


Watch mode not working for newly added file

Do you want to request a feature or report a bug?
bug

What is the current behavior?
Watch mode not working for newly added file
If the current behavior is a bug, please provide the steps to reproduce.

I used the webpack demo in angular2 website and added the watch mode in build script, source: https://bitbucket.org/zxx714/angular2-webpack
And run the build. After it had finished bundling, I added a ts file into the app directory, but the webpack could not detect the change to work. I have tried a js file, neither does it.
What is the expected behavior?
Watch mode when building can detect the added file and work
If this is a feature request, what is motivation or use case for changing the behavior?
Please mention other relevant information such as the browser version, Node.js version, Operating System and programming language.
webpack version:1.13.3
node version:7.1.0

Could you try using Node.js v6? There are lots of issues with Node.js v7 and watching unfortunately in chokidar, also see https://github.com/paulmillr/chokidar/issues/550.

webpack will only rebuild when you require a file, not when you add a file to a directory. This is a feature. At least in your description of this issue it seems like you are only adding the file to the directory.
Also, in your package.json (found in your repo), you have --watch AND --bail. You probably don't want both of those, since with --bail it stops the process after the first error.


Initial loads after rebuild render incorrectly

For first few attempts to render a page that utlizies layout dialect after a rebuild... It looks like it just renders the layout and the content together as a whole. After a while, it starts kicking out pages rendering as it should.
Is this a sign that I am doing something wrong? Or did I just catch it before the layout dialect engine started rendering appropriately?
-- update
Seems like after rebuild, it takes 4-5 refreshes of the page for the content to be rendered appropriately. I tried ot make sure the layout dialect was registered as soon as I could in the process, but doesnt seem to matter. Is there any logging or anything I can turn on to help diagnose why it seems like spring ignores layout dialect stuff for many page loads

So I can't figure out what might be happening here.  I think Thymeleaf instantiates everything just once per template engine instance when you first access a page, and then after that everything is either fresh copies of a template, or from a cache that Thymeleaf keeps to itself.  With Spring in the mix, I'm not entirely sure how that works, so can't help much there sorry :/
And there's not much logging in the layout dialect to turn on.  You could configure org.thymeleaf loggers to spit out more stuff, but I don't have a lot of logging here.  You could maybe download the source files so you can at least debug the decorator code to see if what's happening falls in line with what you expect.
Do you happen to have some templates or a small web project where this happens to you so I could try reproduce the issue?


Nested CEs do not render default content in slots

eg. "nested-shadow-default-tag" actually contains a template which renders something like:
html<slot>DEFAULT</slot>;
class SlottingParentDefaultTag extends TemplateElement {
	template() {
		return html`<nested-shadow-default-tag></nested-shadow-default-tag> `;
	}
}

Expectation: renders "DEFAULT"
Reality: renders ""

i also added one of the tests as a visual test that can be looked at in a browser

Has been released with 1.0


Add Redirect

Redirect old URL: https://www.zesty.io/platform/headless-cms/
To new URL: https://www.zesty.io/solutions/headless-cms/

This is still not redirecting to the new page: https://www.zesty.io/platform/headless-cms/

@chloespilotro - see Tom's note


Poc/hygen

Description
Uses Hygen for common bolierplate code.
Currently, it can:

Generate a coordinator & index.js file
Generate a screen (inject flow & nav method into coordinator)

If you generate a coordinator with hygen, then generate a screen and use argument --coordinatorName it can inject into ScreenFlow object and default nav method goTo__ScreenName__()  to the coordinator
use --feature for folder name, files will be generated under /src/features/__FEATURE_NAME__
Quick commands
$ hygen coordinator new Test --feature test
$ hygen screen new ShowCase --feature test --coordinatorName Test

# or just create new screen
$ hygen screen new Intro --feature test

TODO:

Update template of coordinator & screen (use a different base screen widget)

In the future (would be nice to have):

Generate test case bolierplate file
Generate stoybook bolierplate file
Inject stoybook config to register generated stoybook files
Inject translation strings

On what platform have you tested the change?

[ ] Android - Emulator
[ ] Android - Physical device
[ ] iOS - Emulator
[ ] iOS - Physical device

Screenshots
Please attach screenshots showing the change if relevant
Checklist

[ ] I have updated mockServer
[ ] I've added analytics as relevent
[ ] I have run npm test
[ ] I have run npm run test:i18n

Out of scope and potential follow-up
Is there any related changes that you plan to do in a follow-up PR or voluntarily excluded from the scope?

Urgh.. one small comment. Are you able to link to the _templates/README.md from the root level README.md ?


Satellizer only saving one user, then no more

Hello, I'm having a concern wherein ONLY the first user seems to be saving to MongoDB. If the collection is empty, the first account to sign in will save. However, nothing else saves to the database after that. If I drop that document, then I can save the next one but only one can ever exist in the database at a time.
I'm using node and mongo, and am using the node server.js settings from the Satellizer repo's examples. I have Google, Twitter, Facebook, and GitHub integrations. They all "appear" to work (as in, I can log in and out with them), except no records (apart from that first one) ever save to Mongo. I realized this was happening when /api/me was failing for everything except for one account, which was determined to be the sole account that successfully made it into the database.
I've tried this on local databases as well as MongoLab with the same results.
When I try to write to the database from the shell manually after there is a document in it, I get an 11000 duplicate key error.
Do you have any advice or insight? Is this caused by the way the node server.js example is set up? Hitting Google has had me coming up with a lot of nothing.
Thank you so much for any thoughts on this!

As a side note, it seems that Google is the only one actually saving data to the database (I'm using Node and MongoDB, my server code is using the Node example in the Satellizer examples). Twitter, Facebook, and GitHub logins "work" but they don't create entries in Mongo. I'm not sure if this issue is completely separate or if it's in any way related to this one (/api/me doesn't work with any of the above).

I've fixed this. I had to deal with unique and duplicates in MongoDB. Not actually a Satellizer issue; closing.

Hi Kim. I'm having the same issue as you describe here.
I'm just trying to get the provided nodejs demo to work. I've minimally modified the "server.js" file to make it work on openshift. But I'm still having this issue, only one record gets saved in mongo. Do you remember how you fixed it?
I'm not a programmer, I'm a musician struggling to get authentication to work for my site. This is hard for me! :)

Well, it's weird. For some reason the "users" collection in mongo didn't allow new records. As soon as I deleted the collection, everything started to work again, and I can have multiple users. Your issue allowed me to find a fix, though. Thanks!

Glad you were able to get it resolved! Definitely a database issue though.

@kmaida  and @DonLiborio  Hey, I am getting the same issue, do either of you mind explaining what solution you did? Thanks :C.


Move redirects to config/redirects.json.

Fixes #1094
Later, this will be used in routes too.

This feels like an unnecessary layer of abstraction.

Also, if you're going to abstract these, we should add a section to https://github.com/MaxCDN/bootstrapcdn/blob/develop/config/_config.yml

I don't want to use _config.yml. It's already bloated with CDN stuff and www stuff shouldn't be there.
Like I said, the plan is to use this in routes too. And later add each page title and description to a config file too.

I'll see how it'll look like in YAML. I just don't like having www and CDN stuff in one file because it has become pretty big.

@jmervine: please check again.

I personally like that better. I don’t disagree that _config.yml is getting a bit overloaded, but unless we’re going to throughly break them apart and load them in to a centralized config object, this works.
I have strong opinions, weakly held, here. If you feel strongly about it being the other way, I’m down to discuss. Additionally if/when we break it out, I’m willing to consider using js over yaml, but I’d prefer to stay away from json.

Nah, I don't mind currently but eventually we should break config.
So, this works for you?


Fixes namespacing when querying nodes by name

Fixes #47. I tested get_by_node on both nodes and pods and this fixes the first and the latter still works.

The issue this is linked to #47 has been confirmed working. Going to close this PR.


Healthprobe misconfiguration.

Describe the bug
Identical sites, and around half of them fall back on defaultprobe-Http instead of their own health probes.
To Reproduce
Create multiple sites (they are identical except for site-name) with similar annotations:
    "appgw.ingress.kubernetes.io/health-probe-port"               = "${var.service_port}"
    "appgw.ingress.kubernetes.io/health-probe-hostname"     = "${var.sitename}.${var.environment}.<redacted>.com"
    "appgw.ingress.kubernetes.io/health-probe-path"               = "/api/if/GetSystemInfo"
    "appgw.ingress.kubernetes.io/health-probe-status-codes" = "200-399"

Ingress Controller details
Name:         ingress-appgw-deployment-f9cc497bd-8n84t
Namespace:    kube-system
Priority:     0
Node:         aks-dev002sys-15100766-vmss000000/<IP_ADDRESS>
Start Time:   Tue, 20 Sep 2022 13:37:36 +0200
Labels:       app=ingress-appgw
              kubernetes.azure.com/managedby=aks
              pod-template-hash=f9cc497bd
Annotations:  checksum/config: 42fe2e26b1ca8ff7fe6ec8f0d4697d44d670cd0f7745ead73529ffe5730d3bcf
              cluster-autoscaler.kubernetes.io/safe-to-evict: true
              kubernetes.azure.com/metrics-scrape: true
              prometheus.io/path: /metrics
              prometheus.io/port: 8123
              prometheus.io/scrape: true
              resource-id:
                <redacted>
Status:       Running
IP:           <IP_ADDRESS>
IPs:
  IP:           <IP_ADDRESS>
Controlled By:  ReplicaSet/ingress-appgw-deployment-f9cc497bd
Containers:
  ingress-appgw-container:
    Container ID:   containerd://83c417a73884e9acce56eb17541de27a2bd80a4a467256bb5258cec1018c8bf1
    Image:          mcr.microsoft.com/azure-application-gateway/kubernetes-ingress:1.5.2
    Image ID:       sha256:5fcab52d0c1da1185d50520ba2703723684331c436c11f990753901c9ce4ce14
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Tue, 20 Sep 2022 13:37:37 +0200
    Ready:          True
    Restart Count:  0
    Limits:
      cpu:     700m
      memory:  300Mi
    Requests:
      cpu:      100m
      memory:   20Mi
    Liveness:   http-get http://:8123/health/alive delay=15s timeout=1s period=20s #success=1 #failure=3
    Readiness:  http-get http://:8123/health/ready delay=5s timeout=1s period=10s #success=1 #failure=3
    Environment Variables from:
      ingress-appgw-cm  ConfigMap  Optional: false
    Environment:
      AGIC_POD_NAME:                  ingress-appgw-deployment-f9cc497bd-8n84t (v1:metadata.name)
      AGIC_POD_NAMESPACE:             kube-system (v1:metadata.namespace)
      KUBERNETES_PORT_443_TCP_ADDR:   <redacted>
      KUBERNETES_PORT:                <redacted>
      KUBERNETES_PORT_443_TCP:        <redacted>
      KUBERNETES_SERVICE_HOST:        <redacted>
      AZURE_CLOUD_PROVIDER_LOCATION:  /etc/kubernetes/azure.json
    Mounts:
      /etc/kubernetes/azure.json from cloud-provider-config (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zw4dm (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  cloud-provider-config:
    Type:          HostPath (bare host directory volume)
    Path:          /etc/kubernetes/azure.json
    HostPathType:  File
  kube-api-access-zw4dm:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              <none>
Tolerations:                 :NoExecute op=Exists
                             :NoSchedule op=Exists
                             CriticalAddonsOnly op=Exists
Events:                      <none>

Log showing that sites are falling back on the default http probe:

Portal showing some sites having connected properly with their probe, while others are ending up on the default http probe.

Needless to say this is creating sporadic issues for us.

No-one has experienced something similar? Currently about half our sites are not using their custom probe, while the rest are. Sites are configured by code, so they are 100% identical except for hostname and a few env parameters which should be irrelevant in this case. Refreshing the probe list shows sporadic movements between the custom probe and defaultprobe-Http. This is making the kubernetes ingress completely unreliable. Logs in kube-system shows ongoing sync operations but nothing obvious error-wise.

I am having a similar situation with configurations being weird. Whenever I deleted the appgw.ingress.kubernetes.io/health-probe-port annotation it didn't delete the change on the azure side. It continued to use reconcile with the previously deleted value.

we are geting a weird similar approach.
we setup the following annotations:
    appgw.ingress.kubernetes.io/health-probe-hostname: "example.domain.com"
    appgw.ingress.kubernetes.io/health-probe-port: "80"
    appgw.ingress.kubernetes.io/health-probe-path: "/"
    appgw.ingress.kubernetes.io/backend-protocol: http

it makes the health probe but it connects to backend to the defaultHealth probe.
Why does it do this? does it take liveslinessProbe on pod take precedence over these annotations?

we are geting a weird similar approach.
we setup the following annotations:

    appgw.ingress.kubernetes.io/health-probe-hostname: "example.domain.com"

    appgw.ingress.kubernetes.io/health-probe-port: "80"

    appgw.ingress.kubernetes.io/health-probe-path: "/"

    appgw.ingress.kubernetes.io/backend-protocol: http

it makes the health probe but it connects to backend to the defaultHealth probe.
Why does it do this? does it take liveslinessProbe on pod take precedence over these annotations?
This creates 2 problems:

Health check fails and backends are blocked and thus leading to 502 gateay

also the customer-error page is not shown (not configurable as of this moment) giving a really bad customer experience.

Im going to be honest, I gave up on using this operator and I had to manually set it up in the Azure console.

@raypettersen  did you find a solution?


[Bug]: Panic occured with rspack v0.6.4

System Info
N/A
Details
Ran into the below panic when trying the latest 0.6.4 to start the application. Was previously on 0.6.2, which works fine.
●  ━━━━━━━━━━━━━━━━━━━━━━━━━ (60%) building<EMAIL_ADDRESS>                                                                                Panic occurred at runtime. Please file an issue on GitHub with the backtrace below: https://github.com/web-infra-dev/rspack/issues
Message:  index out of bounds: the len is 2 but the index is 2
Location: crates/rspack_plugin_javascript/src/utils/eval/eval_tpl_expr.rs:44
Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
●  ━━━━━━━━━━━━━━━━━━━━━━━━━ (42%) building builtin:swc-loader??ruleSet[1].rules[14].use[0]!/workspaces/packages/core/services/something/src/something.ts                                            ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⋮ 1 frame hidden ⋮
2: clone
at /build/glibc-wuryBv/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Done in 13.19s. Peak memory usage 30.66MB.
Reproduce link
No response
Reproduce Steps
please refer to details section

Has been fixed in https://github.com/web-infra-dev/rspack/pull/6473. Please try out rspack 0.6.5


Fix header navigation current link styling regression

This resolves a regression introduced as part of the changes in the 7.0.0 release where the "current" link would be shown with a blue underline instead of a red underline.
Example from https://design.login.gov/brand/ :

Compare to https://login.gov/what-is-login/ :

After discussing with @nickttng , the changes here are a bit more of an extensive "reset" to USWDS stock styling, with minimal overrides to apply expected customizations:

Remove bold text styling from links other than the current header navigation linik
Change bar underline from blue ("primary" token) to red ("secondary" token)
Reduce horizontal padding between header navigation items from 2rem (32px) to 1.5rem (24px)
Reduce margins of logo
Increase vertical padding of side navigation and mobile navigation items from 0.5rem (8px) to 1rem (16px)
Change hover background color for side navigation and mobile navigation items from base-lightest (#f0f0f0) to primary-lightest (#f2f9ff)

The idea of resetting to the USWDS is...

Better understand divergence with USWDS
Eliminate divergence where possible to reduce maintenance overhead and CSS size
Align divergence with specific CSS selectors to reduce risk of future breakage

Open questions:

Possible other revisions could include...

Changing side navigation and mobile navigation line to extend the full height of the list item
Reducing size of mobile navigation "X" button

To review:

Header logo
Header navigation
Side navigation (impacted because it shares many of its stylings with mobile header navigation)

Component
Before
After

Header

Side navigation

Mobile navigation

I removed the pill border radius and reduced the mobile navigation close icon in 9f59575 and e3a5d1f respectively.
Screenshots showing before the change and after. I'll update the original pull request comment with Before/After for "live" vs. proposed changes.

Before
After

I'm going to test this on local copies of the brochure site, developer site, and IdP to check how well some of changes are working out. I've pushed a few commits already based on findings, will put back to draft temporarily while I work through any other findings.

Ok, I've finished testing on both desktop and mobile across the brochure site, help center, partner site, developer site, and IdP, and feeling pretty good now after the latest set of changes. It required a bit of extra work to account for things such as partner site header arrangement with search and mobile collapsible menu items. Overall it'll help simplify a lot of the markup and custom styles in those sites as well, which is nice.
The preview site includes the latest changes. If it's useful, I could also publish a beta release to get a preview going for those other sites, though maybe it's just as well to go ahead and publish the patch release and we can follow-up with another patch release if there's any further corrections to make.

I'm going to plan to merge this as-is and publish a beta release, which will allow us to test it more exhaustively in preview branches for the brochure site, partner site, and developer site.

I'm going to plan to merge this as-is and publish a beta release, which will allow us to test it more exhaustively in preview branches for the brochure site, partner site, and developer site.

See:

https://github.com/18F/identity-site/pull/1073
https://github.com/18F/identity-dev-docs/pull/331
https://github.com/18F/identity-idp/pull/8093


Port mempool metrics to 0.5

This ports #1090 to cardano-sl-0.5.

Amended and force-pushed to trigger a rebuild after timeout.

We decided to merge all changes (apart from EKG stuff there are 1 bugfixes) from 0.5-rc to 0.5. See #1125. CI should pass by the morning.


Identity Access Landscape Awareness

User Story

As a potential new organizational user
I want to understand the identity landscape (i.e. IDAM - Identity and Access Management) of the BC Government
So that  I can choose the right solution to meet my organizational needs.

Acceptance Criteria or Constraints

I'll see this or
The solution will conform to this or
Non-functional requirements

Acceptance Tests
Scenario 1: xxxxxx

GIVEN ...
WHEN ...
THEN ...

Scenario 2: xxxxxx

GIVEN ...
WHEN ...
THEN ...

Dependencies?
Team or ideally a ticket
Risks

Description
Impact
Strategy
Contingency Plan

If this does or doesn't occur by...
Then this will happen, costing $?
Mitigate, Transfer, Accept, Avoid
We will do this, if it occurs

Process Guidance
User Story
A short introductory section with the following structure:
As a: the person or role who will benefit from the feature;
I want: the feature;
so that: the benefit or value of the feature.
Acceptance Tests or also called Behaviour Driven Development Acceptance criteria
A description of each specific scenario of the narrative with the following structure:
Given: the initial context at the beginning of the scenario, in one or more clauses;
When: the event that triggers the scenario;
Then: the expected outcome, in one or more clauses.

addressed in current public facing pages


Bump @nivo to 0.80

Bump all the @nivo packages to 0.80.0.

This should fix https://github.com/zooniverse/mapping-viz-tools/security/dependabot/40.

Plots look good in the storybook with this version bump.


NFC: Rename NameBinding to ImportResolution

Now that it no longer deals with populating the operator lookup tables, it just does import resolution.

https://github.com/apple/llvm-project/pull/996
@swift-ci please test


Make Zubat theme tabs more readable

The Zubat theme tabs need tweaking to be more readable as it's hard to make them out.
https://github.com/klauscfhq/hyper-pokemon/blob/master/pokemon.yml#L292-L297

It is possible to manually change the tabs color through the pokemonSyntax option, by setting it to dark, thus achieving a better contrast. This is something that will happen automatically on the upcoming release.
// ~/.hyper.js
pokemon: 'zubat',
pokemonSyntax: 'dark', // Defines the color of the terminal tabs

Fixed on 19311b5.


packaging: Add db.X.driver=jdbc:mysql to db.properties on upgrade

This is required afther the upgrade to 4.9.0 and for convience we
add this to the configuration so our users do not have to.

@wido lgtm, though we would also want the same change in the centos6's spec file.

Ah, good point @rhtyd! Added it to CentOS 6 as well.

👍LGTM

CI RESULTS
Tests Run: 85
  Skipped: 0
   Failed: 0
   Errors: 0
 Duration: 3h 56m 40s

Associated Uploads
/tmp/MarvinLogs/DeployDataCenter__Jul_14_2016_15_30_56_L489PO:

dc_entries.obj
failed_plus_exceptions.txt
runinfo.txt

/tmp/MarvinLogs/test_network_885HWT:

failed_plus_exceptions.txt
results.txt
runinfo.txt

/tmp/MarvinLogs/test_vpc_routers_M5IZWP:

failed_plus_exceptions.txt
results.txt
runinfo.txt

Uploads will be available until 2016-09-13 02:00:00 +0200 CEST
Comment created by upr comment.

Thx.  I will get this merged...

@wido This PR has been include with the latest CS 4.9.0, unfortunately if the last line of the db.properties file hasn't a return line (i.e. the last line isn't an empty line), the first line of your patch (db.cloud.driver=jdbc:mysql) will be concatenate to the last line:
example:
db.cloud.secondsBeforeRetryMaster=3600db.cloud.driver=jdbc:mysql
db.usage.driver=jdbc:mysql
db.simulator.driver=jdbc:mysql
And after the management service don't start correctly.
Probably need to be fix in the 4.9.1 and a mention need to be had in the Release Notes.
For trace (and google search), the error messages:
2016-07-31 15:05:10,684 ERROR [c.c.u.d.DriverLoader] (main:null) DB driver type null is not supported!
2016-07-31 15:05:10,709 WARN  [c.c.u.d.T.Transaction] (main:null) Unable to load db configuration, using defaults with 5 connections. Falling back on assumed datasource on localhost:3306 using username:password=cloud:cloud. Please check your configuration
com.cloud.utils.exception.CloudRuntimeException: DB driver type null is not supported!
[...]
2016-07-31 15:05:10,979 ERROR [c.c.u.d.Merovingian2] (main:null) Unable to get a new db connection
java.sql.SQLException: Access denied for user 'cloud'@'localhost' (using password: YES)
[...]

The workaround is to edit the db.properties file and insert a carriage return before "db.cloud.driver=jdbc:mysql"
and restart the cloudstack-management service

@milamberspace I tested upgrade scenario using debian packages, so at least this works for debian mgmt server hosts. I think you hit the issue with CentOS based mgmt server host?

@rhtyd I've tested with a Ubuntu 14.04 / CS 4.7.1->4.9.0 (on virtual CS-over-CS): works fine.
But with a Ubuntu 14.04 from CS 4.4.0->4.5.1->4.7.0->4.7.1->4.9.0 (real machines): found this issue.

Good catch and indeed a small fix. @milamberspace can you open a new PR to fix this for 4.9.1?


NPM package contains useless files

I'm submitting a...

[X] Bug report
[ ] Feature request
[ ] Question

Current behavior
I've just noticed it in the latest release but it's not new. The npm package seems to contain many files that should not be shipped, like the coverage results, CI, linting and tern configs, etc...
Expected behavior
I think it's preferable to have a clean package.

we certainly can extend the npmignore, feel free to open a PR about that.


feat: add delete account option (attempt 2)

This is implementing an account deletion option, similar to #266. I've made the following changes

added a remove_user function to the database that deletes the user from users, sessions, and history
added an API endpoint: currently this is the DELETE handler for the /register endpoint but could be moved. If this gets called by a logged in user, the account gets delete
added the unregister command to the CLI

$ atuin unregister

I'm wondering how we should prevent accidental account deletion. We could ask the user provide their password, email, or username
$ atuin unregister -e<EMAIL_ADDRESS>
Any suggestions?
PS: Thanks for looking into this and thanks for building this, it's a really cool tool :blush:

Oh wow, that's such a quick response 🤩 I assume you still want to merge this, right? If you've already done a lot, I'm happy to close this..
Assuming you do, I rename it everywhere. Are we keeping the endpoint as it is?

Oh wow, that's such a quick response 🤩 I assume you still want to merge this, right? If you've already done a lot, I'm happy to close this..
Assuming you do, I rename it everywhere. Are we keeping the endpoint as it is?

Hahaha, I was looking at this anyway so all the context is there :D
Yup we can go with this! I'll probs just rebase what I have, as there are a couple of related changes I want to add. Thank you!

I think I've changed everything you wanted, though I might've missed something somewhere (please let me know if there is)

Thanks so much, I really love the idea of the stickers 🤩 Have just filled the form. I still worry about accidental deletion though. Would it not make sense to put some sort of safety in?