The relay response for eth_sendBundle doesn't return the same json types

the reply from the relay seems quite strange - when it sends the bundle to the miners it returns
{
    "id": 1337,
    "jsonrpc": "2.0",
    "result": true
}

but when it doesn't send the bundle to the miners it returns
{"jsonrpc":"2.0","id":1,"result":{"bundleHash":"0x4cd3b......"}}

To me it makes more sense that the reply is always of the same type. I mean otherwise, it makes it difficult to know how to parse the result.

Can you post an example body that triggers the "result": true case? We're struggling to reproduce this issue.

It happens only occasionally so not sure how I can give you an exact replicable steps, but will try
But looking at your docs even there it indicates that it returns true when it gets accepted by the node
https://docs.flashbots.net/flashbots-auction/miners/mev-geth-spec/v04-rpc
but then the example shows that the reply returns a different json structure with a string for bundleHash
https://docs.flashbots.net/flashbots-auction/searchers/advanced/rpc-endpoint
Could you first comment on this inconsistency as well?

Ah, that’s just the docs being out of date. An older version of the api used to return result=true

ok got it , will try to dig deeper how to replicate

ok it turns out that it was the ethermine mev endpoint.
Can you confirm is {"jsonrpc":"2.0","id":1,"result":{"bundleHash":"0x4cd3b......"}} should be the correct reply so that I can ask ethermine to update their api.


Unable to resolve module react-native-scrollable-tab-view  with react native 0.39.2

Hello,
I am using latest scrollable tabs 0.7.0 and react native 0.39.2
get this error but work well with react native 0.32.1
Unable to resolve module react-native-scrollable-tab-view  with react native 0.39.2

When I try again,it works
react-native run-ios


Autocomplete doesnt work when fullscreen appears

Using at.js together with froala editor. Everything is working when froala editor is not in fullscreen mode.
I have properly initialized froala events (initialize event), froala config and at.js config. All is working fine, before I switch editor to fullscreen. After, autocomplete is not ready, nothing happens.

You can close this issue, it was caused by z-index of autocomplete. I set higher.


Check if port is defined correctly. If not use modify command.

Ran into a small issue using this script.
I was getting the error below in my messages log when trying to use port 636 (ldap port, also default used by Streisand VPN).
openvpn: TCP/UDP: Socket bind failed on local address [undef]: Permission denied
openvpn: Exiting due to fatal error

It turns out since that port was already defined in my selinux the commands in your script for setting the port were being ignored. Once I used the modify command below I was able to restart OpenVPN and everything worked correctly.
semanage port -m -t openvpn_port_t -p udp 636

I'm thinking it might be helpful to have the script also do a check after issuing the add sellinux command (semanage port -a -t openvpn_port_t -p udp $PORT). If OpenVPN is still not set to correct port then confirm with the user that it's ok to do a modify command (semanage port -a -t openvpn_port_t -p udp $PORT).
Thanks

The script expects an unused port from the user, in which case this is not needed. I think that's a reasonable expectation.
It is also suggested to use a clean OS, or at least one where there are no leftovers from conflicting software, to avoid situations like this.
Finally, it's not my work to cleanup said conflicting leftovers from other software. For one, my script does actually remove its own SELinux rules on removal.


TypeError: Ambiguous overloads found for com.hankcs.hanlp.seg.Segment.seg(str) between

TypeError: Ambiguous overloads found for com.hankcs.hanlp.seg.Segment.seg(str) between:
public java.util.List com.hankcs.hanlp.seg.Segment.seg(char[])
public java.util.List com.hankcs.hanlp.seg.Segment.seg(java.lang.String)

[auto-reply] Thanks for your comment. However, the essential information is required. Please carefully fill out the form when open a new issue.


Map database rows to OGC Features

Explore the ability to map database rows to OGC Features with JDBI.
One possibility is to use the mapToBean method, which requires the table and the bean to use the same naming convention and the corresponding types. In this case, jdbi can be used to select and insert rows in the database.
Another possibility is to use a RowMapper registered by the PostgisPlugin that tries to do its best at mapping a result set to a Feature object. For instance, the first among id, gid, or fid is set as the id, only the first geometry is taken into account, the remaining columns are put in the map of properties. This approach does not allow to insert rows in the database.

Excellent ! @bchapuis
I will add some comments.

Thank you @ebocher for this idea. Do not hesitate to copy what you need for your own experiments.

What about using jsonb for the attributes and use the postgis functions to convert the geometry to geojson?

Yes, I think it's a good idea as h2 and mysql also have a json type.


tb.format() sometimes can't find the column when it exists

Very minor issue, but I've encountered it a few times now so thought it was worth reporting.
Sometimes when using tb.format(["column_x"]), it can't find column_x so I have to use tb.set_index("column_x").sort_index() instead, which works fine.
An example of this issue can be found here
The error shown is:
KeyError                                  Traceback (most recent call last)
<ipython-input-18-b5b028e838ce> in ?()
      6 #
      7 # Process data.
      8 #
      9 # Ensure all columns are snake-case, set an appropriate index, and sort conveniently.
---> 10 tb = tb.format(["Country or Area"])

~/Documents/OWID/repos/etl/lib/catalog/owid/catalog/tables.py in ?(self, keys, verify_integrity, underscore, sort_rows, sort_columns, short_name, **kwargs)
    755             t = t.underscore(**kwargs)
    756         # Set index
    757         if keys is None:
    758             keys = ["country", "year"]
--> 759         t = t.set_index(keys, verify_integrity=verify_integrity)
    760         if sort_columns:
    761             t = t.sort_index(axis=1)
    762         # Sort rows

~/Documents/OWID/repos/etl/lib/catalog/owid/catalog/tables.py in ?(self, keys, **kwargs)
    564             super().set_index(keys, **kwargs)
    565             self.metadata.primary_key = keys
    566             return None
    567         else:
--> 568             t = super().set_index(keys, **kwargs)
...
   6110
   6111         if inplace:
   6112             frame = self

KeyError: "None of ['Country or Area'] are in the columns"

This is because the first thing that format does is underscoring the column names (and changing some symboles, e.g. ' ' I believe gets converted into underscore).
So in your example, you need to do tb.format(["country_or_area").
@Marigold I wonder if we should change this, so that underscoring is done last? I fear this could affect other steps though.

I don't have an opinion. Both have pros and cons.
(If we wanted to change it, we'd create a PR, increment ETL_EPOCH, use data-diff to find problematic datasets, revert ETL_EPOCH and merge. It's a bit tedious.)

I'd say let's leave format with the current behaviour, so this error is expected since the column names are no longer valid because of underscoring.
@spoonerf I'm adding a better error message to help users with this error

https://github.com/owid/etl/pull/2902


Sceneform without Camera session

Hi google,
Thank you so much for releasing Sceneform. I was wondering if there any possible way to use Sceneform without using the camera session. Example, if we wanted to show a 3D model on a static background image without any sort of camera feed. I was hopeing on getting this to work with the "SceneView", "Scene", and the ModelRender but of course that didn't work as expected (The render model appeared several time on the screen with corrupted line across it.) I understand that you guys are trying to focus on AR only but if this library becomes more open like SceneKit from iOS then it would become more helpful and an amazing tool to use 👍
Thank you,

Marcos

@malik-at-work Thanks for the head up. I am looking forward to the update :)

Just updating this issue.  We have put this feature into an upcoming release.

@nihalmistry can you open a different issue to track the new request? It would be helpful because we will likely close this one once the next release is made public.

@malik-at-work Yes sure!

@malik-at-work Do you know which version or/and when this feature will released?

I can not give a more specific ETA other than to say the code in our tree and will have to go through our internal release process to be released.  1.0 is the current version, so this would be fixed in our next release.

@malik-at-work Thanks for your attention, regards.

We are aiming for release date in about a week.  This is not set in stone, many things could possibly come up to change release timing.

Fixed in Sceneform V1.3

@dsternfeld7 Is there any documentation of how to do this with v1.3?


Reading custom classes

I really appreciate this project for obvious reasons ;)
I have one question: we have to deal with a lot of files which contain instances of custom (sub)classes of ROOT objects. Of course we get errors like ValueError: cannot interpret branch ... as Python type.
Is there a recommended way to somehow tell uproot e.g. the memory layout of such objects? Or is this just not supported at this point?

There should be no work on your side. uproot should be reading the structure of those types from the streamer info in every ROOT file and use that to learn how to interpret the branches.
What's missing in your case is not the class definitions but the interpretation of those class definitions. I don't have code to interpret all of the streamer types that describe classes because I have to see each one of them "in the wild" to be sure of its interpretation.
What you can do that would help me greatly is to send me preferably small, preferably public examples of the files you're having trouble with. The preferences are so that I can include them in the unit tests to ensure that the fix is permanent.
The object interpretation code has been considerably revamped in uproot 3, which is now in beta. Would you mind if I only fix this in beta?

Oh, wait— it's not necessarily that— it might be as simple as just not knowing that it already has a streamer. The branch metadata to deserialization code mapping is complex enough that often we have the deserializing code but just don't know that it should be invoked for a given branch. That, too, can be diagnosed with an example.

Ah ok, sounds like we don't have much trouble :D So what do you need?

Here is a dummy file with some non-sense data (e.g. 23 events): https://www.dropbox.com/s/cd35gsumxizomby/dummy.root?dl=0

So, to reproduce it, it's basically:
In [1]: f = uproot.open("dummy.root")

In [2]: f['KM3NET_EVENT;1']['KM3NET_EVENT']['KM3NETDAQ::JDAQPreamble'].basket(0)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-27-0737eb596126> in <module>()
----> 1 f['KM3NET_EVENT;1']['KM3NET_EVENT']['KM3NETDAQ::JDAQPreamble'].basket(0)

~/.pyenv/versions/3.6.6/lib/python3.6/site-packages/uproot/tree.py in basket(self, i, interpretation, entrystart, entrystop, flatten, cache, basketcache, keycache)
   1123             raise IndexError("index {0} out of range for branch with {1} baskets".format(i, self.numbaskets))
   1124
-> 1125         interpretation = self._normalize_interpretation(interpretation)
   1126         entrystart, entrystop = self._normalize_entrystartstop(entrystart, entrystop)
   1127         local_entrystart, local_entrystop = self._localentries(i, entrystart, entrystop)

~/.pyenv/versions/3.6.6/lib/python3.6/site-packages/uproot/tree.py in _normalize_interpretation(self, interpretation)
   1006
   1007         if interpretation is None:
-> 1008             raise ValueError("cannot interpret branch {0} as a Python type".format(repr(self.name)))
   1009
   1010         return interpretation

ValueError: cannot interpret branch b'KM3NETDAQ::JDAQPreamble' as a Python type

Jim, many thanks for your efforts so far, I am really glad that you take your time!

There's a branch called issue-124 where I'm working on this. Your file helped me find and fix a few bugs and misconceptions, but I don't know if I'll be able to fully interpret it on a short timescale.

