Support for buttons

Hi all!
Would it be possible to add support for buttons?
I dumped the data array for the periodic DUML query, but the button presses does not alter it.
Do you have any information how the analog messages DUML command was figured out?
Using the DJI Simulator and sniffing the serial traffic, or it was done on the Android app?

interesting, honestly, I do not remember why I did not take the data for buttons, I will check and update here

Yeah in the meantime I looked after the DJI simulator, and the Mini2 remote is not supported in it. Interestingly there are folks out there who simulate XBox game controller based on the reverse engineered protocol 🤣

yes, simulator does not support, this is why it needs to be manually switched to a controller mode.
XBox controller is just a different option of joystick, can be simulated also I believe (in case it will be possible to read the buttons...)

Hello!
I've been trying to get button information from the remote as well. It looks like the byte array which is returned does not contain anything about buttons. All the known commands ("get info" and "simulator mode enable") have the same cmd_type and cmd_set. Do you think it will be a good idea to try 254 other cmd_ids on these cmd type and set in order to find out if button information could be requested by any of them or i have a large chance to brick my remote?

Well I would still try to figure out that how did these DUML commands figured out. By reverse engineering the firmware of the app itself?

If we look back in history, yes, the first set of bytes was found by looking at remote and dji app talk. Here is the link https://github.com/Matsemann/mDjiController/issues/3
However i have no idea who came up with send_duml method and how they found out which bytes are responsible for all the stuff. But the classification seems pretty correct. Also the protocol changed a lot for rc-n1 as mDjiController has incredibly different messages (AND THEY HAVE BUTTONS!!)

If we look back in history, yes, the first set of bytes was found by looking at remote and dji app talk. Here is the link Matsemann/mDjiController#3
However i have no idea who came up with send_duml method and how they found out which bytes are responsible for all the stuff. But the classification seems pretty correct. Also the protocol changed a lot for rc-n1 as mDjiController has incredibly different messages (AND THEY HAVE BUTTONS!!)

Do you know if the button presses are detectable somehow by the Android app? maybe we could route the serial port with a gadget OTG driver with some Linux board and could sniff the serial traffic.

Oh, that's a good question. I know there is (maybe the only) simulator-like game on android called simuDrone and it isn't able to detect buttons. However, if we look at flight logs, at least we have info about cine / normal / sport profile. But it's hard to say either this information is from controller or grom the drone

Oh, that's a good question. I know there is (maybe the only) simulator-like game on android called simuDrone and it isn't able to detect buttons. However, if we look at flight logs, at least we have info about cine / normal / sport profile. But it's hard to say either this information is from controller or from the drone

I jumped on the Android bandwagon lately and I do not have OTG cable yet, but in the DJI GO app there is not anything like remote test or something?

I use dji fly with my mini 3 and i haven't seen such features in this app

There is another repository where send_duml is used. I'd really want to ask the creator of this method a couple of questions and probably it's either usatenko or IvanYaky https://github.com/IvanYaky/DJI_RC-N1_SIMULATOR_FLY_DCL

If we look back in history, yes, the first set of bytes was found by looking at remote and dji app talk. Here is the link Matsemann/mDjiController#3
However i have no idea who came up with send_duml method and how they found out which bytes are responsible for all the stuff. But the classification seems pretty correct. Also the protocol changed a lot for rc-n1 as mDjiController has incredibly different messages (AND THEY HAVE BUTTONS!!)

Do you know if the button presses are detectable somehow by the Android app? maybe we could route the serial port with a gadget OTG driver with some Linux board and could sniff the serial traffic.

I think i found something related to dji traffic parsing. Have a look at this https://wiki.dji-rev.com/howto/dumlprinter

We are likely using the 'RC Simulate Flight Mode Set' for enable (0x24) and the 'RC Channel Params Get' for polling:
https://github.com/o-gs/dji-firmware-tools/blob/master/comm_dissector/wireshark/dji-dumlv1-proto.lua#L132
There are some other commands code which might be useful to poke with.

We are likely using the 'RC Simulate Flight Mode Set' for enable (0x24) and the 'RC Channel Params Get' for polling: https://github.com/o-gs/dji-firmware-tools/blob/master/comm_dissector/wireshark/dji-dumlv1-proto.lua#L132
There are some other commands code which might be useful to poke with.

Wow, that's an amazing piece of information! Thank you!
Unfortunately, the description of commands doesn't sound like something we need. Only "[0x04] RC Physical Channel Parameter Get" caught my attention, but that can be just anything else. Worth a try anyway.

So i tried a couple of commands and here are the results:

0x04 ('RC Physical Channel Parameter Get') returns about the same info about sticks and camera wheel, but does not contain any data about buttons. In fact it is only 30 bytes instead of 38 bytes for 0x01
0x1a ('RC Control Mode Get') does not refer to the center cine / normal / sport mode slider
0x24 ('RC Simulate Flight Mode Set') luckily does not need to be set to 0 as simulator mode is reseted to null when you reboot remote

So far i've ran out of ideas what else to try but the comment to 0x48 is a bit suspicious

The only thing that can be read so far is a roller wheel at the left side

Good news, I found it.
The button values are under command 27.

For example the answer of this duml packet with "Fn" button pressed and released is:

Top right button:

Just need some time to implement it.

The change is implemented, all 4 buttons can be used with joystick.
https://github.com/usatenko/DjiMini2RCasJoystick/commit/1c2e6f3e3eb363ee01f2e9b61305bd6d3a57c72d
I am not sure I used right names of buttons, I can change if you tell me the correct names, though I believe they can be mapped in a simulator. Current mappings are:

uinput.BTN_PINKIE,
uinput.BTN_TRIGGER,
uinput.BTN_THUMB,
uinput.BTN_THUMB2,

Great job! I’m a little jealous I haven’t discovered that yesterday, I’ve tried bunch of other commands, but not 0x27 :)
I’ve seen the left big button referred as “go_home_button” in the file with command list. The upper left button could be called “multifunctional_button”, trigger on top right - “recording_start_button” and I’ve never used small button on the right with camera drawing yet so I have no clue what’s it for

I’ve seen the left big button referred as “go_home_button” in the file with command list.
I mean I am not sure which standard joystick buttons should be mapped to these RC buttons. They all listed here:
https://docs.huihoo.com/doxygen/linux/kernel/3.7/include_2uapi_2linux_2input_8h.html


Updating config schema fields and sdk version

Updating config schema fields and sdk version

Summary by CodeRabbit

New Features

Upgraded the Baton SDK for enhanced capabilities.
Introduced a new dependency for improved caching performance.

Improvements

Shifted from Cobra to Viper for better application configuration management.

@mchavez Is something blocking you?

Oh yeah. CI for this PR needs to change docker-compose to docker compose to fix tests.


Support for Decimal Types - DataCloneError with decimal.js

