add Bhaskar's introduction

@Bhaskarsahu23 - why did you close this PR?

When I added my introduction to the readme.md file it breaks(table breaks,
everything is sank in s single paragraph).
On Sat, Aug 26, 2023 at 7:03 PM Kendall @.***> wrote:

@Bhaskarsahu23 https://github.com/Bhaskarsahu23 - why did you close
this PR?
—
Reply to this email directly, view it on GitHub
https://github.com/The-Lively-Developers-Community/introductions/pull/49#issuecomment-1694342304,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQJAZXGJBMGICFXLUXTZIHLXXH3I5ANCNFSM6AAAAAA36VKQH4
.
You are receiving this because you were mentioned.Message ID:
@.***
com>


Convert example project to Cocoapods

In relation to the partial add of Cocoapods in PR #12
Cocoapods support is partial since Cocoapods tries to use the XCode project to build the frameworks when included as a dependency in another project.
The current XCode project only builds after a executing pod install
Current workaround is to
carthage update --no-build
pushd Carthage/Checkouts/sReto/Source/
pod install
popd
carthage build

In order to fix this issue, the example project would need to be fixed to build successfully without executing any additional commands.
This could be done in 2 ways,

Include the sub-dependency projects directly in this repo after a pod setup by modifying the .gitignore rules to include the checked out source.
Change the project to use Carthage instead of cocoapods, since Carthage will find the sub-dependencies listed in this projects Cartfile, checkout and build and create proper symlinks to the shared checkout after resolving version mappings.

I suggest solution 2, which would still maintain Cocoapods support side by side to Carthage support.

Feel free to assign this to me, added this ticket to track progress as noted in #12 .

Sounds like a good suggestion. As long as we still support CocoaPods for the main sReto framework, I am happy :-) Feel free to create a PR.
I would like to create another CocoaPod release in the next days as well. I will then wait until you have fixed this issue.

I updated the title and description, I kept typing Cocoapods when I meant Carthage 🤦♂

Alright :-) I think we should look to Alamofire for guidance as I did this in the past as well (a long time ago when Carthage was not so popular). They have CocoaPods and Carthage support and they also have an example project. We might also be able to support Swift packages in the future.


⚠ Bofrost.at has degraded performance

In fa4db7d, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1249 ms

Resolved: Bofrost.at performance has improved in 1348c65.


CreatePermissionAsync - tokenExpiryInSeconds causes Exception "One of the specified inputs is invalid"

Describe the bug
When I try to create a permission token on a container I keep getting this exception:
DocumentClientException with status code BadRequest, message: Message: {"Errors":["One of the specified inputs is invalid"]}, inner exception: null, and response headers: {
"x-ms-schemaversion": "1.9",
"x-ms-request-validation-failure": "1",
"x-ms-transport-request-id": "3",
"x-ms-serviceversion": " version=<IP_ADDRESS>",
...
}

After many hours I could identify that the issue is in using the parameter tokenExpiryInSeconds of method CreatePermissionAsync
This is the piece of code I'm using:
PermissionProperties p = new PermissionProperties(
                        id: _permissionId,
                        permissionMode: permissionMode,
                        container: container
                    );

                    permission = await user.CreatePermissionAsync(p, 60);

A new permission token should be created with the token lifetime specified in the CreatePermissionAsync method.
If I run this code everything works fine:
                    PermissionProperties p = new PermissionProperties(
                        id: _permissionId,
                        permissionMode: permissionMode,
                        container: container
                    );

                    permission = await user.CreatePermissionAsync(p);

Environment summary
SDK Version: Latest Version

I did some quick testing and it appears to be failing for anything under 600 seconds.

@j82w is read also failing for > 10M?

@kirankumarkolli it's working for values greater than 600 seconds/10 minutes.

Is this the expected behaviour? I remember to read in the documentation that the minimum value could 1 min

I am having the same issue and only more than 600 seconds works. This is definitely a bug since the documentation says 1 minute.

Short-term leased token bound to cause refresh cycles which are quite unnecessary. Most typical cases we have seen the expiry is much higher than 10M.
@middiu , @danielkon96 do 10M min interval fit into your scenarios?
@j82w  lets please address the docs gaps.

@kirankumarkolli yeah 10min works for me at this stage.
Cheers

@kirankumarkolli I'm running tests, so I just wanted to address the bug and let the cosmosDB team know. I don't have a production scenario right now.

@danielkon96  - Do you need any further assistance documenting this?
Please update documentation or fix the SDK to match documentation.
If documentation (and intelligence) says we can set as low as 10 seconds, an exception for invalid input should not be thrown if I'm trying to set to 180 seconds for a test.  :) I would rather not admit how many hours (days) lost on this thinking I was going crazy triple checking everything, even started spiraling out to different issues because I never would have thought to bump it up over 600 seconds given the explicit documentation to be as low as 10 seconds.


Accessing arguments

We need to access arguments of hooked methods with Swift, such as touches: NSSet in UIView#touchesBegan.
Is it possible to enable to access arguments like Aspects?
print(aspectInfo.arguments())

Sorry for the late reply. ;(
At the moment, can access AnyObject parameters of function.
But can only access at Objective-C.
If I may fix to problem, but AnyObject parameters only function.
Should you all type parameter to access?


Undefined property: stdClass::$currency_code at TaxBreakdown.php after upgrade from 0.6.* to 0.7.2

I can't see new orders in hub (orders created after upgrade)
Like in title:
Undefined property: stdClass::$currency_code at /home/forge/papertino.art/vendor/lunarphp/lunar/packages/core/src/Base/Casts/TaxBreakdown.php:3

first 3 rows are from newest orders (after upgrade).

Ok, after while it seems like it's not related to this column. Now only second and last works ok

The problem was in lunar_order_lines where my orders/lines for the "middle" orders was without"currency_code" and there was "total" not "value"

Yeah that sounds like the old format, when you upgraded locally to test did you encounter any issues when running migrations? There is a state update that runs which should convert the orders and lines

No, migrations ran without any problem or notifications - just standard migrations.

There are state updates that happen after the migrations fire. It looks like for some reason this hasn't run on the order lines. A couple of things...

How many order lines do you have in the DB?
Are all order lines affected? (excluding new lines) i.e. does it look like some have been updated?
Can you provide the tax_breakdown content for some that haven't been converted? Ideally pasted in not screenshot.

Hey, got the same issue after I ran the migrations, then I ran the php artisan optimize:clear command and everything was good, the error was inside a cached view.
I hope this solves your problem!
Cheers

[{"description":"VAT","total":368,"percentage":23}]
I tested it with older database and all 131 orders have updated tax breakdown (after migration) but for 42 of them order lines are not updated (206 order lines from 706)
@cambad not working for me

So if you run migrations again does that number shrink? Trying to see if it's timing out or if there is something else at play not updating the order lines

It does - now all are updated (even if this second time there was no migrations)

Yeah the state updates run on migration events, so they still trigger even if there are none.
We've spoke about this internally and eventually would like an update command instead


tests fail on M1 Mac with error[E0425]: cannot find function get_fault_info in this scope

Hi,
I'm trying to build the NEP171 example contract (ver 5d9f516) from scratch on MacOS 11.6, M1 CPU.
Build succeeds, but tests fail here:
   Compiling clang-sys v0.29.3
error[E0425]: cannot find function `get_fault_info` in this scope
   --> /Volumes/External/mykle/Documents/near/figment/flarn2.0/registry/src/github.com-1ecc6299db9ec823/wasmer-runtime-core-near-0.17.1/src/fault.rs:289:21
    |
289 |         let fault = get_fault_info(siginfo as _, ucontext);
    |                     ^^^^^^^^^^^^^^ not found in this scope

An online search for this error string suggested that this might be an issue with the wasm package requiring rust 'nightly' instead of 'stable'.  But 'nightly' wasn't able to compile or test the build.

I built successfully on an Intel mac (Mojave 10.14.6) so this is looking like an M1 issue.
In the erroring file wasmer-runtime-core-near-0.17.1/src/fault.rs , get_fault_info() is defined for macos+x86_64, but not for macos+arm.  That's a big clue.
I suspect this is more an issue with building the local NEAR runtime (used for testing?) than the example NFT contract. So probably this issue belongs in a different repo, but I'm not sure which one.  Please advise.  Thx!

Yes, I also face this error when run cargo test -- --nocapture  on Mac M1
error[E0425]: cannot find function get_fault_info in this scope.
Please help us to check this issue.

should be fixed by now since SDK is compatible with M1 (I am in an M1 now)


I'm working through configuring agents on our various servers and adding them to deployment groups.  But I have to install the agent nearly 400 plus servers how could it possible by a powershell script from a tool server which have fire wall access to all those 400 plus servers.

Having issue with YAML?
Please log an issue at Azure-Pipelines-YAML. Over there we discuss YAML templates, samples for Azure Pipelines, and designs for upcoming YAML features. Also a place for the community to share best practices, ideas, and so on. File suggestions and issues here if they're specific to YAML pipelines.
Having issue with Tasks?
Log an issue at Azure-Pipelines-Tasks. It contains all of the in-box tasks we ship with Azure-Pipelines/VSTS/TFS. If you're having issues with tasks in Build/Release jobs (e.g. unreasonable task failure) please log an issue there.
Having issue with software on Hosted Agent?
Log an issue at Hosted Agent Image Repository. It contains the VM image used in the Azure Pipelines Hosted Agent Pool. If you're having Build/Release failures that seems like they are related to software installed on the Hosted Agent (e.g. the dotnet SDK is missing or the Azure SDK is not on the latest version) please log an issue there.
Having generic issue with Azure-Pipelines/VSTS/TFS?
Please report it on Developer Community
Have you tried troubleshooting?
Troubleshooting doc
Agent Version and Platform
Version of your agent? 2.144.0/2.144.1/...
OS of the machine running the agent? OSX/Windows/Linux/...
Azure DevOps Type and Version
dev.azure.com (formerly visualstudio.com) or on-premises TFS/Azure DevOps Server?
If on-premises, which release? 2015.0, 2017.1, 2019 RC2, etc.
If dev.azure.com, what is your organization name? https://dev.azure.com/{organization} or https://{organization}.visualstudio.com
What's not working?
Please include error messages and screenshots.
Agent and Worker's Diagnostic Logs
Logs are located in the agent's _diag folder. The agent logs are prefixed with Agent_ and the worker logs are prefixed with Worker_. All sensitive information should already be masked out, but please double-check before pasting here.

If you go to your deployment group page, you will see the guideline script to in stall the agent. The script can be run remotely.  You can check this sample as well.
Using [PowerShell on Target Machines](PowerShell on Target Machines) you can execute this script on your targets.
Details as per you scenario -

Configure a build agent on a machine which has access to all 400 targets
Create a release and add "PowerShell on Target Machines" task. Provide the required inputs and execute the provided sample script. ( you may customize it as per your requirement). Ensure you execute this task for group of 25 machines. So for 400 machines you may need to add 16 task.
Ensure the script you will write is re-runnable and idempotent, so that in case of failures you can simply re-run the release.

If you are using Azure VMs then you can use this extension

please let us know if you need any more help here, closing this


Clean up client

This fixes a bug present in the erlang thrift client since at least 0.9.3, but is fixed in the forthcoming 0.10.
The client doesn't properly detect sockets that have been closed and as a result, leaks ports. Riffed would reconnect, but without cleaning up the port (which it shouldn't have to do). Since the mainline branch of riffed works with 0.9.3, I think this is a prudent fix.
@jparise @pguillory