Nice to hear that!
For us, it would be absolutely awesome if we could read our detector data also with uproot for several reasons (one of them is open data access); so yes, I am totally willing and interested in solving this.
A large part of the software which contains the J-prefixed classes is not public (yet), so it's a bit hard to point to the source code, but I'll talk to the management so that I can provide the needed information.
Nevertheless, I though it might be helpful to show some actual numbers. You were already correct with the "overlays" and "triggermask" and I see a lot of meaningful/valid vectors ;)
The first event in the KM3NET_EVENT tree holds a header with numbers like
detector ID: 29
frame index: 70
trigger mask: 22
overlays: 6
utc seconds:<PHONE_NUMBER>
nanoseconds: 0
53 hits in total (snapshot hits), 34 of them are triggered (triggered hits)
Here is a sample (the first 20) of the hits, but beware, this information is read out by another software (based on PyROOT) which adds a group id and the dom ID (this is obtained by the module id...), however it might be useful for crosschecks when you look at channel_id, tot or the triggered flags:
    channel_id     dom_id        time  tot  triggered  group_id
0           24  808432835  63744757.0   34       True         0
1           25  808432835  63744755.0   24       True         0
2           26  808432835  63744753.0   22       True         0
3           27  808432835  63744756.0   24       True         0
4           28  808432835  63744753.0   36       True         0
5           29  808432835  63744775.0   20       True         0
6           30  808432835  63744751.0   28       True         0
7            1  808432835  63744758.0   16       True         0
8            2  808432835  63744749.0   39       True         0
9            5  808432835  63744752.0   33       True         0
10           7  808432835  63744756.0   21       True         0
11          25  808432835  63744980.0   26      False         0
12          18  808488990  63744326.0   24      False         0
13           0  808488997  63744911.0   30       True         0
14           2  808488997  63744914.0   20       True         0
15           4  808488997  63744913.0   25       True         0
16           5  808488997  63744919.0   23       True         0
17           6  808488997  63744914.0   29       True         0
18           7  808488997  63744910.0   27       True         0
19           9  808488997  63744911.0   43       True         0

The second event:
detector ID: 29
frame index: 76
trigger mask: 22
overlays: 9
utc seconds:<PHONE_NUMBER>
nanoseconds: 600000000
38 hits in total (snapshot hits) and 18 of them are triggered)
A snapshot hit contains for example the PMT channel ID (unsigned char to save space, values are from 0 to 30), a time over threshold (ToT) with values between 0-255 (also unsigned char), a hit-time (unsigned int, can be large)...
Btw. I just googled a bit and found that there is actually public code available from the main author. It might be an older version but this part was not really changed in the past years, so I assume it's the same or at least reasonably similar to the version which produced the ROOT file above:
JDAQPreamble: https://www.nikhef.nl/~mjg/Jpp/html/JDAQPreamble_8hh_source.html
JDAQHeader: https://www.nikhef.nl/~mjg/Jpp/html/JDAQHeader_8hh_source.html
JDAQHit: https://www.nikhef.nl/~mjg/Jpp/html/classKM3NETDAQ_1_1JDAQHit.html
JDAQTriggeredHit: https://www.nikhef.nl/~mjg/Jpp/html/JDAQTriggeredHit_8hh_source.html
JDAQSnapshotHit (a typedef which points at JDAQKeyHit): https://www.nikhef.nl/~mjg/Jpp/html/JDAQKeyHit_8hh_source.html
Let me know what you need and again, many thanks in advance, no matter how far we get. I am already happy to see that you are able to access some of the numbers using uproot ;)

Take your time. I am fighting with this data format for a couple of years already, I can wait and glad to receive any kind of help 😅

Okay, I have a (to me) unsatisfying solution.
You can read all of your data like the following (using code checked out of the issue-124 branch; use master if you're reading this after I merge issue-124 into master):
import uproot
from uproot import interpret, asjagged, astable, asdtype

import uproot
f = uproot.open("dummy.root")
t = f["KM3NET_EVENT"]

eventheaders = t["KM3NETDAQ::JDAQEventHeader"].array(interpret(t["KM3NETDAQ::JDAQEventHeader"], cntvers=True))
preambles = t["KM3NETDAQ::JDAQPreamble"].array(interpret(t["KM3NETDAQ::JDAQPreamble"], tobject=False))
snapshotHits = t["snapshotHits"].array(asjagged(astable(asdtype([("id", "i4"), ("pmt", "u1"), ("tdc", "u4"), ("tot", "u1")])), skipbytes=10))
triggeredHits = t["triggeredHits"].array(asjagged(astable(asdtype([("id", "i4"), ("pmt", "u1"), ("tdc", "u4"), ("tot", "u1"), (" cnt", "u4"), (" vers", "u2"), ("trigger_mask", "u8")])), skipbytes=10))

The first two branches are read into tables (one record per event) and the last two are read into jagged tables (multiple records per event). These are all backed by arrays, not Python objects, so it's as memory efficient and fast as Numpy. You can find out what's in these tables by asking for their columns:
>>> eventheaders.columns
['detector_id', 'run', 'frame_index', 'UTC_seconds', 'UTC_16nanosecondcycles', 'trigger_counter', 'trigger_mask', 'overlays']
>>> preambles.columns
['length', 'type']
>>> snapshotHits.columns
['id', 'pmt', 'tdc', 'tot']
>>> triggeredHits.columns
['id', 'pmt', 'tdc', 'tot', 'trigger_mask']

and then indexing them with square brackets like dicts or arrays:
>>> eventheaders["frame_index"]
array([ 70,  76,  80,  86,  87,  89,  90,  93,  98, 100, 106, 106, 108,
       111, 111, 117, 125, 133, 136, 139, 146, 151, 152], dtype=int32)
>>> preambles["length"]
array([1198,  760,  944, 1006, 1330,  708,  466,  796,  580, 1146,  612,
        960,  866,  796,  618,  466,  900,  804, 1614,  678,  446,  808,
        728], dtype=int32)
>>> snapshotHits["pmt"]
<JaggedArray [[24 25 26 27 28 29 30  1  2  5  7 25 18  0  2  4  5  6  7  9  9 17 13 19
 10 15  5  8 10 13 15 19  4  9 11  2 14 30  1 21 23 29 30  0  0  2  3  4
  5  6  8 10 13] [14 16 27 10  0 27  1  7  9 16  4  5  6 10  0 21 19 30 20 21  7 11 20  4
 24 26  0  1  5 15  9 11  5  9 28 22  3 18] [11 10 20 29  4  4 27  5  7 24  0  1  4  5  6  9  7 21 12 13 15 16 17 18
 19 21 30  7  8  9 10 11 12 12 13 14  7 14 17 21 22 24] ... [29  7  8 30  0  3  5  8  4 11 30 30 28  0  2  3  5 30  0 13 15], [22 30  4 20 24  4  5  8  8 10 17 26 27 24  0 29 20 26 27  2  3  5 16 18
 20 30  0  1  2  5 27  0  0  6 10  5 24  3  5 12  8], [ 4  5  7  7  9  9 10 11 27 30 20  5 11 22  8 30 24  5  8 22  6  0  9  3
 18  5  7  9 10 12 15 15 13]] at 7f9ef8040e48>
>>> triggeredHits["trigger_mask"]
<JaggedArray [[22 22 22 22 22 22 22 22 22  4 22 22 22 22 22 22 22 22 22 22 22 22 22 22
 22 22 22 22 22 22 22 22 22 22] [ 4 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22] [ 4 22 22 22 22 22 22 22 22 22 22 22 22 22 22  4 22 22 22 22 22 22 22 22
 22 22] ... [4 4 4 4 4 4 4 4 4 4], [22 22 22  4 22 22 22 22 22 22 22 22 22  4 22  4 22 22 22], [ 4 22 22  4 22  4 22  4 22 22  4  4 22 22 22 22 22 22 22]] at 7f9ef80409e8>
>>> triggeredHits["trigger_mask"][2]
array([ 4, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,  4, 22,
       22, 22, 22, 22, 22, 22, 22, 22, 22], dtype=uint64)

I recommend reading the uproot-jaggedarray tutorial for examples on how to use these objects without resorting to (slow) Python for loops. (There's nothing wrong with the for loops except speed— it might be fine for the size of your dataset.)
Why am I disappointed? Look at what you have to enter to get your data! All four branches have the wrong default interpretation, requiring you to provide a custom one.

KM3NETDAQ::JDAQEventHeader has object byte counts and versions in the places where you'd expect them in non-TTree data (such as histograms), but I've never seen them in TTree data before. Therefore, I added a switch to turn them on. I can't have this switch be the default because there are other objects in TTree data which do not have byte counts and versions. It must be on in your case and it must be off in other cases, and I don't yet know why.
KM3NETDAQ::JDAQPreamble descends from TObject, but it lacks TObject headers. Again, I added a switch: it must be off in your case and it must be on in other cases. I don't know why.
I can tell that triggeredHits has type vector<JDAQTriggeredHit> and snapshotHits has type vector<JDAQSnapshotHit>, and following the documentation you provided, I can deduce the streamer manually. However, these streamers are not in the ROOT file. That's very strange: ROOT files are supposed to be self-describing— all of the streamers for objects in the file must be in the streamer info, and yet they're not there. Interpretation types like asjagged(astable(asdtype([("id", "i4"), ("pmt", "u1"), ("tdc", "u4"), ("tot", "u1")])), skipbytes=10) are an illustration of how to build it (skipbytes=10 because it's an STL vector), but I really shouldn't be making you do that.

Thus, I'm a little wary of this and will have to brood over it for a while before putting the change into master. You should have no problem reading and using these data, I just wish I knew why the interpretation is what it is— I wish I could find where in the headers it says to interpret it this way.
But you should be able to get to work with this.

Jim, I am really amazed for your great work. I wish I could help you somehow, but I have little knowledge (compared to yours I feel I don't know anything) about the ROOT internals.
I'll show this thread to the main author of the corresponding software package – at least he is a ROOT guru too – and hopefully he can give provide some useful thoughts. I will definitely share them...
Now I'll go through the jagged array tutorial and after that I'll write a wrapper library to make our data accessible without ROOT and any other huge, uncomfortable dependencies, halleluja!
Again, many thanks so far :)

You're welcome.  :)  And let me know if you run into any issues with the new jagged arrays. They seem solid to me, but they still need to be tested "in the wild."

I will :)

Done! The tutorial has been updated and it looks to me like it works.

Great, just downloaded it and now I'm walking throught, thanks!


CORGI-830 license validation

This allows SPDX Validation to pass. Validation is now introduced as part of the *ManifestFile.render_content() function which used a Django Template, but now uses the spdx_tools library. Using the spdx_tools library makes validation easier, and also allows to build up the extracted_licensing_info list while building the packages.
I filed a couple of follow up issues, CORGI-999, and CORGI-1000 to improve the license parsing to use less licenseRefs in a future iteration. The SPDX Specification says that we should include the entire extracted license text when using licenseRefs, which I was not able to do here because I don't have that information. So instead I linked to the Fedora Allowed License list in that field of the SPDX Document.

@RedHatProductSecurity/corgi-devs please review


Can't use display:none

I want to conditionally display a div based on its width.
I'd like to do something like this:
.mydiv[min-width~="300px"] {
    display: none;
}

But it doesn't work.
I thought at first this was a duplicate of #46. But, it looks like #46 has been fixed. And perhaps my situation is a bit different.
Demonstration in this fiddle.

It doens't seem to redo the layout to make room for the 2nd div, as a workaround if you change the example2 css to bi "visibility: collapse;" it works as you expect.

That's not logically resolvable. If you hide an element (like in you did) the element loses its dimensions and will never receive an resize event anymore. Without dimensions it's impossible to detect whether the element got bigger or smaller to check if a rule matches. So, what you should do is to put the rule on a parent that is always visible. https://jsfiddle.net/21ekLn5y/2/

Thanks. Your workaround and explanation makes sense. I think my scenario might be a common case -- perhaps it should be documented?


SQL Lab results row height/width is too short for last row

see attached, if i change height pixels from 32 to 40 in developer tools then it is readable

I'm working on this. Should have a fix soon.

I'm working on this. Should have a fix soon.

fixed by ☝


Cursor set to EOF when focusing with active line mismatch (inputStyle=contenteditable)

I'm noticing an issue whereby when you click on the editor to focus and set the cursor on a given line, it will focus but then put the cursor at the end of the editor without scrolling to that position. Sometimes it will even add the active-line style to where you clicked, but the cursor is at the bottom. Every time you blur the editor an then focus back into the editor, the cursor will get moved to the end of the file. The issue is happening only when inputStyle is set to contenteditable. When inputStyle is textarea the behavior is as expected.
Demos:
FAIL (inputStyle=contenteditable): https://youtu.be/uSFJqf_zwFw
PASS (inputStyle=textarea): https://youtu.be/CqMLObojkVU
WordPress core ticket: https://core.trac.wordpress.org/ticket/41900

I can somewhat reproduce that. If, when I click into the editor, the document didn't have focus, the cursor is positioned where it was when the document lost focus. That's different with textarea.

Quick investigation shows that in my case the selection is internally correctly updated, but the display is not updated afterwards.

ContentEditableInput::showPrimarySelection needs to be called. It is called from ContentEditableInput::showSelection if CodeMirror thinks it was focused before (cm.state.focused) or if op.focus is set (mainly happens in the mousedown event handler) to the currently active element and document.hasFocus() returns true. When clicking, this logic is executed twice, first on mousedown and second on mouseup. cm.state.focused is false at both times. On mousedown, op.focus is set, but, if the window had focus before, document.hasFocus() returns false. If the window didn't have focus before, document.hasFocus() returns true and showPrimarySelection is called. On mouseup, document.hasFocus() is true in both cases, but op.focus is not set.
I don't know if this is a browser bug, it definitely feels strange to me. @marijnh ehy do we need the hasFocus() check in operations in the first place? I think op.focus is only set in cases where we are pretty sure that we really really want to have the focus.

@adrianheine I think the idea behind that test is to not muck with focus when the document isn't active. I added it specifically at some point (aebf68bf574bfc), but I can no longer figure out why (I don't appear to have closed any issues on that day). I agree that there's probably not much that can go wrong with focusing the editor when it receives key/mouse events, so feel free to remove it.

Ok, I'll do that. Btw, Webkit sets hasFocus already to true on mousedown. Probably a Firefox bug.

@westonruter Can you try current master?

@adrianheine I'm not seeing any improvement. The same issue still happens in Chrome and Firefox.
I've spun up a test WordPress site with the latest master for CodeMirror (8f35a1a). I've created WP admin user accounts for both you and @marijnh to be able to see the issue firsthand. You should have received credentials via Git commit author details; your WordPress usernames same as on GitHub.
Direct URL to the WordPress core CSS editor which shows the issue: http://trac-41900-xwp-testbed.pantheonsite.io/wp-admin/customize.php?autofocus[section]=custom_css
In both Chrome and Firefox, the initial click into the editor causes the cursor to be set as active outside the viewport. A second click after the editor is already focuses causes the cursor to appear in the expected spot. In Firefox the initial editor focus click is causing the cursor to go to line 51, whereas in Chrome the initial click is causing the cursor to go to line 49.
Unminified JavaScript bundle for CodeMirror: http://trac-41900-xwp-testbed.pantheonsite.io/wp-includes/js/codemirror/codemirror.js?ver=5.29.1-alpha-8f35a1a

Ok, so apparently I fixed a different issue, thanks for pointing me in that direction, though. I can reproduce your issue in your instance in my Firefox.

@adrianheine yes, I suspect it might have something to do with how CodeMirror is embedded in an element that has absolute positioning that was animated into place. But even if I have it defer initialization until after the container element has been fully animated into place, the problem persists.

@adrianheine We found the problematic code (props @afercia):
editor.on( 'focus', function( codemirror ) {
  editor.refresh();
});

Now, first of all we probably are going to remove this from WordPress, so we may not need to fix this issue for the sake of core, but nevertheless there would seem to be a bug in CodeMirror with calling the refresh() method when focusing on an editor that has a inputStyle=contenteditable.
Here is a minimal example: https://jsfiddle.net/westonruter/enf71znt/


mypy 1.5.0 errors: "Unsupported operand types"

New error from new mypy version (1.5.0) for beta branch); the code works more or less fine as before:
mypy.....................................................................Failed
- hook id: mypy
- exit code: 1