Description
When using prismock with entities that contain fields of type Decimal from the decimal.js library, I encounter a DataCloneError whenever I use the find method. It appears that decimal.js does not support structured cloning, which is causing this issue. Here’s the error message I receive:
DataCloneError: function Decimal(v) {
  var e, i, t,
    x = this;

  // Decimal called without new.
  if (!(x instanceof Decimal)) { ...<omitted>... } could not be cloned.

Steps to Reproduce
1.	Define a model that includes a Decimal field.
2.	Use prismock to mock database operations involving this model.
3.	Attempt to retrieve an instance of this model using the find method.

Expected Behavior
The find method should successfully return instances of models that include Decimal types without throwing errors.
Actual Behavior
A DataCloneError is thrown, indicating an issue with cloning Decimal types.
Possible Solution
It would be beneficial if prismock could handle Decimal types or provide a workaround for libraries like decimal.js that do not support structured cloning.
Additional Context
Handling of Decimal types is crucial for applications that require high precision in financial computations or other numerical calculations. Providing support or a workaround for this issue would significantly enhance prismock’s utility in such scenarios.

For now, here is my workaround set-up for unit tests:
// Backup the original structuredClone function
const originalStructuredClone = structuredClone;

// Custom structuredClone that handles Decimal types
function customStructuredClone(input) {
    const replacer = (key, value) => {
        if (value instanceof Decimal) {
            // Convert Decimal to a serializable form
            return {type: 'Decimal', value: value.toString()};
        }
        return value;
    };

    const reviver = (key, value) => {
        if (value && value.type === 'Decimal') {
            // Convert back to Decimal
            return new Decimal(value.value);
        }
        return value;
    };

    // Use JSON stringify and parse as an example of handling custom types
    return originalStructuredClone(JSON.parse(JSON.stringify(input, replacer), reviver));
}

// Override global structuredClone with the custom function
global.structuredClone = customStructuredClone;

Hello @badeleux , thanks a lot for all the information! I'm going to have a look, will try to push a fix in the next few days

Hello @badeleux , I didn't find any satisfying solution without installing Decimal.js, which I want to avoid. Until then, I won't fix this issue directly, and will link to your workaround as showed in use with decimal.js.

Hi, I came across this after having the same issue and reading the documentation page on using with Decimal.js. I just wanted to note that this workaround does not fully work.
JSON.stringify(...) will call Decimal.toJSON() before running replacer, meaning that if (value instanceof Decimal) will never be true. If you do something like:
Decimal.prototype.toJSON = function () {
  return this;
}

... you'll run into the same DataCloneError as before.
This sometimes works I think because non-zero decimal values are deserialized into numbers, but zero will be deserialized into a string.
I ran into this because I'm facing issues with Prisma: Do not know how to serialize BigInt, and was hoping to tack BigInt onto the existing solution, rather than
BigInt.prototype.toJSON = function () {
  this.toString();
}

Here's my fix for the workaround:
BigInt.prototype.toJSON = function () {
  return this;
};

Decimal.prototype.toJSON = function () {
  return this;
};

// Backup the original structuredClone function
const originalStructuredClone = structuredClone;

// Custom structuredClone that handles Decimal types
function customStructuredClone(input) {
  const replacer = (key, value) => {
    if (value instanceof Decimal) {
      // Convert Decimal to a serializable form
      return { type: 'Decimal', value: value.toString() };
    }
    if (typeof value === 'bigint') {
      // Convert BigInt to a serializable form
      return { type: 'BigInt', value: value.toString() };
    }
    return value;
  };

  const reviver = (key, value) => {
    if (value && value.type === 'Decimal') {
      // Convert back to Decimal
      return new Decimal(value.value);
    }
    if (value && value.type === 'BigInt') {
      // Convert back to BigInt
      return BigInt(value.value);
    }
    return value;
  };

  // Use JSON stringify and parse as an example of handling custom types
  const clone = originalStructuredClone(JSON.stringify(input, replacer));

  return JSON.parse(clone, reviver);


STYLE: Fix ITK coding style inconsistency linter error

Fix ITK coding style inconsistency linter error.
Fixes:
Error: Code is inconsistent with ITK Coding Style.
Add the *action:ApplyClangFormat* PR label to correct.

Changes required:

Files:
Modules/Nonunit/IntegratedTest/test/itkBioRadImageIOTest.cxx

Changes:
diff --git a/Modules/Nonunit/IntegratedTest/test/itkBioRadImageIOTest.cxx
           b/Modules/Nonunit/IntegratedTest/test/itkBioRadImageIOTest.cxx
index 813d8b00..af2ea2b8 100644
--- a/Modules/Nonunit/IntegratedTest/test/itkBioRadImageIOTest.cxx
+++ b/Modules/Nonunit/IntegratedTest/test/itkBioRadImageIOTest.cxx
@@ -63,6 +63,5 @@ itkBioRadImageIOTest(int argc, char * argv[])
   ITK_TRY_EXPECT_NO_EXCEPTION(writer->Update());

-
   return EXIT_SUCCESS;
 }

raised, for example, at:
https://github.com/InsightSoftwareConsortium/ITK/actions/runs/5802502099/job/15728990457#step:4:6
PR Checklist

[X] No API changes were made (or the changes have been approved)
[X] No major design changes were made (or the changes have been approved)

This is so unfortunate. Sorry, my bad. Does not look like there is a good way of preventing this from happening. @thewtex Shall we rewrite the history and go back two commits?
https://github.com/InsightSoftwareConsortium/ITK/actions/workflows/clang-format-linter.yml

If needed, reverting a commit is fine.

If needed, reverting a commit is fine.

Given that reverting does not re-write history, it would still leave 2 commits whose style makes the style check to fail.

Will that problem go away once tip of master is stylistically correct?

Will that problem go away once tip of master is stylistically correct?

No, we can always check out a given commit.

Thanks Matt.


Unable to boot disks from read only file systems

When booting an iso from a read-only nix location, qemu fails with:
<vm> qemu-system-x86_64: Could not open 'grub.iso': Read-only file system

The iso is attached using the parameter -drive file=grub.iso,format=raw,if=ide,media=disk
Changing media manually to media=cdrom boots the image.

Currently it's not possible to specify other media-types with vm.boot(): https://github.com/includeos/vmrunner/blob/master/vmrunner/vmrunner.py#L1027
And only disk is supported in the schema: https://github.com/includeos/vmrunner/blob/master/vmrunner/vm.schema.json#L59


Adding seperate sounds for when holding down a key and releasing.

This is more of a feature request.
This app is AMAZING but there is just one thing missing: Seperate sounds for pushing down a key and releasing a key,  I feel like this is one of the small things that could make this program a lot more realistic and more pleasant in general.
Please add this feature. Thanks!

Completely agree with this, having a different sound for Key Pressed and Key Released is a huge improvement and would attract so much more people.

Completely agree with this, having a different sound for Key Pressed and Key Released is a huge improvement and would attract so much more people.

dupe of #21


ARROW-14187: [Python] Performance Regression on file-read benchmark

@ursabot please benchmark name=file-read lang=Python

I'm ok with the change but it is completely unrelated to file reading performance (which doesn't go through the Python conversion path).

I'm ok with the change but it is completely unrelated to file reading performance (which doesn't go through the Python conversion path).

Sorry, left this as a branch because I couldn't see locally how the original PR changes impacted the benchmarks, so I opened a PR to tweak them and see if it had any impact on the conbench. I also tried doing a git bisect locally to spot the commit that introduced slowdowns, but couldn't see any real difference in the benchmarks.
We will have to dig further if we want to actually find the culprit of the slowdown, I'm having an hard time proving it's related to the changes in https://github.com/apache/arrow/pull/11076 that seemed the original culprit of the slower timings.

@ursabot please benchmark name=file-read lang=Python

@ursabot please benchmark name=file-read lang=Python

Does it make sense to keep this PR open?

Closing as invalid


TestCompliance/Add_IPv4_entry_that_can_be_programmed_on_the_server_-_with_FIB_ACK fails due to mismatched operation IDs

I am working on implementing my own gRIBI server and I am trying to use your client code and compliance tests to help to verify my work.  Now, I am a go neophyte and it is possible that this problem is because I am doing something fundamentally wrong, in which case I would really appreciate if you can point me in the right direction and I will be on my way.
That said, I am trying to run the compliance tests against my implementation using a command line which looks like this:
$ cd cmd/ccli
$ go test . -addr <IP_ADDRESS>:57401 -v 10

Here is a subset of the output I get and the failure is the one I want to focus on here:
--- FAIL: TestCompliance (0.27s)
    --- PASS: TestCompliance/Modify_RPC_connection (0.03s)
    --- PASS: TestCompliance/Modify_RPC_Connection_with_Election_ID (0.02s)
    --- PASS: TestCompliance/Modify_RPC_Connection_with_invalid_persist/redundancy_parameters (0.04s)
    --- PASS: TestCompliance/Add_IPv4_entry_that_can_be_programmed_on_the_server_-_with_RIB_ACK (0.03s)
    --- FAIL: TestCompliance/Add_IPv4_entry_that_can_be_programmed_on_the_server_-_with_FIB_ACK (0.04s)
        compliance.go:217: results did not contain a result of value <0 (0 nsec): AFTOperation { ID: 1, Status: FIB_PROGRAMMED }>, got: [<1628623964763337070 (0 nsec): SessionParameterResult: OK ()> <1628623964763337070 (0 nsec): ElectionID: 2> <1628623964763337070 (0 nsec): AFTOperation { ID: 4, Status: FIB_PROGRAMMED }> <1628623964763337070 (0 nsec): AFTOperation { ID: 5, Status: FIB_PROGRAMMED }> <1628623964763337070 (0 nsec): AFTOperation { ID: 6, Status: FIB_PROGRAMMED }>]

