Death squads against weak enemies

Many times a siege ends with a devastated enemy castle and broken walls but the lord still barely alive. In such cases a troop of 20 soldiers would easily suffice to kill him.
But the AI does nothing and gathers the whole siege army again, while the enemy recovers.
So it would be nice when the AI could notice very weak opponents and send out killer units only for the lord.
Maybe the raid units could be redirected in such a case to attack the lord, in my experiende the don't ever do that now.
Maybe a small incomplete siege army could attack earlier as normal.
It would also be very effective to redirect all raid and sorty units to the enemies keep when the siege units have broken the walls.
That would enhance the success of attacks a lot.

I can't see how you can implement this without waaaay too much effort.

The AI actually does this something like this already. If an enemy is considered 'weak' their attack force will have the size of their very first attack in a round. The 'weak' threshold is just probably very low.


Where could be displayed BREAD description

Laravel Version: 5.5.22
Voyager Version: 1.0.10
PHP Version: 7.2.0
Database Driver & Version: MySQL 5.7

Description:
Uh...Sorry for such a silly question.
Steps To Reproduce:

Go to /admin/database/xxx/bread/edit

I can't see where it displayed....

All of these fields would be used within Voyager, not intended to be used in your app outside Voyager.  With that said, a number of the fields are legacy from the original version, and may not actually be used anymore.  I can't say for certain off the top of my head whether this field is used, but if you're going to look, you'll be looking for the description field on a DataType object


Internal: GH Workflow for Alpha Release

Adding a GH prerelease action to publish an alpha

try PR comment /deploy

Closing, because it seems tokens do not work correctly from forks


Change workflow to match Sec_scanner_config with new release version

Description
Updated to match the image in new sec_scanner_config and make releasing easier
Related issue(s)
https://github.com/kyma-project/keda-manager/issues/287

/test pre-serverless-operator-build

/retest

/retest

/retest

/test pre-serverless-operator-build


Inconsistent variable name "word2index" in pre-processing notebook

Hi, I was trying to pre-process the raw zhihu data and found an unknown variable vocabulary_word2index  which I believe should be the word2index dict we built above.

hey，friend, I meet the same problem. Did you have solve it? Thank you

+1

+1

Hey, can you guys see this question please. and if you know someone on SO do tag them there.


ServiceAccount of task are always overriden by TaskRun

Expected Behavior
Given a Task that uses a serviceAccount and a TaskRun that doesn't, the BuildSpec will contains no serviceaccount (and thus uses the default one). The TaskRun always override the serviceAccount defined in the Task
Actual Behavior
Given a Task that uses a serviceAccount and a TaskRun that doesn't, the BuildSpec should contains the Task serviceAccount instead of none/default.
Steps to Reproduce the Problem

Create a sample task with a serviceAccountName
Create a taskrun with no serviceAccount that refers this Task
Look at the build/pod spec, the serviceAccount is the default one

Additional Info
/kind bug
/assign

Discovered that while working on a follow-up for https://github.com/knative/build-pipeline/pull/285 (adding tests on it)

Thanks for writing this up AND fixing it @vdemeester :D


Starting another copy of application creates a new application process but does not produce additional window

Describe the bug
Starting another copy of application creates a new application process but does not produce additional window
To Reproduce

Started 2nd version of application
Verified two versions running in tray
Attempted to bring up second window on separate page
Partial windows created "incomplete" unable to change settings

Expected behavior
Expected to be able to create a second window with separate settings be on another set of pages

The app is designed to only be running one at a time. See #7 I would like to add additional surface support in the future


Deprecating WithinOpenWhisk flag

Closes #791

@beemarie Can you confirm that you no longer need to pass in arguments via a JSON structure when running 'wskdeploy' as an action.

@mrutkows based on the exec command from package deploy, wskdeploy is running with:
command = `printf 'y' | ${__dirname}/../../wskdeploy -v -m ${manifestFileName} --auth ${wskAuth} --apihost ${wskApiHost}`;

Such as:
printf 'y' | /nodejsAction/SNbFbbD4/lib/../../wskdeploy -v -m manifest.yaml --auth <my-auth> --apihost https://<IP_ADDRESS>:443",

@beemarie please confirm.

@pritidesai @mrutkows The code priti posted is how wskdeploy is being called from the deploy package.  The environment data (cloudant db, cloudant username, etc) is stored as execOptions for the exec command.  I don't know how that gets translated into the actual command, if it all?
https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
Is it possible for you to test the deploy package with your change so we can be sure?

@beemarie exec deals with the set of env. variables specified in execOptions, its nothing to do with wskdeploy. Its more about injecting those env. variables (cloudant username etc) into env. where wskdeploy is being called:
exec env CLOUDANT_USERNAME=myusername /nodejsAction/SNbFbbD4/lib/../../wskdeploy -v -m manifest.yaml --auth <my-auth> --apihost https://<IP_ADDRESS>:443",


Add docstring for Cross Attention block in BridgeFormer

Signed-off-by: Jael Gu<EMAIL_ADDRESS>

/lgtm
/approve


A couple of doco changes to Raspi setup

Prepare the Raspberry Pi - [Video]

Download the latest version of Raspbian from here. I recommend the Lite version as I prefer headless installations, but the full version works as well.
Burn Raspbian to your SD card using these instructions.
WiFi now, thus preventing having to find an ethernet cable
Plug the SD card into your Raspberry Pi, connect the Pi to ethernet (if you did not configure WiFi), and plug in power, screen and keyboard.
Locate the IP address for your Raspberry Pi This can generally be done by executing arp -a | grep raspberry however you can also locate your Raspberry Pi by logging into your router and looking for the device. You will need the IP address to log in to Putty
NEW - Enable SSH on your Raspberry Pi by writing an empty file named "ssh" to the root of the SD card. If you enable SSH you wont need your Keyboard and screen anymore because you will be able to log into it with a program like Putty.
Optional, NEW - Configure WiFi - See the note below if you want to configure Update the Raspberry Pi software by running sudo apt-get update and sudo apt-get upgrade. This can take a long time depending on your internet connection as it has to go and get the updates and then install them.
Run raspi-config and configure the Pi. At a minimum, expand the filesystem (option 1).
Update the default password for the pi user using passwd
Optional - Configure WiFi on your Raspberry Pi (if needed)

Apologies -- What changed here?

Sorry not a lot. Just added bits to remind a noob like me. just new to GitHub so working out best way to help out. I can resend later with changes highlighted.

Oh, no worries at all!
If you want, you should be able to edit the documentation directly. You'll want to edit the docs that are in this path:
https://github.com/thorrak/fermentrack/tree/master/docs_mkdocs/docs
The docs that are in the regular /docs path are what gets generated semi-automatically via the link above. To edit the documents you can tinker with git on your local computer, or potentially use the built-in editor GitHub provides. To use that, go to the document you want to edit, click the "pencil" icon in the upper right corner of the file, and make the changes you want to make.
You'll need to then commit those changes -- GitHub should give you instructions on how to do so at the bottom of the edited page.
Alternatively, feel free to send edits either here, through GitHub's issue system, or on HBT. Happy to take all the help we can get!


Demonstrate cocoapods integration

The cocoapods integration should be very similar to prebuilt binaries. The exception would be around the Xcode integration that Cocoapods depends.
We would need to evaluate to know if the presence of the dependency project in Xcode is required for development or only for building. In the even the Cocoapod Xcode project are only useful to the developer for code browsing, then we should consider aligning with the same concept for other types of dependencies.

Hello @lacasseio:
Can you elaborate a bit more on what you mentioned?
I am trying to find information about how to generate a gradle build from a pod. Usually, pods are hosted on a repository, with a podspec file at root level. Seems like what needs to be done is to generate a source dependency gradle build from a podspec file. Is this supported? Is there any plugin supporting it?
Thanks!

With the current feature set of Gradle, it should be possible to consume or even produce compatible Cocoapod modules. It would require quite a bit of work but we would prefer demonstrating how it looks with the current feature sets before heading toward adding extra feature to Gradle. There may be features that not only Cocoapod integration could benefit from which is where we would rather focus our energy. We can work together to create such demonstration which you could then use in your projects if you want.

I see, thanks for the answer. I am not familiar with gradle, just started looking into it as an alternative to buck and bazel.
Would it be possible for you to provide some information about how you think the current set of features can be used to consume a pod? I am having difficulties understanding which of the current plugins/rules are the ones to be used for this.

The main concept here is to "expose" the binaries you need from Cocoapod to Gradle together with the how to build/download them to Gradle. Gradle's dependency engine is the key for the integration. You can see an example of how the native plugins use the dependency engine inside the build-wrapper-plugin inside the gradle/native-samples repository.
What would most likely have to be done is creating a plugin that would have a minimum configuration to tell what Cocoapod module you want. Then, the plugin could create the tasks required to pull the module via pods by writing a custom Podfile then it could build the Xcode workspace via xcodebuild and then expose the binaries through the dependency engine. Another project using C++ or Swift plugins for example, would have to declare a dependency on the project via normal dependency configuration. The end result would look a bit like the build-wrapper-plugin which can be a good starting point.


QnA service version is not getting updated after appservice restart

I have restarted the app service associated with my QnA maker, but i do not see the version getting updated and i see runtime unavailable when i try to access the knowledge base of my QnA maker. Any help on this will be appreciated. Thanks!

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

ID: c0f27190-1b0b-1a3d-fbe5-d5b13af7a1f6
Version Independent ID: ba2dcb15-3168-635f-1271-e4e4f6dfbc8a
Content: Troubleshooting - QnAMaker - Azure Cognitive Services
Content Source: articles/cognitive-services/QnAMaker/How-To/troubleshooting-runtime.md
Service: cognitive-services
Sub-service: qna-maker
GitHub Login: @diberry
Microsoft Alias: diberry

Thanks for the feedback! We are currently investigating and will update you shortly.

#please-close


[agent] Running agent for sufitient amount of time cause Gossip error

Setup

Agent running in the foreground
Labs joins space that agent created
Labs debug plugin creates mutation each 500 ms

cc @nferch


Missing Documentation for RemoveUpdateOperation

Not seeing this operation works on bulkupdate. Do we have example for implementation.