holidays\holiday_base.py:402: error: Unsupported operand types for == ("Mapping" and "HolidayBase")  [operator]
Found 1 error in 1 file (checked 314 source files)

Hey @PPsyrius thanks for reporting this!
I filed https://github.com/vacanza/python-holidays/pull/1429 to fix it.

merged into beta


Update YARA to version 4.0.0

YARA 4.0.0 was released on 2020-04-29. At the time of writing, RetDec uses YARA 3.11.0:
https://github.com/avast/retdec/blob/a728ec2d33643758301e5201f5b4319057d22eba/cmake/deps.cmake#L48
We should consider updating to 4.0.0. It will probably require some changes in RetDec as there were API changes.

Because of #283, I would like to update to a specific (latest) commit in master, not the version tag. This would make adoption of improvements faster and more flexible. I hope YARA master is stable enough and if not, we would detect problems in our regression tests.
What do you think about this @metthal and @s3rvac?

Will we want to update the used YARA version in RetDec more often than new releases of YARA are published? Wouldn't it be safer to just wait for official releases? They are quite frequent.

Not regularly, but in case of some bug fixes or added functionality we might. If we push for a fix or feature because we need it in RetDec, and it gets to YARA, it is more convenient to start using it right away and close the issue in question - as opposed to forget about it until the YARA release is out we need to come back to it.

VirusTotal often uses non-released master branch in production so I would consider master to be stableish. There was some bugfixes since 4.0.0 and there's already 4.0.1. I usually wait a little bit until the changes settle in and serious bugs are resolved and then update to newer version.


⚠ Processors has degraded performance

In b8f2857, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 54 ms

Resolved: Processors performance has improved in 8cf1aab.


Adding Material-UI 5 injectFirst example

StylesProvider is renamed to StyledEngineProvider in Material-UI 5
https://next.material-ui.com/guides/migration-v4/#style-library

This shouldn’t be required for v5 as Material-UI already uses emotion. Is there some use-case that is not working without configuring this?

Yes, without this the Material-UI styles get added after the tss-react styles, so if you add a class to a Material-UI component it is overridden by the default Material-UI styles.
For example, in the following code the Material-UI styles override the display: "none" style
import Input from "@material-ui/core/Input";
import React from "react";
import { makeStyles } from "../../../muiTheme";

const useStyles = makeStyles()((theme) => ({
  input: {
    display: "none",
  },
}));

export default function Test(): JSX.Element | null {
  return (
    <Input className={classes.input} />
  );
}
}));

Thank you I have to look this up in details

import { makeStyles } from "../../../muiTheme";

Idk if you know but you can put "baseUrl": "src" in your tsconfig.json so you can import with an absolute path like:
import { makeStyles } from "muiTheme";
or
import { makeStyles } from "app/muiTheme"; ( depending of where your file is located in the src directory)

I was not aware of that, thanks for the tip

Hi @howlettt,
In v0.6.0 the integration with mui have been carefully tested.
Using <StledEngineProvider injectFirst/> works well with client side only application but I no longer recommend this approach since it won't work if server side rendering is involved.
Using <CacherProvider /> instead will work with both SPA and SSR ( e.g create-react-app and next.js)
New README:

Thanks for rising up the issue and taking the time to issue a PR.
Best

Great, thanks for letting me know


release: 0.13.0rc1

Formal PR for Kong 0.13.0rc1 - request for reviews!

Full list of commits since 0.12.1: https://github.com/Kong/kong/compare/0.12.1...release/0.13.0
Docs PR: https://github.com/Kong/getkong.org/pull/583

This officially closes the merging window for 0.13.0rc1 as of today, 2018/02/23.

Closing this PR whose purpose was only to get reviews on - 0.13.0rc1 has been now tagged.


Phalcon routes fix

FEATURE_NAME
DESCRIPTION
Phalcon Routes do not work by default.

@TheGlenn88 almost fixed. The title underline is still missing. See open comment above and the Travis check here: https://travis-ci.org/cytopia/devilbox/jobs/452282173#L701

I have now made the underline the same length as the title. Apologies, took me a moment to work out what was required.


Support squash merges

Currently, we rely on the PR author to squash their commits. This results in an extra review cycle.
But often, they'll just end up squashing their commits into a single commit. In those cases, that extra cycle could be avoided by performing a squash automatically.
This feature would enable @bors r+ squash to automatically squash all commits in the PR into a single commit with a message composed of the PR title and body. The squash would be performed before roll-up if applicable, or otherwise before merge.

It should force-push the PR branch with the squashed commit, in order to correctly mark the PR as merged.
I think it should error if not possible, mainly when the Allow Edits By Maintainers box is unchecked, if possible at all.

I don't think that is very important, given most PRs aren't marked as merged as it is today. The solution to that is for GitHub to add a way to "Close as Merged".

I don't understand, all PRs are marked as merged today? I don't think we have problems there...

Oh hmm for some reason I thought anything part of a rollup wasn't closed as merged. Not sure why I thought that.
Regardless, GitHub has the ability to squash-merge a PR with the API, so shouldn't it be possible to use that?

I haven't found a GitHub API that would allow me to squash without doing the actual merge, we need that for running tests before we merge the PR.
FWIW it's still unclear how (and if) will this bot do merges (will PRs run on rust-lang or rust-lang-ci? will we use GH merge queues? etc.).

I haven't found a GitHub API that would allow me to squash without doing the actual merge

It's a tad convoluted, but I think bors could open a new PR on rust-lang-ci and immediately merge it there.

It's a tad convoluted, but I think bors could open a new PR on rust-lang-ci and immediately squash merge it there.