What I believe is happening here is that internally, there is an opCount value in the client instance which starts at 0 and is incremented to assign a operation id to the message.  The TestCompliance/Add_IPv4_entry_that_can_be_programmed_on_the_server_-_with_RIB_ACK uses operation IDs 1 through 3.  That means that once TestCompliance/Add_IPv4_entry_that_can_be_programmed_on_the_server_-_with_FIB_ACK runs, the operations are sent with IDs 4 through 6.  However, the addIPv4Internal() function is expecting operation IDs 1 through 3.  They are hard-coded in the chk.HasResult() statements.  The output above also shows that the compliance test is expecting IDs 1 through 3 but my server is sending back 4 through 6.
As a test, I added a method on the client that returned the value of opCount and then changed the chk.HasResult() statements to look for (opCount - 2), (opCount - 1) and opCount instead of 1, 2 and 3.  With that change in place, I can get TestCompliance/Add_IPv4_entry_that_can_be_programmed_on_the_server_-_with_FIB_ACK to pass and the RIB variant also still passes.  But I don't think that is a clean fix for the problem and I wouldn't necessarily recommend it (I am a go neophyte after all).
I am making the assumption that the values sent by the client in AFTOperation.id are the same numbers to be returned in AFTResult.id but the proto file seems to say that this is the right behaviour:
message AFTResult {
  // The ID corresponds to the operation ID that was
  // specified in the AFTOperation.
  uint64 id = 1;

Thanks for your help with this!

This problem is no longer reproducible in the latest.  Closing.


chore: promote react-spring to version 0.0.53

this commit will trigger a pipeline to generate the actual kubernetes resources to perform the promotion which will create a second commit on this Pull Request before it can merge

react-spring
Changes in version 0.0.53
Chores

release 0.0.53 (jenkins-x-bot)
add variables (jenkins-x-bot)

[jx-info] Hi, we've detected that the pipelines in this repository are using a syntax that will soon be deprecated.
We'll continue to update you through PRs as we progress. Please check #8589 for further information.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

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

@iMckify: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

verify
8d86285ede64d5bc080b6aedda092335ab26573f
link
/test verify

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.


"step" property of mwc-textfield should take "any" as a valid value

Describe the bug
mwc-textfield component ignores step="any" and restricts to whole number while the expectation is that the control should accept any number of decimals. Document about mwc-textfield points to "HTMLInputElement.prototype.step" constraint page which also acknowledges that "any" can be passed as an input to step property.
To Reproduce
Steps to reproduce the behavior:

Use mwc-textfield with type="number" and step="any",
like., <mwc-textfield label="AnyDecimals" type="number" step="any"></mwc-textfield>
The control should accept any number of decimals
But it ignores the step attribute and restricts only to integers

Expected behavior
There should be a way to let the component take any number of decimals if the need be.
Going by the HTMLInputElement.prototype.step convention, passing in "any" as step's value can be considered as best option.

Thanks for the bug report!
It looks like the typing of the attribute is set to Number, which will discard the any string, defaulting to 1.
As a workaround for now, you can set the step property to any for now
class Wrapper extends LitElement {
  @query('mwc-textfield') textfield!: TextField;
  render() {
    return html`<mwc-textfield label="AnyDecimals" type="number"></mwc-textfield>`
  }
  firstUpdated() {
    this.textField.step = 'any';
  }
}


Store: price.nickname in firestore

Feature request
firestore-stripe-subscriptions
Is your feature request related to a problem? Please describe.
Price data stored in firestore should include the price's description as well. This use case is useful using the description to name different pricing tiers to display to customers.
Describe the solution you'd like
Update the insertPriceRecord handler for price.create and price.update to also store price.nickname
Describe alternatives you've considered
An alternative is to look at price.interval and display "Monthly" or "Annually" to customers depending on what price.interval is
Additional context
N/A

This has been added to the next release for Thursday PT.


__construct() must implement interface Interop\Container\ContainerInterface

Same problem as described here: https://github.com/zendframework/zend-view/issues/43 (which is already fixed in 2.6.1)
Now it affects Zend\View\Helper\Navigation\PluginManager
Error: "__construct() must implement interface Interop\Container\ContainerInterface, none given"

Yes same problem.. Duplicated issue

#47 will resolve this; just waiting for confirmation before merging and tagging 2.6.2.


[stable/nats] Update configuration path for gnatsd.conf

What this PR does / why we need it:
Don't hard-code bitnami in any configuration file or path, except for the Docker image repo.
Which issue this PR fixes

N/A

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[X] DCO signed
[X] Chart Version bumped
[X] Variables are documented in the README.md
[X] title of the PR contains starts with chart name e.g. [stable/chart]

/assign @maorfr

/assign @prydonius


Consistency in the rules GUID

Some are in upper case some are in lower case …

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


Update data-files.yml

What does this PR do?
Adds support for the arcade module
Why was it initiated? Any relevant Issues?
Closes and fixes #1492
PR Checklist

[x] Correct base branch selected? Should be develop branch.
[ ] All tests still pass. Check the Developer Manual about Running the Tests.
There are Github Actions tests that cover the most important
things however, and you are welcome to rely on those, but they might not
cover enough.
[ ] Ideally new features or fixed regressions ought to be covered via new tests.
[ ] Ideally new or changed features have documentation updates.

Great, good job, I am putting it in the next hotfix, about to release this weekend.


Migrate to TypeScript

Refs MetaMask/safe-event-emitter#1 and MetaMask/eth-json-rpc-errors#7
As the two dependencies of the project are migrated this project is next in line for a TS migration.

This has been done.


Backport python3.7 collections warning fix

The fix is already in master but probably worth to backport it to the 2.10.x branch (based on this comment).
Not sure if fixing the warning also makes jinja 2.10.x Python 3.8 compatible, so I only mentioned removing the python 3.7 deprecation warning.

Thanks for the quick merge! 🙇


Add more config options and tests

Add hydrate/dehydrate config functions
Add readError/writeError config functions
Add tests

Hi @jdlehman, thanks for your PR!
Could you provide me with a little more context and tell me about your use-case/how you're using redux-localstorage.
I'm curious about your hydrate/dehydrate use-case. I thought about this type of functionality, but wasn't sure if there's really any need for it. If there is, I would prefer sticking to simpeler terminology such as format/parse, but why would you care or need to influence the structure of the data persisted to localStorage? Or am I mis-understanding your use-case and are you using these "hooks" for something else?
I'm also curious about your use-case for read-/writeError. I'm wondering whether simply throwing the error (allowing you to try/catch) might be better, rather then adding more config options.

The use case for hydrate/dehydrate is to handle Immutable data structures or data that needs to be massaged to get into a format to properly be used with JSON.stringify.
As for the errors, I think throwing the error is definitely the way to go instead of more config options. Good call

Removed error handing configs. Via slack discussion we decided it is probably best to throw an error to be handled elsewhere. (if we want to provide this customization)


grpc: 0.0.9-2 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository grpc to 0.0.9-2:

upstream repository: https://github.com/CogRob/catkin_grpc.git
release repository: https://github.com/CogRobRelease/catkin_grpc-release.git
distro file: melodic/distribution.yaml
bloom version: 0.6.6
previous version for package: 0.0.9-1

grpc
* Fixed missing grpc++_core_stats library. It is a new library generated by gRPC.
* Contributors: Shengye Wang

Re-release to make https://github.com/ros/rosdistro/pull/18305 effective.


Automate determination of github test matrix for compatibility tests

Summary
Currently, we manually maintain json config files which specify which tests should be run when running compatibility tests.
This can be prone to human error by incorrectly specifying a version or forgetting to add an entry to a specific file.
It would be nice if we could associate metadata in some way with the specific tests, this would allow us to dynamically generate the json contents if we have semver versioning associated with each test.

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

Quick experimentation shows that we can do this to extract comments from functions

A nice suggestion from @colin-axner is that we could use a structure like // @version_introduced v7.1.0 to specify. We may also be able to do something like
// @rly_minimum_version vx.y.z
// @hermes_minimum_version vx.y.z
This may be unnecessary as we usually just use the latest relayer versions when testing anyway.


How to copy files?

I need to copy some files from node_modules into the /dist/ folder, but I have been unsuccessful in doing so.
I found the https://github.com/webpack-contrib/copy-webpack-plugin plugin, but according to wpack.io documentation, it doesn't state how to extend webpack using plugins, like plugins: [new CopyPlugin([...patterns], { ignore: ['*.js', '*.css'] })],
Any help would be greatly appreciated. Thanks!

Any ideas? This must be a pretty key feature. Copying vendor scripts to dist folder

I have tried with this in my javascript:
import 'corejs-typeahead/dist/typeahead.bundle.min.js';

But that doesn't work.
If I do:
wp_enqueue_script('instantButler-typeahead-js', plugins_url('/node_modules/corejs-typeahead/dist/typeahead.bundle.min.js', __DIR__ ), array('jquery'));

Then it works just fine.

Actually the import works just fine, but it won't attach itself with any global variable because in es module environment, it's not supposed to do that. Check the docs of the module to see how you can use it in module environment.


Use auto-generated hostnqn as a fallback

We're facing a distribution packaging specific issue where we cannot afford to provide unique /etc/nvme/hostnqn or /etc/nvme/hostid files for various reasons (e.g. generic pre-built rootfs image). This is typically not a problem for nvme-cli and libnvme-based tools as a stable hostnqn is autogenerated as a fallback. Not so much for hostid that is often missing, that was not really a problem either.
However nvme-stas demands those files to exist unless hostnqn or hostid are specified in sys.conf.
https://github.com/linux-nvme/nvme-stas/blob/45c1985e4b494e2c626f4eb44649282aa728281c/staslib/stas.py#L351-L360

You're basically asking for post-installation configuration to be executed at run time. Sorry to be blunt, but that's the kind of stuff that makes my skin crawl.
The hostnqn and hostid are just the tip of the iceberg. We are currently working on security, which will require users to configure unique authentication keys. BTW, the hostid is now mandatory because of explicit registration with Central Discovery Controllers (CDC). The hostid and hostnqn must not only be unique per host, but also remain constant between reboots and software upgrades so that a host can consistently identify itself to a CDC.
 For example, we had customers using pre-built rootfs images that ended up with the same SSH keys on all their systems. We ended up giving them a script that they could run on the first boot that would fix all the configuration.
It's a slippery slope when upstream projects have to fix problems artificially created by users. nvme-stas is not the only project that requires post-installation configuration. Are all upstream projects that require post-installation configuration going to be asked to do post-installation configuration at run time (e.g. openssh)? I'm just curious.
I'll have to check with all the interested parties how we want to address this. Like I said, it's not just the hostid and hostnqn. There's a whole bunch of security-related parameters that are coming and everything should be handled the same way. I don't want to have to maintain a multitude of different config scripts.

 For example, we had customers using pre-built rootfs images that ended up with the same SSH keys on all their systems. We ended up giving them a script that they could run on the first boot that would fix all the configuration.

Those people are using broken image build tools.  For Fedora CoreOS and derivatives like RHEL CoreOS, our images generate SSH keys on first boot in the same way as traditional dpkg/yum type systems.

nvme-stas is not the only project that requires post-installation configuration. Are all upstream projects that require post-installation configuration going to be asked to do post-installation configuration at run time (e.g. openssh)? I'm just curious.

Yes exactly: in Fedora derivatives for example, ssh key generation has happened via a systemd unit for many years now.  Though it looks like that's not the case on Debian derivatives currently.

Thanks @cgwalters - I was not aware of this special service to generate ssh keys on Fedora. I like this approach and will look at implementing something similar for nvme-stas.
P.S. Yes, I am a Debian developer, but I'm slowly moving towards Fedora. Still have much to learn. :wink:

Thanks @martin-belanger, this insight into upcoming requirements and security tightening is essential for integration. We are talking mostly about corner cases here where the regular hostnqn and hostid files generation didn't happen during initial setup. This is not an issue with a traditional OS installation process.
Let me ask you one more curious question - is nvme-stas ever planned to be run within initramfs phase? (dependencies aside...) This opens bunch of questions in case where we can't modify the initramfs image (think of e.g. secure boot signing) and need to find a way to supply the required IDs and keys from the outside. Just thinking ahead.
My original motivation behind this request was to avoid the necessity to pollute the OS with extra systemd unit. Unlike the ssh key generation and iscsi initiator name setup that are pre-requisites for a specific daemon, there's no such thing for nvme, except of an early boot systemd target. Think for example about nvme-cli calls spawned from udev rules, here we want to have consistent IDs used in the fabrics network.

There were talks to have nvme-stas run during early boot. I know you said "dependencies aside...", but the dependencies are the main reason why nvme-stas cannot run during early boot. The most important ones are 1) the need for a mDNS engine (avahi) to perform automatic discovery of Discovery Controllers, and 2) the need for the dbus-daemon to be up and running so that stafd, stacd, and the avahi-daemon can all talk to each other.
In order to solve these dependency problems, one would have to define and implement a new communication protocol between stafd and stacd other than D-Bus, and implement a mDNS engine that can run at early boot. That's a lot of work.
You are correct about the problem we face during early boot. Where do the unique IDs come from? Do they get read out of the hardware itself by some magic trick?
What I like about using a oneshot service to generate the IDs is that we can use the ConditionFileNotEmpty=|! parameter to verify that all the necessary files needed by stafd and stacd are present before even starting them. For example:
[Unit]
Description=nvme-stas pre-exec configuration verification
ConditionFileNotEmpty=|!/etc/nvme/hostid
ConditionFileNotEmpty=|!/etc/nvme/hostnqn

[Service]
Type=oneshot
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=/usr/bin/stasadm init

But I guess we could also run a script using ExecStartPre= in both stacd.service and stafd.service to do the same. I'm still looking at the different options.

Fixed by: https://github.com/linux-nvme/nvme-stas/pull/154

Thanks! Tested and confirmed working.


Can you explain the HOST_IFINDEX and HOST_IFINDEX_MAC fields?

