Consider adding support for caching deps and build artifacts

I believe we discussed this before and did not think it was appropriate, mainly because cache invalidation is the second hardest problem in computer science 😉
Setting up cache in a project on your own is a trivial matter, though people disdain the redundancy of copy / pasta on every project, which I can understand.
setup-beam would either have to leverage a composite action, which doesn't sound great to me, or utilize github-toolkit (as we currently depend on today).
I think if this was added, it should be enabled by default. We'd also need to provide a way to bust the cache (i.e., a cache_version input). Github provides a way to delete cache in the UI, but it also annoying to go through IMHO.
The main caveats are here is when the cache invalid (e.g., an upload to github went weird), thus the need for a way to bust the cache.
Here is a very old example of a composite action, while I don't think a composite action is the way to go here, it still serves as some kind of example.
https://gist.github.com/starbelly/f423c2a3e059fa9c5e2647e4b5a7b175

You mean cache e.g. _build and stuff generated in the consumer's pipeline (like Dialyzer cache?)? What if they're not using rebar3, what assumptions are we to make? I maybe understood this wrong, but:

what issue are you trying to solve?
what interface do you propose to solve it?

The issue that others want to solve is repetetive copy/pasta (i.e., copy a cache solution from one project to another, get it wrong, edit, push, repeat until right).
I'm not proposing an interface myself yet, this has to be thought about more is there are hidden complexities when it comes to caching, especially across different tools (rebar3, hex, etc). and repository structures (i.e., lib, single app, and umbrella). Rather, this is about a simple discussion of whether we'd like to start to think about those problems.

There's a lot to unpack here, for sure:

what to we want to cache
when to we want to cache
how much control over the cache we want to give over configuration options
...

As reference points, these two "language/ecosystem" actions have built-in cache integration:

https://github.com/actions/setup-node/tree/v4/ (caching off by default)
https://github.com/actions/setup-go/tree/v5/ (caching on by default)

I don't think caching here needs to cover all possible use cases, as long as users can opt-out and go use actions/cache or something else when desired.
Here's a current cache usage I have in a workflow:
      - uses: actions/cache@v4
        with:
          path: |
            deps
            _build
          key: ${{ runner.os }}-elixir-${{ hashFiles('**/mix.lock') }}
          restore-keys: |
            ${{ runner.os }}-elixir-

Yeah, but then this turns into a bigger problem: we already support Elixir, Erlang and Gleam and intend on eventually supporting LFE (possibly Luerl). So now you have to maintain 4 cache "types", plus "when to bust them?" (?)
Looking at your example:

you might be missing, for example, the Elixir version, since that should bust the cache
the same goes for the Erlang/OTP version
I've had many issues with restore-keys in the past, especially when stuff moves in the main branch and provokes incompatibilities, etc.

There's a host of issues the action will not solve (and would get unnecessarily complicated for) that we could probably curate in a community -driven Gist of good practices, or similar.
Then again, this could also be a different action that'd assume setup-beam exists, and you'd have something like
- uses: erlef/setup-beam-cache
  with:
    for: elixir

and then inside the specific Elixir rules would be maintained.
Or even several actions, if the differences are too big.
I just don't think, at this moment, this is a specialisation the action needs.


Update SA1616 (ElementReturnValueDocumentationMustHaveText) to handle included documentation

The issue described in #1603 applies to SA1616 as well.

Grabbing this


Debugging on Mac - CORS doesn't work

I found this lesson very helpful. However, I was disturbed when the completed project would not run locally in Visual Studio on my Mac.
I have had this same problem with my own Azure Functions, and I have narrowed it down to CORS problems. The settings in the lesson json configuration files do not enable CORS on the Mac.
The completed lesson does run in the Sandbox portal, however. Still, I need a debugger of some kind, and would prefer not to have to use the browser Developer Tools.
GT

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: ad301acd-cfb9-5413-b882-e20e22632215
Version Independent ID: f1738d3d-e847-6500-4a40-59f3abd8517c
Content: Develop and run Azure Functions locally
Content Source: articles/azure-functions/functions-develop-local.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@MfGThomas
Thanks for your feedback! We will investigate and update as appropriate.

Thank you Microsoft.
I very much hope to resolve this issue. I do have an Azure Subscription that includes support, but this feels more like a Mac / Visual Studio issue.
I really hope you can help me resolve this; I did waste many hours trying to resolve the inability to debug Blazor Static Web apps locally.
If there really is no way, I need to try to find a way in Azure to run and debug my projects.
Best,
Glenn Thomas
From: YashikaTyagi @.>
Date: Saturday, August 12, 2023 at 6:43 AM
To: MicrosoftDocs/azure-docs @.>
Cc: Glenn Thomas @.>, Mention @.>
Subject: Re: [MicrosoftDocs/azure-docs] Debugging on Mac - CORS doesn't work (Issue #113466)
@MfGThomashttps://github.com/MfGThomas
Thanks for your feedback! We will investigate and update as appropriate.
—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/113466#issuecomment-1675692877, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A6MCRBNCGZX5BKWA4OJHDSDXU4CWXANCNFSM6AAAAAA3NEEZRA.
You are receiving this because you were mentioned.Message ID: @.***>

Hello @MfGThomas Thanks for reaching out and I'm sorry to hear that you've encountered problems when attempting to run your projects locally. Could you clarify if the problem you've hit specifically concerns the Azure Functions Core Tools vs Blazor Static Web apps? We'll likely need additional details that help us reproduce the problem and report it directly to our product team on the Azure/azure-functions-core-tools repo.

Hi Mike,
Thanks for your reply.
The general problem is that I cannot get any combination of Blazor web app and Azure Function to run together on my Mac. I think that the Mac (maybe just M2, or M1/M2?) does not allow CORS when the configuration files are set per the instructions. I thought for a long time that it was do to my sloppy configuration, but following the Training Video exactly, and pulling the .net 6 project from git afterwards, convinced me that this is a Mac / CORS problem, and not an error on my part.
So – to reproduce the error, take a Macbook Pro M2, pull the Shopping List project from github. Try to run in locally, starting both projects.
Best,
Glenn
From: Mike Urnun @.>
Date: Wednesday, August 16, 2023 at 11:38 PM
To: MicrosoftDocs/azure-docs @.>
Cc: Glenn Thomas @.>, Mention @.>
Subject: Re: [MicrosoftDocs/azure-docs] Debugging on Mac - CORS doesn't work (Issue #113466)
Hello @MfGThomashttps://github.com/MfGThomas Thanks for reaching out and I'm sorry to hear that you've encountered problems when attempting to run your projects locally. Could you clarify if the problem you've hit specifically concerns the Azure Functions Core Tools vs Blazor Static Web apps? We'll likely need additional details that help us reproduce the problem and report it directly to our product team on the Azure/azure-functions-core-toolshttps://github.com/Azure/azure-functions-core-tools/issues repo.
—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/113466#issuecomment-1681303870, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A6MCRBK2BFVGC754IU4FPZLXVU4VVANCNFSM6AAAAAA3NEEZRA.
You are receiving this because you were mentioned.Message ID: @.***>

@MfGThomas It looks like an issue that has been previously reported, and there does appear to be an open item here: https://github.com/Azure/azure-functions-core-tools/issues/2901 Please track this issue for any further updates.
Since this repo is more for driving improvements toward the MS Docs and we didn't determine any changes to this documentation upon reviewing this feedback, we will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Examples not working .. need help with INSERT INTO

If this is not the correct place, please redirect me ...
Extracting from an example in README.md, I have the following
import sys
import vertica_python

conn_info = { ... }

print(f"Python version: {sys.version}")
print(f"vertica_python.__version__: {vertica_python.__version__!r}")

with vertica_python.connect(**conn_info) as connection:
    cur = connection.cursor()
    cur.execute("SELECT VERSION()")
    print(f"Vertica Version: {cur.fetchall()!r}")
    cur.execute("DROP TABLE IF EXISTS tbl")
    cur.execute("CREATE TABLE tbl (a INT, b VARCHAR)")
    cur.execute("INSERT INTO tbl VALUES (?, ?)", [1, 'aa'])
    cur.execute("INSERT INTO tbl VALUES (?, ?)", [2, 'bb'])
    cur.executemany("INSERT INTO tbl VALUES (?, ?)", [(3, 'foo'), (4, 'xx'), (5, 'bar')])
    cur.execute("COMMIT")

    cur.execute("SELECT * FROM tbl WHERE a>=? AND a<=? ORDER BY a", (2,4))
    print(cur.fetchall())

I get the following output:
$ pipenv run python check_vertica_01.py
Loading .env environment variables…
Python version: 3.8.2 (default, Jul 16 2020, 14:00:26)
[GCC 9.3.0]
vertica_python.__version__: '0.11.0'
Vertica Version: [['Vertica Analytic Database v9.3.1-2']]
Traceback (most recent call last):
  File "check_vertica_01.py", line 27, in <module>
    cur.execute("INSERT INTO tbl VALUES (?, ?)", [1, 'aa'])
  File "/home/jkane/wrk/netflow_vertica/.venv/lib/python3.8/site-packages/vertica_python/vertica/cursor.py", line 221, in execute
    operation = self.format_operation_with_parameters(operation, parameters)
  File "/home/jkane/wrk/netflow_vertica/.venv/lib/python3.8/site-packages/vertica_python/vertica/cursor.py", line 578, in format_operation_with_parameters
    operation = operation % tuple(tlist)
TypeError: not all arguments converted during string formatting

I think the problem is you are using the wrong placeholder ? in the sql. Parameter placeholder ? is used when 'use_prepared_statements' option is True, otherwise you should use placeholder %s when 'use_prepared_statements' is False (by default). Please read up to README.md.

Thanks for the reply.
I did pull that example from README.md, but did not notice (nor was it called out) that apparently cursor().executemany() must be done with use_prepared_statements == True.
There are no comments about cursor().executemany(), it appears in only 3 files in the codebase and only once in README.md. Reading the code for def executemany() in cursor.py kind of implies that it would work with either prepared statements or not prepared statements.
https://github.com/vertica/vertica-python/blob/b45d599d04260e170c49e0928e37605882d35cad/vertica_python/vertica/cursor.py#L241
Here is what triggers this:
https://github.com/vertica/vertica-python/blob/b45d599d04260e170c49e0928e37605882d35cad/vertica_python/vertica/cursor.py#L254-L279
I think https://github.com/vertica/vertica-python/blob/b45d599d04260e170c49e0928e37605882d35cad/vertica_python/vertica/cursor.py#L255 is not recognizing this as an INSERT INTO statement.
I obviously can work-around my issue by using prepared statements. Can we get an update to the documentation, and maybe a BUG raised against the pattern? https://github.com/vertica/vertica-python/blob/b45d599d04260e170c49e0928e37605882d35cad/vertica_python/vertica/cursor.py#L125-L128
I think the issue is the clause that is on line 127, namely https://github.com/vertica/vertica-python/blob/b45d599d04260e170c49e0928e37605882d35cad/vertica_python/vertica/cursor.py#L127
That does not appear to be optional. So naming the columns would be required:
$ ipython
Python 3.8.2 (default, Jul 16 2020, 14:00:26)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.14.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import re
   ...:
   ...: RE_NAME_BASE = u"[0-9a-zA-Z_][\\w\\d\\$_]*"
   ...: RE_NAME = u'(("{0}")|({0}))'.format(RE_NAME_BASE)
   ...: RE_BASIC_INSERT_STAT = (
   ...:     u"INSERT\\s+INTO\\s+(?P<target>({0}\\.)?{0})"
   ...:     u"\\s*\\(\\s*(?P<variables>{0}(\\s*,\\s*{0})*)\\s*\\)"
   ...:     u"\\s+VALUES\\s*\\(\\s*(?P<values>(.|\\s)*)\\s*\\)").format(RE_NAME)
   ...:
   ...: _insert_statement = re.compile(RE_BASIC_INSERT_STAT, re.U | re.I)
   ...:
   ...: # Will Pass
   ...: assert _insert_statement.match("INSERT INTO tbl (col1, col2, col3) VALUES (?, ?, ?)")
   ...:
   ...: # Will Fail
   ...: assert _insert_statement.match("INSERT INTO tbl VALUES (?, ?, ?)")
   ...:
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-1-c07f6448dd6f> in <module>
     14
     15 # Will Fail