If this code is run on 0.10 (once it becomes available), will it cause any problems? I'm wondering if this call should be based on some condition.

@jparise, no, closing an already closed client is a no-op.
When we release v1.5 of riffed, I'll remove this.

Great! 👍


Magic syntax for constraints: X > 5 -> Gt(5), etc.

Closes #28; needs some more tests for validation errors and edge cases if we decide to go for it, and of course documentation.
Importantly, adding most of the magic to our existing Interval and Len classes means that we can keep the API surface minimal, without exposing 'incomplete constraint' objects that don't really mean anything.  Note that I've set this up to error out immediately if you try using the comparison magics on something which already represents a constraint.  You can still do e.g. Interval(gt=3) < 5; this seems weird but OK to me in that it's very clear what it does and there's no duplication of bounds.

Pretty sad that len() refuses to return a non-integer... I guess we could have a len_X magic object too, which I like a little more than X.len()?

Oh, :facepalm: Annotated[int, ... <= 4] can't have an implementation in this package, it would need to be another "we recommend you interpret..." like we previously had with slice.
Overall, I'm a bit torn on this.
This brings us back to @adriangb's early suggestion that we provide a method to collect annotations, or at least a method to call on a given annotation to interpret it, or we just give an example.

I think I prefer len(X), or we could do X.len(), but it's less obvious.

I like the idea of shorthands like this, but every time I’ve implemented them it’s come back to bite me because of edge cases, complexity or just going unused. I also had to read this a couple times before I understood what was going on. Personally I would pause until Pydantic V2 goes live and we get more feedback from users. We can always add it at that point without even having to change Pydantic!

Agreed.


sbt revolver link is not found

https://repo1.maven.org/maven2/io/spray
https://repo1.maven.org/maven2/io/spray/sbt-revolver_2.12_1.0/0.9.1/sbt-revolver-0.9.1.pom
In this directory, there is no sbt-revolver
Maybe Link has been deleted. what happened?
cmd ) sbt
...
[error] sbt.librarymanagement.ResolveException: Error downloading io.spray:sbt-revolver;sbtVersion=1.0;scalaVersion=2.12:0.9.1
[error]   Not found
[error]   Not found
[error]   not found: https://repo1.maven.org/maven2/io/spray/sbt-revolver_2.12_1.0/0.9.1/sbt-revolver-0.9.1.pom
[error]   not found: /home/lmchain2/.ivy2/localio.spray/sbt-revolver/scala_2.12/sbt_1.0/0.9.1/ivys/ivy.xml
[error]   checksum format error: /home/lmchain2/.cache/coursier/v1/https/repo.scala-sbt.org/scalasbt/sbt-plugin-releases/io.spray/sbt-revolver/scala_2.12/sbt_1.0/0.9.1/ivys/ivy.xml.sha1

This seems like a duplicate of #110 : it's expected that the artifacts are not present at repo1.maven.org, but we'd expect sbt to find them at https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases .
Perhaps there's something wrong with your previously-downloaded /home/lmchain2/.cache/coursier/v1/https/repo.scala-sbt.org/scalasbt/sbt-plugin-releases/io.spray/sbt-revolver/scala_2.12/sbt_1.0/0.9.1 directory, could you remove that and try again? If the problem persists, could you share the contents of /home/lmchain2/.cache/coursier/v1/https/repo.scala-sbt.org/scalasbt/sbt-plugin-releases/io.spray/sbt-revolver/scala_2.12/sbt_1.0/0.9.1/ivys/ivy.xml.sha1?

@raboof well looks you need to check https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases.
Time flies when you’re having fun.
Your 14-day trial may be over, but you have options!
Need help choosing the right subscription or additional time on your trial? Just let us know and a DevOps expert will reach out to assist you.

Ah, that's not good ;) - looks like it's being investigated: https://twitter.com/scala_sbt/status/1644179045469356033

(closing this here since this problem is clearly wider than just sbt-revolver)

This library is only hosted on repo.scala-sbt.org currently and should get published to Maven central instead e.g. using sbt-ci-release. We never know when repo.scala-sbt.org will not be available anymore.


Plugin testing docs should show datasette.client

https://docs.datasette.io/en/stable/testing_plugins.html currently shows how to use HTTPX directly.

Live: https://docs.datasette.io/en/latest/testing_plugins.html


Floating point performance is not good as raspbian

Description

On raspberrypi-4 32bit yocto build, floating point calculation takes longer (double) than on official raspbian. A simple benchmarking c++ code is cross compiled on amd64 with hard floating point enabled. The same binary is transferred to poky build and raspbian.
Steps to reproduce the issue:

Compile the code:

auto val1 = 0.235125;
auto val2 = 0.152523;
auto result = 0.0;

auto start = std::chrono::system_clock::now();
for (auto i = 0; i < INT_MAX; i++) {
	result += val1 * val2;
}
auto end = std::chrono::system_clock::now();
std::cout << "dummy calculation: " << (uint64) std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << std::endl;

enable hard float compilation

SET ( CMAKE_C_COMPILER "arm-linux-gnueabihf-gcc" )
SET ( CMAKE_CXX_COMPILER "arm-linux-gnueabihf-g++" )
SET ( CMAKE_CXX_FLAGS "-std=c++11 -march=armv8-a -mfloat-abi=hard -mfpu=neon-vfpv4 -fopenmp ${CMAKE_CXX_FLAGS}" )

scp the binary to raspbian and yocto build on raspberrypi4.

Describe the results you received:
Raspbian: 15203 ms
Yocto build: 36984 ms
Describe the results you expected:
The same performance on yocto build.
Additional information you deem important (e.g. issue happens only occasionally):
I believe the 32 bit yocto build for meta-raspberrypi4 is already using hard float tuning. Do you know what other optimization on raspbian that can be implemented in meta-raspberrypi in order to speed up the floating point operation?

I have pi3 handy, so I tried this example and it consistently runs within 2ms for me ( using OE master )

@kraj  thanks for testing that on raspi3. I updated the example and it gets more obvious if the loop is longer.

It turned out the default cpu scalling governor is "powersave", thus the cpu clock is kept to minimum (600 MHz). After set the policy to "ondemand" or "performance", it gave the same performance as raspbian.
echo "ondemand" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

@andung07  question is that is this setting disabled in our kernel by default ?
if so then we should fix it

I don't think it's disabled by I do think that the default governor right now is powersave.

@agherzan I think we should have a way to change that or document it otherwise we will see these kind of benchmarks showing Yoct/meta-rpi in bad light.

What's the default in Raspbian? @andung07  is it "ondemand"?

@kraj No, it is not disabled in our kernel. All governor modes are available, but the default one is "powersave". When I inspect the kernel configuration of these OSes, both are using "powersave" by default.
CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
@agherzan In raspbian, it is set at boot to "ondemand" by a systemd service raspi-config.service if the Shift key is not pressed during booting. Otherwise, it will be the same with us to fall down in "powersave" (based on the kernel default).
I think it is worth mentioning this in our documentation, so that users who expect to maximize the raspi capability are aware of this setting.

I was bitten in the past by this - now that I think about it. I reckon it is sensible to start defaulting the default to ondemand. @andung07 can you point me to the raspi-config.service file? I'm curious about what they do there.

@agherzan my bad, it is just raspi-config file resides in /etc/init.d/raspi-config.
#!/bin/sh
### BEGIN INIT INFO
# Provides:          raspi-config
# Required-Start: udev mountkernfs $remote_fs
# Required-Stop:
# Default-Start: S 2 3 4 5
# Default-Stop:
# Short-Description: Switch to ondemand cpu governor (unless shift key is pressed)
# Description:
### END INIT INFO

. /lib/lsb/init-functions

case "$1" in
  start)
    log_daemon_msg "Checking if shift key is held down"
    if [ -x /usr/sbin/thd ] && timeout 1 thd --dump /dev/input/event* | grep -q "LEFTSHIFT\|RIGHTSHIFT"; then
      printf " Yes. Not enabling ondemand scaling governor"
      log_end_msg 0
    else
      printf " No. Switching to ondemand scaling governor"
      SYS_CPUFREQ_GOVERNOR=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
      if [ -e $SYS_CPUFREQ_GOVERNOR ]; then
        echo "ondemand" > $SYS_CPUFREQ_GOVERNOR
        echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
        echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
        echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
      fi
      log_end_msg 0
    fi
    ;;
  stop)
    ;;
  restart)
    ;;
  force-reload)
    ;;
  *)
    echo "Usage: $0 start" >&2
    exit 3
    ;;
esac

That makes sense now. I truly believe that this should be the default. @andung07 do you feel like pushing a patch for enabling this by default in the kernel config?


BlobClient.upload_blob_from_url fails with InvalidBlockList

Package Name: azure-storage-blob
Package Version: 12.8.1
Operating System: Ubuntu 18.04
Python Version: 3.8.5