Why is HOST_IFINDEX the cilium_net network card, but HOST_IFINDEX_MAC is the mac address of the cilium_host , which is confusing. Shouldn't they indicate the same network card?
cat /run/cilium/state/globals/node_config.h
#ifndef CILIUM_NET_MAC
#define CILIUM_NET_MAC { .addr = {0xee,0xea,0xf8,0x02,0x21,0x60}}
#endif /* CILIUM_NET_MAC */
#define HOST_IFINDEX 6
#define HOST_IFINDEX_MAC { .addr = {0x06,0xbc,0xa7,0x7d,0x33,0x28}}
#define CILIUM_IFINDEX 7

root@i-zb2wzh19:/home/cilium# ip link show cilium_host
7: cilium_host@cilium_net: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 06:bc:a7:7d:33:28 brd ff:ff:ff:ff:ff:ff
root@i-zb2wzh19:/home/cilium# ip link show cilium_net
6: cilium_net@cilium_host: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether ee:ea:f8:02:21:60 brd ff:ff:ff:ff:ff:ff

I agree, this is confusing. Feel free to send a PR to fix it.

Thank you for your reply, I'll find a good way to fix it.

@duanjiong any update on the subject? Thank you


make sure on-demend is requesting right type

control plane only serves Address
control plane only has delta generators for type ADDRESS
https://github.com/istio/istio/blob/master/pilot/pkg/xds/delta.go#L431
->
https://github.com/istio/istio/blob/master/pilot/pkg/xds/workload.go#L43
delta.go does a specific map look up in its generator for type url - and there is only one for ADDRESS:
https://github.com/istio/istio/blob/master/pilot/pkg/xds/discovery.go#L561
otherwise a nil delta is returned

as far as I can tell, the on demand logic is never firing when things are working. I think I've only seen it during development and I had the control plane pushing a bad/incomplete WDS config

@GregHanson: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

test_ztunnel
d8fe5f49cae6035a0f67e0e3982e419c0676db5e
link
true
/test test

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

on-demand is off by default. But hoping to work on it more in the future


[2 Player Ensou] Puchichara misplacement & Score rank not displaying for the second player

Puchichara misplacement fixed

Score rank display for 2nd player fixed


Adding Morse code

Morse code is a method used in telecommunication to encode text characters as standardized sequences of two different signal durations, called dots and dashes. Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: “a” maps to “.-“, “b” maps to “-…”, “c” maps to “-.-.”, and so on.
eg: school
output: ... -.-. .... --- --- .-..
i and code this in c++,java and python.
@Kumar-laxmi can you pls assign me under ssoc'23

Assigned!
@kritika2313 : C, C++, Java & Python


Demonstration of a SKOS-backed semi-open vocabulary for MIME types

Background

In UCO, many types are identified by a string as opposed to a thing, i.e., a IRI-backed node in a graph. The advantage of the former is that a new type-by-string is easy to create when the particular type is missing from the ontology. The disadvantages are:

strings are not first-class citizens in the ontology world, as opposed to IRI-backed things,
consequently, subsequent code must be added to check whether the applied string equals the predefined type-by-string
the approach is rather error-prone on string typo's.

The advantage of the latter, i.e., type-by-IRI, are the opposite of the former type-by-string's disadvantages. At the same time, type-by-IRI has a disadvantage of its own, being that an upgrade of the available types with a new one requires knowledge of RDF(s), OWL, and/or the data model or ontology that define the other individuals being supplemented.
The purpose of this issue is to lay the foundation that is necessary to gain data/experience with users adding a type-by-IRI in UCO.
Objective / Purpose

The purpose of this issue is to lay the foundation that is necessary to gain data/experience with issues that users might run into when adding a type-by-IRI in UCO.
Requirements
Requirement 1
UCO shall have access to a SKOS-vocabulary that specifies individuals to represent each and every mime-type as defined by the IANA Media Types registry, in order to use these individuals to specify the type of a medium registered in UCO.
Requirement 2
The resulting taxonomy shall align with the standard two-tier scheme as defined by the IANA Media Type Registry:

Main tier: Media (Concept) Types, such as application, image, etc.
Secondary tier: Media Subtype, such as application/zip, image/gif, etc.

Requirement 3
The SKOS-vocabulary shall be serialised in Turtle.
Requirement 4
Loosely-coupled: Any modification to the SKOS-vocabulary shall not imply a change to the UCO-ontology.
Requirement 5
Manageability: Any modification to the IANA Media Type Registry shall effect an update to the SKOS-vocabulary, preferrably mechanically.
Requirement 6
Continuity & maintainability: Any modification to the SKOS-vocabulary shall result in a new version.
Requirement 7
Provenance: Any Media (Content) Type or Subtype added to the SKOS-vocabulary that originates from the UCO or CASE community, shall be categorised as such. This implies that for any Media (Content) Type / Media Subtype pair that exists, its provenance is maintained.
Risk / Benefit analysis
Benefits
The benefit of the stated objective is that data about, and experience from, users adding type-by-iri to the vocabulary become available. It is then possible to investigate how to improve the user acceptance and minimise their technical knowledge required for adding a new type in this way.
The benefit sof having a vocabulary about IANA Media Types available, are:

Using these concepts (individuals) as unequivocal types in UCO;
Becoming interoperable with Dublin Core users, particularly those that employ http://purl.org/dc/terms/MediaType in their graph design.

Risks

Except in relation to the semi-openess of the vocabulary, the submitter is unaware of risks associated with this change.
Consequences

The intention of theis CR is that the type-by-string design will be replaced by a type-by-IRI design. The consequences that are foreseen, are (not necessarily comprehensively) as follows:

A potential impact on the design of UCO on observable:mimeType to become an owl:ObjectProperty.
A potential breaking change (i.e., not backwards compatible) between the current version and the version implementing this CR.

Competencies demonstrated

Competency 1

CQ: What Media Types are specified in the ontology?
Result: All Media Types that are specified by IANA Media Type Registry.

Competency 2

CQ: What Media Types carry <substring> (string as ordered characters) somewhere in their name, abbreviation or description? No constraints apply for the amount of characters used in the substring; the search is agnostic for diacritical characters, i.e., an a in the substring finds ā, ă, ä and similar characters.
Result: Including their meta-data, only Media Types  and Subtypes from the IANA Media Type Registry are returned, the name, abbreviation or description of which contain the substring.

Competency 3

CQ: Which Media (Content) Types carry , e.g., zip?
Result: as described by  IANA Media Types registry.

Competency 4
As security service provider, I want to reference application/tar, and I don't care whether it is a IANA media type or not. I've always said application/tar, it's been coded like that in my product for a decade, and my customers know I mean 'tape archive' when I say that.

CQ: Similar to Competencies 1, 2 and 3, however, now also allowing for Media (Content) Types and Subtypes that originate from the UCO and CASE community / tool providers.
Result: Similar to Competencies 1, 2 and 3, however, now limited to Media (Content) Types and Subtypes that originate from the UCO and CASE community / tool providers.

Competency 5

CQ: Which [Media (Content) Types |  Media Subtypes] belong to [uco-something:IANAMediaType | uco-something:NonIANAMediaType]?
Result: A list of individuals of type [Media (Content) Types |  Media Subtypes] that, according to specification, belong to [uco-something:IANAMediaType | uco-something:NonIANAMediaType]

Competency 6

CQ: Does <specific media (sub)type> belong to uco-something:IANAMediaType or uco-something:NonIANAMediaType?
Result: Either uco-something:IANAMediaType or uco-something:NonIANAMediaType, according to specification.

Solution suggestion

The taxonomy converts the IANA Media Types registry into SKOS under a UCO namespace, following a mostly two-tier skos:ConceptScheme:

The top-level concepts are the so-called Media (Content) Types, e.g., application, image, etc.
The second tier of concepts are the so-called Media Subtype in each registry, such as application/zip, image/gif, etc.

Note that some extension media types not part of IANA are defined for various reasons, and may or may not be submitted in the future for standardization to IANA. These extensions follow the non-registration practice of [RFC 6838, Section 3.4], and all include the string [/x-uco-].
This repository's primary product is a monolithic ontology and taxonomy file, serialized in Turtle, mime.ttl.
(This repository is undergoing NIST review for release. If you are interested in providing early feedback, please contact @ajnelson-nist .)
UCO could subclass dcterms:MediaType with a new class uco-types:IANAMediaType, and a sibling uco-types:NonIANAMediaType in order to support Requirement 7 and Competency 4.
Coordination

Tracking in Jira ticket OC-204
[x] Administrative review completed
[x] Requirements to be discussed in Ontology Committee (OC) meeting, 2022-05-05T10:00-04:00
[x] Requirements Review vote occurred, passing, on 2022-05-05
[x] Requirements development phase completed.
[x] Solution announced to OCS, 2022-08-17.
[ ] Solutions Approval to be discussed in OC meeting, 2022-08-25.
[ ] Solutions Approval vote has not occurred

[ ] Solutions development phase completed.
[ ] Implementation specific to UCO ontology repository has not been merged into develop

[x] Milestone linked
[ ] Documentation logged in pending release page

In response to Competency Question 3, "Which content types carry zip?"
Answers to that question should return the various x formats of Microsoft Office files, e.g. .docx.  That is, they should return any file with what would be recorded in today's UCO as "observable:mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", via knowledge that that MIME type is a narrower concept than application/zip.  Many of these relationships with zip can be found by review of the IANA documenting page - here is the .docx page.  Unfortunately, reviewing for just the string "zip" among those pages won't be a perfect zip-relationship finder, as application/gzip is not related.

One part of the Solution of this proposal has been posted, in PR 377.  The earlier commits document the rationale for some class selection and extensions.
This PR includes demonstration in unit tests of how MIME taxons can be used while looking close to string-literal properties (see kb:file-8 in this file), define taxons as IANA, non-IANA, or only a more general dcterms:FileFormat found to have been used in other RDF data models (see the nodes in this file, or its corresponding tests in test_mime.py).
The MIME demonstrations in that PR also include demonstration of a hierarchy between Media Types, including some "aliasing" relationships.  test_mime.py includes demonstrations of finding all application/gzip content, even if that content is encoded as narrower taxons such as application/tar+gzip.
I cannot yet share the repository that generates the IANA Media Registry, but here are a few examples of taxons included in its generated monolithic resource:
<http://purl.org/NET/mediatypes/application/gzip>
        a
                dcterms:FileFormat ,
                skos:Concept
                ;
        dcam:memberOf dcterms:IMT ;
        skos:exactMatch <https://taxonomy.unifiedcyberontology.org/uco/mime/0.0.1/application/gzip> ;
        .