I see that it does work when the array is of a simple type like int eg: [0,1,2], but it does not work for an array of complex type like object or [{"key":"value"}]


Error when starting latest / 0.5.12 (no vin.model)

I get this when firing up a container from the docker-compose file when specifying :latest or :0.5.12 tag. :0.5.10 works for me.
2024-02-02 09:38:41,768 [  INFO  ] [CONNECTION MADE] - gmqtt.mqtt.protocol
2024-02-02 09:38:41,769 [  INFO  ] Connected to MQTT broker - mqtt_publisher
2024-02-02 09:38:41,769 [  INFO  ] [SEND SUB] 1 [b'saic/MY_EMAIL/vehicles/+/+/+/set'] - gmqtt.mqtt.package
2024-02-02 09:38:41,769 [  INFO  ] [SEND SUB] 2 [b'saic/MY_EMAIL/vehicles/+/+/+/+/set'] - gmqtt.mqtt.package
2024-02-02 09:38:41,770 [  INFO  ] [SEND SUB] 3 [b'saic/MY_EMAIL/vehicles/+/refresh/mode/set'] - gmqtt.mqtt.package
2024-02-02 09:38:41,770 [  INFO  ] [SEND SUB] 4 [b'saic/MY_EMAIL/vehicles/+/refresh/period/+/set'] - gmqtt.mqtt.package
2024-02-02 09:38:41,783 [  INFO  ] Scheduler started - apscheduler.scheduler
2024-02-02 09:38:41,783 [  INFO  ] Logging in to SAIC API - __main__
2024-02-02 09:38:41,794 [  INFO  ] [SUBACK] 1 (0,) - gmqtt
2024-02-02 09:38:41,794 [  INFO  ] [SUBACK] 2 (0,) - gmqtt
2024-02-02 09:38:41,795 [  INFO  ] [SUBACK] 3 (0,) - gmqtt
2024-02-02 09:38:41,795 [  INFO  ] [SUBACK] 4 (0,) - gmqtt
2024-02-02 09:38:42,214 [  INFO  ] Logged in as MY_EMAIL - __main__
2024-02-02 09:38:42,214 [  INFO  ] Fetching vehicle list - __main__
2024-02-02 09:38:42,515 [  INFO  ] Registering for ['ALARM_TYPE_VEHICLE_FAULT', 'ALARM_TYPE_GEOFENCE', 'ALARM_TYPE_VEHICLE_START'] messages. vin=MY_VIN - __main__
Traceback (most recent call last):
  File "/usr/src/app/./mqtt_gateway.py", line 855, in <module>
    asyncio.run(mqtt_gateway.run(), debug=debug_log_enabled())
  File "/usr/local/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 684, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/src/app/./mqtt_gateway.py", line 426, in run
    vehicle_state = VehicleState(
                    ^^^^^^^^^^^^^
  File "/usr/src/app/vehicle.py", line 56, in __init__
    self.model = str(vin.model).strip().upper()
                     ^^^^^^^^^
AttributeError: 'VinInfo' object has no attribute 'model'
2024-02-02 09:38:42,580 [ ERROR  ] Task was destroyed but it is pending!
task: <Task pending name='Task-1' coro=<Client._resend_qos_messages() running at /usr/local/lib/python3.12/site-packages/gmqtt/client.py:176>> - asyncio
sys:1: RuntimeWarning: coroutine 'Client._resend_qos_messages' was never awaited

Car is a 2022 MG4 Trophy.

Fixed in 0.5.13, building right now

Confirmed 0.5.13 starts up, but:
Traceback (most recent call last):
  File "/usr/src/app/./mqtt_gateway.py", line 92, in handle_vehicle
    charge_status = await self.update_charge_status()
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/./mqtt_gateway.py", line 133, in update_charge_status
    self.vehicle_state.handle_charge_status(charge_mgmt_data)
  File "/usr/src/app/vehicle.py", line 562, in handle_charge_status
    real_total_battery_capacity = self.get_actual_battery_capacity()
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/vehicle.py", line 746, in get_actual_battery_capacity
    if self.model.startsWith('EH32 X3'):
       ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'startsWith'. Did you mean: 'startswith'?

..... Fixing.... did I mention already that I hate python?

The second line will never get reached:
        elif self.series.startswith('EH32 S'):
            if self.model.startswith('EH32 X3'):

Let's try 0.5.14

Both errors fixed. Thanks :+1:


fix: add filtering to a group chat invite members

Details

For the last couple of months we were migrating searchable lists from using searchText property , which was not a performant solution, to filtering based on options properties. Recently we migrated the last list that was still using searchText property for searching, so we removed generating it for search options, which allowed to speed up creating options by around 40%.
During migration, we accidentally skipped InviteReportParticipantsPage component, so once searchText property was removed from options, it was not possible to use search in this page. This PR brings filtering to the option list the same way it works on the other searchable pages.
Fixed Issues

$ https://github.com/Expensify/App/issues/46972
PROPOSAL:
Tests

Go to FAB and create a new chat
Add at least two members to a group chat
Press the newly created chat title and go to Members
Go to Invite members
Check any of the options on the list
Type something in search that matches the item from the list
Verify it appears on the list
Type an email address in a search that does not belong to any account and verify it appears
Verify you can select it and add to group chat selection
Type some random string
Verify "no results found" is displayed

[x] Verify that no errors appear in the JS console

Offline tests

n/a
QA Steps

Go to FAB and create a new chat
Add at least two members to a group chat
Press the newly created chat title and go to Members
Go to Invite members
Check any of the options on the list
Type something in search that matches the item from the list
Verify it appears on the list
Type an email address in a search that does not belong to any account and verify it appears
Verify you can select it and add to group chat selection
Type some random string
Verify "no results found" is displayed

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/19fc2e2b-3693-4018-ac26-73ec337c08ee

Android: mWeb Chrome
https://github.com/user-attachments/assets/a439f5fd-6d52-4d1c-9029-966963995375

iOS: Native
https://github.com/user-attachments/assets/99d7eaca-9df4-483d-87e9-d1a39c5d27d7

iOS: mWeb Safari
https://github.com/user-attachments/assets/edf093e7-4d3b-4e68-8688-ff778e826e6a

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/539955bd-5865-4938-966c-c998f746ac5d

MacOS: Desktop
https://github.com/user-attachments/assets/55946bd6-c64f-42b4-9800-4671622e97d6

@hoangzinh done!

Oh there are some conflicts

@marcochavezf resolved ✅

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/marcochavezf in version: 9.0.20-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

FYI I believe this was deployed to prod yesterday, from this checklist - #47356


Runs to fast for a free infura account

Running it at its current speed will use up a free 100k requests infura account in a few hours.

This is known, optimizing it to work with Infura would require a bit more than adding a sleep after each iteration.
I will address this by batching calls using multicall and adding an optional sleep interval.


List pre-releases and stable releases separately in the Version History tab

If you look at https://marketplace.visualstudio.com/items?itemName=ms-python.python , you will see the last five releases which can be the last 5 pre-releases thanks to a daily pre-releases. This unfortunately makes it hard to download the latest stable release or older stable releases as they are drowned out within a week a of release.
Having at least the last stable release available to download would be great. Having more than one stable release to download is a bonus. Having a paginated listing of all releases would also cover this.

@brettcannon this makes sense. My feeling is that this will only be done as part of the Marketplace redesign which should hopefully come some time next year.
Assigning to @prashantvc since he has more details. Thanks

closing this issue as we are tracking in https://github.com/microsoft/vsmarketplace/issues/264


Account info

Similar to our old bot, we share some of our account info for leeching sharing purposes.
Of course make this secure. Have the info stored locally as a json and loaded in. Challenge will be formatting since message text is dynamically created instead of statically. Also for security, can only be used on specific servers

Added basic functionality, still need to improve and add drop down options

Need to make it so that only the author can access button


Remove PackageTargetFallback

Without these PackageTargetFallbacks things fail. We'll need to examine this more before we're able to get rid of them. Closing.


Cannot constrain size of randsz_list_t using an unsigned variable that is wider than 16 bits.

@mballance,
I am constraining the size of a random-size list using a variable.  If the variable happens to be wider than 16 bits then PyVSC throws a confusing error that does not make the root cause clear to a test writer.  Shrinking the variable width to 16 bits or less fixes the problem.  I suggest either fixing this limitation or making the error more explanatory.  I am using PyVSC version 0.6.3.
The example code below illustrates the error.
import vsc

@vsc.randobj
class Selector:
    def __init__(self):
        # Because maxListSize is a uint32_t, which is wider than 16 bits,
        # using it to constrain the size of a list will throw an error.
        self.maxListSize = vsc.uint32_t(10)

        self.aList = vsc.randsz_list_t(vsc.uint32_t())

    @vsc.constraint
    def list_c(self):
        self.aList.size >= 1
        self.aList.size <= self.maxListSize

selector = Selector()
selector.randomize()

aStr = "A:"
for a in selector.aList:
    aStr += "\t" + str(a)
print(aStr)

Traceback (most recent call last):
  File "/data/cf/sshot/u/mcgrathm/silicon-validation/experiment/pyvsc/constrDebug11.py", line 19, in <module>
    selector.randomize()
  File "/data/cf/sshot/u/mcgrathm/silicon-validation/.venv/lib64/python3.6/site-packages/vsc/rand_obj.py", line 168, in randomize
    solve_fail_debug=solve_fail_debug)
  File "/data/cf/sshot/u/mcgrathm/silicon-validation/.venv/lib64/python3.6/site-packages/vsc/model/randomizer.py", line 837, in do_randomize
    fm, bounds_v.bound_m))
  File "/data/cf/sshot/u/mcgrathm/silicon-validation/.venv/lib64/python3.6/site-packages/vsc/visitors/array_constraint_builder.py", line 47, in build
    m.accept(builder)
  File "/data/cf/sshot/u/mcgrathm/silicon-validation/.venv/lib64/python3.6/site-packages/vsc/model/field_composite_model.py", line 154, in accept
    v.visit_composite_field(self)
  File "/data/cf/sshot/u/mcgrathm/silicon-validation/.venv/lib64/python3.6/site-packages/vsc/model/model_visitor.py", line 64, in visit_composite_field
    fi.accept(self)
  File "/data/cf/sshot/u/mcgrathm/silicon-validation/.venv/lib64/python3.6/site-packages/vsc/model/field_array_model.py", line 197, in accept
    v.visit_field_scalar_array(self)
  File "/data/cf/sshot/u/mcgrathm/silicon-validation/.venv/lib64/python3.6/site-packages/vsc/visitors/array_constraint_builder.py", line 156, in visit_field_scalar_array
    raise Exception("Max size for array " + f.name + " (" + str(max_size) + " exceeds 100000")