Describe the bug
Using an instance of BlobClient, I am uploading a large set of files via remote URLs to a storage account.  The files vary in size between 20KB and 600MB.
Roughly 1 in 1000 fail with an HttpResponseError exception with the error code of InvalidBlockList.
The code is effectively:
service_client = BlobServiceClient.from_connection_string(connection_string)
container_client = service_client.get_container_client(container)
blob_client = container_client.get_blob_client(blob_path)
blob_client.upload_blob_from_url(url, overwrite=True, timeout=60*60*24)

Traceback (most recent call last):
  File "/home/user/project/.direnv/python-3.8.5/lib/python3.8/site-packages/azure/storage/blob/_blob_client.py", line 559, in upload_blob_from_url
    return self._client.block_blob.put_blob_from_url(**options)
  File "/home/user/project/.direnv/python-3.8.5/lib/python3.8/site-packages/azure/storage/blob/_generated/operations/_block_blob_operations.py", line 469, in put_blob_from_url
    raise HttpResponseError(response=response, model=error)
azure.core.exceptions.HttpResponseError: Operation returned an invalid status 'The specified block list is invalid.'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "upload-files.py", line 33, in <module>
    main()
  File "upload-files.py", line 21, in main
    blob_client.upload_blob_from_url(entry.url, overwrite=True, timeout=60*60*24)
  File "/home/user/project/.direnv/python-3.8.5/lib/python3.8/site-packages/azure/core/tracing/decorator.py", line 83, in wrapper_use_tracer
    return func(*args, **kwargs)
  File "/home/user/project/.direnv/python-3.8.5/lib/python3.8/site-packages/azure/storage/blob/_blob_client.py", line 561, in upload_blob_from_url
    process_storage_error(error)
  File "/home/user/project/.direnv/python-3.8.5/lib/python3.8/site-packages/azure/storage/blob/_shared/response_handlers.py", line 150, in process_storage_error
    error.raise_with_traceback()
  File "/home/user/project/.direnv/python-3.8.5/lib/python3.8/site-packages/azure/core/exceptions.py", line 247, in raise_with_traceback
    raise super(AzureError, self).with_traceback(self.exc_traceback)
  File "/home/user/project/.direnv/python-3.8.5/lib/python3.8/site-packages/azure/storage/blob/_blob_client.py", line 559, in upload_blob_from_url
    return self._client.block_blob.put_blob_from_url(**options)
  File "/home/user/project/.direnv/python-3.8.5/lib/python3.8/site-packages/azure/storage/blob/_generated/operations/_block_blob_operations.py", line 469, in put_blob_from_url
    raise HttpResponseError(response=response, model=error)
azure.core.exceptions.HttpResponseError: The specified block list is invalid.
RequestId:bf13c64a-d01e-0086-0c4e-a65bdf000000
Time:2021-09-10T14:21:30.6851450Z
ErrorCode:InvalidBlockList
Error:None

To Reproduce
Steps to reproduce the behavior:

Upload a large # of files from remote URLs using upload_blob_from_url of varying sizes.

Expected behavior
No exception generated.

Hi @bmc-msft could you provide me with a fresh failure/request-id so we can investigate it on our side

Unfortunately not easily.  I will do my best to replicate it again in the near future.


Question: Does this make any sense and is somehow correct?

This is intended to load omnicompletion in nvim-cmp with those filetype that use syntaxcomplete#complete.
Is this correct and does it seems useful?
https://pastebin.com/rPxxsC2U
Thanks in advance.

@CantoroMC You can use https://github.com/hrsh7th/cmp-omni
autocmd FileType css,scss lua require('cmp').setup.buffer {
\   sources = {
\     { name = 'omni' }
\  }
\ }


Knobs disappear

Got the same issue with<EMAIL_ADDRESS>

@powermikee @andest01 @jalooc @ralzinov is this still happening with the latest alpha. Some time ago I did a big refactor that fixed a bunch of weird issues, please let me know if this is happening

@alterx Just gave it a shot with the latest alpha, still happening. Defining knobs in decorators would be a really powerful feature when working with themes, etc.

The problem with defining "global" knobs, if I'm understanding this correctly is that this would have to be applied as yet another wrapper component that we need to keep around when switching stories. This is something that needs some thought, specially on angular and similar frameworks (not react o preact).
I suspect this global behavior could be happening with all the apps and Knobs (not only Angular). Do you have a working repo in which we can replicate the issue?

Happening to me as well, only when defining globally.

For me, I stumbled upon another fix for this issue. I still have withKnobs defined globally in my storybook config, but then in my Divider.stories.js file, I found that I could not reference the functions when they were stored in a variable. I had to include it directly.
I was trying to do this (as the docs advise you to do), which was not working:
const valueWidth = number(labelWidth, defaultValueWidth, optionsWidth)

stories.add('Default Divider', () => (
    <Divider
        width={valueWidth}
    />
))

and it would disappear. When I switched it from the reference to using the function directly, it worked no problem:
stories.add('Default Divider', () => (
    <Divider
        width={number(labelWidth, defaultValueWidth, optionsWidth)}
    />
))

Hope this helps someone.

@camsloanftc trick did the trick.
Any news on a more structured solution?

We use something like this in our project:
const BasicComponent = (props = {}) => {
  const defaultProps = {
    // some props...
    label: text('label', 'Default label'),
    value: number('value', 0),

    ...props // Override defaults if needed,
  };

  return <Component {...defaultProps} />;
}

storiesOf('Component', module)
  .add('Default', () => <BaseComponent />)
  .add('With overridden defaults', () => <BaseComponent someProp={value} />);```

Basically, just avoid having file-scoped knobs.

This solved it for me: https://stackoverflow.com/a/57067253/1048589


fix(@angular/cli): allow global config command outside project

Cannot be merged in Patch, after he big refactor (which was master only).


Best networking resource for URL based routing to different container apps

I plan on deploying multiple internal APIs as container apps. These APIs will be triggered by a service bus subscription, HTTP call or event grid web hook.
I want to have 1 domain for these APIs and use URL based routing to map the requests to the right container app. The consumer of these APIs will be a public facing API.
What would be the best networking resource for this?
Currently I'm leaning towards application gateway, but it seems like some of the features of application gateway are already supported by container app itself. Like TLS termination, HTTPS redirect, health probes. Is there a better option for this?
With TLS termination on the application gateway, would HTTP requests from the application gateway be redirected to HTTPS by container app?
If I create an internal container app environment which is only accessible through vnet, is there a way to test the deployed app from my browser? Maybe an IP exception?

We are investigating this feature!

@adeliab we've recently released a blog post on how path-based routing can be achieved in Azure Container Apps today by using an nginx container as a reverse proxy. Would love to hear your feedback if this covers your scenarios and if not what is missing from the experience and what you would like to see.
Blog post: https://techcommunity.microsoft.com/t5/apps-on-azure-blog/path-and-hostname-based-routing-in-azure-container-apps-with/ba-p/4068923

Closing this. Please use #591 going forward for additional comments or questions.


Add developer guide

This PR adds a developer guide page. The branch is not previewed on Github pages, so I've provided a screenshot below of the page and menu item.

@georgiamoon @pboothe PTAL?

This change is

@georgiamoon In the latest commit, the developer guide is in the Contribute section, per our discussion. Again, live preview is not available unless you build locally for this branch. Screen shot of the Contribute page:


fix: supplying hyperparameters to training step constructor drops hyperparameters specified in estimator

Summary
Hyperparameters can be specified in the estimator object and hyperparameters property.
Both of which are taken in the constructor of the TrainingStep class.
The current behaviour drops any hyperparameters that were specified in the estimator if the property
is set in the TrainingStep constructor. This is undesirable as the estimators often specify algorithm specific hyperparameters out of the box that we don't want to drop.
This change merges the hyperparameters in the constructor as well as the estimator that is used in TrainingStep.
If there are duplicate keys, the hyperparameters specified in the constructor will be used.
Closes #99, #72

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-sEHrOdk7acJc
Commit ID: efeaf21cf8dbb4890919b319bb07df3f80a2840c
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-sEHrOdk7acJc
Commit ID: d34128ba99345f94a473286f74913be5a4b63b1c
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-sEHrOdk7acJc
Commit ID: c431f7cf3415f391d54026584fc7577d513a69c3
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-sEHrOdk7acJc
Commit ID: c431f7cf3415f391d54026584fc7577d513a69c3
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-sEHrOdk7acJc
Commit ID: c431f7cf3415f391d54026584fc7577d513a69c3
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-sEHrOdk7acJc
Commit ID: c431f7cf3415f391d54026584fc7577d513a69c3
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


It is too easy to destroy lists.

Please make it harder to delete all of the items on the list! As of right now an accidental press of the top-right button can wreck the list that I've been building. It's too easy to press: It should have either have an undo toaster popup or a confirmation dialogue.

I will :) Same as something mentioned in #11


feat: Implement Auto-Comment Feature for Issue Closure

Related Issue
fixes: #374
Description
Implemented an auto-comment feature that triggers upon the closure of an issue. This feature provides closure to the reporter and offers additional resources or guidance if necessary.
Screenshots

Summary by CodeRabbit

Chores

Introduced a new GitHub Actions workflow to automatically comment on closed issues with a personalized thank-you message to issue creators.

could you add gssoc too cause i am participating in both gssoc and ssoc.

could you add gssoc too cause i am participating in both gssoc and ssoc.

Ok sure, but I don't think its allowed 😅

@Sanchitbajaj02 could you add gssoc label.


In testing

I have this code in testing running as an add-on in Home Assistant on a Raspberry Pi 3. I have a few automations triggered by changes in the set_status.

Hi,
Thank you so much for sharing your project. I'm struggling to know how to run it inside my Home Assistant. Could you please tell us how to do it exactly, please?
Thanks

I will get a set of instructions published over the next day or two. I've just run through the process on a clean install of Home Assistant to check the instructions all work.

See: https://djb.org.uk/docs/SIA2MQTT4HA-HowTo.pdf or the attached PDF
SIA2MQTT4HA-HowTo.pdf

Thanks a lot for this project and the how-to. I configed Home Assistant and the Flex-20, but I get the follow error with autotest. I have updated the Flex-20 firmware from v3.17 to v3.54, but it didn’t help. Do you have any ideas?
`s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started