If this was the only way, I would probably go the "offline git" route instead. The bot should be generic (=usable for any repository) and it would be quite annoying if it required another repository to perform one of its features.

The bot should be generic (=usable for any repository) and it would be quite annoying if it required another repository to perform one of its features.

Yeah unfortunately it's not possible to open multiple PRs for the same branch.
@Mark-Simulacrum can you add "ability to apply merge_method from Merge a pull request to Merge a branch

Actually there is an even more convoluted way to achieve this:

create a copy of the branch
create a new PR from the copy
squash merge that PR

I think that creating a new (dummy) PR just for squashing is a no-go.

I think maybe what could be better is a command like r+ needs-rebase which would auto-approve any future pushes as long as the content doesn’t change, the commit count is fewer, and there are no new merge commits. Bors could link to some docs indicating how to squash / reword well.
This way you sidestep figuring out how bors could do it, don’t need rereview, and hopefully wind up with a better commit message than the result of a squash.


Create GitHub Action Script to Filter 'Community' Labeled Tasks from Repository and Send Results to Discord

Develop a GitHub Action script that queries a Lilypad GitHub repository to filter issues with the label 'community'. The script should then format and send these filtered tasks to a designated Discord channel. This will help streamline communication and keep the community updated on relevant issues and contributions.

This is how the message that will come automatically on Discord every Monday and Friday will look like:

See https://github.com/Lilypad-Tech/community-bots/pull/1 for implementation.


Add option to support vertical writing modes in modern browsers

logical properties like inlineSize and blockSize to width and height in the final bundled CSS file

Discussed in https://github.com/facebook/stylex/discussions/510

Originally posted by mobalti March 29, 2024
I noticed that Stylex converts certain logical properties like inlineSize and blockSize to width and height in the final bundled CSS file. I'm curious about the rationale behind this behavior. Is there a way to prevent this while retaining the logical properties?
Although I'm aware of Stylex's capability to efficiently manage variables through tokens.stylex, in this particular case, I've opted to use Open Props V2. My main objective here is to become acquainted with Stylex's API. Would there be any performance implications if I import variables from a global.css file, as I've done in this example, instead of using stylex.token.ts?"
Overall, I find the library to be solid, just as I expected. Thanks to the entire team for their work!
https://stackblitz.com/~/github.com/mobalti/open-props-v2-stylex-example

Where is the ask to support vertical writing modes?


Sectioned view

I want to create sectioned views with sections other than job lists. This branch adds the other sections of the view to the DSL.
I'm not a java/groovy dev, so I don't know if there's a better way of implementing the methods in SectionsContext.groovy. There's a lot of copy-paste in there.
Also, ./gradlew build fails at least 95% of the time with an error

:job-dsl-core:generateApiDocException in thread "main" java.lang.NoClassDefFoundError: org/fusesource/jansi/AnsiRenderWriter
but that's not related to the changes here.

This PR looks very good for a non-Java/Groovy dev. I pushed a few commits to reduce the copy&paste code and increased the test coverage.
./gradlew build never failed for me with that error. Can you post the output of ./gradlew --version so that I can see which OS and version of Java you are using?

Thanks.
I'm on Fedora 25 with default  packages from dnf install
`[mstudd@mstudd job-dsl-plugin]$ ./gradlew --version
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0

Gradle 3.2.1
Build time:   2016-11-22 15:19:54 UTC
Revision:     83b485b914fd4f335ad0e66af9d14aad458d2cc5
Groovy:       2.4.7
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_131 (Oracle Corporation 25.131-b12)
OS:           Linux 4.10.15-200.fc25.x86_64 amd64
`


Doesnt work with USI Lugano mensa

First of all thank you for making something like this so that even coding laymen like me can use it. I'm trying to set it up for the mensa at the Università della Svizzera italiana in Lugano. There's an SV mensa there: https://polo-universitario-lugano.sv-restaurant.ch/en/menu/campus-ovest/
I'm running your files, I added the subdomain (polo-universitario-lugano) but for some reason it doesn't seem to work. If I type /info it says the restaurant page seems to be offline.

Thank you for trying out this bot.
I saw that I have missed the implementation for English based menuplan websites. I have now updated the Bot and the underlying API so it should now work as expected. As of Release 2.2 you can now set the Language of the Menuplan Website, in your case it would be English.
You should download the new Version (Release 2.2) and maybe generate a new data.json file or just Insert the line:  "restaurantLang": "ENGLISH",. The bot should now work as intended but keep in mind that there are no menus on weekends.
Good Luck!


azure-python-devtools port

This pull request introduces a dependency on azure-python-devtools, which contains non-CLI-specific code extracted from azure-cli-testsdk so that it could be shared by both the CLI and Azure SDK for Python test code.
The azure-cli-testsdk directory now serves as a compatibility layer between the CLI tests and azure-python-devtools; it contains the CLI-specific modules and configuration which used to be static but is now exposed (e.g. the multiple kwargs to ScenarioTest).
Tests themselves should require minimal or no modification to work in the new setup; the storage tests all ran successfully without modification.

@v-iam,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@v-iam @lmazuel I need to review the code in https://github.com/Azure/azure-python-devtools/commits/master first before we can adopt this change. Is the package there already stabilized or it is still being developed.

azure-python-devtools has a 0.1.0 release which you can review. The only development that will happen is to respond to your review and any changes that need to be made to make Travis happy.

Ok. Cool. So please take a look at my comments in this PR first. I'll take a deeper dive into devtools repository.

@v-iam note that it's probably the underscore that kills Travis and pip

Please fix the CI failures.

I'm working on it., but I'm unable to repro them. I'm going to see if I can do so using the Docker container.

Codecov Report

Merging #3621 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #3621      +/-   ##
==========================================
+ Coverage   71.62%   71.69%   +0.06%
==========================================
  Files         420      419       -1
  Lines       26209    25934     -275
  Branches     3968     3917      -51
==========================================
- Hits        18773    18594     -179
+ Misses       6258     6172      -86
+ Partials     1178     1168      -10

Impacted Files
Coverage Δ

...c/azure-cli-testsdk/azure/cli/testsdk/preparers.py
68.04% <100%> (+3.44%)
:arrow_up:

...rc/azure-cli-testsdk/azure/cli/testsdk/__init__.py
100% <100%> (ø)
:arrow_up:

.../azure-cli-testsdk/azure/cli/testsdk/decorators.py
100% <100%> (ø)
:arrow_up:

src/azure-cli-testsdk/azure/cli/testsdk/base.py
67.81% <100%> (-4.06%)
:arrow_down:

src/azure-cli-testsdk/azure/cli/testsdk/patches.py
90.9% <100%> (+2.27%)
:arrow_up:

...c/azure-cli-testsdk/azure/cli/testsdk/utilities.py
53.65% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

@troydai @lmazuel CI failures fixed. Let me know what if anything else still needs to be done here.

This question still needs an answer. As it stands right now, create_random_name and get_sha1_hash are duplicated between azure-cli and azure-devtools.

@troydai @johanste about the question @v-iam mentions, the idea is to have this kind of "empty" file
from somewhere_i_extracted_the_code import my_method

to be sure we can still import my_method exactly like before.
To decide if we push people to use the new import (meaning: ask them to migrate) or if we keep this "empty" file is up to you.

@v-iam @lmazuel we need to clear the CLA-required labl.

@troydai The bot already said "You don't need to sign CLA", but put a "CLA required" label. Seems like a bot issue no?

I had thought maybe I accidentally included some commits from my personal GitHub account when I worked from home, but there are no commits under that account included in this PR. So I don't know what's needed for the CLA.

I'll take another look today.

@v-iam looks good to me now. Please rebase it on the master. As soon as the CI passes, I'll merge it.

OK, I think maybe I did the wrong thing here.

@v-iam there are two files without license headers which failed the CI.

Yup, just saw that, possibly lost in merges. Fixing.

CI looks good to go @troydai

I notice the code coverage went down fairly dramatically. Did we miss any tests?

Sorry about that. I think it is probably because of the issue fixed in this PR: https://github.com/Azure/azure-python-devtools/pull/8
So we should release a new devtools with that fix in and then update to use that.

Ok. That make sense. Can you rerun the tests and update the coverage report? I'd like to make sure tests are not skipped. (You can merge the commit and force push to trigger a new coverage report).

Will do. Thanks for merging that other PR.

OK, if I understand correctly, I think the coverage is better now: https://codecov.io/gh/Azure/azure-cli/pull/3621/changes

Ok. That looks good.


Update readme for passcode sign in

https://issues.corp.twilio.com/browse/AHOYAPPS-342
Until the new Twilio CLI plugin is public if we want to test we must replace these instructions:

Run twilio plugins:install @twilio/labs/plugin-rtc.
Run twilio rtc:video:deploy-app --authentication passcode.

With these instructions:

Clone https://github.com/twilio-labs/plugin-rtc.
Checkout development branch.
Run npm install.
Run twilio plugins:link <PATH_TO_PLUGIN_REPO>.

With the installation description above, you said instead of the two instructions from the README.md listed, to replace with the four below. However, it's really only the first one that needs to be replaced. You still need to run:
twilio rtc:video:deploy-app --authentication passcode.

Regarding #2 I think CLI auth instructions should be handled by CLI install doc that readme links to. Specifically this section: https://www.twilio.com/docs/twilio-cli/quickstart#login-to-your-twilio-account
I had never used CLI before and I didn't have issues.


Can't import Bestiary 5 - Tattoo Guardian (statblock from Hero Lab and d20pfsrd.com NOT IMPORTING BUT statblock from aonprd.com DOES)

Can't import statblock:
Tattoo Guardian      CR 3
XP 800
Tattoo guardian (Pathfinder Campaign Setting: Occult Bestiary 54)
N Medium construct
Init +9; Senses darkvision 60 ft., low-light vision; Perception +1
Defense
AC 15, touch 13, flat-footed 12 (+3 Dex, +2 natural)
hp 42 (4d10+20)
Fort +1, Ref +6, Will +2
Defensive Abilities fluid form, hypervigilant, worn form; Immune construct traits
Offense
Speed 30 ft., fly 10 ft. (average)
Melee 2 ink blades +6 (1d6+2)
Statistics
Str 14, Dex 17, Con —, Int —, Wis 12, Cha 13
Base Atk +4; CMB +6; CMD 19
Feats Improved Initiative[B]
SQ bodyguard
Ecology
Environment any
Organization solitary
Treasure none
Special Abilities
Bodyguard (Su) Half dmg transferred from wear to you. Wearer gains +2 bon atk/dmg vs attacker.
Construct Traits (+20 HP) Constructs have many immunities.
Darkvision (60 feet) You can see in the dark (black and white only).
Fluid Form (Su) You do not provoke AoO from movement. Cannot be knocked prone or grappled.
Fly (10 feet, Average) You can fly!
Hypervigilant (Su) You always act in the surprise round.
Immunity to Ability Damage Immunity to ability damage
Immunity to Ability Drain Immunity to ability drain
Immunity to Bleed You are immune to bleed.