Exception: Max size for array aList<PHONE_NUMBER> exceeds 100000

As the code comment indicates, setting maxListSize to vsc.uint32_t(10) causes the problem.  Using the type vsc.bit_t(17, 10) causes a similar problem with a slightly different error message, while the types vsc.uint16_t(10) and vsc.bit_t(16, 10) work as expected.
I can workaround the error while keeping the original variable width by changing my constraint to use the inside operator rather than >= and <= operators, as shown below:
    @vsc.constraint
    def list_c(self):
        self.aList.size.inside(vsc.rangelist(vsc.rng(1, self.maxListSize)))

However, this workaround might not be applicable in all tests.

@msmftc,
Interesting... I would expect the result to be driven by the literal assigned to the maxListSize variable, and not the width. Thanks for sharing the testcase, I'll have a look.


Code about Nucleus Segmentation

Hi, very nice job!
Could I reference the code about nucleus segmentation mentioned in your NM article? I can't find it in this repository.
Thanks.

Hi, I'm sorry for the late reply.
The code mentioned in the article is this but I would recommend using StarDist.
Its pre-trained model 2D_versatile_fluo works better and is more flexible to various image data than our hardcoded algorithm.

Thank you very much for your help. I'll try it. ^_^


Fix load balancer readiness checks when running inside a container.

I encountered the issues reported in #109. However, because I am running the system on macOS, using the --network host option when launching the "cloud-provider-kind" container doesn't work. Use of the "kind" defined network is required in order for the "cloud-provider-kind" container to successfully communicate with the Kind Kubernetes controller (i.e. internal must be true - I suspect that the comment is incorrect, internal == false is tried first…):
11:24:12.042101       1 app.go:41] FLAG: --enable-log-dumping="false"
11:24:12.042161       1 app.go:41] FLAG: --logs-dir=""
11:24:12.042168       1 app.go:41] FLAG: --v="2"
11:24:12.266173       1 controller.go:166] probe HTTP address https://<IP_ADDRESS>:51518
11:24:12.266644       1 controller.go:169] Failed to connect to HTTP address https://<IP_ADDRESS>:51518: Get "https://<IP_ADDRESS>:51518": dial tcp <IP_ADDRESS>:51518: connect: connection refused
11:24:12.266711       1 controller.go:166] probe HTTP address https://<IP_ADDRESS>:51518
11:24:12.267021       1 controller.go:169] Failed to connect to HTTP address https://<IP_ADDRESS>:51518: Get "https://<IP_ADDRESS>:51518": dial tcp <IP_ADDRESS>:51518: connect: connection refused
11:24:13.270465       1 controller.go:166] probe HTTP address https://<IP_ADDRESS>:51518
11:24:13.271440       1 controller.go:169] Failed to connect to HTTP address https://<IP_ADDRESS>:51518: Get "https://<IP_ADDRESS>:51518": dial tcp <IP_ADDRESS>:51518: connect: connection refused
11:24:15.272618       1 controller.go:166] probe HTTP address https://<IP_ADDRESS>:51518
11:24:15.273070       1 controller.go:169] Failed to connect to HTTP address https://<IP_ADDRESS>:51518: Get "https://<IP_ADDRESS>:51518": dial tcp <IP_ADDRESS>:51518: connect: connection refused
11:24:18.275251       1 controller.go:166] probe HTTP address https://<IP_ADDRESS>:51518
11:24:18.275680       1 controller.go:169] Failed to connect to HTTP address https://<IP_ADDRESS>:51518: Get "https://<IP_ADDRESS>:51518": dial tcp <IP_ADDRESS>:51518: connect: connection refused
11:24:22.276154       1 controller.go:151] Failed to connect to apiserver kind: <nil>
11:24:22.370267       1 controller.go:166] probe HTTP address https://kind-control-plane:6443
11:24:22.376355       1 controller.go:83] Creating new cloud provider for cluster kind
11:24:22.382101       1 controller.go:90] Starting cloud controller for cluster kind

The proposed changes seek to identify if/when the system is executing within a container. There doesn't appear to be a great universal way of achieving this, so I went with defining a container environment variable within the Dockerfile, inspired by systemd's Container Interface specification. An alternative approach might be to pass a command-line flag, but plumbing such a value through to where it's required seemed non-trivial. I also found it necessary to enable the tunnelManager implementation for the case where the system is running on Linux within a container.

if you run in mac, and cloud provider kind is running in a container inside the VM ... are you still be able to connect to the exposed ports from the loadbalancer?

Yes, via the tunnelManager implementation…
For example; I've defined a Cilium Gateway bound to port 14000, which I am able to access from the host (i.e. my Mac) via the port mapped by Docker (i.e. <IP_ADDRESS>:32774->14000/tcp):
% curl http://localhost:32774/

% docker ps
CONTAINER ID   IMAGE                      COMMAND                  CREATED              STATUS              PORTS                                                                                NAMES
9af2817a1f63   envoyproxy/envoy:v1.30.1   "/docker-entrypoint.…"   22 seconds ago       Up 22 seconds       <IP_ADDRESS>:32773->10000/tcp, :::32773->10000/tcp, <IP_ADDRESS>:32774->14000/tcp, :::32774->14000/tcp   kindccm-S4I65OVHZT6XWEPYZ7W72XP3U3LZGKGKFNJHMLZH
ca8be8fc03c5   cloud-provider-kind        "/bin/cloud-provider…"   About a minute ago   Up About a minute   2375-2376/tcp                                                                                cloud-provider-kind

I presume that this is the intended behaviour?
I wish to run "cloud-provider-kind" in a container so that I can use:
% docker container run --detach --restart=always --network 'kind' --volume '/var/run/docker.sock:/var/run/docker.sock' --name 'cloud-provider-kind' 'cloud-provider-kind'

and largely forget about it (i.e. have the "cloud-provider-kind" container automagically restart, just like the Kind node container[s] do, whenever I restart my Mac and/or the Linux VM running the Docker daemon); so all I need worry about is working out the port mapping that Docker has created for the Envoy proxy container backing the load balancer.

Ok, it took me a while to parse this sorry, yeah, I think the comment internal first is wrong.
I think there are two variables here:

platforms that run containers in a VM needs tunnels to get to the containers from the host: Mac, Windows, WSL2
where cloud-provider-kind is actually running

The problem seems to be that on platforms that use tunnels, when cloud-provider-kind runs in a container, can not access the portmapped entries.

The proposed changes seek to identify if/when the system is executing within a container

We know at the moment of polling the apiserver of the cluster what type of connectivity we have, internal false or true, is not really about "running in a container" is more about how we "can connect to the containers"
I think we can improve this by passing the connectivity type: direct or via portmap to the cloud provider loadbalancer controller implementation, a strawman approach will be something like
diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go
index 329ae85..0bce8e8 100644
--- a/pkg/controller/controller.go
+++ b/pkg/controller/controller.go
@@ -74,14 +74,14 @@ func (c *Controller) Run(ctx context.Context) {
                                continue
                        }

-                       kubeClient, err := c.getKubeClient(ctx, cluster)
+                       kubeClient, err, directConnectivity := c.getKubeClient(ctx, cluster)
                        if err != nil {
                                klog.Errorf("Failed to create kubeClient for cluster %s: %v", cluster, err)
                                continue
                        }

                        klog.V(2).Infof("Creating new cloud provider for cluster %s", cluster)