---> 16 assert _insert_statement.match("INSERT INTO tbl VALUES (?, ?, ?)")

AssertionError:

Changing line 127 to be:
u"(\\s*\\(\\s*(?P<variables>{0}(\\s*,\\s*{0})*)\\s*\\))?"

Results in:
In [4]: RE_BASIC_INSERT_STAT = (
   ...:     u"INSERT\\s+INTO\\s+(?P<target>({0}\\.)?{0})"
   ...:     u"\\s*(\\(\\s*(?P<variables>{0}(\\s*,\\s*{0})*)\\s*\\))?"
   ...:     u"\\s+VALUES\\s*\\(\\s*(?P<values>(.|\\s)*)\\s*\\)").format(RE_NAME)
   ...:
   ...: _fixed_insert_statement = re.compile(RE_BASIC_INSERT_STAT, re.U | re.I)
   ...:
   ...: # Will Pass
   ...: assert _fixed_insert_statement.match("INSERT INTO tbl (col1, col2, col3) VALUES (?, ?, ?)")
   ...:
   ...: # Will now Pass
   ...: assert _fixed_insert_statement.match("INSERT INTO tbl VALUES (?, ?, ?)")
   ...:
   ...:

In [5]:

I have done no other testing than this, so I do not proffer this as a fix, but I added a grouping around the whole line and made it optional.
Thanks

The usage of cursor.executemany(sql, param_value_sets[,use_prepared_statements]) can be described as
(1) When use_prepared_statements is True, sql is a single statement with parameter placeholder ?, the query pattern is not limited to INSERT INTO.
(2) When use_prepared_statements is False, sql uses placeholder %s or :pname, and the query must be a INSERT INTO command. Internally, the query would be converted to a COPY statement for execution. The query pattern is defined by
https://github.com/vertica/vertica-python/blob/b45d599d04260e170c49e0928e37605882d35cad/vertica_python/vertica/cursor.py#L125-L128
And yes, this regex is not perfect. So naming the columns would be required. You are welcome to contribute a fix to meet your needs.
The usage above also applies to cursor.execute() except there are no INSERT INTO pattern restriction for (2).


[FEAT]:  Pin to workspace UI update

What would you like to see?
See internal designs for updated pin UI/UX


TimeZone Problems

Good morning,
I've been utilizing blueiris in a docker for the past few months, throughout this time my timeline has been incorrect in blueiris. It is 6 hours ahead exactly, therefore I have been utilizing the camera overlay on the image so the camera streams display the proper time, although I would prefer to use blueiris for the overlay.
I would also love to have the timeline displaying the correct time, so I've been digging in to this a bit lately.
I initially ran the master branch, followed by the dev branch, and now the gpu branch. I've only switched to the dev and gpu branches as I saw the creator of this claim the time issues were fixed in these versions quite some time ago.
I have the following variables passed in my buildfile in an attempt to correct the time.
-e TZ=America/Chicago
-v /etc/localtime:/etc/localtime:ro
-v /etc/timezone:/etc/timezone:ro
... None of these work or I wouldn't be here.
I have also tried the following wine registry edit
docker exec -it <container_name> /bin/bash
wine reg add 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation' /v TimeZoneKeyName /t REG_SZ /d 'Central Standard Time' /f
Also checking the time and timezone in the docker using any time commands I've been able to find, all display that the time is set to CST or America/Chicago
I'd really love to get this resolved, if anyone could let me know how they have resolved this, or if people are just dealing with it...

If you use only the two volume links and remove the TZ variable it should work. TZ seems to do nothing on this docker.

If you use only the two volume links and remove the TZ variable it should work. TZ seems to do nothing on this docker.

Works! Thanks!

This helped me solve the problem ☝


Running tests locally fails if host has less than 2 cuda devices

Issue description
When developing locally the tests in tests/test_tranining_on_multi_gpus.py fail on a single-gpu host.
Possible fix: skip the tests in this module alltogether if host does not have 2 cuda-enabled devices minimum.

I used --ignore to skip them, for example, in workflow testing_daily#L55. Your proposal is automatic and more reasonable. I have merged the PR. Thanks! 😉


Cannot build the plugin

Building in FreeBSD 12.2 jail with go 1.15.6 as plugin of CoreDNS 1.8.0:
...
# github.com/oz123/coredns-netbox-plugin
../coredns-netbox-plugin/setup.go:28:31: cannot use setup (type func(*"github.com/caddyserver/caddy".Controller) error) as type "github.com/coredns/caddy".SetupFunc
in argument to plugin.Register
../coredns-netbox-plugin/setup.go:43:20: undefined: metrics.MustRegister
../coredns-netbox-plugin/setup.go:48:21: cannot use c (type *"github.com/caddyserver/caddy".Controller) as type *"github.com/coredns/caddy".Controller in argument to
 dnsserver.GetConfig
*** Error code 2

It seems that two errors can be fixed changing import from github.com/caddyserver/caddy to github.com/coredns/caddy
https://github.com/Denemor/k8s_gateway/commit/a4b8fe7b2e237d80cf8c605fee26782b43daa5b3

Thanks, I try and patch it.

Fixed in 3bbb40956cee371ea83eea701a4669a095248a22.


bitread: Don't overwrite last frame

This PR targets the following issue https://github.com/SymbiFlow/prjxray/issues/1285
There seems to be an empty frame at the end of the configuration data which was used to overwrite the contents of the last configuration frame, the address of which happened to belong to the BRAM_R tile.
The fix makes sure the last frame does not get overwritten.
Added a unit test to catch future regression.

So I don't really understand what the original problem was.  Can you make a better description for the issue and the solution?  Maybe some diagrams?

@litghost I added more details to the PR description.

Bug
Due to the fact that the there is no write to the CMD register the zero frame is used to overwrite the content of the last configuration frame.

I think I know what is going on, and it has to do with how bitread models the FAR address register.  I believe you analysis is not correct.  If my analysis is correct, then the solution present in this PR is not correct.  I'll take a look at the FAR address modelling code, and come back with a comment in a bit.

@tmichalak:
I believe the bug is actually located here: https://github.com/SymbiFlow/prjxray/blob/master/lib/include/prjxray/xilinx/configuration.h#L253
This switch statement likely needs to advance "frame_address_register" by 1 frame when the CRC command is recieved.  I'll annotate your example:
 [Write Type=1 Address= 1 Length=         1 Reg="Frame Address"]
Data in hex:
       c00000  << BOTTOM Row= 0 Column= 0 Minor= 0 Type=Block RAM

FAR = 0xc00000 because it was set via the "Frame Address" write
[Write Type=1 Address= 2 Length=       101 Reg="Frame Data Input"]
Data in hex:
       0        0        0        0
       (...) << configuration words for frame c00000
       0

FAR = 0xc00001, because "Frame Data Input" write advanced it.
[Write Type=1 Address= 1 Length=         1 Reg="Frame Address"]
Data in hex:
       c00000 << BOTTOM Row= 0 Column= 0 Minor= 0 Type=Block RAM

FAR = 0xc00000 because it was set via the "Frame Address" write.
[Write Type=1 Address= 0 Length=         1 Reg="CRC"]
Data in hex:
1e640f57

FAR = 0xc00001 because it was set via the "Frame Address" write.  Not that next write is a "Frame Data Input", because CRC has already advanced the FAR to the correct location!
[Write Type=1 Address= 2 Length=       101 Reg="Frame Data Input"]
Data in hex:
       0        0        0        0
       (...) << configuration words for frame c00001
       0
[Write Type=1 Address= 1 Length=         1 Reg="Frame Address"]
Data in hex:
       c00001
[Write Type=1 Address= 0 Length=         1 Reg="CRC"]
Data in hex:
12d781cb

(packets for frames between c00002 and 0xc0017e)

[Write Type=1 Address= 2 Length=       101 Reg="Frame Data Input"]
Data in hex:
       0        0        0        0
    8000        0        0        0
   (...) << configuration words for frame c0017f
       0
[Write Type=1 Address= 1 Length=         1 Reg="Frame Address"]
Data in hex:
  c0017f
[Write Type=1 Address= 0 Length=         1 Reg="CRC"]
Data in hex:
f8a17b70

At this point the FAR = 0xc00180 because the CRC command advanced it 1 frame!  So this zero frame is writing into 0xc00180, not overwriting 0xc0017f!  This is where I believe the bug occurred.
[Write Type=1 Address= 2 Length=       101 Reg="Frame Data Input"]
Data in hex:c0017f
       0        0        0        0
      (...) << zero frame
       0
[Write Type=1 Address= 1 Length=         1 Reg="Frame Address"]
Data in hex:
  c0017f
[Write Type=1 Address= 0 Length=         1 Reg="CRC"]
Data in hex:
22075150

@litghost
First of all this example is only for the last row, but such scenario applies to all other rows as well. I guess a broader picture is needed for this.

FAR = 0xc00001 because it was set via the "Frame Address" write. Not that next write is a "Frame Data Input", because CRC has already advanced the FAR to the correct location!

This is true, but only for the first frame in a configuration row and this is how it is implemented. For the rest it is advanced by the FDRI write. Why? Because of how the configuration data is layed out in the bitstream (presented in the snippet above) and the fact that Type 2 writes don't have explicit FAR writes in between frames (it is auto-incremented).

This switch statement likely needs to advance "frame_address_register" by 1 frame when the CRC command is recieved.

Won't work for Type 2 writes where there is CRC only at the end of the packet.

At this point the FAR = 0xc00180 because the CRC command advanced it 1 frame! So this zero frame is writing into 0xc00180, not overwriting 0xc0017f! This is where I believe the bug occurred.