<EMAIL_ADDRESS>start
node ./dist/server.js
Sat Dec 24 2022 13:48:17 GMT+0000 (Coordinated Universal Time) Starting SIA2MQTT4HA
SIA server listening
Sat Dec 24 2022 13:48:17 GMT+0000 (Coordinated Universal Time) Connected to MQTT broker
/server/dist/sia/siaBlock.js:44
throw "Parity Error";
^
Parity Error
(Use node --trace-uncaught ... to show where the exception was thrown)
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped`

Hi, it looks like you are receiving messages - that is good, but they are not being parsed correctly. Can you check that you have set the format to be SIA and the SIA Level to be 3 in your Flex.
If you use RSS to configure your Flex 20, I could share a screenshot of my settings. Otherwise, let me know and I'll go through the keypad and check my instructions are accurate.

Hi, I use the RSS tool for the configuration. I just checked de settings and the format is level 3, port 10002 and the poling port 0. I have tried account number 000000 and 111111.  The error is only visible when the autotest is 1 min. When de autotest is 0 minute there is no error but also none other data visible.
If you have a screenshot of the RSS configuration it would be great.

Here's how my Flex 100 is configured in RSS (the entry for Selfmon doesn't change how this project works, you can have multiple ARC receivers):

If that doesn't help, then we'll need to do a bit of debugging...

it works,  the fault was the enabled encryption alarm report <IP_ADDRESS>.1

I'm running this in a docker on separate system.
My installation has door and pir zones, but also tamper and fire zones. Are tamper and fire zones supported ? If yes, how should these be configured in the options.json ?

I'm running this in a docker on separate system. My installation has door and pir zones, but also tamper and fire zones. Are tamper and fire zones supported ? If yes, how should these be configured in the options.json ?

Hi!
Currently SIA2MQTT4HA is written so that PIR and Contacts can be used in automations (like detecting a person or detecting a door being opened) - these are internally called "Zone Events". These events can happen even when the alarm is not set.
However, my main purpose for SIA2MQTT4HA is to enable automations based on the alarm system being SET (FULL SET, PART SET, UNSET), TRIGGERED (ALARM, FIRE, PANIC, TAMPER) - these are internally called "System Events".
I could add FIRE to the "Zone Events" handler because smoke/fire detectors have zone numbers (like PIRs and Contacts), but not TAMPER.
As TAMPER and FIRE events don't happen frequently, it might be better for you to use the "System Events". In Home Assistant you can use any of these associated Sensors:

To see TAMPER and FIRE events specifically, look at the Event sensor:

The Home Assistant "state" of the Event sensor indicates what "System Event" has been passed by SIA2MQTT4HA. In the above picture the last event (at 16:17) was "RS" which translates to Remote Call Complete (I made a remote programming connection into the panel), the previous event (at 07:45) was "RP" which translates to Automatic Test. For Tamper the state code would be "TA" when tamper is detected and "TR" when the fault is restored, and for Fire it would be "FA" when a fire zone is triggered and "FR" when it is restored to normal.
You can create an automation in Home Assistant to detect (and then do something about) a Tamper using the state of the "sensor.event" entity like this:

Does that help?

thanks for detailed follow-up, sorry about late reply, I was OoO.
Your suggestion for triggers based on events will definitely work for me. I just need to ensure that I've covered all possible status events.
For background information:

my Flex is managed by 3th party, so I don't have access to Flex to make modifs myself
from their documentation that I received, I see that TAMPER is also associated to a zone.

I'm only receiving alarms and activation/deactivation of the system, and motion events when the alarm is activated. I don't receive motion events when alarm is deactivated. Question: to receive motion events when deactivated, is this a configuration of the alarm system ? What should I asked to be configured by that 3th party ?
Issue discovered in following scenario: when I partially arm, 'Part Armed' changes to On and 'Set Status' changes to 'Part Set. But when disabling alarm, 'Set Status' goes to unset, but 'Part Armed' remains On. I think I've never recall seeing Part Armed to a different value then On.
My main purpose is also to have automation's based on alarm system status (on/off/partial) and triggers (at least PIR, contacts and fire). The latter so that the sensors and contacts are supplementary/extension to the smoke detectors and motion sensors I have outside the alarm system.
An automation I'm planning is that when alarm system is fully set, and a motion/contact event is generated, that I sound an alarm on sirene linked to HA. That is already covered in current version.

On your question, the answer is a bit complicated as the system needs to be configured to log the triggering of the zones you are interested in whether it is set/unset (activated/deactivated) and still respond when it is set/activated. I don't actually use this functionality myself as I found it cluttered the log up. Anyway, here is how I did it:

For each zone you want to be notified about note its original "Function" e.g. INTRUDER:

Change the "Function" from INTRUDER to CUSTOM-A:

In the Assemble Zones menu allocate "A" to INTRUDER when the system is set and CUSTOM-A when the system is set/unset:

In the Reports menu ensure that "Custom Zones" is ticked for the ARC or Aux associated with SIA2MQTT4HA:

Now, when a zone is triggered, a Zone Event should be sent to Home Assistant.
A lot of the above is from memory, I will properly test my assertions when I get a bit of time. A far better way to do this is to implement "SIA Level 4" control and get far richer access to all events - I started to experiment with this but need to find some more information on the protocol to go any further.
On the issue you have discovered, I have found an error in the code that ignored Part Armed being "false", I am testing a very simple fix and will publish a new version over the next day or two.

Hi there, where could I find information about SIA 4 to explore also on extending this module? Thanks!

Hi there, where could I find information about SIA 4 to explore also on extending this module? Thanks!

I spent many hours looking through the source code from this OpenGalaxy project: https://sourceforge.net/projects/galaxy4linux/files/0.15/
Specifically, I used the protocol and messages for Polling the Zone status.
OpenGalaxy is written to connect to the alarm panel via an RS485 serial connection (i.e. needs wiring into the board itself). I think a lot of the messages are the same when using the SIA4 over TCP/IP connection.
I have some code that I've written to try to test this out and having just had another look, I believe it does something (connects to the panel, polls every few seconds and I get some changes in the output which seem to correspond with PIRs being triggered). I need to find a bit of time to decipher what it is showing me!
If you are really keen, I am happy to share this test code in another repo on here.

Thank you for the tips! And that code could be a great starting point.

Thank you for the tips! And that code could be a great starting point.

https://github.com/666djb/SIA4hacking
There's a readme file in which I explain what this does so far and how. The code should be simple enough to hack around with.

I've read lots of different projects but never understand if SIA level4 is equivalent on DC-09 or not
Thank you for your news!

Hi @BriceDet
It's been a little time since I played with my SIA4 code. But I've just been in and pushed a few changes that I had made - mostly TODO comments, but also a hardcoded example in server.ts that currently runs the getZoneState command (hardcoded to Zone 1021 in sia4stuff.ts). This code works and gets the open/closed state for that zone on my system.
I have previously tested disarming the system (the "doUnset" command) and that works.
What I think I have learnt with SIA4 control of the Honeywell Galaxy control panel is that the following sequence is needed for every command:

Connect TCP Socket
Login
Receive Configuration Message
Send the actual Command
Receive Extended Data
Close the TCP Socket

This works reliably but it seems a little bit strange to me that you need to connect and login for each and every command rather than being able to keep a TCP session open and issue commands after a single login. Maybe that is just the way SIA4 via TCP/IP works?
So, I know that this code can login, it can get single and multiple zone status, it can disarm the system and I believe it can arm/part arm the system. I'm not sure if much else useful is supported over SIA4.
If I find a bit of time, I might complete the decoding of multiple zones (in response to GetAllZonesOpenState command) and make a menu front end to provide a better demonstrator.

Ho glade to read you with this "very deep details" 👍
Thanks @666djb it's always better to have what you suggest, but "a bit of time" is always complicated to found and for only one guy after a one year sleep repository ?
I'll spend "bit of time" during next month to read your code and understand the project. If I have question, I'll open issues
Thanks again for your sharing


Internal Python Language Server error

Description
What steps will reproduce the problem?

Use spyder to run code
????
Error

Traceback
  File "/usr/local/lib/python3.7/site-packages/pyls_jsonrpc/endpoint.py", line 113, in consume
    self._handle_request(message['id'], message['method'], message.get('params'))
  File "/usr/local/lib/python3.7/site-packages/pyls_jsonrpc/endpoint.py", line 182, in _handle_request
    handler_result = handler(params)
  File "/usr/local/lib/python3.7/site-packages/pyls_jsonrpc/dispatchers.py", line 23, in handler
    return method(**(params or {}))
  File "/usr/local/lib/python3.7/site-packages/pyls/python_ls.py", line 271, in m_text_document__hover
    return self.hover(textDocument['uri'], position)
  File "/usr/local/lib/python3.7/site-packages/pyls/python_ls.py", line 215, in hover
    return self._hook('pyls_hover', doc_uri, position=position) or {'contents': ''}
  File "/usr/local/lib/python3.7/site-packages/pyls/python_ls.py", line 122, in _hook
    return hook_handlers(config=self.config, workspace=self.workspace, document=doc, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pluggy/hooks.py", line 289, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 68, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/local/lib/python3.7/site-packages/pluggy/_tracing.py", line 80, in __call__
    return outcome.get_result()
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/local/lib/python3.7/site-packages/pluggy/_tracing.py", line 78, in <lambda>
    outcome = _Result.from_call(lambda: self.oldcall(hook, hook_impls, kwargs))
  File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 62, in <lambda>
    firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/local/lib/python3.7/site-packages/pyls/plugins/hover.py", line 10, in pyls_hover
    definitions = document.jedi_script(position).goto_definitions()
  File "/usr/local/lib/python3.7/site-packages/jedi/api/__init__.py", line 220, in goto_definitions
    definitions = helpers.evaluate_goto_definition(self._evaluator, context, leaf)
  File "/usr/local/lib/python3.7/site-packages/jedi/api/helpers.py", line 143, in evaluate_goto_definition
    return evaluator.goto_definitions(context, leaf)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 240, in goto_definitions
    return helpers.evaluate_call_of_leaf(context, name)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/helpers.py", line 77, in evaluate_call_of_leaf
    return context.eval_node(leaf)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/base_context.py", line 145, in eval_node
    return self.evaluator.eval_element(self, node)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 200, in eval_element
    return self._eval_element_if_evaluated(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 212, in _eval_element_if_evaluated
    return self._eval_element_cached(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/cache.py", line 40, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 216, in _eval_element_cached
    return eval_node(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/debug.py", line 81, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 48, in wrapper
    return func(context, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 72, in eval_node
    return eval_atom(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 202, in eval_atom
    search_global=True
  File "/usr/local/lib/python3.7/site-packages/jedi/_compatibility.py", line 274, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/base_context.py", line 162, in py__getattribute__
    return f.find(filters, attribute_lookup=not search_global)
  File "/usr/local/lib/python3.7/site-packages/jedi/debug.py", line 81, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/finder.py", line 67, in find
    types = self._names_to_types(names, attribute_lookup)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/finder.py", line 178, in _names_to_types
    contexts = ContextSet.from_sets(name.infer() for name in names)
  File "/usr/local/lib/python3.7/site-packages/jedi/common/context.py", line 34, in from_sets
    sets = list(sets)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/finder.py", line 178, in <genexpr>
    contexts = ContextSet.from_sets(name.infer() for name in names)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/filters.py", line 102, in infer
    return tree_name_to_contexts(self.parent_context.evaluator, self.parent_context, self.tree_name)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 555, in tree_name_to_contexts
    types = _remove_statements(evaluator, context, node, tree_name)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 497, in _remove_statements
    return eval_expr_stmt(context, stmt, seek_name=name)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 48, in wrapper
    return func(context, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 284, in eval_expr_stmt
    return _eval_expr_stmt(context, stmt, seek_name)
  File "/usr/local/lib/python3.7/site-packages/jedi/debug.py", line 81, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 300, in _eval_expr_stmt
    context_set = context.eval_node(rhs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/base_context.py", line 145, in eval_node
    return self.evaluator.eval_element(self, node)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 200, in eval_element
    return self._eval_element_if_evaluated(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 212, in _eval_element_if_evaluated
    return self._eval_element_cached(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/cache.py", line 40, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 216, in _eval_element_cached
    return eval_node(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/debug.py", line 81, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 48, in wrapper
    return func(context, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 146, in eval_node
    return eval_or_test(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 357, in eval_or_test
    context.eval_node(right))
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/base_context.py", line 145, in eval_node
    return self.evaluator.eval_element(self, node)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 200, in eval_element
    return self._eval_element_if_evaluated(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 212, in _eval_element_if_evaluated
    return self._eval_element_cached(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/cache.py", line 40, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/__init__.py", line 216, in _eval_element_cached
    return eval_node(context, element)
  File "/usr/local/lib/python3.7/site-packages/jedi/debug.py", line 81, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 48, in wrapper
    return func(context, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 85, in eval_node
    context_set = eval_atom(context, first_child)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/syntax_tree.py", line 262, in eval_atom
    context = iterable.SequenceLiteralContext(context.evaluator, context, atom)
  File "/usr/local/lib/python3.7/site-packages/jedi/evaluate/context/iterable.py", line 293, in __init__
    self.array_type = SequenceLiteralContext.mapping[atom.children[0]]
WARNING:traitlets:kernel died: 18.000514030456543
WARNING:traitlets:kernel died: 18.00384783744812
WARNING:traitlets:kernel died: 17.99958038330078
WARNING:traitlets:kernel died: 18.002798795700073
WARNING:traitlets:kernel died: 18.004103899002075
WARNING:traitlets:kernel died: 18.00445795059204

Versions

Spyder version: 4.0.0.dev0 5e53214cb
Python version: 3.7.3
Qt version: 5.9.1
PyQt5 version: 5.9
Operating System: Darwin 18.5.0

Dependencies
pygments >=2.0     :  2.3.1 (OK)
qdarkstyle >=2.6.4 :  2.6.5 (OK)
sphinx >=0.6.6     :  1.8.5 (OK)
psutil >=0.3       :  5.6.1 (OK)
pyls >=0.19.0;<0.25:  0.24.0 (OK)
nbconvert >=4.0    :  5.4.1 (OK)
pandas >=0.13.1    :  0.24.2 (OK)
numpy >=1.7        :  1.16.2 (OK)
sympy >=0.7.3      :  1.3 (OK)
cython >=0.21      :  0.29.6 (OK)
qtconsole >=4.5.0  :  4.5.0.dev0 (NOK)
IPython >=4.0      :  7.3.0 (OK)
matplotlib >=2.0.0 :  3.0.3 (OK)
pylint >=0.25      :  2.3.1 (OK)

What object were you hovering when this happened?

most likely the editor

I meant, what object name in your code you put the mouse on top of that generated this traceback. For instance, you could have in the editor
import numpy as np
np.arange

and when you put the mouse over arange you got the error.
We need the object name to replicate this error in our end. Else, we can't fix this problem.

@ccordoba12 when user request info (Ctrl+I) internally we are calling hover, so it does not necessarily mean the user was actually hovering.

Right, I forgot about it. The error could be caused by either actual hovering or Ctrl+I.

@impact27, what if you run
spyder --reset

? Does that fix this error?

I can't reproduce the error. I just posted the trackback in the hope it would be useful for someone to understand. I will let you know if I notice a pattern, but these errors are quite infrequent (1 / week).

This is a problem with Jedi being unable to parse the file ast at some point.
We have a reproducible error at issue #9492 so I'm closing this one in favor of that one.


Unable to upload multiple associated images

I have two tables service_categories and service_category_images
CREATE TABLE `service_category_images` (
  `id` char(36) NOT NULL,
  `service_category_id` char(36) NOT NULL,
  `image` varchar(100) NOT NULL,
  `dir` varchar(100) NOT NULL,
  `created` datetime DEFAULT CURRENT_TIMESTAMP,
  `modified` datetime NOT NULL
)

The service_category_images is associated to service_categories
According to your example tutorial, this is all what I have done.
In ServiceCategoriesTable.php
    public function initialize(array $config)
    {
        parent::initialize($config);

        $this->table('service_categories');
        $this->displayField('title');
        $this->primaryKey('id');

        $this->addBehavior('Timestamp');
        $this->hasMany('ServiceCategoryImages', [
            'foreignKey' => 'service_category_id'
        ]);
    }

In ServiceCategoryImagesTable.php
public function initialize(array $config)
    {
        parent::initialize($config);

        $this->table('service_category_images');
        $this->displayField('id');
        $this->primaryKey('id');

        $this->addBehavior('Timestamp');
        $this->addBehavior('Proffer.Proffer', [
          'image' => [
            'root' => DS . 'var' . DS . 'www' . DS . 'html' . DS . 'flitfix' . DS . 'media' . DS . 'files',
            'dir' => 'dir'
          ]
        ]);

        $this->belongsTo('ServiceCategories', [
            'foreignKey' => 'service_category_id',
            'joinType' => 'INNER'
        ]);
    }

add.ctp of ServiceCategoryImages class
<?= $this->Form->create($serviceCategoryImage, ['type' => 'file']) ?>
    <fieldset>
        <legend><?= __('Add Service Category Image') ?></legend>
        <?php
            echo $this->Form->input('service_category_id', ['options' => $serviceCategories]);
            echo $this->Form->input('service_category_images.0.image', ['type' => 'file']);
            echo $this->Form->input('service_category_images.1.image', ['type' => 'file']);
            echo $this->Form->input('service_category_images.2.image', ['type' => 'file']);
            echo $this->Form->input('service_category_images.3.image', ['type' => 'file']);
        ?>
    </fieldset>
    <?= $this->Form->button(__('Submit')) ?>
    <?= $this->Form->end() ?>

and ServiceCategory.php entity contains
    protected $_accessible = [
        '*' => true,
        'id' => false,
        'service_category_images' => true,
    ];

I there something I'm missing or doing wrong. Because this configuration is not uploading files.

My first thought is that the folder you're uploading to is not writable.

The folder is writable and images are uploading fine when I upload single image. Like user avatar along with user profile information in same table.

error and debug log can be found here : http://stackoverflow.com/questions/38060153/cakephp-3-upload-multiple-images-using-proffer-plugin

This could be a new use-case, as I have a test for uploading multiple files but these are different uploads fields, and not multiple to the same field.
If you'd like to figure out where the loop needs to go and submit a pull request against the develop branch, that would be great!

I don't understand how to figure out loop. But I have submitted a pull request.
What I did to solve my problem...
I removed 'service_category_images' => true from associated entity and added 'image' => true to ServiceCategoryImage.php entity and replaced multiple occurring of 'service_category_images.0.image by a single image in add.ctp view.
Now, I'm able to upload a single image at a time.

Relates to #207


Doesn't work on multiplayer with essential

After testing around it looks like the mod only works for the host of the essential server not sure how to fix this

Should be fixed in version 1.3.4.


RHODS: improve get-cluster's job

/cc @kpouget

/test ods-get-cluster

/test ods-get-cluster

/test ods-get-cluster

not 100% functional yet (the kubeadmin forced password doesn't work), but I'll solve it later.
Merging.


Typo in new commit

Hi there, thanks for this package, I like it a lot.
I think in the latest commit there's a typo though, which I've annotated here:
https://github.com/galdor/rfc-mode/commit/01b37d63e498eab3ac6ad2588777438cfd4d7f60#r103362831

Fixed in c938c81.


Apply fixes from CodeFactor

This pull request applies style fixes from code review by CodeFactor.

For more information, click here.

Not bad, all these changes can indeed be safely applied, everything 100% equivalent. I added a tiny syntax fix as // is mostly understood but no official way to comment single lines in CSS.


How to use PopupView in muti Windows on macOS

Hi, i am very like popupView, but when use it in our macOS app, it's muti windows, when i pop it, it's show on every window, Do you have any advice

Hey @TimorCan, could you provide us with a screenshot (and/or a code) showing the problem?

@TimorCan, I tested it, and seems it works as it should on multiple windows:
https://github.com/Mijick/PopupView/assets/23524947/aecc14eb-c6d1-4139-958c-63367edb094a


GH-298: Documentation: republishToDlq is now true by default

This is the case since c2ed214df76fc0398a65a35ffd84d1cf079b8f3b.
A documentation update has already been done by @kinjelom in #285 but only
README.adoc was modified.
As the contents of README.adoc is generated, this correction was overridden
by d05bdc378214327295c885d12a321e6e77b3d4fe.
This commit modifies the source file, overview.adoc, and includes the newly
generated README.adoc file.
@pivotal-issuemaster This is an Obvious Fix

I've opened https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit/issues/298 because I've realized that this wasn't the only modification lost after d05bdc378214327295c885d12a321e6e77b3d4fe.


Fix bad async sass test on Windows

Changes
Two problems fixed here:

async expect tests weren't being awaited
the "sass CLI is missing" warning was different on windows than unix

The result was that windows tests were breaking, but with the wrong test being marked as "broken".
Testing

Test fixes.

Docs

N/A

Added a fast follow from #1250 which hadn't been able to run CI due to moving the vercel directory


Parse seperator patch

Replaces parseSeperator: '---',
With parseSeperator: /^---$/m,
This matches exactly 3 dashes and ensures they are the only characters on their line.
This prevents conflict with table AND alternate header syntax.
Horizontal lines would require 4 or more dashes.

I agree with you on this.


Fixed install of Python 2.7-3.6 on ubuntu

No review needed.

Coverage remained the same at 31.511% when pulling 7140cc933bf20e909799b1a9736df0dab3e74eec on andy/fix-old-python-install into 76180bb0def3a64fe694e635d9451e2ce1bf5495 on master.


[DSIP-66][k8s] YAML Pod for User Customization

Search before asking

[X] I had searched in the DSIP and found no similar DSIP.

Motivation
Supporting user-customized K8s YAML Pod has the following benefits:

Flexibility: Unlike the existing K8s low-code job with limited functionality, YAML Pod provide users with the flexibility to define sophisticated task instances in DolphinScheduler, similar to how custom JSON does in DataX.

Workflow Customization: Users can integrate operational and maintenance processes into DolphinScheduler using YAML Pod for complex workflows.

In short, by enabling user-customized YAML Pod, DolphinScheduler can better support a wide range of Kubernetes-based workflows and operational requirements.
Design Detail
Frontend Design
The frontend adds support for user-customized k8s YAML Pod while remaining compatible with the original k8s low-code jobs.

The Web UI layouts

When the user switches on the Custom Template, the Low-code k8s Job fields should hide and YAML editor should appear (or vice versa), similar to the JSON Custom Template in the DataX plugin.
This feature is implemented using the Vue component span, which is controlled by reactive variables (such as yamlEditorSpan) in the file dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-k8s.ts.

The Request body
When the user switches to Custom Template mode, the request body should include only YAML-related fields (customConfig and yamlContent), and all previously hidden fields should not be sent.
This feature is implemented using the taskParams in the file dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts

i18n/locales
Apache DolphinScheduler is an international software and should support multiple languages.
The text on the Web UI are retrieved from variables defined in the file dolphinscheduler-ui/src/locales/{en_US, zh_CN}/project.ts. And for user-customized k8s YAML tasks, there are three key variables to consider:

k8s_custom_template: the label for the switch to enable user-customized k8s YAML tasks.
k8s_yaml_template: the label for the text editor used to input user YAML.
k8s_yaml_empty_tips: the warning message displayed when a user tries to submit empty YAML

This feature is implemented by invoking t('project.node.${variable_name}') (such as t('project.node.k8s_yaml_template')) in the file dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-k8s.ts.

Backend Design
The backend design describes the process of how the worker executes user-customized k8s YAML Pod tasks.

After the worker checks the parameters, K8sYamlTaskExecutor is loaded for the current user-customized k8s YAML Pod task. Once the YAML is parsed into HasMetadata, its kind field is used to assign abstractK8sOperation as K8sPodOperation for executing the YAML Pod task.

K8s Task Executors

Three k8s task executor are involved:

AbstractK8sTaskExecutor is an abstract class that represents a k8s task executor.
K8sTaskExecutor is a concrete class that extends AbstractK8sTaskExecutor to represent a low-code executor
K8sYamlTaskExecutor is a concrete class that extends AbstractK8sTaskExecutor to represent a user-customized k8s YAML task executor.

K8s Operation handlers

Two operation handlers are involved:

AbstractK8sOperation is an interface representing all k8s resource operations.
K8sPodOperation is a concrete class that implements AbstractK8sOperation to handle Pod operations

Usecase Design
A typical use case for a k8s YAML Pod task includes uploading YAML, online workflows, and starting workflows, similar to k8s low-code jobs, unless users switch to the Custom Template option to fill in Pod YAML.

The user edits a k8s Pod YAML node in a workflow
If the Custom Template is activated and YAML content is not blank, the user may online this whole workflow
If the workflow is online, the user may start the workflow and review the logs generated during the execution of the workflow.

Compatibility, Deprecation, and Migration Plan
The user-customized k8s YAML feature requires only customConfig to be activated(1). By default, the value is 0, which applies to the existing k8s low-code jobs.
This DSIP does not propose any deprecation or migration plan, but community feedback is valued.
Test Plan
The User-customized k8s YAML Pod feature allows users to submit YAML Pod to k8s. And this test plan aims to ensure that the feature functions as expected and meets user requirements.

Test Case #
Name
Action
Expectation

1
UI Display
Edit YAML, save and reopen
The YAML content stays up-to-date.

2
UI Validation
try to submit empty YAML
The UI modal dialog intercepts empty YAML.

3
Online Workflow
Save workflow, and online
The User successfully brings the workflow online.

4
Dryrun Workflow
Run workflow as dryrun mode
The Master successfully dry runs this task.

5
Test Workflow
Run workflow as test mode
The Worker successfully tests this task.

6
Run Workflow
Run workflow
The Worker successfully runs this task.

Code of Conduct

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

Closing for no plans to do this.


NBA - Wins Losses Games Played, etc.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I am looking for WINS LOSES GAMES PLAYED that are missing from NBA stats but present in NFL, MLB, NCAAB.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Add these elements to constants and other files as appropriate.
'games_played': 'td[data-stat="g"]:first',
'wins': 'td[data-stat="wins"]:first',
'losses': 'td[data-stat="losses"]:first',
'win_percentage': 'td[data-stat="win_loss_pct"]:first',
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Retrieving the data from games will require too many web requests.
Additional context
Add any other context or screenshots about the feature request here.

Please try out the updated master branch, the missing requested fields were added and tested.

Wow!  Works great.  Thanks for the quick update.
On Dec 28, 2023, at 1:44 PM, David Krause @.***> wrote:
Please try out the updated master branch, the missing requested fields were added and tested.
—
Reply to this email directly, view it on GitHub https://github.com/davidjkrause/sportsipy/issues/5#issuecomment-1871410666, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADERRZEP5NVEBI7T2DNY3TYLW4YNAVCNFSM6AAAAABBFWJQNKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZRGQYTANRWGY.
You are receiving this because you authored the thread.


Support for ISO/IEC full subfigures (ISO DIR 2:2021 28.3.2) (was: Subfigures not working if Key is included)

(UPDATED: 20220731)
ISO/IEC DIR 2 supports Figure with subfigures
ISO/IEC DIR 2, 28.3.2 describes "subfigures"here. This feature has been in DIR 2 since at least 2011.
A figure that contains subfigures supports the following elements:

a statement concerning units
multiple subfigures
a key for the subfigures, as a definition list
additional paragraphs that describe the subfigures (normal clause text with NOTEs, but without tables, figures, examples)
footnotes (which are referred to by content in the subfigure captions, paragraphs and NOTEs within the figure)

Metanorma current support of subfigures
Currently in Metanorma subfigures are supported in ISO but only the simplest form, of multiple images/figures.

Here, it describes that the "Key" content exists within the Figure.
Note that the subfigure example we have currently lacks a few things:

a "Statement concerning units" before the first subfigure.
a "Key" container that has paragraphs/lists after the last subfigure
Footnotes to the figure.

Metanorma also supports a figure with non-images:

This is the intended layout:

However, including the "Key" in the Figure doesn't work in Word, and PDF generation crashes.
[[fig-C17-2]]
.Use of horizontal pattern and strata
====
.Grass with scattered patches of trees
image::img-C17-2a.png[]

.Grass with trees and grass without trees composed of 3-dimensional elementary features
image::img-C17-2b.png[]

.LCML horizontal pattern
image::img-C17-2c.png[]

*Key*:

This is an illustration of the approach of using horizontal pattern and
strata.

. The portion of the grass beneath the trees has different plant composition and
characteristics (density, height).

. The grass with trees and grass without trees, are treated as separate physical
features composed by 3-dimensional elementary features (tegons). This results in an
intrinsic (functional entity) mix between two types of land cover features having
different strata,

. It is described in LCML with the "horizontal pattern".
====

It becomes an EXAMPLE with 3 inner Figures, which is wrong:

If I move the "Key" outside of the Figure, it works:
[[fig-C17-2]]
.Use of horizontal pattern and strata
====
.Grass with scattered patches of trees
image::img-C17-2a.png[]

.Grass with trees and grass without trees composed of 3-dimensional elementary features
image::img-C17-2b.png[]

.LCML horizontal pattern
image::img-C17-2c.png[]

====

*Key*:

This is an illustration of the approach of using horizontal pattern and
strata.

. The portion of the grass beneath the trees has different plant composition and
characteristics (density, height).

. The grass with trees and grass without trees, are treated as separate physical
features composed by 3-dimensional elementary features (tegons). This results in an
intrinsic (functional entity) mix between two types of land cover features having
different strata,

. It is described in LCML with the "horizontal pattern".

Metanorma with full subfigure support
We need to implement a complete [figure] block syntax to support figures with subfigures and their associated content.
Some functionality needed:

Cross referencing from within the text in the figure to the subfigures
Full [figure] syntax
Recognition and rendering of units statement
Recognition and rendering of key
Rendering of footnotes within the figure
Explicit and implicit

Full figure syntax
[figure]
====
[%units]
A statement concerning units. footnote:[Footnote]

// explicit subfigure
[figure]
[[subfigure-a]]
.An explicit subfigure "a)"
======
image::rice_images/rice_image1.png[alt text]

Some content.
======

// implicit subfigure
.An implicit subfigure "b)"
image::rice_images/rice_image2.png[alt text]

[%key]
stem:[w]:: mass fraction of gelatinized kernels, expressed in per cent
stem:[t]:: cooking time, expressed in minutes
stem:[t_90]:: time required to gelatinize 90 % of the kernels footnote:[Another footnote]
P:: point of the curve corresponding to a cooking time of stem:[t_90]

Some paragraph text. <<subfigure-a>> describes...

NOTE: These results are based on a study carried out on three different types of kernel. footnote:[More footnotes]
====

While this is the full syntax for a figure/subfigures, there are "convenience syntaxes" for simpler figure inclusion.
Figure with multiple images only => auto subfigures
We have this now:
[figure]
====
.An explicit subfigure "a)"
image::rice_images/rice_image1.png[alt text]

.An implicit subfigure "b)"
image::rice_images/rice_image2.png[alt text]
====

Figure with image + text => one figure
We have this now:
[figure]
====
image::rice_images/rice_image1.png[alt text]

Some text.
====

Figure with key after => one figure with key
We support this.
[figure]
.Some caption
====
image::rice_images/rice_image1.png[alt text]
====

[%key]
one:: one
two:: two

Image with key after => one figure with key
We support this.
.Some caption
image::rice_images/rice_image1.png[alt text]

[%key]
one:: one
two:: two

Figure with subfigures with key after => multiple figures with key
We don't support this.
[figure]
====
.An explicit subfigure "a)"
image::rice_images/rice_image1.png[alt text]

.An explicit subfigure "b)"
image::rice_images/rice_image2.png[alt text]
====

[%key]
one:: one
two:: two

Once this task is done we should also update the Metanorma site to provide a full example of subfigure with text/paragraphs.
NOTE: This is a blocker to https://github.com/metanorma/iso-19144-2.

Subfigures are recognised as examples containing only figures.
Figure keys are supposed to be definition lists, and are recognised as such.
DISCURSIVE PARAGRAPHS ARE NOT DEFINITION LISTS.
This is the first time I've seen any indication that anything other than definition lists is supposed to be a figure key. Every single other example in ISO/IEC DIR 2 of a table or figure key is a definition list, and the cited subfigure "key" is an umbrella description of notes and footnotes.
I take very strong exception to being told that I should have magically anticipated random markup that does not correspond to the common sense understanding of ISO/IEC DIR 2. This is not a key as far as Metanorma is concerned, and it is not encompassed by Metanorma syntax. I REFUSE to implement this without EXPLICIT feedback from ISO editorial that this is a legitimate instance of a key. As it is, if I were to implement this, it would NOT be with that existing markup: I would need to introduce a new open block syntax, and a much looser syntax.
I VEHEMENTLY recommend you do not disrupt Metanorma parsing and syntax over addle-headed frivolous use of ISO formatting. This is not a key. This is a note. And it should be treated as such.

Figure keys are supposed to be definition lists, and are recognised as such.

The image from ISO DIR 2 explicitly describes the "key" to contain "paragraphs".

This is not a key. This is a note.

ISO DIR 2 says:

Separate keys, notes and footnotes for subfigures are not permitted

I REFUSE to implement this without EXPLICIT feedback from ISO editorial that this is a legitimate instance of a key.

Sorry, but ISO editorial are bound by ISO DIR 2. When ISO DIR 2 says it is the correct form, it is the correct form.

if I were to implement this, it would NOT be with that existing markup: I would need to introduce a new open block syntax, and a much looser syntax.

I don't see why we cannot reuse the existing ==== block syntax with a role of "figure".
From the above reply I am not confident whether you have read the image:

We are seeking confirmation on whether keys can be free text. The image is not a definition of keys, and it contradicts the definition of keys for tables. ISO DIR 2 is not explicit that the foregoing is a definition of keys; in fact, in its source diagram (in IEC, keys are mutually exclusive from requirement paragraphs and notes.
It does turn out that definition lists will incorrectly be embedded within subfigures (as nearest neighbours). That needs to be prevented, as it violates ISO/IEC DIR 2.

I have updated the original ticket to update our current understanding. Will also update this once we receive feedback from ISO Editorial.

I think we know what Keys are, they are the ones shown in the Rice document, which is not free text.

It does turn out that definition lists will incorrectly be embedded within subfigures (as nearest neighbours). That needs to be prevented, as it violates ISO/IEC DIR 2.

I think we should stop merging the nearest definition list into the figure, it is very confusing for the author, especially when the definition list often is not part of the figure.

In fact we now also support this:
[figure]
====
.An explicit subfigure "a)"
image::rice_images/rice_image1.png[alt text]

.An explicit subfigure "b)"
image::rice_images/rice_image2.png[alt text]

[%key]
one:: one
two:: two

NOTE: Note
====

In fact, so will:
[figure]
====

.An explicit subfigure "a)"
=====
image::spec/assets/rice_image1.png[alt text]
=====

.An explicit subfigure "b)"
=====
image::spec/assets/rice_image1.png[alt text]
=====

[%key]
one:: one
two:: two

NOTE: Note
====

At issue is whether we allow [%key] to mark up open blocks of text as well.

I think we should stop merging the nearest definition list into the figure, it is very confusing for the author, especially when the definition list often is not part of the figure.

We aren't: we are only merging definition lists marked with [%key] — signalling explicitly that they are associated with a figure or table.
We also have the original syntax

*Key*

a:: b

But I'm happy for that to be dropped from documentation, and kept only as legacy.

At issue is whether we allow [%key] to mark up open blocks of text as well.

I would say we should only allow text blocks in the figure if it was explicitly put in the figure block.
I don’t think DIR 2 specified exactly what a “Key” is.

*Key* syntax

Let’s make this legacy. And keep it as a note in documentation.
BTW, does the Key syntax work the same way for Formulas?

I would say we should only allow text blocks in the figure if it was explicitly put in the figure block.

That's not answering my question. Should text blocks be recognised as keys? That's your pending query to ISO.
Formulas work the same way: "where", or [%key], and again, what follows is expected to be a definition list.

Should text blocks be recognised as keys? That's your pending query to ISO.

According to the figure, yes generic paragraphs (containing requirements) can be a key. This means that it would be better if the "key" is specified as an open block.

Units notes implemented: https://github.com/metanorma/metanorma-standoc/issues/688


added PDM dependencies manager.

Description

Checklist:

[ ] I've made sure that tests are updated accordingly (especially if adding or updating a template option)
[ ] I've updated the documentation or confirm that my change doesn't require any updates

Rationale

Hello @Aliaksandr-Litvinau, thanks for your contribution.
You left the rationale section empty while your choice for pdm is very interesting. Considering the state of poetry and uv, why do you want to support pdm?

@foarsitter Hi,
Reasons for Supporting PDM:

Compatibility with PEP 582:
PDM supports PEP 582, which offers an alternative way to manage dependencies without using virtual environments. This can simplify dependency setup and usage, especially for new Python users.
Dependency and Package Management:
PDM provides convenient commands for managing dependencies and packages, making it comparable to tools like Poetry and Pipenv. It also supports working with pyproject.toml, making it compatible with modern Python standards.
Speed and Lightweight:
PDM is designed with performance and ease of use in mind. It can be faster and less resource-intensive compared to some other dependency management tools.
Integration with PEP 517/518:
PDM fully supports PEP 517 and PEP 518, making it compatible with modern build and dependency management standards in Python.
Active Development and Support:
PDM is actively developed and supported by the community. This means it receives regular updates and improvements, making it a reliable choice for dependency management.
Comparison with Poetry and Pipenv:
Poetry:
Poetry is also an excellent tool for managing dependencies and packages, but it can be more complex to set up and use for some users. Additionally, Poetry has had performance and stability issues in the past, although these are actively being addressed.
Pipenv:
Pipenv was popular some time ago, but its development has slowed down, and it does not always support the latest Python standards. PDM can be a more modern and convenient choice.
Conclusion:
Supporting PDM in the project provides users with another powerful and convenient tool for managing dependencies and packages. This can enhance the development experience and simplify environment setup for new users.

What does ChatGPT say about the fact that PEP 582 has been rejected?


modernize travis

Several of the deps do not support 0.4, so this currently can't either. Will fix that in metadata.

This is green, and the last one I think. At least Travis is turned on everywhere from what I could tell.

Thanks for all your work on this.


Errors shown in UI when cluster is insufficient size for Prometheus

Version: v2.2.0-rc8
What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):

Create a cluster (such as non-default size digital ocean with 1vcpu)
Enable monitoring (with default settings) and watch the cluster page
Observe errors (see results section below)
Edit monitoring settings to decrease these settings. They seem to take effect on the workloads/pods but the pods are not restarted and we cannot recover. (The resolution to this issue just covers the error messages) See #19078 for this

Result:
You will get errors in the UI as pictured below.

You will see that prometheus-cluster-monitoring has insufficient resources

Expected Behavior:
An appropriate error message should be shown to the user indicating there is insufficient resources for Prometheus. The user should be able to recover the issue by changing prometheus settings.

Realistically, i think we are we talking about doing two things:

Replacing the bad error message with something friendly like "Unable to obtain monitoring data"
Preventing users from selecting monitoring options that wont work for their cluter?

for 2.2.0, we are just going to make the error message friendly. @davidnuzik can you do me a favor and spin off a new non v2.2 issue for the other ones?

Thanks @cjellick I will open another issue.
I have done more testing and discovered that we require a bare minimum of 850m vCPU be reserved before we even factor in prometheus container so this is likely the reason why we cannot recover on a small cluster. When we account for minimum vCPU reserved by k8s there isn't really anything left for the prometheus container so I'll make an issue that basically describes this problem and proposes a solution. I think that we should effectively not allow someone with only 1vCPU single-node cluster to use prometheus and this should prevent the situation from occurring.

https://github.com/rancher/rancher/issues/19078 was created

error message fix is available in msater

Test on Rancher master version 693664a7
Steps:

add a DO cluser with  2 node DO cluster (1 node - etcd/control and 1 worker both default offering 2 cpu/2gb )
deploying the wordpress app 2 times to reduce the available CPU resource
enabling monitoring at the cluster level

Result:

Version: Master 2.2 (3/21/19)
Confirmed issue as well. Jacks findings match my own:

Version: v2.2.0-rc9
Validated again in rc9


Suggest words from personal dictionary, add custom dictionaries

Typo.js has its limitations (issues with German, no support for adding custom words, no support for combining multiple dictionaries (e.g. English + medical English))  and we may want to consider alternatives. The two packages I find promising are:

hunspell-asm

features: all hunspell features (hunspell in the browser)
size: 4.9 MB
weekly downloads: 5,520

nspell:

features: FLAG, KEY, TRY, NOSUGGEST, REP, COMPOUNDRULE, MIN, COMPOUNDMIN, ONLYINCOMPOUND, PFX, SFX, FORBIDDENWORD, KEEPCASE, ICONV, OCONV, NEEDAFFIX, WORDCHARS
size: 42.4 kB
weekly downloads: 11,849

for comparison, Typo.js:

features: FLAG, KEY, NOSUGGEST, REP, COMPOUNDRULE, COMPOUNDMIN, ONLYINCOMPOUND, PFX, SFX, KEEPCASE, NEEDAFFIX
weekly downloads: 52,771
size: 728 kB (because it ships with en_US dictionary which we do not need).

I think that moving to nspell might be a good idea. I will leave this up for discussion for two weeks to get feedback before making an attempt, but if anyone feels like doing it earlier please do feel welcome to do so.

Typo.js has also problems with italian dictionaries or with all dictionaries which have a complex structure like many prefixes. I will check nspell how it perfoms with such dictionaries. It may be a very good alternative.

I was just wondering about this, are there custom dictionaries at all, I'm adding a zillion things to the Ignore list, but these remina highlighted at least with Jupyterlab with the latest spellchecker. I can see the ignored words in the json config file, so I'm wondering is there a mechanism to add custom dictionaries in the right format. With VI, there is a simple text list in a spell file, is that what I should be doing here, add a local dictionary?

Based on this issue still being open, there isn't.

I'm adding a zillion things to the Ignore list, but these remina highlighted at least with Jupyterlab with the latest spellchecker

@richtong could you provide an example?

Sure, the current typo.us doesn't handle abbreviations for numbers so, numbers and company names. As a workaround I guess
I could create my own hunspell, but it looks like multiple dictionaries isn't supported, so I would need to add on to the en_US or some other dictionary:
1M
100M
2B
300K

You get the idea. And the dictionary doesn't include various technical abbreviations like:
APIs
Web3
dApps
IoT (Internet of Things)
NLP (natural language processing)
3D (although 3-D works its not that common in our field)
4D (Four dimensional world that is you can go back and forth in time)
sUAVs (small unmanned aerial vehicles)
Convolutional
Downsampling

Of course because Jupyter (at least for us) is for scientific and business stuff, it there are a lot of these. Also, if you put it on the Ignore list at least with the latest release, you still get the highlighted as a misspelling even though it is on the ignore list so my list has lots of dupes before I figure this out.
And of course various company names
Zipline
Quota
SDL

I mean that this is not how the ignore list is supposed to work. It should have prevented things from getting highlighted. If it does not please provide a specific example and open a new issue.

FYI: Zettlr went from typo.js (v1.0.0) to nspell (v1.1.0) to nodehun (current Zettlr version)
The file changes in the commit messages (under the to links above ) seem to indicate that the required changes are not extensive.


Switch to FastAPI

Unable to test. Hope it works :crossed_fingers: :)

Thank you! Let's test it in production. 🤞🏻


files: deal with deleted user errors better

Show a more meaningful error banner indicating the user has deleted their account if error code says so. This covers the case where user tries let a deleted user "back in".
change from "blahblah has reset their account" into "blahblah has reset or deleted their account".
ignore identify fails in subscribePath, which is called when the path action popup shows, which is a necessary step to ignore a TLF from GUI.

@jakob223 please take another look; I added another commit after rebase. A different change that's now in master fixed a bug where SimplefsStat error wasn't reported, and now that it's reported and because Go doesn't handle it properly yet, we need to ignore it here.

(pushed another commit to ignore it everywhere because just SimpleFSStat didn't cover it)


Add documentation and tests to replay_file branch

To progress https://github.com/audreyr/cookiecutter/pull/906

Merge master & resolve conflicts
Add documentation
Add tests

Due to the merge, there are a lot of commits, but the 2 last ones are the meaningful ones.

Codecov Report

:exclamation: No coverage uploaded for pull request base (replay_file@d68c6de). Click here to learn what that means.
The diff coverage is 100%.

@@              Coverage Diff               @@
##             replay_file       #1   +/-   ##
==============================================
  Coverage               ?   99.74%
==============================================
  Files                  ?       18
  Lines                  ?      789
  Branches               ?        0
==============================================
  Hits                   ?      787
  Misses                 ?        2
  Partials               ?        0

Impacted Files
Coverage Δ

cookiecutter/extensions.py
100% <ø> (ø)

cookiecutter/prompt.py
100% <100%> (ø)

cookiecutter/utils.py
96% <100%> (ø)

cookiecutter/cli.py
100% <100%> (ø)

cookiecutter/__init__.py
100% <100%> (ø)

cookiecutter/main.py
100% <100%> (ø)

cookiecutter/hooks.py
100% <100%> (ø)

cookiecutter/log.py
100% <100%> (ø)

cookiecutter/zipfile.py
100% <100%> (ø)

cookiecutter/exceptions.py
100% <100%> (ø)

... and 4 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 d68c6de...1150a2f. Read the comment docs.


Resurrect Github actions

This reverts all but the intended line of the last commit of https://github.com/dart-lang/protobuf/pull/458 .
This should resurrect github actions.

I'll close https://github.com/dart-lang/protobuf/pull/469 in favor of this


Generate ledger JSON from spreadsheet

App to generate the mainnet genesis ledger in the runtime JSON format. The input is a tab-separated-value file exported from a Google Docs spreadsheet.
Tested using a sample clean spreadsheet, can provide a link for review. The code here doesn't accept an empty string for the vesting amount, which does occur in the sample spreadsheet; it's been promised that the final spreadsheet will have 0 entries, and not empty strings.
I can provide the JSON output for review.
Added a Makefile target, placed in .PHONY section, removed some no-longer-used entries there, added some entries which should have been added.
Closes #7692.

!approved-for-mainnet


[Feature] Add nigerian provider

This PR adds a Nigerian provider to the faker project.
Things added include:

Nigerian States, cities and regions
Nigerian names, both male and female
Phone number formats
Internet formats

Unit Tests are also written to ensure expected results are achieved.
Set your application to use the provider by passing ng_NG to the create static method. Thus
$faker = Faker\Factory::create('ng_NG');

Awesome, thanks for your efforts!

It's always a good thing relating with more experienced developers. I've learnt a couple of things from this. Thanks for merging. 👍


Sudo plugin behavior

(running current GIT version under up-to-date Arch linux) While the instructions for using password helper work perfectly, using the Sudo plugin has an error immediately after typing Enter after typing the desired command target for 'sudo',  e.g. 1) launch dmenu_extended_run, 2) choose the Sudo plugin, 3) type a program like 'gparted' which requires su 4) result: dmenu window closes.
Launching dmenu_extended_run in a terminal for the above yields:
`Traceback (most recent call last):
File "/usr/bin/dmenu_extended_run", line 7, in
dmenu_extended.run(*sys.argv)
File "/usr/lib/python3.6/site-packages/dmenu_extended.py", line 1546, in run
plugin_hook[0].run(out[len(plugin_hook[1]):].strip())
File "/home/paul/.config/dmenu-extended/plugins/plugin_sudo.py", line 63, in run
dmenu_extended.handle_command(self, item)
File "/usr/lib/python3.6/site-packages/dmenu_extended.py", line 1509, in handle_command
d.execute(out)
File "/usr/lib/python3.6/site-packages/dmenu_extended.py", line 649, in execute
return subprocess.call(command)
File "/usr/lib/python3.6/subprocess.py", line 267, in call
with Popen(*popenargs, **kwargs) as p:
File "/usr/lib/python3.6/subprocess.py", line 707, in init
restore_signals, start_new_session)
File "/usr/lib/python3.6/subprocess.py", line 1333, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'SUDO_ASKPASS="/home/paul/.config/dmenu-extended/plugins/plugin_sudo.py" sudo -A '`
I don't have a good enough grasp of the py code to understand the cause of the error: the plugin_sudo.py file certainly exists and has +x permissions.  Any ideas?

Hi there,
Sorry it has taken so long for me to respond. Sudo as a plugin was removed after sudo support was integrated into dmenu_extended. You'll notice it's not listed under https://github.com/markjones112358/dmenu-extended-plugins/blob/master/plugins_index.json so you shouldn't be able to install it using the plug-in manager. Just out of curiosity, how did you install it?
Are you wanting the sudo plugin because it offers an easy way of running items already listed in the menu?

Hi, thanks for checking in, and thanks for making this tool!
I've had dmenu_extended installed for quite a while, first installation was at least a couple years I think, and through the Arch User Repositories; it came along with the sudo plugin, and in subsequent package upgrades, I think the package-management simply left the plugin in place.  The sudo plugin probably stopped working less than a year ago, so not sure if that jives with the timing of the plugin removal from git.
In other words, the sudo plugin was installed with the package when I first set up the system, and was never removed in subsequent updates via package management.
I think for me the elegance of the plugin was to simply condition any subsequent query, as you say, taking advantage of the many fewer keystrokes to launch commands for those commands that need it, e.g., gparted.  To me, that use case is more elegant than typing sudo and the command in one line, but then completely losing the autocompletion advantage.

Well, it's great to hear there are people out there making use of it.
I agree, it is a shame that the menu disappeared when the plugin was integrated.
As this is an open source project, how do you think it would be best to fix this?
I'll propose a couple of options, you're free to suggest something else.

Let the user enter sudo and press enter, then re-open the menu with all the items so the user can then use the fuzzy search.
Add an option to the configuration that enables the Sudo -> submenu option in the menu and bring back the behaviour from the plugin.

Both of these options shouldn't affect most users unless they actively seek the feature.
Let me know what you think.
-Mark


Add Malay translations

See #24

@izzy I will work it. Can you assign it to me?

@erikrios Assigned it to you! :)


Weird characters in textareas Opera

Hi there,
This has been happening for a while ... I'm seeing an ascii character displaying on new lines and also the cursor in most textareas .. See attached screen shot. I'm using Opera 32.0.1948.69

It's documented in Troubleshoot. Please read it.

Did it work?

If it didn't make sure to also check Webmin->Language and Theme module as it overrides global settings!

Sorry I didn't read the troubleshooting section .. but that's done it .. Thanks for your help!