<https://taxonomy.unifiedcyberontology.org/uco/mime/0.0.1/application/gzip>
        a
                prov:Entity ,
                uco-types:IANAMediaType
                ;
        rdfs:isDefinedBy <https://www.iana.org/assignments/media-types/application/gzip> ;
        skos:exactMatch <http://purl.org/NET/mediatypes/application/gzip> ;
        skos:inScheme uco-mime:MIMEScheme ;
        skos:notation "application/gzip" ;
        .

<https://taxonomy.unifiedcyberontology.org/uco/mime/0.0.1/application/tar+gzip>
        a uco-types:NonIANAMediaType ;
        rdfs:comment "The media type suffix +gzip is registered in RFC 8460, Section 6.3."@en ;
        rdfs:seeAlso <https://www.rfc-editor.org/rfc/rfc8460.html#section-6.3> ;
        skos:broader
                <https://taxonomy.unifiedcyberontology.org/uco/mime/0.0.1/application/gzip> ,
                <https://taxonomy.unifiedcyberontology.org/uco/mime/0.0.1/application/tar>
                ;
        skos:notation "application/tar+gzip" ;
        .

I selected those excerpts because:

.tar.gz is a file extension encountered in supply chain security review, yet currently lacks a taxon in the IANA registry
Dublin Core provides a class and prefix for Media Types in their metadata publishing guide, including the demonstration in Turtle ex:myPicture dcterms:format mime:jpeg ..
The second UCO taxon defined in the above excerpt covers some uniqueness constraints found in the SKOS specification.  In short, because of these constraints, it can lead to an inconsistent SKOS knowledge base if one tries applying SKOS annotations to concepts outside one's own namespaces.  Hence, there is a set of Media Types UCO defines that is mostly parallel with the IANA+Dublin Core set.

There is also a prov:Entity declaration, which handles another "Aliasing" issue that happens to be relevant to UCO users.  text/xml is defined in RFC 7303 as an alias of application/xml.  There turns out to not be a SKOS mechanism to support one concept being an alias of another when both are in the same concept scheme, so the taxonomy resorts to prov:alternateOf to handle these aliasing cases.
At the end of the day, the (pending-release) taxonomy will permit discovery of all XML files in a knowledge base by including this in a SPARQL query:
?nMimeType
    skos:exactMatch* /
      skos:broaderTransitive* /
        prov:alternateOf* /
          skos:exactMatch* /
            skos:notation "text/xml" ;

As an aside, it was surprisingly complex to determine how to work with forward slashes in prefixed concepts between Turtle, JSON-LD, and SPARQL.  Each syntax handles forward-slash differently.  Further details for those curious are in this bug report and its attached PR.  Fortunately, usage of skos:notation within the present proposal saves UCO from having to deal with that nuance, because what one would search for in SPARQL would be a string value, and what one would encode in JSON-LD can look like the Media Type name, with some kind of mime: prefix.

@ajnelson-nist What needs to be done before submitting this to solutions review?

The taxonomy repository has been posted here, with some notations that it is currently experimental and needs committee review:
https://github.com/ucoProject/UCO-Taxonomy-MIME
We should now have sufficient demonstration available to show whether these changes to observable:mimeType and related are suitable for adoption.

This continues to be an invalid change proposal under the CDO charter foundational principles as discussed at length for the issue proposing changing controlled vocabularies to use semantic individuals rather than strings.
This is simply a proposal to make such a change for a single vocabulary. It is invalid for the same reasons the broader issue is invalid.
This (mime types) is even one of the two example areas (the other being kindOfRelationship) explicitly discussed where the proposed changes will quickly lead to problems because they are areas that UCO can never assure that they are complete. Both of these areas will always include values where UCO individuals are not current or where specific parties may need to use values outside of any appropriate standardization within UCO. Ironically, to demonstrate this concern the official IANA media type registry has been modified/updated on Aug 22, 2022 since the MIME taxonomy proposed here was last updated meaning it is already out of date.
The proposal is invalid due to a requirement that a user ontologically define an individual for a mime type (for which there is a clear string format standard defined) they wish to use that is outside the current UCO taxonomy version which is an impractical burden for the large majority of likely adopters. In this case, if a user needs to reference a MIME type not currently in the UCO taxonomy, such as if they submitted it and it was approved for IANA registration but a new UCO taxonomy updated version has not been released, they will be forced to define their own ontological entry (an already impractical burden) but now when the UCO taxonomy is updated with the new IANA registry they will now have divergent content (the interim individual they created and the new "official" individual).
When the issue of the invalidity of the proposal for changing vocabs to semantic individuals was discussed the ball was placed in the proposers court to suggest an approach that allowed the rigor of semantic individuals while allowing the required flexibility of strings. I have seen no such suggestion and this specific change proposal does not offer such a suggestion but rather is simply a single subcase of the broader proposal that was rejected.

Re: Rejection of broader proposal
I do not believe the proposal was rejected, but rather withheld due to lack of technical knowledge.  We have significantly more technical knowledge now.
Re:

... under the CDO charter foundational principles as discussed at length ...

