service offering.  sdk framework rewrite

Enhanced the following resources to support the full api spec.

cloudstack_service_offering_constrained
cloudstack_service_offering_unconstrained
cloudstack_service_offering_fixed

I split the service offering API up into multiple resources to make it a bit clearer of the different qos types

@poddm Can you add the updated docs to this PR as well?  I believe you had docs on the other PR you closed, but there doesn't appear to be updated docs for this.
I have pulled down your branch to test, and am still having issues with needing to specify the domain or domainid.
I get the following error:
│ Error: Error creating service offering
│
│   with cloudstack_service_offering_fixed.standard_offering["8-8"],
│   on service_offerings.tf line 21, in resource "cloudstack_service_offering_fixed" "standard_offering":
│   21: resource "cloudstack_service_offering_fixed" "standard_offering" {
│
│ Could not create fixed offering, unexpected error: CloudStack API error 431 (CSExceptionErrorCode: 9999): Unable to execute API command createserviceoffering due to invalid value. Invalid parameter domainid value="79151a13-70ff-4ddc-918e-8d8deab2c289" due to incorrect
│ long value format, or entity does not exist or due to incorrect parameter annotation for the field in api cmd class.

I'm using it like this:
resource "cloudstack_service_offering_fixed" "standard_offering" {
  for_each = local.cpu_ram_map

  name         = "ACE-${each.value.cpu}C${each.value.cpu}-${each.value.ram}R${each.value.ram}-S"
  domain_ids  = [local.domain_id]
  display_text = "ACE-${each.value.cpu}C${each.value.cpu}-${each.value.ram}R${each.value.ram}-S"
  cpu_number   = each.value.cpu
  cpu_speed    = var.standard_cpu_speed
  host_tags    = "standard"
  storage_tags = "standard_storage"
  memory       = each.value.ram * 1024 # Convert GB to MB
  offer_ha     = false
}

my locals
locals {
  cpus = [1, 2, 4, 8, 16, 32, 64]
  rams = [1, 2, 4, 8, 24, 32, 40, 48, 56, 64, 128]

  cpu_ram_combinations = flatten([
    for cpu in local.cpus : [
      for ram in local.rams : {
        cpu = cpu
        ram = ram
      }
    ]
  ])
  # Create a map for for_each
  cpu_ram_map = {
    for combination in local.cpu_ram_combinations :
    "${combination.cpu}-${combination.ram}" => combination
  }
  domain_id = "79151a13-70ff-4ddc-918e-8d8deab2c289"
}

@CodeBleu , I fixed the domain ids issue.  Try now.
Also, regarding the documentation.  I was looking at using the generator but it might be better to scope all that work to its own PR. https://github.com/hashicorp/terraform-plugin-docs

@CodeBleu , I fixed the domain ids issue. Try now.
Also, regarding the documentation. I was looking at using the generator but it might be better to scope all that work to its own PR. https://github.com/hashicorp/terraform-plugin-docs

@poddm  Thanks!!
I was able to successfully add offering with specifying the UUID for domain_ids in an list, but I have a couple of questions.

Can this also be added with putting the name "TEST" or "/ROOT/TEST" and it automatically get the correct UUID?
I need to specify the storage_type as well, but I need to be able to do this without having to specify a disk_offering Is this feasable?  Right now without specifying the disk_offering it defaults to shared, and I'd like to be able to change this without having to specify a full disk_offering.

Can this also be added with putting the name "ACE" or "/ROOT/ACE" and it automatically get the correct UUID?

I think it would be better to add a data resource for domains.  The problem I see with this approach is the resource will never become tainted if it was recreated as the same name.  Subsequent resources that may modify or depend on the domain would never detect the newly re/created domain.
ex.
data "cloudstack_domain" "ace" {
    name = "/ROOT/ACE"
}

resource "cloudstack_service_offering_fixed" "standard_offering" {
  ...
  domain_ids = [data.cloudstack_domain.ace.id]
}

I need to specify the storage_type as well, but I need to be able to do this without having to specify a disk_offering Is this feasable? Right now without specifying the disk_offering it defaults to shared, and I'd like to be able to change this to local without having to specify a full disk_offering.

Let me check.  I believe storage_type is only applicable when creating a "compute only disk offering"/disk_offering block.

Also, why is storage_tags avail in both at the 'root' level of the resource and also as tags in the disk_offerings?

Thats a bug.  storage tags should be in the disk_offering block

@poddm Thank you so much for looking into this.
Once this offering stuff is complete, I still need a way to implement this with the cloudstack_instance resource.  If I specify an offering that is constrained/dynamic, I need a way in the cloudstack_instance resource to specify the min/max of the CPU, Mem..etc.  Otherwise right now it will just fail saying that it's missing values I'm not able to provide currently, and I can't use it.
Is this something you can fix with a new PR for cloudstack_instance

@poddm I haven' tested but PR looks good. Left some minor comments.

@poddm Thank you so much for looking into this.
Once this offering stuff is complete, I still need a way to implement this with the cloudstack_instance resource. If I specify an offering that is constrained/dynamic, I need a way in the cloudstack_instance resource to specify the min/max of the CPU, Mem..etc. Otherwise right now it will just fail saying that it's missing values I'm not able to provide currently, and I can't use it.
Is this something you can fix with a new PR for cloudstack_instance

You can provide the values in the details field.
resource "cloudstack_instance" "this" {
    name               = cloud
    display_name = "cloud details"
    details          = {cpuNumber = "4", memory = "2048"}
}

@poddm Thank you so much for looking into this.
Once this offering stuff is complete, I still need a way to implement this with the cloudstack_instance resource. If I specify an offering that is constrained/dynamic, I need a way in the cloudstack_instance resource to specify the min/max of the CPU, Mem..etc. Otherwise right now it will just fail saying that it's missing values I'm not able to provide currently, and I can't use it.
Is this something you can fix with a new PR for cloudstack_instance

You can provide the values in the details field.
resource "cloudstack_instance" "this" {
    name = cloud
    display_name  = "cloud details"
    details = {cpuNumber = "4", memory = "2048"}
}

This is not currently part of the provider. Do you have this in your own branch?  If so, Is there a PR for this too?
https://registry.terraform.io/providers/cloudstack/cloudstack/latest/docs/resources/instance

@CodeBleu ,

I need to specify the storage_type as well, but I need to be able to do this without having to specify a disk_offering Is this feasable? Right now without specifying the disk_offering it defaults to shared, and I'd like to be able to change this to local without having to specify a full disk_offering.

I fixed the duplicate storage_offering field.

Error: Error creating the new instance ace-test-box-0: invalid character '<' looking for beginning of value

This usually means the management server api returned an html error response and not json like the client library is expecting.  I've been using this in 0.4.0 release.

@poddm

I fixed the duplicate storage_offering field.

Thanks, I will test this later.  My main issue was the storage_type would not change to what I selected.  It defaults to shared and I wanted local. This is mentioned above in big comment, so maybe that part got lost.

Error: Error creating the new instance ace-test-box-0: invalid character '<' looking for beginning of value

This usually means the management server api returned an html error response and not json like the client library is expecting. I've been using this in 0.4.0 release.

What should I do?

I don't even see the details part of cloudstack_instance even documented.
I went ahead and used what you said to use, but I get that error whenever I add the details part

@poddm  Was wondering if you could help me with this?  I need the storage_type to be what my terraform is set to, but it's not.
https://github.com/apache/cloudstack-terraform-provider/pull/138#issuecomment-2448287725

@poddm Was wondering if you could help me with this ☝ ? I need the storage_type to be what my terraform is set to, but it's not. #138 (comment)

fixed.

@poddm Was wondering if you could help me with this ☝ ? I need the storage_type to be what my terraform is set to, but it's not. #138 (comment)

fixed.

@poddm Thanks, I do see that it is showing the storage_type correctly now, however I need the offering to allow 0 as the root_disk_size, so when using the service offering, I can specify whatever disk size I want during deployment.
Could not create fixed offering, unexpected error: CloudStack API error 431 (CSExceptionErrorCode: 4350): The Root disk size is of 0 GB but it must be greater than 0.

The error is being thrown from cloudstacks API.  Try setting this global var to 0.
Custom diskoffering size min (custom.diskoffering.size.min)
Minimum size in GB for custom disk offering.

The error is being thrown from cloudstacks API. Try setting this global var to 0.
Custom diskoffering size min (custom.diskoffering.size.min)
Minimum size in GB for custom disk offering.

Not really sure where you are talking about.  Before the last change, this wasn't an issue and would create the offering with a root_disk_size of 0, but the local/shared storage_type was not working.  When I updated it with that fix...now is when I get the error about 0 for the size
In my resource "cloudstack_service_offering_fixed" "standard_offering" {
I have this:
root_disk_size           = 0


txSummary not returning contract call operation in some cases

What version of fuels-ts are you using?
0.88.1
Steps to Reproduce

use the latest fuel-wallet
access connectors demo and connect your wallet
click on increment button
you will see this screen

More details
The screen above tries to show the operations of the transaction for the user to check and confirm it. It's currently showing no operations.
Behind the scenes it's consuming  getTransactionSummary.
When this method tries to compute the contract call operations, it tries to identify who called the contract using the assetId returned from the receipt.
The problem is that the receipt returns 0x0000..., as there was no assetId in the contract call made. The previous code was working only because the baseAssetId was the same, and the input would have the correct assetId.
Solution
When the receipt returns assetId: 0x0000..., consider getting the input that has the current baseAssetId, meaning that who payed the fee will be identified as the contract caller.
fuel-core https://github.com/FuelLabs/fuel-core/issues/1941
I think this is something that could be changed in the VM, it could return null instead of 0x0000..., but it doesn't change the solution above

I think the more permanent fix for this should involve fuel-core determining what the correct response is based on https://github.com/FuelLabs/fuel-core/issues/1941
In the interim we have released a patch which solves this.

@maschad
makes sense to close this issue? the bug in this issue is fixed.
the change on VM may or may not happen haha, can it be tracked in another issue as an improvement instead of a bug ?
cc @arboleya

I agree @LuizAsFight this particular issue closed since both

https://github.com/FuelLabs/fuels-ts/issues/2530
https://github.com/FuelLabs/fuels-ts/issues/2449

have been created to address this on our end going forward, if https://github.com/FuelLabs/fuel-core/issues/1941 gets integrated  on fuel-core then we can create another issue to make accommodations for that.


Push 0.1.4 version to npm

If 0.1.4 is stable it should be pushed to npm right?

My bad, thanks @vikeri !


Effects of SSM_D_STATE and SSM_RATIO

Hi, I noticed that the model consumes a lot of memory, and wondering if you managed to reduce it by changing SSM_D_STATE or SSM_RATIO while maintain/improve the performance (they were changed in configs/vssm1/vssm_tiny_224_0229.yaml compared to original configs/vssm/vssm_tiny_224.yaml) - do they affect the performance a lot?

The performance of vssm_tiny_224_0229 and 0230 are both ~ 82.4，actually I do not think it'll make any difference if D_STATE=1 or 16, when D_STATE is small, but this needs to be proved.
SSM_RATIO affects performance a lot, that is for sure.

The changes in v2 with respect v0 models seem to be setting the D_STATE from 16 to 1 while adding the mlp branch (MLP_RATIO=4) in VSSBlock . Further within the SS2D block the in_proj layer output dimension is d_inner now instead of d_inner*2(no skip connection inside the SS2D block).
Is this correct?

Yes, you are correct basically.

Thanks! Can you please elaborate on what where the reasons for setting D_STATE from 16 to 1 and if you have any insights on the effect of varying D_STATE.


Collections.abc deprecation warning

The below line generates a warning regarding importing from collections.
https://github.com/getsentry/sentry-python/blob/7c4683f0cd2a32738ba5e22c4a9bc6040ea13f15/sentry_sdk/tracing.py#L27
  /home/karthi/freezegun-venv/lib/python3.9/site-packages/sentry_sdk/tracing.py:27: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
    class EnvironHeaders(collections.Mapping):  # type: ignore

This can be fixed like similar fix done in other file
https://github.com/getsentry/sentry-python/blob/44b8949fe2ff0f6319dd586d15c3e76b239971d6/sentry_sdk/serializer.py#L30-L37

Thanks, since this has happened twice now I am working on a bigger fix for this in https://github.com/getsentry/sentry-python/pull/416


v3.4.1 button looks ugly when :focus on Chrome 84

Windows7, Chrome 84
Test case: https://jsbin.com/jogejuxota/edit
Chrome changed its default element styles in recent versions, and the default appearance of button in v3 looks ugly when focused.
Chrome 84:

Earlier chrome (What I excepted):

As you can see here, Bootstrap 3 isn't supported anymore so this probably won't be fix.
Maybe it's time to upgrade!

That appears to be related to Bootstrap 3.x, which we're not changing anymore. v4 and the upcoming v5 define their own focus styles. https://getbootstrap.com/docs/4.5/components/buttons/

(hah, @Deckluhm beat me to it)


Update to latest ygot, goyang, ondatra versions and regenerate oc

The latest goyang had some backwards-incompatible changes that makes it necessary to regenerate the schema.

@sthesayi, @dplore, or @rcdomigan Could you help me with the recent restart-timer changes in the BGP model?
See https://github.com/openconfig/public/pull/532 and https://github.com/openconfig/featureprofiles/pull/93/files I'm not familiar with the protocol details here.

Example code snippet that needs to be updated:
https://github.com/openconfig/featureprofiles/blob/b8648df0e1db688cb06123b2489ff39db9692016/feature/bgp/neighbor.go#L136-L148

Perhaps due to prefix limit restart-timer changed to uint16:
https://github.com/openconfig/public/pull/532/files#diff-d8b66cec430d0c380b54bb8473f2dfe90c54e898a338c53c0d321e0c6fae1ac3R184-R191
On Thu, Mar 24, 2022 at 7:58 PM Wen Bo Li @.***> wrote:

Example code snippet that needs to be updated:
https://github.com/openconfig/featureprofiles/blob/b8648df0e1db688cb06123b2489ff39db9692016/feature/bgp/neighbor.go#L136-L148
—
Reply to this email directly, view it on GitHub
https://github.com/openconfig/featureprofiles/pull/107#issuecomment-1078515643,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABMCGMZIEQX4FUCV7WF6323VBT6TDANCNFSM5RSTT6OA
.
You are receiving this because you were mentioned.Message ID:
@.***>


[SPARK-27118][SQL] Upgrade Hive Metastore Client to latest Hive version for branch-1.1 and branch-1.0

What changes were proposed in this pull request?
Hive 1.1.1 and Hive 1.0.1 released. We should upgrade Hive Metastore Client version.
https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12329444&styleName=Text&projectId=12310843
https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12329557&styleName=Text&projectId=12310843
How was this patch tested?
N/A

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8709/
Test PASSed.

Merged build finished. Test PASSed.

Test build #103263 has started for PR 24040 at commit cfbb8bc.

Test build #103263 has finished for PR 24040 at commit cfbb8bc.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103263/
Test PASSed.

Merged build finished. Test PASSed.

Got it. Thank you @srowen @dongjoon-hyun


ADD: Change all fees and gas display in $

For easier usability change all fees and gas to be displayed in $ Vaule instead.
Please verify every view and check with figma.

Please keep both gas fee in crypto asset , and also in USD value ,  for users have more crypto experience , will expect the gas to display in crypto native way,  for users have less experience , they probably fine with USD value.
I myself will like gas fee to be displayed in crypto way , so I know whether I paid enough fee for my transaction or now

@johnnyluo I again agree with you  that we should display both but again was wished by JP see in fee request. I will ping you there.

@yvebe keep as is on swap page and add the same to send screen (see figma):

@yvebe Yes on verify it makes sense to just have it in USD. I amended figma

QA done. Opening new issue to implement same on swap screen #1151


Opening beta version <IP_ADDRESS> on XrmToolBox version 1.2016.5.27 throws script error

First!  :grinning:

Then:

Hi Scott,
This is odd – that's not even my plugin!
Maybe this is one for Tanguy since it looks like one plugin is interfering with the others.
I suggest you use the CRM solution beta version for now, or unload the User settings plugin first.

It seems to be caused by DLab Tools Plugin - if you delete this one you should be able to start the Ribbon Workbench Plugin ok.

Yes, I deleted the other plugin - but the two shouldn't interfere with the other -

Totally agree - Tanguy is going to issue some guidance on writing plugins so that they don't interfere with others.

Thanks - have a great weekend  - or is it now known as a #Weekexit ?  ;-)

I've updated the Ribbon Workbench plugin to work around the issue - so you should be able to have both plugins loaded now :)

Yep - thanks - works great!


[plugins/tmux] Allow passing arbitrary options through to tmux

I use this in combination with e.g. ZSH_TMUX_OPTIONS='-2' in my ~/.zshrc.

@AndrewKvalheim Can you please rebase this PR onto our latest master branch. Then update this PR with a Commit please? Thank You!

Looks like there's been no interest in this approach to configuration and I'm personally not using this plugin anymore.


Confusing meta get behavior after meta delete with invalidate flag

Describe the bug
mg without the N flag can still return the W flag, after md command with the I flag. Its a bug or an expected behavior?
If its an expected behaviour, can I disable it?
To Reproduce
mg key01 v N100
VA 0 W

md key01 I
HD

mg key01 v
VA 0 X W

mg key01 v
VA 0 X Z

System Information

OS/Distro: Docker
Version of OS/distro: Docker image memcached:1.6.12
Version of memcached: 1.6.12

That's intentional (and admittedly a bit weird, but I never received feedback).
N is specifically "create a temporary object if it doesn't already exist, with this TTL, and tell me if that happened"
md key I is specifically "I'm deliberately setting objects as stale, and the next thing that fetches it has to understand that". Since the object is stale, it seemed important that the fetchers be informed of that (Z), but I couldn't decide on if N or similar should still be required. I believe not because if N is required to get a W back that can break some other workflows. ie; if you don't want to autovivify on miss for some reason, but do want to mark objects as stale and revalidate.
Why do you need to disable it?

Thank you for your answer. I just wonder how long for the next W flag to be returned if the N flag with timeout is not specified?

No worries, I appreciate you asking for clarification.
If you as a user want to know how much time is left, add the t flag to the gets. The time in W state is the remaining TTL. You can set the TTL remaining with md, ie: md key I T30 - specifically the T flag for md only works when paired with I.
To show again, with metaget:
mg key v N30 t
returns the time remaining, creates the item if not exists (with a 30s timeout), and the value if it does exist.
md key I T30
... sets the item as stale and to then expire in 30 seconds.
mg key v t
... might return a W, also with the TTL so you know how long you have.
You're right in that this can be awkward if you get the W without a lot of time remaining. I might be able to improve this in the future, not sure offhand. It might not be too terrible to have N's argument override the TTL on W, which I think is what you originally wanted.

Thanks for clarification.
So what you said is about this behaviour: mg N100 does not override the last TTL of  md key I T30?
ms key 4
ABCD
HD

md key I T30
HD

mg key N100 v t
VA 4 t26 X W
ABCD

Correct. There's only one TTL value in the object. Sorry for the confusion.


fix shadow_root related specs

Spec is failed on CI...
https://github.com/YusukeIwaki/capybara-playwright-driver/actions/runs/3567273332

It will be fixed in future.

The ci failure is caused by merging #55. resolved in 0.3.2 release.


add --openocd-ignore-adapter option to disable broken/problematic debuggers

You can specify multiple --openocd-ignore-adapter <serial> arguments to exclude multiple adapters or do the same thing with OPENOCD_IGNORE_ADAPTER env variable delimited by : as usual e.g. in $PATH. I'll add the new param into --help, wasn't sure about it, but honestly it's an internal tool, so why not.


Clarify path for a simple body_text event.

It's not really clear with regard to a normal agent that this is simply the name of the field.

sounds good. i modified.

Thanks!


tvos support

remove ios dependent like pinch gesture and such and it should be okay.

@ninokierulf thanks for your suggestion, would you like to take the initiative to give a try?


replace Box with enum

We take a substantial performance hit from Boxing everything. We must Box because we are passing around Traits (VCF::Variant, Bam::Record, etc). This means that the dynamic dispatch is done twice since the Box dispatches to the underlying Trait which dispatches to the concrete struct.
https://github.com/brentp/bedder-rs/blob/d051b6520401caddc81a05364838c9065dcb8ee5/src/position.rs#L58-L75
We can use this crate: https://crates.io/crates/enum_dispatch to get static dispatch but we must provide the enum anyway.
Using enum_dispatch or the actual enum would mean that a lib user could not add a new file type (PositionedIterator) without changing the core library--updating the main enum and all code that matches on that enum. (Unless the new filed type used an existing Positioned type)
We can also implement as enums directly. More info on the problem/setup here:
https://bennett.dev/dont-use-boxed-trait-objects-for-struct-internals/
If we do have the enum, a downside is that every Positioned will take the space of the largest item in the Enum.
This is probably OK as memory will only be a problem for huuuge query intervals and we are using Rc, not copying; but it is still a consideration.
The example code shows how this appears when using the API: https://github.com/brentp/bedder-rs/blob/4f106838fb3048430c35796b641cfbc1afd48054/examples/intersect_bed_count.rs#L43-L58

This is implemented in main


Consider Redis caching for some routes

in particular for
    "/pkgs (GET)",
    "/pkgs/:pkg_name:/history (GET)",
    "/pkghistory (GET)",
    "/maintainers (GET)",
    "/maintainers/:email: (GET)",

as these can have large payloads, and could be cached to minimize response time
Ideally:  check if the cache should be deleted if there's been a recent cron job run resulting in new data for whatever the query is.

just TTL it


DBZ-156 Updates EmbeddedEngine to better handle exceptional cases and provide more feedback during startup

It also updates EmbeddedEngine to use the Kafka commit callbacks introduced after 0.10 and updates AbstractConnectorTest to better synchronize with the embedded engine

amended the commit and changed the log warning message as per the comment above


Demo post

The notebook examples/notebooks/Compressio From Scratch.ipynb LGTM. The other changes are superseded by those in #14 and should be discarded here.


Add LNbits payment processor

latest commit is currently untested. DO NOT merge.
Description
Adds the LNbits payment processor. Also includes:

small refactoring changes

BigInt -> bigint on files that I have touched
use utility functions to create PaymentsServices instead of manually doing it

migration to switch invoice IDs to TEXT
callback refactoring

Related Issue
Closes #163
Motivation and Context
Allowing users to receive pay to relay payments via alternative methods/to their own node.
How Has This Been Tested?
Tested on production with atlas.nostr.land. Would prefer someone else tests this too.
Types of changes

[x] Non-functional change (docs, style, minor refactor)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my code changes.
[x] All new and existing tests passed.

note: I couldn't find any tests related to pay to relay

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

25 of 144 (17.36%)  changed or added relevant lines in 9 files are covered.
100 unchanged lines in 12 files lost coverage.
Overall coverage decreased (-7.5%) to 51.485%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/factories/lnbits-callback-controller-factory.ts
5
6
83.33%

src/factories/post-invoice-controller-factory.ts
2
3
66.67%

src/factories/maintenance-worker-factory.ts
0
2
0.0%

src/handlers/request-handlers/post-lnbits-callback-request-handler.ts
2
6
33.33%

src/factories/payments-processor-factory.ts
4
19
21.05%

src/routes/callbacks/index.ts
1
20
5.0%

src/controllers/callbacks/lnbits-callback-controller.ts
4
34
11.76%

src/payments-processors/lnbits-payment-processor.ts
6
53
11.32%

Files with Coverage Reduction
New Missed Lines
%

src/repositories/event-repository.ts
1
97.44%

src/handlers/event-strategies/replaceable-event-strategy.ts
2
84.62%

src/adapters/web-server-adapter.ts
3
56.67%

src/app/worker.ts
3
34.29%

src/handlers/event-message-handler.ts
3
84.96%

src/factories/rate-limiter-factory.ts
4
45.45%

src/utils/settings.ts
4
65.82%

src/cache/client.ts
5
40.0%

src/adapters/redis-adapter.ts
6
6.38%

src/handlers/request-handlers/rate-limiter-middleware.ts
8
17.5%

Totals

Change from base Build<PHONE_NUMBER>:
-7.5%

Covered Lines:
1087

Relevant Lines:
2054

💛  - Coveralls

Hey @Semisol thanks for the PR, looks pretty good, I just added some comments/recommendations to bring it to the finish line and merge!


get_time_series methods don't convert time series values to natural units for Services

Seems like when retrieving time series values when the unit setting is set to "natural_units" are not converted, other devices like PowerLoads have time series  converted to natural units but not for services. attached an example for this on the RTS
For reserves :

For Loads :

conversion is not happening on the reserve fields as well

I don't know if we ever implemented the methods to get this done.

getter functions with mva base conversion needs to be implemented.


⚠ Bofrost.be has degraded performance

In add202c, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2316 ms

Resolved: Bofrost.be performance has improved in 2c3ae09 after 26 minutes.


Allow disabling JSON decoding

GCP doesn't use JSON and upon connect, Jackalope crashes:
08:17:00.365 [error] GenServer {Tortoise311.Registry, {Tortoise311.Connection.Controller, "projects/keep-cloud-dev/locations/us-central1/registries/test-registry/devices/test-device"}} terminating
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: not an iodata term

    :erlang.iolist_to_binary(nil)
    (jason 1.2.2) lib/jason.ex:55: Jason.decode/2
    (jackalope 0.6.0) lib/jackalope/tortoise_handler.ex:54: Jackalope.TortoiseHandler.handle_message/3
    (tortoise311 0.11.3) lib/tortoise311/handler.ex:349: Tortoise311.Handler.execute/2
    (tortoise311 0.11.3) lib/tortoise311/connection/controller.ex:254: Tortoise311.Connection.Controller.handle_package/2
    (stdlib 3.17) gen_server.erl:695: :gen_server.try_dispatch/4
    (stdlib 3.17) gen_server.erl:771: :gen_server.handle_msg/6
    (stdlib 3.17) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
Last message: {:"$gen_cast", {:incoming, <<50, 31, 0, 27, 47, 100, 101, 118, 105, 99, 101, 115, 47, 116, 101, 115, 116, 45, 100, 101, 118, 105, 99, 101, 47, 99, 111, 110, 102, 105, 103, 0, 1>>}}
State: %Tortoise311.Connection.Controller{awaiting: %{}, client_id: "projects/keep-cloud-dev/locations/us-central1/registries/test-registry/devices/test-device", handler: %Tortoise311.Handler{initial_args: [handler: GoogleCloudIotCore.TortoiseHandler, jackalope_pid: #PID<0.268.0>, last_will: nil], module: Jackalope.TortoiseHandler, state: %Jackalope.TortoiseHandler{default_last_will: nil, handler: GoogleCloudIotCore.TortoiseHandler, jackalope_pid: #PID<0.268.0>}}, ping: {[], []}, status: :up}

AWS IoT doesn't use JSON either. This depends on the software that you've written on the other side.
@jfcloutier It feels like we've talked about this and I don't remember the reasons for JSON encode/decode here. How about we drop the JSON encode/decode in Jackalope completely?


URL in description and README broken

The URL in the repository description and the one in the README are pointing to githubschool's copy of the game instead of yours.
Please fix both so they point to your copy of the game at https://githubschool.github.io/github-games-cwcoleman/

Index still broken, reopening


[4.0] Scale values with - are not parsed correctly

Foundry Version: 12.331
System Version: 4.0.0
Starting in dnd5e 4.0.0, the roll parser incorrectly parses - without whitespace on either side as a minus operator. This causes any scale value with - in its identifier to not be parsed. For example, @scale.barbarian.rage-damage is parsed as @scale.barbarian.rage - damage, which then further interprets damage as a da roll with modifier mage.
Steps to reproduce:

Import the SRD Barbarian to a sheet.
Enable the "Rage" active effect.
Roll any melee weapon's damage.

After some more testing, it seems to be specifically damage rolls from chat cards that have this issue.


Add point to type conversion, the basic course of life cycle transformation Tutorial

eg:
String ref to String box
String val to String box
iso, trn, ref, box, val

Sorry, I don't understand. Is this a bug report? A feature request?
Is this about something (what, I'm not clear) that you think should be in the tutorial? If yes to the last, there's a repo for the tutorial where you can open PRs, issues etc.


Add indicator map to area impact view

Contributes to #20. This is work in progress.
In this PR we aim to add a choropleth map of the population impacted by the producing area. Other indicators will be implemented in separate tickets as enhancements.
Changes added:

Include totalpop parameter in vector tiles and single area API endpoints
Added population layer to <AreaLayer/> component
Changed machine actions to calculate color ramp dynamically, based on the population of destination areas

Known issues:

Production area should also display population filling
Add legend for this map view
Transition of production->transport area view do not show correct destination areas, while impact->transport does
Port icons might be too large

Screen capture:

cc @wrynearson @faustoperez

Changes added:

Legend updates according to the current view
Dynamic color ramp for population legend
Reduced Port icon size

Quick demo:

How to give feedback:

Start the app locally
Click on an area that has flows, like the one in the demo
Scroll the side panel, legend and map styles should update accordingly

The transition of production->transport area view is displaying all the destination areas, but I couldn't find what is causing the issue yet. I suggest we ticket in separate if this is not blocking.
@wrynearson this is ready for a review.

@wrynearson I added a change to address the issue you found. I also included an empty state to make it clear when no flows are available for an area (contributes to #85). It says "Go to World View" instead of the Figma design’s "Go back" because the user might be accessing the area URL directly, so there may be no browser history to return to. I won't be adding more features to this PR, this is ready for a final review.

@wrynearson and I reviewed this together and decided that it is ready to merge.


Some files may be missing?

Thank you very much for open-sourcing this great work. Some files (such as /data , DataSet, config.py ...)  may be missing here. If you have spare time, I hope you can help me.

Thank you for your interest in our work! And thank you for letting me know the issue. I will work on it today and let you know once fixed.
Thanks,
Jialin

From: Shual<EMAIL_ADDRESS>Sent: Saturday, January 23, 2021 10:56 PM
To: jia2lin3yuan1/2020-instanceSeg<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [jia2lin3yuan1/2020-instanceSeg] Some files may be missing? (#5)
Thank you very much for open-sourcing this great work. Some files (such as /data , DataSet, config.py ...) may be missing here. If you have spare time, I hope you can help me.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/jia2lin3yuan1/2020-instanceSeg/issues/5, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGGDCY4E2L2N7MB5FQMSC53S3LPSHANCNFSM4WPXU3JA.

Thank you for your interest in our work! And thank you for letting me know the issue. I will work on it today and let you know once fixed.
Thanks,
Jialin

From: Shual<EMAIL_ADDRESS>Sent: Saturday, January 23, 2021 10:56 PM
To: jia2lin3yuan1/2020-instanceSeg<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [jia2lin3yuan1/2020-instanceSeg] Some files may be missing? (#5)
Thank you very much for open-sourcing this great work. Some files (such as /data , DataSet, config.py ...) may be missing here. If you have spare time, I hope you can help me.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/jia2lin3yuan1/2020-instanceSeg/issues/5, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGGDCY4E2L2N7MB5FQMSC53S3LPSHANCNFSM4WPXU3JA.

Thanks for open-sourcing this great work.And some files(layers/output_utils.py...) may be missing here.

Hi @jia2lin3yuan1  sh data/scripts/COCO.sh Is this script missing or been removed by you?


Problem with ESP32_DEVKIT V4  WROOM & StepperDemo

Hello,
I want to run a single stepper (200 steps per turn; 1A current spec) using an DRV8824 powered at 12V for the motor (DRV8824 trimpot adjusted).
I am using a win10 laptop and an Arduino environment.
When using an Arduino mega2560 hooked to a RAMPS card with A DRV8824, I get correct motion of the motor using a StepperDriver library (with acceleration/deceleration capability)
I want now to use a and an ESP32_DEVKIT V4  WROOM , and my goal is to use 6 steppers at 200 steps/turn, to rotate concurently each with an eventual different speed in the range 20RPM-800RPM
I have started to test only one motor; I am encountering problems;  and would be happy to find a way to fix the problem:
I am using the "StepperDemo" from  FastAccelStepper
I have used GPIO5 for stepping, GPIO27 for enable (enable_low_active), GPIO32 for direction; also I have hooked up a led in series with  a 200 ohm resistance between pin GPIO5 and ground, so as to monitor step activity.
Here is what I get on the console:
ets Jun  8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
Demo Stepper
F_CPU=40000000
TICKS_PER_S=16000000
Enter commands separated by space, carriage return or newline:
M1/M2/..  ... to select stepper
A  ... Set selected stepper's acceleration
V  ... Set selected stepper's speed
U         ... Update selected stepper's speed/acceleration while running
P    ... Move selected stepper to position (can be negative)
R      ... Move selected stepper by n steps (can be negative)
K         ... Keep selected stepper running in current direction
@    ... Set selected stepper to position (can be negative)
E     ... Set selected stepper's delay from enable to steps
D     ... Set selected stepper's delay from steps to disable
N         ... Turn selected stepper output on (disable auto enable)
F         ... Turn selected stepper output off (disable auto enable)
O         ... Put selected stepper into auto enable mode
S         ... Stop selected stepper with deceleration
X         ... Immediately stop motor and set zero position
I         ... Toggle motor info, while any motor is running
W         ... Blocking wait until selected motor is stopped (will deadlock if the motor will never stop)
+         ... Perform one step forward of the selected motor
-         ... Perform one step backward of the selected motor
T         ... Test selected motor with direct port access
Q         ... Toggle print usage on motor stop
?         ...  The following tasks did not reset the watchdog in time:
E (168457) task_wdt:  - IDLE0 (CPU 0)
E (168457) task_wdt: Tasks currently running:
E (168457) task_wdt: CPU 0: StepperTask
E (168457) task_wdt: CPU 1: loopTask
E (168457) task_wdt: Aborting.
abort() was called at PC 0x400d5147 on core 0
Backtrace: 0x4008b820:0x3ffbe170 0x4008ba4d:0x3ffbe190 0x400d5147:0x3ffbe1b0 0x4008486d:0x3ffbe1d0 0x400d267d:0x3ffb86b0 0x400d18fe:0x3ffb86d0 0x400d1c1c:0x3ffb86f0 0x400d1db4:0x3ffb8720 0x400d1ebe:0x3ffb8760 0x400d1ed5:0x3ffb8780 0x400884d5:0x3ffb87a0
Rebooting...
ets Jun  8 2016 00:22:57

When the ESP32 boots , I can hear some noise from the motor1 ( vibration from the motor 1 but no net rotation, and the led on the GPIO5 is emitting light); this noise lasts for about 2 seconds ;  then stops.
For the console output above,
I have  typed the following commands:
M1
A1000
V1000
N
P100
The Move 100 is not associated with any activity on the GPIO5; The axis of the motor is not free to rotate until the errors encounter; then the program exits/reboots

I tried then a motion of larger amplitude:
ets Jun  8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
Demo Stepper
F_CPU=40000000
TICKS_PER_S=16000000
Enter commands separated by space, carriage return or newline:
M1/M2/..  ... to select stepper
A  ... Set selected stepper's acceleration
V  ... Set selected stepper's speed
U         ... Update selected stepper's speed/acceleration while running
P    ... Move selected stepper to position (can be negative)
R      ... Move selected stepper by n steps (can be negative)
K         ... Keep selected stepper running in current direction
@    ... Set selected stepper to position (can be negative)
E     ... Set selected stepper's delay from enable to steps
D     ... Set selected stepper's delay from steps to disable
N         ... Turn selected stepper output on (disable auto enable)
F         ... Turn selected stepper output off (disable auto enable)
O         ... Put selected stepper into auto enable mode
S         ... Stop selected stepper with deceleration
X         ... Immediately stop motor and set zero position
I         ... Toggle motor info, while any motor is running
W         ... Blocking wait until selected motor is stopped (will deadlock if the motor will never stop)
+         ... Perform one step forward of the selected motor
-         ... Perform one step backward of the selected motor
T         ... Test selected motor with direct port access
Q         ... Toggle print usage on motor stop
?         ...
(.......)
(.......)
 Upon typing "T" and hitting return, I just get "nothing", and no feedback on the console either.

Thanks for the lots of information. Unfortunately, from the log I do not see, which version you are using.
Anyway, the issue sounds familiar, which has been fixed in e32b48e5c156e2e8c8e38f367c3146c319f0f53f. Some commits before (while revising the code for introduction of pause commands), I have managed to make an endless loop in the StepperTask, which is stated in your log (watchdog not triggered)
Please try version 0.12.1. This I have currently on my bench running and looks quite ok.
With github actions, I can test the ramp generator quite well. But for anything hardware related, I have no systematic test approach. Especially I do not always check on both supported platforms, all features. So the blame is on me.
The "T" command works very well on avr. Only today I have recognized, that on esp32 this does not work. That's why, the command is disabled in the latest StepperDemo - for now. The reason is, that on avr, the stepper pin is disconnected, if the pulse generator is not working. The same is not implemented on esp32, besides it is a bit more complicated to do. So T will control enable/direction as expected, but no steps come out. The next days I will check, if I can enable this command for esp32 again, because on avr it is quite helpful.

but was introduced on cbf3c43134b0cd0782b104e2ccda3f6a0d2dfc2c

Hello,
thanks for your lightning fast feedback  yesterday! :)
(and sorry for my previous lengthy pasting of the console output)
I have now just tested  the version FastAccelStepper-0.12.1 on my setup.
I get a similar behavior, see next.
note1: I am using the Arduino IDE 1.8.13
note2: what value for acceleration and velocity do you recommend for plain-testing your library without pushing to limits for a generic stepper motor  ?
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
Demo Stepper
(...)
M1: MANU Curr=0 QueueEnd=0/0us Target=0 STOP  IDLE
M2: MANU Curr=0 QueueEnd=0/0us Target=0 STOP  IDLE
Select stepper 1
Set acceleration to 1000
Set speed (us) to 1000
Output driver on
Move to position 100
returncode=0
M1: AUTO Curr=0 QueueEnd=0/0us Target=100 RUN  ACC   M2: MANU Curr=0 QueueEnd=0/0us Target=0 STOP  IDLE
(...)
 The following tasks did not reset the watchdog in time:
E (76934) task_wdt:  - IDLE0 (CPU 0)
E (76934) task_wdt: Tasks currently running:
E (76934) task_wdt: CPU 0: StepperTask
E (76934) task_wdt: CPU 1: loopTask
E (76934) task_wdt: Aborting.
abort() was called at PC 0x400d51f3 on core 0
Backtrace: 0x4008b81c:0x3ffbe170 0x4008ba49:0x3ffbe190 0x400d51f3:0x3ffbe1b0 0x40084869:0x3ffbe1d0 0x400d272c:0x3ffb86a0 0x400d18e9:0x3ffb86c0 0x400d1bfc:0x3ffb86e0 0x400d1d9c:0x3ffb8710 0x400d1ead:0x3ffb8750 0x400d1f61:0x3ffb8780 0x400884d1:0x3ffb87a0
Rebooting...

Hi Francois,
cool. Just have tried again with your commands and it works fine on my side. So I need to extend the library to capture more info to get down to the root cause. Hope you have sufficient patience to support on this path. What I want to do (list will change/extend eventually):

Add version info to StepperDemo output (hopefully can do something automatic, e.g. linked to make fmt)
Make T command work
Find out, what if the PC value/Backtrace can support in identifying the culprit
Add some Serial.prints at specific code areas, linked to a debug switch.

Perhaps more. Give me some time to come up with this.

Hello Gin,
I will be happy to try out eventual test versions whenever you come up with them.
Best,
Francois

First two points done:

Add version info to StepperDemo output (hopefully can do something automatic, e.g. linked to make fmt)
Make T command work

Direct drive for esp32 should work since commit b14b32536188218500e8b6db57d28dced823a6b4.

Hello Gin,
could you prepare a downloadable version of b14b325  as a zip format library ?
I tried to reassemble a modified zip library using the modified files of you last commits; I named it "FastAccelStepper-0.0.1" and then under the Arduino GUI, I specify "add zip library"; But then I do not succeed in getting that "FastAccelStepper-0.0.1" to be selected when I want to prepare a sketch and specify the library version to be used in that sketch: the list proposed under the name "FastAccelStepper" does not contain the new "FastAccelStepper-0.0.1"
What is the way to escape from this silly trap ?

Hello Francois, no need. I have made a new official release (0.12.2), which incorporates the fix. Hope it shows up in Arduino library manager already

Hello Gin,
the version 0.12.2 does indeed show up in the Arduino IDE, but it does not load correctly: when specifically selecting the version 0.12.2 and clicking OK, the IDE stays with the 0.12.1

Strange behavior. The IT support may say: restart Arduino IDE or restart the computer.
Anyway, the nice thing of an official release is, that github provides nice packaged zip-file

Hello Gin,
the problem at hand is not that simple.
It resists to simply restarting the IDE or rebooting the PC.
So it might be a problem within the 0.12.2 package, that the Arduino IDE refuses to load

I have tried now with my Arduino IDE 1.8.12 in Linux and it works as expected.
Select 0.12.2 and download is complete. IDE reports 0.12.2 installed and in the drop down list for versions to be installed, the 0.12.2 is missing (because is installed).
Checking in the library folder this file: ~/Arduino/libraries/FastAccelStepper/library.properties
Inside is stated, that 0.12.2 is present.

OK, my bad.
I had a problem with a duplicate folder with libraries.
I removed the old library, and loaded the recent one.

The motor runs now  ok!
I have fiddled a bit with the parameters while there is a sizeable inertial load on the axis of the motor. I am using a Nema 17 low profile, 13Ncm, I_avg~= 0.15A on the DRV8825, and 15V supply.
(motor hQQps://www.aliexpress.com/item/4000035468189.html)
(A2000, V300, N, P20000), or even (A2000, V200, N, P20000) are still ok, while for (A2000, V150, N, P20000), I get stalling after the start has occurred.
I have noticed a little problem with the demo program though: after a fist set of command has been issued and the corresponding motion is terminated, the demo program will do nothing if trying to re-issue the same set of commands. One has to reset the ESP to get going again.

Some additional questions:

when specifying V200, does it strictly mean 200 microseconds per step, or is there also some additional overhead time  ?
-is the behavior strictly linear for the parameter V ? (e.g. upon measuring an effective RPM_0 when using a low speed V0: for a speed V1, the RPM_1 will be RPM_0*V1/V0 ?
for the acceleration (say A2000), how does it relate to step/sec^-2 ?
-does the esp run effectively at 240Mhz, or at the basal clock rate of 40Mhz ? (How to test that ?).
if one wants a concurrent serial communication, should one be weary of potential interference with the interrupt-driven motor operation? An upper limit in the serial com speed ?
How to test (without having yet 6 motors and their drivers) that the system is still behaving nicely (timing-wise)?
-how to get the relative average time fraction  spent for the motor's interrupt servicing with respect to the esp32 other tasks ?

Happy to hear, that the bug has not reappeared.
For the “after first set of commands issue”. Which commands do you use ?
Repeating e.g. “A2000, V200, N, P20000” for a selecting motor will not do anything. Because at the second command, the motor is already at position 20000. For repeating commands better use A2000, V200, N, R20000
If the motor is coasting with V200, then it will be exact 200us step time (+/-0.0625us @ 16MHz and +/- offset of quarz/uC-clock). There is no overhead. So it is strictly linear for the pulse time and reciprocal for the speed (ticks/s)
A2000 means, that within 1s after motor start the stepper will run at 2000steps/s.
v[ticks/s]=A[ticks/s^2] * ramp up time[s]
There is no interference with serial communication. Runs smoothly in parallel. On esp32 the interrupt load from the stepper driver is quite low.
The esp32 does not know, if the stepper is attached or not. Just configure the I/Os as if there would be 6 steppers and you could test the performance accordingly (e.g. one stepper at a time). For esp32 you can assume minimum time between two interrupts is around 1ms.

Hello Gin,
the motor is running very smoothly under the tests I have done.
I have a few additional remarks:

I realized that in the demo program, some of the built-in commands are missing in the user's menu, such as f, K,S,X,U. That could be easily  fixed-up in a next version.

To my surprise :-), I have been able to ramp-up my motor to nearly double its initial max speed, by incrementing progressively the V parameter:
initially: A2000 V200 N f
then V190 U, few seconds,
then V180 U, etc... down to V110 U, with the motor still running at this much higher speed  :-)

in view of the pin-number limitation of the ESP32 WROOM for driving say 6 motors while still having a bunch of I/0 pins for other tasks, I was toying with the eventual idea of using an spi I/O expander.
The idea is that the step pins certainly needs to be fast GPIO pins, while the enable and direction controls do not really  have serious timing constraint: it would be nice if your library offered a simple way of NOT using GPIO pins for the enable and direction of the motors (i.e. interfaced via user-defined means, such as an spi I/O expander). Would you be ready to introduce such possibility in the library ?

Best,
Francois

Hi Francois,
just have checked the code and the output in the monitor from code running on esp32. All builtin commands are listed. So I have no clue, what's wrong. Could you please check again with the latest version ?
The direction pin is managed from inside the stepper interrupt routine(s). That's why I do not intend to change that. For the enable pin, this is much easier. But even here I would vote for a callback routine and then it is up to the application to turn it on or off. Basically I want to avoid the burden in the library to support many configurations (different SPIs on different pins) and which I even cannot even test. Hope for your understanding.
For reducing the amount of used pins:

As result of #11, enable pins can be shared. Perhaps your app needs actually only one global enable pin for all motors ?
Direction pins can be shared, if the motors never run simultaneously.

Could you please check your application for that kind of solution ? If this does not work, I will check for the callback.

Hello,

sorry I thought that some commands were missing, but I was wrong, they are indeed in the list printed on the monitor.

for the idea of reducing the number of pins and specifically for the enable and direction that do not have strict timing requirement (except that the step pulses should not begin until those pins are set):

I actually would like to control each motor separately and concurrently, each with an enable pin (when a particular motor is not moving I would like to be able to specifically disable that motor), and each with a possibly different velocity and direction;
so that none of the pins enable /direction /step can be shared.
But I understand also your point of view of seeking simplicity
Nevertheless, if it is not too much re-work for you, a "callback" mode would be nice if it would allow either simple straight pin addressing or also the possibility to use an spi-I/O expander for the enable and direction controls (and allowing possibly some delay for the completion of the "slow" pin settings on the spi-I/O expander )

Function has been implemented. Please try:
  // If the enable pins are e.g. connected via external HW (shift registers),
  // then an external callback function can be supplied.
  // This will be called for defined low active and high active enable pins.
  // If both pins are defined, the function will be called
  // twice. The supplied value is either LOW or HIGH. The return value shall be
  // the status of the pin (either LOW or HIGH).
  //
  // In auto enable mode, this function is called from cyclic task/interrupt
  // with 4ms rate, which creates the commands to put into the command queue.
  // Thus the supplied function should take much less time than 4ms.
  // Otherwise there is risk, that other running steppers are running out of commands in
  // the queue. If this takes longer, then the function should be offloaded and
  // return the new status, after the enable/disable function has been successfully
  // completed.
  void setExternalEnableCall(bool (*func)(uint8_t enablePin, uint8_t value));

Hello Gin,
great !
I have therefore just ordered on aliexpress  breakout boards with MCP23S17 Bidirectional 16-Bit I/O Expanders with SPI  interface.
It might however take 3 to 4 weeks to arrive; I will do the test when I will receive them.
For the callback technique, do you confirm that the timing requirement << 4ms is on the response time of the callback function upon being called (via the interrupt),  and therefore independant of eventual delays in the "loop" section of the arduino program ?

yes. if you return the old status, the callback will be called again and again until the new (expected) status is returned. If it was an enable request, then the motor will start.
If I member well, for the disable request, it will not be repeated....

have updated master for repeating disable request until succeeded.

feature is implemented. If there is a bug, please open a new issue.

feature is implemented. If there is a bug, please open a new issue.


devspace dev syncs wrong folder on connection lost (broken pipe on vcluster connect)

What happened?
Sometimes it happens devspace syncs folders outside of the folder where devspace is defined.
Specifically it happens when the vcluster connect returns a "Broken pipe" error.
We have a monorepository with a "root" devspace where there are defined just dependencies and every dependency is inside a subfolder of the same repo.
Inside the devspace of a dependency we have something like this:
  sync:
      localSubPath: ../../

Because we need to sync also other folders that contain some common modules.
We are using vcluster connect to connect to the virtual cluster through the port-forward.
This works almost every time but sometimes ( it seems when the vcluster connect returns a broken pipe error) devspace dev starts to sync ../../ not relative to the devspace file but from the root of the repository ending up in syncing files not related causing a slow down of the computer and of the cluster.
Handling connection for 10195
Handling connection for 10195
an error occurred forwarding 10195 -> 8443: error forwarding port 8443 to pod 1a2745596017f692dd07236f87b1351cf472dea3537ab9b8f117d1564bdc0ec7, uid : exit status 1: 2022/09/15 12:11:21 socat[5277] E write(5, 0x55b70fcd6f60, 76): Broken pipe

What did you expect to happen instead?
Just continue to sync the correct folder
How can we reproduce the bug? (as minimally and precisely as possible)
I'm not sure on how to have the broken pipe error, I tried shutting down the internet connection but it doesn't seem to happen.
My root devspace.yaml:
version: v1beta11

deployments:
- name: main
  helm:
    chart:
      name: ...
      version: 0.1.2
    values:
      metadata:
        name: ...
        version: 0.0.1

dependencies:
  - name: ...
    vars:
      - name: NAME
        value: ...
      - name: PORT
        value: ...
    source:
      path: ./folder/folder
    dev:
      ports: true
      sync: true
      replacePods: true
  - name: ...
    vars:
      - name: NAME
        value: ...
      - name: PORT
        value: ..
      - name: HOST
        value: ...
    source:
      path: ./folder/folder
    dev:
      ports: true
      sync: true
      replacePods: true
  - name: ...
    vars:
      - name: NAME
        value: ...
      - name: PORT
        value: ...
    source:
      path: ./folder
    dev:
      ports: true
      sync: true
      replacePods: true

One of the dependency devspace:
version: v1beta11

commands:
  - name: start
    command: ....
  - name: linting
    command: echo running frontend linting...
  - name: test
    command: echo running frontend test...

deployments:
  - name: ${NAME}
    helm:
      chart:
        name: ...
        version: ...
      values:
....

dev:
  ports:
    - labelSelector:
        app.kubernetes.io/component: ${NAME}
      forward:
        - port: ${PORT}
  sync:
    - name: ${NAME}
      labelSelector:
        app.kubernetes.io/component: ${NAME}
      localSubPath: ../../
      disableDownload: true
      uploadExcludePaths:
        - bin/
        - obj/
        - node_modules/
  replacePods:
    - labelSelector:
        app.kubernetes.io/component: ${NAME}
      patches:
        - op: replace
          path: spec.containers[0].command
          value:
            - sleep
        - op: replace
          path: spec.containers[0].args
          value:
            - "9999999"
        - op: remove
          path: spec.containers[0].securityContext

Local Environment:

DevSpace Version: 5.18.5
Operating System: mac
ARCH of the OS: AMD64
Kubernetes Cluster:
Cloud Provider: aws but with a virtual cluster
Kubernetes Version:

Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.5", GitCommit:"e338cf2c6d297aa603b50ad3a301f761b4173aa6", GitTreeState:"clean", BuildDate:"2020-12-09T11:18:51Z", GoVersion:"go1.15.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.15+k3s1", GitCommit:"c7a91e1ccdace64eae4a41b9dc15ef8d7aed6d23", GitTreeState:"clean", BuildDate:"2022-01-25T00:24:54Z", GoVersion:"go1.15.15", Compiler:"gc", Platform:"linux/amd64"}

Anything else we need to know?
It happens in different PCs and in different networks not just in my mac or just with my network connection
/kind bug

@sandrotaje thanks for reporting this issue! We'll take a look and try to reproduce this problem.

Additional info:
It seems the bug happens after devspace dev returns `Context deadline exceeded. Unfortunately, I'm not able to print the log.

It seems this doesn't happen with devspace 6


内存池方案设计

优化系统性能，可以参考MOSN的设计
What happened:
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:

hi


Unable to Build for IOS after enabling new architecture,

Description
We are using react native 0.71.7 version without enabling new architecture its working fine for both platform android and ios.
But After Enabling New Architecture build failing for Ios, Android Build working fine.
we are getting linking error
Undefined symbols for architecture x86_64:
"_RCTAppSetupDefaultModuleFromClass", referenced from:
-[RCTAppDelegate getModuleInstanceFromClass:] in libReact-RCTAppDelegate.a(RCTAppDelegate.o)
"RCTAppSetupDefaultJsExecutorFactory(RCTBridge*, RCTTurboModuleManager*)", referenced from:
-[RCTAppDelegate jsExecutorFactoryForBridge:] in libReact-RCTAppDelegate.a(RCTAppDelegate.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
React Native Version
0.71.7
Output of npx react-native info
info Fetching system and libraries information...
System:
OS: macOS 13.3.1
CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 897.02 MB / 16.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 19.9.0 - /usr/local/bin/node
Yarn: Not Found
npm: 9.6.3 - /usr/local/bin/npm
Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
Managers:
CocoaPods: 1.12.0 - /Users/XYZ/.rvm/gems/ruby-2.7.6/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
Android SDK: Not Found
IDEs:
Android Studio: 2022.1 AI-221.6008.13.2211.9619390
Xcode: 14.3/14E222b - /usr/bin/xcodebuild
Languages:
Java: 11.0.18 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: Not Found
react-native: Not Found
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce
Enable New Architecture using RCT_NEW_ARCH_ENABLED=1 && pod install
and build from xcode version 14.3
Snack, code example, screenshot, or link to a repository
I have tried with arm64 active arch.

cc @cipolleschi

Hi @kaushal9808, thanks for the issue. Could you please provide a reproducer?
I tried to create a new app, install the pods and build with Xcode 14.3 as you suggested, but new apps build fine, so I guess there is something specific of your setup...
What I run:
npx react-native init NewArchTest --version 0.71.7 --skip-install
cd NewArchTest
yarn
cd ios
bundle install
RCT_NEW_ARCH_ENABLED=1 bundle exec pod install
open NewArchTest.xcworkspace

⌘ + r

we have migrated our app from RN - 0.67.0 version to 0.71.7, Android and IOS version without new architecture working fine,
After Enable the New Architecture Android is also working fine, But we are facing this issues only for iOS. I am working on it if I found more information then will update here, repository is private so currently we can unable to share the same.
we are checking with new init project and migrating our project, if that's work then great.
Could you please share ruby version with using -> npx react-native info
we can check that if that will create issues or not.

I think I got the problem. The error reports that the RCTAppSetupDefaultModuleFromClass and RCTAppSetupDefaultJsExecutorFactory symbols are not found.
If we look at the RCTAppSetupUtils class, this symbols are protected behind a flag RCT_NEW_ARCH_ENABLED=1.
What's happening is that the flag is not propagated to the pod, so those symbols are actually excluded from the build. This code should make sure that those flag are set, but there could be a bug there. Or there could be some other pieces of infra that tinkers with the C/CXX flags we are setting up.
To double check that that's the problem, you can:

open the xcworkspace,
open the Pods project,
select the React-Core pod,  // <-- this changed in 0.72
select Build Settings
filter for OTHER_CPLUSPLUS_FLAGS
You should see that like this:

@cipolleschi It is very possible to have two React-Core if you have multiple targets, as we do for the TV repo. In this case, instead of just 'React-Core', we have 'React-Core-iOS' and 'React-Core-tvOS'.
This patch fixed the issue for me. If you agree that this is reasonable, I can open a PR to the core repo.
diff --git a/node_modules/react-native/scripts/cocoapods/new_architecture.rb b/node_modules/react-native/scripts/cocoapods/new_architecture.rb
index 90141cd..6ef1de9 100644
--- a/node_modules/react-native/scripts/cocoapods/new_architecture.rb
+++ b/node_modules/react-native/scripts/cocoapods/new_architecture.rb
@@ -16,7 +16,7 @@ class NewArchitectureHelper
         language_standard = nil

         installer.pods_project.targets.each do |target|
-            if target.name == 'React-Core'
+            if target.name.include? 'React-Core'
                 language_standard = target.resolved_build_setting("CLANG_CXX_LANGUAGE_STANDARD", resolve_against_xcconfig: true).values[0]
             end
         end
@@ -54,7 +54,7 @@ class NewArchitectureHelper

         # Add RCT_NEW_ARCH_ENABLED to generated pod target projects
         installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result|
-            if pod_name == 'React-Core'
+            if pod_name.include? 'React-Core'
                 target_installation_result.native_target.build_configurations.each do |config|
                     config.build_settings['OTHER_CPLUSPLUSFLAGS'] = @@new_arch_cpp_flags
                 end


Update from-javascript.elm

http://redux.js.org/docs/recipes/UsingObjectSpreadOperator.html
Having both point.x = 42 and this be equivalent to the { point | x = 42 } Elm syntax implies Elm is doing something different to JS (in this case, not allowing mutation). I also think seeing how the Elm syntax is similar to using the ... spread operator in JS is helpful, especially for those coming from Redux development, because use of the pipe character like this is unlike any syntax in JS.

👍 having recently started out with elm, having this correspondence would've made it click earlier


It seems that <C-e is a special case with live_grep_glob?

Info

Operating System: macOS 13.5
Shell: zsh
Terminal: Alacritty
nvim --version: NVIM v0.10.0-dev-387+gd31f7648e
fzf --version: 0.41.0(brew)

[x] The issue is reproducible with mini.sh

fzf-lua configuration

require('fzf-lua').setup({
})

vim.keymap.set('n', '<C-f>', function ()
  require('fzf-lua').live_grep_glob {
    cwd = vim.fn.getcwd(-1,0),
    actions = { ['ctrl-f'] = 'abort' }
  }
end)

Description
I got different results on grepping <C-e, and all of them are incorrect, i.e. it found <C-w/v/x .. instead.
https://github.com/ibhagwan/fzf-lua/assets/24765272/58cd0a8a-4c7b-4a1b-88a9-2f5dc4bf8750

Could it be because - is a special regex character?
You need to escape it with \-.

The same result. The entry is correct but the output is wrong:

The entry seems correct, it always ends on the same file keymap.lua:177, the issue here seems to be an incorrect preview, seems like this has something to do with the speed of typing as it shows the previous match preview.

with the speed of typing as it shows the previous match preview.

But I typed it really slowly during testing, lol.

with the speed of typing as it shows the previous match preview.

But I typed it really slowly during testing.

Maybe not the speed then but there is obviously some combo here causing the preview to not get updated from the previous result.

I suspect that some autocmds of the floating window is not triggered, not sure though.

I suspect that some autocmds of the floating window is not triggered, not sure though. I tried adding vim.cmd('redraw') in the code of previewer, didn't work.

I don’t think this is related, it seems to be some race condition of the fzf preview command trigger.

But I typed it really slowly during testing

looking at the video again you’re not typing slowly at all, you remove the e and then add the e back in an instant and the new preview doesn’t get updated, notice you’re still getting the preview from the search for <C- (without the e).

Yes, that demo is somehow misleading. But I just did another test after reading your comment regarding the typing speed. From my current trying, it's not related to typing speed.

Ty @nyngwang, I figured it out, this is an upstream issue: https://github.com/junegunn/fzf/issues/3311

FYI, this bug was apparently introduced with fzf 0.40.0, if you downgrade to 0.39.0 this will be resolved.

Just confirmed that upgrading to 0.40.1, according to the upstream issue you kindly created, fixes this problem :) Thanks for your help! This issue can be safely closed.
https://github.com/ibhagwan/fzf-lua/assets/24765272/8ad8d5d5-0e15-4706-9329-469e857256f1

Just confirmed that upgrading to 0.40.1

Small correction the fixed version is 0.41.1.
Ty @nyngwang, closing.


Single inproc process died and stuck when restarting

I'm running a single Infrakit container with multiple plugins running via infrakit plugin start manager group swarm terraform. The process panic'd in the terraform plugin (I suspect that there was a network issue connecting to the NFS volume hosing the files being traversed):
$ docker logs infrakit.95d76cdnsf6608a31zukm493c.kso3q6ehgdf1h590arpstnsse
...
ibm_compute_vm_instance.instance-1506029775: Refreshing state... (ID: 40178701)
ibm_compute_vm_instance.instance-1506030036: Refreshing state... (ID: 40180467)
ibm_compute_vm_instance.instance-1506030016: Refreshing state... (ID: 40179481)
ibm_compute_vm_instance.instance-1506030017: Refreshing state... (ID: 40179483)
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x38 pc=0x1a17d88]

goroutine 112 [running]:
github.com/docker/infrakit/pkg/provider/terraform/instance.(*plugin).handleFiles.func1(0xc4201e5fe0, 0x1c, 0x0, 0x0, 0x2e87640, 0xc4202b3b00, 0x2e87640, 0xc4202b3b00)
	/go/src/github.com/docker/infrakit/pkg/provider/terraform/instance/apply.go:177 +0x58
github.com/docker/infrakit/vendor/github.com/spf13/afero.walk(0x2ea3480, 0x2f26448, 0xc42029aae0, 0xf, 0x2e9fdc0, 0xc42043fe10, 0xc4205a4780, 0x0, 0x4093b5)
	/go/src/github.com/docker/infrakit/vendor/github.com/spf13/afero/path.go:65 +0x32b
github.com/docker/infrakit/vendor/github.com/spf13/afero.Walk(0x2ea3480, 0x2f26448, 0xc42029aae0, 0xf, 0xc4205a4780, 0x1, 0xc4205a4780)
	/go/src/github.com/docker/infrakit/vendor/github.com/spf13/afero/path.go:107 +0x103
github.com/docker/infrakit/vendor/github.com/spf13/afero.Afero.Walk(0x2ea3480, 0x2f26448, 0xc42029aae0, 0xf, 0xc4205a4780, 0x0, 0x1b7d760)
	/go/src/github.com/docker/infrakit/vendor/github.com/spf13/afero/path.go:99 +0x53
github.com/docker/infrakit/pkg/provider/terraform/instance.(*plugin).handleFiles(0xc4201c6d20, 0xc4204fab40, 0xc420751f08, 0x0, 0x0)
	/go/src/github.com/docker/infrakit/pkg/provider/terraform/instance/apply.go:201 +0x26f
github.com/docker/infrakit/pkg/provider/terraform/instance.(*plugin).terraformApply.func1(0xc4201c6d20)
	/go/src/github.com/docker/infrakit/pkg/provider/terraform/instance/apply.go:64 +0xe5
created by github.com/docker/infrakit/pkg/provider/terraform/instance.(*plugin).terraformApply
	/go/src/github.com/docker/infrakit/pkg/provider/terraform/instance/apply.go:87 +0x23e
$

This caused the container to go into an Exited status:
f363ed3ffb66        infrakit:srk   "infrakit plugin -..."   16 hours ago        Exited (2) 14 hours ago                                  infrakit.95d76cdnsf6608a31zukm493c.kso3q6ehgdf1h590arpstnsse

Infrakit is running as a docker service and was restarted, the replacement container simply has:
$ docker logs infrakit.95d76cdnsf6608a31zukm493c.uyrw0y0dibmubkmhfny77c57d
WARN[09-22|02:27:42] Creating directory                       module=cli/local dir=/root/.infrakit/cli fn=github.com/docker/infrakit/pkg/cli/local.Setup
INFO[09-22|02:27:42] Launching                                module=cli/plugin kind=manager name=group fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
INFO[09-22|02:27:42] Launching                                module=cli/plugin kind=group name=group-stateless fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
INFO[09-22|02:27:42] Launching                                module=cli/plugin kind=swarm name=swarm fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
INFO[09-22|02:27:42] Launching                                module=cli/plugin kind=terraform name=terraform fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
INFO[09-22|02:27:42] Done waiting on plugin starts            module=cli/plugin fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
$

I suspect that the issue is that the plugin sockets and pid files weren't cleaned up from the crashed container:
$ docker exec infrakit.95d76cdnsf6608a31zukm493c.uyrw0y0dibmubkmhfny77c57d ls -l /infrakit/plugins
total 20
-rw-r--r--    1 root     root             1 Sep 21 21:36 24864.pid
srwxr-xr-x    1 root     root             0 Sep 21 21:36 group
srwxr-xr-x    1 root     root             0 Sep 21 21:36 group-stateless
-rw-r--r--    1 root     root             1 Sep 21 21:36 group-stateless.pid
-rw-r--r--    1 root     root             1 Sep 21 21:36 group.pid
srwxr-xr-x    1 root     root             0 Sep 21 21:36 swarm
-rw-r--r--    1 root     root             1 Sep 21 21:36 swarm.pid
srwxr-xr-x    1 root     root             0 Sep 21 21:36 terraform
-rw-r--r--    1 root     root             1 Sep 21 21:36 terraform.pid

$ docker exec infrakit.95d76cdnsf6608a31zukm493c.uyrw0y0dibmubkmhfny77c57d infrakit plugin ls
WARN[09-22|13:37:55] cannot get types for this kind           module=cli/plugin err="Post http://h: dial unix /infrakit/plugins/group: connect: connection refused" addr=/infrakit/plugins/group fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func1
WARN[09-22|13:37:55] cannot get types for this kind           module=cli/plugin err="Post http://h: dial unix /infrakit/plugins/group-stateless: connect: connection refused" addr=/infrakit/plugins/group-stateless fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func1
WARN[09-22|13:37:55] cannot get types for this kind           module=cli/plugin err="Post http://h: dial unix /infrakit/plugins/swarm: connect: connection refused" addr=/infrakit/plugins/swarm fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func1
WARN[09-22|13:37:55] cannot get types for this kind           module=cli/plugin err="Post http://h: dial unix /infrakit/plugins/terraform: connect: connection refused" addr=/infrakit/plugins/terraform fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func1
INTERFACE           NAME                          LISTEN
                    group                         /infrakit/plugins/group
                    group-stateless               /infrakit/plugins/group-stateless
                    swarm                         /infrakit/plugins/swarm
                    terraform                     /infrakit/plugins/terraform

If the inproc process crashes how will the plugin files get cleaned up so that a replacement container can successfully be started?

I will look into adding code to catch that panic in the main itself. That way when anything panics we can at least do a clean shutdown by sending the process itself a SIGTERM and then exit with a stack trace.

Another idea... now that everything runs in the same container process there's no need to bind mount the hosts directory for storing plugin socket files.  We only need to bind mount the nfs directory for storing any other configs.  So there's really no need to cleanup because the sockets are in the containers file namespace and not the hosts.

@chungers Yes, if all of the sockets reside on the container itself then it would simplify the configuration.

Keeping the pid files in the container filesystem fixed this.

Reopening so that this can be used to address this comment by @chungers

I will look into adding code to catch that panic in the main itself. That way when anything panics we can at least do a clean shutdown by sending the process itself a SIGTERM and then exit with a stack trace.


Create simple survey/voting project to prioritize new vcpkg port request

vcpkg has already added a lot of ports but backlog seen as open issues labelled as "new-port-request" is quite large. I would like to propose creating short and simple survey / voting project-issue  to allow community vote and express it's opinions on ports priority and importance.

We can simply create Trello board with voting for:

new ports requests
ports update requests

where the guys from MSFT and active community members can show their current activity.

Note that GitHub can easily filter and sort by thumbs-up:
https://github.com/Microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+label%3A"new+port+request+-+consider+making+a+PR!"+sort%3Areactions-%2B1-desc
This is what we have been looking at so far when we take a break from infrastructure work to add new packages -- however most ports are contributed by awesome community members (like @Mixaill and many many more).
We also tend to focus on packages that require a lot more effort to package that would be beyond the reach of many community members (such as ffmpeg, which required adding MSYS2 support).

Looks this issue can be closed, please reopen it if I misunderstand something here.


Adds synchronous scheduler syntax to debugging docs

Adds syntax for how to use single-threaded scheduler to debugging docs
See https://github.com/dask/dask/issues/3442#issuecomment-386308258

[x] Tests added / passed
[x] Passes flake8 dask

This is just a duplication of http://dask.pydata.org/en/latest/scheduling.html#configuration setting scheduler='synchronous'

Maybe providing one explicit example and then providing a link for the rest would be best?  This makes it easier to update docs in the future.  As an example, this conflicts with the dask.set_options -> dask.config.set rename happening in https://github.com/dask/dask/pull/3502 :)
Also, there are a few aliases for synchronous.  I've been using single-threaded in the docs so far on the assumption that that will be more clear to the most people.

this conflicts with the dask.set_options -> dask.config.set rename

Not if you merge this PR first :wink:

Maybe providing one explicit example and then providing a link for the rest would be best?

Agreed. I'll keep the x.compute(scheduler='single-threaded') example.

I've been using single-threaded in the docs so far on the assumption that that will be more clear to the most people.

That's a good point, I'll switch over to single-threaded

Thanks @jrbourbeau !


chore(.github): add dependabot gh action

cc @prometherion

CI is failing, fixed with #18: asked for your review there, we could get it merged and rebase this over the main branch


Breaks installation from npm

Probably a placeholder for future work, but it's breaking the build, so to speak.

+1
This is a trivial patch, and the module is not installable without it.


Header DropDown Menu with SideBar Menu as well.

I'm submitting a ...
[ ] feature request

Required Feature:
how can i implement Header Menu as well as sideBar nav both by getting data from database.

What is the current behavior?

Only sideBar nav feature is available.

Waiting for update on this please

Hey @RoshanRoyal, you can create your own header based on the current one, that's the only options available now.


Improve summary plot for parameterized tests

Take geometric mean over parameter sets instead of arithmetic mean.
Also fill in data that is missing only for some parameter combinations,
which avoids spurious jumps in the summary graph.
Also do minor refactoring for Graph, ensuring self.data_points format is
the same for scalar and vector series.
The geometric mean is probably the best choice for summarizing all
the results in a single curve --- the main interest in the plot is to see
relative changes, and the geom mean is the choice that gives equal
weights on log-scale. Within the constraint of one curve, I think gh-220 is fixed.
before: http://pav.iki.fi/tmp/asv-226/html-before/index.html
after: http://pav.iki.fi/tmp/asv-226/html-after/index.html (note several spurious jumps removed in sparse&spatial tests)

Changes Unknown when pulling 5eaf913f3de579a9bd15d6e8128a12c4e582c21d on pv:summary-geommean into ** on spacetelescope:master**.


Add support for SLES

Besides added Support, add specs for SLES, and update metadata.json
to reflect the support.
Developed and tested on SLES11 SP3.
Let me know if there is something to change, enhance, etc. and I'm happy to do so.

@buzzdeee Great work!


@jorystiefel => [Embedded Models] Fix layout bug on iPad.

These tests are green when ran locally. I think CircleCI is a bit drunk. Consider it green imo!

Re-assigning to @orta.

Cool, then this looks good :+1:


Fix: arrayValidator to ArrayValidator

Thanks for this amazing plugin. You have an naming issue in your source code.

thank you


[openvino-optimum] Add task specific examples

Adding a QA and text classification task specific examples which contains the following:

A jupyter notebook containing an evaluation example
A quantization example for NNCF accuracy aware training for a finetuned HF model for the question answering task

@karkadad is it still valid?

@karkadad is it still valid?

Yes, please do not close yet.

Optimum module was removed from contrib: https://github.com/openvinotoolkit/openvino_contrib/pull/535
I assume we may close this PR now.

Not everything that is in this integration is supported in the optimum-intel integration in Hugging Face yet. I'm merging these examples to the 2022/3 branch so that they are not lost (the failing codestyle check can safely be ignored for this). Thanks very much for adding them @karkadad!


mkpr

Applied mkpr on package.json
sed s/@kronos-integration\/service": "^.*"/@kronos-integration\/service": "^8.3.14"/

:tada: This PR is included in version 2.0.5 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


How to change Pico SPI channel?

I have an iLabs Challenger RP2040 Lora (SX1276).
From what I can tell it uses the second SPI channel to talk to the RFM95W. I have found the pin outs from the schematic for the board (see diagram). That's the relatively easy bit.
How can I tell LMIC-node to use spi1 instead of spi0.
Thanks for any help.

d

LMIC-node uses the LMIC library for LoRaWAN support.
As far as I'm aware LMIC can only use the default SPI port (the instance named SPI).
In order to make LMIC use the second SPI port the pins for the default SPI instance will have to be redefined.
How this can be done is hardware and (in this case MBED) Arduino core dependent.
The ESP32 Arduino core allows SPI pins to be (re)defined via parameters in SPI.begin().
Other cores support methods like SPI.setMOSI(), SPI.setMISO() etc.
The standard Arduino core for the Pico does not provide any of these.
The IO pin mapping on the Pico appears to be very flexible so there should be some way to redefine the IO pins used for the standard SPI instance but I don't know how. I haven't looked into this.
For an example of how to use different pins for SPI with LMIC-node see BSF bsf_disco_l072cz_lrwan1.h.
This uses methods that are not supported by the standard Arduino core for the Pico but it at least gives an example where in LMIC-node code the SPI pins will have to be (re)mapped.

Thank you for your reply. Very helpful. I'll do more digging.


the format target does not work?

Claus-iMac:ModernCppStarter clausklein$ cmake -B build -S test -G Ninja
-- CPM: adding package<EMAIL_ADDRESS>(v1.2.2)
-- Using ccache: /usr/local/bin/ccache
-- CPM: adding package Greeter@ (/Users/clausklein/Workspace/cpp/ModernCppStarter/test/..)
-- CPM: Greeter: adding package<EMAIL_ADDRESS>(v1.4)
-- CPM: adding package<EMAIL_ADDRESS>(v1.6)
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/clausklein/Workspace/cpp/ModernCppStarter/build
Claus-iMac:ModernCppStarter clausklein$ ninja -C build
ninja: Entering directory `build'
[0/2] Re-checking globbed directories...
ninja: no work to do.
Claus-iMac:ModernCppStarter clausklein$

Claus-iMac:ModernCppStarter clausklein$ ninja -C build format
ninja: Entering directory `build'
[0/2] Re-checking globbed directories...
[1/2] cd /Users/clausklein/Workspace/cpp/ModernCppStarter/test && /usr/local/Frameworks/Pyt...binary=/usr/local/opt/llvm/bin/clang-format --diff 4b825dc642cb6eb9a060e54bf8d69288fbee490
clang-format did not modify any files
[2/2] cd /Users/clausklein/Workspace/cpp/ModernCppStarter/test && /usr/local/Cellar/cmake/3...s/clausklein/Workspace/cpp/ModernCppStarter/build/_deps/format.cmake-src/cmake-format.cmak
Traceback (most recent call last):
  File "/usr/local/bin/cmake-format", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 633, in main
    return inner_main()
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 616, in inner_main
    onefile_main(infile_path, args, argparse_dict)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 508, in onefile_main
    config_dict = get_config(infile_path, args.config_files)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 359, in get_config
    return get_configdict(configfile_paths)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 312, in get_configdict
    increment_dict = get_one_config_dict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 303, in get_one_config_dict
    return try_get_configdict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 256, in try_get_configdict
    raise RuntimeError("Failed to parse {} as any of yaml, json, or python"
RuntimeError: Failed to parse /Users/clausklein/Workspace/cpp/ModernCppStarter/.cmake-format as any of yaml, json, or python
error: Could not access '/Users/clausklein/Workspace/cpp/ModernCppStarter/build/_deps/format.cmake-build/formatted.cmake'
Traceback (most recent call last):
  File "/usr/local/bin/cmake-format", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 633, in main
    return inner_main()
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 616, in inner_main
    onefile_main(infile_path, args, argparse_dict)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 508, in onefile_main
    config_dict = get_config(infile_path, args.config_files)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 359, in get_config
    return get_configdict(configfile_paths)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 312, in get_configdict
    increment_dict = get_one_config_dict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 303, in get_one_config_dict
    return try_get_configdict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 256, in try_get_configdict
    raise RuntimeError("Failed to parse {} as any of yaml, json, or python"
RuntimeError: Failed to parse /Users/clausklein/Workspace/cpp/ModernCppStarter/.cmake-format as any of yaml, json, or python
error: Could not access '/Users/clausklein/Workspace/cpp/ModernCppStarter/build/_deps/format.cmake-build/formatted.cmake'
Traceback (most recent call last):
  File "/usr/local/bin/cmake-format", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 633, in main
    return inner_main()
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 616, in inner_main
    onefile_main(infile_path, args, argparse_dict)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 508, in onefile_main
    config_dict = get_config(infile_path, args.config_files)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 359, in get_config
    return get_configdict(configfile_paths)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 312, in get_configdict
    increment_dict = get_one_config_dict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 303, in get_one_config_dict
    return try_get_configdict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 256, in try_get_configdict
    raise RuntimeError("Failed to parse {} as any of yaml, json, or python"
RuntimeError: Failed to parse /Users/clausklein/Workspace/cpp/ModernCppStarter/.cmake-format as any of yaml, json, or python
error: Could not access '/Users/clausklein/Workspace/cpp/ModernCppStarter/build/_deps/format.cmake-build/formatted.cmake'
Traceback (most recent call last):
  File "/usr/local/bin/cmake-format", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 633, in main
    return inner_main()
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 616, in inner_main
    onefile_main(infile_path, args, argparse_dict)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 508, in onefile_main
    config_dict = get_config(infile_path, args.config_files)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 359, in get_config
    return get_configdict(configfile_paths)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 312, in get_configdict
    increment_dict = get_one_config_dict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 303, in get_one_config_dict
    return try_get_configdict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 256, in try_get_configdict
    raise RuntimeError("Failed to parse {} as any of yaml, json, or python"
RuntimeError: Failed to parse /Users/clausklein/Workspace/cpp/ModernCppStarter/.cmake-format as any of yaml, json, or python
error: Could not access '/Users/clausklein/Workspace/cpp/ModernCppStarter/build/_deps/format.cmake-build/formatted.cmake'
Traceback (most recent call last):
  File "/usr/local/bin/cmake-format", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 633, in main
    return inner_main()
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 616, in inner_main
    onefile_main(infile_path, args, argparse_dict)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 508, in onefile_main
    config_dict = get_config(infile_path, args.config_files)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 359, in get_config
    return get_configdict(configfile_paths)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 312, in get_configdict
    increment_dict = get_one_config_dict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 303, in get_one_config_dict
    return try_get_configdict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 256, in try_get_configdict
    raise RuntimeError("Failed to parse {} as any of yaml, json, or python"
RuntimeError: Failed to parse /Users/clausklein/Workspace/cpp/ModernCppStarter/.cmake-format as any of yaml, json, or python
error: Could not access '/Users/clausklein/Workspace/cpp/ModernCppStarter/build/_deps/format.cmake-build/formatted.cmake'
Traceback (most recent call last):
  File "/usr/local/bin/cmake-format", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 633, in main
    return inner_main()
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 616, in inner_main
    onefile_main(infile_path, args, argparse_dict)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 508, in onefile_main
    config_dict = get_config(infile_path, args.config_files)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 359, in get_config
    return get_configdict(configfile_paths)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 312, in get_configdict
    increment_dict = get_one_config_dict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 303, in get_one_config_dict
    return try_get_configdict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 256, in try_get_configdict
    raise RuntimeError("Failed to parse {} as any of yaml, json, or python"
RuntimeError: Failed to parse /Users/clausklein/Workspace/cpp/ModernCppStarter/.cmake-format as any of yaml, json, or python
error: Could not access '/Users/clausklein/Workspace/cpp/ModernCppStarter/build/_deps/format.cmake-build/formatted.cmake'
Traceback (most recent call last):
  File "/usr/local/bin/cmake-format", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 633, in main
    return inner_main()
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 616, in inner_main
    onefile_main(infile_path, args, argparse_dict)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 508, in onefile_main
    config_dict = get_config(infile_path, args.config_files)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 359, in get_config
    return get_configdict(configfile_paths)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 312, in get_configdict
    increment_dict = get_one_config_dict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 303, in get_one_config_dict
    return try_get_configdict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 256, in try_get_configdict
    raise RuntimeError("Failed to parse {} as any of yaml, json, or python"
RuntimeError: Failed to parse /Users/clausklein/Workspace/cpp/ModernCppStarter/.cmake-format as any of yaml, json, or python
error: Could not access '/Users/clausklein/Workspace/cpp/ModernCppStarter/build/_deps/format.cmake-build/formatted.cmake'
Claus-iMac:ModernCppStarter clausklein$

is is a problem for my host, sorry
it works on Debian

but on OSX with newest tools not:
bash-3.2$ cmake-format --dump-config
Traceback (most recent call last):
  File "/usr/local/bin/cmake-format", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 633, in main
    return inner_main()
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 587, in inner_main
    config_dict = get_config(os.getcwd(), args.config_files)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 359, in get_config
    return get_configdict(configfile_paths)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 312, in get_configdict
    increment_dict = get_one_config_dict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 303, in get_one_config_dict
    return try_get_configdict(configfile_path)
  File "/usr/local/lib/python3.9/site-packages/cmakelang/format/__main__.py", line 256, in try_get_configdict
    raise RuntimeError("Failed to parse {} as any of yaml, json, or python"
RuntimeError: Failed to parse /Users/clausklein/Workspace/cpp/ModernCppStarter/.cmake-format as any of yaml, json, or python
bash-3.2$ cmake-format --version
0.6.13
bash-3.2$

ops: PyYAML was not installed!
With this py modules it works fine now:
Package            Version
------------------ -------
autopep8           1.5.4
builddriver        0.9.0
cmake-format       0.6.13
cmakelang          0.6.13
cmakelint          1.4.1
Jinja2             2.11.3
MarkupSafe         1.1.1
meson              0.56.2
pip                21.0.1
protobuf           3.14.0
pycodestyle        2.6.0
Pygments           2.7.4
PyYAML             5.4.1
setuptools         52.0.0
six                1.15.0
toml               0.10.2
wheel              0.36.2
yaml-configuration 0.2.5
bash-3.2$


Creates new parent folder if subfolder doesn't exist

If a parent folder exists – let's call it 'abc' – and I write a rule in Config.gs which specifies a subfolder of this parent folder which does not exist – let's call the non existing subfolder 'xyz' – the script creates a new parent folder with the same name as the old one, and puts the new subfolder with its files in this new parent folder.
How to recreate:
1: Manually, through the Drive web interface, create a root folder called 'abc'.
2: Create a rule in Config.gs with "folder": "abc/xyz".
3: Execute the script and make sure it hits an item described by the rule.
What I expect:
A newly created folder 'xyz' should be created under the existing folder 'abc'.
What happens:
Another root folder called 'abc' is created with the new subfolder 'xyz' and its file contents.

Hi,
I just ran into this issue and send pull request to trollkarlen2/gmail-rule-processor fork of this repo, which I used to fork the project (:

Corrected it here https://github.com/ahochsteger/gmail2gdrive/pull/9
The getFolders return a collection and not an array

Closing the issue since the PR has already been merged.