Incorrect. First of all there is no 0xc00180 frame in the FPGA, the FAR counter in this particular case advances to 0 since it reaches the end of the available address range. Secondly look at the broader snippet and all above points.
This being said I stand by my point. Maybe I should be more precise in the bug root cause which should say:
Due to the fact that the there is no WCFG write to the CMD register the zero frame is used to overwrite the content of the last configuration frame.
This entire discussion proves that there should be an extension to the bitstream format chapter of the documentation where all of the above should go into.

https://github.com/SymbiFlow/prjxray/pull/1335#issuecomment-634476283

Your more detailed example doesn't change my point.  The FAR is clearly advanced when the CRC command is issued, and if the bitread modeled that, no special logic would be required.

Type 2 packets remember the previous register target (e.g. FDRI vs CRC vs CMD), but the FAR register behavior is likely independent of the Type 1/2 behavior.

Analyzed the case with bits2rbt and bitread (with aux support required for bits2rbt) (PR)
To compare the original RBF (vivado generated) with the reconstructed (bits2rbt generated).
Without the fix, ie where the bits files are equal the RBF test fails:
573766c573766
<<PHONE_NUMBER>0000001000000000000000
---
><PHONE_NUMBER>0000000000000000000000
573866c573866
<<PHONE_NUMBER>1000010111101101110000
---
><PHONE_NUMBER>0001110101000101010000
bits2rbt_bram_xc7 FAIL

clearly there is one missing bit (bit_00c0017f_004_15) which causes the CRC value to be invalid
With the fix the bit bit_00c0017f_004_15 is in bits, but the RBT comparison fails on different CRCs:
573812c573812
<<PHONE_NUMBER>0000000000000000000000
---
><PHONE_NUMBER>0000000001001110101111
573866c573866
<<PHONE_NUMBER>1000010111101101110000
---
><PHONE_NUMBER>1111001000011010011110
573871a573872
><PHONE_NUMBER>0000001000000000000000
573917,573918c573918
<<PHONE_NUMBER>0000000000000000000000
<<PHONE_NUMBER>0000000000000000000000
---
><PHONE_NUMBER>0000000001001110101111
573972c573972
<<PHONE_NUMBER>0001110101000101010000
---
><PHONE_NUMBER>1111001000011010011110


Persistent Extension Globals

Is it possible to define extension global with saving value between php requests?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/11619135-persistent-extension-globals?utm_campaign=plugin&utm_content=tracker%2F280146&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F280146&utm_medium=issues&utm_source=github).

Currently only by using 3rd-party extensions.
(This also isn't feasible to implement (especially in TS-builds), which makes most
3rd-party extensions better implementations than we could provide)


Foreground of the Textblocks inside the TabControl does not change when the theme is set to dark mode.

Hello,
Actually, I posted the problem in the title. The foreground color of the textblock elements inside the TabControl does not change. I couldn't find the source of the problem.

@spiegelp the library is no longer updated?

@saklanmazozgur The project isn't dead. I had an intense working year and that's why my open source projects didn't get much attention.


Add hyperpaste theme

Adds hyperpaste theme.

Is it possible to rename your plugin hyper-toothpaste or hyper-theme-toothpaste?
One may believe than hyperpaste is related to copy/cut/paste feature like hyperterm-paste and hyperterm-safepaste.
And it may be really cool to add your plugin here: https://github.com/imcatnoone/toothpaste but all plugins have toothpaste part in their name.

Closing this, as OP hasn't followed up. @lachlanjc if you do update or have any additional comments feel free to respond and we can reopen ❤


[T4A3][T13-B1] Low Bao Ling Vivian

Ready for review

@sunset1215
Some comments added. Please ack & close the PR after reading comments.

@okkhoy
Made changes after reading the comments. Please review.

@sunset1215 great work :+1:


Chrande/lsn sync

history is saved into buffer and then emptied between syncs

this is not perfect, if it takes longer than 30 seconds to store your updates into the blob, you might still have some glitching. The full fix is only removing things with an earlier LSN, but that will involved a bit more work, so I want to see how well this works without the full LSN sync.

CSS fixes
bigger tshirt

Merging this one since I've tested it in the portal/etc. and need to build on it for the batch changes.


consumed kfk msg parse bug

Hello,
I find parsed msg has been unpacked twice which makes the fields of new generated event to be 'event's flowed to riemann stream, eg.{:host yaiba, :service yiyayiyayo} will be unpacked to two events {:host yaiba} {:service yiyayiyayo}.
I  change "doseq" to "let" in this line make it right.
Would you confirm it?

I was wrong, in my case my msg was not a list but a map, but riemann-kafka was supposed to deal with msg in list..

Sorry, i was wrong.


Create a sampling version of the preview termination method

The idea here is to find how many samples of sectors you need to take in order to get a certain precision of accuracy compared to the precise method

Here's the go-pool code for terminating sectors:

https://github.com/glifio/go-pools/blob/jim/preview-terminate-sectors/sdk/preview_termination_queries.go

Here's the CLI code:

https://github.com/glif-confidential/pools-cli/blob/jim/terminate-testing/cmd/miner_preview_terminate_sector.go


chore: bdd-nh-1590510076 to 0.0.1

chore: Promote bdd-nh-1590510076 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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


Tweak app icon

This is from the google app store:

We need to update the icon to have a non-transparent background, @cherrielam to decide on the tweak. I suggest we take the grey of the circle and extend it to the edge of the icon, but there may be better solutions.

https://drive.google.com/open?id=1qVY0CqXn-IK8zOM_dcPbsCLcuYr3xiFU Would the current Apple App store one suffice?

Done as part of Production release 1.30.0


Added wildcard .eslintrc.*

I use different eslintrc files for different file types (e.g. eslintrc.js.json, eslintrc.ts.json).

[ x] Add
[ ] Delete
[ ] Fix
[ ] Prepare

Testing with fine tuning my settings.json and the wildcard doesn't seem to work (doesn't follow proper glob rules...)

Wildcards are not supported by vscode file extension system.


Replace italic text in settings with a different text style

Description of the new feature/enhancement
Currently, the settings pages "Color schemes" and "Rendering" (and possibly other pages) use italic text for some descriptional text, e.g.:

It is obviously my subjective opinion but I find this text style looking very out-of-place and inconsistent with the rest of the UI. I am not aware of any other inbuilt Windows apps that use italic text this way. Also, the Windows 11 Design Guidelines do not suggest italic text for any content elements.
Proposed technical implementation details (optional)
My suggestion is to replace the text style with one of these alternatives:

normal, non-italic black text
non-italic, grey text, as it is used for descriptions in Windows Settings, for example:

an InfoBar

I haven't tried out yet which of these would look best in Windows Terminal but I'd be happy to provide screenshots of each of these for further discussion.

I opened PR #16272 where I went with the first option (normal, non-italic black text style).


[BUG] Spread syntax inside the classnames package crashes ESLint

Describe the bug
See the "To Reproduce" section.
To Reproduce
Steps to reproduce the behavior:

Write

See error

Expected behavior
There should be no errors.
Screenshots

Environment (please complete the following information):

OS: Windows 10
Softwares + version used:

VSCode: 1.64
eslint-plugin-tailwindcss: 3.4.3
tailwindcss: 3.0.18

Hi @Serator,
please try<EMAIL_ADDRESS>It'll probably not handle multiple depth of spread object but it may be sufficient for you.
Let me know how it works for you.

@francoismassart Yeah, it works, but it causes a problem elsewhere:
.
ESLint stack trace:
TypeError: p.value.split is not a function
Occurred while linting Test\index.tsx:23
Rule: "tailwindcss/no-contradicting-classname"...


Add Toggle Switch Component

Create Toggle Switch Component
I am looking to create a toggle switch component and add it to reactstrap, Currently i have to use Bootstrap Toggle for the same, which is an added dependency.
Open to hear other's opinion about this.

reactstrap is a react component library for bootstrap which allows users to use bootstrap in react without depending on jquery. The component you linked to is not part of bootstrap and thus not part of reactstrap.
If you like, you can create a react compatible component for Bootstrap Toggle and publish it separately.

You can use MdBoostrap switch component :)


Shared cache between browser tabs?

I'm sorry for the (most probably) noob question, but I wasn't sure, so here I am.
Say that I have my app open in 2 browser tabs.  In one of the tabs I do a mutation and I optimistically update the value in the query cache, like in the example found in the documentation:
useMutation(updateTodo, {
  // When mutate is called:
  onMutate: (newTodo) => {
    // Snapshot the previous value
    const previousTodos = queryCache.getQueryData('todos')

    // Optimistically update to the new value
    queryCache.setQueryData('todos', old => [...old, newTodo])

    // Return the snapshotted value
    return () => queryCache.setQueryData('todos', previousTodos)
  },
  // If the mutation fails, use the value returned from onMutate to roll back
  onError: (err, newTodo, rollback) => rollback
  // Always refetch after error or success:
  onSettled: () => {
    queryCache.refetchQueries('todos')
  }
})

Currently when I switch tabs my data will synchronize and re-fetch once I focus on a tab/window, but there is a slight delay since we're waiting for the refetch to be done.
Is there a way to read the data from cache first and have the refetch be done in the background. So that when I switch tabs the new data will be immediately available, before the refetch is complete. I'm not sure if the cache is shared between tabs, or if I have a misconception of how things work exactly.
I hope my question makes sense, and let me know if you need clarifications.
P.S. - I love this library, good job everyone.

AFAIK the cache is per tab because it's in-memory, so it is sandboxed to the tab by Chrome.
My team may be implementing a mechanism to allow "persistent" caching through local storage but we will likely build it on top of react-query. If we do and it's in a good state to share, I'll be happy to contribute it or as a separate "add-on" to react-query.
The way you'd likely go about this is by wrapping the useQuery hooks and adding callbacks to store the successful results in local storage and then in the initialData callback, attempt to read from the cache. Perhaps you would also need to force the query into manual mode, then write an effect on mount that would try to check the persisted cache and call refetch if it's not available (falling back to normal operation). This is similar to how we are also building in SSR hydration to useQuery as well.

Maybe you can give this a try https://developer.mozilla.org/en-US/docs/Web/API/Window/storage_event

I think I had a misconception that the cache is for some reason already in local storage, I read a bit more and I see that it's in memory (and it makes sense).
Thanks for all the help folks.

@kamranayub I would love to see your implementation before you get to deep. Maybe I could offer a first-class integration point for this?

Any news about an in-storage persistence? I Am considering using react query for a react native app with offline abilities, and will build some basic system to do so on top of RQ. I am interested in any prior attempt.

At the moment nothing formal. At work, we use IndexedDB / local storage but it happens within the queryFn.
I also made a helper that can look at the cache-control header of a response and we can then set the query stale time dynamically to match the max-age value. Those are the only two approaches we use at the moment.