Only one person has declared those principles foundational, and other similar-strength language, and we have already seen those principles (I suspect the act one you're referencing) be used to attempt to move UCO away from a technology that is essential for any interoperability with other RDF-based technologies, which would be a significant act of UCO's isolation if enacted.
The entire UCO design document is still under committee review.
Re: incompleteness
I agree on lag being a possibility.  The taxonomy does create a need for an operational tempo.  In support of a regular deployment tempo, maintenance of the taxonomy for adding is almost entirely scriptable.  make already handles refreshing the taxonomy entirely (observe its CI).  It doesn't yet handle stamping a new versionIRI, but that scripted step can be added as well.  I'm not sure if Github steps on generating releases could or should be automated, but "Refreshes" could be a calisthenic for Github mechanics, which our community does need in discussions with the "Product Manager" role that has been left unfilled for a while.
Re:

The proposal is invalid due to a requirement that a user ontologically define an individual for a mime type (for which there is a clear string format standard defined) they wish to use that is outside the current UCO taxonomy version which is an impractical burden for the large majority of likely adopters.

You missed some details where the semi-open vocabulary enforcement pattern of gently (sh:Info-severity) suggesting using individuals stronger than dcterms:FileFormat is used.
mimeType is changed to the class dcterms:FileFormat.  Those individuals exist outside of UCO, and don't need to exist as defined by Dublin Core.  (Indeed, today they aren't deployed, which is a graph-provisioning matter to discuss with their team.  I've had some pleasant maintenance interaction with them recently, though, so I think this is approachable.)
observable:mimeType-class-types-MIMEFormat implements that gentle suggestion.
A firmer sh:Warning-severity shape requests whatever individuals used have skos:Notation so the text form can be available.  I don't think that should be made into a sh:Violation-severity shape, because if the individuals do get provided by Dublin Core, they aren't guaranteed to use SKOS concepts.
Re: Keeping mimeType a string
I have not seen arguments against the benefits of this proposal that strings make more difficult.

Does the MIME type for JPEG pictures have the e in jpeg or no?  How do we enable interoperability when two significant knowledge bases disagree?
What is the MIME type string for tarballs?  I found a few candidate spellings.  How would UCO encode that this set of non-IANA-recognized values mean "tarball"?

application/tar+gzip
application/x-tar+gzip

Many formats are specialized zips.  How could we encode that application/vnd.openxmlformats-officedocument.wordprocessingml.document entails an additional MIME type of application/zip?

I still believe UCO's current pattern pattern of semi-open vocabularies will hit a technical insurmountability with "Extension" vocabularies that are sets of strings that somehow use a non-public namespace.  I admit the implementation in this MIME proposal does not yet get all the way to using the pattern I think the other properties will need.  Other properties, especially kindOfRelationship as a string, need to be anchored off of unique string labels of concepts tied into classes in UCO.
If this proposal is not accepted today, I will adjust it. The MIME taxonomy does by itself serve a need in CASE-Corpora (DCAT uses dcterms:FileFormat), so we may need to look to demonstration in CASE-Corpora to understand when the implementation is satisfactory.

Only one person has declared those principles foundational

This is absolutely NOT one person declaring those principles foundational.
They are explicitly defined as such in the CDO charter and the charter specifically states that changes can not be made by the TSC or OCs that violate them.
It is simply not an option and not valid to hold a requirements review or solutions approval vote on.
As discussed before, I fully recognize the benefits fo having a formally defined taxonomy (some of which you identify above) and would love to have one. However, we cannot require users of UCO to refer to values directly as members of such a formal taxonomy for all the reasons discussed. It is very impractical for the large majority of UCO target users to have ontological knowledge and more specifically knowledge of how UCO uses ontology to define taxonomy individuals simply to express values outside what UCO has defined, especially for values such as MIMEType and kindOfRelationship where any UCO taxonomy or any other is guaranteed to be incomplete.
I have no objection to including the taxonomy as a definition reference for string values used but it must not be the direct mechanism for expressing those values.
At a minimum, we need to be able to express values as strings.
It would be better to have that with a reference taxonomy of known (vocab) string values.
It would be best to find a way to more formally bridge between flexible string values and the reference taxonomy when used values align to reference definitions for those values.
I have not yet seen a proposal for how to do that last part.

This was not voted on today for a few reasons.  Not necessarily all of them are listed here:

There is an operations issue where the MIME taxonomy would need to have a designated maintenance team.
There is a solution possible using a new object-property, something like observable:mimeTaxon, that would let workflows that have stronger needs for graph individuals use those types rather than the string-typed mimeType.
There is likely a more general design solution to semi-open vocabularies, that could let this proposal turn into a backwards-compatible change, and not require implementing a string-enumerant rdf:List in the uco-vocabulary namepace.  The solution would likely involve a SHACL-SPARQL constraint.

A further note on the current uncontrolled nature of mimeType strings:  This property currently has no restrictions on its values.  A proposal was raised in the committee call this morning to implement a vocabulary, and I opposed it for an unfortunate technical reason.  There is a performance issue with rdf-toolkit.jar where it suffers a significant slowdown when working with rdf:Lists of any appreciable length.  I'm not sure what the exact number for "Appreciable" is, but the observable relationship vocabulary currently in the uco-vocabulary namespace is past that number, and it currently takes over a minute to normalize that file's contents.  If this is a super-linear slowdown, a mimeType controlled vocabulary set could make normalizing the uco-vocabulary namespace untenable.  This is an unfortunate issue that needs to be worked through with the maintainers of rdf-toolkit.
Looking forward, I still believe IRI-identified graph individuals will be a necessity as a full replacement for the current UCO semi-open vocabulary design.  I think the resolution, using classes developed for this proposal, would involve something like this query as part of a sh:PropertyShape with target sh:targetObjectsOf observable:mimeType:
SELECT $this
WHERE {
    FILTER NOT EXISTS {
        ?nTaxon
            a/rdfs:subClassOf* types:MIMEFormat ;
            skos:notation $this ;
            .
    }
}

I think that is a correct way, but using a NOT EXISTS makes me wonder if it's a sufficiently fast way.
I think this will need to be exercised further before returning for committee review.  Likely, it will be tried in CASE-Corpora as that graph grows, particularly with an eye towards "govdocs1".


Active connections will not be released

Expected behavior
Write here what you're expecting ...
Actual behavior
Write here what happens instead ...
Steps to reproduce:
Please create a reproducible case of your problem. Make sure
that case repeats consistently and it's not random
1.jedisPool.getNumActive()
The number of connections that will increase by dozens every day will not be released. I checked the use of all connection pools and confirmed that the close method was used. Yesterday, when the database was special card, the number of connections was increased by 300+. What would cause the connection to fail to be recovered

why？
Redis / Jedis Configuration
Jedis version:2.9.0
Redis version:5.0
Java version:openjdk1.8

@asdxiaoqex can you please try with newer version? couple of leaks were fixed in the last year.
BTW, Jedis implements Closeable so you can just user try-with-resources block

What is the most stable version so far?

@asdxiaoqex Do you have any update?


Support a draft compilation mode for faster development iteration

Although Dartium is great, sometimes it is necessary to test / develop on other browsers, and dart2js is painfully slow for interactive development.
I know DDC will eventually fix this use case, but I think there should be a way to skip some passes from dart2js in (optimize.dart)[https://github.com/dart-lang/sdk/blob/master/pkg/compiler/lib/src/ssa/optimize.dart#L32) with a -draft compilation mode, even at the expense of execution speed and code size: I'd be happy to compromise with 20x slower & 10x larger code if it means I save 1 minute (out of 2) on each dev iteration.
This would be similar to GWT's draftCompile option.

There are some efforts in the dart2js backend that will make this easier in the future. Unfortunately the ssa-backend requires some of the optimizations to produce valid output, so we need to do a little refactoring first before we can add a flag like that.
Meanwhile, one thing you can try is to disable type inference by passing --disable-type-inference. Type inference is a big part of compilation times, but it also helps reduce the number of functions that end up being compiled. The more code we need to compile, the longer the compilation times, so it might not give you as much savings as you would like... Please give it a try and let us know how much that helps!

--disable-type-inference doesn't seem to save much on a first try (TBC, but looks like 5 sec out of 2 minutes)

So... since we wouldn't want --disable-type-inference set in release mode (pub build), would be great if we could have it set in debug (pub serve) only... (see similar request for Angular2: https://github.com/angular/angular/issues/5379)
transformers:
- $dart2js:
    debug:
        environment:
            COMPILATION_MODE: "debug"
        commandLineOptions:
            - --disable-type-inference
            - --trust-primitives
            - --trust-type-annotations
            - --trust-primitives
            - --fast-startup # unless this makes the compilation slower
    release: {...}
    commandLineOptions: [...] # options common to both debug and release

WDYT?

The $dart2js pseudo-transformer is completely handled within pub, so this might be a request to file with pub itself. Maybe file a separate request under http://github.com/dart-lang/pub/issues?
About the flags:

if you are going to use trust-*, you may as well use it in production too
--dump-info is not cheap, so I'd recommend excluding it from your release flags and only add it by hand --dump-info when you are actively analyzing something about dart2js's generated code.
--fast-startup shouldn't affect compilation times much. It's just generating code in a more straightforward way that makes it easier to parse/load in the browser (hence the "fast startup" name), but it will make the code bigger too. We have sometimes seen that even though it is bigger (~17% bigger?), it can load faster in mobile browsers (~10% faster?). So you may want to try it in release mode.

Awesome, thanks for the explanations, filed https://github.com/dart-lang/pub/issues/1363.
Otherwise, what are the odds that turning some SSA opts reduce the build time? (my poor understanding is the passes do lots of linear scans... has this been timed?)

I think it will help. If you run dart2js --verbose you will see a printout of how much time is spent on each phase. You can see then how much is done during the SSA opts. The big bulk of the work in SSA is in creating the graphs and in codegen, though.


LUCI bots should use a JDK version specified in the input repository

This way two different engine commits can use two different JDK versions to compile the Android artifacts.
Currently, the JDK version is provided by the environment where these tasks run. This has the potential to break builds for older commits.
cc @dnfield, @CaseyHillers, @godofredoc

This should be possible by updating the engine .ci.yaml to include a JDK dependency on the relevant targets.
properties:
  dependencies: >-
    [
      {"dependency": "open_jdk", "version": "${your_cipd_version_here}"}
    ]

Then you'll need to update the recipe to use the flutter_deps recipe_module to parse these and ensure they're installed.

I was able to do a led test, and realize the config value here is wrong. While I listed open_jdk in the issue, what was landed in the config was openjdk. This presented us with the weird recipe issue. I'll send the ci.yaml change to fix it, and update the recipe_module to give a clearer error

This has relanded in the recipes, and should now take effect
https://flutter-review.googlesource.com/c/recipes/+/16523
Changing the JDK version in the ci.yaml will propagate on the next commit. In practice, you should add a bringup builder to validate a new JDK version, then migrate to the new version.


Top level layout no longer has ports.

Ports over the pads (with visible text!) used to be part of the top level layouts but got removed somehow (how did that happen???).  The ports need to be added back.  Along with probably a dozen other things that have to be done by hand (or else have a script made to do them) on the top level.
This error prevents LVS from being run correctly.

There is a routine in the interactive script called label_macro_pins. As an intermediate wip step, this api wasn't used. Probably that's the cause of the issue. I will make sure to follow the interactive script to the end.

This has been verified on the Caravel top level layout.


Cannot add a user to a authentication source of a realm

Background: I want to add a new user through the http-api on port 18081. I'm using Postman for that (local install).
I'm able to add a user to a realm with a password or cryptosign key and add it to a group. But when I try to login I always get the message
ClientSession left: CloseDetails(reason=<wamp.error.not_auth_method>, message='The requested authentication methods are not available for this user on this realm.')

Looking at my default security_config.json I find a section called sources where the different authentication methods are defined and usernames linked to an authentication method. For cryptosign, I have to add the new user to the list of usernames.  I cannot get sources through the api and I don't know add the new user. Also it's nowhere in the documentation and not specified in https://github.com/bondy-io/bondy/blob/develop/apps/bondy/priv/specs/bondy_admin_api.json
So the question is, how can this be done in a running Bondy instance?

Hi @Jopie01 you are correct.
The issue is that not all Admin WAMP Procedures are exposed via the Admin HTTP API right now.
Just to check, for a user in your realm to be able to authenticate using a particular methods you need:

The realm to have the method listed in its authmethods property
The realm to have a sources rule where usernames is the string all or is a list of usernames which includes the user.

We are currently working on implementing and documenting all  the HTTP API  (I added Issue  #21 to track this activity ).
In the meantime,  you can operate on your Realm's sources using the WAMP API, please check the docs for bondy.source.add.
You could use Wick as you use CURL to call that procedure 😄 .
For example to allow myusername to authenticate into com.myrealm using password when connecting from any network you would use.
./wick --url ws://localhost:18080/ws \
--realm com.leapsight.bondy \
call bondy.source.add \
"com.myrealm" \
'{
	"usernames":["myusername"],
	"authmethod":"password",
	"cidr":"<IP_ADDRESS>/0"
}' | jq

@Jopie01 there is another option via HTTP.
You can use the (undocumented) /services/call HTTP API
curl -X "POST" "http://localhost:18080/services/call" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -H 'Accept: application/json; charset=utf-8' \
     -d $'{
  "procedure": "bondy.source.add",
  "arguments": [
    "com.myrealm",
    {
        "usernames":["myusername"],
	"authmethod":"password",
	"cidr":"<IP_ADDRESS>/0"
    }
  ],
  "options": {},
  "arguments_kw": {}
}'

@aramallo Thanks for the answer. I have already a running instance of Bondy with two users, but these are configured in the security_config.json and that works well. But now I want to add a third user which I want to add through the api.
When I execute
curl -X "POST" "http://localhost:18081/services/call" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -H 'Accept: application/json; charset=utf-8' \
     -d $'{
  "procedure": "bondy.source.add",
  "arguments": [
    "com.example.realm",
    {
        "usernames":["client1", "client2", "client3"],
	"authmethod":"cryptosign",
	"cidr":"<IP_ADDRESS>/0"
    }
  ],
  "options": {},
  "arguments_kw": {}
}'

I get this error back:
{
    "code": "bondy.error.http_gateway.invalid_expression",
    "description": "This might be due to an error in the action expression (mops) itself or as a result of a key missing in the response to a gateway action (WAMP or HTTP call).",
    "message": "There is no value for path 'requestbodyargs' in the HTTP Request context."
}

Just to mention that I want to add "client3" as the new user. The other two users are already there. I don't know if it is enough to only send the new user and that Bondy will take care to add the new user to the already existing list of usernames.

Arggg. Sorry @Jopie01 my bad, I was using an old snippet.
Can you try with the following?
curl -X "POST" "http://localhost:18081/services/call" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -H 'Accept: application/json; charset=utf-8' \
     -d $'{
  "procedure": "bondy.source.add",
  "options": {},
  "args": [
    "com.example.realm",
    {
        "usernames":["client1", "client2", "client3"],
	"authmethod":"cryptosign",
	"cidr":"<IP_ADDRESS>/0"
    }
  ],
  "kwargs": {}
}'

args instead of arguments and kwargs instead of arguments_kw.