Immunity to Disease You are immune to diseases.
Immunity to Energy Drain Immune to energy drain
Immunity to Exhausted You are immune to the exhausted condition.
Immunity to Fatigue You are immune to the fatigued condition.
Immunity to Mind-Affecting effects You are immune to Mind-Affecting effects.

Immunity to Poison You are immune to poison.

Immunity to Stunning You are immune to being stunned.
Low-Light Vision See twice as far as a human in dim light, distinguishing color and detail.
Worn Form While being worn, a tattoo guardian occupies the same space as its wearer and moves with its wearer. In this state, the wearer and the tattoo guardian use the higher of the wearer's and the tattoo guardian's AC and saving throws, but the tattoo guard

The previous comment was for a statblock from Hero Lab, but the below statblock is from d20pfsrd and it doesn't import either:
Tattoo GuardianCR 3 (XP 800)
N Medium construct
Init +9; Senses darkvision 60 ft., low-light vision; Perception +1
DEFENSE
AC 15, touch 13, flat-footed 12 (+3 Dex, +2 natural)
hp 42 (4d10+20)
Fort +1, Ref +6, Will +2
Defensive Abilities worn form, fluid form, hypervigilant; Immune construct traits
OFFENSE
Speed 30 ft., fly 10 ft.
Melee 2 ink blades +6 (1d6+2)
STATISTICS
Str 14, Dex 17, Con —, Int —, Wis 12, Cha 13
Base Atk +4; CMB +6; CMD 19
Feats Improved InitiativeB
SQ bodyguard
SPECIAL ABILITIES
Bodyguard (Su)
Whenever the tattoo guardian’s wearer takes damage, half of the damage is transferred to the guardian (as shield other).
Additionally, the tattoo guardian gains a +2 bonus on attack and damage rolls against any creatures that damaged its wearer in the previous round.
Fluid Form (Su)
A tattoo guardian does not provoke attacks of opportunity because of movement.
It is immune to critical hits and sneak attacks, and it cannot be knocked prone or grappled.
Hypervigilant (Su)
A tattoo guardian gains a +2 bonus on initiative checks and Reflex saves, and it always acts on the surprise round.
Worn Form (Su)
While being worn, a tattoo guardian occupies the same space as its wearer and moves with its wearer.
In this state, the wearer and the tattoo guardian use the higher of the wearer’s and the tattoo guardian’s AC and saving throws, but the tattoo guardian loses access to its fluid form ability.
ECOLOGY
Environment any
Organization solitary
Treasure none
Many cultures employ tattoos as symbols of protection, but to those fortunate enough to be wearers of tattoo guardian, the protection is far more than symbolic. Fiercely loyal and protective of its ward, a tattoo guardian leaves its wearer’s skin to fight any who would harm her. Tattoo guardians are common where wealthy courtiers pay kings’ ransoms for protection against assassins hired by their rivals, and where the arts of tattooing and magic have long intertwined. Certain arcane universities are known to provide senior students of summoning and other dangerous fields of magic with vigilant tattoos to protect them from accidental harm.
Temples of virtuous deities might also ink guardians upon the skins of high-level clergy such as healers or prophets who are not skilled in battle magic. Such tattoo guardians often use the iconography of the religion for their forms: a revered healer might be adorned with a fiery phoenix that flares into life if she is threatened, while a cleric especially skilled in brewing libations might bear a different image across his shoulders.
The ink used in the construction of a tattoo guardian is amorphous, able to change shape and harden to become as sharp and solid as steel. Should its wearer be threatened, the guardian withdraws its ink from the wearer’s flesh and hardens it into a thin blade, then rises from the wearer’s skin to interpose itself between her and her attackers.
Even though a tattoo guardian can completely separate itself from its wearer, it rarely strays far from her, even in the midst of battle.
The guardian and its wearer share a magical bond; should it fail in its duty, a tattoo guardian typically self-destructs, the once-sentient ink melding with its former master’s blood. In rare cases, the guardian might gain some fragment of its dying master’s sentience and go out into the world instead. Sadly, most of these creatures are driven completely insane by the process, and are unable to pursue goals more complicated than revenge against their masters’ killers.

Here's a headache.  This statblock is from https://www.aonprd.com/ and it DOES import:
Tattoo Guardian CR 3
Source Occult Bestiary pg. 54
XP 800
N Medium construct
Init +9; Senses darkvision 60 ft., low-light vision; Perception +1
Defense
AC 15, touch 13, flat-footed 12 (+3 Dex, +2 natural)
hp 42 (4d10+20)
Fort +1, Ref +6, Will +2
Defensive Abilities worn form, fluid form, hypervigilant; Immune construct traits
Offense
Speed 30 ft., fly 10 ft.
Melee 2 ink blades +6 (1d6+2)
Statistics
Str 14, Dex 17, Con —, Int —, Wis 12, Cha 13
Base Atk +4; CMB +6; CMD 19
Feats Improved InitiativeB
SQ bodyguard
Ecology
Environment any
Organization solitary
Treasure none
Special Abilities
Bodyguard (Su) Whenever the tattoo guardian’s wearer takes damage, half of the damage is transferred to the guardian (as shield other). Additionally, the tattoo guardian gains a +2 bonus on attack and damage rolls against any creatures that damaged its wearer in the previous round.
Fluid Form (Su) A tattoo guardian does not provoke attacks of opportunity because of movement. It is immune to critical hits and sneak attacks, and it cannot be knocked prone or grappled.
Hypervigilant (Su) A tattoo guardian gains a +2 bonus on initiative checks and Reflex saves, and it always acts on the surprise round.
Worn Form (Su) While being worn, a tattoo guardian occupies the same space as its wearer and moves with its wearer. In this state, the wearer and the tattoo guardian use the higher of the wearer’s and the tattoo guardian’s AC and saving throws, but the tattoo guardian loses access to its fluid form ability.
Description
Many cultures across Golarion employ tattoos as symbols of protection, but to those fortunate enough to be wearers of tattoo guardian, the protection is far more than symbolic. Fiercely loyal and protective of its ward, a tattoo guardian leaves its wearer’s skin to fight any who would harm her. Tattoo guardians are common in the courts of Tian Xia, where wealthy courtiers pay kings’ ransoms for protection against assassins hired by their rivals, and in Varisia, where the arts of tattooing and magic have long intertwined. Certain Garundi arcane universities are known to provide senior students of summoning and other dangerous fields of magic with vigilant tattoos to protect them from accidental harm. Temples of virtuous deities might also ink guardians upon the skins of high-level clergy such as healers or prophets who are not skilled in battle magic. Such tattoo guardians often use the iconography of the religion for their forms: a revered Sarenite healer might be adorned with a fiery phoenix that flares into life if she is threatened, while a Caydenite cleric especially skilled in brewing libations might bear a cayhound across his shoulders.
The ink used in the construction of a tattoo guardian is amorphous, able to change shape and harden to become as sharp and solid as steel. Should its wearer be threatened, the guardian withdraws its ink from the wearer’s flesh and hardens it into a thin blade, then rises from the wearer’s skin to interpose itself between her and her attackers. Even though a tattoo guardian can completely separate itself from its wearer, it rarely strays far from her, even in the midst of battle.
The guardian and its wearer share a magical bond; should it fail in its duty, a tattoo guardian typically selfdestructs, the once-sentient ink melding with its former master’s blood. In rare cases, the guardian might gain some fragment of its dying master’s sentience and go out into the world instead. Sadly, most of these creatures are driven completely insane by the process, and are unable to pursue goals more complicated than revenge against their masters’ killers.

I want you to know exactly what Hero Lab statblocks start out looking like.  When these statblocks are copy-and-pasted into the "Import StatBlock" dialog or even here for comments for bugs -- they are altered immediately when pasted.
I've attached what I actually start with to this comment:
j.txt

I've got your latest module.
I'm going to pause for a while.  Do you want to support statblocks from Hero Lab, d20pfsrd.com, and aonprd.com -- or just aonprd.com?

As a side comment, I think some NPCs from the APs (such as Iron Gods) I have access to from Hero Lab -- but not the other sources.

I'm going to delay testing until I know what the strategy is because it affects my approach.

Hey, thanks for your input. The current approach is source independent, as i have no way to determine where the input comes from and even statblocks from the same source are not uniform in their formatting. As it is, i take the input, separate it into manageable chunks of data (e.g. general data, defense data, offense data and so on), which i map onto a system agnostic template. The mapped data is then converted for use in foundry by mapping the raw data from the neutral template onto a blank pf1 actor with foundry specific formatting.
The Mapping from the neutral to the specific template is fairly straight forward, as i know how i formatted the neutral one and can check how the foundry one is formatted anytime.
The splitting and parsing of heterogen, non-uniform and non-standardized input is, as you mentionend, not really trivial. The converter will never be able to parse every statblock there is, but it can lay the groundwork by parsing as much as possible, so that the manual labor to finalize an actor in foundry is minimized.
If you want to check how and where the converter fails, you can check the console (F12). Most of the time some logs will be there to point you in the right direction. I'm currently working on a preview window, so that the conversion result will be (mostly) visible before committing to the conversion - allowing for manual corrections. But that will take some time.
Until then, i really appreciate your work and input, as it leads me to all the small errors that would otherwise be missed.

Ok. Thank you.  Yes, I think each different resource has significant advantages -- so I'm very glad you're taking a neutral approach to, in other words, support all of them.
For Bestiaries 1 through 4, the number of failures from the Hero Lab statblock perspective were small but Bestiary 5 will force me to alter my strategy.  I'll resume testing shortly.

If i remember correctly, the later Bestiaries have more Content thats facilitating High Level and Mythic Stuff and in general more "exotic" creatures. I think most problematic will be creatures with mythic ranks and/or multiple spellcasting abilities, so maybe keep an eye out for that.

BTW, I can't use F12 to identify classes of bugs.  Reason is that I can't be sure that fixing a bug doesn't expose others unique to that particular NPC -- so they all need to be retested.

However, I looks like right now it's a good idea for me to wait for the currently posted Bestiary 5 issues to be addressed before I resume testing with the H's.

I'll also see if I can go back and retest some NPCs from the other Bestiaries that passed for Hero Lab -- but might yet fail for d20pfsrd.com and/or aonprd.com.  I'll pick ones that seem unique.

I'll also be doing some third party content that is Pathfinder Compatible like Tome of Horrors and Temple of Jing.

Oh, good, you can import from a text statblock copy-and-paste from the PDFs for the Bestiaries and other books.  Not sure why I initially thought that wouldn't work, but it does!  That's great!

Yeah, thats the reason i started with the converter in the first place, as i'm currently running Rappan Athuk and need the Monsters from that as well as the tome of horrors :)
BTW: I'm on Vacation for the next weeks, so there will be little to no updates on the converter.


Changing RStudio/Databricks connection guidance

I want to suggest a change in how we advise people to set up an ODBC connection to Databricks. The current guidance on local RStudio to Databricks setup has two big drawbacks:

Since it doesn't enforce a naming convention it's likely people in the same team/unit/division will call their connections differently, and code won't run between computers easily. The example code leaves this choice up to the analyst:

con <- DBI::dbConnect(
  odbc::odbc(),
  "INSERT_ODBC_DRIVER_NAME", # name of the ODBC driver - you chose this when you installed
  catalog = "INSERT_CATALOG"
)

Related to the above, setting up a connection in a remote environment (e.g. DevOps pipelines) will be tricky, because we won't be able to add an ODBC connection in the same way we can locally on Windows. We need a way of setting up ODBC that is also possible to do via something like a YAML pipeline.

Alternative (Now Official) Method using Environment Variables
A recent addition to the odbc package has meant it's now possible to get a databricks ODBC connection set up with three environment variables. An extra variable can get spark personal cluster working too. This method is supported by the official guidance on the posit solutions website, which recommends using the odbc::databricks() function alongside environment variables.
Environment variables can be set in many ways, but simplest is probably to use usethis::edit_r_environ() and the global .Renviron:
DATABRICKS_HOST=adb-5037484389568426.6.azuredatabricks.net
DATABRICKS_SQL_WAREHOUSE_ID=<sql-warehouse-id>
DATABRICKS_TOKEN=<personal-access-token>
DATABRICKS_CLUSTER_ID=<personal-cluster-id>

The naming of these variables is either enforced or standard, meaning we should enforce them to be the same for everyone:

DATABRICKS_TOKEN and DATABRICKS_HOST are enforced by R packages (odbc::databricks)
DATABRICKS_CLUSTER_ID follows the naming convention here: https://learn.microsoft.com/en-us/azure/databricks/dev-tools/databricks-connect/r/
DATABRICKS_SQL_WAREHOUSE_ID follows the naming convention here: https://docs.databricks.com/en/dev-tools/sql-execution-tutorial.html.

With these 4 variables, the R code would look like this. Importantly, it wouldn't have to change between different people, or even remote environments like an Azure DevOps Pipeline or Posit Connect, as long as the environment variables are set correctly for each person and machine.
# Connect to ODBC SQL Warehouse
library(DBI)
library(odbc)

con <- DBI::dbConnect(
  odbc::databricks(),
  httpPath = paste0(
      "/sql/1.0/warehouses/",
      Sys.getenv("DATABRICKS_SQL_WAREHOUSE_ID")
  )
)

odbcListObjects(con)

# Connect to Personal Compute
library(dplyr)
library(dbplyr)
library(sparklyr)

sc <- spark_connect(
  cluster_id = Sys.getenv("DATABRICKS_CLUSTER_ID"),
  method = "databricks_connect"
)

tbl(sc, in_catalog("catalog_10_gold", "information_schema", "columns")) |>
  colnames()

This means we can completely omit the manual ODBC connection set up using "ODBC Data Sources" in Windows, and just ask people to note down the relevant information and paste into the .Renviron file.
The other key benefit will be easier setup for Shiny apps and DevOps pipelines, because all the setup is done via environment variables which can just be added in the YAML or in the pipeline secrets. Here's an example DevOps Pipelines YAML:

Devops Pipeline YAML
Note: This hasn't been tested successfully yet since it needs a Client ID and Client Secret created by admins in the Azure Portal.
trigger:
  branches:
    include:
      - "main"

pool:
  vmImage: ubuntu-latest
container:
  image: rocker/geospatial:latest # Most packages and speeds up setup
variables:
  _R_CHECK_FORCE_SUGGESTS_: 'FALSE'
  MAKEFLAGS: -j 2
  CI: TRUE # This makes `testthat::skip_on_ci()` work.
  # DATABRICKS_TOKEN:  defined in secrets
  # DATABRICKS_CLIENT_SECRET:  defined in secrets
  DATABRICKS_HOST: adb-5037484389568426.6.azuredatabricks.net
  DATABRICKS_CLUSTER_ID: abc12345
  DATABRICKS_SQL_WAREHOUSE_ID: abc12345
  DATABRICKS_CLIENT_ID: abc12345

steps:
- bash: curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sudo sh
  displayName: Setup databricks cli
- bash: databricks catalogs list
  displayName: Test databricks cli

If this change is agreed, we can also help analysts with creating the environment variables with a function (for example in dfeR):

Automate Environment Variable Setup
setup_databricks <- function(scope = c("user", "project")) {
  # Copied from usethis::edit_r_environ
  path <- usethis:::scoped_path_r(scope, ".Renviron", envvar = "R_ENVIRON_USER")

  usethis::ui_info("Copy and fill out the following:")
  cat("\n")

  lines_to_write <- "DATABRICKS_HOST=adb-5037484389568426.6.azuredatabricks.net
DATABRICKS_SQL_WAREHOUSE_ID=<sql-warehouse-id>
DATABRICKS_TOKEN=<personal-access-token>
DATABRICKS_CLUSTER_ID=<cluster-id>
"

  usethis::ui_code_block(lines_to_write)

  # For 99% of people, this file won't exist -- automate the paste step
  if (!file.exists(path)) {
    fileConn <- file(path)
    writeLines(lines_to_write, fileConn)
    close(fileConn)
  }

  cat("\n")
  usethis::ui_todo("Fill out the environment variables, save, and restart R for changes to take effect")

  usethis::edit_file(path)

  invisible(path)
}

Welcome any thoughts on this change, since it's a fairly major one in how we advise people to set up a connection.

After some iteration I've made some tweaks, and also got a working proof of concept for a shiny app on posit connect with a databricks connection.
Local Setup
Local setup requires 3 environment variables:
DATABRICKS_HOST=adb-5037484389568426.6.azuredatabricks.net
DATABRICKS_SQL_WAREHOUSE_ID=/sql/1.0/warehouses/abc123...
DATABRICKS_TOKEN=dapi123abc...

These can be set either in Edit environment variables for your account in Windows, or the global .Renviron using usethis::edit_r_environ. We could adapt the snippet in the original post if we wanted to add that to the dfeR package.
Posit Connect Databricks
This requires 4 environment variables, created in the posit connect Vars pane:
DATABRICKS_HOST=adb-5037484389568426.6.azuredatabricks.net
DATABRICKS_SQL_WAREHOUSE_ID=/sql/1.0/warehouses/abc123...
DATABRICKS_CLIENT_ID=<azure app client id>
DATABRICKS_CLIENT_SECRET=<admin created databricks token>

The Client ID can be generated by creating an App in App Registrations on Azure Portal. Put a service ticket in to get a DATABRICKS_CLIENT_SECRET  created by an admin. Note the App needs to be given database/schema level permissions, and also warehouse permissions.
R Connection Code
Whether running remotely or locally, the code stays the same. This should work between people using different Hosts, SQL warehouses, personal access tokens, etc.
library(tidyverse)
library(odbc)

con <- DBI::dbConnect(
    odbc::databricks(),
    httpPath = Sys.getenv("DATABRICKS_SQL_WAREHOUSE_ID")
)

odbcListObjects(con)

Using Personal Compute Cluster Locally
This only works locally, setting it up on posit connect would require it to have pysparklyr
DATABRICKS_HOST=adb-5037484389568426.6.azuredatabricks.net
DATABRICKS_CLUSTER_ID=<personal-cluster-id>
DATABRICKS_TOKEN=<personal-access-token>

library(tidyverse)
library(sparklyr)
library(dbplyr)

sc <- spark_connect(
  cluster_id = Sys.getenv("DATABRICKS_CLUSTER_ID"),
  method = "databricks_connect"
)

contract <- tbl(sc, in_catalog("catalog_40_copper_tad", "swfc", "contract"))


Copy-editing in the README

This draws more attention to the custom templates capability as well as making the "what does it do?" section a bit more concise.

Pretty sure that build error is unrelated to my change @dlitvakb :wink:

No worries, build is failing because .travis.yml is not yet included in this branch, will be merged with a separate branch


My Projects

Filter tools drop downs should only be populated with values from project grid associated with agency or user login account.

Loads only sponsors within county. Hides county filter if not MTC Admin


Feature/Sidebar menu of Calendar page

Why?
The stakeholder mentioned on one of our meetings that he wants the application to have Calendar page. Users should be able to see the upcoming meetings and create new events on their Calendar pages. I was assigned to create Calendar page according to the application structure. Also I was assigned to create Sidebar component of the page.
What work was done?
I created Calendar page and Sidebar component of Calendar page.
Loom video: https://www.loom.com/share/d0e2f8eb94cd4edca9eb13b3043420a9
Trello card: https://trello.com/c/6MNUnyNY/19-as-a-case-manager-i-want-a-calendar-with-a-week-view-so-that-i-can-see-my-weekly-activities

Great work, Val! I love how you coded the side bar to reflect the stakeholder's wishes.  It looks exactly like the figma design that we worked on.


Failing tests due to disposed Provider

Hey,
After upgrading to the version 1.0.1 the tests started failing with the following exception:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following StateError was thrown running a test:
Bad state: Tried to read a provider from a ProviderContainer that was already disposed

It happens at the end of the test execution when the ref is being disposed and it tries to dispose all repositoryProviders referenced at the _repositoryInitializerProviderFamily provider generated by flutter data located on the file main.data.dart
Do you have a hint of what it might be?

@GabrielAraujo can you share a stacktrace?

══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following StateError was thrown running a test:
Bad state: Tried to read a provider from a ProviderContainer that was already disposed

When the exception was thrown, this was the stack:
#0      ProviderContainer.readProviderElement (package:riverpod/src/framework/container.dart:455:7)
#1      ProviderElementBase.watch (package:riverpod/src/framework/provider_base.dart:732:32)
#2      _repositoryInitializerProviderFamily.<anonymous closure>.<anonymous closure> (package:spectora_mobile/main.data.dart:103:13)
#3      _runGuarded (package:riverpod/src/framework/container.dart:5:7)
#4      Iterable.forEach (dart:core/iterable.dart:279:35)
#5      ProviderElementBase._runOnDispose (package:riverpod/src/framework/provider_base.dart:909:26)
#6      ProviderElementBase.dispose (package:riverpod/src/framework/provider_base.dart:860:5)
#7      ProviderContainer.dispose (package:riverpod/src/framework/container.dart:660:15)
#8      ProviderScopeState.dispose (package:flutter_riverpod/src/framework.dart:194:15)
#9      StatefulElement.unmount (package:flutter/src/widgets/framework.dart:4895:11)
#10     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1883:13)
#11     ListIterable.forEach (dart:_internal/iterable.dart:39:13)
#12     _InactiveElements._unmountAll (package:flutter/src/widgets/framework.dart:1892:25)
#13     BuildOwner.finalizeTree.<anonymous closure> (package:flutter/src/widgets/framework.dart:2879:27)
#14     BuildOwner.lockState (package:flutter/src/widgets/framework.dart:2510:15)
#15     BuildOwner.finalizeTree (package:flutter/src/widgets/framework.dart:2878:7)
#16     AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1159:19)
#17     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#18     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#19     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#20     AutomatedTestWidgetsFlutterBinding.scheduleWarmUpFrame (package:flutter_test/src/binding.dart:1085:5)
#21     runApp (package:flutter/src/widgets/binding.dart:1037:7)
#22     TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:824:7)
<asynchronous suspension>