-                       cloud := provider.New(cluster, c.kind)
+                       cloud := provider.New(cluster, c.kind, directConnectivity)
                        ccm, err := startCloudControllerManager(ctx, cluster, kubeClient, cloud)
                        if err != nil {
                                klog.Errorf("Failed to start cloud controller for cluster %s: %v", cluster, err)
@@ -111,7 +111,7 @@ func (c *Controller) Run(ctx context.Context) {
 // getKubeClient returns a kubeclient depending if the ccm runs inside a container
 // inside the same docker network that the kind cluster or run externally in the host
 // It tries first to connect to the external endpoint
-func (c *Controller) getKubeClient(ctx context.Context, cluster string) (kubernetes.Interface, error) {
+func (c *Controller) getKubeClient(ctx context.Context, cluster string) (kubernetes.Interface, error, bool) {
        httpClient := &http.Client{
                Timeout: 5 * time.Second,
                Transport: &http.Transport{
@@ -138,7 +138,7 @@ func (c *Controller) getKubeClient(ctx context.Context, cluster string) (kuberne
                for i := 0; i < 5; i++ {
                        select {
                        case <-ctx.Done():
-                               return nil, ctx.Err()
+                               return nil, ctx.Err(), false
                        default:
                        }
                        if probeHTTP(httpClient, config.Host) {
@@ -157,9 +157,9 @@ func (c *Controller) getKubeClient(ctx context.Context, cluster string) (kuberne
                        klog.Errorf("Failed to create kubeClient for cluster %s: %v", cluster, err)
                        continue
                }
-               return kubeClient, err
+               return kubeClient, err, true
        }
-       return nil, fmt.Errorf("can not find a working kubernetes clientset")
+       return nil, fmt.Errorf("can not find a working kubernetes clientset"), false
 }

 func probeHTTP(client *http.Client, address string) bool {
diff --git a/pkg/loadbalancer/proxy.go b/pkg/loadbalancer/proxy.go
index e239ef4..a4d2c8e 100644
--- a/pkg/loadbalancer/proxy.go
+++ b/pkg/loadbalancer/proxy.go
@@ -274,7 +274,7 @@ func generateConfig(service *v1.Service, nodes []*v1.Node) *proxyConfigData {
 }

 // TODO: move to xDS via GRPC instead of having to deal with files
-func proxyUpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error {
+func proxyUpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node, directConnectivity bool) error {
        if service == nil {
                return nil
        }
@@ -311,10 +311,10 @@ func proxyUpdateLoadBalancer(ctx context.Context, clusterName string, service *v
        if err != nil {
                return fmt.Errorf("error updating configuration Stdout: %s Stderr: %s : %w", stdout.String(), stderr.String(), err)
        }
-       return waitLoadBalancerReady(ctx, name, 30*time.Second)
+       return waitLoadBalancerReady(ctx, name, 30*time.Second, directConnectivity)
 }

-func waitLoadBalancerReady(ctx context.Context, name string, timeout time.Duration) error {
+func waitLoadBalancerReady(ctx context.Context, name string, timeout time.Duration, directConnectivity bool) error {
        portmaps, err := container.PortMaps(name)
        if err != nil {
                return err
diff --git a/pkg/loadbalancer/server.go b/pkg/loadbalancer/server.go
index 3075c8f..8a2e33c 100644
--- a/pkg/loadbalancer/server.go
+++ b/pkg/loadbalancer/server.go
@@ -22,13 +22,16 @@ import (
 )

 type Server struct {
-       tunnelManager *tunnelManager
+       tunnelManager      *tunnelManager
+       directConnectivity bool
 }

 var _ cloudprovider.LoadBalancer = &Server{}

-func NewServer() cloudprovider.LoadBalancer {
-       s := &Server{}
+func NewServer(directConnectivity bool) cloudprovider.LoadBalancer {
+       s := &Server{
+               directConnectivity: directConnectivity,
+       }
        if runtime.GOOS == "darwin" || runtime.GOOS == "windows" || isWSL2() {
                s.tunnelManager = NewTunnelManager()
        }
@@ -145,7 +148,7 @@ func (s *Server) EnsureLoadBalancer(ctx context.Context, clusterName string, ser
 }

 func (s *Server) UpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error {
-       return proxyUpdateLoadBalancer(ctx, clusterName, service, nodes)
+       return proxyUpdateLoadBalancer(ctx, clusterName, service, nodes, s.directConnectivity)
 }

 func (s *Server) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, service *v1.Service) error {
diff --git a/pkg/provider/cloud.go b/pkg/provider/cloud.go
index abaf8aa..1f61dea 100644
--- a/pkg/provider/cloud.go
+++ b/pkg/provider/cloud.go
@@ -9,11 +9,13 @@ import (
        "sigs.k8s.io/kind/pkg/cluster"
 )

-func New(clusterName string, kindClient *cluster.Provider) cloudprovider.Interface {
+func New(clusterName string, kindClient *cluster.Provider, directConnectivity bool) cloudprovider.Interface {
        return &cloud{
-               clusterName:  clusterName,
-               kindClient:   kindClient,
-               lbController: loadbalancer.NewServer(),
+               clusterName: clusterName,
+               kindClient:  kindClient,
+               lbController: loadbalancer.NewServer(
+                       directConnectivity,
+               ),
        }
 }

We want to do better abstractions with a custom Config struct or functional options pattern to avoid keep modifying the methods https://golang.cafe/blog/golang-functional-options-pattern.html

I think that https://github.com/kubernetes-sigs/cloud-provider-kind/commit/8a7b2c319584e177d1276940d459240c73497531 represents your suggestion…
Essentially there are a number of distinct deployment scenarios that you're seeking to support:

Running on a Linux host
Running on a non-Linux host (i.e. within a Linux VM, where tunnelling is implied)
Running within a container with "host" networking
Running within a container with non-"host" networking (e.g. --network kind)

https://github.com/kubernetes-sigs/cloud-provider-kind/commit/8a7b2c319584e177d1276940d459240c73497531 observes whether communication with the Kubernetes controller is established via internal or not:
https://github.com/kubernetes-sigs/cloud-provider-kind/blob/a384948631c160bf5c9732c01bff0641c224f400/pkg/controller/controller.go#L122-L123
the value of internal is then carried via the directConnectivity argument - this might be a little ambiguous, I took  directConnectivity == internal but you may have intended directConnectivity != internal?
When running on a Linux host, either natively or within a container using --network host, then internal is false and communication may be established via IP addresses assigned to the host. When running on a non-Linux host, either natively or within a container using --network kind, then internal is true and communication may be established via ports mapped by Docker.

Can you also please check locally it works? I don't have a mac to test it

Yep; works on my machine…
I've tested running natively (on my Mac) and running within a container using --network kind and both behave as I require (i.e. Docker automagically maps the 14000 port of the Gateway through to the host (i.e. my Mac). I've also tested running within a container with --network host, where an IP address is assigned within the Linux VM, which I can verify by SSHing into the VM (I'm using Lima).
I haven't tested running natively on Linux (I haven't bothered to build the Linux variant of "cloud-provider-kind"). I believe that you could test the behaviour - presumably on a Linux host - by launching a container with --network kind and observing correct operation (i.e. the "ready" checks working on the Envoy proxy and Docker automagically mapping ports).

I haven't tested running natively on Linux (I haven't bothered to build the Linux variant of "cloud-provider-kind"). I believe that you could test the behaviour - presumably on a Linux host - by launching a container with --network kind and observing correct operation (i.e. the "ready" checks working on the Envoy proxy and Docker automagically mapping ports).

we have CI for that, just the scenario you mentioned that failed was enough ... thanks for the effort anyway
/retest
You need to sign the CLA

Signing of the CLA is in train; but I'll require the corporate variant, which is a non-trivial exercise…

For example; I've defined a Cilium Gateway bound to port 14000, which I am able to access from the host (i.e. my Mac) via the port mapped by Docker (i.e. <IP_ADDRESS>:32774->14000/tcp):

@Dadeos-Menlo one question, so when you create the Service , as per example
kubectl get service/lb-service-local
NAME               TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
lb-service-local   LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>   80:31215/TCP   57s

the tunnelManager what it does is to expose the Service Port, in this case 80 in the host.
When running the kindccm inside a container in mac or windows, the tunnel manager can not work, because it runs in the VM, and does not have access to the host.
IIUIC what you are using is only the portmap capability of the tunnel manager, right?

Running the examples/loadbalancer_etp_local.yaml with the changes, as currently proposed, yields:
kubectl get service/lb-service-local
NAME               TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
lb-service-local   LoadBalancer   <IP_ADDRESS>   <pending>     80:30236/TCP   11s

I was mistaken as to the requirement/significance of the tunnelManager implementation due to the fact that the required ports are only published by the proxy container when the tunnelManager exists: https://github.com/kubernetes-sigs/cloud-provider-kind/blob/f26b241ce573c53e81dfca8070167b0288626c03/pkg/loadbalancer/server.go#L231-L239
the tunnelManager itself isn't working in my scenario, which I imagine is to be expected, hence the "EXTERNAL-IP" being shown as "<pending>".
I suspect that a more appropriate fix for the lack of publishing of ports is to publish them if s.directConnectivity || s.tunnelManager != nil, rather than attempting to instantiate the tunnelManager in the directConnectivity case. But I don't understand why one wouldn't simply always publish the ports from the proxy container; like the envoyAdminPort is.

or I can access it from the host via the ports published via Docker.

The goal of the project is to provide the same user experience than a cloud provider and its loadbalancers, however, it also covers this gap of dynamic access to Services, and this scenario of the ccm running in a container in a Mac environment is something that only happens on this setup.
What you want to have is dynamic portmapping for the Service. Pormapping is an internal detail to provide the tunneling on Mac and Windows, always enabling portmaps waste resources.
What we have is these 4 scenarios:

Containers Reachable from host and KCCM runs as a Process: Direct Connectivity (Linux)

Same experience as a real loadbalancer

Containers Reachable from host and KCCM runs as a container: Direct Connectivity (Linux)

Same experience as a real loadbalancer

Containers Not Reachable  from host and KCCM runs as a Process: Tunnel Connectivity (Mac, Windows, WSL2)

Same experience as a real loadbalancer

Containers Not Reachable  from host and KCCM runs as a container: Portmap (Mac, Windows, WSL2)

This is your scenario, this is just a workaround to provide connectivity

The heuristic here is not "direct connectivity" or we'll be enabling pormapping on the Linux environments that is totally undesirable.
The heuristic is "Host is Mac/Windows and KCCM runs in a container, where runs in a container can be replaced by has direct connectivity with the containers if we know the host is mac or windows

The goal of the project is to provide the same user experience than a cloud provider and its loadbalancers, however, it also covers this gap of dynamic access to Services, and this scenario of the ccm running in a container in a Mac environment is something that only happens on this setup.

I must confess that I am not entirely familiar with every aspect of the load-balancer functionality offered by every cloud provider. I imagine that an "EXTERNAL-IP" is associated with the provisioned load-balancer and that this IP address is discoverable via interrogation of the Kubernetes API. I presume that, generally, such IP addresses are accessible via the Internet, but I can also imagine scenarios where a load-balancer only accessible from a private network might also be provisioned (i.e. "external" in this instance is likely in contrast to the internal cluster network).

What do you want is to have dynamic portmapping for the Service. Portmapping is an internal detail to provide the tunneling on Mac and Windows, always enabling portmaps waste resources, however, it seems you find it useful and probable other users.

What I'm really after is a configuration that works in my development environment (i.e. on a Mac). I suspect that this will involve usage of ports "published" by the proxy container via Docker; but that's predominantly because that's my understanding of how Docker works. Take, by way of an example, accessing the API server of a Kind cluster (i.e. port 6443), there are two addresses that might be used (i.e. whether internal is "true" or "false") one is accessing port 6443 on the IP address of the "…-control-plane" container (i.e. on the "kind" network) and the other is accessing whatever port port 6443 has been mapped to on the host system via Docker's port publishing mechanism.
Normally, when accessing a Kubernetes API server, one would simply access port 6443. However, when dealing with the special case of running Kubernetes on Docker (i.e. Kind) it seems reasonable to assume a degree of appreciation by the user of some of the additional considerations introduced by the use of Docker (i.e. the "kind" virtual network and the potential use of published ports).

What we have is these 4 scenarios:

Containers Reachable from host and KCCM runs as a Process: Direct Connectivity (Linux)

Same experience as a real loadbalancer

Containers Reachable from host and KCCM runs as a container: Direct Connectivity (Linux)

Same experience as a real loadbalancer

Containers Not Reachable  from host and KCCM runs as a Process: Tunnel Connectivity (Mac, Windows, WSL2)

Same experience as a real loadbalancer

Containers Not Reachable  from host and KCCM runs as a container: Portmap (Mac, Windows, WSL2)

This is your scenario, this is just a workaround to provide connectivity

I don't entirely agree with the scenario classifications as identified - although entirely accept that I am no expert in this field. I suggest that there are 2 variants of scenario 2, running "cloud-provider-kind" within a container on Linux, depend whether --network host or --network kind is used. None of the supposed tunnel connectivity purported to be associated with scenarios 3 and 4 work for me. I doubt whether it's possible to achieve the intended behaviour on non-Linux deployments - where I presume the intended behaviour is to have some magic IP address that is directly accessible from the host (e.g. a Mac).
I am not wedded to the idea of running "cloud-provider-kind" within a container; although I don't understand why anyone wouldn't, because running it directly on my Mac seems to offer the same results as running it in a container.

The heuristic here is not "direct connectivity" or we'll be enabling pormapping on the Linux environments that is totally undesirable.
The heuristic is "Host is Mac/Windows and KCCM runs in a container, where runs in a container can be replaced by has direct connectivity with the containers if we know the host is mac or windows ...
Being able to know if is mac or windows from inside the container will be ideal, otherwise we can set a magic env variable or a flag

This doesn't seem correct to me. I can imagine that there might be a special case of running on Linux using "host" networking (i.e. either by running "cloud-provider-kind" natively on the Linux box or within a container with --network host) whereby it's possible to arrange for the load balancer to have an IP address that can simply be accessed from the host network. But normal usage would seem to be to consider the load balancer to be part of the "kind" network, and I don't believe that whether the system is running on Linux, Mac, or Windows, should affect the behaviour and interaction in such a deployment scenario.

why anyone wouldn't, because running it directly on my Mac seems to offer the same results as running it in a container.

kubectl get service/lb-service-local
NAME               TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
lb-service-local   LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>    80:30236/TCP   37m

when running in Mac in the host with this example you do curl http://<IP_ADDRESS>  in Mac and you reach the exposed service.
If you run cloud-provider-kind in Mac in a container, you need to figure out the portmapping , don't you?
Kubernetes loadbalancers work by connecting the ExternalIP on the same port the service is exposed.

@Dadeos-Menlo I merged the other PR and added you as coauthor of the commit, so I'm going to close this one
Thanks for your feedback and help
/close


Update our OpenJPEG decoder in order to fix a malloc failure due to big image (bug 1901253)

It has been fixed in:
https://github.com/mozilla/pdf.js.openjpeg/commit/5ef68089b5349aca9fe735e961cb396e47a3c30f

/botio test

/botio makeref


Prepare a StreamingOutput response when serving file downloads.

This prepares a 4k buffer and pipes the HTTP response InputStream to a jax-rs compatible StreamingOutput object.

🚢


Autocomplete with custom render doesn't accept click

If you custom render items on autocomplete dropdown, using div or span, you can select the items with up/down arrows and press enter, however you can not select with mouse click.
This is the same on latest chrome and firefox.
You can see an example you your own example here:
http://textextjs.com/manual/examples/autocomplete-with-custom-render.html
Just press the letter 'P' to get multiple items in the dropdown and try to select using mouse click.
You will notice that you can select using arrow keys and enter.

I found a solution with simple css hack.
Just put on span smaller z-index (for example -1).


Bug - Legacy Mend Parser - Locations - type character varying(4000) error

Slack - https://owasp.slack.com/archives/C2P5BA8MN/p1732583494245009
It's possible when getting Mend Legacy SCA JSON Project vulnerabilities from 1.4 API that Locations will contain many values and error out the Locations 4000 char limit based on the current join.  I will make a slight change to the Mend parser that will hopefully reduce the likelihood of this happening.
If you check Mend unit test and scan files, you can see the difference between legacy and platform json schemas.  Legacy consists of all Vulnerabilities with a Library as an attribute.  Platform consists of all Libraries with vulnerabilities as an attribute.
This means that for Platform the Locations will not be the same style as Legacy Locations.
To confirm, I do not encounter the 4000 char limit error for Locations on Platform schema style imports - only the Legacy style.
Steps to reproduce
Steps to reproduce the behavior:

Download legacy* (non-platform) Mend SCA scan containing many Locations
Attempt to import scan file
Error type character varying(4000).

Expected behavior
Upload the report
Deployment method (select with an X)

[X] Docker Compose
[ ] Kubernetes
[ ] GoDojo

Environment information

Latest DD version, Ubuntu

I will raise a PR to make the change that should solve this fix, but I welcome feedback from the community on the proposed change of 'path' to be replaced with 'dependencyFile' and this should impact only the Legacy parser.
However, instead of 'path' referencing the offending .jar file, it will instead reference the 'dependencyFile' which is typically build.gradle, as an example.  When taking into consideration 'Vulnerabilities' in SCA and Direct vs Transitive inclusions -- this can be tricky.  Technically the build.gradle is where the issue exists, but the vulnerability is in the offending .jar file.

@testaccount90009 Based on my reading of :point_up: especially the last paragraph, it seems like choosing to use dependencyFile instead of path is likely to produce less accurate data in DefectDojo:

Technically the build.gradle is where the issue exists, but the vulnerability is in the offending .jar file.

Having read the above and the Slack posts, I think it would be better to reduce the path to a size that fits the DB's 4000 varchar limit plus put the full details into something that can accept more data and doesn't tend to be used for deduplication.
For example, you could remove characters off the front of the path until the path is within the DB limit - or you can get fancy and take off a few more characters so you can add ... to the resulting string. Something like the pseudo code:
If the length of path is > 4000

Trim all but the last 3997 characters
append '...' to the resulting string from above
store this in location for the finding

Additionally add the unmodified value of path to Finding's steps_to_reproduce which is a text type in the DB so the 4k varchar isn't an issue. You can do something nice like the below in steps_to_reproduce:

The vulnerability was found at this location:
/some/really/long/path/that/is/crazy/long/and/more/than/4000/characters
The above was located in the following dependency file:
/path/to/build.gradle

This preserves data from the parsed file while not making the DB field (location in this case) bigger while not adding potentially a long string to something like description which is used somewhat frequently in dedup hashcodes.

@mtesauro hope your holidays went well!
I think those are great suggestions and I will work to implement the Location in the steps_to_reproduce as mentioned.  With the legacy SCA output it seems that a vuln can exist in multiple locations and adding to the 'Locations' does not cleanly map the comma separated values into something human readable in the UI.
I'll work on a PR with the changes - at the same time I add SAST for the Mend Platform, now that I'm back from vacation.
Thank you again for those suggestions!

@mtesauro I have a PR I am working on that will fix the Locations and pass to steps_to_reproduce instead.
This will likely be accompanied by Mend Platform SAST logic for the parser as well.  I have a no finding, one finding, and many findings set of json files that have been scrubbed and I will provide those + unit tests after I figure out my GitHub errors for trying to fork / clone / check out the dev branch of DefectDojo.
In that PR I will link this Issue + the Slack discussion, and tag you if it's ok.

https://github.com/DefectDojo/django-DefectDojo/issues/11366  This issue / bug is what I described in my latest comment with encountering errors cloning the repo onto a Windows system.

@testaccount90009 Yeah, sorry that that impacted you - as I noted in that issue, we've got a PR we'll merge and get in the next release. Sorry to delay you on your PR work.

@mtesauro no problem sir, I appreciate you and team!  I believe I can continue to address this now.  You are rockstars, thank you!  I should have a new PR submitted soon that I'll link here to fix the 4000 char limit and do something as you've mentioned.

https://github.com/DefectDojo/django-DefectDojo/pull/11395


Initial set of components

overall looks good.  Agree that the components (at least for the most part should be statefull).  We should include tests for these components.  Ideally unit and integration tests.

Probably to early, but we could consider a generator to ease the process of creating new components.


Update stable version in repo from 0.0.0 to 1.6.11

Think about adding version 1.6.11 to stable repository.
Version: stable=0.0.0 (0 days old) => latest=1.6.11 (30 days old)
Installs: stable=0 (0%), latest=156 (22.1%), total=706
Click to use developer portal
Click to edit
Note: This is an automatically generated message and not personally authored by bluefox!

Is this adapter still maintained?
Any reason to not release this adapter to stable repository?

yes.
yes - time constraints.

Thanks for the fast reply.
What kind of time constraints exist?
Are there known problems which prohibit to publish the adapter?
or is the time to click onto set as stable at www.iobroker.dev to timeconsuming?
If you only miss time to triogger the publishing itself, please let me / us know. If release 1.6.11 is ok fro stable from your side, I can do the publishing task for you. But I cannot decide whther 1.6.11 is ok or faulty.

 Es sind ohnehin noch weitere Changes am Adapter geplant, da die API-Anbindung eine "Work in Progress" darstellt.

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 1.6.11 but the current stable version is already 1.6.11.
So this issue should be closed.
@mcm1957 for evidence


[Suggestion] Make the game translatable via a translation platform

I would be up to contribute some translations to French and Esperanto to make the game more accessible.
While contributing on various projects, I have found https://weblate.org to have one of the best workflows and it's libre/open source and the official instance can host libre projects for free. Even if a regular donation would be fair. Reading the criteria it doesn't seem non-libre assets are an issue.
Well the strings need to be libre. I don't know if that's the case, if not, the request is to free them to be able have collaborative translations at all.

While there has been some initial localization support done to the game to support this, there's still a lot of technical work needed before the data would be ready to be exported and imported to and from a translation platform. It's a really cool project though, and I would be willing to give some direction and hints to any programmer that would like to continue the work.

Thanks, the minimal 1st step is agreeing with the idea and being open to external contributors implementing it :)
Crossing fingers that someone is interested in this someday.

@autious I would be willing to take a crack at this. What direction and hints would you give to someone starting this project?


Feature: install pkl cli

Description
Allow the plugin to download and install pkl for you. Similar to how intelij can download other tools like go.
Essentially add a drop down to this page:

Similar to how it works with go:

This makes it much easier for people to get started.

That is indeed a nice feature to have.


Format modified files.

Description
Modifying the format-code.ps1 to have format all modified (staged + unstaged) files in git branch.
Testing
N/A.
Documentation
N/A

@shankarseal Please close this PR or make it ready for review. It's been sitting in draft since April 2023.


Add a fullscreen button in the Exerciser activity

Sugarizer activities don't look good on devices with small screen - for example smartphones.
On these devices, the toolbar could sometimes take 1/4 of the screen.
To increase the size for activities contents, the idea is to add a fullscreen button in the toolbar  like in the QRCode activity. When clicked, the fullscreen button hide the toolbar and display only an unfullscreen button. When clicked, the unfullscreen button show again the toolbar.
This features is implemented here: https://github.com/llaske/sugarizer/blob/dev/activities/QRCode.activity/js/activity.js#L144-L160
The objective of this issue is to implement the same feature in the Exerciser activity.
The Exerciser activity is maintained in a specific repository so the issue should be fixed here.

@llaske I have fixed this issue and created a PR regarding the same in ExerciserReact repository
https://github.com/llaske/ExerciserReact/pull/93

@llaske I was also working on the same issue, it is fixed and created a PR. I used a different approach and implemented the resizing part similar to the qr code activity so created a PR even tough one was open already. https://github.com/llaske/ExerciserReact/pull/94
Please go through the PR and share feedback. Please consider merging it if it suited to the needs.

Fixed in https://github.com/llaske/sugarizer/commit/45056b0e5773ab994bdcdfe019ec191d67a39db6


Check which versions are compatible

Check which iOS and Xcode version are compatible and update Requirements in README.md

Closed to no activity!


Can Osmdroid be tested with Robelectric?

Can Osmdroid be tested with Robelectric?  Does anyone have an example of an app with osmdroid tested with Robelectric?
Issue Type
[x] Question
I get NullPointerException exception in setOnZoomListener when I try to run my test. The android app works fine but I do not break in this location when I run the regular app (AS says "no executable code found at line 290 in android.widgets.ZoomButtonsController).  It is a bit strange...
   public void setOnZoomListener(OnZoomListener listener) {
       mCallback = listener; // NullPointerException here....
   }

  testCompile 'junit:junit:4.12'
   testCompile "org.mockito:mockito-core:2.4.0"
   testCompile 'org.powermock:powermock-module-junit4:1.7.0RC2'
   testCompile 'org.powermock:powermock-api-mockito2:1.7.0RC2'
   testCompile 'org.powermock:powermock-classloading-xstream:1.7.0RC2'
   testCompile 'org.powermock:powermock-module-junit4-rule:1.7.0RC2'
   testCompile "org.robolectric:robolectric:3.4.2"
   testCompile "org.robolectric:shadows-maps:3.4-rc2"
   testCompile "org.robolectric:shadows-play-services:3.4-rc2"
   testCompile "org.robolectric:shadows-support-v4:3.4-rc2"
   testCompile 'org.robolectric:shadows-multidex:3.4-rc2'

and my test prototype (Kotlin):
@RunWith(RobolectricTestRunner::class)
class SandwichTest {

    @Test
    fun testDbReady () {
        val activity = Robolectric.setupActivity(FullscreenActivity::class.java)
    }

    @Before
    fun setUpMockito() {
        MockitoAnnotations.initMocks(this)
    }

    @After
    fun tearDownMockito() {
        Mockito.validateMockitoUsage()
    }
}

Version of osmdroid the issue relates to:
5.6.5 from jar

I created a sample test similar to the Android instrumentation test which runs in 8s. Now need to figure out why my app's test fails...
https://github.com/osmdroid/osmdroid/compare/master...pasniak:feature/%23750?expand=1

not too familiar with robo...how is it different from the android instrumentation test runners? (hopefully it's better)

was leak canary causing issues with the test?

I have not focused too much on the canary, thinking it could be made optional or I could spend time checking how to fix.
Robo does not require emulator running, so we can have a fast battery of tests, much faster than Android's instrumentation. Ex: https://github.com/apps4av/avare/blob/master/app/src/test/java/com/ds/avare/test/DestinationGpsTest.java

well that's neat

On my new Linux box (AS 3.0.0, SSD) the tests run in 3.7s ! I had to upgrade the canary to 1.5.4 and android.minSdkVersion=14 (from 8)

I am trying to run the robolectric test with the latest 6.0.0 local debug build and it hangs on edit.commit() in
            Editor edit = prefs.edit();
            edit.putString("osmdroid.basePath", discoveredBestPath.getAbsolutePath());
            edit.putString("osmdroid.cachePath", discoveredCachPath.getAbsolutePath());
            edit.commit();

I was able to repro this hang in my test outside osmdroid. I can set these location in the "Before" code so I can avoid the hang but I am curious why not use edit.apply() here? (which works in my test as !prefs.contains("osmdroid.basePath") is true)

it was probably from looking at the javadocs. commit is written immediately, apply is written eventually. If it's hanging on commit,  could it be an issue with permissions? Was commit changed at some point?

If I remember well, apply is recommended: same result and no lock. "Eventually" here means that the value will be immediately set and available, and eventually committed. Something like a data immediately available in memory and eventually written to the preferences file.

commit is save now, apply is save eventually. I'm not sure what the actual recommendation is.

https://developer.android.com/reference/android/content/SharedPreferences.Editor.html#apply()

Unlike commit(), which writes its preferences out to persistent storage synchronously, apply() commits its changes to the in-memory SharedPreferences immediately but starts an asynchronous commit to disk and you won't be notified of any failures. If another editor on this SharedPreferences does a regular commit() while a apply() is still outstanding, the commit() will block until all async commits are completed as well as the commit itself.
As SharedPreferences instances are singletons within a process, it's safe to replace any instance of commit() with apply() if you were already ignoring the return value.

I would suggest this change: https://github.com/pasniak/osmdroid/commit/fe2cc6144f47ef21bf229b89993cd8e63ce710ec

@pasniak Now that the code is merged, should the issue be closed?


Fixing credit leak

Description
When calling receiveBatch sequentially on the same client instance, there is a credit leak if the previous batch received less than maxMessageCount. That is, every time we call receiveBatch on an existing client, it will add maxMessageCount to the credit, even if the previous batch timed-out and used no credit.
Brief description of the changes made in the PR. This helps in making better changelog

Removing resetCreditWindow as Rhea doesn't do anything for set_credit_window and add_credit calls if the value passed is 0. (see https://github.com/amqp/rhea/blob/290add9fb5806f453874d0cfa71d608b32e3d741/lib/link.js#L371
and
https://github.com/amqp/rhea/blob/290add9fb5806f453874d0cfa71d608b32e3d741/lib/link.js#L359)

Changing to only add sufficient credit to get credit up to maxMessageCount and no higher, this avoids adding credit above maxMessageCount when the previous batch timed-out and used no credit.

Reference to any github issues

https://github.com/Azure/azure-service-bus-node/issues/90

We cannot close the receiver after the messages are returned to the user, since the user may need to settle those messages. We also need to make sure that no more messages are received while the link is active.
Let's say the user asked for 10 messages, however there were only 5 available at that time. Since there were no more messages for the next 2 seconds we we return the list of 5 messages received. Now while the user was processing those messages, 2 more messages were sent to the queue. Since the receiver had 10 credits, it can technically still receive those 2 messages. However, the Promise to receive messages in a batch has already been resolved.
Hence I believe, it is important to let rhea know to stop receiving more messages until further notice. This should always be done at the end of receiveBatch() operation. I think this can be done by draining the receiver of any pending credit so that no new messages can be received.
Check this issue for more explanation.

Ahh, I think I understand now, thank you. When I get some time (hopefully today) I'll try an approach using drain.

Closing out this particular pull request as the "drain" approach is the right one.


Fix failing test on iOS devices #1871

First of all, before starting this test we need to make sure that ThaliMobile is started.
Otherwise, networkChangedNonTCP events will be filtered out.
Based on test assumptions that we discover 1 peer via WiFi and 1 peer via MPCF,
we can safely assume that phone is connected to access point so the bbsidName field
is set to some non null value. This is because networkChangedValue with bssidName set to null is treated same as WiFi off.
See #1500 and #1707 for details.
Also, since this scenario assume that after disabling WiFi peerAvailabilityChanged event would
be fired twice, we need to increase availibilityHandler calls limit by one.

This change is

PR is added to the queue for testing as 1. task. (8171119)

Test 121958569 (8171119) build started.

Test (Success) 121958569 build is completed (8171119)
See https://github.com/ThaliTester/TestResults/tree/1219585698171119_Fix_failing_test_on_iOS_devices__1871_mlesnic/ for the logs

Test<PHONE_NUMBER>171119(8171119) has failed
See https://github.com/ThaliTester/TestResults/tree/1219585698171119_Fix_failing_test_on_iOS_devices__1871_mlesnic/ for the fail logs

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

Comments from Reviewable

Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable

Reviewed 1 of 1 files at r1.
Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable

Comments from Reviewable


[Bug]: MultiSelect TypeScript Error

Description
The example provided in the manifest docs for the <MultiSelect> components has a type error
TS2769: No overload matches this call.   Overload 1 of 2, '(props: Omit<HTMLProps<Options<As<any>>>, keyof MultiSelectOptions<"label">> & Omit<MultiSelectOptions<"label">, "as"> & Required<...>): Element | null', gave the following error.     Type 'Dispatch<SetStateAction<Set<string>>>' is not assignable to type '(keys: Selection) => any'.       Types of parameters 'value' and 'keys' are incompatible.         Type 'Selection' is not assignable to type 'SetStateAction<Set<string>>'.           Type 'string' is not assignable to type 'SetStateAction<Set<string>>'.   Overload 2 of 2, '(props: Props<MultiSelectOptions<"label">>): Element | null', gave the following error.     Type 'Dispatch<SetStateAction<Set<string>>>' is not assignable to type '(keys: Selection) => any'.

Link to reproduction
n/a
Steps to reproduce

Copy Paste the example from https://www.manifestdesignsystem.com/inputs/multi-select into a project
Observe Type Error

Code of Conduct

[X] I agree to the Code of Conduct.
[X] I have reviewed the current issues for duplicate tickets.

Notes from meeting with @bclark-p44
We need to add the Selection type available which is defined as
type Selection = 'all' | Set<Key>;

@aamir-p44 @vitaliy-p44 @smartinelli-p44  The url mentioned here seems to be not reachable, and i was also not able to find this particular component in code as well. Is there's anyone who can help with information whether we are currently using it or not ?

This code is deprecated and no longer is in use, so closing this.

@vivek-p44 Here's the updated link to the MultiSelect component
https://project44.github.io/manifest/inputs/multi-select


Shuttle stops match after 30 minutes :-(

The free tier does not let the server live longer than 30 minutes.

I have now implemented persistency (using a Postgres DB, sqlx + SeaORM), so that the only remaining issue is that the websocket connections are closed when the server dies; we should probably auto-reconnect (anyhow) and then this is no longer any issue. Will close this already, because one can indeed continue matches already after a server restart.


Added ppaczyn to parameter-separator

Description

https://github.com/jenkinsci/parameter-separator-plugin
@pit3k
I've been given GitHub Admin access by @olhado, in order to become new maintainer of this plugin.
Proof that I have commit access (I've merged a pull request): https://github.com/jenkinsci/parameter-separator-plugin/commit/36a4abe1d1a94fdca8a1c2ca3f857e09b14b1e3f
Submitter checklist for adding or changing permissions

Always

[x] Add link to plugin/component Git repository in description above

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] Make sure to @mention the users being added so their GitHub account names are known if they require GitHub merge access (see below).
[x] All newly added users have logged in to Artifactory at least once

Reviewer checklist (not for requesters!)

[ ] Check this if newly added person also needs to be given merge permission to the GitHub repo (please @ the people/person with their GitHub username in this issue as well). If needed, it can be done using an IRC Bot command
[ ] Check that the $pluginId Developers team has Admin permissions while granting the access.
[ ] In the case of plugin adoption, ensure that the Jenkins Jira default assignee is either removed or changed to the new maintainer.
[ ] If security contacts are changed (this includes add/remove), ping the security officer (currently @daniel-beck) in this pull request. If an email contact is changed, wait for approval from the security officer.

There are IRC Bot commands for it

@olhado can you approve please?

https://ci.jenkins.io/job/Infra/job/repository-permissions-updater/indexing/console

Error while processing pull request 1630
Reason: org.kohsuke.github.GHFileNotFoundException: https://api.github.com/repos/jenkins-infra/repository-permissions-updater/collaborators/pit3k/permission {"message":"Resource not accessible by integration","documentation_url":"https://developer.github.com/v3/repos/collaborators/#review-a-users-permission-level"}

Is this a generic problem on your side or perhaps this is because I'm not a member of "jenkinsci" GitHub organization? If so, how can I remedy that?

the problem is on our side

I've fixed the build issue


Tests fail after latest commit (and metadata)

Hi @fredo-dedup, thanks for pushing the latest fixes to master. I have noticed that the tests now fail after the last commit, which probably causes a failure of tests in Lora too. Is the source of error easy to fix or is it a more troubling bug? If it is an easy matter to sort out, we may make sure that the the build errors are fixed and push the latest ReverseDiffSource to metadata (and I can then do the same for Lora).

I found that the breaking change #13612 in Julia v0.5 (dropping dimensions indexed by a scalar) caused an error in the show function for graph types used in ReverseDiffSource.
Tests now pass in both 0.4 and nightly and I tagged a new version 0.2.1 (PR pending)

Thanks a lot Frédéric, once your PR is merged by the metadata maintainers, I will make sure Lora passes the tests too, and by next week (once I complete the nearly finished Gibbs job), I will tag a new Lora release too.


deprecate centos 8 and ubuntu 16.04 which are no longer supported by upstream vendor

motivation: remove unsupported code
changes: remove centos 8 and ubuntu 16.04 from CI and main nightlies directories

ping @shahmishal

Looks good!


Fix RT-deconvolution for LC-MS and LC-IMS-MS

Hey,
follow up to #153 and #154.
This fixes the deconvolution modules since they were broken due to the move to the new feature data model.
LC-MS can be processed as usual.
LC-IMS-MS can be processed as actual IMS data or, if build with the regular ADAP chromatogram builder, as regular "2d" LC-MS data.

Ideally, the PeakResolver interface is updated to take
DoubleBuffer/double[] intensities and List<? extends MassSpectrum> in the future. Then we can use the same modules to resolve the rt and mobility dimension and dont have to create intermediate legacy obects of the Feature interface.

Ideally, the PeakResolver interface is updated to take
DoubleBuffer/double[] intensities and List<? extends MassSpectrum> in the future. Then we can use the same modules to resolve the rt and mobility dimension and dont have to create intermediate legacy obects of the Feature interface.

Something to discuss:
Currently, the deconvolution is designed in a way to intentionally not transfer any information previously assigned to rows features, the reason being that before deconvolution a EIC can have multiple features.
These should not be targted of any annotation or so anyway, and information like rt and mz windows will have to be reprocessed anyway.
Further, we can prevent wrong annotations due to wrong module usage.

Something to discuss:
Currently, the deconvolution is designed in a way to intentionally not transfer any information previously assigned to rows features, the reason being that before deconvolution a EIC can have multiple features.
These should not be targted of any annotation or so anyway, and information like rt and mz windows will have to be reprocessed anyway.
Further, we can prevent wrong annotations due to wrong module usage.

Something to discuss:
Currently, the deconvolution is designed in a way to intentionally not transfer any information previously assigned to rows features, the reason being that before deconvolution a EIC can have multiple features.
These should not be targted of any annotation or so anyway, and information like rt and mz windows will have to be reprocessed anyway.
Further, we can prevent wrong annotations due to wrong module usage.

I think this is the right way to do it.

Something to discuss:
Currently, the deconvolution is designed in a way to intentionally not transfer any information previously assigned to rows features, the reason being that before deconvolution a EIC can have multiple features.
These should not be targted of any annotation or so anyway, and information like rt and mz windows will have to be reprocessed anyway.
Further, we can prevent wrong annotations due to wrong module usage.

I think this is the right way to do it.

Sounds resonable.

Sounds resonable.


Make a change in README to test CirleCI building

Closing this as it's confirmed that CircleCI will build forked PRs.


bug: fix switch and os selector

Pull Request
Issue
Issue #, if available: #71, #73, and #74
Description
Description of changes: Fix issues with downloading the HCL parser and running it on MacOS and Linux. Also solve a potential issue where Terraform runs despite bicep being selected.
License
By submitting this pull request, I confirm that my contribution is made under the terms of the projects associated license.

@matt-FFFFFF and @oZakari There is limited testing I can do on this due to lacking a Mac, but I have tested in Linux and works as expected. However in my environment the file is already set as executable when it downloads, so unsure if my testing is valid.
I wish there was a PowerShell native HCL parser, but only libraries I can find are golang. I could write something bespoke, but was trying to avoid that. I also want to avoid storing binaries in source control. We might need to publish this for Matt to test it properly, sorry. I will also try to find someone with a Mac once it is published.

@jaredfholgate I have a Mac! We can also run GH actions using macOS runners.
Thank you for the speedy response here.
Hth tomorrow

@jaredfholgate I have a Mac! We can also run GH actions using macOS runners.
Thank you for the speedy response here.
Hth tomorrow

@matt-FFFFFF and @oZakari I am going look at writing some cross OS pester tests and an associated action for that particular function later today. If it is urgent you can merge this PR today and will add them to a separate one.

Hi @jaredfholgate @oZakari
Confirmed this branch is working on WSL:

Checking MacOS now

Hi @jaredfholgate and @oZakari
Confirmed working on MacOS

Please can we merge this? I was hoping to use it for a conference demo next week!

@matt-FFFFFF  merged and new release will be out shortly of the module, please update it locally in about 30 mins :)


Incorrect wallet restore command example shown on ordinals.com

At this location: Importing into ord wallet
The restore command is listed as:
ord --wallet ord_from_sparrow restore "BIP39 SEED PHRASE"

The correct syntax would be:
ord --wallet ord_from_sparrow wallet restore "BIP39 SEED PHRASE"

Confirmed this issue.
@gmart7t2 has already submitted a fix for the missing wallet command in that line.


Added missing Force parameter for Remove-TermGroup

Type

[x] Bug Fix
[x] New Feature
[ ] Sample

Related Issues?
NA
What is in this Pull Request ?
Added missing Force parameter for Remove-PnPTermGroup command.
Localization string message improved.
Added necessary changes in docs

While you can actually do -Confirm:$false on this cmdlet, in the line of the other cmdlets it makes sense to reintroduce the force parameter.


Fix use after free

Simple reproduction of the bug:
LRUCache<string, string> lruCache(3);
lruCache.put("key1", "val1");
lruCache.put("key2", "val2");
lruCache.put("key3", "val3");
lruCache.put("key1", lruCache.get("key1"));
The get returns a ref to the value of "key1", the put gets the ref and
invalidate it when it finds "key1" already exists in the cache.

@assafnativ, I'll have a look soon.


Update 'recent' projects, fixes #274

Update 'recent' projects, fixes #274
Description
Added an timer to .onAppear since the window is never unloaded from memory, otherwise there's no way to refresh the window.
Releated Issue
#274
Checklist

[x] I read and understood the contributing guide as well as the code of conduct
[x] My changes generate no new warnings
[x] My code builds and runs on my machine
[x] Review requested (@Angelk90)

Screenshots
None.

@wdg: It seems to work, as you can see from the video there is a delay time, but I think it can be overlooked.
Call the function every few seconds to check if there are updates, do you think it could give problems?
https://user-images.githubusercontent.com/20476002/161389534-d0f9a8ca-f595-4930-9fd9-78e1a158f379.mov

I think 10 seconds is a good time, 30 is maybe to long, but most people (except for testing) have projects open for more than 10 seconds, it will do this in the background, so it should be fine.

@wdg : I understand, the problem comes from this thing #235, that when you close a project.
I would have liked the welcome window to open again and see the project you just worked on in the history.

Hi @Angelk90 that is another issue, and not related to this one, sorry.
And I think that is not a problem, if you close windows, and press the Xcode icon again, you'll get the welcome screen.
if I close all windows, and press the CodeEdit icon, I'll see the welcome screen.

@wdg : But if the welcome window is closed then I have opened a project and is it normal for updateRecentProjects to be called every 10 seconds?

@wdg : But if the welcome window is closed then I have opened a project and is it normal for updateRecentProjects to be called every 10 seconds?

Yes, the window is never unloaded from memory.

@wdg : I thought of something as an observer, who when there was a change he received then updated.
If there are no problems, better this way.


How to customize python path for jedi complemention?

How to customize python path for jedi complemention?
It can be customized by g:deoplete#sources#jedi#python_path in deoplete.nvim like
   let g:deoplete#sources#jedi#python_path = /opt/python3.6/bin/python3.6

How to do that  with ncm? Thanks.
Btw, ncm is an awesome vim plugin.

Unfortunately this is impossible without setting the global g:python3_host_prog


All charts: Chart not shown in collapsed groupbox

Chart not shown in Group box, when property "Collapsible" of Group box is set to "Yes (start collapsed)"

This is an issue in Mx version 5.13 and earlier and will. Resize() isn't called when container element dimensions change. Will be fixed in 5.14, presumably .


fix(kit): remove baseUrl and use relative paths in tsconfig

🔗 Linked issue
resolves https://github.com/nuxt/nuxt/issues/21827
❓ Type of change

[ ] 📖 Documentation (updates to the documentation or readme)
[x] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
This finishes work in https://github.com/nuxt/nuxt/pull/21081 and https://github.com/nuxt/nuxt/pull/21632 to remove baseUrl and normalise all absolute paths in include/exclude/paths to relative urls.
📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.


Can't re-open device after closing it with outstanding OVERLAPPED event

If a USB device is opened and a transfer started, but the device is then closed before calling GetOverlappedResult() on the OVERLAPPED object, it is not possible to re-open the device.
This can happen as a result of the process being terminated.
Re-plugging the device doesn't fix it.
Attempts to stop and re-start the UsbDk driver fail.
The only way to fix it is to re-boot the machine.
(Windows 10 22H2, UsbDk 1.00-22)

A partial work-around is to intercept process termination with (say) a sighandler, keep track of outstanding transactions and their OVERLAPPED objects, and on termination issue UsbDk_AbortPipe() to all end points and then GetOverlappedResult() on all the outstanding OVERLAPPED objects.
This doesn't solve the problem if the process is killed in a way that doesn't invoke the sighandler though.

It seems that kvojacheck's fix for #105 is a 90% fix for this problem. It seems to prevent the need for a system re-boot, but does sometimes require a device re-plug to recover, which is not ideal.


Fix init MCPWM Fault line via config struct (IDFGH-3473) (IDFGH-3539)

nothing more ;-)

fix this problem: https://github.com/espressif/esp-idf/issues/5433

Thanks for your contribution.

Thanks for contribution and sorry for late updates, please refer to https://github.com/espressif/esp-idf/commit/c58fd3df2904b8ecf0531b812bf6917b5ff62cb7. Thanks.

Thanks again for your contribution.


unhide insight service

Problem solved
Short description of the bug fixed or feature added

PR-Codex overview
This PR removes an entry from the HIDDEN_SERVICES array in the validations.ts file, indicating a potential update in the handling of API keys.
Detailed summary

Removed "insight" from the HIDDEN_SERVICES array in the validations.ts file.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

#5190  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @iuwqyir and the rest of your teammates on  Graphite


Gas estimate

The Problem

The Solution

Checklist

[ ] Test manually on test-ui using remote chains.
[ ] Run load tests.
[ ] Update documentation if needed.
[ ] Update CHANGELOG.md.

This is obviated by what's in main.


Update http/grpc packages.

Which issue is resolved by this Pull Request:
Resolves https://github.com/opendatahub-io/data-science-pipelines/issues/163
Description
We do not utilize tekton-catalog and frontend code so the go.mod for that is currently left unchanged.

/unhold


Attributing your translations in the app

There will be an "About" screen in Music Presence attributing all translators.
To be attributed I need to following information from you:
- Your Name:
- GitHub account name:
- Codeberg account name:
- Link to your GitHub account in the About screen? yes/no
- Which languages did you translate?
- Which languages do you speak natively?

NOTE Your name will be public! Choose wisely.
You may use your real name if you want to, but you are free to pick any nickname you want.

Option 1: Copy/paste the above text and reply to this issue and I will add you once I verified your information.
Option 2: Fork this repository, edit the info.cpp and add your information, if you feel comfortable editing C++ code, then make a pull request. Whatever works best for you.

Thank you for putting the time into translating Music Presence to other languages!

Your Name: moe
GitHub account name: moeshpit
Codeberg account name: moeshpit
Link to your GitHub account in the About screen? yes
Which languages did you translate? Afrikaans (for now)

Your Name: Vince
GitHub account name: VZCE
Codeberg account name: VNCE
Link to your GitHub account in the About screen? yes
Which languages did you translate? French

Your Name: oscar
GitHub account name: scar1jpg
Codeberg account name: scar1jpg
Link to your GitHub account in the About screen? no
Which languages did you translate? Polish

Your Name: Mozoa
GitHub account name: mozoarella
Codeberg account name: mozoa
Link to your GitHub account in the About screen? yes
Which languages did you translate? Dutch

Your Name: Moon Man
GitHub account name: MoonManPL
Codeberg account name: MoonManPL
Link to your GitHub account in the About screen? yes
Which languages did you translate? Polish

Your Name: Snyri
GitHub account name: Snyri
Codeberg account name: Snyri
Link to your GitHub account in the About screen? yes
Which languages did you translate? Italian

Your Name: Marvelous Adiris
GitHub account name: MarvelousAdiris
Codeberg account name: MarvelousAdiris
Link to your GitHub account in the About screen? yes/no: Yes
Which languages did you translate?: Spanish

Your Name: Lieba Natur Brilian
GitHub account name: naturbrilian
Codeberg account name: naturbrilian
Link to your GitHub account in the About screen? yes
Which languages did you translate? Indonesian

Your Name: Matej
GitHub account name: matej4real
Codeberg account name: matej4real
Link to your GitHub account in the About screen? yes
Which languages did you translate? Croatian, Bosnian, Serbian
Which languages do you speak natively? Croatian

Your Name: h1hs
GitHub account name: ayovu
Codeberg account name: Ayovu
Link to your GitHub account in the About screen? yes
Which languages did you translate?  Russian, Ukrainian
Which languages do you speak natively? Russian

Your Name: jmleetw
GitHub account name: jmleetw
Codeberg account name: jmleetw
Link to your GitHub account in the About screen? Yes
Which languages did you translate? Tradition Chinese (Taiwan)
Which of these languages do you speak natively/fluently? Standard Chinese, Taiwanese Mandarin, Taiwanese Hokkien, English

Your Name: momizi06
GitHub account name: momizi06
Codeberg account name: momizi06
Link to your GitHub account in the About screen? yes
Which languages did you translate? Japanese
Which of these languages do you speak natively/fluently? Japanese

Your Name: Cheezton
GitHub account name: stegmann-tibor
Codeberg account name: cheezton
Link to your GitHub account in the About screen? no
Which languages did you translate? Slovak
Which of these languages do you speak natively/fluently? Slovak

Your Name: Tibor Stegmann
GitHub account name: stegmann-tibor
Codeberg account name: cheezton
Link to your GitHub account in the About screen? yes
Which languages did you translate? Slovak
Which of these languages do you speak natively/fluently? Slovak

Your Name: cobra525
GitHub account name: cobra525
Codeberg account name: cobra525
Link to your GitHub account in the About screen? no
Which languages did you translate? Hungarian
Which of these languages do you speak natively/fluently? Hungarian

Your Name: ekimeister
GitHub account name: ekimeister
Codeberg account name: ekimeister
Link to your GitHub account in the About screen? yes
Which languages did you translate? Finnish
Which of these languages do you speak natively/fluently? Finnish


Update black

Summary
Closes https://github.com/qiskit-community/qiskit-nature/security/dependabot/1
Details and comments
Aligned with https://github.com/Qiskit/qiskit/pull/11701

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

9 of 9 (100.0%)  changed or added relevant lines in 6 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 86.763%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
8783

Relevant Lines:
10123

💛  - Coveralls


One of the hyper links in the "Working with the Source Code" page does not work

Description:
The third hyperlink of "Contributing to the Code Base" in the page "Working with the Source Code" (https://github.com/wso2/docs-apim/blob/master/en/docs/develop/working-with-the-source-code.md) directs to a dead link (https://github.com/wso2/docs-apim/blob/master/en/docs/develop/index) in GitHub.
Affected Product Version:
APIM 3.0

Fixed in:

3.1.0 - https://github.com/wso2/docs-apim/pull/841
3.0.0 - https://github.com/wso2/docs-apim/pull/842


[enhancement] Add ESLint and Prettier to project.

In order to keep the code style in a good shape and format the code automatically, it's recommend to use ESLint and Prettier in our project.

If we develop the project with TypeScript, should we use ESLint or TSLint? Although I realize that lots of Typescript project are using ESLint.

I think both are good for our projerct. But ESLint is recommended because the team behind TSLint have decided that they would no longer support it. Refer to https://palantir.github.io/tslint/

ESLint & Prettier
We use umi-fabric which provides some presets for eslint , stylelint and prettier. All open rules are meaningful for improving code quality.
Here's the ESLint configuration:
# .eslintrc.js
module.exports = {
  extends: [require.resolve('@umijs/fabric/dist/eslint')],
};

# .prettierrc.js
const fabric = require('@umijs/fabric');
module.exports = {
  ...fabric.prettier,
};

Close by pr #21 .