We are also looking to implement some localStorage syncing mechanism for react-query.
It makes a lot of sense when you take UX into consideration.
Consider the following enhanced Todo application.
The main page will have a list of todo titles. When pressing on a todo item, the todo will open in a modal with all of the todo details.
UX-wise, if this todo is fetched from the cache and no changes were made, then there are no problems.
If the todo is fetched from the cache and some changes were made from the background fetch, then a message appears to the user: "Changes were made to this todo. Press here to reload the todo".
Now imagine a user opening a todo in a new tab and editing it.
When he goes back to his previous tab and views that todo he will get this annoying message, that warns him of an interaction that he himself did.
This entire inconvenience could have been avoided if the cache was shared between the tabs.
I know that it's possible to implement the localStorage sync manually by wrapping/decorating the different hooks, but I believe that this kind of behavior makes sense to be part of the package itself and configurable.
WDYT? @tannerlinsley

I would just add to this discussion, that indexddb would have benefits to offline capability compared to local storage. Local storage can't be accessable from browser's service worker which can be a serious drawback in many scenarious.
For example, imagine a case where you're trying to make a post request (mutation as per this library I guess) to a server and the connection is poor or non-existant. You would want to persist that data indefinitely but still access it via a service worker.
Currently I'm in process of refactoring my app to use react-query and this could be a cool feature.
Right now I've been using Dexie.js as wrapper for indexddb and caching received data as well as failed post requests in a scenario when there is a poor network connection (a must for my app).

I'm facing this but in the same tab. Lets say you have a page P1, that pops a modal M1 (headlessui dialog, so it's a portal) and this a modal M2
Then I optimistically modify data in the modal M2.
If I have the same component using the data from the cache in the M1 and in the P1, M1 gets updated, but P1 does not.
Sharing in case it helps :)

does not!

any update?

any update?

This exists now, for persisting to local storage in general:
https://tanstack.com/query/latest/docs/framework/react/plugins/createSyncStoragePersister
And this exists (experimental), to help sync data between open tabs:
https://tanstack.com/query/latest/docs/framework/react/plugins/broadcastQueryClient


Cannot add members to Bridge namespace.

Expected
Hello World

Actual
C# to JavaScript Compilation Failed

Bridge.Contract.EmitterException: Namespace 'Bridge' uses reserved name 'Bridge'.
This name is reserved for Bridge.NET core.
   at Bridge.Translator.Inspector.ValidateNamespace(NamespaceDeclaration nsDecl)
   at Bridge.Translator.Inspector.VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration)
   at ICSharpCode.NRefactory.CSharp.NamespaceDeclaration.AcceptVisitor(IAstVisitor visitor)
   at Bridge.Contract.Helpers.AcceptChildren(AstNode node, IAstVisitor visitor)
   at Bridge.Translator.Inspector.VisitSyntaxTree(SyntaxTree node)
   at Bridge.Translator.Translator.InspectTypes(MemberResolver resolver, IAssemblyInfo config)
   at Bridge.Translator.Translator.Translate()
   at Live.LiveTranslator.Translate(String& output)
   at Live.TranslateHandler.Translate(String csCode)

Steps To Reproduce
Live Bridge
Dot Net Fiddle
using Bridge.Html5;
using System;

namespace Bridge
{
    public static class App
    {
        [Ready]
        public static void Main ()
        {
            Console.WriteLine("Hello World");
        }
    }
}

You can add to the namespace (s): Microsoft and System.
So, why not Bridge.

This is related to #88 and the forum thread, in particular this post:

This problem was caused by the Visual Studio Project name being selected as Bridge, which created a Bridge.dll, which caused a collision with the actual Bridge.dll.

The solution was to rename the Visual Project to something other than Bridge.

We're looking into a way to work around this naming conflict automatically, although for now using "Bridge" as a project name will cause a collision and build Exception.

There is a new config enableReservedNamespaces implemented in 15.0. Setting to true allows adding members into Bridge namespace:
{
  "assembly": {
    "enableReservedNamespaces": [false]|true,
  }
}


[SPARK-27601][BUILD] Upgrade stream-lib to 2.9.6

What changes were proposed in this pull request?
stream-lib 2.9.6 include several improvement:

How was this patch tested?
N/A

Test build #105017 has started for PR 24492 at commit 1ae8592.

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/testing-k8s-prb-make-spark-distribution-unified/10310/
Test PASSed.

Test build #105017 has finished for PR 24492 at commit 1ae8592.

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

Merged to master


How should parseAddress() be replaced?

I've recently noticed a deprecation notice in Scuttlebot, but I'm having a difficult time replacing the deprecated function. I found a reference to multiserver-address, but I don't think ma.decode() is providing { host, port, key } the same way. Here's the error I'm getting when running npm test in the Scuttlebot repo:
/home/christianbundy/src/ssbc/scuttlebot/plugins/gossip/index.js:165
        else throw new Error('must provide id:'+JSON.stringify(addr))
             ^

Error: must provide id:[[{"name":"net","data":["localhost","45451"]},{"name":"shs","data":["QnTycBc1Bm+suBWZmRWEbb7HqlJ/RIsQp/0TFswnHeA="]}]]
    at Object.get (/home/christianbundy/src/ssbc/scuttlebot/plugins/gossip/index.js:165:20)
    at Object.<anonymous> (/home/christianbundy/src/ssbc/scuttlebot/plugins/gossip/index.js:247:24)
    at apply (/home/christianbundy/src/ssbc/scuttlebot/node_modules/muxrpc-validation/index.js:173:15)
    at Object.add (/home/christianbundy/src/ssbc/scuttlebot/node_modules/muxrpc-validation/index.js:62:14)
    at /home/christianbundy/src/ssbc/scuttlebot/plugins/gossip/init.js:12:37
    at Array.forEach (<anonymous>)
    at module.exports (/home/christianbundy/src/ssbc/scuttlebot/plugins/gossip/init.js:12:4)
    at Object.init (/home/christianbundy/src/ssbc/scuttlebot/plugins/gossip/index.js:304:5)
    at /home/christianbundy/src/ssbc/scuttlebot/node_modules/secret-stack/api.js:43:28
    at Array.forEach (<anonymous>)
npm ERR! Test failed.  See above for more details.

In case it's useful, I've pushed my [failing] branch to deprecated-parse-address.
cc: @dominictarr

look at the stack trace! line 12
https://github.com/ssbc/ssb-server/blob/master/plugins/gossip/init.js#L12
that's coming from the local config. I think some test is using the seeds config to set an old format address, which requires parseAddress.


Update to use std::old_path

@sondrele Hiya, this updates rust-bmp to use std::old_path. Fix necessary to work with recent std::path changes.

Thanks!


test

As a user of the ALM tool, I want to be able to see

@Mgranfie Is this an actual issue that you didn't finish or are you trying out github issues?
Can we remove it from the Sprint? It is listed as a task to completed this Sprint.
If it is just a test, please close it when you are done with it.
Thanks,
Joshua

This was junk test....


Couldn't decrypt the repo when using swift in syncCodeSigning

New Issue Checklist

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

Issue Description
I have been using fastlane for some months and have correctly setup match for code signing. Now I'm trying to upgrate to the new swift language feature so I'm "translating" the ruby script to be in swift and use the FastlaneRunner with the generated xcode project and so.
The issue I'm having is that when running the syncCodeSigning function it throws an error saying that the password is wrong when i'm sure it is correct. Then I run plain 'fastlane run match' and introduce the same params when asked (git url, password) and it successfully decrypts the certificates and everything works fine. The only difference I can see is that one is run from old-way ruby and the other is from swift and goes through all the RubyCommand.Argument stuff. When using old-way ruby it works and when using swift it doesn't.

I've just encountered this behaviour myself.
Match seemed to work correctly in fastlane 2.80.0, and started displaying this behaviour in 2.81.0.
I've started porting to Swift as well, but did so on 2.80.0, where this worked.
I'm fairly certain if you downgrade to 2.80.0 and regenerate the Swift runner (deleting the old one, moving your fastlane folder to fastlane.bak, running fastlane init swift and then mv fastlane/swift fastlane.bak/), that it'll work. Not in the slightest because I just did the same 😉
On a sidenote: I created #11854  to know if there's a way to simplify this regeneration

Just from the changelogs in 2.81.0, I'd assume something goes wrong with either of these

