How much of a compromise is compromise?

Hello! Firstly, thanks very much to spencer and contributors for working so hard on v7 - very exciting new API.
I'm thinking about using compromise in a little project of mine and wanted to test its boundaries a little so I whipped up a jsbin with v7.0.4:
http://jsbin.com/qegelofaku/3/edit?html,console
Of the random words I chose, compromise seemed to get about 1/6 wrong - but I suppose I was choosing slightly uncommon words on purpose. My question is: Should I wait until v7 is released (is there an ETA?) before judging its accuracy, or is the accuracy that we see in the JSBin to be expected in the official v7 release anyway?
I understand that some compromises have had to be made, so this isn't a critique, I'm just trying to get a sense of how accurate compromise is (or will be) so I can judge whether it's the right fit for my project. Thanks!

hi @josephrocca! thank you! this is really good.
Yeah, i should be more up-front about this. 1/6th is a good estimate. I like to think mid-80% is what's good-enough-but-can-be-inproved-on-so-lets-include-it territory.
for evaluating parts-of-speech, putting words in a sentence is a more charitable way of evaluating it, as a lot of signals from neighbouring words help-out the interpretation.
and yeah, we're more-or-less in the slow-release process rn. v7 is more accurate than its predecessor, and should be used, but needs some docs and a few days of cleanup still.

hey, fixed a few of these. durian is a  ¯_(ツ)_/¯, and soften is a good example, i think, of some adjectives conjugating to verbs - how many of these do you think there are? harden, etc.
maybe that's a thing we should do.
cheers

Ah of course, I didn't even think about compromise using the surrounding words - silly me. That'll help me with my project. This looks like a good list for the en thing: http://www.engvid.com/english-resource/vocabulary-hack-verbs-ending-with-en/

hey, these all work now, as of v7.0.5 - with the exception of durian.
:tada:

You've probably already seen it, but just in case @blakembrey has any plural rules you missed: pluralize. And also this: http://home.nerbonne.org/A-vs-An/ is really neat.


UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

My client.py
from tusclient import client

# Set Authorization headers if it is required
# by the tus server.
my_client = client.TusClient('http://<IP_ADDRESS>:5000/resume_upload',
                              headers={'Authorization': 'Basic xxyyZZAAbbCC='})

# Set more headers.
#my_client.set_headers({'tag': 'value'})

# uploader = my_client.uploader('/home/sharif/Downloads/Customer_SpecialTerminationRates1_1_FRM_v20220930.xlsx', chunk_size=200)

# A file stream may also be passed in place of a file path.
fs = open('/home/sharif/Downloads/image.jpeg')
uploader = my_client.uploader(file_stream=fs, chunk_size=200, metadata={'filename':'aW5mby5tZXRh'})

# Upload a chunk i.e 200 bytes.
uploader.upload_chunk()

# Uploads the entire file.
# This uploads chunk by chunk.
uploader.upload()

# you could increase the chunk size to reduce the
# number of upload_chunk cycles.
uploader.chunk_size = 800
uploader.upload()

# Continue uploading chunks till total chunks uploaded reaches 1000 bytes.
uploader.upload(stop_at=1000)

Traceback (most recent call last):
  File "/media/sharif/Backup/test/Debug/TUS/client/client.py", line 18, in <module>
    uploader.upload_chunk()
  File "/media/sharif/Backup/test/Debug/TUS/venv/lib/python3.10/site-packages/tusclient/uploader/uploader.py", line 49, in upload_chunk
    self._do_request()
  File "/media/sharif/Backup/test/Debug/TUS/venv/lib/python3.10/site-packages/tusclient/uploader/uploader.py", line 72, in _do_request
    self.request.perform()
  File "/media/sharif/Backup/test/Debug/TUS/venv/lib/python3.10/site-packages/tusclient/request.py", line 77, in perform
    chunk = self.file.read(self._content_length)
  File "/usr/lib/python3.10/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

I have never seen this error before but after reading https://stackoverflow.com/questions/42339876/error-unicodedecodeerror-utf-8-codec-cant-decode-byte-0xff-in-position-0-in, it might be related to the file not being opened in binary mode.
Can you try using this:
fs = open('/home/sharif/Downloads/image.jpeg', mode='rb')

If this helps, we will also update the README.

Thank You.Your solution worked.
I was tried following code.The error gone but some file md5sum did not match
fs = open(log_location+file_name, encoding="ISO-8859-1")
Now working perfectly by using following line
fs = open(log_location+file_name, mode='rb')
By the way now I am getting another error when enable resumable by

storage_path = '{}/storage_file'.format("/etc/tus/storage_path")
# fs = open(log_location+file_name, encoding="ISO-8859-1")
fs = open(log_location+file_name, mode='rb')
uploader = my_client.uploader(file_stream=fs, chunk_size=chunk_size, metadata={'filename': file_name}, store_url=True,
                              url_storage=filestorage.FileStorage(storage_path), retries=2)

But returning following error
Traceback (most recent call last):
  File "TUS/client/client.py", line 43, in <module>
    uploader = my_client.uploader(file_stream=fs, chunk_size=chunk_size, metadata={'filename': file_name}, store_url=True,
  File "TUS/venv/lib/python3.10/site-packages/tusclient/client.py", line 53, in uploader
    return Uploader(*args, **kwargs)
  File "TUS/venv/lib/python3.10/site-packages/tusclient/uploader/baseuploader.py", line 128, in __init__
    self.__init_url_and_offset(url)
  File "TUS/venv/lib/python3.10/site-packages/tusclient/uploader/baseuploader.py", line 213, in __init_url_and_offset
    self.set_url(self.url_storage.get_item(key))
  File "TUS/venv/lib/python3.10/site-packages/tusclient/uploader/baseuploader.py", line 226, in set_url
    key = self._get_fingerprint()
  File "TUS/venv/lib/python3.10/site-packages/tusclient/uploader/baseuploader.py", line 219, in _get_fingerprint
    with self.get_file_stream() as stream:
  File "TUS/venv/lib/python3.10/site-packages/tusclient/uploader/baseuploader.py", line 241, in get_file_stream
    self.file_stream.seek(0)
ValueError: seek of closed file


Not able to connect with broker via SASL on Windows

Description
Hi, I am trying to use connect to the broker via SASL_SSL on a Window Machine.
But I got error saying InitializeSecurityContext failed: Target unknown
Note: I am able to connect to the broker via SSL.
How to reproduce
Operating System: Windows 7
Confluent Kafka Dotnet version: 1.3.0
Apache Kafka version: Confluent 5.2.2 (Apache Kafka 2.2.1)
Producer configuration:
            BootstrapServers ="broker:6668",
            SaslMechanism = SaslMechanism.Gssapi,
            SecurityProtocol = SecurityProtocol.SaslSsl,
            SslCaLocation = "./cert.pem",
            SslCertificateLocation = "./cert.pem",
            SslKeyLocation = "./cert.key",
            SaslKerberosServiceName = "service",
            SaslKerberosPrincipal =<EMAIL_ADDRESS>            ApiVersionRequest = false,
            Debug = "all"

Log
%7|1579192615.371|SEND|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: Sent SaslHandshakeRequest (v1, 29 bytes @ 0, CorrId 10)
%7|1579192615.390|RECV|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: Received SaslHandshakeResponse (v1, 14 bytes, CorrId 10, rtt 18.89ms)
%7|1579192615.392|SASLMECHS|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: Broker supported SASL mechanisms: GSSAPI
%7|1579192615.394|AUTH|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: Auth in state AUTH_HANDSHAKE (handshake supported)
%7|1579192615.395|STATE|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: Broker changed state AUTH_HANDSHAKE -> AUTH_REQ
%7|1579192615.398|BROADCAST|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: Broadcasting state change
%7|1579192615.398|SASL|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: Initializing SASL client: service name esaas, hostname broker, mechanisms GSSAPI, provider Win32 SSPI
%7|1579192615.401|SASL|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: Acquired Kerberos credentials handle (expiry in<PHONE_NUMBER>.-322922497s)
%7|1579192615.402|BROKERFAIL|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: failed: err: Local: Authentication failure: (errno: Invalid argument)
%3|1579192615.404|FAIL|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: Failed to initialize SASL authentication: InitializeSecurityContext failed: Target unknown (0x80090303) (after 6ms in state AUTH
_REQ)
%3|1579192615.407|ERROR|rdkafka#producer-1| [thrd:sasl_ssl://broker:6668/bootstrap]: sasl_ssl://broker:6668/bootstrap: Failed to initialize SASL authentication: InitializeSecurityContext failed: Target unknown (0x80090303) (after 6ms in state AUTH_REQ)
Checklist
Please provide the following information:

[ ] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
[x] Confluent.Kafka nuget version.
[x] Apache Kafka version.
[x] Client configuration.
[x] Operating system.
[x] Provide logs (with "debug" : "..." as necessary in configuration).
[ ] Provide broker log excerpts.
[x] Critical issue.

confluent-kafka-dotnet (or more precisely the underlying librdkafka client) will use the logged on user's principal to authenticate via GSSAPI on Windows, while it will use the krb5 tools on Linux/OSX.

Does this mean that it is not possible to use a principle other than the logged user's to authenticate?

@MarkRx Correct. There might be some trick with SetSPN with friends, but that's outside my knowledge.


DatePicker won't reset on reset button press within an html form

put the DatePicker in a form with a reset button and assign an inputName:
export function PickerExample() {
  return (
    <form>
      <DatePicker inputName={'_in'} value={null} onChange={_ => {}}/>
      <button type=reset">Reset</button>
    </form>
  )
}

Select a date, then press the reset button...
Normally a reset event should trigger a form elements collection to adopt the reset mechanism, by emptying themselves.
Although the DatePicker component includes a  element, this won't be cleared.
It should either expose a .Reset() function to be invoked via the useRef() hook, or it should be fixed to use the form events as intended.

I have faced similar issue.
I have fixed it by adding Key in the DatePicker component

AmitJain628 what value to the key?
any value that can differ in time?
like a Date.now() to force a re render of the component on reset?


Global search suggestion

As a front-end developer, I find myself using the global search function all the time, as well as the 'files to include' input under it. When activating search, it automatically focusses the search box. Is it possible to add an option, that if I press tab, it goes to the next input right away, instead of the search options. I use a lot of keyboard shortcuts and right now I have to press tab 5 times to get to the next input. Hopefully this makes any sense. Here is a screen capture of what I mean.
https://user-images.githubusercontent.com/21953348/117277338-135eb780-ae60-11eb-9cd7-c4310276b584.mov

You can press cmd/ctrl + down to move between the inputs quickly.

@roblourens That works, but it seems counter-intuitive. I was wondering if the cmd/ctrl + down combination could be remapped to tab, or make it a toggle/switch.


Refactor(web-react): Refactor Dropdown to controlled component #DS-637

Created new component called DropdownModern with new structure

Description

Additional context

Issue reference

Before submitting the PR, please make sure you do the following

[ ] Read the Contributing Guidelines.
[ ] Follow the PR Title/Commit Message Convention.
[ ] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

coverage: 71.087% (+0.5%) from 70.548% when pulling 384fa3074d3746ce5a30a657fa8d749232c67e21 on refactor/DS-637-dropdown into e07eb5a74c3982da3c772424fed647fe5d5a49c2 on main.

Please, one of you @adamkudrna or @crishpeen, look at this PR if this composition makes sense to you and if the deprecations messages are correct and the documentation is understandable. The React code has been checked by me multiple times (but that does not mean that there are not some ABC issues ;-)). Thanks.