The test description was:
  it should an display error
════════════════════════════════════════════════════════════════════════════════════════════════════

@frank06 happy new year, man! hope all is well! any thoughts on this one?

Happy new year @jamesdixon !  I am not sure what it is. The testing utilities are not high priority and I'd need an app using them to debug.


parse_tv.py causes version issues

While running example codes in how to use section of https://github.com/spdx/tools-python,
Running
python parse_tv.py '../data/SPDXSimpleTag.tag'
gives following error:
Generating LALR tables
SPDXVersion must be SPDX-1.2 found SPDX-2.1.
Errors encountered while parsing

@RishabhBhatnagar good find. PR welcomed

actually there are pending PRs by @yash-nisar but they need to be rebased before I can merge them... May be that something you can have a look into (unless @yash-nisar can handle it?)

Is it still open? Someone already working?

@omi10859 you can take on it

seem to be working with no errors

@RishabhBhatnagar can you brief on how to regenerate the error?

@RishabhBhatnagar I am closing this issue in favor that no one has reproduced thesame error as a bug


Add 'serde' feature to read/write-fonts

This is intended to be used to serialize test cases in write-fonts; it is also added in read-fonts since write-fonts reuses flags and enums declared in read-fonts.
One funny thing: (I think) this hit a serde bug around using non-literals to provide default values for const generics, which we do in the OffsetMarker types in write-fonts; I've opened an issue upstream at https://github.com/serde-rs/serde/issues/2449

I'm holding out on this because I don't want to merge until I have a clear use. My intended use for this is to create binary dumps of real-world tables that require special handling (extension promotion or table splitting) and then use those in integration tests, but I'm leaving this as a draft until I actually get around to building that infrastructure.


Add missing factories key

Provide a narrative description of what you are trying to accomplish:

[x] Am I fixing a bug? I think so.

[x] How to invoke the bug: Provide some configuration for this component.
[x] Original, incorrect behavior: the configuration is completely ignored
[x] New behavior: The configuration is taken into account
[x] Base your feature on the master branch, and submit against that branch.
[x] Add a regression test that demonstrates the bug, and proves the fix.
[x] Add a CHANGELOG.md entry for the fix.

Add a regression test that demonstrates the bug, and proves the fix.

Sounds quite hard, since it won't be a unit test, any pointers?

Add a regression test that demonstrates the bug, and proves the fix.

Sounds quite hard, since it won't be a unit test, any pointers?

If you want to add a test, it would look like this:
https://github.com/zendframework/zend-expressive-session/blob/master/test/ConfigProviderTest.php

Thanks! I added a test, but it's value is dubious.

ping @xtreamwayz

@greg0ire @xtreamwayz What do you think about adding tests like I did in:
https://github.com/zendframework/zend-expressive/pull/555

I tried but I'm hitting a roadblock here:
1) ZendTest\Expressive\Authorization\Rbac\ConfigProviderTest::testServicesDefinedInConfigProvider
Zend\ServiceManager\Exception\ServiceNotFoundException: Unable to resolve service "config" to a factory; are you certain you provided it during configuration?

/home/gparis/dev/zend-expressive-authorization-rbac/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:687
/home/gparis/dev/zend-expressive-authorization-rbac/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:763
/home/gparis/dev/zend-expressive-authorization-rbac/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:200
/home/gparis/dev/zend-expressive-authorization-rbac/src/ZendRbacFactory.php:22
/home/gparis/dev/zend-expressive-authorization-rbac/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:764
/home/gparis/dev/zend-expressive-authorization-rbac/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:200
/home/gparis/dev/zend-expressive-authorization-rbac/test/ConfigProviderTest.php:65

How should I provide the config service?

@greg0ire It should be an array, but I don't know if you need provide any values there or not.
So it will be similar to this one:
https://github.com/zendframework/zend-expressive/pull/555/files#diff-dd7be8c2159ef150972270691fcea867R111
And in your case it should be something like:
$config['dependencies']['services']['config'] = ['your' => 'config-array'];

Ready to merge then? Can someone please click the button? :ship:

Thanx @greg0ire


Use getopts and awk to increase compliance

GNU getopt, head, and tail were breaking the wrapper on non-GNU so I tried to make changes that would make it usable on a broader range of systems
My intention was that the actual functionality/output of the script would remain identical to base
Note that I changed the option '--3-day' to '--3day' because i found the third dash confusing, but this was merely a personal preference
edits to the help and error messages were also just personal preferences but i'm including them in the request

All good! I was just making this for my system but any improvements are welcome.

My first pull request -- my parents will be so proud.


Include generated files in repo

Changes in this pull request
Including the files that Yardl generates to the repo. Reasons for doing this:

Cloning the repo does not require running yardl generate before the repo can be used.
If there is a difference between the locally installed yardl version and the version that the repo expects, there can be unexpected behaviour.
When the version of yardl is updated, we'll be able to inspect the change the effect that it has to the generated code.

Of course, there will be more "noise" in the repo, but I think it is worth it.
Testing performed
Manual
Related issues

Checklist before requesting a review

[x] I have performed a self-review of my code
[ ] I have added docstrings/doxygen in line with the guidance in the developer guide
[x] The code builds and runs on my machine

Contribution Notes
Please read and adhere to the contribution guidelines.
Please tick the following:

[x] The content of this Pull Request (the Contribution) is intentionally submitted for inclusion in the ETSI software (the Work) under the terms and conditions of the Apache-2.0 License.

I wonder if 'tis worth pushing to a different repo/branch?
Presumably though any generator (such as yardl) is meant to be robust enough to not need testing in all downstream repos.


App Switcher : Non Responsive/Lagging

Describe the bug
The app switcher lags and freeze and also takes time to close the apps. The app switcher works pretty fine if I restart the device and don't re-jailbreak the device but still comes up if I re-jailbreak. I can make the video and share if required. Please look into this. Thanks you so much for the support.
To Reproduce
Steps to reproduce the behavior:

Install unc0ver 5.0.1
Once done, open multiple apps
Try to switch between apps from app switcher or try to close
The screens will lag or freeze and won't close the apps either on time

Screenshots
If applicable, add screenshots to help explain your problem.
Device (please complete the following information):

iOS Version: 13.5
iOS Device: iPhone X
unc0ver Version: 5.0.1