Re your question

The other two users are already there. I don't know if it is enough to only send the new user and that Bondy will take care to add the new user to the already existing list of usernames.

Yes, you could just send the request with client3, as internally this will create a separate record per user (the other two users are already there.

@aramallo, thanks for the answers. Everything now works perfectly! Also the Wick one works.


RTPATHOCL resolutionreduction broken

LuxCore version: e7dd877bfa32a1001d33a611f0b5116b5e08e042
Steps to reproduce:

Open Blender scene: ocl_viewport.zip
Set viewport shading mode to "rendered" (top right corner)

If rtpath.resolutionreduction.preview is set to a value > 1, LuxCore slowly fills in the pixels in a block instead of the old behaviour of filling the whole tile with the first sample, then blending to the next finer-sampled pass.
Here's a video showing the broken behaviour:
https://youtu.be/M556o_kxYuk

Note: I'm using these other properties of resolutionreduction:
rtpath.resolutionreduction.step = 1
rtpath.resolutionreduction = 1
The related BlendLuxCore code is here: https://github.com/LuxCoreRender/BlendLuxCore/blob/8823b7d1c54ba234d54849d79a528b03970e9fb3/export/config.py#L188

But v2.3 or v2.4 sources ?

v2.3.

I should have fixed the problem.

I downloaded the latest build with OCL for Windows and I can't really confirm this.
The tiles are now filled with the first sample and no longer black, but the following "filling in" happens in the same slow and pixel-by-pixel way as before, whereas the render is much faster with rtpath.resolutionreduction.preview = 1.
Video of the new situation: https://youtu.be/G6fPKboTeCY?t=4
(unchecking "reduce first sample resolution" is setting rtpath.resolutionreduction.preview to 1)

Ok, I fixed a second problem in RTPATHOCL.

Thanks, looks like it's back to the old behaviour now.


Feature: Move tab focus to next folder item when deleting selected item

What feature or improvement do you think would benefit Files?
When a file is deleted in grid view, the focus rectangle (around the thumbnail) disappears, and only the down-arrow key apparently works to then display the focus rectangle around the 1st item. The other cursor keys (Home, End, cursor-left, cursor-right etc.) are ignored. In my testing with Explorer, the focus rectangle is moved to another thumbnail (not sure on the logic as it's not apparently consistent) and the other cursor keys still mostly work.
Requirements

consider moving the focus rectangle to another thumbnail after a file is deleted
allow cursor keys (as well as existing down-arrow) to move this rectangle

Files Version
<IP_ADDRESS>
Windows Version
23H2 22631.3880
Comments
No response

Thanks for the feedback, Sorry we missed your issues. I have added this to the project board.

@andrew-james-heard can you clarify what you mean by the focus rectangle?

does this clarify?

Yes
Can you also clarify if you're deleting via the keyboard or toolbar?

always the keyboard, thanks

When I delete a file via the keyboard, the focus automatically moves to the next item.

Interesting. I set view to Grid. I deleted a file. Focus rectangle was hidden on 1st test (BTW only cursor down then works). But on 2nd & subsequent tests is was as per your experience. So not consistent. And now I can't reproduce. I'm not sure what the conditions need to be, but clearly is sometimes an issue. Will monitor even more closely...


[feature](partial update)support insert new rows in non-strict mode partial update with nullable unmentioned columns

Proposed changes

expand the semantics of variable strict_mode to control the behavior for stream load: if strict_mode is true, the stream load can only update existing rows; if strict_mode is false, the stream load can insert new rows if the key is not present in the table
when inserting a new row in non-strict mode stream load, the unmentioned columns should have default value or be nullable

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run build all

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 49.44 seconds
stream load tsv:          456 seconds loaded<PHONE_NUMBER>9 Bytes, about 156 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          57 seconds loaded<PHONE_NUMBER> Bytes, about 18 MB/s
stream load parquet:          29 seconds loaded 861443392 Bytes, about 28 MB/s
insert into select:          68.3 seconds inserted 10000000 Rows, about 146K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230707091152_clickbench_pr_174378.html

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 53.14 seconds
stream load tsv:          510 seconds loaded<PHONE_NUMBER>9 Bytes, about 139 MB/s
stream load json:         19 seconds loaded<PHONE_NUMBER> Bytes, about 118 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          86.9 seconds inserted 10000000 Rows, about 115K ops/s
storage size:<PHONE_NUMBER>0 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230707172003_clickbench_pr_174374.html

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 47.12 seconds
stream load tsv:          455 seconds loaded<PHONE_NUMBER>9 Bytes, about 156 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          57 seconds loaded<PHONE_NUMBER> Bytes, about 18 MB/s
stream load parquet:          29 seconds loaded 861443392 Bytes, about 28 MB/s
insert into select:          68.7 seconds inserted 10000000 Rows, about 145K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230707104133_clickbench_pr_174432.html

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 51.15 seconds
stream load tsv:          502 seconds loaded<PHONE_NUMBER>9 Bytes, about 142 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
insert into select:          87.3 seconds inserted 10000000 Rows, about 114K ops/s
storage size:<PHONE_NUMBER>1 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230707184237_clickbench_pr_174434.html

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 48.93 seconds
stream load tsv:          451 seconds loaded<PHONE_NUMBER>9 Bytes, about 158 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          58 seconds loaded<PHONE_NUMBER> Bytes, about 18 MB/s
stream load parquet:          29 seconds loaded 861443392 Bytes, about 28 MB/s
insert into select:          69.8 seconds inserted 10000000 Rows, about 143K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230707230845_clickbench_pr_174739.html

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 52.22 seconds
stream load tsv:          500 seconds loaded<PHONE_NUMBER>9 Bytes, about 142 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          87.3 seconds inserted 10000000 Rows, about 114K ops/s
storage size:<PHONE_NUMBER>6 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230708071929_clickbench_pr_174737.html

run feut

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 53.4 seconds
stream load tsv:          447 seconds loaded<PHONE_NUMBER>9 Bytes, about 159 MB/s
stream load json:         21 seconds loaded<PHONE_NUMBER> Bytes, about 107 MB/s
stream load orc:          57 seconds loaded<PHONE_NUMBER> Bytes, about 18 MB/s
stream load parquet:          28 seconds loaded 861443392 Bytes, about 29 MB/s
insert into select:          66.6 seconds inserted 10000000 Rows, about 150K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230710023925_clickbench_pr_175397.html

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 53.6 seconds
stream load tsv:          500 seconds loaded<PHONE_NUMBER>9 Bytes, about 142 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          88.9 seconds inserted 10000000 Rows, about 112K ops/s
storage size:<PHONE_NUMBER>7 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230710104755_clickbench_pr_175400.html

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 50.1 seconds
stream load tsv:          446 seconds loaded<PHONE_NUMBER>9 Bytes, about 159 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          57 seconds loaded<PHONE_NUMBER> Bytes, about 18 MB/s
stream load parquet:          28 seconds loaded 861443392 Bytes, about 29 MB/s
insert into select:          69.0 seconds inserted 10000000 Rows, about 144K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230710093450_clickbench_pr_175865.html

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 51.03 seconds
stream load tsv:          501 seconds loaded<PHONE_NUMBER>9 Bytes, about 142 MB/s
stream load json:         21 seconds loaded<PHONE_NUMBER> Bytes, about 107 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          89.7 seconds inserted 10000000 Rows, about 111K ops/s
storage size:<PHONE_NUMBER>2 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230710173939_clickbench_pr_175863.html


Fix URL of DockerHub

Fix url because it returns 403

Sorry I'll close, this cla process is  hassle.


override for stft,istft

need to add
 /* Single-Channel
      in : 1 x shift
      out : 1 x frame_size + 2 (half FFT with complex)
    */
    inline void stft(short* in, double* out);

for now.
but for more flexible usage need to add more overrides for more types of parameters

implemented


fix (curriculum): made the order of the required code to be redundant

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #38311

Added checks for all possible positions for the required code.

@thecodingaviator Yes, I agree.  I started working on incorporating a CSS parser that will avoid us having to write these complicated regex asserts.  The idea is to have a set of global helper function available for us to use in the Tests.  Once such helper lets us check specific CSS values with the parser.

@RandellDawson I have no idea what an ETA on that might be, so do you think we should go ahead with this PR or wait for yours?

@RandellDawson I like your suggestions and if we're looking for a quick fix to this challenge, this should work, however, since it is unlikely these changes would be deployed soon and because the RWD section is under code freeze, I think it best to hold off this PR for now.
cc: @freeCodeCamp/moderators

@thecodingaviator The OP can still commit these suggestions.  We just need to wait until the code freeze is over before merging.  Technically, since only the testStrings are changed, we could probably go ahead an merge this (with @raisedadead's permission), because the changes will not need a translation.

Once all QA is done, let me know or assign me to this I will land this.

@hassaanp Please see the suggestions above.

@hassaanp Please see the suggestions above.

Thanks for the suggestions. I have applied them.

@raisedadead please go ahead and merge


swift build does not support --clean

I notice this error when building/cleaning swift-protobuf with make:
swift build --clean
error: unknown option --clean; use --help to list available options
make: [clean] Error 1 (ignored)

"swift build --clean" is needed by older versions of SwiftPM, "swift package clean" is used by newer versions.  That's why the Makefile uses both (and why both are prefixed with "-" which tells make to ignore any error).
I don't know if we're yet ready to remove the older form; we've committed to supporting a full major version back, so would like to keep support for 3.x.y until 4.x.y is released.


compile error(enable CUDA already)  :tvm.dll : fatal error LNK1120: 7 unresolved externals

Here's key msg:
3>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\Win32\cuda.lib : warning LNK4272: library machine type 'X86' conflicts with target machine type 'x64'
3>E:\Git_sources\TVM\tvm\build\Release\tvm_runtime.dll : fatal error LNK1120: 7 unresolved externals

as the error indicated, seems you linked to 32 bit cuda library while your target code is x64

I solved this by reset my evironment variable "Path". It seems that the compilation need CUDA lib, and somthing search system "Path" first to find cuda.lib instead of getting the path directly from "CUDA_LIB_PATH". Thanks for your reply. Have a good day!


Rules and the blacklist

The blacklist is causing people some pain. Its blanket blacklisting across errors is not good enough. Blacklisting needs to be context specific. This makes life a bit difficult. It's best to turn this off by default but also provide an easier way to add features like this.
Proposal. Create something like a rule (maybe think of a better name) that basically allows the core of the selector to be chained.
The interface
type Rule interface {
  Filter(services []*registry.Service) []*registry.Service {
  Mark(service string, node *registry.Node, err error)
  Reset(service string)
}

The internals
Select ...

for _, r := range s.opts.Rules {
  services = r.Filter(services)
}

Mark ...

for _, r := range s.opts.Rules {
  r.Mark(service, node, err)
}

Reset ...

for _, r := range s.opts.Rules {
  r.Reset(service)
}

The provide a way to add this as an options
func WithRule(r ...Rule) Option {
  return func(o *Options) {
    o.Rules = append(o.Rules, r...)
  }
}

Usage
selector.NewSelector(selector.WithRule(blacklist))

or
selector.Init(selector.WithRule(blacklist))

We've also some trouble with the blacklist. Is there currently a way to switch this feature off?

There's no way to turn it off at the moment. I'll look into this tomorrow.

The blacklisting has been temporarily disabled until a better solution can be created.

I've stripped blacklisting from the default and caching selectors. It's causing more problems than its worth. Reworking the selector interface is proving to be a problem and it's unlikely that I'll find a better solution than how it is now. It highlights the fact that one should not attempt to conflate a single selector but build one that's fit for purpose. Making something pluggable and then shoving more pluggability into it is pretty useless. I've created a separate blacklisting selector in go-plugins which can then be worked on to add options for specifying the types of errors to fail on. Otherwise for anything more advanced, I'll be building that into go-platform/router.


Messaging: What is mandatory about design systems ; who owns the mandate

As we work through a period of transition, land on messaging related to:

what about design systems is mandatory in the GC?
impending governance model of the mandate? how will decisions be made?


Update java.md

[ ] I followed the CONTRIBUTING guidelines.

Below, describe what this Pull Request adds:

sonarqube has moved to sonarcloud
xenon-cli has moved from nlesc org to xenon-middleware org

Thanks Bouwe!


Utilise eth-multicall in fetchContractAddresses method #695

time diff on current promises : 1013.5537109375 ms
time diff on eth-multicall :

Let me know if you need help with this.

It works well after switching into multicall. can you review for it? @Velua
And, It seems to take a little more time than before.


Refactor System module for JBallerina

Purpose
Refactor native implementation and unit tests of System module for JBallerina.
Check List

[x] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #16133 into jballerina will decrease coverage by 0.07%.
The diff coverage is 56.97%.

@@               Coverage Diff                @@
##             jballerina   #16133      +/-   ##
================================================
- Coverage          9.74%    9.66%   -0.08%
+ Complexity         2272     2256      -16
================================================
  Files              1468     1468
  Lines             71535    71490      -45
  Branches           8550     8549       -1
================================================
- Hits               6968     6909      -59
- Misses            63958    63972      +14
  Partials            609      609

Impacted Files
Coverage Δ
Complexity Δ

...erinalang/stdlib/system/utils/SystemConstants.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...g/ballerinalang/stdlib/system/nativeimpl/Uuid.java
33.33% <ø> (-6.67%)
1 <0> (-1)

...rinalang/stdlib/system/nativeimpl/GetUserHome.java
33.33% <100%> (-16.67%)
1 <1> (-1)

...rinalang/stdlib/system/nativeimpl/GetUsername.java
33.33% <100%> (-16.67%)
1 <1> (-1)

.../stdlib/system/nativeimpl/GetCurrentDirectory.java
33.33% <100%> (-16.67%)
1 <1> (-1)

...ballerinalang/stdlib/system/nativeimpl/GetEnv.java
66.66% <100%> (+24.99%)
2 <2> (-1)
:arrow_down:

...lerinalang/stdlib/system/nativeimpl/CreateDir.java
28.57% <33.33%> (-17.27%)
2 <0> (-1)

...erinalang/stdlib/system/nativeimpl/CreateFile.java
36.84% <36.36%> (-15.54%)
2 <1> (-1)

...ballerinalang/stdlib/system/nativeimpl/Rename.java
40% <45.45%> (-17.9%)
1 <1> (-1)

...rinalang/stdlib/system/nativeimpl/GetFileInfo.java
50% <50%> (-26.93%)
3 <2> (-1)

... and 16 more

Continue to review full report at Codecov.

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


[Feature request] Add option to draw multiple names

Hi,
This tool is great. I would like to help but I don't really good at node.js.
It will be great if this tool can allow user to draw multiple names from the list.
Also, it is also good if we can fine tune the time for the reel to rotate. If there is other quick way to do this, please let me know.
Thanks,
Sing

Hi sing, I'm not the person who developed this awesome tool but you can check my repo that I forked from this project.
I've added two more slots and added each of the three slots' titles for picking song titles, genres, and styles.
You can edit the titles in the src/pages/landing.pug in my repo(https://github.com/loupdaniel/Sync-Perfect) if you want.
.slots-container
      .slot-group
        .slot-text
          p Song Title

        .slot
          .slot__outer
            .slot__inner
              .slot__shadow
                #reel.reel

      .slot-group
        .slot-text
          p Genre

        .slot
          .slot__outer
            .slot__inner
              .slot__shadow
                #genrereel.genrereel

      .slot-group
        .slot-text
          p Style

        .slot
          .slot__outer
            .slot__inner
              .slot__shadow
                #stylereel.stylereel

That's sad. Some other lucky draw online tool suggest drawing multiple items but their UI is not as fancy as yours.
I do a quick (and dirty) hack for my purpose (same as  you, I need to use it in annual dinner for Chinese new year XD)
See if I can have more time to recode it and make up a patch for you to review and merge.

Hi @singsingwong2,
Thank you for sharing your quick hack. Your patch on the UI does look promising. However, I would prefer a more careful rethinking of the UI design. The reason for this is that the number of name picks and the height of the screen can vary, and I want to ensure the best user experience.
If we continue with the current slot machine UI for picking a large number of names at once, there is a possibility that a scroll bar might appear on the webpage. This could potentially impact the user experience negatively. On the other hand, I want to avoid imposing an upper limit on the number of names that can be drawn at once.
Given this consideration, I think I will need some additional time to brainstorm and come up with a solution that addresses these concerns. If you have any further ideas, please feel free to share them, and I will definitely take them into account.


debian-6

Hi. Your friendly Curry bot here. Just letting you know that all commit authors have become authorized to contribute. I have added the "Signed CLA" label to this issue so it can easily be found in the future.


[Issue] azd up for azd-aistudio-starter have different result in github workflow

[X] Make sure you've installed the latest version using instructions in the wiki

Output from azd version
Run azd version and copy and paste the output here:
In local machine: azd version 1.9.3 (commit e1624330dcc7dde440ecc1eda06aac40e68aa0a3)
In github workflow: azd version 1.9.3 (commit e1624330dcc7dde440ecc1eda06aac40e68aa0a3)
Describe the bug
For azd-aistudio-starter, azd up
Run on github workflow, more error will be throw:
UnmatchedPrincipalType: The PrincipalId '7bf330256f49491c855f7845a32b7065' has type 'ServicePrincipal' , which is different from specified PrinciaplType 'User'.
UnmatchedPrincipalType: The PrincipalId '7bf330256f49491c855f7845a32b7065' has type 'ServicePrincipal' , which is different from specified PrinciaplType 'User'.
UnmatchedPrincipalType: The PrincipalId '7bf330256f49491c855f7845a32b7065' has type 'ServicePrincipal' , which is different from specified PrinciaplType 'User'.
UnmatchedPrincipalType: The PrincipalId '7bf330256f49491c855f7845a32b7065' has type 'ServicePrincipal' , which is different from specified PrinciaplType 'User'.
To Reproduce
Fork azd-aistudio-starter, I create a ci pipeline for azd up. But it return above error on github workflow.  but not show in local.
I can provide the repo /workflow if needed.
The following is the ci.yaml
name: AI Gallery Template CI Validation
on:
workflow_dispatch:
push:
branches:
- main
- master
pull_request:
branches:
- main
- master
permissions:
contents: read
id-token: write
pull-requests: write
jobs:
build:
runs-on: ubuntu-latest
env:
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
steps:
  - name: Checkout
    uses: actions/checkout@v4

  - name: Set up Python
    # This is the version of the action for setting up Python, not the Python version.
    uses: actions/setup-python@v5
    with:
      # Semantic version range syntax or exact version of a Python version
      python-version: '3.x'
      # Optional - x64 or x86 architecture, defaults to x64
      architecture: 'x64'

  - name: Install AZD
    uses<EMAIL_ADDRESS>
  - name: Install python dependencies
    run: |
      python -m pip install --upgrade pip

  - name: Log in with Azure (Federated Credentials)
    if: ${{ env.AZURE_CLIENT_ID != '' }}
    run: |
      azd auth login `
        --client-id "$Env:AZURE_CLIENT_ID" `
        --federated-credential-provider "github" `
        --tenant-id "$Env:AZURE_TENANT_ID"
    shell: pwsh

  - name: Run validation
    run: |
      python .github/validator/validator.py . --azdup az--output .github/validator/output.log --debug

validator.py contains the azd up logic. use azd up --no-prompt
Expected behavior
Success azd up

Possibly related to #3834

Waiting on AVM related changes.


Create new google-cloud-conformance-tests module

A new module where common code related to conformance tests can be
shared.

Includes a rudimentary classpath scanner that can be used to locate
test definitions. (The firestore test suite currently have 224 test
definitions.)

The classpath scanner includes a suite of tests to ensure it can
accurately find resources in jar files and directories.
Tests have been ran against the following JVMs on Linux x64 and
verified to pass.openjdk version "1.7.0_75"
OpenJDK Runtime Environment (build 1.7.0_75-b13)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

openjdk version "12" 2019-03-19
OpenJDK Runtime Environment (build 12+33)
OpenJDK 64-Bit Server VM (build 12+33, mixed mode, sharing)

Replacing #5537

@kolea2 Please review

Looks ok to me, adding in @chingor13 for a core perspective.

@chingor13 Requests integrated. Failing windows build appears to be the spanner test that is flaky on windows.

Thanks for merging @chingor13!