Asynchronously awaiting an interrupt with embassy.

Hi, I wanted to ask, if it's possible to await an interrupt when using embassy.

This sounds like an XY problem, what's your end goal?

I'm trying to await a hardware interrupt from the wifi PHY.

You can have a look at the async drivers in esp-hal. Basically, you'll need a future which can use AtomicWaker like here: https://github.com/esp-rs/esp-hal/blob/256d7198f9dc176f011914f6fca0d4b137f19bcc/esp-hal/src/rmt.rs#L1106-L1143
In the interrupt handler you can wake the waker: https://github.com/esp-rs/esp-hal/blob/256d7198f9dc176f011914f6fca0d4b137f19bcc/esp-hal/src/rmt.rs#L1292

Looks great, thanks! Maybe I'll build an abstraction around this, so it can be used for any interrupt.

I don't believe there is any actionable work here, so I'm going to close this issue. Feel free to open a new issue or discussion if you have any other questions or problems :)


Issue modifying globals set in functionGlobalContext

Current Behavior
I've encountered a strange behaviour where if I set an object in functionGlobalContext and modify it after in Node-RED, I will get unexpected behaviour.
If I add properties to the object and then delete those properties and try to access them using an inject (for example global.foo.myproperty)
The property is still there (even though it's not there in the sidebar.
I attached a flow that is easy to reproduce, this assumes your settings file has this:
module.exports = {
    exportGlobalContextKeys: true,
    functionGlobalContext: {
        foo: {hello: 24}
    }
}

Expected Behavior
I would assume that the global behaves like any other global.
Steps To Reproduce
See flow
Example flow
[
    {
        "id": "ce3295513a7e3d19",
        "type": "inject",
        "z": "37cb6d064396c65f",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 770,
        "y": 240,
        "wires": [
            [
                "bd6913bf3e0e96f1"
            ]
        ]
    },
    {
        "id": "bd6913bf3e0e96f1",
        "type": "function",
        "z": "37cb6d064396c65f",
        "name": "add cats to global.foo",
        "func": "const foo = global.get('foo')\nfoo.cats = 'bob'\nglobal.set('foo', foo)",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 970,
        "y": 240,
        "wires": [
            []
        ]
    },
    {
        "id": "d649635212bc5cc8",
        "type": "inject",
        "z": "37cb6d064396c65f",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "foo.cats",
        "payloadType": "global",
        "x": 800,
        "y": 340,
        "wires": [
            [
                "4e289b96fe626737"
            ]
        ]
    },
    {
        "id": "4e289b96fe626737",
        "type": "debug",
        "z": "37cb6d064396c65f",
        "name": "debug 71",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 980,
        "y": 340,
        "wires": []
    },
    {
        "id": "4460aad0e609eb61",
        "type": "comment",
        "z": "37cb6d064396c65f",
        "name": "1. First we click on the timestamp to add a cats property to global.foo",
        "info": "",
        "x": 930,
        "y": 180,
        "wires": []
    },
    {
        "id": "ee57e94e51adb471",
        "type": "comment",
        "z": "37cb6d064396c65f",
        "name": "2. we print global.foo.cats which outputs our data normally",
        "info": "",
        "x": 890,
        "y": 300,
        "wires": []
    },
    {
        "id": "5af297dbed4002b0",
        "type": "inject",
        "z": "37cb6d064396c65f",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 780,
        "y": 440,
        "wires": [
            [
                "3372c8becf81f852"
            ]
        ]
    },
    {
        "id": "3372c8becf81f852",
        "type": "function",
        "z": "37cb6d064396c65f",
        "name": "add cats to global.foo",
        "func": "let foo = global.get('foo')\nfoo = {}\nglobal.set('foo', foo)",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 980,
        "y": 440,
        "wires": [
            []
        ]
    },
    {
        "id": "6d564da2fefca519",
        "type": "comment",
        "z": "37cb6d064396c65f",
        "name": "3. we assign global.foo to an empty object",
        "info": "",
        "x": 840,
        "y": 400,
        "wires": []
    },
    {
        "id": "a398d0734a5b97f9",
        "type": "inject",
        "z": "37cb6d064396c65f",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "foo.cats",
        "payloadType": "global",
        "x": 800,
        "y": 540,
        "wires": [
            [
                "19c9aad1e9222ccd"
            ]
        ]
    },
    {
        "id": "19c9aad1e9222ccd",
        "type": "debug",
        "z": "37cb6d064396c65f",
        "name": "debug 72",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 980,
        "y": 540,
        "wires": []
    },
    {
        "id": "9d67d69991623799",
        "type": "comment",
        "z": "37cb6d064396c65f",
        "name": "4. we print global.foo.cats, it shouldn't output anything but does",
        "info": "",
        "x": 910,
        "y": 500,
        "wires": []
    },
    {
        "id": "40eddb1390e3ab3f",
        "type": "comment",
        "z": "37cb6d064396c65f",
        "name": "5. if you delete global.foo in the sidebar, it reverts to the global set in functionGlobalContexty",
        "info": "",
        "x": 1000,
        "y": 600,
        "wires": []
    }
]

Environment

Node-RED version: 3.0.2 and 3.1 beta
Node.js version: 18
npm version:
Platform/OS: Mac
Browser:

Polite bump, seems to be behaving the same with the latest version.
Thanks !

Hi @natcl - am taking a look (finally...)
Curiously, in your example flow, you show that an Inject node configured to get global.foo.cats is getting the original value. However, if I do the equivalent in a Function node (msg.payload = global.get('foo'); return msg) then it gets the updated value.
Most strange...

I spoke too soon - its gets stranger still.
global.get('foo') returns {}
global.get('foo.cats') return '"bob"'
Something odd here

Thanks for having a look, let me know if I can help !

Okay- I can see what is happening.
When we get foo, we find it in local memory context and return its value - {}
When we get foo.cats from local memory context, it returns undefined. But as this is global context we then fall back to the functionGlobalContext seed and find "bob".
The missing piece is that when looking up foo.cats returns null, we don't check whether foo exists in local context before falling back to the seeded data.
Now, the question is whether we can safely change this behaviour.

So another interesting side effect of this:
If I have the following seed:
    functionGlobalContext: {
        foo: {
            hello: 24,
            goodbye: 45
        }
    }

And in a change node attempt to change global.foo.hello, it will make goodbye vanish.
[{"id":"2c6ef18c9a398ad6","type":"inject","z":"87024fb85183e3f9","name":"This updates hello correctly but makes goodbye vanish","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":700,"y":180,"wires":[["52cf107e25b22b9c"]]},{"id":"52cf107e25b22b9c","type":"change","z":"87024fb85183e3f9","name":"","rules":[{"t":"set","p":"foo.hello","pt":"global","to":"200","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1070,"y":180,"wires":[[]]},{"id":"bdcd2886d2e4de9d","type":"comment","z":"87024fb85183e3f9","name":"Seed:         foo: {hello: 24, goodbye: 45}","info":"","x":640,"y":100,"wires":[]}]

Yeah, it's all part of how we try to merge the seeded values from functionGlobalContext into the 'live' context view - without explicitly copying the seed data into the configured context store.
It's going to take quite a bit of work to unpick this safely.

Thanks !


Allow to theme disabled button

The COMMIT button should be black because I have set "button.background": "#000". It's applied correctly as background-color: var(--vscode-button-background); to the .monaco-button. However, because of the disabled class, there's also an opacity: .4!important present as can be seen from the screenshot. This makes it impossible to set to something custom, unless I missed something.
Instead, there should either be a button.disabledBackground or a button.disabledOpacity setting.
Use case: E-Ink screen with dithering pseudo-grayscale. Things are much more readable when everything is pure black and white. Amazingly, I have been able to adjust almost everything accordingly - this whole workbench.Colorcustomizations workflow was implemented very nicely, kudos to the developer(s). This issue is pretty much the only non-cooperating visual from the parts of VSCode that I use. Either way, things would be so much easier if you guys just added custom CSS.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


fixed error handling of concurrent DML stmts on partitions

inserting/updating a single document while partition is deleted resulted into an exception (0 row count expected)
inserting multiple documents (bulk) while partition is deleted resulted into threaded dispatched IndexRequest retries (running in cluster change listener threads) (expected is no operation is ongoing after upsert request finishes)

ack


Sidenav: HuBMAP Apps

Implement HRA version of HuBMAP shared navigation component

Design menu options to pitch tomorrow at CNS UX specs
Redesign every app header to feature this button with shared nav functionality

Resources:

Data Portal: Use nav header button Resources and Apps icon to see menu
HIVE UX-UI Collaboration Spreadsheet: HuBMAP Tools Text & Image Assets

Status update:

Moving all navigation areas to side nav for better mobile responsiveness. This feature will need to seamlessly fold into our existing and new side navs. Thank you @axdanbol for your help with this design!

TO DO
Design updates for nav bars current UIs:

HRA Portal current implementation (mobile side nav in use currently)
Dashboards (mobile side nav in use currently)
Cell Distance Explorer
FTU Explorer

Passing this to Katy today for review on FTU Explorer & Atlas Apps.

Design Review
Passed to @katyb tonight for feedback or approval:

Prototype: HuBMAP Shared Navigation (Side nav overlay)

Text for

is incorrect

Where can I copy the text to make changes without retyping?

@katyb and I edit the text together in the collaborative HIVE UX-UI HuBMAP Tools for Shared Navigation spreadsheet at 1:15pm.
@katyb, is this component approved now? Can you please provide approval in writing here on GitHub?
Shared Nav: HuBMAP Data Portal vs. HRA Portal styles

Design System Repo Canvas: HuBMAP Nav Overlay Menu

All edits have been made. Just waiting on approval. Thanks!

This was approved today! More details coming soon!

Side Nav: HuBMAP Apps

Design System Components: Side Nav: HuBMAP Apps

Building Blocks

Unique menu style:

Background blur
Lowered opacity

#521
#586
#573
Fonts

Title font: Title Large
Section font: Title Medium

Overlay background: #000000 at 48%
Min/max widths to keep it responsive
Perfect matching alignment with the #573 40x40 variant from the menu overlay to the nav header access point

Usage

HuBMAP's HIVE UX/UI Cross Collaboration team has created a menu to connect HuBMAP applications cohesively. This menu is accessed by clicking the apps icon button in our new navigation headers.

Variants

Ready/default
Hover (activate scrollbar when lower content needs room to grow)

Behavior

This organism is responsive to smaller resolutions and should grow as specified with its min/max widths
#521 - Appears on hover, when content needs space to grow/scroll
The bottom part of the menu will always stretch to fill the entire screen height

Figma Interaction Specifications

@axdanbol - Just wanted to bring this issue to your attention today. Happy Friday!!!
I will create a HuBMAP-styled version of this today for implementation on humanatlas.io immediately. This HuBMAP-styled variant will be deprecated after we implementing the redesigned HRA portal sometime in Y3.
I will only be changing the font type to Inter and I will change the font/icon colors probably to a unified #212121. The rest of the component is unchanged!
I will link this HuBMAP variant here when I have it!

Update: I will open a separate issue for the HuBMAP styles app menu for the current humanatlas.io. This component is ready for development in our design system. Thanks!

@LibbyUX . I have created a sidenav demo here. Please review. Thanks

Updated issue here: #766


Mt. Seymour email notification update

Description:
Update the Mt. Seymour email notification.
Acceptance Criteria:

update matches wording here: https://bcgov.sharepoint.com/:w:/r/teams/031072/_layouts/15/Doc.aspx?sourcedoc={1903155C-4272-44B9-9222-37186C1FA116}&file=Mount Seymour Confirmation Page.docx&action=default&mobileredirect=true

Development Checklist:

[ ] ...
[ ] ...
[ ] ...

Dependencies

Blocked by
Blocking

Relevant documentation as reference
Definition of Ready

[ ] Acceptance criteria are included
[ ] Wireframes are included (if applicable)
[ ] Design / Solution is accepted by Product Owner (if applicable)
[ ] Dependencies are identified (technical, business, regulatory/policy)
[ ] Story has been estimated (under 13 pts)

Definition of Done

In progress:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] UI meets accessibility requirements
[ ] Unit tests are written
[ ] Work is traceable in GitHub
[ ] PR linked to ticket number
[ ] If needed/required - Dev adds flag/label to highlight any migration steps necessary prior to PROD deployment

Code review:

[ ] Code is peer reviewed and has passed CI/CD tests

QA:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] Code is potentially shippable to the production environment
[ ] Functional features have been tested and passed by QA
[ ] UI components tested by designer
[ ] Code is deployed to PROD when moved to 'done' column (unless requested otherwise by PO)

PO Review:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] Reviewed and approved by Product Owner

Notes:

@MarshallHenson - does this ticket/issue need to be implemented at the same time as the Mount Seymour messaging?
cc @Dianadec

Let's discuss whether it makes sense to give Seymour its own email notification template. As of right now we have one for trail passes and one for vehicle passes.


Guidance on implementing Authorization (ACL and or RBAC)

Ideally, this plugin could be used to provide authorization, allowing certain OIDC clients to access certain resources. Currently a new ingress has to be created to support this.
This could implemented via a simple ACL or RBAC with OAuth https://auth0.com/docs/authorization/concepts/rbac
As far as I understand, this plugin only focuses on Authentication and does not support authorization.
What is the recomended way of providing authorization? Edit this plugin to support Authorization? Or use it with in conjuntion with another plugin?

It's better to have another plugin. That way, later if this plugin version got updated You can cleanly update on your end.
BTW, we already implemented RBAC plugin with Keycloak (IDP). Actually, it's pretty easy and doable.
Fell free to ask questions, I can help you out.

@mssaiandeep, thanks for your response and eagerness to help!
I'm particularly looking at providing authorisation to services behind Kong rather than the Kong API.
For a simple example: without modifying the code of each service, i'd like to have two tokens, one with scope A, and another with scope B. Scope A should be able to reach to serivce Y and Scope B should be able to reach service X but not the otherway around.
From the ACL, RBAC, and JWT plugins i've seen for Kong it's not clear that they quite fit this criteria.
Can you talk somemore about the plugin you've used, and whether/how it supports the flow i've described above? I assume you're just using Kong's default RBAC plugin?

Hi @mssaisandeep. I just came across the ACL problem now. after using oidc plugin i need to authorize people with keycloak. can you please give an overview guide on how to create this plugin (RBAC plugin with Keycloak (IDP)). It will be very helpful. many thanks

We @ioTium built our own plugin. Basically we use keycloak for Authorization.
Keycloak has a concept called Permissions, Policies and Resources. So we have a plugin which will get all info from keycloak and make decisions whether to allow request or not.
In keycloak there is also a policy validator where you can send id_token and ResourceID to keycloak and it will provide the result whether user has access or not. Based on that you can make decisions.
Instead of decisions per every request we use Ngx cache for quick access.

Soon we are going to open-source that plugin for community usage.

@sandeepmachiraju great! Link it here when it's available.

That is great. please share the link here when you publish. can u please share the endpoint and parameters it requires for policy validator or share a link that explains it. many thanks

@sandeepmachiraju awesome, please share when available.

As @sandeepmachiraju said, keycloak exposes API's to evaluate permissions (see Keycloak Authorization Services Guide
)
If using keycloak you can call its authorization API to make decisions, and is possible do it in conjunction with kong-oidc.

I have found an interesting kong plugin that perform RBAC authentication (see keycloak-rbac). It does not solve all my problems but give me an ideia of how to implement my own.

Hi!
Any news about this? In my case I just want to require a certain role (defined in KeyCloak) to access  a certain service (for example, to access "service1", the role "admin" or "role1" would be needed, and for the service "service2", the role "admin" or "role" would be needed).
I've been taking a loock to keycloak-rbac, but I wasn't able to get it working.
Thanks,
Xoán

Hi!
Any news about this? In my case I just want to require a certain role (defined in KeyCloak) to access a certain service (for example, to access "service1", the role "admin" or "role1" would be needed, and for the service "service2", the role "admin" or "role" would be needed).
I've been taking a loock to keycloak-rbac, but I wasn't able to get it working.
Thanks,
Xoán

@xoancosmed, Have you tried kong-plugin-jwt-keycloak, this one is very well documented and can work together nokia-oidc as explained here https://github.com/gbbirkisson/kong-plugin-jwt-keycloak/issues/7

@canattofilipe Thanks!

@canattofilipe  thanks for suggestion.

Hi!
Any news about this? In my case I just want to require a certain role (defined in KeyCloak) to access a certain service (for example, to access "service1", the role "admin" or "role1" would be needed, and for the service "service2", the role "admin" or "role" would be needed).
I've been taking a loock to keycloak-rbac, but I wasn't able to get it working.
Thanks,
Xoán

@xoancosmed, Have you tried kong-plugin-jwt-keycloak, this one is very well documented and can work together nokia-oidc as explained here gbbirkisson/kong-plugin-jwt-keycloak#7

@xoancosmed  i am also looking for same solution to creat POC :
In my case I just want to require a certain role (defined in KeyCloak) to access a certain service (for example, to access "service1", the role "admin" or "role1" would be needed, and for the service "service2", the role "admin" or "role" would be needed).
anything update so far ? working for you ?

@harsh4870  Not sure, if it suits you, but assuming you can provide granted roles to user in scope of your jwt token claims, you can implement some custom plugin ( as a basic example https://github.com/Voronenko/kong-plugin-sa-jwt-claims-validate  ) after the kong jwt plugin, which would do additional access control

@harsh4870 Not sure, if it suits you, but assuming you can provide granted roles to user in scope of your jwt token claims, you can implement some custom plugin ( as a basic example https://github.com/Voronenko/kong-plugin-sa-jwt-claims-validate ) after the kong jwt plugin, which would do additional access control

@harsh4870 Not sure, if it suits you, but assuming you can provide granted roles to user in scope of your jwt token claims, you can implement some custom plugin ( as a basic example https://github.com/Voronenko/kong-plugin-sa-jwt-claims-validate ) after the kong jwt plugin, which would do additional access control

@Voronenko thanks for suggestion, right now i am using this plugin nokid-oidc it's working well, however, now just looking for a way to authenticating requested based on scope.
so now if i try to implement plugin further as per your suggestion:  https://github.com/Voronenko/kong-plugin-sa-jwt-claims-validate  to compare or check role. i may need to change priority inside kong ? is there anything ?
in your suggested link i didn't found lua rock installation how to add in Dockefile and extend it.
thanks once again for suggestion.

@xoancosmed i am also looking for same solution to creat POC :
In my case I just want to require a certain role (defined in KeyCloak) to access a certain service (for example, to access "service1", the role "admin" or "role1" would be needed, and for the service "service2", the role "admin" or "role" would be needed).
anything update so far ? working for you ?

Hi @harsh4870,
I got it working with the plugin kong-plugin-jwt-keycloak suggested by @canattofilipe. This is how I configured it, but don't trust me at all, I am still working on this:

Dockerfile: I'm using the one from this issue: https://github.com/gbbirkisson/kong-plugin-jwt-keycloak/issues/7#issuecomment-623964792
Docker Compose: I added this environment variable JWT_KEYCLOAK_PRIORITY: "900".
Kong declarative config (I'm using DB-less mode):

- name: test-oidc-service
  url: http://mockbin.org/request
  routes:
  - name: test-oidc-route
    paths:
    - /oidc
  plugins:
  - name: oidc
    config:
      client_id: kong
      client_secret: <your_client_secret>
      discovery: https://<your_keycloak_url>/realms/master/.well-known/openid-configuration
  - name: jwt-keycloak
    config:
      allowed_iss:
      - "https://<your_keycloak_url>/realms/master"
      internal_request_headers:
      - "X-Access-Token"
      client_roles:
      - "kong:ADMIN"

As you can see, I have to say to the jwt-keycloak plugin that it has to look for the JWT token in the "X-Access-Token" header instead of the traditional "Authorization" header. In this case, "ADMIN" is a role I have defined in the KeyCloak client (which I named "kong").
Hope this helps,
Xoán Cosmed

@xoancosmed  Thanks a ton for the suggestion. i am using a kong with Konga-UI dashboard and Postgres let me try and check it out. thanks once again for the quick response.

@harsh4870  In my scenario I had two  approaches  together in one application :  web was is using nokia oidc plugin + I have also server side clients, which use machine to machine authorization scheme. In both scenarios I receive JWT token, but in order to add application specific information to token - m2m requires to define hooks, while for application that los using nokia oidc - I need to define rules.
https://medium.com/@V_Voronenko/microservices-integrating-kong-api-gateway-with-auth0-authentication-provider-6b6a9f27a69a
Mentioned above https://github.com/gbbirkisson/kong-plugin-jwt-keycloak is also very promising, as it was developed specifically to use with keycloak, I was dealing with auth0 mostly.

@xoancosmed  it's not working for me i do not know why. i am running
STEP : 1
export TOKENS=$(curl -s -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=js-console" \
-d "client_secret=0d9ba3a8-36b5-4989-80b8-db9d1063fe87" \
https://keycloak.harshmanvar.tk/auth/realms/demo/protocol/openid-connect/token)

STEP : 2
export ACCESS_TOKEN=$(echo ${TOKENS} | jq -r ".access_token")
STEP : 3
curl -H "x-access-token : Bearer ${ACCESS_TOKEN}" http://js.harshmanvar.tk
Here is my plugin configuration
Image : 1

Image : 2

Image : 3

i have configured both plugin nokia-oidc and keycloack-jwt for curl testing closed nokia-oidc still i am getting unauthorized.
Keycloak setup :

Initially, i have no set any filter or rule in JWT plugin to check it's mostly empty.
if you can please help me out here. i have change the environment variable value from "900" to "10" as read suggestion by someone.

@Voronenko  @xoancosmed  working like a charm thanks a lot for helping me out.

hey im very new in coding and authentification...i want to secure apps with kong and keycloak...the authentication works perfectly but the authorization doesnt. could i do this with these implementation? @xoancosmed where can i find the docker-compose file? @harsh4870 is it working for you? i want to work with konga and postgres too...could you help me to implement the plugin?
Thank you very much !

@Chrenken  Yes authorization working for me with nokia-oidc plugin and for authentication have used jwt-keycloak plugin to restrict user based on role.
Plugin links :

nokia-oidc -  https://github.com/nokia/kong-oidc
JWT keyclok plugin - https://github.com/gbbirkisson/kong-plugin-jwt-keycloak

Docker file for adding both plugin inside Kong : https://github.com/nokia/kong-oidc
Other all steps explained in this comment : https://github.com/nokia/kong-oidc/issues/135#issuecomment-647487795
For connecting kong with Postgres, you can use the official helm chart and update it as per requirement.

@harsh4870 thank you! I will test it soon as possible =)

@harsh4870  Oh is the third link correct? I could not find a docker file there...and maybe could you post or send me your docker-compose file? because i dont know where i have to add these JWT_KEYCLOAK_PRIORITY: "900" variable? thanks

@Chrenken  i am not using docker-compose file, i have deployed everything on k8s demo cluster and just completed demo of authorization and authentication. also, i have updated third link : https://github.com/gbbirkisson/kong-plugin-jwt-keycloak/issues/7#issuecomment-623964792
however, let me know if you want to see the whole demo with keycloak, kong and plugins before i terminate instances. you can please email me, email available in my profile.

Hi! Sorry for the delay.
@Chrenken you have to add JWT_KEYCLOAK_PRIORITY to your environment variables. In case you are using the "docker run" command, just add -e JWT_KEYCLOAK_PRIORITY=900. If you are using Docker Compose like me, you have to add it to the "environment" section of your YAML; here you have my Docker Compose as reference (I'm using DB-less mode, so it's going to be different your you):
version: '3'

services:
  kong:
    container_name: kong
    build: .
    image: kong-oicd
    volumes:
      - "/home/xcosmed/kong/config:/usr/local/kong/declarative"
    environment:
      KONG_DATABASE: "off"
      KONG_DECLARATIVE_CONFIG: "/usr/local/kong/declarative/kong.yml"
      KONG_PROXY_ACCESS_LOG: "/dev/stdout"
      KONG_ADMIN_ACCESS_LOG: "/dev/stdout"
      KONG_PROXY_ERROR_LOG: "/dev/stderr"
      KONG_ADMIN_ERROR_LOG: "/dev/stderr"
      KONG_ADMIN_LISTEN: "<IP_ADDRESS>:8001, <IP_ADDRESS>:8444 ssl"
      KONG_PLUGINS: "oidc,key-auth,jwt-keycloak,bundled,acme,request-transformer"
#      KONG_LOG_LEVEL: "debug"
      JWT_KEYCLOAK_PRIORITY: "900" # <--------------------------- HERE
      KONG_LUA_SSL_TRUSTED_CERTIFICATE: "/etc/ssl/certs/ca-certificates.crt"
    ports:
      - 80:8000
      - 443:8443
      - 8001:8001
      - 8444:8444
    networks:
      - net
    restart: unless-stopped

networks:
  net:
    external: false

If you are using Kuberneted (which I'm going to be using in a near future), add it to the "env" sections of your deployment.

@xoancosmed thank you very much! The Plugins are working!! But could you give me maybe our Keycloak Configuration? Because i always get these message: {"message":"Token issuer not allowed"}.  I create a user and give him the role ADMIN but get these message. So i think the configuration is not correct. Should i create two Clients? Because if the client is public then i cant get the secret.
Thank you for your help!!! Wish you a nice weekend!

@Chrenken If you recieve that message is a good sign, because that means that the plugin is reading the JWT token. You have to be careful about how you define the roles, probably you did it wrong.
Please refer to the screenshot of my comment explaining all the steps (https://github.com/nokia/kong-oidc/issues/135#issuecomment-647487795). In that example,  I defined different roles for each KeyCloak client; I created a role "ADMIN" in my client "kong", that's why I wrote "kong:ADMIN" in the plugin config.
If you want to define global roles instead of client roles (as I did in https://github.com/nokia/kong-oidc/issues/135#issuecomment-647487795), you have to change the plugin config to something like this:
  - name: jwt-keycloak
    config:
      allowed_iss:
      - "https://<your_keycloak_url>/realms/master"
      internal_request_headers:
      - "X-Access-Token"
      roles:
      - "ADMIN"

Similarly, if you want to define realm roles instead of client roles (as I did in https://github.com/nokia/kong-oidc/issues/135#issuecomment-647487795), you have to change the plugin config to something like this:
  - name: jwt-keycloak
    config:
      allowed_iss:
      - "https://<your_keycloak_url>/realms/master"
      internal_request_headers:
      - "X-Access-Token"
      realm_roles:
      - "ADMIN"

Can anyone please help.
i am looking for help on how to setup authentication like Github using Keycloak.
i am using Kong API gateway with keycloak along with OIDC plugin with JWT-keycloak.
As in GitHub we have organization repo and each user has different access in an organization repo (read/write) or i can add a specific user to the organization with only one repository access.
i think Github manage this by forming URL
https://github.com/org-name/username/reponame and restricting user at API gateway level if no access there.
can someone please help me with how to achieve it using the same with keyclaok and kong API gateway.

Hi @harsh4870 sorry for the delay. For that purpose I think you should create your own plugin, as this behavior is very specific, or manage this in your services instead of in the api gw. As a base for your plugin you could use an existing one, like the jwt-keycloak, and add your own code for requesting the owners of the resource and check if your user meets the requirements.

i am trying curl request to check service but when the plugin is on i am getting 302 found when plugin is not enabled getting response. i am also passing token in header.
please let me know if i am missing anything
RESULT=curl -k --data "grant_type=client_credentials&client_id=kong&client_secret=023a0212-0953-44b9-9f8f-422c77968db2" https://keycloak.harshmanvar.tk/auth/realms/master/protocol/openid-connect/token
TOKEN=echo $RESULT | sed 's/.*access_token":"\([^"]*\).*/\1/'
echo $RESULT
curl -X GET "https://nginx.harshmanvar.tk"
-H "Accept: application/json"
-H "Authorization: Bearer $TKN"

I think the problem is that Nokia's kong-idc plugin sets some cookies, and with curl your are not sending those. Probably the 302 response you receive is a redirection to the login endpoint of your keycloak.

no, i just resolved 302 issue by using two clients one is confidential and another public working like charm now. thanks again for your reply.

@harsh4870 wrote:

@Chrenken Yes authorization working for me with nokia-oidc plugin and for authentication have used jwt-keycloak plugin to restrict user based on role.
Plugin links :

nokia-oidc -  https://github.com/nokia/kong-oidc
JWT keyclok plugin - https://github.com/gbbirkisson/kong-plugin-jwt-keycloak

Docker file for adding both plugin inside Kong : gbbirkisson/kong-plugin-jwt-keycloak#7 (comment)
Other all steps explained in this comment : #135 (comment)
For connecting kong with Postgres, you can use the official helm chart and update it as per requirement.

Hi @harsh4870 I appreciate you taking the time to share this, but I wanted to warn people to read that "Docker file for adding both plugin inside Kong" closely. It's not using the main nokia-oidc or kong-plugin-jwt-keycloak plugins: it's using forks of both. The nokia-oidc fork bumps the version of a dependency, and the kong-plugin-jwt-keycloak fork fork adds the new internal_request_header option. For my team this is a maintenance concern, so I wanted to highlight it for others following along.


Link Payment Providers to apps

Right now, all payment providers are visible in all apps that have the rogerthat-payment embedded app. We must be able to configure this. Eg. Payment Provider Payconiq should only be visible in all Belgian city apps. And Payment Provider ThreeFold should only be visible in the ThreeFold app.
I propose to add an array of regexes to the PaymentProvider model. If any regex matches, then that payment provider is visible in that app.
Feel free to propose a different solution if you think of one.

The other way around is to just configure payment providers for every app, or even add all by default to every app, and enable excluding any of them later?

For now, the wallet won't be visible in the city app. And the existing TF wallet will be replaced with one that uses another backend.


Simplified runner, demo refactor

Also a bit of Nix refactoring, enabled warnings (which calls for one more pass thru code I'll probably do as well as next PR).
Regarding
  case hasStdin of
    True -> Control.Monad.forever $ Control.Concurrent.threadDelay<PHONE_NUMBER>

it indeed isn't a problem when running as a service and I would say mostly useful for testing.

It seems this breaks on older versions of base because <> needs to be imported explicitly?

Oh, yes sorry - I've only tested with GHC8.10.
As per optparse-applicative README
import Data.Semigroup ((<>))

will fix!

If you want hackage upload permissions, I'll need your hackage username. Not sure if you have one yet..

Thanks for the invite! I don't mind - would still prefer to go thru pull requests for second pair of eyes but increasing bus factor is always a good idea. My hackage profile is https://hackage.haskell.org/user/srk
Which GHC versions would you like to support?
I've realized that using non-default haskell.packages.ghc8101 is not the greatest idea when contributing new code due to possible breakage for older and the default set so I'll test with these as well. Most of the time I contribute fixes for "unstable" one so using that as my systems default.
I'm working on a CI for Nix projects and ircbot is one of the integral parts of it now so it will get lots of testing, hopefully the CI can test itself at some point and act as CI for the projects it is built upon.


Refactor the printing of memory usage statistics

Make the internal heap and pools memory usage statistics APIs more
similar: how the print functions are named, where they are
implemented, and which parts of them are guarded by MEM_STATS.
Also, adapt unit tests to the changes.
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss<EMAIL_ADDRESS>

LGTM

Updated to use a single printf for each stat print.

LGTM


Error on recursive dryrun

I have a massive set of JPGs that I was hoping to utilize this project on. It has all the stuff I am likely to need: (EXIF data, templated directory/file rename, preview of changes, etc.)
So I installed the app via NPM and installed it globally, then tried:
exif-renamer imagesDirectory/ -d -r
I was hoping for a listing of all the included renames so that I could start crafting a renaming template.
Unfortunately, what I got was:
/volume1/@appstore/Node.js/usr/lib/node_modules/exif-renamer/node_modules/q/q.js:126
                    throw e;
                          ^
TypeError: boolean is not a function
    at /volume1/@appstore/Node.js/usr/lib/node_modules/exif-renamer/lib/exif-renamer.js:272:13
    at _fulfilled (/volume1/@appstore/Node.js/usr/lib/node_modules/exif-renamer/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/volume1/@appstore/Node.js/usr/lib/node_modules/exif-renamer/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/volume1/@appstore/Node.js/usr/lib/node_modules/exif-renamer/node_modules/q/q.js:749:13)
    at /volume1/@appstore/Node.js/usr/lib/node_modules/exif-renamer/node_modules/q/q.js:509:49
    at flush (/volume1/@appstore/Node.js/usr/lib/node_modules/exif-renamer/node_modules/q/q.js:108:17)
    at process._tickDomainCallback (node.js:463:13)
    at Function.Module.runMain (module.js:499:11)
    at startup (node.js:119:16)
    at node.js:906:3

Looks like the callback is failing on the completion of the recursive promises...somehow its getting a bad callback? getting passed a boolean instead of a function?

Hi, thanks for raising an issue - I'll try to take a look at it in the next few days.

I've just pushed v0.6.1 which fixes this issue. Let me know how you get on.

That got me past the initial error, but now I have further problems. That said, it very well could be the way the box is set up...and the data involved. I am getting a date parse error now, but i am pretty sure that is my exif data. This problem appears to be solved. Thanks for your time!

Hey, I think this might be an issue with the exif library I am using - when I first wrote this it was the best available, but maybe I need to look around again. Can you provide the stacktrace of the error?


TypeError: list indices must be integers or slices, not float

TypeError                                 Traceback (most recent call last)
 in ()
----> 1 kdtree = build_kdtree(points)
 in build_kdtree(points, depth)
10
11     return {
---> 12         'point': sorted_points[n / 2],
13         'left': build_kdtree(sorted_points[:n / 2], depth + 1),
14         'right': build_kdtree(sorted_points[n/2 + 1:], depth + 1)
TypeError: list indices must be integers or slices, not float

Hi! Apparently the code is written in Python 2, where / is integer division (where 4 / 3 = 1), but you're running it with Python 3 where / is floating-point division (where 4 / 3 = 1.3333333).
Luckily, there is a non-ambiguous operator // which performs integer division in both Python 2 and 3. Use it instead of /, and maybe even submit a pull request here so noone else has to deal with that problem ever again.

@Minoru thanks~


Shadowing between hard-coded and custom verbs

As said in #9

If open is a hard coded verb used to open exits using keys, what if I want to make a chest and confer it a custom verb called open?

I assigned this to milestone 2 since fixing this it is required for testing the new feratures.

I assigned this to milestone 2 since fixing this it is required for testing the new feratures.

I forgot to fix this so let's put it back at phase 2.5

I forgot to fix this so let's put it back at phase 2.5


Design attacking animation for melee enemy

Description
Task: Design attacking animation for melee enemy.
Feature: Enemies (#3)
Design attacking animation for melee enemy.
Dependencies

[x] Needs design of melee enemy done before creating attacking animation (#8)

Milestones

[x] Design attacking animation for melee enemy.

Completion Deadline: Aug. 28
Member

Name (GitHub Username) (Slack Handle)
e.g. Richard (@AppleByter) (Richard Thomas)

This task has been completed.


[BUGFIX] client url path

fix #9154
Required for all non-trivial PRs

[ ] Rebased/mergable
[x] Tests pass
[ ] CHANGELOG.md updated
[x] Sign CLA (if not already signed)

@e-dard can you take a look?

@genofire also,  have you signed the CLA? We need you to sign that before we can merge this.


Read file in "feather" format by command "View"

There is a command "View" in R Studio that allows read data file, for example, by clicking it in the "Files" tab. It will be very cool to have the same command or plug-in for R Studio to read files in "feather" format.

Do you want to request this in the RStudio IDE?

Yes, thank you. I did it
https://community.rstudio.com/t/read-file-in-feather-format-by-command-view/37114
Hope it will be useful.


Release 0.0.0a12

Codecov Report

Merging #83 into master will increase coverage by 0.09%.
The diff coverage is 77.77%.

@@            Coverage Diff             @@
##           master      #83      +/-   ##
==========================================
+ Coverage   59.93%   60.03%   +0.09%
==========================================
  Files           5        5
  Lines         609      603       -6
  Branches      129      128       -1
==========================================
- Hits          365      362       -3
+ Misses        220      217       -3
  Partials       24       24

Impacted Files
Coverage Δ

petab/version.py
100% <100%> (ø)
:arrow_up:

petab/lint.py
40.54% <50%> (-0.64%)
:arrow_down:

petab/core.py
73.24% <83.33%> (+0.63%)
:arrow_up:

Continue to review full report at Codecov.

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


HTTPS traffic doesn't intercept and just tunnled

Hey All,
I tried to connect my iPhone to mitmproxy and i didn't see any HTTPS traffic.
I configure the mitmproxy to be proxy server of my iPhone.
When i used transparent mode, i got the error: "Unexpected CONNECT request."
and when i tried to open the mitmproxy in regular mode then i didn't see traffic HTTPS traffic.
This is what i see:
<IP_ADDRESS>:53623: clientdisconnect
<IP_ADDRESS>:53624: clientconnect
<IP_ADDRESS>:53624: clientdisconnect
<IP_ADDRESS>:53626: clientconnect
<IP_ADDRESS>:53626: clientdisconnect
<IP_ADDRESS>:53629: clientconnect
<IP_ADDRESS>:53629: clientdisconnect
<IP_ADDRESS>:53630: clientconnect
<IP_ADDRESS>:53630: clientdisconnect
Thanks! :)

Second issue: I confiure WIFI Hotspot from my computer and i connected my iphone for him.
And i ran the mitmproxy in transparent mode and i got the error: "Client Handshake failed. The client may not trust the proxy's certificate for".
Importent: I confiugred in my iPhone SSL Kill Switch 2.
In addition, if i connect the Burp Suite then its works.
I dont know what am i miss ?

'ssl_bytes_to_cipher_list', 'inappropriate fallback')

This indicates you have a TLS version mismatch somwhere. If you use the latest version of mitmproxy you should be fine.

I have the same issue
my network is:
app on android-->wifi proxy(my mac pc ip address) --> my mac pc running mitmproxy--> app server
mitmproxy --version
Mitmproxy: 11.0.0.dev (+11, commit 9f8b2e2)
Python:    3.11.6
OpenSSL:   OpenSSL 3.1.3 19 Sep 2023
Platform:  macOS-14.0-x86_64-i386-64bit

I have the same issue my network is:
app on android-->wifi proxy(my mac pc ip address) --> my mac pc running mitmproxy--> app server
mitmproxy --version Mitmproxy: 11.0.0.dev (+11, commit 9f8b2e2) Python: 3.11.6 OpenSSL: OpenSSL 3.1.3 19 Sep 2023 Platform: macOS-14.0-x86_64-i386-64bit

the browser work fine on my andriod device and I have installed the ca file by visit mitm.it


Migrate tracking codes to the new format

Please wait before merging this: I'm improving it a bit

Done, ready to be merged


feat: malibu stacey and bill and ted easter eggs

Addresses #28
With thanks to @KathyReid :)

Visually LGTM, have not tested.
@KathyReid, could you please clarify which license you meant for the original to bear? It still seems to be carrying the "delete 2/3 of this" template of yore. I assume MIT or Apache, because this dates from after the "feh copylefted Python" eureka, but we need to specify which, so that...
@mikejgray ^ that done, please amend LICENSE to reflect that the skill is released under the Apache license 2.0, but portions derive from, list the parents and their licenses, credit the authors (Kathy in this case.) Then a break, then the full text of the license as it currently looks

@KathyReid Bump - I'd love to incorporate your Malibu Stacey work into this skill, but as Chance said, we want to make sure we get the correct licensing information.

Hi @KathyReid, I'm sure you're busy. When you get a chance would you please share the original intent for the Malibu Stacey skill license? Thank you!

Hey @mikejgray, firstly apologies for the radio silence, deep in PhD land. I'm totally open to whatever licence works best for OpenVoiceOS, however the bigger issue I see here is the licensing of the Malibu Stacey content itself - I took it from the internet somewhere, but I don't think it is open licensed. Can we claim fair use here? Not sure? And also not sure if that applies to jurisdictions outside of the United States.
Best, Kathy

@KathyReid No worries whatsoever! Thank you for responding. We'll stick with the Apache 2.0 license on the rest of the skill then. As for fair use...I'm not a lawyer, but I definitely see your point. I replaced the licensed sounds with some TTS-generated sounds instead (Nabu Casa cloud TTS, American English, Sara Neural). That should be less of an issue, I would imagine.


DASK_CONFIG dictates config write location

Previously existing configuration files could be specified by
DASK_CONFIG, but projects like distributed would always write the
default configuration file to ~/.config/dask/. We now make the write
location configurable as well. This is important in environments where
~/.config may not exist of be writable.

cc @mrocklin

I opted for dask.config.PATH. Putting it in dask.config.config felt wrong, since the location of the configuration files feels different than the information in the configuration files. That path is needed before any configurations are loaded, and the location of the configuration files shouldn't be changeable from inside the configuration files.

Makes sense to me.
Another concern, it is currently possible to set DASK_CONFIG to the path of a particular yaml file
export DASK_CONFIG=/path/to/my-config.yaml

In this case what happens when downstream libraries try to write their config files somewhere?  Do they overwrite the existing file?  Do they write in the same location?  Do they err?  Do they issue a warning and then do nothing (possibly my preference)?

When does writing to the config file happen (we use this environment variable)?

In cases like this:
https://github.com/dask/distributed/blob/master/distributed/config.py#L17
If the file doesn't exist then we write a commented out verison of the file
to the specified config directory
On Mon, Jun 18, 2018 at 10:14 AM, jakirkham<EMAIL_ADDRESS>wrote:

When does writing to the config file happen (we use this environment
variable)?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/3621#issuecomment-398068645, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszPTs8ZqP8bF8dJJtUe0rzX85londks5t97XdgaJpZM4UqIYH
.

Should have clarified, was meaning if it already exists? ;)

You should take a look at ensure_file:
https://github.com/dask/dask/blob/4b2454cb44b30f33ff1b5ae7a10d907430961e72/dask/config.py#L160
It only saves the file if it doesn't already exist
On Mon, Jun 18, 2018 at 10:34 AM, jakirkham<EMAIL_ADDRESS>wrote:

Should have clarified, was meaning if it already exists? ;)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/3621#issuecomment-398075457, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszJncLfBIdkzWr4vRmx3ZdyHKlGRVks5t97pugaJpZM4UqIYH
.

Another concern, it is currently possible to set DASK_CONFIG to the path of a particular yaml file

Why is this allowed? It seems to me that this behavior should be prohibited if the intent is to have a directory of dask configuration files.

Currently they're just silently not written, which seems to me to be fine. From what I understand, the goal of ensure_file is to write the default configuration files if none exist for that library. In the case of DASK_CONFIG being a directory, this only happens if e.g. kubernetes.yaml already exists in that directory. In the case of it being a file, I'd say this would never work in the case of multiple dask libraries using configuration files, and should either error (my preference, forbid file paths for DASK_CONFIG), or just continue the existing current behavior.

Why is this allowed?

Currently it's because it's convenient, though this could change.
In practice when deploying a cluster it is common to send along a single config file with all the changes you want to make.  It's somewhat simpler to specify this file rather than construct a directory to hold this file.

Perhaps instead we should change when files are written by downstream projects? Not sure what that would look like either. Personally, I don't think libraries should ever implicitly write configuration files, but rather keep the defaults in the library, and look for overrides in the files (if found).
My main goal here is to fix an issue where loading distributed fails on yarn, since the default configuration location isn't writable. Currently I have to monkeypatch around this or the import fails.

Ideally it shouldn't fail if the default configuration location isn't
writable.  That's a bug regardless.
Hrm, I thought that we had wrapped that whole thing in a
try-except:Exception block.  Looks like we didn't.
On Mon, Jun 18, 2018 at 9:03 PM, Jim Crist<EMAIL_ADDRESS>wrote:

Perhaps instead we should change when files are written by downstream
projects? Not sure what that would look like either. Personally, I don't
think libraries should ever implicitly write configuration files, but
rather keep the defaults in the library, and look for overrides in the
files (if found).
My main goal here is to fix an issue where loading distributed fails on
yarn, since the default configuration location isn't writable. Currently I
have to monkeypatch around this or the import fails.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/3621#issuecomment-398241559, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszDUOblFDDmGy15hIx4NmbTNU-KTrks5t-E3fgaJpZM4UqIYH
.

The reason to write a commented out file is to give new users something to easily edit without having to go find the right config file.  This seems to be common-ish practice.  Jupyter does it, for example.

Jupyter does it, for example.

Does it? AFAICT, it only does this if asked to, not on import. http://jupyter-notebook.readthedocs.io/en/stable/config.html
(dask) jcrist dask $ jupyter --config-dir
/Users/jcrist/.jupyter
(dask) jcrist dask $ ls ~/.jupyter
ls: /Users/jcrist/.jupyter: No such file or directory
(dask) jcrist dask $ python -c "import jupyter"
(dask) jcrist dask $ ls ~/.jupyter
ls: /Users/jcrist/.jupyter: No such file or directory
(dask) jcrist dask $ jupyter notebook --generate-config
Writing default config to: /Users/jcrist/.jupyter/jupyter_notebook_config.py
(dask) jcrist dask $ ls ~/.jupyter
jupyter_notebook_config.py

Yes, sorry.  I should have said "Jupyter provides a commented out config
file" rather than imply that it does it on import.  What would you
recommend for the Dask subprojects?  I get that you don't like writing on
import.  What would you suggest?  I think that it's a bit harder for us
because we have many smaller subprojects.  Dask.distributed did
write-on-import and, except for working through bugs like you're hitting
now, it has generally been really pleasant.  Users seem to use the
configuration options pretty happily and don't need much guidance.
On Mon, Jun 18, 2018 at 9:14 PM, Jim Crist<EMAIL_ADDRESS>wrote:

Jupyter does it, for example.
Does it? AFAICT, it only does this if asked to, not on import.
http://jupyter-notebook.readthedocs.io/en/stable/config.html
(dask) jcrist dask $ jupyter --config-dir
/Users/jcrist/.jupyter
(dask) jcrist dask $ ls ~/.jupyter
ls: /Users/jcrist/.jupyter: No such file or directory
(dask) jcrist dask $ python -c "import jupyter"
(dask) jcrist dask $ ls ~/.jupyter
ls: /Users/jcrist/.jupyter: No such file or directory
(dask) jcrist dask $ jupyter notebook --generate-config
Writing default config to: /Users/jcrist/.jupyter/jupyter_notebook_config.py
(dask) jcrist dask $ ls ~/.jupyter
jupyter_notebook_config.py
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/3621#issuecomment-398243312, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszBQ8CcnUS7WipPYr6Y-S5OxwXSEhks5t-FCHgaJpZM4UqIYH
.

The number of issues or stack overflow questions that end happily with "Add
the following line to your config file, probably at ~/.dask/config.yaml"
without further questions was decently high (or at least seems subjectively
high to me now, without looking through things to back that statement up)
On Mon, Jun 18, 2018 at 9:17 PM, Matthew Rocklin<EMAIL_ADDRESS>wrote:

Yes, sorry.  I should have said "Jupyter provides a commented out config
file" rather than imply that it does it on import.  What would you
recommend for the Dask subprojects?  I get that you don't like writing on
import.  What would you suggest?  I think that it's a bit harder for us
because we have many smaller subprojects.  Dask.distributed did
write-on-import and, except for working through bugs like you're hitting
now, it has generally been really pleasant.  Users seem to use the
configuration options pretty happily and don't need much guidance.
On Mon, Jun 18, 2018 at 9:14 PM, Jim Crist<EMAIL_ADDRESS>wrote:

Jupyter does it, for example.
Does it? AFAICT, it only does this if asked to, not on import.
http://jupyter-notebook.readthedocs.io/en/stable/config.html
(dask) jcrist dask $ jupyter --config-dir
/Users/jcrist/.jupyter
(dask) jcrist dask $ ls ~/.jupyter
ls: /Users/jcrist/.jupyter: No such file or directory
(dask) jcrist dask $ python -c "import jupyter"
(dask) jcrist dask $ ls ~/.jupyter
ls: /Users/jcrist/.jupyter: No such file or directory
(dask) jcrist dask $ jupyter notebook --generate-config
Writing default config to: /Users/jcrist/.jupyter/jupyter_notebook_config.py
(dask) jcrist dask $ ls ~/.jupyter
jupyter_notebook_config.py
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/3621#issuecomment-398243312, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszBQ8CcnUS7WipPYr6Y-S5OxwXSEhks5t-FCHgaJpZM4UqIYH
.

I suppose in the case of non-commandline tools, writing on import (and silently failing) may be acceptable. If we had nice tie-in with all dask sub-projects that might use the configuration system, I'd suggest the following:
# Write the kubernetes configuration commented out file
# Error if file already exists. Could add a `--force` flag to override.
dask config generate -n kubernetes -o /path/to/dask/config/directory/

In the case without nice cli, we'd either need to standardize on a top-level-function in the library namespace (mildly unpleasant), or continue with write on import. In that case I'd be fine with the following:

If a library doesn't already have a configuration file in the location of DASK_CONFIG, try to write it on import, and silently fail. Since nothing should rely on the automatic writing (the file is commented out after all), this should be fine.
If DASK_CONFIG points to a file path, never try to write on import. The path is pointing to a file of user overrides. Global overrides should be configured by a higher-level administrator and placed in one of the common directories.

The above seems reasonable to me, and I'd be fine implementing the missing bits here. Thoughts?

Agreed on both points.  I think that the distributed library actually used to implement the first part of that.  It was an unfortunate oversight not to copy it over.

This looks good to me.  +1

Thanks for cleaning this up @jcrist


[KOGITO-222] - Export Infinispan authentication options

See:
https://issues.jboss.org/browse/KOGITO-222
Related PR:
https://github.com/kiegroup/kogito-runtimes/pull/142
In this PR we introduce a way to have infinispan authentication system properties imported via env vars. These vars will be set by the Kogito Operator.
Working image for tests:
quay.io/ricardozanini/kogito-data-index:latest

Includes both PRs.

@mswiderski @spolti could you kindly review this PR?

@spolti could you kindly review the changes?

@spolti I guess I covered the most topics we've talked. At least the basic use case is covered and the image could react against common/minor mistakes.
But at the end, this image will be used with the Operator and there those vars will be enforced.
Thanks for all the tips :heart:

@mswiderski could you take a look?


Suggestion to produce a warning when attempting to use old 'useRender'

Hey,
I fiddled around for a while this evening having used your (awesome) library in the past.
Turns out I was using the deprecated 'useRender' with a new version rather than what I should now be using: 'useFrame'. A lot of the demos on the git page still use 'useRender', perhaps a warning could be thrown to anyone attempting to use this?
Failing that, if warnings can't be shared before webpack does its thing... Maybe going through the process of updating each demo on the home page?

I looked in whatsnew.md when upgrading and wasn't sure why my app broke, it wasn't clear to me that useRender was gone until I found this issue too. Created https://github.com/react-spring/react-three-fiber/pull/296


(extreme wip) webpack/babel pipeline + demo component

Description
TODO: Link to a JIRA ticket if one has been created for this feature/issue.
Use the following format for a link: [FEDX-100](https://openedx.atlassian.net/browse/FEDX-100)
TODO: Include a detailed description of the changes in the body of the PR.
TODO: If relevant, provide a URL to updated Pattern Library documentation.
Manual Test Plan
TODO: If your changes require manual tests, include instructions for any required manual tests, and any manual testing that has already been performed.
Testing Checklist

[ ] Write unit tests for all new features.
[ ] Write accessibility (a11y) tests for all new UI.
[ ] Manually test responsive behavior.

Non-testing Checklist

[ ] Consider any documentation your change might need, and which users will be affected by this change.
[ ] Consult with the Pattern Library team if adding a new component.

Post-review

[ ] Squash commits into discrete sets of changes with descriptive commit messages.

Reviewers
TODO: In this section, tag specific reviewers you know will want to have a look at this PR. You can use the checklist below for organization:

[ ] @mention a reviewer here
[ ] @mention a reviewer here

TODO: Consider not just code reviewers but also including reviewers from Docs, UX, Accessibility and Product, if applicable.
If you've been tagged for review, please check your corresponding box once you've given the :+1:.
We'll also automatically suggest reviewers for this PR based on the code it touches.

Coverage remained the same at 98.848% when pulling ca653a1582a516dfabbfc02c00b6051699c9be48 on ari/babel-webpack-react into 18639838d2e311d7369579743b6970ab6aaf9020 on master.

Coverage remained the same at 98.848% when pulling 9255c146f1c6f604bce080c198a55d25e55de2d6 on ari/babel-webpack-react into 18639838d2e311d7369579743b6970ab6aaf9020 on master.


Improved external dialog to no longer extend onto other monitors

Describe the changes you have made to improve this project

Added a check for window state in CreateModalExternalWindow

Added a border offset to take in account the overhang on both sides of the window when maximized causing a dialog to extend outside of the screen bounds.

Unit test
None
Additional context
None
Closed Issues
#3538

Few things.

With the way i currently do it i calculates the offset always, this could still be changed to only get calulated on Maximized state, any preference?

SetupExternalDialogWindow seems to maximize at all times, i wasnt sure if it required the change as well and thus has been left out, a minor issue with the current setup is when a user has monitors with different resolutions the PrimaryScreenWidth might not fit.

Changed the check regardless, might be less pretty to look at, but it's not worth creating an offset each time when most of the time it's not used anyways.

@punker76 or @timunie   The CreateModalExternalWindow has been fixed and seems to be working.
For the SetupExternalDialogWindow i can't really find a proper way of doing it. The only ways i could come up with us by using Screen but would require Windows.Forms which i think is a bad idea, or you end up having to wrap around pinvoke and do it that way, which doesnt seem great either.
So the only options im further left with is.

leave it as is, SystemParameters.PrimaryScreen(Width/Height) will be set, and if a user has a smaller secondary screen you will have the overlap onto the other monitor (or the oppositeif the screen is bigger).

Add optional parameters to the method that allows for custom sizes, or if left empty just use the SystemParameters.PrimaryScreen(Width/Height) .

option 2 would not persé fix the issue but would offer more flexibility at the least.
Any input would be appreciated

@AKruimink I have a solution for it and will check in later.

@AKruimink your changes have been merged, thanks for your contribution 👍


Create and Implement button to compare branch with master

Decribed in more detail from comment:
https://github.com/unfoldingWord/tc-create-app/issues/61#issuecomment-583087467
Steps

Move current "delete action" link to whole chip link for Source File (left).
Change "delete action" icon to something new.
Change "delete action" link to https://git.door43.org/OWNER/REPO/compare/USER_BRANCH...master.
Only make "delete action" link work if Edit/Branch workflow is used.

Got this error when I tried to compare my branch.

Looks good in Beta-10.


Define basic governance practices for this repository

We currently have some guidelines and principles for merging PRs in our contributing guide, but we have no formal definition of how decisions get made in this repository. In practice, we've roughly followed a lazy-consensus seeking approach with "merge" decisions made by one of our contributors.
However there is value in defining a slightly more formal process for decisions that are more strategic, controversial, complex, etc. Things that aren't easily encapsulated in a single tightly-scoped PR. An example of this might be the recent decision to overhaul our design system, or decision to give team members admin rights on the repository (e.g. https://github.com/pydata/pydata-sphinx-theme/issues/1453).
Suggestion
I suggest that we define a "steering committee" of maintainers that must seek consensus for a subset of topics that are particularly complex (e.g., defining repository policy in the future). We should also define a process to follow if there is not consensus. This group should have "admin" rights on the repository, and generally be tasked with overseeing its overall goals, strategy, and policy.
I don't think it should be anything too complicated, but give enough of a framework to navigate complex or controversial decisions, and to make it clear who needs to be consulted, who has the decision authority, etc.
I spoke briefly with @jarrodmillman who had some thoughts here too, but would like to hear what others think as well.

How would this "steering committee" be held and where conversations should be taking place?
I'm not really aware of how things work in the open-source community and I don't know if it should be written anywhere, if we should use a specific chat etc ...

How would this "steering committee" be held and where conversations should be taking place? I'm not really aware of how things work in the open-source community and I don't know if it should be written anywhere, if we should use a specific chat etc ...

Whatever we decide as a governance structure should get written down and become part of our public docs.
What chat tool we use is up to us, as is meeting frequency, etc

I'd like to float the idea that maybe there should be representatives from major theme users (np, sp, mpl, pandas, etc) on the steering committee. I can see pros and cons: certain packages become "privileged" theme users with both more control and more responsibility. How to pick that list is obviously a hard question. Thoughts?

I think the idea of "community representation" is an interesting one to explore. I'd suggest more like an "advisory group" that gets extra attention from the maintainers here, rather than a "governing group" that has formal decision making power. I feel that decision power should rest with the maintainers of the repository (and follow standard open source practices)
That said, I'd recommend putting off the more complex governing structures for later. For now I just mean basically language like the following:

The steering council of this repository oversees the major strategic direction of the project, its codebase, and the system of work around it.
Steering council members have "administrative" status on the repository.
Steering council members make decisions with lazy consensus, and act in good faith to bring in the perspectives of others when it is needed. (aka, don't act unilaterally without consultation if you think that your plan might be disagreeable to somebody)
If the steering council can't arrive at a consensus, act according to a majority vote.
New members are added to the steering council when one steerco member makes a case for why they should be added, and the team votes on it.
Steering council members may step down whenever they wish, and may re-assume steerco status whenever they wish.
If the vote is tied, then [either give tie-breaking authority to one person OR round up / down on the vote] (I think we don't necessarily have to define this one now).

And then one other lightweight thing like:

The repository's maintainers are those who commit to overseeing the repository and moving it forward.
Maintainers have "maintainer" privileges in GitHub (writte/commit privileges etc)
Any steering council member can appoint anybody else to be a "maintainer" of the repository.

You might need to add other stuff (like how to remove steerco / maintainer members if necessary) but those are probably not critical to begin with...

That seems like a great starting place. One quibble:

You might need to add other stuff (like how to remove steerco / maintainer members if necessary) but those are probably not critical to begin with...

I would push for adding this part now. As with a code of conduct, if/when this is ever needed it will already be too late to add it at that time.

Fair point - in that case how about

To formally remove any maintainer or steering council member, or to ban a GitHub user from participating in this repository, a 2/3 vote of the steering council is required. This decision must come with a rationale explaining the need for this decision and a vote from all steering council members. Anyone removed from the project will lose their "emeritus status" and any benefits that come with it (like the ability to be re-instated when they wish).


feat(backstage-plugin-argo-cd-backend): support application in any namespace.

Closes https://github.com/RoadieHQ/roadie-backstage-plugins/issues/1222.

:heavy_check_mark: Checklist

[ ] Added tests for new functionality and regression tests for bug fixes
[x] Added changeset (run yarn changeset in the root)
[ ] Screenshots of before and after attached (for UI changes)
[ ] Added or updated documentation (if applicable)

@Xantier
https://github.com/RoadieHQ/roadie-backstage-plugins/actions/runs/7540603375/job/20525553890
The above action seems to have failed.
Is there anything I should do?


Write Unit tests for API and Database functions

Description:
-Write unit tests for /update_cell endpoint.
-Test database operations (e.g., queries, dependency updates).
-Validate Redis streams using test data.
Acceptance Criteria:
-Coverage report shows >90% code coverage.
-All tests pass.

I have added unit test cases for mainapi, duckdbmanager, redis and the test cases are added in the repo. Test cases passed without failure. for coverage, it is still not >90. as the data file and redis listener file aren't added yet. few lines are missed out the existing pytest files due to some conflicts with the other cases.


Can't test antd component when imported as es6 module

🐛 Bug Report
Can't test projects which use Ant Design components by importing them as es6 modules.
To Reproduce
1 - Clone the repository.
2 - type 'yarn test' in the command line to execute jest tests
3- See that the antd test fails and the test without antd component passes.
Expected behavior
I expect the jest to import the antd component like any other module and execute the tests on it.
Link to repl or repo (highly encouraged)
https://github.com/hakankaraduman/antdtesterror
Issues without a reproduction link are likely to stall.
Run npx envinfo --preset jest
Paste the results here:
System:
OS: Windows 10
CPU: x64 Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
Binaries:
Yarn: 1.5.1 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
npm: 6.0.0 - C:\Program Files\nodejs\npm.CMD

Here's the error:

This indicates that you're not configured correctly, so without more information this isn't a bug report but a question on how to configure the project correctly
If you're still having trouble configuring Jest, we recommend using our discord channel or StackOverflow where there is an active jestjs tag for questions


Implemented basic support for Xiaomi power plugs.

TODO: extend further. Inspiration: https://github.com/rytilahti/python-miio/blob/master/miio/chuangmi_plug.py#L13-L31

Thanks. Do not have devices to verify it works, but seems like good approach.


Unused variable warning for types with guards

It seems that referencing a custom type that has a guard clause results in an unused variable compiler warning. A stripped down example:
@type! some_type :: value :: any() when is_binary(value)

@spec! some_fun(some_type()) :: binary()
def some_fun(value) do
  value
end

The resulting warning...
warning: variable "some_type" is unused (if the variable is not meant to be used, prefix it with an underscore)

This seems to have been introduced in 0.2.1 as I'm not seeing the warnings in 0.2.0.

Okay, I saw the release notes on ElixirForum, but thought that was all part of the wrap_with_gen PR.
I now see #24 with a description of usage. I don't get the compiler warning when referencing the type name directly in the guard now. The syntax also feels more natural.
However, it does appear that the warning still occurs when the type name is not referenced in the guard. The example in the docs does result in a warning...
@type! sorted_pair :: {lower :: number(), higher :: number()} when lower <= higher

Thank you for this bug report. I am fairly certain that the problem lies in the type-checking code that the type guard generates, because here all named types are filled as variables so they can be used in the guard.
https://github.com/Qqwy/elixir-type_check/blob/master/lib/type_check/builtin/guarded.ex#L68
I think the proper approach here is to disable the warnings by setting generated: true at the appropriate location of the AST that is being built.

@baldwindavid Does this still happen in the current version of the library?

Just updated to 0.3.1 and the warning still seems to appear.


牛逼老马

牛逼老马

Please close this issue and move to:
https://github.com/xai-org/grok-1/discussions
Reason:
Not a real issue
#69
#108

666

我对你的赞美之词表示赞同


InvalidOperationException while declaring miltiple clients

Describe the issue or request
After upgrading to Cadl 0.38.0,
Unhandled exception. System.InvalidOperationException: Declaration already initialized
   at AutoRest.CSharp.Generation.Writers.CodeWriterDeclaration.SetActualName(String actualName)

 Is thrown while using csharp emitter.

Cadl code: https://github.com/Azure/azure-rest-api-specs-pr/tree/asaflevi/feature/health-decision-support-cadl/specification/cognitiveservices/data-plane/HealthDecisionSupport/cadl
HealthDecisionSupport service is a health service that is hosting multiple clinical decision models.
We would like to have SDK client for each model.
Currently two models are supported, TrialMatcher and OncoPhenotype .

The root cause is related the convenience method generation. The lifecycle of 'DefaultRequestContext' is not correct.

Already fix in the latest code, so close.


Bug: Loading an index.usearch throws an exception in C#

Describe the bug
Bug: In C#, it works well but there is a major glitch. First time it runs on 10k embeddings and indexes. Now, the indexed file is saved to a location. After this when I load the file using the UsearchIndex("file path"). Until here it works well. The file is also loading perfectly. However, now when I do a search operation, it throws an exception saying "External component has thrown an exception".
Note: Tried in console, MCV C#.
Steps to reproduce
Load an already saved indexed file and try search. It throws an exception.
Expected behavior
No exception.
USearch version
2.9.0
Operating System
Windows 11
Hardware architecture
x86
Which interface are you using?
Other bindings
Contact Details
No response
Is there an existing issue for this?

[X] I have searched the existing issues

Code of Conduct

[X] I agree to follow this project's Code of Conduct

:tada: This issue has been resolved in version 2.9.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

Thank you for the quick fix.


Enum members need to be PascalCased

Currently, we leave enum names in place, resulting in awkward enum names such as:
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ServiceMonitorEndpointsMetricRelabelingsAction {
    replace,
    keep,
    drop,
    hashmod,
    labelmap,
    labeldrop,
    labelkeep,
}

that will generate warnings:
349 |     labelmap,
    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Labelmap`

we can rename these properties in the same way we rename members, but we need to use heck::ToPascalCase instead with the same #[serde(rename = "original_name")] procedure.
Flag choices
We have a -z aka --snake-case flag for renaming currently (included under -A).
We could add another -p aka --pascal-case or something similar (and include it under -A), but it sounds like it would be mutually exclusive with -z.
So think we probably should scrap the current flag and make a flag for "rust conventional casings" which means snake_case for struct members, and PascalCase for enum members.
Not sure what that flag should be named though. -r for rust casing? -c for case-rename?

Have gone for maintaining the current flag -z but renaming the long form to --rust-case to avoid breaking.


test: fix flaky test case test_node_eviction_multiple_volume

test: fix flaky test case test_node_eviction_multiple_volume
by avoiding checking replica running status of an auto-detached volume
For https://github.com/longhorn/longhorn/issues/5475
Signed-off-by: Yang Chiu<EMAIL_ADDRESS>

@PhanLe1010 Do we cover volume auto attach detach in AD controller? If no, we should include this.

@Mergifyio backport v1.4.x

@yangchiu So this did not happen in 1.3? I think it should right?

Just checked. It happens in v1.3.x too.
It's not mentioned in the ticket because I didn't actively check v1.3.x. I mainly focus on v1.4.x and compare it to master to see if any backport is forgotten.

No problem. 1.3 owner is @roger-ryao .
@Mergifyio backport v1.3.x

@Mergifyio backport v1.3.x


update k8s dep

Let's see if this pleases the godep gods.

Can one of the admins verify this patch?

ok to test

OK, I think I may have figured it out, let's see...

OK, this time I updated only the bare minimum. Let's see if this one works. (it passes tests this time...)

Looks like this one is going to pass. Although jenkins can't run the boilerplate checker for some reason?

LGTM, thanks @lavalamp!

hm, integration test failed... @vmarmol do you know why?

I'll run integration locally and see if that works?

I think the integration test is broken because we moved addons into the kube-system namespace.

Running again with kube-system namespace.

Fixing a bug in the integration test...

I just fixed integration tests in #431, so let's run them again.

retest this please

retest this please

@cadvisorJenkinsBot: retest this please

retest this please

The last jenkins job succeeded. Should we merge?

Yes.
On Fri, Jul 31, 2015 at 2:57 PM, Daniel Martí<EMAIL_ADDRESS>wrote:

The last jenkins job succeeded. Should we merge?
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/heapster/pull/389#issuecomment-126822683
.


Update Fresco version in the docs

Following the Fresco update in the upcoming version, I have updated the version of fresco in the docs.
Related issue: https://github.com/facebook/react-native/pull/18496

Oops, Fresco update is not included in RN 0.55. I'll move this to the next version.


android-apt plugin is not compatible with Android Gradle

There is a issue when running ./geadlew clean build
android-apt plugin is incompatible with the Android Gradle plugin.  Please use 'annotationProcessor' configuration instead.

I'm using Android studio 3.5 beta and gradle v5.4.1.

I noticed that there is a similar problem at https://github.com/DigitalCampus/oppia-mobile-android. Perhaps we can refer to https://github.com/DigitalCampus/oppia-mobile-android/issues/643 to find more context about the bug (e.g. the Android Gradle Plugin version).
Or maybe this can help us find the cause of the bug (android-apt plugin is no longer needed since android gradle plugin 3.0.0) and fix it. After referring to that issue, I tried building using Android Gradle Plugin 2.2.2 and Gradle version 3.2.1, i.e., the original version listed in the project's build.gradle file and gradle-wrapper.properties file. The project builds successfully.

This error happened a long time ago and I don't remember in witch project has happened. so I think we can close this issue since android-opt is not needed from gradle version 3.0.0.


Fix bool monoids

This follows one of @seibert suggestions of casting the result back to bool.  I think the final solution makes sense, but it was an adventure of surprises to get there.  Score one for persistence.

I explicitly cast bool inputs to bool now as well.  Shall we merge?
This revealed that np.reciprocal(False) behaves differently for numpy(=0) and numba (=1).  File this under "won't fix" in numba.


chore(packages): ncu update

[ ] rebuild without cache

Deploy preview ready!
Built with commit 661cd07869d77d63767fd6bc35b492335aa61474
https://deploy-preview-315--mcs-lite-introduction.netlify.com

Deploy preview ready!
Built with commit 661cd07869d77d63767fd6bc35b492335aa61474
https://deploy-preview-315--mcs-lite-mobile-web.netlify.com

Deploy preview ready!
Built with commit 661cd07869d77d63767fd6bc35b492335aa61474
https://deploy-preview-315--mcs-lite-ui.netlify.com

Deploy preview ready!
Built with commit 0886eb574805a0058965cb363fceb8db0cfeaa58
https://deploy-preview-315--mcs-lite-introduction.netlify.com

Deploy preview ready!
Built with commit 0886eb574805a0058965cb363fceb8db0cfeaa58
https://deploy-preview-315--mcs-lite-ui.netlify.com

Deploy preview ready!
Built with commit 0886eb574805a0058965cb363fceb8db0cfeaa58
https://deploy-preview-315--mcs-lite-mobile-web.netlify.com


uncomment AxonTools::verify_mpt_proof after Axon's bug fixed

Summary of Bug

relate issues: https://github.com/axonweb3/axon/issues/1260

Version

Steps to Reproduce

Acceptance Criteria

For Admin Use

[x] Not duplicate issue
[x] Appropriate labels applied
[x] Appropriate milestone (priority) applied
[x] Appropriate contributors tagged
[x] Contributor assigned/self-assigned

use https://github.com/axonweb3/axon/blob/main/core/executor/src/utils.rs#L51 to convert


@Slf4j doesn't work if class has an org field

@Slf4j
class Foo {
    private Org org;
}

This produces a compiler error "non-static variable org cannot be referenced from a static context". It makes sense; the = org.slf4j.LoggerFactory.getLogger(... is ambiguous. Is there any way to make @Slf4j work?

BTW, you are likely to run into this same problem if you import both org.example.foo.Bar and com.example.moo.Bar and needs to reference somewhere in your code the org.example.foo.Bar class - You'd have no way to do that! This is a handicap in the java language that uses the same notation for two completely different concepts. Don't know what could be done in lombok to solve this issue without creating some other issue somewhere else.

I didn't find any.
so, had to replace @Slf4j with direct private static final Logger log: stackoverflow

Actually you might maybe get away with just adding the missing import to make this compile.

There is a problem in the java language where using fully qualified names and the presence of a field with a name that is the same as the first part of the fully qualified names gives a compiler error.
Also, in our generated we use fully qualified names for several important reasons:

To prevent collisions with local types
To prevent collisions with imported types
We can suppress warning on generated fields and methonds, not on imports
It is easier to code and maintain. We don't have to add code in two different locations, or check for the existence of the import or a wildcard variant of it


IsGeolocationAvailable and IsGeolocationEnabled returns false on Android when no permission is granted

Bug Information
Version Number of Plugin: 4.0.1
Simulator Tested On: Visual Studio Emulator for Android
Version of VS: 15.3
Version of Xamarin: <IP_ADDRESS>9 (Android SDK: <IP_ADDRESS>)
Versions of other things you are using:
Steps to reproduce the Behavior
In an Android app, call CrossGeoLocator.Current.IsGeolocationAvailable and CrossGeoLocator.Current.IsGeolocationEnabled without first asking for Location permission.
Expected Behavior
Return true when geolocation is available on the device and enabled.
Actual Behavior
Both returns false until permission is asked and granted.
The result is that it seems to be impossible to reliably determine if positioning is disabled on the device, since determining this requires first being granted the Location permission.

This is the current expected behavior, it is the only way to actually query the providers for gps.

Just to be 100% sure - are the following correct?

If Location permission (form CrossPermission) is not Granted, there is no way to find out whether or not GPS is disabled
Only if Location permission is Granted, it actually makes sense to check IsGeolocationAvailable and IsGeolocationEnabled

In it's current implementation yes.
I am working on a new implementation that uses the fused locator and someone has suggested some new code to check the enabled state or not. https://github.com/jamesmontemagno/GeolocatorPlugin/blob/android-fused/src/Geolocator.Plugin.Android/GeolocationUtils.cs#L22
This code does seem to be able to be run without permissions though.
Best is to always check permissions first before calling anything.

Thanks for the tip, that's what I'm currently doing.
Btw, I think the documentation could benefit from mentioning this expected behavior of IsGeolocationAvailable and IsGeolocationEnabled.

i will update it :)