Place an "x" between the brackets if true:
(Didn't check the blank ones)

[x] this is a bug others will be able to reproduce
[ ] this issue is present with all tweaks uninstalled(except for default packages) or disabled
[ ] this issue is present after a rootfs restore
[x] this issue is present on the latest version of unc0ver

Logs
If applicable, add logs or error messages here.

Try to boot to Safe Mode and then test again. If it doesn’t lag, then uninstall your tweaks.


Bug -o option .cpython-36m-x86_64-linux-gnu.so

pythran mymod.py -o mymod_123456789.cpython-36m-x86_64-linux-gnu.so

does not work because of bad names containing ".cpython-36m-x86_64-linux-gnu" in C++ (Pythran only removes .so from the output name).
I need to do this for the decorator cachedjit.
.cpython-36m-x86_64-linux-gnu is obtained with
import sysconfig
sysconfig.get_config_var("EXT_SUFFIX")

As a workaround, I had to put
if pythran and pythran.__version__ <= "0.9.0":
    # avoid a Pythran bug with -o option
    # it is bad because then we do not support using many Python versions
    ext_suffix = "." + ext_suffix.rsplit(".", 1)[-1]

in https://bitbucket.org/fluiddyn/fluidpythran/src/default/fluidpythran/cached_jit.py

your patch looks good to me, can you submit a PR? It would be nice to have a test case too... maybe as a doctest?

OK I think I can do it so I put that in my todo list... Anyway, the next Pythran release should not be for tomorrow.


[bugfix] update Point size slider on selection (current_size event)

References and relevant issues
Closes https://github.com/napari/napari/issues/6115
Description
In this PR i add a connection to the current_size event, so that the slider is updated for the current size of a selected point.
I also add a test for this case.

@brisvag The size and color shown when selecting multiple points reflect the state of the last previously selected point, so typically the last one placed/moved.


Improve SETUP.md

Part of #1627
Improve the documentation in SETUP.md and remove required software list from README.md (as already in SETUP)

Coverage remained the same at 88.104% when pulling af43766c59227fd0f6ec1d56cbb1eb5435f676ac on JoshHeng:improve-SETUP.md into 4b249979c531c757d6faee18a53f4c2e9802286b on CircuitVerse:master.

@tachyons Please review

@satu0king ready to merge I think.


store certificate

why doesnt this page explain how to create store signed certificate? it only explains how to create a temporary certificate for sideloading and not Storekey.pfx for publishing on Microsoft store. this article is so confusing or maybe I am dumb lol. I am trying to package a simple uwp app to be published on store through visual studio, I dont wanna do anything manually but I had to create this temporaryKey.pfx this way, now how do I create StoreKey.pfx. UWP  submission used to be so simple, it aint simple anymore.

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

ID: 8e95ba48-8d07-d390-d49b-801d70730bae
Version Independent ID: 047d2736-f14e-610c-7396-89d2eae0f9cc
Content: Create a certificate for package signing - MSIX
Content Source: msix-src/package/create-certificate-package-signing.md
Product: msix
GitHub Login: @dianmsft
Microsoft Alias: diahar

@touseefbsb thank you for your question. If you're publishing to the store, you don't need to sign the package yourself. Store submissions go through a validation process and takes care of signing for you.


Doesn't work with Pnpm (as is)

Axios was missing and I have to upgrade @types/nodes to 18.16.3
But working fine afterward

Merci de l'info :)


Cleanup + RefreshContainer added to the Node Interface

Currently, we import swarm.Node in the API code, this is not good.
I added a RefreshContainer method in the cluster.Node interface.
I also made swarm.Node not exported (swarm.node)

ping @tnachen what do you think about the new method in the interface ?

Hey there, what is the method for? I can't tell from your change

It is used only in one specific place for now, on docker exec
Same as docker run, docker exec in in fact start + attach so, after the start we need the refresh the container before the client does the attach. That's why we explicitly call RefreshContainer in api.go

I'm actually concerned about this. Nodes shouldn't leak to the API at all.
They are an internal thing of a cluster and only Swarm and Mesos with a Swarm framework will ever use them (for instance, if we have a marathon backend, they shouldn't deal with the nodes at all)

@aluzzardi You are right, thanks to #441 api.go doesn't use node anymore, I'll update this PR right away

@aluzzardi PTAL

:+1:


Distinct and non-overlapping ui-views for different routes

My application has a bunch of states defined using ui-router
home.js
//....
.config(($stateProvider, $urlRouterProvider) => {
  $urlRouterProvider.otherwise('/');
  $stateProvider
    .state('home', {
        url: '/',
        template: '<home></home>',
        access: {restricted: false}
    })
    .state('single',{
        url: '/post/:slug',
        params: {id: undefined},
        template: '<single></single>',
        access: {restricted: false}
    })
})
// ... some other stuff

At the same time, I have my CMS routes defined in admin.js like so:
import createTemplate from './create/create.post.html';
import adminLayout from './admin.layout.html';

.config(($stateProvider, $urlRouterProvider) => {
    $stateProvider
        .state('admin', {
            abstract: true,
            url: '/admin',
            template: adminLayout
        })

        .state('admin.create', {
            url: '/create',
            template: createTemplate,
            access: {restricted: true}
        })
        .state('admin.posts', {
            url: '/posts',
            template: '<allposts></allposts>',
            access: {restricted: true}
        })
        .state('admin.edit', {
            url: '/edit/:id',
            template: '<editpost></editpost>',
            access: {restricted: true}
        });
})

I have 2 master layouts-one for the the non-CMS routes, and the other for the CMS routes. The reason for keeping them distinct is because they have different UI elements; different enough to justify keeping them in different layouts.
app.html

            <navbar menu-items="ac.navItems" orientation="vertical" logo="true"></navbar>

            {{'footer.copyright_years.fragment' | translate}} {{'colophon.author_name.fragment' | translate}}

admin.layout.html

The problem I am facing is that whenever I navigate to /admin/create or any of the admin routes, I see the layout for app.html as well as the layout for admin.layout.html together.
How do I configure the ui-views such that I can have distinct layouts for the non-CMS routes and the CMS ones?

If I understand correctly, when you route to admin.** the admin.layout.html renders inside the ui-view in app.html?

            <navbar menu-items="ac.navItems" orientation="vertical" logo="true"></navbar>

            {{'footer.copyright_years.fragment' | translate}} {{'colophon.author_name.fragment' | translate}}

How is app.html  being rendered when you are in the admin states? Is it loaded as a part of index.html?
Generally I'd suggest rendering app.html into a ui-view.  You can accomplish this by making a parent state for all your home, single, etc states that uses app.html as its view.
You can add a parent state using the parent:  property to the top level "cms states", such as:
  $stateProvider
    .state('cms', {
        templateUrl: 'app.html',
    })    .state('home', {
        parent: 'cms',
        url: '/',
        template: '<home></home>',
        access: {restricted: false}
    })
    .state('single',{
        parent: 'cms',
        url: '/post/:slug',
        params: {id: undefined},
        template: '<single></single>',
        access: {restricted: false}
    })

Hope this helps. Let me know if it answers your question.

Thanks @christopherthielen for the prompt reply. You are correct in your understanding that the admin layout was rendering inside the ui-view of the app's template.
That said, looking at the code you posted, I wasn't aware of the parent key for a state.
I ended up doing this:
I create two abstract states: main and admin with corresponding main.layout.html and admin.layout.html Each of these layouts have their own ui-view into which, as far as I understand, the child states will plug in their own templates.
Then I created child states for each of these abstract states:
.config(($stateProvider, $urlRouterProvider) => {
        $stateProvider
            .state('admin',{
                url: '/admin',
                abstract: true,
                templateUrl: './components/admin/admin.layout.html',
                controller: AdminController,
                controllerAs: 'adc'
            })
            .state('admin.create', {
                url: '/create',
                template: '<createpost></createpost>',
                access: {restricted: false}
            })
            .state('admin.posts', {
                url: '/posts',
                template: '<allposts></allposts>',
                access: {restricted: true}
            })
            .state('admin.edit', {
                url: '/edit/:id',
                template: '<editpost></editpost>',
                access: {restricted: true}
            });
    })

and
.config(($stateProvider, $urlRouterProvider) => {
    $urlRouterProvider.otherwise('/');
    $stateProvider
        .state('main', {
            abstract: true,
            templateUrl: './components/home/main.layout.html'
        })
        .state('main.home', {
            url: '/home',
            template: '<home></home>',
            access: {restricted: false}
        })
        .state('main.single',{
            url: '/post/:slug',
            params: {id: undefined},
            template: '<single></single>',
            access: {restricted: false}
        })
        .state('main.work', {
            url: '/work',
            template: '<work></work>',
            access: {restricted: false}
        })
        .state('main.trampoline', {
            url: '/trampoline',
            template: '<trampoline></trampoline>',
            access: {restricted: false}
        })
        .state('main.illustrations', {
            url: '/illustrations',
            template: '<illustrations></illustrations>',
            access: {restricted: false}
        });
})

This worked for me to achieve my stated goal of having distinct layouts for CMS and home page routes. Thanks for your reply though, learned something new!


Build in a step to scan mods with Bandit to improve security

Since the mods which can be written can contain malicious code, it would be good to be able to use bandit to scan the python code which makes up a mod to try and discern any potential threats contained, and not load the mod if there are any found.

This looks like it might actually be trickier than I thought... For one thing, bandit doesn't have any easy way to call it programatically. It is possible, but I found that it doesn't actually detect issues of the type I was expecting (was thinking of detecting malicious code etc).
There is https://github.com/DataDog/guarddog which seems promising, but I think for now this is probably reasonably low priority and so can be moved out of the 0.2 milestone...


Replace cas with cosign

I guess we could refactor everything. But right now it works in that way. I'm fine to take it into icebox until someone have restructure it

Oh right, this repo only provides the base docker images, it is fine, though 👍
../Frenck

On that note, everything in this repo could be converted into features instead of containers.


Set multiple popperPlacement

I was wondering if there is a mechanism in place to give preferred popperPlacements, such as for it to originally be a 'top-end', but if it isn't able to do that, it uses 'left-end' (instead of simply flipping to bottom-end, which doesn't work as well in my app).
Thank you for your time. Really enjoying ngx-popper!

@pxtnpxtn , not currently, no, might be a good idea to allow an input a ordered list of placements. I might get to it in a couple of weeks, feel free to put in a PR if you want.
happy are finding this tool useful


Reflect Pontoon changes in add new project docs

@flodolo r?

Thanks. Updated. Trying to do all of this through GitHub UI.

Looks good, thanks.


Blocking issues before releasing v0.3

[ ] Add section about OUTPUT_DIRECTORY to the Readme.
[ ] Document that IMPORTED_LOCATION will be set late (important if e.g. the users writes these properties to some configuration file like slint does). Should be added to the Breaking section in the Changelog.

potentially more...

CXX-Qt is working with the 0.3 beta: https://github.com/KDAB/cxx-qt/pull/340


The vcf file is empty (data from the tutorial)

Hi Jared.
I'm new to nanopolish, so I tried the tutorial that you posted on
https://nanopolish.readthedocs.io/en/latest/quickstart_consensus.html
In the first some step, it seems to work normally.

The results of indexing:

[readdb] indexing fast5_files/
[readdb] num reads: 112, num reads with path to fast5: 112

The results of aligning and sorting:

The results of the command: minimap2 -ax map-ont -t 8 draft.fa reads.fasta | samtools sort -o reads.sorted.bam -T reads.tmp

fasta | samtools sort -o reads.sorted.bam -T reads.tmp
[M::mm_idx_gen::0.1701.02] collected minimizers
[M::mm_idx_gen::0.1911.74] sorted minimizers
[M::main::0.1911.74] loaded/built the index for 3 target sequence(s)
[M::mm_mapopt_update::0.2131.67] mid_occ = 11
[M::mm_idx_stat] kmer size: 15; skip: 10; is_hpc: 0; #seq: 3
[M::mm_idx_stat::0.2231.63] distinct minimizers: 833470 (98.00% are singletons); average occurrences: 1.035; average spacing: 5.355; total length: 4620825
[M::worker_pipeline::0.3032.80] mapped 112 sequences
[M::main] Version: 2.17-r974-dirty
[M::main] CMD: minimap2 -ax map-ont -t 8 draft.fa reads.fasta
[M::main] Real time: 0.313 sec; CPU: 0.860 sec; Peak RSS: 0.093 GB

The results of the command: 'samtools index reads.sorted.bam' is empty, but the results of the command samtools view reads.sorted.bam | head seems to be right.

The results of generate vcf file

[post-run summary] total reads: 101, unparseable: 0, qc fail: 0, could not calibrate: 0, no alignment: 0, bad fast5: 101

I see the other problems' answers, and I found that you said it seems the index step's fault, but I have no idea about the index step's fault in the tutorial data.
So could you please help me solve the problem?

Oh, I solve the problem...It seems the dependence between nanopolish and zlib and zlib-dev and libhdf5-dev package. I uninstall the nanopolish project and reinstall these package, and then remake the project, and there are no errors now.


Add change security group to default at the end of docker airgapped upgrade from release test

Issue #, if available:
Description of changes:
This PR adds a step to the test changes the security group of the EC2 instance back to the default security group. Otherwise, despite a successful run, uploading the test report will fail and so will the code build at the end of the test
Testing (if applicable):
Documentation added/planned (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/cherry-pick release-0.18

/lgtm

/approve


Implement ENV object in Rust

ENV is currently a stub.
To support both wasm32 and embedded builds, we should implement ENV with multiple backends:

std::env
HashMap

For an example of a similar component implemented in Rust with support for multiple backends, see Regexp.
Expose methods on State to toggle the ENV backend.

May I take this one?

Absolutely, it's all yours @cdeler. 💎

To support the in-memory backend, we my want to expose manipulating the interpreter environment as a trait on the interpreter, similar to Warn.

@cdeler I just realized the ENV API is fairly large. I don't think it is necessary to complete the entire ENV API in one PR. Maybe focus on ENV::[] and ENV::[]= first since that is the part the glues together Rust and Ruby.
I had a peek at your branch and I think it is looking pretty good. 🙏
Looking at the API, I think the only pieces we must implement in Rust are ENV::[], ENV::[]=, ENV::delete and ENV::to_h. These four APIs would allow the rest to be implemented in Ruby.

@lopopolo I've done with ENV::[] and ENV::[]=
I think ENV::delete could be emulated through ENV::[]=nil
I should add ENV::to_h or create PR?

@lopopolo The diff for ENV::[] and ENV::[]= is here.

@cdeler we can add the HashMap backend as an add on in a subsequent PR. We'll just keep this ticket open until the ENV implementation is complete.
I probably won't have time to review your PR until the weekend. If you'd like to add ENV::to_h before then, that sounds good. If you'd prefer to push what you have, that works too. 😄 💎

@lopopolo I've implemented 2 backends EnvHashMapBackend and EnvStdBackend, and to_h method.
But I cannot figure out how can I make it configurable (i.e. now we have to recompile mod env)

@cdeler that’s excellent! Could you submit a PR? I’ll aim to leave some feedback by 12p PDT on Saturday.
My strategy for getting this PR merged will be to leave feedback, file follow up tickets, and try to get things merged without too much friction :smile:

@lopopolo what should I do to continue with this issue? Take the next one related to ENV?

@cdeler would you like to take GH-156?

This implementation is done so long as the missing Hash methods are implemented elsewhere in extn.
Thanks @cdeler!