[match/utils] using ruby openssl instead of terminal version (#11720) via Cyberbeni
[match] using ruby openssl instead of terminal one (#11641) via Cyberbeni

@pballartzinio what is your openssl version?

I had the contained version installed 2.81.0 which was using OpenSSL 1.0.2g  1 Mar 2016
Now I removed it and installed version 2.80.0 via gem and match works correctly but now I can see OpenSSL 1.0.2l  25 May 2017.
I hope that helps. Meanwhile I will stick with version 2.80.0

2.80.0 and earlier versions used the local OpenSSL installation for match, fastlane env only prints the ruby OpenSSL version. (In 2.81.0, all OpenSSL usages have been changed to the ruby versions to avoid "magic" errors like this: https://github.com/fastlane/fastlane/issues/9542 )
If I have time this weekend, I'll look into it. Did you specify any values for syncCodeSigning other than gitUrl, appIdentifier, userName?

Yes, I have gitBranch, type, teamId, shallowClone and forceForNewDevices.

Have you checked that, the absolutely same command with the same parameters, through Ruby isn't working too? Just to make sure that we're not missing some parameters that could be making your Ruby code to work but your Swift doesn't.

One thing you can do is run fastlane with --verbose and in this case, I think it would output the parameters. I'm guessing there might be an issue with an encoding. The Swift stuff packages up each fastlane command and sends it over as json.

The same is happening on non-Swift.  See #11853.
@Cyberbeni if you don't have time to fix this, how about reverting the changes from terminal openssl to ruby openssl?
I've even blown away the match repo, nuke'd everything, which makes it work once, but as soon as I run a second time, I get the dreaded:
"Couldn't decrypt the repo, please make sure you enter the right password!"
Invalid password passed via 'MATCH_PASSWORD'
If there's anything I can do which would be helpful, please let me know.

So you successfully nuke from terminal then successfully match from swift then the next match fails from swift but you can still match from terminal? Are there any commits in your repo after nuking?

This is about an error when trying to decrypt the repo.
This has nothing todo with Swift, my config is Ruby, so I probably shouldn't even be here :-)
I was trying to make the point that maybe the Swift issue is not just a Swift issue (and this ticket has a good history).
Using Fastlane 2.84.0

Create a brand new git repo (no commits)

match development (works!)

INFO [2018-03-06 16:31:10.61]: 🔒  Encrypted 'TQ85NMU328.p12'
INFO [2018-03-06 16:31:10.61]: 🔒  Encrypted 'Development_com.Recfive.Recfive.mobileprovision'
INFO [2018-03-06 16:31:10.61]: 🔒  Encrypted 'Development_com.Recfive.Recfive.StringSharing.mobileprovision'
INFO [2018-03-06 16:31:10.61]: 🔒  Encrypted 'Development_com.Recfive.Recfive.NotificationServiceExtension.mobileprovision'
INFO [2018-03-06 16:31:10.61]: 🔒  Encrypted 'Development_com.Recfive.Recfive.NotificationContentExtension.mobileprovision'
INFO [2018-03-06 16:31:10.62]: 🔒  Encrypted 'Development_com.Recfive.Recfive.MessagesExtension.mobileprovision'
INFO [2018-03-06 16:31:10.62]: 🔒  Encrypted 'Development_com.Recfive.Recfive.TodayExtension.mobileprovision'
INFO [2018-03-06 16:31:10.62]: 🔒  Successfully encrypted certificates repo
INFO [2018-03-06 16:31:10.62]: Pushing changes to remote git repo...
...
INFO [2018-03-06 16:31:13.93]: All required keys, certificates and provisioning profiles are installed 🙌

Run exact same again...  match development (fails!)

INFO [2018-03-06 16:31:52.34]: ▸ remote: Counting objects: 16, done.
INFO [2018-03-06 16:31:52.34]: ▸ remote: Compressing objects: 100% (13/13), done.
INFO [2018-03-06 16:31:52.40]: ▸ remote: Total 16 (delta 0), reused 16 (delta 0), pack-reused 0
INFO [2018-03-06 16:31:52.40]: ▸ Receiving objects: 100% (16/16), 60.61 KiB | 2.09 MiB/s, done.
ERROR [2018-03-06 16:31:52.48]: Couldn't decrypt the repo, please make sure you enter the right password!
ERROR [2018-03-06 16:31:52.94]: Invalid password passed via 'MATCH_PASSWORD'

Switch to Fastlane 2.80.0

Run exact same again...  match development (works!)

INFO [2018-03-06 16:47:52.95]: 🔓  Decrypted 'TQ85NMU328.p12'
INFO [2018-03-06 16:47:52.97]: 🔓  Decrypted 'Development_com.Recfive.Recfive.mobileprovision'
INFO [2018-03-06 16:47:52.99]: 🔓  Decrypted 'Development_com.Recfive.Recfive.StringSharing.mobileprovision'
INFO [2018-03-06 16:47:53.01]: 🔓  Decrypted 'Development_com.Recfive.Recfive.NotificationServiceExtension.mobileprovision'
INFO [2018-03-06 16:47:53.04]: 🔓  Decrypted 'Development_com.Recfive.Recfive.NotificationContentExtension.mobileprovision'
INFO [2018-03-06 16:47:53.06]: 🔓  Decrypted 'Development_com.Recfive.Recfive.MessagesExtension.mobileprovision'
INFO [2018-03-06 16:47:53.08]: 🔓  Decrypted 'Development_com.Recfive.Recfive.TodayExtension.mobileprovision'
INFO [2018-03-06 16:47:53.08]: 🔓  Successfully decrypted certificates repo

Again, happy to debug more.

@Cyberbeni any thoughts on how I could provide more info for this?

I currently have no idea what could cause this issue as it is working fine on my setup and I don't see any difference that could cause failure... But we can walk through debugging this issue together:

First separate encrypt and decrypt command from here: https://github.com/fastlane/fastlane/blob/bac851c5d24a9c13f1bcd082fa055cb8cecc8258/match/lib/match/encrypt.rb
Change salt to be a specific 8 character string, like "aaaaaaaa" instead of random.
Create a small text file
Encrypt it
Use openssl aes-256-cbc -k password -in input_file -out output_file -md5 -salt<PHONE_NUMBER>616161 to encrypt your input file (61 is the hex value of a)
Use a hex editor like iHex to compare the two output files (just open the 2 files separately and there is an option to compare the 2 topmost documents)
If there is a difference between the 2 then upload all the files in the test
If there is no difference then try the same with TQ85NMU328.p12 and tell me if there is a difference or not
If there is no difference in that either then try to decrypt both the encrypted small text file and the encrypted p12 file (add -d for the command line openssl for decrypting)
If only your p12 file fails any of the tests then we need to check if revoking that signing certificate from Apple Developer portal is enough for it to be safe to upload it for debugging.

So there is no difference without base64.  But if I do both with base64 then there is a slight difference.  Looks like the line breaks are in a different place.  Not sure if that's an issue, but please check that what I did is what you wanted :-)
$ echo "The encryption parameters in this implementations reflect the old behaviour which depended on the users' local OpenSSL version." > test.txt
$ cp test.txt byruby.txt; ruby mstest.rb
require 'base64'
require 'openssl'
require 'securerandom'
require 'security'

def encrypt(path: nil, password: nil)
  UI.user_error!("No password supplied") if password.to_s.strip.length == 0

  data_to_encrypt = File.read(path)
  salt = "aaaaaaaa"

  cipher = OpenSSL::Cipher.new('AES-256-CBC')
  cipher.encrypt
  cipher.pkcs5_keyivgen(password, salt, 1, "MD5")
  encrypted_data = "Salted__" + salt + cipher.update(data_to_encrypt) + cipher.final

  File.write(path, Base64.encode64(encrypted_data))
end

def decrypt(path: nil, password: nil, hash_algorithm: "MD5")
  stored_data = Base64.decode64(File.read(path))
  salt = stored_data[8..15]
  data_to_decrypt = stored_data[16..-1]

  decipher = OpenSSL::Cipher.new('AES-256-CBC')
  decipher.decrypt
  decipher.pkcs5_keyivgen(password, salt, 1, hash_algorithm)

  decrypted_data = decipher.update(data_to_decrypt) + decipher.final

  File.write(path, decrypted_data)
end

path = "byruby.txt"
password = "yoyoyo"

encrypt(path: path, password: password)

$ openssl aes-256-cbc -base64 -k yoyoyo -in test.txt -out byterm.txt -md md5 -S<PHONE_NUMBER>616161
$ openssl version
LibreSSL 2.2.7
Files are (barely) different.

Changed mstest.rb:
  #File.write(path, Base64.encode64(encrypted_data))
  File.write(path, encrypted_data)

$ cp test.txt byruby.txt; ruby mstest.rb
$ openssl aes-256-cbc -k yoyoyo -in test.txt -out byterm.txt -md md5 -S<PHONE_NUMBER>616161
Files identical.
Went ahead and did same with the certificates using my MATCH_PASSWORD, and saw the same.
Doesn't seem like any real issues so far...

So as per PR above, the real error was:
Exception in decrypt Encoding::UndefinedConversionError "\x82" from ASCII-8BIT to UTF-8:
...match/lib/match/encrypt.rb:123:in `write'

So the file was being decrypted and the error was from UTF-8 data in the retrieved file when Match was pulling from the repo and writing locally.
The "Couldn't decrypt the repo, please make sure you enter the right password!, Invalid password passed via 'MATCH_PASSWORD" errors were just courtesy of the rescue.
Hopefully this helps others as well.

To summarize here for anybody else that comes to this thread, it looks like the main cause was migrating from fastlane 2.80.0 to 2.81.0 which caused OpenSSL 1.1.0 to be used (which changed some default encryption methods) - https://github.com/fastlane/fastlane/issues/9542
I will be looking into this further 🤔

@joshdholtz In 2.80.0, it was using the locally installed commandline version of openssl which could vary from user to user and was different than the one in fastlane env, now it is using the ruby version which is printed out in fastlane env which is currently LibreSSL 2.2.7

I can confirm that with fastlane version 2.87 the problem is solved. Thank you all for looking into this!


OWASP Top 10 API Security Assessment

Will add in more details soon

Doc WIP

DOC: https://hackmd.io/@C8cLTtotQeS4jqmNB6K1Jw/H1KkNOhkJx

Action items for analysis:

[ ] Checkout other api security projects like Akto and Astra and see their logic for API testing.
[ ] Check how the sentryflow logs can be used to detect attacks

Broken Object Level Authorization

Check the authorization/JWT header token and see if the user is accessing another user's resources.

Broken Authentication

Check JWT's alg header, if this is empty, the token is not valid.

Broken Object Property Level Authorization

Could check if the IP where this request originates from is outside the enviroment.

Unrestricted Resource Consumption

Rate limit detection through observability API. Check the timestamp and number of events.

Broken Function Level Authorization

This usually means someone accessing a privileged endpoint. How would be check what's a privileged endpoint and what's not?

Unrestricted Access to Sensitive Business Flows

N/A

Server Side Request Forgery

Check for client-supplied input data sanitization. Not too tough to check for sanitization. This could also work for XSS and SQLi

Security Misconfiguration

Internal error revealing internal code. Not something we can check everywhere.

Improper Inventory Management

Old APIs get exploited if not depricated by newer APIs. Can't check for this using sentryflow

Unsafe Consumption of APIs

Santization of Data to be checked to prevent SQLi, XSS, SSRF, etc. Can be done by sanitizing Request body.


Add imageXOffset as IBInspectable

Provide the opportunity to override the calculated value xOffset value between rating images.

White spaces :)


Upgrade Tendermint to 0.8.0

For reference: deprecated work for upgrading to tendermint 0.7.3

closed by #510


PropertyFieldCheckboxWithCallout: 'checked' property is undefined

Category
[ ] Enhancement
[x] Bug
[ ] Question
Version
Version: [  1.3.0       ]
Issue Description
Configured the PropertyFieldCheckboxWithCallout in a webpart. When i checked or unchecked the checkbox the value is not getting stored in the properties. When i tried to display the property value it is giving me as 'undefined'
Thanks!

Sorry, my mistake no issue with the control. Sorry.


Can't See reference codes

Hi,
I'm in log of home bridge but don't appear the reference codes when I swhich an app.

https://github.com/grzegorz914/homebridge-xbox-tv#configuration-and-enable-web-api-control


Nebula-Rust-V1

What type of PR is this?

[√ ] enhancement

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

Glad to see there is someone working on this.

Amazing Work

Can we publish it to the crates.io first?
I prefer to choose Rust to power my business system because we can integrate with the Python ecosystem by the Pyo3 project.


Typo Update hardhat-verify-sbs.md

What changed? Why?
There is a typo in the "Getting an Etherscan key" section — the image filename and link use "harhat-verify-create-key.png" instead of "hardhat-verify-create-key.png". Fixed.

Notes to reviewers
How has it been tested?

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
0

Sum
1

zencephalon please merge it.

@onasilos
Hello, thanks for updating this. In subsequent review, this is actually a typo in the file name itself, not the link; this change will break the image. If you'd like to fix both, please feel free to open a new PR 🙏


Add fabric support for maintainVisibleContentPosition on Android

Summary
Implement a few missing bits for maintainVisibleContentPosition to work with fabric. The main thing needed is to add 2 fabric renderer listener methods to allow to hook into specific parts of the rendering process. We need some code to execute before view updates are executed and after view updates are executed. The current methods that are exposed do not work for this case. willDispatchViewUpdates is called from JS thread, and there doesn't seem to be a way to add UI blocks that will be executed at the right time like we do in paper. didDispatchMountItems is called for every frame which we don't want and will cause lots of overhead.
After that we simply need to call the right methods in the new renderer listener methods.
Changelog

Test Plan
Tested in RN tester maintainVisibleContentPosition example on Android with fabric enabled.

@cortinico Could you have a look at this, both PR that this depends on have been merged, so now MVCP is only missing support for Android Fabric, which this implements.


[AMBARI-24204] Ambari upgrade should set storm kerberos config to correct value

What changes were proposed in this pull request?
storm.thrift.transport should be set to the correct value as per the cluster kerberos state.
_storm.thrift.nonsecure.transport and _storm.thrift.secure.transport should be removed from ambari
How was this patch tested?
Verified that existing unit tests are not affected by the patch.
Added new unit tests as part of this patch

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/2902/
Test PASSed.

retest this please

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/2906/
Test FAILed.
Test FAILured.

retest this please

@Jetly-Jaimin Pushing commits triggers a new test run automatically.
BTW, please add incremental commits instead of force-pushing amended one.  Makes it easier to track changes.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/2919/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/2920/
Test PASSed.


[TUTORIAL] Use FixedBucketSampler in BERT tutorial for better performance

Description
Follow up on BERT tutorial https://github.com/dmlc/gluon-nlp/issues/425 - use FixedBucketSampler for better wall clock performance.
Checklist
Essentials

[X] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[X] Changes are complete (i.e. I finished coding on this PR)

Job PR-506/1 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-506/1/index.html

Do you mind also replacing
        grads = [p.grad(c) for p in params for c in [ctx]]
        gluon.utils.clip_global_norm(grads, grad_clip)

with
      nlp.utils.clip_grad_global_norm(params, grad_clip)

Like what was did in https://github.com/dmlc/gluon-nlp/blob/master/scripts/bert/finetune_classifier.py#L215


Clean up AssignmentRows name

The assignmentRes and assignmentRows constants in the api server file are somewhat misleading and should be renamed to some variation of assignmentMeta

working on it

I have made a PR #45 with necessary changes pls review and let me know

Thank you; changed up the taskMeta api response name for coherency, but that's about it.

thank's


Show upcoming and past Meetups

Regularly we organise meetups at the different campuses. It would be nice to have an overview of upcoming meetups and being able to view past meetups.
It could include:

title
description
add to calendar
link to meetup.com
...

Do we have a RSS feed for the meetups?

Perhaps call it Events instead of Meetups


CASSANDRA-16859 - allow blocking IPs from updating metrics about traffic

@maedhroz fixed all comments

@jonmeredith tried to add internode, this should cover at least the examples you showed me.

+1 for Couter metrics change, it's a good addition


Release GIL during resampling

CFFI implicitly released the GIL by default when calling into libsamplerate, whereas pybind11 keeps the GIL by default. This change in 0.2.0+ leads to major GIL contention in a application where I was successfully getting thread-based parallelism before.
I don't have much experience with pybind11 but it seems {py::gil_scoped_release release; ...} blocks will be needed around calls to src_simple and others.

Very good point and definitely an oversight. Would you mind giving PR #14 a try?

Was looking exactly for this – I'll be giving it a shot and report back on the results :)


Hotkey to open and close inventory

GitHub Issue (If applicable): #96

PR Type
What kind of change does this PR introduce?

What is the current behavior?
The player must click on the inventory button every time to open the inventory menu and the close button to close the inventory menu.

What is the new behavior?

The player can now press the "I" key to both open and close the inventory menu.
PR Checklist
Please check if your PR fulfills the following requirements:

[x] Tested code with current upstream repo
[ ] Added new tests to the test suite for the feature
[ ] Tested the full test suite, and ensured that the feature does not break current build.
[ ] Docs have been added/updated which fit (for bug fixes / features)
[x] Contains NO breaking changes
[x] Associated with an issue (GitHub or internal)
[ ] Checked licensing of Frameworks/Libraries (if applicable)

Other information

Internal Issue (If applicable):

Closes #96

Mostly LGTM, but when opening the inventory through the hotkey the new item notification is still present, and doesn't go away when closed via hotkey (either enter or i). I'd like this to be fixed, as the functionality for opening/closing inventory should be the same regardless of method (either clicking the button or through a hotkey).


Add support for modded enchantments

Thinking about "Fabric enchantments mod"

Unfortunately there's not a good way to do that. The method used to tweak vanilla cannot also be used for mod content (at least not without significant complexity and effort)


Why does the Service worker use the cached user-agent  in Network First strategy?

In our PWA, https://bitdroplet.com/app , we used Network First to cache our api responses. Weirdly, if we change the user agent mode, (say from desktop to mobile), the fetch calls from service worker to the network uses the previous ua string in its request header, and thus on the backend side the session gets invalidated. Unfortunately, it still uses the cache's ua while logging in again. Is there a way to prevent the sw to cache the user agent?
Strategy
workbox.routing.registerRoute( 			/https:\/\/bitdroplet\.com\/order\/isLoggedIn.*/, 			new workbox.strategies.NetworkFirst({ 				cacheName: 'login-cache', 				plugins: [ 					new workbox.expiration.Plugin({ 						maxAgeSeconds: 24 * 60 * 60, // 1 day 						maxEntries: 1, 					}), 					new workbox.cacheableResponse.Plugin({ 						statuses: [200], 					}), 				], 			}), 			'GET' 		);
Network Call

User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Safari/537.36

user-agent: Mozilla/5.0 (Linux; Android 9; ONEPLUS A5010) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36

In general, using Chrome's DevTools to change the user agent via device mode won't end up changing the effective user agent inside of the service worker.
You can confirm this by checking the navigator.userAgent value inside of the window and service worker global scope before and after enabling device mode emulation.
It kind of makes sense why that wouldn't be the case—device mode emulation applies to a specific client window that's open, and a service worker can control multiple different windows, each of which might have a different device mode setting. It's not clear which window's setting the service worker should inherit in that case, so just always sticking with the original user agent value makes sense to me.
Does that explain the behavior you're seeing? If you're looking for different behavior, then I'm not sure it would be possible, but if it is, it would likely come by engaging with the Chrome DevTools folks rather than via a change to Workbox.
If I'm misinterpreting your problem, apologies, and I'd welcome a clarification about what's actually going wrong.

Thanks for the explanation. 👍

Thanks for the explanation 👍

can someone please explain in detail m also getting issue in android webview
becasue of service worker webpage taking default user agent and because of this our custom user agent condition goes wrong
how can i solve this problem
Thanks in Advance


Partitioning policy is not created for new table from the script.

Situation
New empty database.
Set of kql scripts is prepared to create and manage complete database. For example: create-merge, policy update,  policy sharding, policy partitioning, etc.
delta-kusto is configured to read all the scripts and compare, deploy it to actual database.
Expected result
Everything (the state of the database) should be merged into Azure Data Explorer.
Actual result
Merge with delta-kusto correctly introduced all changes except one: partitioning policy.
No errors, simply, the partitioning policy is omitted.
The partitioning policy command was not found neither in the commands going to be executed, printed by delta-kusto nor in the database after deployment.

Found root cause. The issue is not correlated to delta-kusto, but to the scripts. The scripts had syntax error, so the delta-kusto couldn't recognize it as a valid kql script, so it has been omitted.
After fixing the script, partitioning policy is recognized properly from the scripts.


Add rule to check subresource integrity

[ ] <script> or <link> elements don't have the integrity attribute
[ ] the content of the <script> or <link> elements doesn’t match the associated integrity value
[ ] other checks (TODO: read the spec)

See also:

https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity
Spec: https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist

Spec: https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist


System Spec feature: include System Tests text

This PR introduces a few sentences from the Rails documentation on System Testing.
Goals:

keep more of the story in the same document - easier to navigate
tell the story in an rspec-rails frame - talk about how to get things done in this spec

When we close in on those goals, perhaps the link to the System Tests documentation can be de-emphasised.
Questions for reviewer

[ ] What is the smallest iterative step we can take towards those goals?
[ ] Should this PR include more Scenarios?

@olleolleolle I think it might be good to document that this runs your tests in a transaction, and so unlike feature specs with javascript, you don't need database cleaner.

@samphippen I'll just fix a typo, and add a note that Capybara's auto-required for a system spec.

@samphippen There.

I changed wordings.
Thanks for caring and giving such actionable feedback on this PR.
This is good progress for a short sitting, I'm pleased.


Use CFButton

Additions

Add CF Button to the dependencies

Removals

N/A

Changes

Use CF Button in Scenario Buttons

Review
@cfarm @virginiacc

:+1:  This looks great!


Doesn't work with form-data 2.3.2+

Hi there! Thank you for your plugin.
Unfortunately, one of my dependecies set form-data to 2.3.2 version. And after it css-validator has an error:
Uncaught TypeError: form.getHeaders is not a function at ValidationStream.generateTextRequest (validation-stream.js:74)

I'm quite busy for the next couple days. Would you be interested in submitting a PR for this?

This has been resolved by @antongolub in #18 and released in 0.10.0


Multiple slashes in path doesn't throw error on windows.

A "nice" difference between *nix and windows systems is that unix treats duplicate slashes in paths /User/ben////my////path/// As one slash /User/ben/my/path/.
Windows however does not. This means that on windows, the module loader will be unable to find paths that are okeyed by the linter, for example:
// fine on unix, bad on windows...
import workflow from './/workflow';

Is there a way we could add a platform specific check? or maybe just disallow duplicate slashes, as they will be removed automatically on unix?

Yeah, sounds like a good thing to do, in addition to checking that the actual filesystem case matches.

Ran into this issue today. Maybe we could name the rule no-multiple-slashes. Either that or make a general rule called no-extraneous-slashes that could optionally check for trailing slashes, e.g. import workflow from './workflow/';

As a workaround, you can use the no-restricted-imports rule with a **// pattern. Example config:
rules:
  no-restricted-imports:
    - error
    - patterns: ['**//']

I'm going to close this as a duplicate of #417, since #912's no-useless-path-segments rule should presumably cover it.

@ljharb I think you mean #471, not #417 ;)

Whoops, thanks. Corrected (i'll delete your correction and my reply so there's no more link to 417)


TimeoutException when deactivating a volume

Rancher Version:
1.1.0.
Docker Version:
1.10.3.
OS and where are the hosts located? (cloud, bare metal, etc):
AWS.
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB)
Single node rancher.
Environment Type: (Cattle/Kubernetes/Swarm/Mesos)
Cattle.
Steps to Reproduce:

Create a convoy-nfs storage pool.
Start a new container that uses a volume with the convoy-nfs volume_driver. (for example, a web application).
Upgrade the new container. You don't need to change anything, just click "Upgrade".

Every once in a while, the new upgraded container will be stuck "initializing" and will never launch.
If I navigate in Rancher to "Admin" > "Processes", I get this:

That volume.deactivating row corresponds to this:

Here's the exception on that volume.deactivating row:

Also, here's the output of the error in the main container:

With the release of Rancher 2.0, development on v1.6 is only limited to critical bug fixes and security patches.


[Bug] using create_data.py convert kitti_tiny_data to mmdetection support data, but when using browse_dataset.py vis data, find 3dbox has bias in 2D image, there is no problem on lidar

Prerequisite

[X] I have searched Issues and Discussions but cannot get the expected help.
[X] I have read the FAQ documentation but cannot get the expected help.
[x] The bug has not been fixed in the latest version (dev-1.x) or latest version (dev-1.0).

Task
I'm using the official example scripts/configs for the officially supported tasks/models/datasets.


Correct output file names for Visual Studio project generation

Changes the output path of generated Visual Studio projects from ["32" and "64"] to ["x86_32" and "x86_64"] respectively, matching the new executable naming convention of the build system and allowing the correct files to be debugged in Visual Studio.

Thanks!


Disable execution of ntpdate on ntp server

Sometimes ntpdate to pool.ntp.org is keep on failing, which is causing the
entire build failing, This patch is to disable ntpdate on local ntp server which
should not cause any issues as other nodes are syncing the time from this
server and until ntp server get the time from remote clock, it will use local
clock, so still all nodes in the build will have clock synced.
This solve issue #663.

please test this

please test this

I ran a build with this and ntpdate never got called b/c it doens't get called if ntp is already running. Are you expecting it to get called?

@bodepd yeah, but it getting called before ntp server setup on bootstrap, and if ntpdate (to external server) failed, the entire build will be failing as ntp.service.consul will not be created without successful ntpdate.


make_slices obeys num_partitions (avoids hanging frames)

Closes #1335 . Uses the implementation with np.linspace.
This required making a change to MemoryPartition.get_tiles() to propagate tiling_intent where available, which I think was actually a bug/oversight.
I also had to modify a number of test cases (including core tests in tests/udf) because they had been coded both for the old implementation of make_slices and the old implementation of MemoryPartition.get_tiles(). It seems like there were a few cases which previously were expected to raise with pytest.raises but now actually pass as with the other parametrizations of those tests. These changes should be thoroughly reviewed!
Contributor Checklist:

[x] I have added or updated my entry in the creators.json file
[x] I have added a changelog entry for my contribution
[ ] I have added/updated documentation for all user-facing changes
[x] I have added/updated test cases
[ ] I have included the rebuilt production build of the client (only if changes were made to the GUI)

Reviewer Checklist:

[x] /azp run libertem.libertem-data passed
[x] No import of GPL code from MIT code

/azp run libertem.libertem-data

The failing test is a notebook that included the number of partitions in its output. This should be easy to fix; if you like, you can also add an ignore pattern to nbval_sanitize.cfg to make the test independent of future partitioning changes

/azp run libertem.libertem-data

I also had to modify a number of test cases (including core tests in tests/udf) because they had been coded both for the old implementation of make_slices and the old implementation of MemoryPartition.get_tiles(). It seems like there were a few cases which previously were expected to raise with pytest.raises but now actually pass as with the other parametrizations of those tests. These changes should be thoroughly reviewed!

Looks correct, and indeed the tiling intent not being propagated was the issue.


In the particle shader the deterministic sequence of random values is not guaranteed

Godot version
v4.1.1.stable.official [bd6af8e0e]
System information
Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1650 SUPER (NVIDIA; <IP_ADDRESS>30) - Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz (12 Threads)
Issue description
I think I found a bug in the particle shader. It revolves around the following line:
// apply linear acceleration
force += length(VELOCITY) > 0.0 ? normalize(VELOCITY) * tex_linear_accel * mix(linear_accel_min, linear_accel_max, rand_from_seed(alt_seed)) : vec3(0.0);

As long as VELOCITY is greater than 0, "rand_from_seed(alt_seed)" is called among other things. Thereby "alt_seed" is changed.
But if now damping is active, VELOCITY reaches 0 at some point. Then "rand_from_seed(alt_seed)" is NOT called anymore.
That means: all following random values, which depend on "rand_from_seed()", change once abruptly.
Steps to reproduce
The error probably manifests itself in very different ways. As soon as damping brings the speed to 0, there will be one-time jumpy changes in all aspects that use edge_fom_seed:

radial acceleration
tangential acceleration
orbit velocity
damping
angular velocity
animation offset and speed
hue

Minimal reproduction project
N/A

Good catch! This random values should be calculated outside the conditional so that it is always calculated and other random values don't change based on the presence/absence of the condition.


Typo in reject promise

reject(error) should be reject(err) or it masks the real error!
https://github.com/account0123/RAE-API/blob/a9d31e9e643080948c84837df1e8beffbcc5b114/src/HttpInterface.js#L73-L76

Logging is the only important thing. Anyways, there's no callback on rejection then that issue is not relevant.
Whatever, the issue will be fixed in next commit. Thanks for reporting.


Altering mapper and segment creation to be compatible with PinotBuildAndPushJob

Codecov Report

Merging #1997 into master will increase coverage by 0.07%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1997      +/-   ##
==========================================
+ Coverage   69.71%   69.79%   +0.07%
==========================================
  Files         829      829
  Lines       40013    40013
  Branches     5383     5383
==========================================
+ Hits        27896    27927      +31
+ Misses      10262    10237      -25
+ Partials     1855     1849       -6

Impacted Files
Coverage Δ

...e/impl/dictionary/LongOnHeapMutableDictionary.java
88.88% <0%> (-6.67%)
:arrow_down:

...mpl/dictionary/DoubleOffHeapMutableDictionary.java
72.72% <0%> (-5.46%)
:arrow_down:

.../impl/dictionary/LongOffHeapMutableDictionary.java
87.27% <0%> (-3.64%)
:arrow_down:

...e/operator/dociditerators/MVScanDocIdIterator.java
64.17% <0%> (-2.99%)
:arrow_down:

...om/linkedin/pinot/transport/netty/NettyServer.java
81.05% <0%> (-2.11%)
:arrow_down:

...impl/dictionary/FloatOffHeapMutableDictionary.java
85.45% <0%> (-1.82%)
:arrow_down:

.../com/linkedin/pinot/common/data/TimeFieldSpec.java
97.36% <0%> (-1.32%)
:arrow_down:

.../pinot/core/common/datatable/DataTableBuilder.java
91.06% <0%> (-1.12%)
:arrow_down:

...data/manager/offline/AbstractTableDataManager.java
91.5% <0%> (-0.95%)
:arrow_down:

...com/linkedin/pinot/core/common/DataBlockCache.java
76.51% <0%> (+0.67%)
:arrow_up:

... and 18 more

Continue to review full report at Codecov.

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


Issue with infer example

Hi,
I tried to infer an example using ASGCN model with the same dataset used for evaluation in training process. However, I got this error
output = torch.matmul(adj, hidden) / denom
RuntimeError: batch1 dim 2 must match batch2 dim 1
Any ideas plz?
Thank u in advance

It seems that the dependency matrix has not been processed properly. Could you please give the details of your example?


Handle JSON.parse error properly

Description:
When JSON.parse fails, an error that the document failed to load should be displayed.

An error occurs when accessing the examples$20221216 document in the default project from the admin account.
https://yorkie.dev/dashboard/projects/default/documents/examples$20221216
Why:
If only an empty screen is displayed, users don't know why the page is not working.

I looked for the cause. It seems that escaping value of RichText's attrs is missing in toJSON().

// problem value:
{"attrs":{"bold":""1""},"val":"Hello"}

// full value:
{"codemirror":"\\n  Hello CodeMirror\\n","lists":[{"cards":[{"title":"Pruning document"},{"title":"Clean up codes"}],"title":"Todo"},{"cards":[{"title":"Array operations"}],"title":"Doing"},{"cards":[{"title":"Create a sample page"},{"title":"Launch demo site"}],"title":"Done"}],"markdown":"# Hello Markdown","quill":[{"attrs":{"bold":""1""},"val":"Hello"},{"attrs":{},"val":" Quill"}],"shapes":[]}

// Marshal returns the JSON encoding of this text.
// Marshal returns the JSON encoding of this hashtable.
func (rht *RHT) Marshal() string {
	members := rht.Elements()

	size := len(members)

	// Extract and sort the keys
	keys := make([]string, 0, size)
	for k := range members {
		keys = append(keys, k)
	}
	sort.Strings(keys)

	sb := strings.Builder{}
	sb.WriteString("{")
	for idx, k := range keys {
		if idx > 0 {
			sb.WriteString(",")
		}
		value := members[k]
		sb.WriteString(fmt.Sprintf(`"%s":"%s"`, k, value)) // we need to escape the value
	}
	sb.WriteString("}")

	return sb.String()
}

https://github.com/yorkie-team/yorkie/blob/7f7ea6097cd43dba612d14df09e946a298717abf/pkg/document/crdt/rht.go#L161-L185


Game Crashed

Describe the bug
When I entered a world, my game crashed.
To Reproduce
Steps to reproduce the behavior:

I edit the mod's config
I start my game
I enter a world
See error

Logs/Screenshots/Videos
Crash Report: https://pastebin.com/XN7YJ2WT
config: https://pastebin.com/XN7YJ2WT
Versions

Minecraft: [1.12.2]
Mod Version: [2.3.0]
Forge [Forge <IP_ADDRESS>54]

Because you have four entries for replaceblock / replacewith, the other options need to have four things on the list too, even if it's four of the same value.

Because you have four entries for replaceblock / replacewith, the other options need to have four things on the list too, even if it's four of the same value.

Ok, thanks for your answer.


Hertz header binding becomes case sensitve since v0.7

Describe the bug
Hertz header binding becomes case sensitve since v0.7
To Reproduce
Use the following struct definition
type WebSocketHeaders struct {
	SecWebSocketExtensions []string `header:"Sec-WebSocket-Extensions"`
	SecWebSocketKey        string   `header:"Sec-WebSocket-Key"`
	SecWebSocketProtocol   []string `header:"Sec-WebSocket-Protocol"`
	SecWebSocketVersion    string   `header:"Sec-WebSocket-Version"`
}

Then bind to a request header which use *-Websocket-* instead of *-WebSocket-*.
Only SecWebSocketKey and SecWebSocketVersion (whose type is string) can be successfully bound. SecWebSocketExtensions and SecWebSocketProtocol (whose type is []string) cannot be bound correctly and will be empty no matter what the request sets.
Expected behavior
Successfully binding all the header.
Screenshots
N/A
Hertz version:
v0.7.3 affected. v0.6.* seems not affected.
Environment:
N/A
Additional context
To make it worse, the standard way to spell it is WebSocket not Websocket. But there is a legacy bug with Chromium.  See wrong headers for websockets draft-hixie-76 protocol [41183445] - Chromium. If a user decides to support chromium using the binding facilities provided by hertz, other browsers may get broken.

@sunziping2016 can you offer the raw request curl for the header? I will try it

@sunziping2016 can you offer the raw request curl for the header? I will try it

I tried to reproducing the issue. And I found my origin description of this issue to be inaccurate.
package main

import (
	"context"

	"github.com/cloudwego/hertz/pkg/app"
	"github.com/cloudwego/hertz/pkg/app/server"
	"github.com/cloudwego/hertz/pkg/common/utils"
	"github.com/cloudwego/hertz/pkg/protocol/consts"
)

type Request struct {
	XSingleValue   string   `header:"X-SingleHead-Value"`
	XMultipleValue []string `header:"X-MultipleHead-Value"`
}

func main() {
	h := server.Default()

	h.GET("/", func(c context.Context, ctx *app.RequestContext) {
		var req Request
		err := ctx.BindAndValidate(&req)
		if err != nil {
			ctx.AbortWithStatusJSON(consts.StatusInternalServerError, utils.H{
				"message": "failed to decode",
			})
		} else {
			ctx.JSON(consts.StatusOK, utils.H{
				"data": req,
			})
		}
	})

	h.Spin()
}

Compile it with the latest version of Hertz.
Then, run curl http://<IP_ADDRESS>:8888 -H "X-MultipleHead-Value: hello". You should be able to see {"data":{"XSingleValue":"","XMultipleValue":null}}, where as the expected output shall be {"data":{"XSingleValue":"","XMultipleValue":["hello"]}}.
However to trigger this issue (or unexpected behavior), the struct field tag must contains an uppercase letter in the middle of a word. Change "X-MultipleHead-Value" to "X-Multiplehead-Value" will make hertz behave as expected. So to make it clear, to trigger this issue, here are some requirements:

Hertz >= v0.7
[]string
header name: at lease one uppercase letter in the middle of a word

HTTP defines that header names are case-insensitive. The request parser implements this by using CanonicalHeaderKey, making the first character and any characters following a hyphen uppercase and the rest lowercase.

So the uppercase letter in the middle is useless.

If it must be used this way, perhaps the conversion can be disabled using
ctx.Request.Header.DisableNormalizing

HTTP defines that header names are case-insensitive. The request parser implements this by using CanonicalHeaderKey, making the first character and any characters following a hyphen uppercase and the rest lowercase.

So the uppercase letter in the middle is useless.

Thanks! I see. I think this issue's title is no longer accurate, and the behavior of Hertz looks good to me. I'll avoid any uppercase letter in the middle.
However, the inconsistent behavior between []string and string may be confusing to users. Anyway, that's not a big deal.
❯ curl http://<IP_ADDRESS>:8888 -H "X-MultipleHeader-Value: hello"
{"data":{"XSingleValue":"","XMultipleValue":null}}⏎
❯ curl http://<IP_ADDRESS>:8888 -H "X-SingleHeader-Value: hello"
{"data":{"XSingleValue":"hello","XMultipleValue":null}}⏎

Thanks for your reply. You can close the issue.

@sunziping2016 @rogerogers 这个问题我说明一下吧，在重构的时候就已经考虑到了。
重构前：

使用 go-tagexpr 作为默认的绑定器，该绑定器会默认将所有 header tag 做归一化，所以可以看到重构前绑定上值了
但是如果 hertz 关闭了 header 归一化的能力，那么 go-tagexpr 做的归一化 header 就会失效，导致绑定失败

重构后：

我们考虑到用户可能有不同的归一化配置，所以我们没有对 header tag 进默认进行归一化，完全让用户自行写 header tag 的格式来实现与 header 的对齐；这也是导致出现 diff 的原因。
现在看起来，如果我们做归一化的行为跟着 hertz 的配置走的话，可能在一定程度上减少这个问题的干扰。 即如果开了归一化配置，则binder也进行header tag 的归一化，反之则不进行。

@sunziping2016 如果有兴趣，可以提个 pr 再讨论下。代码修改位置: https://github.com/cloudwego/hertz/blob/develop/pkg/app/server/binding/internal/decoder/slice_getter.go#L126


Launching multiple instances from CLI

For the life of me, I can't get the package to launch with 2 instances. I've tried:
dcos package install --options=public-lb-descriptor.json marathon-lb

Where the content of public-lb-descriptor.json reads as:
{
  "id":"marathon-lb",
  "instances": 2
}

To no avail.
Scalling with the Marathon UI (using the Scale Application button) works fine ... but I need to script it.

FYI: A curl request through the HTTP api works ...
curl -H "Content-Type: application/json" -X PUT -d '{"instances": 2}'  http://host/marathon/v2/apps/marathon-lb

Try this in your public-lb-descriptor.json :
{
  "marathon-lb":{
    "instances":2
  }
}

Doh.  Thx.


Custom error messages for all inferred validations

I would like to use custom error messages for all inferred validations.
What I want to do is shown in this spec (based on this):
 it "should have correct error messages" do
    custom_boat = Class.new do
      include DataMapper::Resource

      def self.name
        'Boat'
      end

      property :id,   DataMapper::Property::Serial
      property :length, Integer, :min => 1,
               :messages => {
                 :greater_than_or_equal_to => "Length must be at least 1"
               }
     end

    boat = custom_boat.new

    boat.length = 0
    boat.should_not be_valid
    boat.errors.on(:length).should == [ 'Length must be at least 1' ]

    boat.length = 3
    boat.should be_valid
    boat.errors.on(:length).should be_nil

As you can see I would like to override the default error message for the auto validation derived from :min => 1.
Currently this spec fails:
'Inferred validations should have correct error messages' FAILED
expected: ["Length must be at least 1"],
     got: [#<DataMapper::Validation::Violation @resource=#<Boat @id=nil @name="superboat" @length=0> @rule=#<Dat
aMapper::Validation::Rule::Numericalness::GreaterThanOrEqual @attribute_name=:length @allow_nil=true @allow_blan
k=nil @custom_message=nil @if_clause=nil @unless_clause=nil @expected=1> @custom_message=nil @attribute_name=:le
ngth>] (using ==)

Is there a good reason why boat.errors does not get a string attached due to the failed validation but this Violation instance instead? Does it make sense to change that?
I would love to provide a pull request if you think this change makes sense.

The DataMapper::Validation::Violation#to_s method returns your expected result. If you replace
boat.errors.on(:length).should == [ 'Length must be at least 1' ]

with
boat.errors.on(:length).map(&:to_s).should == [ 'Length must be at least 1' ]

your example should work.


oauth2 creds cannot be saved after edit done (cannot be edited)

Description: oauth2 creds with a faceless client could be created but cannot be saved in case of an edit attempt
STR

Create oauth2 creds -> choose existing Auth Client -> authenticate -> verify and save creds.
try to edit created creds: authenticate -> verify -> get error on save in devtools

AR:

can not edit oauth2 credentials
Error in devtools:

{"errors":[{"detail":"\"data.attributes.credentials.scope\" is not allowed to be empty","status":400,"code":400,"title":"\"data.attributes.credentials.scope\" is not allowed to be empty","meta":{}}]}

ER: User is able to edit oauth2 creds

Can't be reproduced


HTTPS/SVCB Record support

Hi all,
Just requesting support for HTTPS/SVCB records. I might take a stab at the development of this, but wanted to document it in an issue in case support was already in the works.

@ross - Almost complete here, just getting a coverage issue with isinstance. Do you care about #pragma no cover?

The #pragma no cover policy is roughly that it can only be used on blocks that are dealing with python or library versions, e.g. https://github.com/search?q=org%3Aoctodns+"no+cover"&type=code
If you're running into it otherwise the best option is probably to go ahead and push a branch up and open it as a draft PR so that I can :eye: it.


Add front-end support for unions and match expressions and declarations.

This PR has most of the changes needed for unions and match.

It covers the front- and middle- ends; parser, type-checker and lowering.
It has some ASM gen support, currently untested.
It has all the E2E testing to cover all possible errors and general use.

It does not have ABI generation nor validation testing.  There are no documentation changes yet either.
I have been working on this for several weeks and have made pretty much all of the design and implementation decisions unilaterally, and so many of these choices need to be reviewed, particularly before we document it.
To get an example of how unions and both match expressions and match declarations work presently you can take a look at the E2E tests, especially unions/simple.pnt.
https://github.com/essential-contributions/pint/blob/948b540067db248f0296942a658815e1c577b36e/pintc/tests/unions/simple.pnt
I think perhaps if it's OK we could merge this PR and add issues for all the remaining work.  Contracts which use unions won't compile (due to missing ABI) but since we're still pre-release I'd like to get it in since it'd getting too big and merge conflicts are an issue.
The main reason I didn't implement ABI output was I made an attempt and frankly got quite lost.  I'll need some help to understand what is required there.
There are still a couple of design issues to work out too.  Especially around storage -- do we allow unions in storage at all?  Also, do we allow match bindings to shadow each other?  Perhaps, since they're local in scope.

While working on this I decided #874 and #875 are needed.  Unions make these issues worse.


#354: Created MLIR LIT testing directives to add into .mlir files. Th…

…ese directives will define where tests get run and what machines they are supported for

converted to draft to further investigate how this can be supported in lit


Req: Option to prefix with node names rather than SSH attribute in knife ssh

Description
The output of knife ssh is really useful when running a command over multiple servers, but it can be frustrating to have to convert public hostnames, or IPs back to a recognisable server name. It'd be nice to have a flag to switch out the SSH attribute value with the corresponding node name instead for these situations and a matching knife.rb setting to facilitate setting it as default behavior.
Possible extensions might be allowing an arbitrary attribute to be used, configurable in knife.rb.
Chef Version
13.4.19
Platform Version
Linux
Replication Case
Current:
$ knife ssh 'name:test-server' 'echo hello'
ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com hello

Desired:
$ knife ssh -n 'name:test-server' 'echo hello'
test-server hello

👍  !
I'm really glad I found this GH issue. When I Googled "knife ssh show node name in output", I was taken to this ticket from 2013 asking for exactly this CHEF-4618 Jira issue.
Since I imagine MANY knife ssh users have integrations that expect the output of current knife ssh to prefix with hostnames as it currently does, I'd like to propose a slightly usage syntax. I propose that a --prefix-with flag is introduced that defaults to fqdn to keep default behavior like it is by default. The usage to make @mal's proposal work as desired would be:
Desired:
knife ssh -n 'name:test-server' --prefix-attribute name 'echo hello'
test-server hello

Woooooo! Glad to see this feature req be conquered. Thanks!


Chinese bibtex

I just found when I  export bibtex when the item include some chinese title or author , the export key is just like this format :_2014, the author is missing
for example:
@article{__2008,
title = {{关节型机器人二指平动手爪的设计}},
issn = {1672-6413},
lccn = {14-1319/TH},
language = {中文;},
timestamp = {2017-06-13T14:23:22Z},
number = {05},
journal = {机械工程与自动化},
author = {苏, 子昊 and 孔, 庆忠},
year = {2008},
note = {00005},
keywords = {二指平动手爪,机器人,运动分析,movement analysis,robot,two-finger translation gripper},
pages = {80--81+84},
}
how to fix this ?

Hi qiuzhu I use juris-m for multi-lingual bibliographies, but with regular Zotero you might want to try to change the citation key preference (zotero->preferences ->better biblatex ->citation keys) to [auth][year][0] see if that helps.
Even if that works, you might still want to take a look at juris-m. greetings

Yeah that's almost certainly the default [zotero] pattern at work. BBT5 will have [auth][shorttitle][year] as its default.

@retorquere thank you for your reply，and shortite will be great，looking forward to bbt5，hoping bbl5 can add new feature just like jabref that can interact with latex editor app(texstudio) ，for example，right click the item will appear “export to texstudio”
使用 FastHub 从我的 HUAWEI EVA-DL00 发送

Please file a separate feature request for that.